開発– category –
-
プログラミング
C1801: Do not use len(SEQUENCE) to determine if a sequence is empty (len-as-condition)と怒られた時
pylintを使っていると、C1801: Do not use len(SEQUENCE) to determine if a sequence is empty (len-as-condition)と怒られました。原因とその回避方法について。 pylintで怒られる たとえば以下のようなコードを書く。 test_list = [] if len(test_list) == 0: print('empty') 特に間違いというわけではなく、きちんと動作する。が、py... -
プログラミング
Python + SendGrid API でメールを送信する
SendGridのPython用ライブラリを使ってメールを送信するメモ。なんか妙にいろいろハマってしまった。。。 バージョンは5.6.0で現行6.0.2よりちょっと古い。引数とか割と違うし、結局ソースコードみるのが早い。。。 環境 環境は以下。 macOS mojave 10.14.4 python 3.7.3 sendgrid 5.6.0 最新の6.0.2だと引数とかいろいろ違ったので、バージ... -
自宅サーバ/VPS/クラウド
DynamoDBにboto3でトランザクションな書き込み
DynamoDBはトランザクションをサポートしている。とはいえ基本的に原子性を求められるようなユースケースでは使わないほうがよいと思うけれど、できると幅が広がるので、覚えておいて損はない。ということで、boto3での使い方のメモ書き。 やること 以下のようなテーブルを作る。 テーブル名 transact-test パーティションキー user_id use... -
プログラミング
Web APIのエンドポイントを考えるときの自分の指針
タイトルまま。APIを作り始めてまだ1年にもたたない若輩者だけれど、自分なりに勉強して考えてきたことをまとめる。まぁそのレベルなので初心者向け。Web APIの設計でエンドポイントをどうするか、自分がどういう理屈で考えているのか、一緒にやっている人たちに伝えるための記事であり、備忘録でもある。 極論、APIは一つでなんでもできる A... -
自宅サーバ/VPS/クラウド
AWSのAPI Gateway + LambdaによるWeb APIでクエリ文字列を用いるcloudformation用テンプレートファイルの記述(swagger形式)
どうしても毎度長いタイトルになってしまうなぁと思いつつ、表題のとおりで、AWSのAPI Gateway + Lambdaをつかって、クエリ文字列を取れるcloudformation用のテンプレートファイルの記述の仕方についてメモ。長い。 設定ファイル /users/{user_id}?t=hogehoge のように、t=hogehogedeでクエリ文字列を取るようなAPI、updateUserを作成したい... -
サービス開発
悩みを分析して、解決を目指すWebサービス「あどにゃーのお悩み分離」のお手伝いをしました
悩んでいることあります?自分は悩みしかないです。日がな一日悩んでます。悩みというのは難しいもので、考えていくとだんだん泥沼にズブズブはまり、しまいにもはや何に悩んでいるのかもわからなくなる闇。そして気づけば、何もしないうちに時間ばかりがたっている。 どうせウダウダ悩むなら、気休め程度にやってみないか 「あどにゃーのお... -
自宅サーバ/VPS/クラウド
AWS SQSについて学ぶ
AWSを触り始めて一年くらい経過するのだが、実はいまだにSQSをまともに触っていない。ずっとやらないとまずいなぁとは思いつつ、目の前のタスクに忙殺されていた感じなのだが、Kindle Unlimitedで薄い入門書があったので、とっかかりによいと思って触ってみた。 Kindle Unlimited散策 自分はAmazonのKindle Unlimitedに入っていて、正直あま... -
自宅サーバ/VPS/クラウド
AWS CLIでよく使っているコマンド
AWS CLIでよく使っているコマンドの覚書。よく使っているのに忘れるのかと言われるとつらい。いつも履歴から使っているから、たまに新しい環境にいくとわからなくなってつらい。 使用するprofile # profileの作成 aws configure --profile {new-profile} # 確認 aws configure list # 実際に使う時は--profileを使う aws s3 ls --profile {ne... -
プログラミング
JavaScriptのrepeat()のポリフィルを読む
とてもつらいことに、開発中のサービスでIE11対応のお達しが出た。それまでまぁ対応しているようないないような、まぁしてないんだけどと曖昧な態度でのらりくらりとかわしてきたのだけれど、そうもいかなくなり。 ということで、ECMAScript 6で追加された仕様であるStringのrepeat()が使えなくなり、ポリフィルで対応することになった。読ん... -
プログラミング
iOSデバイスだけブラウザバックでキャッシュを利用されて困った、しかもサーバー側の環境によって異なる
Webサービスのリリースで、最近iPhoneなどiOSデバイスだけ表示がおかしい、ということがあった。調べてみると、どうやらiOSデバイスでブラウザバックをしたときに、JavaScriptで前の値が残っていて、それに起因するエラーであった。 iOSデバイス以外では再現しなかったし、もっといえば開発環境でも生じない事象で、なかなか悩まされた。まぁ...