yhara.jp

Recent Posts

vimに音声を再生させることで目を休める

2019-09-06
Tech

quickrunというプラグインを使うと、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年8月 (syntax-case実装)

2019-08-31
Diary

近況です。

syntax-case

BiwaSchemeにsyntax-caseを実装した。まだ基本的なケースだけしかサポートしていないので本体にマージしていないが、とりあえず現時点のものはここにある。

シンボルを自動でリネームする機構("Beautiful Code"に載ってるやつ)までは何年か前に実装していたのだけど、それを一歩進めて、define-syntax + syntax-caseで(簡単な)マクロが定義できるようにした。おぼろげに「パターンマッチを実装する」という作業だと想像していたのだけど、それに加えて「マクロ展開時にScheme式を実行できるようにする」という作業があった。このあたりの話は月報ではとても書ききれないので、別途記事にしたい。

どうして数年ぶりに作業を再開したのかというと、define-syntaxないのと聞かれたからという単純なものである。まあ中途半端な状態で放置してたのがずっと気になってたというのもあるけどね。

(more...)

2019年7月 (Shiika コード生成)

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を調べたりしていました。なんとなく分かってきたので、次の作業はこれを実装することになりそうです。

(more...)


とちぎRuby会議08で登壇しました

2019-07-09
Event

Tochigi RubyKaigi 08に呼んでいただいたので、zanzouというgemを作った話をしてきました。あと餃子を食べたりボルダリングに行ったりしました。楽しかったです。

zanzouはimmer.jsをRubyに移植できないかというチャレンジなのですが、ES6 Proxyがすごくて、JS以外で同じことをするのは結構大変そうだということが分かりました。ES6 ProxyはArray.sortの内部までトレースできたりするんですが、RubyのsortはCで実装されていて、その中のrb_ary_pushとかまではフックできないんですよねえ。

会場は駅から少し離れた場所でしたが、一つの部屋で昼食から夕食まで過ごすスタイルで楽ちんでした。懇親会は自由参加のLTがあったのですが、参加枠が全員分用意されてて、最終的に40人以上が発表者になっててすごかったです。

2分という時間設定が絶妙で、これが初LTという方も何人かいたり、資料なしで喋る人もいました。なんていうか、「自分も何かしたい」と思わせる場は多くても、実際に参加させてしまう場は貴重だと思います。

自分のスライドはこれでした。




RubyKaigi 2019 福岡に参加した

2019-05-11
Tech

福岡で行われたRubyKaigi 2019 福岡に参加した。

自分の発表について

今年は登壇者で、Ovtoの話をした。詳細はのちに上がるであろう動画を見てほしいが、現時点の資料としてはスライドのPDF版がある。プレゼンターノート付きなので概要は分かるかもしれない。

今回の発表の裏テーマとして「文章で伝えにくいOvtoの良さをライブコーディングで伝えたい」「初心者から上級者まで何かしら得るものがあるようにしたい」というのがあり、いずれも(個人的評価では)達成できたように思う。

(more...)


本:『宇宙と宇宙をつなぐ数学 IUT理論の衝撃』

2019-05-02
Book

IUT理論は、複数の数学の舞台を考えることによって、それまでの数学にはなかった、つまりそれまでの数学の常識を超えた、新しい柔軟性を実現しようとしていたのです。

『宇宙と宇宙をつなぐ数学 IUT理論の衝撃』を読みました。

本書は、望月新一教授が2012年に発表した「宇宙際タイヒミュラー理論(IUT理論)」を、一般向けに解説した書籍です。IUT理論といえば、ABC予想を解決したという主張で大きく話題になったものの、7年経った現在も成否について決着がついていないほど難解な代物で、この本を読んだだけで全貌が理解できるわけではもちろんないのですが、「どういうことをやろうとしているのか」について雰囲気やさわりだけでも理解したつもりになれる、楽しい本でした。著者の加藤文元先生は、本書で語られるようにIUT理論の構想時から望月教授と親交があり、理論を理解している数少ない数学者の一人で、そのような人に易しく解説してもらえるというのはとても贅沢な体験だと感じます。

数学というものは論理の塊なので、ある論文は正しいか正しくないかのどちらかに直ちに決まるような気がしていたのですが、IUT理論に関する議論が未だに続いているように、その中間が存在するというのはなんだか不思議な感じがします。IUT理論は「足し算と掛け算の関係を解きほぐす」という、数学の基礎に挑戦するスケールの大きな理論で、かつ独自性が高いため数学者に対しても「学習コスト」が高く、地道に理解者・協力者を増やしていく必要があるようです。このような一般書を出すというのもその作戦の一環となるのかもしれませんね。


Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author