- 1. __init__.py に定義した lambda_handler を Handler へ指定する。
- 2. AtCoderの暖色コーダ(黄・橙・赤)はどれだけの速度でコードを書く? ユーザの解答時間を色別で集計してみた
- 3. Pythonコードの中に記載されたHTMLテキストをブラウザで表示する(Api Gateway,Lambda)
- 4. PythonとGridDBを用いたWebトラフィックの調査と予測
- 5. シンプルなLSTMモデル
- 6. tensor_contraction_cuquantum
- 7. Blenderで重複して読み込んだマテリアルを共通のものに
- 8. ?nbdev2をWSLで利用する手順
- 9. Python で先週日曜日の日付を取得する
- 10. openpyxlのオートフィルタ設定のメモ
- 11. ReazonSpeechで全文文字起こしを実装してみた あとWhisperとの比較
- 12. Docker Composeで立てたRabbitMQにpikaで接続してみる
- 13. 【テックジム】無料GAS講座「メルマガスタンドを作ろう」の感想
- 14. 「プログラミング」ノススメ
- 15. スプレッドシートに記録+グラフ表示
- 16. Tkinterのスクロールバー(ttk.Scrollbar)が上下しない場合の対処法
- 17. フォルダ内の古いファイルを削除する
- 18. LocustをEKS上で動かす
- 19. IAM Policy SimulatorのAPIを使用して権限テストの自動化
- 20. [sklearn]pipeline実行できない
__init__.py に定義した lambda_handler を Handler へ指定する。
`__init__.py` に `lambda_handler` をコーディングしている Flask アプリケーションを AWS CloudFormation の `AWS::Serverless::Function` や `AWS::Lambda::Function` リソースの `Handler` プロパティへ `lambda_handler` を設定する例です。
`app.py` や `lambda_function.py` の例が公式に掲載されているため、世の中の実装もその踏襲が多く、初学者によく質問されるので掲載しておきます。
以下は、AWS SAM として定義する場合の例です。
“`yaml
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: >-
AWS CloudFormation Template for my-app stack:
The FROG Brigade dot NET – Rev. 1.0.0, 2023-01-01
AtCoderの暖色コーダ(黄・橙・赤)はどれだけの速度でコードを書く? ユーザの解答時間を色別で集計してみた
[Supership](https://supership.jp/)でVPoEをしている名畑です。2023年冬アニメの[テクノロイド オーバーマインド](https://techno-roid.com/anime)を見ていて、その内容から[うたプリ](https://www.utapri.com/)を思い出していたら、[上松範康](https://twitter.com/agematsu)さんの作品だと後から知りました。ストーリー展開が予想外で面白いです。
:::note info
AtCoderについて調べてみたシリーズの過去記事
– [そもそもAtCoderとはどんなものか](https://qiita.com/nabata/items/44fa3995e476b12b9860)
– [誕生年毎のアクティブユーザ数](https://qiita.com/nabata/items/75407e48c7ca8de8a4a4)
– [アクティブユーザの世代別国と地域](https://qiita.com/nabata/items/28b5572978ee4abb0126)
– [プログ
Pythonコードの中に記載されたHTMLテキストをブラウザで表示する(Api Gateway,Lambda)
# 書くきっかけ
Pythonコードの中に直書きしたHTMLを、クライアントからリクエストがあったときにブラウザで表示するコードを書いてみました。
自分の話で恐縮ですが、ちょっとApi GatewayとLambdaのテストをしてみたいと思ったときに、HTMLレスポンスが返せる簡単なLambda関数を用意したくなります。
そういった際に使えるのではと考えました。
# 使うもの
AWSで以下のものを使います。
* Api Gateway
* Lambda (Python 3.9)# やってみる
## Lambda
以下の設定値でLambda関数を作成しました。ほかはデフォルトの設定値です。
| 項目 |設定値|
|:———–|:———–|
|関数名|htmlResponseFunc|
|ランタイム|Python 3.9|
|ハンドラ|lambda_function.lambda_handler|
|アーキテクチャ|x86_64|## コード
`string`型でHTMLを記述し、それを`bytes`型に変換するところがポイントだと思います。
“`pyt
PythonとGridDBを用いたWebトラフィックの調査と予測
ここ数年、時系列データベースのカテゴリが最も急速に成長しています。既存の技術分野と新興の技術分野の両方で、時系列データの作成量が増加しているのです。
一定時間内に行われるセッションの量をWebトラフィックと呼び、時間帯や曜日などによって大きく変化します。プラットフォームが処理できるWebトラフィックの量は、プラットフォームをホストするサーバーのサイズによって決定されます。
過去の訪問者数データや過去のWebトラフィックデータに基づいて、多くのサーバーを動的に割り当てることができます。つまり、過去のデータに基づいてセッションやウェブトラフィックの量を分析し、予測することがデータサイエンスの課題なのです。
チュートリアルの概要は以下の通りです。
1. データセット概要
2. 必要なライブラリのインポート
3. データセットの読み込み
4. データの可視化による分析
5. 予測
6. まとめ## 前提条件と環境設定
jupyterの全ファイルは、GitHubのリポジトリにあります。
$ git clone –branch web-forecasting http
シンプルなLSTMモデル
“`py
!pip install tensorflow-gpu
!pip install yfinance –upgrade –no-cache-dir
!pip install pandas_datareader
!pip install sklearn
!pip install -U protobuf==3.8.0
“`“`py
import math
import pandas_datareader.data as web
from datetime import date, timedelta
import pandas as pd
from numpy import array, reshape
from keras.models import Sequential
from keras.layers import LSTM, SimpleRNN, Dropout, Dense
import matplotlib.pyplot as plt
from sklearn.metrics import accuracy_score
from sklearn.prep
tensor_contraction_cuquantum
“`py
!pip install cuquantum-python
!pip install cupy-cuda11x
“`“`py
from cuquantum import contract
from numpy.random import randa = rand(96, 64, 64, 96)
b = rand(96,64,64)
c = rand(64,96,64)
r = contract(“mhkn,ukh,xuy->mxny”, a, b, c)
“`“`py
print(r)
“`[[[[53812.16322921 47536.67919788 46969.31610105 … 49303.5812126
51130.78025912 50699.04587463]
[52461.86132487 46316.94964869 45754.99439207 … 48042.95502928
49858.05759064 49399.9161135 ]
[53062.94169324 46876.6
Blenderで重複して読み込んだマテリアルを共通のものに
Blenderで アペンドやインポートで名前が重複したマテリアルのついたオブジェクトを読み込むと
「.001」といった具合に名前がかぶらないようにリネームされてマテリアルが作成されるものの
重複元のマテリアルを使用したい場合に 割り当てを変更するスクリプト
“`
import bpy
object = bpy.context.active_object
material_slots = object.material_slots
for slot in material_slots:
mat_name = slot.material.name
if mat_name[-4:] == “.001”:
slot.material = bpy.data.materials[mat_name[:-4]]
“`
とりあえず動けばいい程度の書き捨て
?nbdev2をWSLで利用する手順
前記事 [【?nbdev2入門】Dockerによる環境構築と作業手順 – Qiita](https://qiita.com/lilacs/items/19c9c572a0740c5fc548)
nbdevは、ノートブック駆動開発プラットフォームです。
公式ドキュメント([nbdev – エンド ツー エンドのウォークスルー](https://nbdev.fast.ai/tutorials/tutorial.html#first-steps))から以下の手順を抜粋しました。
なお、コマンドで簡単に始められるように、GitHub周りは手順の最後にまとめて実施するようアレンジしてます。1. 環境のセットアップ
1. プロジェクト作成
1. 開発作業
1. GitHubリポジトリへのプッシュ・設定# 想定環境
– Windows11 Pro
– WSL2 Ubuntu
– Python 3.9以上 (pipでパッケージ管理)# 環境のセットアップ
| **作業** | **コマンド**
Python で先週日曜日の日付を取得する
# はじめに
Python で先週の日曜日を取得したかったのですが、調べてもあまり良い解答が得られなかったので、忘備録として残します。
# 1. isoweekday
datetime モジュールにある date オブジェクトの isoweekday メソッド。
isoweekday は月曜日から日曜日を `1 ~ 7` として出力します。
“`Python
from datetime import date, timedeltatoday = date.today()
last_week_sunday = today – timedelta(7 + today.isoweekday() % 7)
“`
`today.isoweekday() % 7` 部分で日曜日から土曜日を `0 ~ 6` として出力するよう変換し、先週の日曜日は今日から 7 日と何日前か計算しています。
# 2. weekday
datetime モジュールにある date オブジェクトの weekday メソッド。
weekday は月曜日から日曜日を `0 ~ 6` として出力します。
“`Pyth
openpyxlのオートフィルタ設定のメモ
# 背景
複数のエクセル出力したテーブルに対して、「オートフィルタを設定して、空白のみ除外したい」といった状況になり、Pythonで自動化した。最近Pythonをよく使うので今回まとめたことを自分用にメモ。# できたもの
**openpyxl**を使って、インプットされたワークシートにオートフィルタの設定を行う関数を作った。使用したAPIの詳細は[公式](https://openpyxl.readthedocs.io/en/stable/)を参照。
(プログラム全体)
“`auto_filter.py
import openpyxl
from openpyxl.utils import get_column_letter, column_index_from_string
from openpyxl.utils.cell import coordinate_from_stringdef auto_filter(ws, str_col, ref=None, shows=None, hiddens=None):
# オートフィルタの適用
start =
ReazonSpeechで全文文字起こしを実装してみた あとWhisperとの比較
# はじめに
[前回記事](https://qiita.com/user-touma/items/d010be623034ed894cdc)はサンプリングレートの問題で正常に動作しなかったようです。
教えてくださった方、ありがとうございました。
そしてReazon社やその関係者の皆様、不確実な情報を広めてしまい申し訳ございませんでした。https://qiita.com/user-touma/items/d010be623034ed894cdc
# 本題
先日Reazon社から公開されたReazonSpeech(https://research.reazon.jp/projects/ReazonSpeech/) を使って、
長時間(1時間以上)の音声データの全文文字起こしを行ったので、コードを公開します。# 問題意識
私の環境では、およそ60秒以上の音声を推論させると、メモリ不足のエラーを起こします。“`python:error
OutOfMemoryError: CUDA out of memory.
Tried to allocate 14.66 GiB (GPU
Docker Composeで立てたRabbitMQにpikaで接続してみる
# はじめに
– 仕事でRabbitMQを触る必要性が出てきたのでDocker Composeで立てて遊んでみる
– 尚、本格的に構築する場合にはクラスタリング等も検討したほうが良い: https://www.rabbitmq.com/clustering.html# 概要
### RabbitMQとは
– 主にメッセージキューを実現するためのOSSで、メッセージブローカと呼ばれる
– Erlangで書かれている
– 紆余曲折あり、現在はVMware社がサポートを行っている
– 他の選択肢としては、OSSだとApache KafkaやActiveMQ、パブリッククラウドだとAmazon SQSやAmazon MQ(内部的にはRabbitMQやActiveMQが使われている)等がある
– GitHubリポジトリ: https://github.com/rabbitmq### メッセージキューとは
– 送信側と受信側の間にキューを挟み、送信側が任意のタイミングでキューにデータを溜め込み、受信側が任意のタイミングでキューに溜まったデータを取り出すような通信形態のこと
![]
【テックジム】無料GAS講座「メルマガスタンドを作ろう」の感想
テックジム主催の無料講座、GAS講座「メルマガスタンドを作ろう」を受講しました。プログラミングを学ぶ目的は、エンジニアになるためと考えられがちです。この講座を受講すると、事務職の作業をエクセルとワードとGoogleを使い、効率化するためにも、プログラミングの学習が役に立つと思えました。非常に解りやすくオススメです。
「プログラミング」ノススメ
## 1. はじめに
こんにちは!株式会社ジールの@tomonori_ishikawaです。
データ分析、データ活用で基礎になる技術と言えば、
「プログラミング」と思っております。
ここでは「プログラミング」が出来るようになることのメリット、勉強の仕方をご紹介したいと思います。### 筆者について
職種:データ分析エンジニア
AIを用いたデータ分析をPythonを用いてデータ加工、
Tableauを用いて可視化を行っています。
要件定義から行っています。![スクリーンショット 2023-01-24 1018121.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3118504/5e0f0c3e-470e-bc17-339f-3c92f0c6d3aa.png)
## 2. 「プログラミング」とは?
「プログラム」を作ることを「プログラミング」と言います。
「プログラム」は、コンピュータにやらせる命令を順番に並べたものです。私達の暮らしの中で使われている
コンピュータは人が命令して初めて
スプレッドシートに記録+グラフ表示
以前、部屋の温度・湿度・気圧を測定して、そのままだったので、ログの保持と表示部分を実装しようかと。(備忘録です)
https://qiita.com/_saki_kawa_/items/7961c82b150a01920d72## スプレッドシートの作成
まず、新規に記録用のスプレッドを作成。
ダミーのデータを適当に入力(シート名を「yyyymm」にしておく)
![スクリーンショット 2023-01-24 11.49.50.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37576/b0eb39c9-e77d-d4eb-ec48-e356e337bab0.png)## GAS関連
拡張機能から「Apps Script」を選択
![スクリーンショット 2023-01-24 11.50.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/37576/4fe31b0e-6180-b522-ecfd-c22a21bc188
Tkinterのスクロールバー(ttk.Scrollbar)が上下しない場合の対処法
## 問題
Tkinterの`ttk.Scrollbar`でテキストボックスにスクロールバーを設置したところ、ドラッグしても上下しませんでした。### スクロールバーが機能しない様子
![scroll_ng.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3115387/2dc5492e-d53b-ea6e-80a8-2266d83a84c2.gif)### 元のコード
“`python
from tkinter import *
from tkinter import ttkroot = Tk()
style = ttk.Style()frame1 = ttk.Frame(root, padding=10)
frame1.grid()txt = Text(frame1, height=12, width=85)
txt.grid(row=1, column=0)scrollbar = ttk.Scrollbar(
frame1,
orient=VERTICAL,
フォルダ内の古いファイルを削除する
>Programを実行していると、ディレクトリーの中に”古いファイル”が溜まっていくことありませんか?
エポック秒を利用し古いファイルを判断して、指定した個数以外のファイルを削除する様にしました。
>“`python
# “/Qiita投稿Program/古いファイルを削除/test/”フォルダ内の古いファイルを削除する#—————————————————————————
import os # OSに依存しているさまざまな機能を利用するためのモジュール
import glob # 引数に指定されたパターンにマッチするファイルパス名を取得
#—————————————————————————
def p():
print(‘-‘*50)
print(”)#—————————————-
LocustをEKS上で動かす
# この記事について
負荷試験にてLocustを利用する必要がありました。そこで柔軟にスケールできるようにEKS上で動かすことになりました。
EKS上でLocustを動かして、簡単な負荷試験を実施する手順などについてこの記事にまとめます。
なお、この記事ではLocustのシナリオについては深く触れません。
あくまで動作確認レベルのシナリオになります。# 簡単に登場人物の紹介
## Locsut
Python製の負荷試験ツールです。
負荷試験のシナリオをPythonを用いて柔軟に作り込むことができます。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435280/9759d767-47f6-1b71-d521-1c1d9aedb43b.png)
https://locust.io/
locustにはmaster/workerモード機能があり、これを利用することで複数インスタンス(コンテナ)を利用してスケールさせながらlocustによる負荷試験を行うことが可能です。
IAM Policy SimulatorのAPIを使用して権限テストの自動化
# はじめに
作成したIAMポリシーをマネジメントコンソールから手動でテストするのは大変なので、APIを利用してテストの自動化をしてみました。# 内容
AWS CLI、またはAWS SDKを使用して[IAM Policy Simulator](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/access_policies_testing-policies.html)を呼び出して、既存のIAMポリシーをプログラムでテストします。これにより、ポリシーが意図した効果を持っていることを確認します。# IAM ポリシーをシミュレートするには (AWS CLI、AWS API)
APIは下記の2つあり、CLIとSDKから利用できます。
– AWS CLI: [aws iam simulate-custom-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/simulate-custom-policy.html) および [aws iam simulate-p
[sklearn]pipeline実行できない
scikit-learnのpipelineは前処理やモデルを定義しておくと処理を簡潔にかけるので重要です。
今回、pipelineをつかってgridsearchを組み込んだときにpipelineが動かなかったエラーにハマったのでその解決法です。“`python:❌
param_grid = {‘n_components’: [2, 3, 4, 5, 6], ‘scale’:[True, False], ‘max_iter’: [1000]}pipe = Pipeline(steps=[(‘scaler’, StandardScaler()),(‘model’, PLSRegression())])
kf = KFold(n_splits=5, shuffle=True, random_state=0)
grid_search = GridSearchCV(pipe, param_grid, cv=kf, refit=True, n_jobs=-1, verbose=1)
“`“`python:エラー
ValueError: Invalid parameter ‘ma