MOテクノロジー

技術をメモしていくブログ

2020-01-01から1年間の記事一覧

Pythonのデコレータは算数っぽく考えるとわかりやすかった

デコレータはなかなか理解するのが難しかったんだが、算数っぽく考えると割とすんなり飲み込めたのでメモする。 前提としてPythonは、関数内で関数を呼び出せる、関数を引数や関数の戻り値とできることを確認しつつ、ちょっとずつ考えていく。 関数内で関数…

sedの使い方忘れないように

sedを使いこなしたいと思いつつ、多機能すぎてついつい忘れてしまう。 基本の使い方のチートシート的な。使っているのはMacの標準で入っているBSD系のsed。 # パイプつなぎ ~ $ echo It is sunny today. | sed 's/sunny/rainy/g' It is rainy today. # 複数…

sarのログ保存期間の延長&記録間隔の変更

sarのログ保存期間はデフォルトで1ヶ月くらいになっている。 半年ほど記録を伸ばす必要が出てきたので、対応してみた。 osはAmazon Linux 2。 ログ保存期間の延長 修正ファイルはこちらのHISTORY。 デフォルトだとHISTORY=28になっているので、これを保存し…

単体テストの考え方メモ

単体テスト、そんなしょっちゅう書いていないし、ついつい考え方がぶれたりしてしまうのでポイントだけメモ。 実行に0.1秒もかかる単体テストは遅い。早く走らないとしたら、それは単体テストではない。 単体テストと他の種類のテストをごっちゃにしない。例…

Pythonで超簡易プログレスバー的な

Pythonでプログレスバーを出したい用件があったので調べてみた。 それ用のライブラリもあるみたいだけど、事情によりpip installすることの敷居が高かったので標準ライブラリだけで実装できないか調べてみた。 とりあえずキャリッジリターンとprint関数だけ…

X-Forwarded-Protoを学んだ

クライアント --> ALB --> EC2(nginx)という構成のサービスの話。 ALBでは80,443で受けたリクエストを全て80でEC2に送信している。 このとき、同期からnginxの設定で80できたリクエストは443にリダイレクトするから、無限ループになっちゃわない?と質問され…

Lambdaからcurlしようとしたらエラー

Lambdaで遊んでるんだけど、ちょっとした検証をしたくてLambdaからhttpリクエストをcurlで出そうとした。ちなみに言語はPython。requestsをimportしてもいいが、zipにしてあげるのがめんどくさかった。 subprocessをimportして、curlをしてみたらエラーが。…

「情熱プログラマー」を読んだ

「情熱プログラマー」を読んだ。 伝えようとしていることは プログラミングだけではなく、ビジネスの部分を理解しろ 勉強し続けろ 自分を売り込め のように感じた。まあその通りですよね。 笑った一文 たいていのプログラマは小中学生の頃、どんなグループを…

リードレプリカを含むRDSは停止できない

開発・検証環境ではLambdaを使ってRDSを夜間停止している。 ログをみたところ、エラーになっており正常に停止できていないことに気づく。 An error occurred (InvalidDBInstanceState) when calling the StopDBInstance operation: Cannot stop or start a R…

PyCharmをインストールしてみた

Pythonは今までvscodeで書いていたんだけど、仕事でそれなりにコードを書くことが増えそうなのでPyCharmをインストールしてみた。 まだ全然試していないから、ちょう上部だけの感想だけど、 プロジェクト作成時にvenvの設定とかできる。 ただvenv使うような…

opensslコマンドでbase64エンコードしたら改行されてしまった

APIの開発を行っていて、curlでリクエストを送る機会があった。 リクエストのイメージとしてはこんな感じ。 curl -k "https://sample-api/v1/users" -X POST -d "id=XXX" -H "Authorization:Basic $(echo -n api-user:EtKWah5ALFQhwPAf7YFx3grY57YQz6kXLh457…

【AWS】DynamoDBの料金(超ざっくり)

初めてDynamoDBを運用することになりそうなので、プロビジョンドモードとオンデマンドモードの料金体系の違いを超ざっくりメモ。 プロビジョンドモード 1秒あたりの書き込みキャパシティーユニット(WCU)と読み込みキャパシティーユニット(RCU)を指定する…

【DB】あえて正規化しない設計の学び

DB

新年ですな。 今新規でAPIの設計を進めているが、データ設計で学びがあったのでメモ。 API仕様(超ざっくり) 前提 API利用者の情報を持つ「認証情報テーブル」と、 申し込み情報を持つ「申し込み情報テーブル」がある。 リクエストパラメータ ?Id=XXX&Key=YYY…