2020-01-18
TechRubyでブラウザゲームが作れるライブラリ、DXOpalの1.4.1をリリースしました。
v1.4.0はバグがあって取り下げたので、1.3.0以来のリリースとなります。
主な変更点は以下です。
- dxopal initの代わりに、railsみたいにdxopal new GAME_NAMEとできるようにした(新規ディレクトリが作られる)
- いくつかメソッドを追加(touch event対応等)
- Opal 1.0に対応
touch eventは#21で作ってもらったもので、いまのところシングルタッチのみ対応ですが、これでスマホ用のゲームも作れるようになりますね。
2019-12-31
Diary近況です。
アドカレ
12月といえばAdvent Calendarの季節だが、12月上旬は体調を崩していてあまり作業できなかった。
Opal Advent Calendarにいくつか記事を書いた。
dynamic-wind
2019-12-22
TechこのエントリはOpal Advent Calendar 2019の22日目の記事です。
Ovtoの0.5.0をリリースしました。
変更点
- Opal 1.0がリリースされたので、対応しました。といっても具体的な修正は特に必要なく、gemspecを直すくらいでOKでした。
- pockeさんに寄贈していただいたOvto::PureComponentという機能が入りました。性能が求められる時に役に立つかもしれません。
2019-12-16
Diary近況です。
Shiika
11月下旬は体調を崩していてあまり作業できなかった。
varとwhileとビット演算を足して、あとはbreakを実装すればマンデルブロー集合が描けるようになるかな?というところ。
2019-11-03
Diary近況です。
ISUCON2019 本戦出場
10月頭はISUCON本戦のために新宿まで行ってた。予選の規模もすごかったけど、本戦ではこの32チームのために予選とは全く違う問題が作られていて、本当に運営がすごいと思う。ありがとうございました。
結果は13位…なのだけど、実をいうと終了10分前からベンチマークのFailが連発しており、あわやNo Scoreかと思われたのだった。ので順位がついて良かったなあというのが正直な気持ち。
2019-10-02
Diary近況です。
ISUCON2019 本戦出場
会社ブログにも書いたけど、ISUCONの本戦に出ることになった。今回が初参加で、「本戦行くぞ!」みたいなテンションでやってたわけでもなくて、期待はしてたけど、本当に行けるとはみたいな感じ。
syntax-case進捗
2019-09-06
Techquickrunというプラグインを使うと、vim内から任意のプログラムを起動できるようになる。僕はこれを使って、Rustのユニットテスト(cargo test
コマンド)を\r
で起動できるようにしている。
ただ少し困るのは、場合によってコマンドの実行時間が大きくことなる点だ。コンパイルエラーがあるときは一瞬で結果が出るのだけど、コンパイルが通ると、実行に10秒程度かかることもある。どちらになるのかは実行してみるまで分からない。
これに対して、.vimrcを以下のようにすることでcargo test
の実行前と実行後に音を鳴らすようにしてみた。afplayはMacにデフォルトで入っている音声再生コマンドである。
let g:quickrun_config['rust'] = {
\ 'exec': 'afplay ~/proj/sound/beep_low.wav; cargo test; afplay ~/proj/sound/beep1.wav',
\}
こうすると、テストの実行が長い場合は音が鳴るまで目を閉じておくことができ、プログラミングという負荷の高い作業の中で少しでも目を休めることができる。
2019-08-31
Diary近況です。
syntax-case
BiwaSchemeにsyntax-caseを実装した。まだ基本的なケースだけしかサポートしていないので本体にマージしていないが、とりあえず現時点のものはここにある。
シンボルを自動でリネームする機構("Beautiful Code"に載ってるやつ)までは何年か前に実装していたのだけど、それを一歩進めて、define-syntax + syntax-caseで(簡単な)マクロが定義できるようにした。おぼろげに「パターンマッチを実装する」という作業だと想像していたのだけど、それに加えて「マクロ展開時にScheme式を実行できるようにする」という作業があった。このあたりの話は月報ではとても書ききれないので、別途記事にしたい。
どうして数年ぶりに作業を再開したのかというと、define-syntaxないのと聞かれたからという単純なものである。まあ中途半端な状態で放置してたのがずっと気になってたというのもあるけどね。
2019-07-31
Diary近況です。
Shiika
7月は主にShiikaのLLVM IR生成をやっていました。.llファイルの書き方は知っていても、それをinkwell(あるいはLLVM C API、あるいはLLVM C++ API)で出力する方法が分からなくて手間取ったりしましたが、だいぶ慣れてきて、Boehm GCでオブジェクト用のメモリをアロケートするところまでできました。あとはnewとinitializeを実装すればShiikaオブジェクトを実体化できるようになって、動くものが増えるはずです。
…と思ったのですが、p foo().bar
がパースエラーになるのをきっかけにパーサ沼にはまってしまい、昔のRubyのparse.yを調べたりしていました。なんとなく分かってきたので、次の作業はこれを実装することになりそうです。