Hatena::Grouphackathon

zrail (a.k.a. tobira17, h14i, ...) の Learning Log

2016-06-04二ヶ月ぶり

[]PFDS眺めてる 05:18 PFDS眺めてる - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - PFDS眺めてる - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

最近、もうちょっとML(というかいわゆる関数プログラミング)を勉強しようと思ってPFDSを眺めてる。

本当はちゃんと読みたいんだけど、英語力の壁に阻まれてる。主に語彙。

とか書いてて思ったんだけど、ちゃんと読むってどういう活動のことなのかなぁ。シントロピカル読書みたいな?


2017-04-19 追記

もうすぐ日本語訳版の発売らしい。上にも書いた通り英語には全く自信がないので是非読みたい。

2017-05-27 追記

発売して少し経ってから買った。非常に勉強になる。そして俺の英語リーディング能力は全くアテにならないことを再確認する結果となりました。

2016-04-07一ヶ月ぶり

[vim][Rust]rust-doc.vimをref.vimっぽく使いたい設定 00:41  [vim][Rust]rust-doc.vimをref.vimっぽく使いたい設定 - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク -  [vim][Rust]rust-doc.vimをref.vimっぽく使いたい設定 - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

rhysdさんのrust-doc.vimの設定の話。

ref.vimのソースを書こうかとも思ったけれど、設定をちょっと頑張ることにした。

なので、 ft=ref-rust-doc とかになってる。これのおかげで元々設定してあったref.vimのキーマップを活かせてる。

let g:rust_doc#vim_open_cmd =
\   'belowright new | file [ref-rust-doc] | setl ft=ref-rust-doc bt=nofile bh=delete noswf | VimProcRead w3m -dump'

最初はVimの:readを使ってたんだけど、展開されてしまう文字があって、それを回避するのが面倒くせえってことでvimproc.vimを使ってみたら上手くいった。

この設定は手抜きなのでウィンドウ分割の方向が固定だったりあんまり良くないんだけど、取り敢えず使えてる。

追記。

最初はこれでいけてると思ったんだけど、ドキュメント側が結構JS使ってて見つけられなかったりするので、デフォルト動作のブラウザを開いたほうがよさげです。

もしくはvim-racerのKを使えばソースのドキュメンテーションコメントに飛べるのでそれを使うとか。<Plug>RacerShowDocumentationとかそんな名前にしたような記憶があるけど、最新版はどうなってるか分からないのでソースを見て確認してください。

2016-03-08

[](まだ)生きてます 19:03 (まだ)生きてます - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - (まだ)生きてます - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

まぁ何も勉強してないし、作ってもないんだけどなぁ。

2015-09-17

[][][]dman が見つけてきた URL を w3m で読みたかったメモ 02:13 dman が見つけてきた URL を w3m で読みたかったメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - dman が見つけてきた URL を w3m で読みたかったメモ - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

POSIX (というか Linux )上での話です。*1


本質的なコードは dman.d にはなくて、読むべきは std.process.browse (のソース) だった。やってることは

  • 検索クエリを打つためのコマンドを決める
    • デフォルトでは xdg-open を使う
    • 環境変数 BROWSER にコマンドが指定されている場合はそれを使う
  • exec する

くらいかな。あとはエラー処理。

で、最初は単に BROWSER=w3m してみたけどダメだった。プロセス関係よくわからない。

仕方ないので BROWSER=echo して、 stdio 経由で w3m へ渡すようにしたら上手くいった。

あとは dman の吐く URIsed とかで(ここではパラメータ展開してるけど…)修正してローカルに向けてやれば cppref みたいな使い方ができそうな気がする。

以下コード例。

# web のリソースを読みたいならこれでいける
w3m `BROWSER=echo dman process`
# あるいは curl の出力を流し込んでも読める(ファイルとして読んだほうが便利だから上のほうが良いと思う)
BROWSER=curl dman std.stdio | w3m -T text/html

ローカルにある html ファイルを開く例。だけどちゃんと確認してない。あとdlang.org以外のリソースは開けない。

# ここでは denv を使わせてもらってる
export HTML_DIR="$( denv prefix )/html/d"
export BROWSER=echo

w3m "${HTML_DIR}/${$( dman assert )##*dlang.org/}"
w3m "${HTML_DIR}/${$( dman writeln )##*dlang.org/}"
w3m "${HTML_DIR}/${$( dman simd )##*dlang.org/}"

まぁざっくりこんな感じですかね。

気が向いたらスクリプトにしよう。

*1:ついでに言えば D-man ( D 言語くん)の話ではないよ。リファレンス検索コマンドの dman だよ。

2015-08-23

[][][]universal-ctags の Dscanner ドライバ書いた 01:24 universal-ctags の Dscanner ドライバ書いた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log を含むブックマーク はてなブックマーク - universal-ctags の Dscanner ドライバ書いた - zrail (a.k.a. tobira17, h14i, ...) の Learning Log

例によって gist 。

Dscanner driver for universal-ctags ? GitHub


適当に設置すれば動くと思う。

--list-kindsを見るようになってるのがつらいなぁ。今回のケースだとハードコードせざる得ないっぽい。(dscanner が受け付けない)


なんか最近 Dscanner の周辺ツールばかり書いてるけど、実はあんまり Dscanner 使ってない……。

本当は DCD をちゃんと使いたいんだけど、 vim のプラギンの出来がイチマチなんだよなぁ。

自分で補完関数書いてしまおうかとも思ってるけど、そこまでのやる気も出ず。