mutao.net

いわゆる雑記。

勉強になったOSS

ただGitHubでスターをつけているだけだとなんとも実りがない気がしたので、メモかつ何がどう参考になったかというのをまとめておく。

全部に言えることは「実装がきれい」。

Go

fast-service

github.com

エキスパートたちのGo言語の「1.3 インターネット回線のスピードテスト」で知った。

  • sync/atomiパッケージを使用した非同期処理の実装
  • Goroutine/Channel型の実装

を学ぶには実践的でとてもよかった。

Goを学びたての時に読むと理解が深まると思う。

gihyo.jp

action-slack-notify

github.com

GitHubActionでslackに通知したいなと思ったときに使ったもの。

usesで定義する中身を知りたいなと思って見た。

中身はすごくシンプルかつやっぱり読みやすい。

Goの標準パッケージしか使ってないところを見ると流石と思う。

os.Getenvで各パラメータを参照しているところを見ると、実際どうなっているのかわかりやすいと思う。

こっちで指定したSlackのWebhookURLはコンテナの中で環境変数として設定されてるんだな。とか。

公式documentをななめ読みしたり、英語全然できないタイプにはもってこいのサンプル。

slackbot作りたい人も読むと参考になると思う。

私の中ではプログラミング言語はユニバーサル言語。

go-setlock

github.com

cronの多重起動を防ぎたいけど、CentOS7/8だしなぁと思っていたときに勧めてもらった。

daemontools-encore の setlock.c を見比べたりしてみると面白いと思う。

Go言語を読んでいたと思ったらいつのまにかC言語を読んでいたという出会いに感謝。

Perl

github.com

MySQLのスロークエリを解析したいときに使う mysqldumpslow。

「お世話になってます。あなたPerlだったのね。」と感慨深く?なった。

Perlで何かしら実装したことがある人は読めると思う。

MySQLに興味を持ち始めているお年頃なのでPerlを触る機会があってよかったと再認識できる。

Perlアレルギーの人もぜひ一度触ってもらいたい。何にしろ食わず嫌いはよくない。