読んだ。ほんとに工場努めの話。
よい記事だ一年前の俺。おぼろげに俺の暗黒面に社会還元性を付与して社会参加していくぞという目標があった。この一年毎日短歌を一日一首詠んでいた。それがそれにつながっていた気がする。
が、最近一日一首ノルマをサボっている。きっかけはYoutubeの見すぎで短歌作る時間消えていたからという気がするがしかし今までなら夜ふかししてでもノルマ達成を優先しただろう。下書きから雑に作ってでも。それすら最近やってない。ノルマという感覚が非常に機能していて一日一首を続けられた。ノルマがなぜノルマになったのか。noteに気がついたら毎日投稿していたからだ。SNSの楽しさと短歌を作る楽しさのシナジーが発生していたのが大きい。
が、最近noteめんどくさいみがある。やはりいいねノルマがつらい。10人もいないくらいにしか毎日いいねしてないんだけどそれすらめんどい。記事読んでおもしろかったらいいね、が正解なはずなんだが、記事読まずしていいねするようになったここ数日なのでもう終わりだって気がする。まぁバッサリ辞める必要はないので気が向いたらやるくらいでいいんじゃないかな。っていう。。。
問題は、SNSという動力が減少してきたことで短歌を作るルーティーンが乱れることにある。短歌はまだまだ続けていきたい。SNSに投稿するのを控えるぶんを歌壇に投稿したい。一日一首のルーティーンを維持し短歌力を維持成長させなければならない。ではどうモチベーションを、短歌を作る動力を維持するのか。
ひとつ、上記の記事だ。肥大した自我そのものが社会的価値を持つようになることを願うことだ。「認められたい」としろくま先生のお言葉が思い浮かぶがそれもあるだろう。しかし、肯定なのだ。否定しつくされた自分の救済を望んでいるのだ。あの日死ななかった過去の自分のつよき理性を肯定してあげたい。いつかタイムマシンであのころの自分に会いに行って、話をずっと聞いてあげたいのだ。連合弛緩的言語ゲームにハマっていた自分に社会性のある言語ゲームの道を教えてあげたい。短歌というささいなフォーマットにのっとるだけでだいぶ世界が広く優しく見えることを告げる。その時に自分の歌集をお見上げにしなくちゃ。
そうか歌集を作りたいんだな僕は。
-- blog :: Show a => a -> IO Text
blog 俺
ダンプといえばData::Dumperかトラックかっていう辺りで生きている今日このごろです。このごろとはここ10年を指しています。とはいえ今日はここ1,2週間くらいの話をしたいと思います。お終い。
さて、仕事やめたいみが過去最高に高まっている。~みってもう死語なん?全然見かけんくなったんだがアンテナの方向性がだいぶ変わったからだろうか。つまり、仕事辞めたい。まじでやめたい。数日前に辞めると決断した。はずなんだが、そのはずなんだが、そのはず~~。どういうことだってばよ。はっきりしてるんだよな、ここのあたりでコンフリクトが起こる理由は。「辞めたいのに辞める勇気がない」
箇条書きにするいみあるのかこれ。余計なことばかり書いて。
持病が育てた理性として行き過ぎた相対主義が根付いていて、そのせいで出る杭を自ら叩こうとしてしまう。人生の岐路をこの辺としようよたのむからさ。
僕は最初、Rustで書こうとしたが所有権のあれこれをクリアできず挫折した。
メモリをRc<RefCell<Memory>
とかでごまかそうとしたけど、さすがにあかんやろて思った。
Rc<RefCell<>>
のオーバーヘッドがどれくらいなのか知らんけど、メモリアクセス毎にmemory.borrow()[addr];borrow_mut()[addr] += 1
ではむりがあるよなぁと詰んでた。
struct MBC { ram: RefCell<Vec<u8>> } struct CPU { mbc: Rc<MBC> } struct PPU { mbc: Rc<MBC> }
こんなかんじで、CPUとPPUからメモリにアクセスしたいと考えていたので構造体に組み込んでいたわけだけど、これじゃだめで
impl Gameboy { mbc: MBC; cpu: CPU; ppu: PPU; fn exec(&self) { self.cpu.exec(&mut self.mbc); self.ppu.exec(&mut self.mbc); } }
こんなかんじになるのかもしれない。不要な時は無駄に引き回したりせずに、必要な時に必要な権限を与えてあげるということを徹底するといいのかもしれない。俺はこの程度のこともわからんかったんだな。。。結局Typescriptで書いたGBEは上側の構造体になっている。
とかなんとか思ってたけど、上から渡す感じじゃなくて、下から引っ張る感じで所有してるのかな。両方できそうだが、僕ではわからん。なんでInnerで分ける必要があるのだろうか。
//context.rs Self { cpu: crate::cpu::Cpu::new(), inner: InnerContext0 { bus, inner: InnerContext1 { rom, ppu: crate::ppu::Ppu::new(dmg_palette), apu: crate::apu::Apu::new(), inner: InnerContext2 { model, running_mode, vram: vec![0; vram_size], vram_lock: false, oam: vec![0; 0xA0], oam_lock: false, external_ram, interrupt_enable: 0, interrupt_flag: 0, stall_cpu: 0, wake: false, }, }, }, //gameboy.rs pub fn exec_frame(&mut self) { use context::*; self.ctx.apu_mut().audio_buffer_mut().buf.clear(); let start_frame = self.ctx.inner.inner.ppu.frame(); while start_frame == self.ctx.inner.inner.ppu.frame() { self.ctx.cpu.step(&mut self.ctx.inner); } }
CPUのマクロ](https://github.com/tanakh/tgbr/blob/master/tgbr-core/src/cpu.rs)は狂気じみてるが、しこしこ手で書いていた僕も書きながらマクロでなんとかなりそうだなとか思いながらTS書いてたな。ここまでショートカットできるなんて思いもしなかったので怖い。
当時のテック系文体の流行りなんだろうけどくっそ読みにくいというか内容がない。日本語ではなくコードを読めとして書いていたと思うのでそうなるわな。すごい今見直すと恥ずかしい文章で黒歴史になりかけてる。未熟な自分を許そうぜ。とかいうてますけども、このブログだってそうなんだよな。数年後読み返した時に恥ずかしくなる文体を今書いているのだろうな。今この瞬間もどうにもならない文体をどうにかしたい欲はあるが、普段からまともな文章読んでないせいでこう成り果てているのでしょうがない。文体の遍歴って素人にとってはひとつ楽しみであるのかも知れない。人に読ませるための文章じゃないからなここは。ブレインストーミング重視の場所なのでこれはこれはで良いはずだと思いたい。文体変化やりたいな。