koluku's blog

コードは毎日の欠片

プログラミング

urfave/cli/v2ではRunContextでContextをもたせることができる

TL;DR urfave/cli/v2ではRunContextでContextをもたせることができる(それだけ) 本題 Goでコマンドラインツールを作る際に皆さんはどんなライブラリを使っていますか?自分はflagだと薄いのでちょっと機能を拡張するときに困り、cobraだとライブラリ自体が…

不完全なjsonを断続的に[]byteで受け取る場合のデコード #go

TL;DR JSONが分割されて送られてくるのが予想される場合は io.Pipe() で受付を待ちながら json.NewDecoder でDecodeしよう 本題 GoでHTTPリクエストした結果がJSONの場合はBodyをそのまま json.Unmarshal() に投げてデコードすることが多いが、途中で打ち切…

GitHub Actionsでactions/github-scriptからJSONのレスポンスを取得する

※Zennからの移植記事です GitHub ActionsでGitHubに関する操作をしたい場合にREST APIを叩くよりも楽に書けるactions/github-scriptがある。APIの叩き方はOktokit.jsとほぼ同じJavaScriptで書くことができる。 (ただ最近はGitHubホストランナーのUbuntuなど…

Perlでズンドコ問題を短くしてみる

こちらはPerl Advent Calendar 2020の20日目の記事になります。 昨日はtecklさんのPerlでGitHub webhookを受けるbotを作ってみた話でした。 qiita.com 先週何も考えずにAdvent Calendarに登録して今日が投稿日だということをメールで知りました。一文字たり…

1時間でやるRaspberry Pi OS構築RTA

Raspberry PiのOSイメージごと吹き飛ばすことが稀にやっちゃうので普段行っている再書き込みが何時間でできるか計測してみた。 結論から言えば1時間で最低限のセットアップはできた。 5:15 microSDカードをフォーマット https://www.raspberrypi.org/downloa…

MouseでDeep Copy #perl

Mouseのオブジェクトは変数で代入してコピーを作るとShallow Copy(値が複製されず元のオブジェクトへのレファレンスになる)されます。 例えば、Mouseでモジュールを下のような作ったとします。 package Person; use 5.32.0; use warnings; use utf8; use Mou…

🕗Perlの時間はモジュールで #perlwakate

2020/07/01 にオンラインで開催された 「Perl若手の会(https://connpass.com/event/179235/)」でのLT資料です。 speakerdeck.com 下記の文章はスライド内容を一部修正したものです。 引用の中は特にURLが無い限りはperldoc.jpからの引用です。 Perlでの基本…

リストを連続した同じ要素のグループに分ける #python

小ネタ。よく使うけど忘れるのでメモ。 「110011」みたいに0と1で構成されていたら「11」「00」「11」に分割して処理したいときは、itertoolsのgroupbyを使う。 from itertools import groupby s = [0, 0, 2, 2, 1, 1, 3, 0, 5, 5, 1, 1, 4, 0, 0, 1, 1] for…

Gmailのアーカイブ済みメールを全部既読にする

普段はGmailを優先トレイで使っているのでこういう自動化は別にいらないのだけれども、そもそもの原因はGmail側だった。 Gmailがカテゴリを実装して強制的にタブ表示にされてたときに、未読のメールがあったら常に表示されていたのでアーカイブしてもInboxか…