boletales.dev

これはなに?

つくったもの

某社の鉄道玩具がオンラインで遊べる プラ線路シミュレーター

  • repo: https://github.com/boletales/prail-simulator
  • 幼稚園児の永遠の夢!後片付けのいらない世界で好き勝手線路を敷こう!
  • マルチプレイ対応!おともだちとの建設計画の不一致に苦しもう!
  • 自動列車停止装置(ATS-P)もどき搭載でなめらかな自動運転!
  • 「列車タグ」機能で複数路線も快速運転も自由自在!
  • ただし連動装置(ポイントの切り替えをロックする機構)は実装していないため、まれによく大惨事が起こる
  • プラレールで現実の路線を表現してダイヤ通りに運転するサークル「天通団」の動画に触発されたが、部屋にレールを置くスペースはなかったのでスクリプトを書いた
  • 列車やレールの管理はpurescriptで、操作や描画は素JSで実装した
  • 車両の3DモデルだけはBlenderを使ってまじめに作ったが、線路その他のポリゴンはコード直書きで生成している

(制作中)嘘のコンパイラ usocomp

  • repo: https://github.com/boletales/usocomp
  • CASL風のアセンブリを吐く手続き型言語のコンパイラと、(制作中)その手続き型言語を吐く関数型言語のコンパイラ
  • 手続き型言語の方は構造体とか関数ポインタまで実装できた
  • 書けば書くほどC言語に似てくるのはどうして……
  • minus-at0-at0-1の実質的な続編

記号でできた謎のアセンブリ minus-at0-at0-1

  • repo: https://github.com/boletales/symasm_public
  • 表題のリンクはコードテストと提出がオンラインでできるサイト
  • 制作者の素性を伏せ、わずかなヒント以外ほとんど言語仕様に関する情報を与えずに友人たちにばらまいたところ、一人だけ本気で解いてくれて感動した
  • リポジトリは解答例を書くためのアセンブリ生成器のものである
  • 動的計画法まで出題するつもりだったので、ヒープとスタックを持ち関数を取り扱えてまともに手続き型プログラミングができるようになるDSLをpurescriptで書いた
  • 制作期間のほとんどはアセンブリ生成器の実装に費やした

分水嶺が見える地図 suikei-rs

  • repo: https://github.com/boletales/suikei-rs
  • 自転車で山へ行くのが趣味なので、峠の正確な位置を知りたかった
  • 降った雨の行く先を色分けして表示できる
  • Rustの練習としてつくった

記号論理学のレポート粉砕機 インタラクティブ証明木エディタ


  • repo: https://github.com/boletales/treeparser
  • キーボードで見たままの操作ができるエディタ
  • LaTeX出力対応
  • これ絶対記号論理学を履修する前に作るべきだったと思う
  • だいたいpurescriptでつくってたはず

直観主義命題論理の自動証明器 ipc-hs

  • repo: https://github.com/boletales/ipc-hs
  • Rustでおなじことをしていた友人に触発され、Haskellを使って速度で勝つことを目標に書いた
  • 最終的に1000倍の速度差をつけて勝った
  • パフォーマンスの改善に最も有効なのは、アルゴリズムの改善である(あたりまえ)
  • SPECIALIZEプラグマとmtl-style最高!