私が歌川です

@utgwkk が書いている

ゴールドカード

f:id:utgwkk:20190703011053j:plain

最近手に入れたゴールドカードたちです。

DENEN

6月、行きつづけてたらついにゴールドカードになった。 思ったより安くてお得みたいな感じになってよい。

HUB

6月、行きつづけてたらついにゴールドカードになった。

HUBのゴールドカードの獲得条件は明示されておらず、インターネットで検索すると、どうやら来店日数が店舗で上位2位である必要があるらしい。 条件を満たした状態で店員に声をかけないと交換してもらえない、みたいなことが書いてあって、ゲームの隠し要素みたいな感じでおもしろい。 私の場合は、会計してたらカードを席までお持ちしますと言われて、ピンポイントなトラブルかなと思っていたら席でゴールドカードを渡された。

ゴールドカード修行、獲得すればステータス、みたいなことがインターネットに書いてあるけど、自然と獲得してしまったのでとくに実感がなく、何円以上の注文をすれば5%引きよりお得になるかについて考えていた。

気持ちが沈んだときにHUBにアブサンを飲みに行く、みたいな生活をしてたら獲得したので、ゴールドカードが欲しいのであればそういう生活をすればいいのではないか。

Ansibleでitamaeのexecuteやnot_ifのようなことをする

さまざまな事情があって、Ansibleでシェルスクリプトを1つのtaskとして実行したくなったり、コマンドのreturn codeに応じて処理を分岐したりしたくなると思います。 itamaeなら executenot_if で実現できるのですが、同じことをAnsibleでやろうとして手間がかかったので記録しておきます。

シェルスクリプトを実行する

shell リソースでコマンドを実行することができます。 さらに、YAMLでは複数行の文字列を書くことができるので、次のように書くことができます。

- shell:
    VAR=`command_expand`
    command1;
    command2;
    command3

注意点としては、複数行のコマンドを入力しても一度に実行されるので、シェルスクリプトと異なりコマンド区切りの ; が必要です。 あまり検証していませんが、POSIXに準拠しているシェルスクリプトなら対応しているのではないでしょうか。

コマンドのreturn codeを取得する

shell リソースでコマンドを実行することができるので、その結果を変数に格納すればreturn codeが取れそうだなということをすぐに思いつくと思います。 たとえば次のように書けそうです。

- shell: which hoge
  register: check_result

しかしこれだけでは、 which hoge のreturn codeが0でない場合にfailになります。 この場合ではfailになりうることは分かっていて、我々はreturn codeを使って分岐したいのです。

ここではfailを無視するために ignore_errors: yes を追加します。

- shell: which hoge
  register: check_result
  ignore_errors: yes

これでめでたく which hoge のreturn codeを check_result.rc で取得できるようになりました、といきたいところですが、まだあります。

このtaskは、check modeのときは実行されません。 したがって check_result という変数が定義されないので、これ以降のtaskで check_result を参照するとエラーで落ちます(!)。

check_mode: no を追加してやればcheck modeでも実行が強制されるので、 check_result を参照できるようになります。

- shell: which hoge
  register: check_result
  ignore_errors: yes
  check_mode: no

組み合わせる

- shell: which hoge
  register: check_result
  ignore_errors: yes

- shell:
    VAR=`command_expand`
    command1;
    command2;
    command3
  when: check_result.rc != 0

これで executenot_if のようなことができるようになりました。よかったですね。もうちょっと楽に書けないものか。

参考

自宅では飲酒をしない

日ごとの飲酒の有無をスプレッドシートに付けてみたところ、思った以上に飲んでいる日が多いということがわかった。

docs.google.com

スプレッドシートに記録するのとは独立に、お酒を飲みすぎでは?? と思っていたので、まずは自宅での飲酒をやめてみることにした。

つい最近までずっと、スーパーでお酒を買って自宅で飲むという流れが形成されていたけれど、日ごとで見たら飲酒回数がすごい人みたいになってしまった。卒論を書いていたときは毎日飲酒しながら書いていた気がする。お財布と肝臓の両方に響くことは火を見るぐらいには明らかだと思う。

今は家ではコーラを飲んでいる。お酒と同じ値段で3倍ぐらい量があって味がしておいしい。お酒に関して、よく、ジュースでいいんじゃないですか、って言われるけど、ジュースでいい場合がけっこうあると思うし、無理に飲酒しなくていいと思う。

『知的生産の技術』を読んだ

知的生産の技術 (岩波新書)

知的生産の技術 (岩波新書)

utgwkk.hateblo.jp

そういえば高校生のときに『知的生産の技術』を輪読する授業を受けた記憶があるけど,どんなことをしたのかぜんぜん覚えていない. このたび改めてちゃんと読んだ.

1969年*1の本だが,現代に通じる話が多い. 記憶をしないために記録をするというのは,普段の生活でもずっとやっていることだと思っていて,タスクはタスクリストに書くし,日々の生活の様子はSNSに書き,その結果つい最近のことでもまったく覚えていないということがある. 覚えていなくても読み返せば記録に残っているので思い出すことができて,そのぶん知的生産活動に打ち込める.

いっぽうで,タイプライターと日本語入力の問題など,現代では解決されているようにみえる問題についてもいくつか言及されている. ワープロがない時代の試行錯誤の様子が垣間見える.

好きな部分を引用して締める.

ある作家の作品のなかに、只棹埋男翁という老学者がでてきて、おどろいたことがある。その老人は、しめきりがきても文章ができあがらないので、たいへんくるしむのだが、夜中になると、とつぜんにキツネがやってきて、とりつく。すると、たちまちにして文章ができあがる、というのである。

みなさんは,知的生産活動をしていますか?

*1:なんと50年前

ご報告

gyazo.com

このたび卒業に必要な単位が揃いましたので,京都大学工学部情報学科を卒業することとなりました.

中国語の講義に出席できなくなったり,1回生のうちに人文社会系科目を取りきれなかったり.必修科目を2年かけて取ったり,4回生になっても単位回収を行ったり,などなどいろいろありました. 卒論を書いているときがいちばん大変で,ツイッターにもその様子が現れていました. なんとか卒論を書き上げ,発表をやりとげ,合格となってホッとしました.

この場を借りて,指導教員の先生,ラボの先生方,ラボの皆様,サークルの皆様,学科の皆様,ツイッターにいる皆様,お会いしたことのある皆様,鳩羽つぐ様,などなど,さまざまな方々への感謝を申し上げます.

これから

京都大学大学院情報学研究科というところに進学する予定です. したがって,ひきつづき京都にいるということになります.

飲みに行くぞ

卒論を書いてるときは雑な飲酒ばかりしてたので,丁寧に🍺とか🍶とか飲みたいです.

欲しい

あわせて読みたい

utgwkk.hateblo.jp

utgwkk.hateblo.jp

utgwkk.hateblo.jp

utgwkk.hateblo.jp

utgwkk.hateblo.jp

卒論試問会全員合格

卒業できる見通しが立ちました.

おまけ

食べすぎ

ここ1週間ぐらいずっと食べすぎている気がする. 卒論のストレスのことを考えると,試問会が終わるまでは食べすぎる傾向にあると思うので,終わったら運動のこととか考えたい.