大学在学中にやりたいこと。もっと、物理的なことをやりたい。が、それだけで完結せず、コンピュータ・ネットワークと繋げたい。具体的に何か思い浮かばないけど、なんらかの形で光をとりいれたい。もちろん接触センサーとかもやりたい、が、まったくその辺わからない。理系大学じゃないのがネック
xyzzy -> gvim
vim に慣れるために Windows でのエディタも vim にしてみる、といってもしばらくは共存になりそうだ?
vim といっても gvim でバッファは使わず、タブをひたすら開くことにする。とりあえず関連付けは変えない。というのも、既に開いている vim で開く方法がよくわからないから、だけど、ドラックアンドドロップが使えるのでとりあえずはいいかな。
しかし何故か ft=xml で、閉じタグの omni 補完ができない。ft=html ならいけるんだけど、未登録タグ直下でオートインデントしてくれないので切ない。ついでに CDATA セクションの扱いもアレだし、うーん。とりあえず今は html で書いてる。閉じタグ補完ないと生きていけない。
できれば xyzzy の xml-mode C-. 相当の機能が欲しいけど、とりあえずそんなに困らないからいいか的何か。むしろ = 入力後のクオーテーション補完のほうが欲しい、んだけど、うまく vim script 書けない。
- win の gvim は .vimrc, _vimrc, .gvimrc, _gvimrc を読むらしい? gvim 固有の設定は _gvimrc に書いた。
全然関係ないけど、このサイトの更新システムをどうにかしたい。家の PC でしか基本的に書けないのがイマイチ。FTP うpろどしないといけないしなぁ。めんどい
しかしながら何らかのタイミングでプロンプトが見え隠れするのが嫌だなぁ。
既にある vim で開くには --remote らしい。
win32 gvim は見た目がちゃんとネイティブっぽくていい感じ。マウスホイールも効く。が、コマンドプロンプトが開いたり閉じたりするのはどうするんだ gtlt
なんかやったらすぐに normal に戻る癖をつけよう。
コマンドプロンプトがいちいちでるのは screen の window 名変える echo が動いてるせいだった。gtlt
gvim 常にタブで開くようにしてみる
バッファとタブを併用すると混乱するのでタブに統一したい。vim のバッファはタブごとに複数のバッファ、という風になっていてややこしい。タブ1個に対してバッファ1個にしたい。
たいした方法が思いつかないので以下を加えた。
" バッファを使わない autocmd BufReadPost * tab ball
これで一応関連付けとかドラッグアンドドロップのときはタブを開くようになる。けど、ちょっと挙動が気持ち悪い。タブを閉じても結局バッファは残っているため、次に何かのファイルを開いたりすると閉じたのが復活したりする。これは常に bw (バッファを閉じる) を使っていればたぶん大丈夫なんだろう?
GreaseMonkey で MochiKit 使ってみる。すなわち外部ライブラリの読み込み。あるいははてなのグラフが綺麗じゃない
GreaseMonkey で外部ライブラリが使いたいな。みたいな。似たようなのでは CMS researcher - Greasemonkeyでprototype.jsやscript.aculo.usを使う方法 があるのですが、どうもうまくいかなかったので自力実装。
function dll(loadLibs, afterLoadedFunction) { if (afterLoadedFunction._retry) afterLoadedFunction._retry = 0; else afterLoadedFunction._retry++; if (afterLoadedFunction._retry > 10) throw("Library is not loaded because of some reason."); loadLibs.forEach(function (lib) { GM_xmlhttpRequest({ method : "GET", url : lib[0], onload : function (req) { try { (function (r) { eval(r.responseText) }).call(window, req); } catch (e) { // nigiri tubushi } }, onerror : function (req) { alert(req.responseText); } }); }); var loaded = true; loadLibs.forEach(function (lib) { try { loaded = loaded && typeof eval(lib[1]) != "undefined"; } catch(e) { loaded = false; } }); if (loaded) { try { afterLoadedFunction(); } catch (e) { unsafeWindow.console ? unsafeWindow.console.log(e) : window.dump(e); } } else { var f = arguments.callee; setTimeout(function () { f.apply(this, [loadLibs, afterLoadedFunction])}, 500); } }
で、以下のように使う。
// 第一要素にロードする js への URL // 第二要素にロード確認用のオブジェクトの名前 // を入れた配列の配列 dll([["http://example.com/mochi/Base.js", "MochiKit"]], function () { // ロードされたら実行される })
ポイントは eval を使うところ? eval を使うので unsafeWindow を極力使わなくてすむ。あとは DOM 系の処理でおかしいこと (ここには append できないぜ系エラー) になりにくい気がする。
ロードするスクリプトの依存関係上、何度かリクエストが発射されることがある。めんどいのでブラウザのキャッシュ機能にまかせてこっちではキャッシュしていないけど、ホントはちゃんとキャッシュしたほうがいいはず。
でもって、はてなアンケートの円グラフを PlotKit で描画しなおす GreaseMonkey スクリプトを書いてみた。hatena-q-make-graphs-with-plotkit.user.js
結果をソートするようにした。あと Global じゃなくて window 使うようにした。
id:secondlife さんからの指摘により、エラーを握りつぶす処理を追加し、最大ロード試行数を加えました。
ぼーっとソースを読むとき
なんとなくぼーっとソースを読みたいときって、コンソールのアプリケーションだとだめなんだよなぁ。マウスでドラッグアンドドロップでエディタで開いて、マウスホイールで眺める。そういうのを楽にやりたい。
Linux デスクトップとかだとこういうのがすっごいやりにくい。ファイラが使いにくい。なんか疲れる。
キーボードがもっとうまく使えたらいいんだろうなぁ。気合入れないとキーボード使えない。なんかキーボードは typo しまくるから、ストレスたまる。いつまでたってもタッチタイピングできない。P とか今だに一発でうてなくて @ を押しまくる。, も . もうまく入力できない。数字もだめだ。みないと打てない。[ とか ] も、? も / もうまくうてない。そして、そもそも左シフトを押す習慣がない。右手の動きに無駄が多すぎる。そういうのをいちいち感じるから、キーボードはストレスが溜まる。
それで結局、改善しようと思っても、いつもの無駄なうちかたをしてしまう。無駄な打ち型のほうが早いんだから仕方ない。少しずつやっていくしかない。左手があんまり動かなくなったのもかなり最近だしなぁ。CapsLock を Ctrl に変えたあたりでやっとあんまり動かなくなった。
Remember The Milk
Remember The Milk 使い始めた。思ったより使いやすく感じない (タスクの選択とかがイマイチわかりにくい気がする)。
課題とかのタスクを登録しておいた。あと、おきてからすることとか。不安なことをタスク化するのは楽になってよい感じ。でも登録したはしたで、「まだ登録しきってないタスクがあるんじゃないだろうか」と不安になるダメさ。
タスクの一覧ってないのかなぁ。リストを超えたグローバルなやつ。