魂の生命の領域

AWS とか Python とか本読んだ感想とか書きます

Python

『部分』

gist.github.com

Python の bool 型でインチキ哲学を構成する

Python における bool 型は、int 型のサブクラスらしい。 ブール値 (bool) 真偽値の False と True を表します。False と True を表す 2 つのオブジェクトのみがブール値オブジェクトです。ブール型は整数型の派生型であり、ほとんどの状況でそれぞれ 0 と 1…

組み込み型の join メソッドとか map とか

docs.python.org とりあえず int 形のリストを用意します。 >>> a = list(range(10)) >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] これを標準出力にこんな感じで出したいとします。 0 1 2 3 4 5 6 7 8 9 よく思いつくのが str.join() メソッドですよね。 ですが、…

今更 Gist を使った

めちゃくちゃ便利だなおい!今更だけど! ちなみにコードは何でもよかったので、手元にあった進次郎構文をリスペクトした冗長で自明な処理を書いておきました。 インフラだと冗長性は大事ですからね。多分コードベースでも同じ(ジョークです)。 あと、 git…

Python の hmac モジュールのメモ

new メソッドでオブジェクト生成 ダイジェスト値の取得 ダイジェスト値の検証 ダイジェスト値の取得の他の方法 update メソッドの話 あとがき API キーの検証ロジックやらを実装しようとするとたまに登場するであろう hmac モジュールです。 RFC レベルまで…

Cognito の USER_SRP_AUTH を Python で理解したい

Cognito の USER_SRP_AUTH とは ソースコード ここまでの参考情報 なぜ Python で頑張るのか 元ネタ ※注意 RFC あるよ この記事内だけの前提 全体像 クライアント側での計算を概観 サーバー側での計算を概観 全体の流れ 0. 多用される計算 1. SRP_A を算出す…

Cognito の USER_SRP_AUTH とは? Python での実装は?

Cognito の USER_SRP_AUTH とは? Python での実装は? 今回は Cognito の USER_SRP_AUTH と Python での実装について調べてみました! その結果、以下のようなことがわかりました! SRP は Secure Remote Password の略?! RFC2945 と RFC5054 が関係する…

メモ

Python の REPL で直前の出力は _ で取得できる。 >>> 1 + 2 3 >>> _ 3 >>> _ + 3 6 >>> _ 6 >>> type(_) <class 'int'> >>> _ <class 'int'></class></class>

メモ

なるほどなぁ f1 = lambda x: x + 2 f1(3) >>> 5 f2 = lambda f: f(3) f2(f1) >>> 5 (lambda x: x + 2)(3) >>> 5 (lambda f: f(3))(lambda x: x + 2) >>> 5

logging モジュールに慣れる

logging の基礎的なところを扱うサンプルを作りました。 github.com README.md に書いた内容以上に語れることがないのでとりあえずこんな感じで。 ドキュメント を眺めると色々マニアックな仕様がありそうで面白そうだったのですが、使いこなせる気がしなか…

JSON と YAML を相互変換するツールを作った

1兆番煎じぐらいいきそうですが、色々と体験できそうな技術要素があったので自前でやってみました。 github.com 導入 AWS の公式実装リファレンスだと、公開されている CloudFormation のテンプレートがよく JSON 形式なことがあります。 自分で実装するとき…

GW に作ったゴミツールをローカルから消したいので GitHub へ押しやりました

今年の GW にちょっと再翻訳で遊んでてそれを無理矢理ブログにしていました。 kesumita.hatenablog.com kesumita.hatenablog.com kesumita.hatenablog.com 記事内での使ったスクリプトは載せているのですが、ちょっとだけエラーハンドリングを付け足して Git…

methodcaller とか __call__ とかを見る

はじめに 最近は読んだ本、しかも技術書以外の小説を読んだ感想記事ばかり書いていて、エンジニアブログ感がなくなってしまったので無理矢理ネタを見つけて書きます。 operator モジュールの methodcaller 関数のソースコードを読む まずは使い方を知る Pyth…

Python 3.9 の beta 版がきたみたいだ

概要 Python 3.9 の beta 版がきたらしい docs.python.org 本当は 8/4 に半分ぐらい書いたのですが、寝落ちしてしまい翌朝になったらなんか覚めてしまい書き上げるのが今になってしまいました。まぁ需要ないから誰も困りませんがね。 何が変わったのか あん…

Python で型チェックする

概要 型ヒント をちょっと(ちょっとだけ)触ったのでメモ程度にまとめます docs.python.org ちゃんと理解したい人は以下のドキュメントを読んだ方が早いと思います。 www.python.org 型ヒント Python は動的型付け言語なので、変数の型を宣言する必要があり…

datetime モジュールのソースコードをちょっとだけ読んだ話

Introduction UNIX 系の環境で以下のコードを実行すると、整数に丸めたエポック秒が返ってきます。 一方、 Windowa 環境で実行すると ValueError が返ってきます。 from datetime import datetime result = datetime.now().strftime('%s') これ、ネタばらし…

Amazon Simple Notification Service (SNS) の不要なサブスクリプションを全部消す

概要 存在しない Topic に紐づいた Subscription を一括削除するスクリプトを書いた 背景 SNS (Simple Notification Service)で Topic を作ったとき、ほぼ確実にその Topic に配信されたメッセージをサブスクライブ(購読)するために Subscripiton を登録…

こいついつも Python の話してるな pt.3

以前 sorted() 関数について面白い使い方ができることを知って記事を書きました。 kesumita.hatenablog.com sorted() 関数は list 型でよく使うイメージでしたが試しに他の型に対して使ってみました。 >>> t = 3, 2 >>> sorted(t) [2, 3] タプルでも使えます…

テスト駆動開発の第 II 部 xUnit 読んだ

導入 概要 本題 導入 読んだので 前回 に引き続き振り返ってみようと思います。 概要 第 I 部は「2ドルと3フランを(適切な換算レートで)足し算する」ようなオブジェクトをテスト駆動で書いていこう、というお話でした。言語としては Java を使っていたので…

Slack の局所的便利アプリを作る

概要 Slack App 作りたくないですか? ということで作ります。 背景 職場は Slack をゴリゴリのゴリに使っているのでその便利は身に染みて分かっており、私生活でも使おうということで個人でワークスペースを作ったことがありました。 Slack App の練習場所…

ゼロから作る Deep Learning を読んでる 〜その1〜

背景 ゼロから作る Deep Learning はいくつかシリーズが出てますが、おそらく最初のやつです。 表紙が魚のやつです。 と思いましたが今調べたら3作出てて全部表紙が魚ですね。 背ビレがギザギザした魚のやつです。 MNIST データセット(手書きの数字の画像が…

テスト駆動開発の第 I 部 多国通貨 読んだ

概要 前回 宣言した通り読んだので振り返ってみようと思います。 見せつけるようなものではないですがコードはこちら↓ github.com 以下、 Java で書かれたコードを Python に翻訳する上で考えたこと、学んだことやらを書いていきます。 概要 テストコード イ…

デコレータを自分で作れるようにする

背景 Python のデコレータってカッコ良くないですか? 何も見ずにササっと書けたら絶対かっこいいと思うんですよね。 なので基本的な戦略を学んでみたいと思います。 Fluent Python の 第7章 関数デコレータとクロージャ を参考にしながら進めていきます。 …

こいついつも Python の話してるな pt.2

どうでも良い話 お仕事では Python しか触らないので、プライベートではフロントエンドのお勉強したいと常に漠然と思い続けています。 ですが、休日はだいたい仕事中に遭遇する、「これ以上深掘りしている時間はないけど気になるなぁ…」という事象をピックア…

再翻訳で遊びたい 〜AWS Translate 編その2〜

最高の再考 昨日の記事 再翻訳で遊びたい 〜AWS Translate 編〜 ですが、意外と文章が崩壊しませんでした。 おそらく10年近く前だと思うのですが、その頃の Google 翻訳を使ってひたすら再翻訳の作業を繰り返したときの結果が実はこの記事でして、最終的には…

再翻訳で遊びたい 〜AWS Translate 編〜

導入 再翻訳を何回も実行するとめちゃくちゃな文章になって楽しいじゃないですか。 それを自動化したかったわけです。 どうやって実現するか 最初は Google 翻訳の API を自動で叩くようなスクリプトを考えていたのですが、せっかくAWS をお仕事で専門的にや…

テスト駆動開発読むぞオイ

概要 テスト駆動開発 を読むぞ 導入 テスト駆動開発でやろう、という開発プロジェクト(こういう名前のプロジェクトではないです)に参加していて テスト駆動Python をベースに unit テストや function テストを書いたりしていたのですが、結局現時点までテ…

datetime を使わずに時間を足す

こんばんは。 とある都合で時間を全部足したくなってきましたが、私の使っている Mac には Office が入っていません。 なので Python でやりました。 なぜか datetime モジュールを使わずにやりました( datetime 型は単純な足し算ができないのでそこで考え…

低知能シリーズ

低知能なので if 文で引っかかりました。 サンプル用にこんなリストを用意します。 >>> my_list = [1, 2, 3] まぁ当然の挙動です。 >>> 1 in my_list True >>> 4 in my_list False どちらかがリストに含まれていたらOK、みたいな処理が書きたい。 >>> if 1 i…

Fluent Python メモ~その1~

Fluent Python という 800ページあるクソ分厚い本を読んでいるのですが、この分厚さからも想像がつくようにたいがい腰を据えてじっくり取り組む感じの本です。 ただ、覚えているとすぐに使えそうな内容にもちょいちょい出会うのでこういう場所にメモ代わりに…