2022/02 ブログサーバ開発進捗(つらい)

最近全然書けていなかったので近況報告をば。

  • 卒研終わったぞー
  • 最終登校日も過ぎちゃったなあ
  • ロシアウクライナ戦争
    • 日本はかなり危機なのでは……?
    • ゼレンスキーの覚悟すごい

等々、この期間に思ったことはかなりあるのだが、取り急ぎ、ブログサーバの開発に関して。

ブログサーバの開発

ブログサーバ(not CMS, like SNS)の開発を最近始めた。

とは言っても、現状実装する予定のものは、ユーザ同士でFollowし合い、Followしているユーザの新着投稿は通知される、程度のシンプルなものだ。 将来的には、

  • Feedにも対応してRSSReaderから読める
  • サーバ同士でFederationできたり(ActivityPubで実装する気はさらさらないが)
  • 1日の間で短文を書き貯めておき、0:00になると放流する的な機能

などがあるとよさそうだなーと思っている。

開発にはPHPとそのWebフレームワークであるPhalconを使っている。

これはPhalconは高速であるためである。 普通のフレームワークPHPで書かれている。 それに対し、Phalconは、PHPの拡張(C言語などで実装され、コンパイルされる)として提供されているからである。

しかし、Phalconを選定したはいいものの、環境やらライブラリ面やらでとてもつらい。

まず、PHPのLSP(Language Server Protocol)がWindowsでは満足に動かない。 私はemacsで普段開発をしているため、LSPが満足に使えるのと満足に使えないとでは、開発時のやる気や生産性には雲泥の差が生まれる。

次に、Phalconのmigrationツールの問題である。 PhalconにはRDBMSへのmigrationツールがある。しかし、今の最新リリースで、使っているv5-beta3には対応していない。 さらに、このプロジェクトは開発が停滞していて、正直、今後この問題が修正される見込みがなさそうである。 そのため、Webフレームワークからは独立したmigrationツールを探すことになった。

3つ目に独立したmigrationツール不足である。 Phalconのmigrationツールの問題の章で語った通り、フレームワークからは独立したmigrationツールを探すことになった。 そのため、awesome-phpでmigrationの章を漁ってみたら、cakePHP/phinxが見つかった。

github.com

github.com

しかし、Columnに対し、unique属性が付けられず実用できるかが非常に微妙である。 他もREADMEを見てみたが、SQLiteMySQLからPostgreSQLに対応したものがそもそも少ない。

てなわけで困っている。

Phalconのバージョンを落として使ってみるか…… v4の最新版は自力でビルドしなきゃだし、PHPのバージョン落とさないと動かなそうなんだよな……

CodeIgniterやLaravelなどのPHPの他のフレームワーク、ElixirやGolangなど他言語に移植するのも一つの手なんだが、一から書かないとだしな……

どちらにせよ気が進まない……

2021振り返り & 2022抱負

この記事は いかつぼ Advent Calendar 2021 17日目の記事です。

おしながき

おことわり

2022 年が始まって 3 日も経って、2021 年の総括記事を公開するという遅刻芸をやってしまいました。すみません。 この記事のアウトラインは 2021 年に書かれ、それに肉付けをするという作業を辿っているため、この記事における「今年」は 2021 年を指し、「昨年」「来年」もこの今年の定義に従います。

全体的な 2021 年総括

記事の後半でも述べていることであるが、今年は編入試験と工華祭準備の年であった。

というのも、私はクラスでの下から数えたほうが早い劣等生である。故に進学できるかがとてもスレスレで、私は 4~7 月の間はこの問題に頭を悩ませることになる。

工華祭準備に関しては昨年 12 月から工華祭で FM 放送ができないかという話が持ち上がるも、コロナの影響で教員や事務と円滑なコミュニケーションが取れず、これもまた頭を悩ませることになる。

また、個人的には卒研でも、KLIS の試験でも扱うことになった、アウトラインプロセッサのことを考えることが多かったように思える。

その中でも特に Org-mode のファイル同期問題が重大な問題であった。

そもそも orgmode とはアウトラインプロセッサとして使えるマークアップ言語とそのための emacs 拡張のことである。私はこの orgmode でいつも文章を書いている(この記事もその例に漏れない)

話を戻そう。 Reddit でも問題になるのはファイルの同期問題である。git を導入すれば問題ないのはわかるのだが、そうすると、Android でメモを取ることが難しくなってしまい、WebDAV や Syncthing などに頼ることになる。しかし、WebDAV(NextCloud)はバックアップなんてものはないし、Syncthing もその機能は貧弱である。 ということでこの orgmode ファイル同期問題はかなり解決が難しい問題であった。 個人的にはこれをNotionやScrapbox的なサービスを構築することによって解決できるんじゃないか?と思っているのだが、まとまった時間がなく開発はできていない……。

January

わざわざsectionに起こすまでもないこと:

考えたことまとめ

コロナで #nitgclt に 1 年のブランクができてしまった。 コロナでみんな Discord とか使えるようになったし、LT とかで OGOB との交流機会が作れるといいんだけどと思っていた。 結局、3 月に電算部 OB で老人会を作ったりした。

UNIX という考え方―その設計思想と哲学』を読んだ。 これにかなり影響されて、今年の半分くらいは「shell 至上主義」を唱えてた気がする。

NANDGame が高じて論理回路の勉強をしていた

年明け早々に NandGame というサイトが Gigazine で紹介されてて友人とやってた記憶がある。 OHM大学テキスト 論理回路を買ったのもこの頃かもしれない。

いつも世話になっている OSS へ寄附をした

AndroidXMPP クライアント Conversations へ 13.00 EUR、archlinux へ$5.10 をそれぞれ寄附した。 ちょっとして archlinux のサイトを確認したら past donor に名前が入ってた。

sh と PKGBUILD を書いてた

様々な shellscript やオレオレ PKGBUILD を書いてた

例えば、WebDAV で orgmode を共有する方法を考えて、shellscript でそれを実装したりしていた。結局、orgmode な小論文、ブログ記事やメモを WebDAV(nextcloud)を介して PC、Android 間の同期をしている。しかし、端末と WebDAV 鯖間での衝突が起こると、鯖側のそれが上書きされてしまうことが多々あるという問題は解決できる訳ではないので org-roam 的なものが欲しかった。 Orgmode と アウトライナーScrapbox もどきが作れないかなあというのはこの 1 年考えていたことだった。さらに試験にもこれが生きることとなった。

また、sh で CGI 書けるのでは?って思ったが、脆弱性の話しか出てこなくて諦めたりした。

hugo のテーマ書いた

ブログ用の hugo テーマを書いた。

github.com

february

わざわざsectionに起こすまでもないこと:

  • shellscript を書くにあたり、ShellCheck が便利だと気付いた。

  • Scheme の勉強をしたかったらしく、call-cc に躓いていた。

  • 今年始めだろうか、Keybase が Zoom に買収され、Keybase 離れが起った。 そんな中で OSSPGP を活用した Keybase っぽいものであるKeyoxideを使ってみた。

Gemini Protocol

Gemini Protocol に興味を持っていた。これは規格の肥大化した現在の Web 技術への反論として、Gopher や HTTP を参考に作られたもので、プロトコルであり、独自に Markdown を簡易化したマークアップ言語を持っている。

Ruby で Gemini Protocol の Client を書いた。

gitlab.com

Genimiに関して記事を書こうと思ったが結局書けなかった……。

記事を書いた

shellscript 至上主義をこじらせて、AUR ヘルパーを aurutils に移行し、移行方法を記事にまとめたりした。

blog.eniehack.net

TOEIC の勉強してた

志望大学が定まっていなかったのでとりあえず TOEIC を受けることにした。当時は TOEIC アンチだったのでとても屈辱的でもあった。

FiiO uBTR を買った

無線のイヤホンが高いという理由で、有線のものを買ってきたのだが、流石に不便に感じたので Bluetooth レシーバを買った。

最近は使ってないかも……。

March

わざわざsectionに起こすまでもないこと:

  • 部のブログに SEO 対策を施した
  • 工華祭の引き継ぎ資料を書いた
  • 再試: 過去類を見ないほどに科目を落した
  • 卒業式: 1 つ上の先輩方が卒業していくのは悲しかった
  • 進路を悩んだ
    • 一時期は文系に転向するとか、センター受けるとか考えてた
  • TOEIC を初めて受験した
  • つらつらソース
    • 部の先輩と話してて思いついたんだっけか

anti-systemd

UNIX という考え方―その設計思想と哲学』に影響されていたので、肥大化したシステム Systemd に疑念を持ちはじめ、systemd 以外の init を探したり、Artix Linux に興味を持ち始めたりした。

eniehack.net 改装

markdown で書いて、middlemanコンパイルしてたものを、orgmode で書いて org-rubyコンパイルするように書き直した。

obsidian よさそう

obsidian.md

Markdownアウトラインプロセッサや、思想の Wiki が作れるソフトウェアを見つけて興奮してた。

ブログに webmention を実装した

ブログに webmention を実装した。Webmention というのは W3C の定義した規格で、サイト間で引用 RT ができるみたいなものである。さらに、brid.gy を使って SNS での反応を Webmention を介して送信されるようになっている。

branca.cr を実装した

branca とは、ポスト jwt な認証用トークンフォーマットで、jwt の脆弱性を意識して設計されているようである。この branca の Crystal 版実装を書いた。

HaikuOS on Chicken Scheme 5 に挑戦

HaikuOS で Chicken Scheme 5 のビルドに挑戦。うまくいかないなーと思ったらドキュメントに並列ビルドに対応してないって書いてあっただけであった。他人のプロジェクトにプルリク投げたのは初だったのでドキドキした。

April

わざわざsectionに起こすまでもないこと:

……結局Instagramは始めちゃいました

TOEIC 結果開示

TOEIC スコアが初受験にしてはよかったのでびっくりした

電算部を辞めた

1 年からいた電算部を辞めた。というのも、2020 年は口を挟まないようにしようと思っていたのだが、口を挟むようになってしまっていて、当時の後輩の部員に迷惑がかかっているのではないかと思ったからだ。

進路

担任に書けと言われた身上調書に書く編入先をまだ決めかねていた。 ちなもにこの時点で KLIS も候補に上がっていたらしい。

研究室決め

研究室を決めた。第 1 志望の研究室に行けたのでよかった……。電気系学科の情報系学生なので、ガチガチの物性系に配属されると詰むのでびくびくしてた。

社会政策

社会政策という授業で博士過程の人が講師を担当していておもしろかった フーコーの話から始まり、現代日本社会保障システムやその難点、解決策として取られている政策を話してくれた。講義の最終回は BI(ベーシックインカム) のメリット、デメリットまで解説してくれた

BI のデメリットを解説する回はとてもアツかった 「BI はだれを対象とするのかが重要で、暴力団などを対象から外した場合、国家権力によって恣意的に権利を侵害できてしまう」みたいなことを言っていたような気がする

FLoC

GoogleCookie 以外のユーザ行動収集ツールとして FLoC を発表して、EFF はもちろん、他のブラウザベンダ、大手 IT 企業からもブーイングを喰らう、という話もあった。

最初は FLoC がゴリ押しされて導入されるものかと思っていたので、普及しなくてびっくりと安堵だった。

高専カンファで知り会った方が起業されてた

@car4ryu さんが起業しててびっくりした。すげーな……。 twitter.com DCON に入賞したのは知っていたのだが、起業されていたとは知らなかった

『理系のための文章教室』

『理系のための文章教室』藍月 要:著 を読んだ。 理系は厳密に、正確に情報を伝えるために一文が長くなりがちであったり、専門用語を使いがちであったりと、とっつくにくい印象を与えてしまう。その解決法を書いたのがこの本だった。

May

進路関連

6/6 に KLIS の学習計画書を提出しなければならなくてストレスが大変なことになっていた。 加えて、長岡技科大入試との両立が大変だった。 現実逃避に Linux 触ってた。

無線通信愛好会から脱退した

無線通信愛好会から脱退した。 このことは正直振り返りするにあたって外せなかった。 というのも、無線通信愛好会も私は結成名簿には書記として名を連ねていたが、会が発展していくにあたり、争いにによってそれを阻害するのは私にとっても本意ではなかったから、辞めざるを得なかったからだ。 事の発端はもともと別企画として進んでいたミニ FM を無線通信愛好会で運営することにしたことからであった。 そもそも、規則をきっかり作るべきか否かという意見対立が会を設立するにあたってあった。それに加え、ミニ FM に割く時間を無線技術に凝るべきか、放送内容に凝るべきかの立場の違いがあり会の 5 年生間で溝がさらに深まってしまった。 この話を蒸し返してもどうなるわけでもないのでこの辺にしておこう。言っておくが、どのちらの考えが正しいか誤っているかを議論するのはこの記事の本分ではないので省略する。

最終的には、愛好会からスピンアウトして、有志企画という体裁で運営することになった。 この采配は友人と当時の会長に感謝したい。

無線通信愛好会に関してもっと言えば、後輩がすぐ引き継ぐから、と中途半端に意思決定に関与していたことや、学年間の風通しが良くなかったのではないかと思っている。

June

筑波の編入書類提出 RTA

5 月から書いていた学習計画書の大半は結局、締切 2 日まで書けずにデッドライン前日、当日まで書いていた 地元の郵便局は速達の締切が終わっていたので、親に車を出してもらって都会の郵便局に速達で出した。

技科大の試験

国語、英語は手応えがあったものの、数学、専門がボロボロで案の定不合格だった。

July

技科大が不合格に終わり、筑波も行けるわけが……と思ってたから、どうするか悩んだり、相当病んでいた。

筑波受験

7/10 は筑波大学の受験だった。 その数週間前には Laptop が故障した。親に突貫で PC を買ってもらい、 1、2 週間、毎日、教室のプロジェクタで練習してた。

2 日前には担任にも見てもらった。 というのも、昨年度、卒研やデザイン実験の質問でキレキレだったので、まずは担任を越えなければ……の一心だったからだ。

  1. 前日

    駅でのんびり着替えしてたら、新幹線に乗り遅れる所だった。 宅急便で着替えを送ったら、この時点で残り 3 分くらいでだいぶ焦った。

    夜はセブンのタンメンを食ったのを覚えている。その間に学習計画をまともに書けなかった私が受かるんだろうか、という気持ちになってた。それに友人がリプライつけてくれて元気出した。 その日は友人と Discord 通話しながら、1 時くらいまで練習してた。

  2. 当日

    朝も発表練習してたのと、紙の印刷をコンビニでやったので電車を逃し、10 分のロス、遅刻しそうになってた。

    TX の電車内でプレッシャーで胃腸が死にかけてた。

    でも不思議と受験の時は緊張は全然しなかった。プレゼンは練習通りうまく説明できた。

    でも、質疑応答でしどろもどろになった。今よりアウトラインプロセッサの解説が下手だったために質問時間の大半をアウトラインプロセッサに関して説明する

筑波合格発表

当日は普通に授業があった。 授業中の 10:00 に発表だったが、その当時寝ていた。 休み時間に筑波の違う学類を受験してた友人と、担任に結果を聞かれ、ようやく確認したら、合格してて、そこそこの声で喜んでた気がする。

合格っしたのは嬉しかったのだが、この時点では電磁気学 II の再々試が終わっていなかったので、大学のことより卒業が怪しいなーと内心びくびくしてた。

Twitter で知り会った他の 3 編合格者から共有していただいた学習計画のスライドを読ませてもらうと、全部みやすいし、経歴、課題、解決策、志望理由がしっかりしてるしで、私のは足元にも及ばないな……、と思った。

正直、突貫工事で受験したのに受かってるの?!?!という感じだったので、合格通知書が来てようやく安心した。 正直今でも信じられない。

August

  • ワクチン 1 回目
  • klis20 3 編生の space に参加した

matrix-org 鯖閉鎖

matrix.org という分散型チャットプロトコルの鯖 matrix-jp.net を 2 年ほど運営していた。しかし、卒研や大学以降忙しくなりそうであること、そもそも現状メンテナンスができていないことから鯖を閉じることにした。

LibreOffice Basic

大学の単位変換には制約が多かったので、LibreOffice のマクロでそのへんの計算、判定を楽にしようと思ったら、かなり前時代的な Basic を触ることになった。

単位変換

単位変換に関しての大学ガイダンスを Zoom でやった。

ブログ始めた

卒業しても持続していれば、卒業後の友人との話の種になるかもなと思って始めてみた。最近は卒研の論文を書くために記録しているという理由のほうが大きいけど。

デザイン実験をやってた

デザイン実験で CPU 作製をするために、週 2 くらいで学校行ってた。 プログラムカウンタとして買ったレジスタ兼カウンタの IC が正常に動作しなくてとても苦戦した気がする。

September

5、6 月頃にスマホの液晶が割れたままになっていたので、pixel 5a を買ってもらった。

夏休みも中盤に入ってくると暇になってくるので、複式簿記と経済学の勉強をしていた。 複式簿記放送大学岡部元教授が作成した PDF を、経済学は「マンキュー入門経済学」を参考にノートを取っていた。 複式簿記日商簿記受験を目指したものではなく、個人的な興味でやっていたが、友人のすすめで、色々が落ち付いたら受験してもいいかなと今は思っている。

「ゲンロン 12」を買った

去年(2020)からかなり影響されている気があるのだが、今年はそれが加速した気がする。 8 月に『ゲンロン戦記』を買って、彼の思想家としてではなく、人間としての活動を知り、9月に『ゲンロン 12』を買った。SNSやネットの記事を見ていると、彼の提唱する「誤配」や「観光客」という概念によって説明される人間像が現実的で魅力を感じたからだった。

12月頃に 『哲学の誤配』という本も読んだのだが、これもまたおもしろい。彼は『動物化するポストモダン』という本によってサブカル批評で有名になるが、震災後はサブカル批評で活動することは少なくなってゆく。その頃に出版された『一般意志2.0』は世間では『動物化するポストモダン』と断絶があると認識されている。しかし本人曰く、オタク界の話を一般化したのが『一般意志2.0』なようで連続している、という話はおもしろかった。 さらに、中国での講演の原稿を載せた章では、「資本主義」や「これからの人文学」が主題となる話が展開され、こちらもおもしろかった。すぐ後に出てくる宮台真司さんは損得やコスパを判断基準として行動する人間のことを「損得マシーン」と呼ぶが(と思い返した)、東さんは「動物」と呼ぶ。その違いも読んでいておもしろかった。

宮台真司さんに再び「感染」する。

きっかけは NewsPicks の「Rethink Japan」を見てからだった。

youtu.be

宮台さんのマックスウェーバー関連の話はいつも興味深い。 宮台さんも東さんも知識量が凄くて圧倒されてしまう。

ところで、宮台さんの著書『きみがモテれば社会は変わる。』は名前で敬遠されてそうか気がしていて残念……。題名とは打って違って、モテるための How-to 本ではない。こういう社会になれば、こういう生き方をすることが、社会にとって正しいのではないかとういう趣旨の本である(そんな感じだった気がする)。「モテる」ことはその過程の途中、もしくはその先にある結末であるような気がしていて、つまり「きみがモテれば」というのは一種の比喩のように感じられるのである。

October

わざわざsectionに起こすまでもないこと:

  • space が流行った
  • 卒研の中間発表

放送大の講義が始まった

教科書が届いたりした。BS/CSは見られないが、講義はインターネットで見られるため、そこで見ている。

工華祭

高専生活最後の工華祭があった。 工華祭では FM 放送を工華祭初の試みとしてできた。番組をやってくれた友人、送信設備を設営してくれた友人に感謝。 この企画は去年の 12 月頃から「ミニ FM っていうやつがあるらしいじゃん」って友人の無線のプロに声を掛けたことから始まったように記憶している。断続的ではあったがこの 1 年は工華祭と受験に捧げた 1 年でもあったからうれしかった。だから、2日目最後の放送で企画代表の言いたいことを全部もっていってしまったことは申し訳ない……。 工華祭 1 日目の夜に書いたブログがこれ

December

11 月は覚えていないのでカット。確か、中間試験をやってた気がする。

12 月は Advent Calendar を開催した。

adventar.org

私は3つ(うち2つは共同)を書いた。

blog.eniehack.net

hackmd.io

demo.hedgedoc.org

もともとプログラマーの文化なので、技術系の記事が多くなるかなと思っていたが、そんなこともなく様々な分野の記事が読めておもしろかった。 ウチの学校には曲書いている人や、イラストを描いている人など、様々なメディアを使って発信している人がいるので、文章だけでなく様々なメディアで参加してもらえると、ウチの高専っぽい風物詩になっていくと楽しいかなーと思った。

音楽

1 年で聴いた曲を Spotify のプレイリストにまとめてみた。この 1 年でなんの曲を聴いたんだろうか、とお気に入りを流し見てたら、この時にはこれ聴いてたはみたいな感じに連想されてきて、振り返り記事を書くにあたって便利そうだな、と思った。

その他、「電気グルーヴ - 虹(Cacao Bootleg Progressive Remix)」/Cacao も聴いたので貼っておく。

来年

直近で迫っているのは以下の通りである。

  • 卒研発表
  • 放送大学の単位認定試験
  • 主専攻決定

「西洋哲学の起源」の講義が追えてないのがだいぶマズいので、冬休みは休んでられない……。

来年度は大学入学と宿舎での一人暮らしである。 大学生活は友人ができるか、レポートがちゃんと書けるかがとても不安である。 というのも、友人を新しく作る経験は小学校、高専くらいしかないものだからである。 さらに、レポートは高専に在籍しながら不真面目な生活をしていたがために、ちゃんと書けるか不安、というニュアンスである。 宿舎での独り暮らしは自炊はもちろんのこと、自堕落な生活にならないかが不安である。

不安なことばかり考えていると、沈鬱な気持ちになるので、楽しみなことでも考えよう。 KLISは編入試験の方法が特殊であるためか、様々な経歴を持った人がいると聞いている。彼彼女らの話を聴いてみたい。 もちろん、授業内容も楽しみである。シラバスを読んではワクワクしている(そのおかげか、今も主専攻を決めかねている)。

これらを総合して来年の抱負は

  • ちゃんと卒業する
  • 生活習慣をしっかりする
  • 部屋を清潔にする
  • 社会に適応する
  • 課題はちゃんと出す

としよう。

ということで来年もよろしくお願いします。

2021/12/03

前回の記事から今日までの間にあったことを書いておく。

中間試験 & 放送大学 通信指導

自動制御がマズそう。がんばります。 中国語は开车(車を運転する、だったか)の「车」の字をミスったらしく99点……。でもこんな高得点は2年の頃ぶりだろうから、ちょっとうれしかった。

放送大学 通信指導に関しては「データの分析と知識発見」と「情報学へのとびら」は早々に提出できていたのだが、「西洋哲学の起源」は手を付けられずに中間試験期間中の土日にアリストテレスの自然への理解について書き、速達で出した。

卒研進捗

中間試験までの間に単純な(階層構造を持たない)TODOリストの作成に成功した。 中間試験は今週火曜までだったので卒研に取り組んだ日は水曜と金曜のみであったが、2つ進捗があった。

始めに、TODOリストの改造である。具体的には、階層構造を持たせたTODOリストの作成にすんなりと成功した。要素を選択した状態で、内容を入力、その後ボタンをクリックすれば、選択した要素の子要素として入力した内容が登録される。

2つ目に、ブラウザ拡張の実装に向けた予備調査を行った。 そもそも、ブラウザ拡張の機能としては

  • 表示しているページのリンク
  • 選択したテキストと表示しているページのリンク

をアプリケーションに送信することは最低限実装したいと考えている。 しかし、この程度のものであればそこまで難しくないことがわかった。

また、ブラウザ拡張を実装するにあたり、UI Frameworkの選定、それに伴う開発言語の選定も必要である。

UI FrameworkとしてはSvelte、Marko.jsを挙げてみたが、内容的にはSvelteがよさそうなので多分そっちにする。

使用言語はUI Frameworkを使わないのであれば、CoffeeScriptでも使うかーと思っていたが、現時点では使うことにしているので、JavaScriptかTypeScriptとなる。 TypeScriptは面倒そうだし、この製品自体、大規模なものでもないなので、JavaScriptでもいいかなーと思っている。

まとめると、階層構造を持たせたTODOリストの作成ができたので、1つ大きな山が越えることができた。次はファイルからの読み出し、GTKアプリとHTTP Serverを1つのバイナリに共存させるにあたってのMutexやらThreadやらの部分の実装となる。放送大学の単位認定試験もあるし、成人式もあるので、今月には実装が終えられればいいのだが……。

Advent Calendar始まった

群馬高専Advent Calendarがついに始まった。1日目は私が担当した。 しかし、書きたいことがすべて書けたわけではないので、ちょっと不満ではあったが、1日目に重めな記事を書いてもあれなのでまあいいとしよう。 3日目まで公開されているが、受験を考える中学生にとってめちゃくちゃいいので、是非読んでほしいなーと思った。

bunnoichi.hatenablog.com

このAdvent Calendarは必ずともプログラムの話が多い訳ではないところが特徴で(と思ったけど学校系のAdCはそんな感じなのか……?)、おもしろいので、非プログラム系の記事を楽しみに待つことにする。

聴いた曲

歌えるようになりたいね。というか、「nine」シリーズやりたい。

鬼束ちひろ……。曲はいいので聴いてくれ……。

終わりに

Synthesizer Vほしい~~

2021/11/16

指導教員から「論文には卒研でやったこと全部書いてほしい」的なことを言われたので、備忘録として急遽ブログを書いてみる。

卒研の進捗

先日のNimにLSPがない問題から、先週はRustとValaを行き来していた。 しかし、RustのGTKバインディングgtk-rsが、gtkの内部実装を知っていないと、効率的にメモリを利用するアプリケーションを書くことが難しそうなので、最終的にはValaで実装することとした。

さらに、Valaのビルドコマンドを手打ちするのはつらいので、mesonを導入した。 mesonでvalacから生成されたCのコードを取得できるとうれしそうだけど、mesonにmakeのルールみたいなことはできるのか……?

というのが、先週と昨日までの成果。

階層構造のデータを扱うのは面倒そうだったので、今日はTODOリストをGTK4とValaで実装した。 制作中のものにはTODOリストも実装する予定であるというのもあり、練習がてら実装してみた。

入力したテキストをTreeViewへ追加するにあたって、間違った列へ挿入してしまったため、最初は項目が表示できなかった。

さらに、CheckBoxをCellRendererToggleTreeViewColumnへ追加したものの、状態が切り替わらない問題が発生した。 これはCellRendererToggleのtoggled signalを実装した。

GTKにはTreeStore/ListStoreで要素がどこにあるのかを示すTreePathという型のオブジェクトが示す要素から、TreeIterというリスト、階層構造から要素を取り出すためのイテレータがその要素を示すよう変換することに手間取った(端的に言えばTreePathとTreeIterとの相互変換)。

完成したのが以下の画像。

f:id:eniehack:20211116235848p:plain
TODOリスト完成図

ちなみに、文字の部分をクリックすると、編集もできる。 しかし、見ての通りWindowのサイズを変更しても、Widget達が付いてこない……。

追記始め: 2021/11/17 0:19

個人的には、Rustより、ValaやNimのCを中間言語とする言語のほうが、可搬性が高くて好きです。比較対象が間違っている気もしますが……。

追記終わり

記念日

恋人がいるわけではないので、そんなキラキラした記念日ではない。 単に好きなキャラクターの記念日らしい。

もうWHITE ALBUMの季節ですし、『WHITE ALBUM2』やりたいね……。

Advent Calendar関連

群馬高専 Advent Calendar 2021がそろそろ埋まりそうでうれしい。

adventar.org

ところで、Secure Scuttlebutt Protocol、高専放送大学間の単位変換やCPU自作のすゝめなど、もっと書きたい記事があるんだが、どうしたものか……。

2021/11/08

卒業研究にまつわるエキセトラ

卒業研究では、nimという言語でGTKアプリケーションを作っている。

今まではMsys2-UCRT64にGTK、nimとnimbleを入れ、ターミナルからビルドして動作確認していた。 しかし、nimのGTKバインディングgintroがマクロで生成されているようで可読性が悪い。 そのため、関数を探すのが面倒であてずっぽうで関数名を探すという最悪の事態になっている。 それでは効率が悪いことから、nimlspを使いたくなった。 github.com

nimlspをMsys上に導入するため、choosenimをMsysへ導入しようと試みたが、コンパイルエラーになる。

そこで、choosenimがWindows向けに提供するインストーラを導入してみたが、これではMingwも導入されてしまう。 Mingwが導入され、Nimのデフォルトコンパイラとなってしまうことのつらい点として、 choosenimのインストーラは全てをお膳立てしてくれるが故に、Msysの提供する依存関係の処理を自ら行わなくならない点である。 choosenimのMingwを採用した場合、Msys側のライブラリをコピーするなどして、対応しなくてはならなくなってしまう。 しかし、この方法はMsysのように依存関係を自動的に処理し、dllや.aをよしなにしてくれる訳ではないので、GTKが依存するライブラリを探し当てて、対象となるファイル全てを手動でコピーしなくてはならないのである。

どうしたものか…………。ValaやPython、Rustで書くべきなのか…………?

2021/11/03

dlsite漁ってた

DLSiteが25周年の生誕祭ということで、バイトも再開したことだし何買うか悩んでた。まだ決まってない。

放送大学の講義2回分を消化した

『データ分析と知識発見』の4,5回をやった。 1.5倍速で聴いているので30分で終わるんだけども、結構メモすることが多くて1時間くらいかかった。 Rの統計計算特化はすごい。それ専用の型が用意されてたり(Factorとかmatrixとか)、数式わからなくても(?)ノリで統計ができているとこのか結構すごい

osu!stdを再開した

最近はosu!maniaをやっていたが、友人とマルチしてたら楽しくなったので再開した。 これがわたしのです。

osu.ppy.sh

パイプライン処理を理解した

『コンピュータアーキテクチャ技術入門』(isbn:9784774164267)を学校の図書館から借りてきた。 CPUアーキテクチャに依らないCPU内部の話があって興味深く読んでいる。

CPUが行う、命令の読み込み→命令のデコード→演算で用いるデータの取り出し→演算→演算結果の書き込みという、 命令のサイクルを1回1回実行するのは効率悪いので、命令の読み込みを終えたらすぐに次の命令を読み込むようにするなど効率化するといいよね、というのがパイプライン処理である。 しかし、演算で用いるデータの取り出し、演算はタイミングによって演算結果が変化しうるので、タイミングをなんとかしてやる必要がある……はず。

群馬高専 Advent Calendar 2021をつくった

adventar.org

なんだかんだ参加、主催したAdCに記事を出せていなかったので、何か出したい。 高専生活を振り返った記事、CPU、UNIX哲学、SchemeVim/Emacsとかの話題は考えられそう。 まあ、何か考えておきます。

曲とかを紹介する

  • 『花束と磁力』/ TWEEDEES

TWEEDEESいいよね、Cymbalsっぽいっというか、モロCymbals

fengという倒産したノベルゲ制作メーカーが作った『ちいさな彼女の小夜曲』のOP。作曲は堀江晶太。友人曰く別名義でボカロPもやっているらしい。

2021/10/30

工華祭1日目。

  • 午前中にYouTube配信が止まった

OBSの操作ミスか、リマインダー掛けてた配信を数秒で止めてしまった。 おかげで、午前のYouTube視聴者がそんなに多くなかった。

Raynoldsという専攻科生のバンドがラジオに出演してくださった。 メンバーの方にCymbals相対性理論が好きな人がいて、興奮して話してしまった。 その中で、Cymbalsの沖井礼二とアニソンで有名な田中秀和がコラボするらしい、という話があり気になった。

Raynoldsのメンバーがそれぞれ個性が強くて楽しい時間だった。

メンバーの中でボカロPとして活動されている方がいた。いい曲。

ちなみに、収録は台本飛ばして散々だった……。

  • 昼休憩

エコパのチキンサンド、バレー部の唐揚げ、剣道部のフランクフルトを食べた。めちゃくちゃおいしかった。 明日はフットサルのワッフルが食べたい。

  • 広報番組へパーソナリティとして出た

バンドの宣伝よりも、そこそこ上手く話せたと思うので、よかった。 明日は段取りをしっかり他のスタッフに周知しておきたい。

  • ヘンリー!さんの番組

教員が2人出てくれた。 ヘンリー!さんが教員に対して「○○君は~~」と言ってて口調がめっちゃおもしろかった。 教員がヘンリー!さんに対してドン引きしていた顔が忘れられない。 番組内で教員に食用の虫を食べさせたりしていてすごいなーと思った。

  • 翔鶴

夕食は友人と翔鶴へラーメンを食べに行った。塩ラーメンとネギチャー丼(Bセット)を久々に食べた。おいしかった。

  • 明日の目標

FMだけでなく、もう一つ参加している有志に顔を出したい。

他の企画も見て周りたい。 広報番組でおもしろそうと感じた3J、3Mと、専攻科生の有志企画は最低でも見て行きたい。