2020年の振り返り

今年は世界的にコロナの影響で前例のない状況となり,様々な変化があった一年となりましたが,個人的にも(初)転職という大きな転機があったりしました. そんな2020年の出来ごとや取り組んだことなど,思い出を振り返っていこうと思います. 転職 2020年3…

関数型言語 Coconut に触れてみた

Coconut とは functional-style で書きやすいように Python を拡張した言語で, Python にコンパイルされます. 特に関数型言語を書いた後で, Python でコードを書くとき綺麗に書けないなぁと思うことが多く, awsome-python を眺めていたときに気になった …

mackerel-lambda-agent を作ってみた話

先日, AWS Lambda の新機能 Lambda Extensions がリリースされました. モニタリング,オブザーバビリティ,セキュリティ,ガバナンス用のツールと Lambda との統合を簡単にすることを可能にします. 従来 Lambda でモニタリングするときなどは,どうしても…

Python で Go のチャンネルを実装してみる

Go 言語では,並行処理プリミティブとして channel が定義されていて,並行処理の中核をなします. Python でも Go-like に並行処理を書きたいなと思ったので実装してみよう!というのが今回のお題です. 調査編 まずはどう実現しようかと調査をしました. …

asyncio の仕組みを紐解く

TL; DR asyncio ではイベントループを使っている イベントループ上で Future や coroutine を動かすためには,タスク登録されている必要がある タスクに定義されたステップ関数をイベントループ上で繰り返し実行することで,1ステップごとの実行を可能にして…

Scalaでクラス変数を一時的に変更する

今回は,以下のようなシングルトンオブジェクトの value を特定のブロック内でのみ "hoge" として扱いたい,というようなケースを考えます.(そもそもそんなケースないようにするのが自然であるのは,それはそう) object SharedString { var v = "default"…

AWSで作るGit Mirroring API

Gitのリモートリポジトリを一方的に同期するAPIを作ってみました. github.com APIをkickすると,リモートリポジトリAの内容がリモートリポジトリBに同期される,というイメージです. 背景 GitHub便利ですよね.理由として,GitHub自体の便利さももちろん,…