Goで簡素な Lisp処理系を書いた

github.com

最近 Goに触れていなかったので復習も兼ねて. 内容としては下記の本に載っている Common Lisp風の簡易 Lisp. 本では Common Lispで書いているので read周りとか楽にできる部分があるのだけれど, Lisp系言語以外だとそんなわけにはいかないのでそこは地道に書いた. あとオブジェクト指向というかクラス継承を使って書かれていた部分を Goっぽく(?)落とし込んで書いた. その他の方針などはだいたい本のまま. 以前もっと簡単なものを Cで書いたことはあったけど, それよりは幾分進んだ内容で適度にいい刺激にはなったかと思いました.

対話によるCommon Lisp入門

対話によるCommon Lisp入門

最近読んだ漫画

アニメがすごく面白かったので購入. アニメいいけど, 漫画も良かった. アニメでは省かれているけど, 原作では準備の前の説明とか調理前の説明などが充実しており全く知らない自分にとってもわかりやすかった. 締めるシーンも原作以上にあり, 生き物を食べるということがどういうことかというのもちゃんと描画しているのがよいです. 釣りには一ミリも興味がないけど, とても楽しめた. 作者の方が熊本豪雨で被災して一時休載というのが残念. 再開の見通しはたっているそうなので, 話がまた貯まったら 2期に期待したい

amazonの recommendに出てきてそういえばアニメ見ていたなということで購入. なかなか楽しめた. 今アニメが放送されたら主人公の名前と父親の声優から, 絶対にゴーストオブツシマネタで盛り上がったんだろうなと思った. こちらも 2期があれば是非みたい.

Git commit author, emailの書き換え

stackoverflow.com

意図せず普段使い name, email以外が設定された環境でコミットしてしまった場合の対応

#!/usr/bin/env bash
set -e

NEW_NAME="NEW_NAME"
NEW_EMAIL="new@gmail.com"

git filter-branch -f --env-filter "
    GIT_AUTHOR_NAME='$NEW_NAME'
    GIT_AUTHOR_EMAIL='$NEW_EMAIL'
    GIT_COMMITTER_NAME='$NEW_NAME'
    GIT_COMMITTER_EMAIL='$NEW_EMAIL'
  " HEAD
% git push -f

epub reader for Ubuntu

技術書典マーケットの本を買ったら epub形式しかなくて, デフォルトでアプリが入っていないってことで適当に探すと Thoriumがマシそうだったのでしばらく試す.

www.edrlab.org

インストール方法

  • 上記のサイトから debパッケージをダウンロードして, sudo dpkg -i *.deb でインストール

その他

  • snapで同名のパッケージもあったけど, 天体シミュレータで全然違うものだった
  • fbreaderなるものがはじめ見つかったが日本語文字が表示されず
  • pandocで epubから各種形式にあったので試してみたが, 日本語フォントの設定の問題のためか日本語が表示されず

リモートワークを始めて買ったもの

フットレスト

昔サンワの重々しい感じのものを使っていたが, ごついし, 固いし, 小指をぶつけたら痛いしということで処分して以降使っていなかったのだが, 家での作業が増えて検討してところよさげなものがあったので買ってみた. 感想としてはとてもよい. やわらかめで大きさも小さく, 足をぶつけても全く痛くない. 見た目も悪くない. ちょっと高めだけど, 十分その価値はあると感じる.

バリカン

美容室に行くことがリスク及び自分が害を及ぼす可能性が出てしまったので, セルフカット目的で購入. 正直安いのでよかったのだが, 手ごろな価格のものがほとんど品切れだったのと評判があんまりよくないのが多かったのでいっそのこと評価が良さげなプロ仕様のものを買った. 安いやつの 3-4倍の価格ではあるが, 1年セルフカットしたら余裕で元は取れる. 他のバリカンを知らないので適切な感想かは不明だが, 切れ味等に問題は全くなく, 難なく坊主(五分刈り)にできた. 坊主にしたのも 30数年ぶりだし, セルフカットもしたことなかったので一刈目を入れるのにすごく躊躇したが, 思い切ってバサッと入れて後戻りができない状態にしていこうはすんなり受け入れられた.

生まれて初めてのセルフカットになったわけですが, 坊主といえどきれいにやることはかなり難しく, これでいいだろうと思ってシャンプーしたら長い部分が残っていることに気づくということを 3回ほど繰り返してなんとか見た目は違和感ない程度にできた. ただそれでも後からじっくり触ってみると長さが微妙にバラバラであることに気づき, 難しさを感じた. 元の日常になったら面倒臭くて多分自分ではやらないだろうなぁと思うが, 1年はとりあえずセルフカットで済ます予定.

その他

ずっと家にいると物がたくさんあることが気になったのと, 会社マシンを家に運ぶことになったので, これを機会に諸々(古いモニタ, 使わなくなった PC etc)処分したり, スピーカを片づけたり, 配線周りをきれいにしたりした. 現状は以下のような感じ.

f:id:syohex:20200504213559j:plain

アケコンとか GCコンとかを全部無線に置き換えられたらさらにすっきりできそうなんだけど, そこはまだ代替手段がない.

Show smile in prompt if Git commit hash is lucky

Configuration

setopt re_match_pcre

## show git branch at right prompt                                                                                     
autoload -Uz vcs_info
zstyle ':vcs_info:*' formats '(%b)'
zstyle ':vcs_info:*' actionformats '[%s]-(%b|%a)'
precmd () {
  psvar=()
  LANG=en_US.UTF-8 vcs_info                                                  

  if [[ -n $vcs_info_msg_0_  ]]; then
    local rev=$(git rev-parse HEAD 2>/dev/null)
    if [[ $rev =~ '([0-9])\1{3}' ]]; then
      psvar[1]='😊 '
    fi
    psvar[2]="$vcs_info_msg_0_"
  fi                                                                                                       
}
_DIRPART=%B%{$fg[cyan]%}'[%(5~,%-2~/.../%2~,%~)]'%{$reset_color%}%b                                     
RPROMPT=%B"%1(v|%F{magenta}%1v%f%F{green}%2v%f|)"%b${_DIRPART}

Image

f:id:syohex:20200427224124p:plain

Commit ID is generated by commit_artist

Reference