1/5

ABC138ABを解いた. 無理やりGOを書く習慣を作ろう.昨年末には20日頑張った.無理矢理にでもコードを書くことは大事だし,仕事上競技プログラミングをやったほうがいい場面があるということがわかってきたので手慣らしだけではなくてCDくらいも解くリハビリをしないといけないな.

今年の目標は将棋プログラムをつくること. 今月の目標は本を通読すること.来月は実装する.

日記を書くということ自体が久しぶりだ.特段なにかあったわけでもないがなにか書きたいと思ったからブログを起動した.

最近節約志向になっている.きっかけは家計簿アプリで発覚した食費の想定からの大幅な乖離問題だった.毎日2000円近く使っている計算であった.流石に情けなかった.ストレスをそのまま食費に当てているのはストレートすぎて生々しい.食にこだわりがないくせにお金だけかかるというのは単純にもったいない.理由はさまあれど食費を節約することになった.

最近はテレワークが中心ということもあり,昼と夜も家で過ごすから自炊をすれば外食に比べれば一日に使う費用をかなり抑えることができる.週末に食料を買い込んで平日は家にある食料で食いつなげば平日に食費を計上することはない.そうなれば平日にお金を全く使わない生活が実現できる.というのが理想だが実際にはそういうわけにもいかない.必ずしも週末まで買い出しを我慢できるわけではないし,平日にネットで買物をしたりもする.

しかし意識し始めてから明らかに使う金額が減った.だいたい今2週間ぐらいたっただろうか.これで食費が1万5千円程度.このペースで行けば3万円である.4万5千円を意識していたからかなり大幅に抑えることができる計算である.恐ろしい.食費につられてその他のものの無駄遣いもかなり抑えられているような気もしている.しかし別に無理をしているわけでもなく,必要なものやこれはいいなと思ったものは買っているのでこれくらいの我慢なら続けられそうな気がする.ということは普段どれだけ無駄遣いをしていたのか,自己規律がどれだけたるんでいたのかという大変耳が痛い話になっていく.止そう.

自炊といっても鍋の素と白菜と豚バラ肉を煮込むだけのなんちゃって鍋や冷凍食品とパックのご飯と粉のスープとカット野菜を食べているだけである.文章にするとあまり美味しくなさそうに見えるがコンビニの弁当よりは健康的な気がする.料理を頑張る期リョウクというものはほとんど存在しないから手がかからないものにしか手が伸びない.最近気がついたのだが野菜は炒めるよりも茹でるほうが好きかもしれない.脂っこい野菜があまり美味しく感じない.鍋とカレーと冷凍食品過ごし続けられるのだろうか.とはいえたまには外食をしないと飽きてくる.無理はしない.

誕生日に京都に行くことにした.誰も祝ってくれないならせめて自分が好きな場所で過ごそうという話だ.仕事の中日なので仕事終わりにビジネスホテルに泊まって次の日を過ごす. 朝はスマート珈琲と決まっている.たまごサンドど熱いコーヒーで始まる.逆に朝の時間がここで始まるから前日夜は散歩をしてもよいはず. 風呂はサウナの梅湯でで浴びて,鴨川沿いを散歩するのが楽しそう.風呂に怖い噂が流れているけど行ってみて勝負でしょ. 行きたい場所は,清水寺,八坂神社から円山公園を回る「古都」ルート,そのまま平安神宮方面に抜けて,狛うさぎの岡崎神社とか 金閣寺,北の天満宮下鴨神社. まぁなんにせよせかせか過ごすよりのんびり過ごしたいな.あんまり堅苦しく決めたくはないけど時間を持て余すと気持ちが焦るが見るところはいっぱいある.寺とかは17時に閉まるけど神社とかはゆっくりいけるのでは.だからさっさと金閣寺とかを終えて,左京区に行くとか. 清水はさっさと終わらせたいからそっち優先かな.清水,太宰府金閣寺龍安寺,下鴨,で京都に戻ってくる.お昼.鴨川

一日の時間の使い方. コンパイラは気がつくとすごい時間を使っている時がある. 同じことに使える時間は制限したほうが集中力の観点で利があるしひょっとしたら持続性にもよいかもしれない.区切ることであれをやらなくてはという焦りが一日中あるような状態からは開放されるだろう.そしてその時間というのも短いほうが良い.

この無為な生活が暫く続く以上,習慣は導入すると良い気がする. 例えばコンパイラの時間,使い捨てのコードを書く時間,書籍を読む時間,散歩の時間,将棋の時間,コンピュータに関することを絶対にしない時間とか.睡眠時間が8時間だとして1日は16時間.食事や家事に3時間は必要だと見積もっても13時間もある. ひとつのことに1時間割くとして,休憩を15分だとすると10コマ.とはいえ集中するのなんて1日のうち3コマか4コマに留めるから意味ないか.これを書いている時間は何に入るのだろうか. 人生について考えている時間か.

薬の影響が出てきた気がする.かなり意欲がように感じるので良いかもしれない.

git submoduleという概念を知った

hugoのtutorialで

git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke

というのがあり調べたが,別のリポジトリをgit管理のリポジトリの配下のフォルダに置く事ができる機能らしい.

メモ: 見たqiita qiita.com

大学の図書館に久しぶりに訪れてパソコンを開くと何故か活力的な気持ちが湧いてきたような感じがしてきた. ここに来るときは頑張るときなのでその習慣が自分に働きかけているのかもしれない. 今日はずっと抱え込んでいたコンパイラの問題を片付けたいなと思う.

毎回思うが図書館のなんでもない椅子が一番体にあっているような気がする. モニターも真正面を見るよりもラップトップの少し下を見るくらいが見やすいのかもしれない. 手書きもずっとそういう角度でやってきたのだから習慣がそうさせるのだろうか.

詰まっていたのは関数の定義と呼び出しをそれぞれ違う列挙子で定義してあげる必要があるところか.

いろいろと実装として変なところが目立ち始めてきて,ここに来て破綻を迎えているような気がする.式は必ず最後にpush raxで終わっているけど文はa;とか1;みたいな式に;を追加した文であればそうなるけどifなどの制御文だとpush raxで終わっていないので文を生成したあとにpop raxをする正当性がない(スタックに値が入っているとは限らない).これは制御構文もなにか値をpushさせておけばいいのか. あとは,return文はepilogueに相当する部分を生成しているが,これと関数定義ノードでのepilogueとの整合性が取れていない.returnで終わる関数の場合,epilogueが2回繰り返されてしまうことで関数を2つ抜けてしまうようなアセンブリになってしまう.そもそも関数がreturnを必須にしていればgen()のときにepilogueを書かなくてすむのではないかな. あとはローカル変数の定義の仕方だろうか.関数間で同じ名前の変数を使用しようと思うと無理があるのか?いやprogram()で関数を1つずつ処理する都度グローバル変数のlocalsをNULLにすればよいのか.ASTにはコード生成に必要な情報が入っているからgen()の呼び出し時にlocalsがNULLになっていても問題ないか.

なんだか技術的負債という感じでとてもつらい. 今変更しようとしているものを一旦全部stashして,まずは引数ありの関数呼び出しを実装してリファクタしたあとじゃないと関数定義できなさそう.

とりあえず今日は外観を掴んだだけ良しとしよう.あしたは将棋みながらrasberry piを触って,病院にいこう.

what is "42" for you.

銭湯に入りながらそんなことを考えていた. 思考の過程が思い出せないが,自分にとって究極に大事なものが何であるのかを意識しておくということは生存戦略上有用なような気がする. きっと苦手なことは苦手なままでそれがそのまま精神を蝕んでいくことになるのであれば,逆に何が自分を支えることができるかということを認識しておけばそれを守る事ができるかもしれない.あるいはそこを拠点にしておくことができるかもしれない. 抽象的だけどそういったことを考えていたように思う.でもそれは何かはわからない. プログラミングがそうかと言われるとそうではない気がする.それよりは自分の興味の端緒となった発生とかのほうが可能性があるかもしれない.しばらく生物寄りの本を読んでいないが.

他に考えていたのは,読む見るなどの受動的な営みは消費する精神は少ないが魂を癒やしてくれる量はそれほどなく却って消耗してしまうだろうということだった.時間ができたときには消費ではなく生産を行ったほうがより魂にとって癒やしになるだろうということを考えていた.時間が短いとあまりそういうことにエネルギーを割けないがそうではないときはこちらのほうが得かもしれないという程度ではある.例えばこういった文章を書くのもその一環だ.

ものを作るということは救いにつながるのだとしたら,僕は何をしよう.プログラムを書くよりももっと直接的な実態のあるものを作ったり触れたりする方が効果が大きいように思う.一方で部屋を圧迫することは精神をすり減らすことにつながる.新しいPCの環境を作るのはどうかということを考えた.古いラップトップをLinuxにするとか,rasberry piを買うとか.プログラムを書くのと何が違うかというと環境が違う.環境自体を作るというのは案外結構骨がいる.

PCの組み立ても考えたが,辞めた.あれは案外すぐ終わりそうだし結局スペースの問題になる.ラップトップの古のパスワードを突破できる気もせずでrasberry piにすることにした.純粋なLinuxサーバをつくるというのはある意味初めてでそれは色々と考えることがあり面白いかもしれない.

他には消費と生産をセットにするというアイデアもでた.例えば本や映画を消費したらそれに対して文章をなにか書くということだ.旅行に行ったら紀行文を書くということだろうか.そういうことをすればただの消費ではなくなりそれが自分の贄となるかもしれない.都合よく考えすぎだろうか.

プログラムを書くとするなら,コンパイラを完成させるのが良いと思う.結構進んでいるし自分でも楽しいと思っているような気がする.あとはこの経験の延長でGoのインタプリタの本を読んで実装するのも良いかもしれない.最終的にGoのコンパイラがかけたらきっと嬉しいだろう.

他にもアイデアはあって,GitHubの自分のページにアルゴリズムの実装を載せるページを作るというのもある.コンテストサイトみたいに,題材の説明,入力と出力例,そして最後にソースコードを載せるみたいなページだ.たぶんvue.jsとかを使えばできるんじゃないかな.リポジトリの形のままでもいいかもしれない.アルゴリズムごとにフォルダを切って,データフォルダ,srcフォルダとreadmeを用意する.うーんgithub.ioのほうがいい気がする.