GONE WITH THE MEDICINE

2014-08-26

treeコマンド,大事です。

どもです。


てかcygwinにtreeってなかったんやね。

つい最近使った記憶があるんだが,夢だったのだろうか。

というわけで自前でビルドしてインスコ


http://mama.indstate.edu/users/ice/tree/src/

から,

現時点での最新版っぽい,

http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz

をDL。

http://futurismo.biz/archives/1373

とか

http://d.hatena.ne.jp/kanonji/20120328/1332913115

を参考にビルド

感謝。

まあWarningは出るけど成功するはず。

んで無事インスコ

気に入らんでおじゃる

なんか,teratermから使うと「???」とか出るし,NTEmacs内のshellから使うと,

エッジを表現する文字が全角文字になって,ずれるし,色々きもい。

きもいので,中身をいじる。

一応と,

% LANG=C tree

すると,きもくなかった。


覗いて見ると,エッジとかを表現する文字は,color.c で定義されている模様。

なので,utf8に対応するエントリを,以下の様にplain vanilla味に変更して,make。

  static const struct linedraw cstable[]={
    { latin1_3,    "|  ",              "|--",            "·--",     "©"   },
    { iso8859_789, "|  ",              "|--",            "·--",     "(c)"      },
    { shift_jis,   "\204\240 ",        "\204\245",       "\204\244",       "(c)"      },
    { euc_jp,      "\250\242 ",        "\250\247",       "\250\246",       "(c)"      },
    { euc_kr,      "\246\242 ",        "\246\247",       "\246\246",       "(c)"      },
    { iso2022jp,   "\033$B(\"\033(B ", "\033$B('\033(B", "\033$B(&\033(B", "(c)"      },
    { ibm_pc,      "\263  ",           "\303\304\304",   "\300\304\304",   "(c)"      },
    { ibm_ps2,     "\263  ",           "\303\304\304",   "\300\304\304",   "\227"     },
    { ibm_gr,      "\263  ",           "\303\304\304",   "\300\304\304",   "\270"     },
    { gb,          "\251\246 ",        "\251\300",       "\251\270",       "(c)"      },
    { utf8,        "|  ",              "|--",            "`--",            "(c)"      },
    /* { utf8,        "\342\224\202\302\240\302\240", */
    /* "\342\224\234\342\224\200\342\224\200", "\342\224\224\342\224\200\342\224\200", "\302\251" }, */
    { big5,        "\242x ",           "\242u",          "\242|",          "(c)"      },
    { viscii,      "|  ",              "|--",            "`--",            "\371"     },
    { koi8ru,      "\201  ",           "\206\200\200",   "\204\200\200",   "\277"     },
    { windows,     "|  ",              "|--",            "`--",            "\251"     },
    { NULL,        "|  ",              "|--",            "`--",            "(c)"      }
  };

確認。

% tree
.
|-- CHANGES
|-- color.c
|-- color.o
|-- doc
|   |-- tree.1
|   |-- tree.1.fr
|   `-- xml.dtd
|-- hash.c
|-- hash.o
|-- html.c
|-- html.o
|-- INSTALL
|-- json.c
|-- json.o
|-- LICENSE
|-- Makefile
|-- Makefile.~1~
|-- README
|-- strverscmp.c
|-- strverscmp.o
|-- TODO
|-- tree.c
|-- tree.exe
|-- tree.h
|-- tree.o
|-- unix.c
|-- unix.o
|-- xml.c
|-- xml.o
`-- テスト
    |-- test1.txt
    `-- test2.txt

2 directories, 30 files

うむ。おっと,一応teratermからのcygwinからも確認。

うむうむ。きもくない。

もっかい,make install して完了。

余は満足じゃぞ。

2014-08-14

色,大事です。

どもです。


いやね,javascriptをテストしたくなってきて,

いやさ,テストしないとしんどくなってきたので,色々調べているんです。

お手軽にお勉強目的だと,phantomjs + qunitが楽そうだなーと。

けどね,htmlファイルが必要になるんよ。

わしゃDOMとか無関係なコードをテストしたいんよ。

なので,コマンドラインからごにょごにょすれば,テストが走って,

結果がコマンドラインに出力される。

これそこそこ最強と思うわけです。

Emacs内から全部できたら最強。


んで,さらに「qunit passing output to console command line」とかで

ググってたんだけど,見つからん。

ワンチャン日本語で見つかる? と思って,ググったらあったっぽい。

http://d.hatena.ne.jp/t-wada/20100604/qunit_tap


TAP形式には慣れてないというかほぼ接触がない童貞ですが,まあいいかと思い読んでいて,

それでもわくわくしてきたんですけど,何か忘れちゃいませんか? と。

Red ==> Green ==> Refactorでしょうが!!


qunit-tapを試してないんでわからないですが,緑と赤は必要だと思うんだ。

じゃないと気持良さ半減でお客さんも半減しちゃうよ!

お客さんが減ると嬢の質も下がる,お店の儲けも減る,

なんてこったい悪循環や!


というわけで,試してくる。

2014-08-06

Eloquent Javascript 2nd edition

http://eloquentjavascript.net/


ライセンスがどうのこうのはあるが,無料で「最新版」が読める!!

紙媒体では2014年11月に発売予定とのこと。

もうごりっと全部印刷したい勢い。

これは非常にありがたい。ありがとう中の人達!

早速w3mのお気に入りに突っ込みました。


いや「javascript intermidiate books recommend」でググってたらたまたま見つけたんで,

情報を共有できればなと。

あっ。もしかして知らんかったのわしだけか?


あー最近洋書しか読んでねーわー。洋書たけーわー。日本語の本が恋しいわ−。

ってキメッ!! としたかったが,storyjpの話が元になった本を読んだばっかりだったでござんす。

kindleの読み放題って日本からもいけるん?

あと技術書も含まれるん?

るんるんるん。

2014-03-06

フリクションボール4 ウッドモデル

どもです。

久々の文房具ネタ。

言いたいことから言うと,「パイロットさん,わかってきましたね。」と。

フリクションボール4 ウッドモデル買ったった!

フリクションボール3が出た時点で絶対出すとわかっていた4色モデル。

くやしいと思いつつ3色モデルを購入し,そして今回出た4色モデルも買っていくという男っぷり。

当然のように両方ウッドモデル。これ値段だけみると2本で計5000円でっせ。

ザ無駄遣い。

f:id:whitypig:20140306204410j:image


しかし,パイロットさんは何をすればいいのか段々わかってきたっぽい。

「かおる君,君が何を言っているのかわからないよ」状態ですか?

よろしい,ならば,これをご覧あれ。

既に用済みとなり,この後ウッドグリップのみを抜き取られDr.Grip4+1に移植されるであろう,

在りし日のフリクションボール3との記念撮影。

f:id:whitypig:20140306204411j:image

まだ気づかないって?

んじゃあ答え言ってまうよ。

何が違うって,クリップとかがマット加工になってるんじゃあああああ!!


もうね,これに関してはずーっと前から言ってますねん,わたくし。

Dr.Grip4+1最高だけど,クリップ部分とかに蛍光灯が反射してすげーうざいと。

その点,ジェットストリームピュアモルト4+1はよくやってくれたと思う。


そして,「ほう・・・」と感心したことが。

こちらの解体写真をどうぞ。

f:id:whitypig:20140306204412j:image

そう,金属部分が全てマット仕上げ。

頑張ったなパイロットさん。わかってきたなパイロットさん。

この写真見て分かる通り,フリクションボール3のクリップに光が反射して,

キラキラしてるっしょ?

これが最強にうざい。偏頭痛持ちの人にはよく分かってもらえると思う。


さらに,「ほう・・・」と思った点。

f:id:whitypig:20140306204413j:image

消しゴム? 部分が何か間抜けに見えた半透明から黒へ。

グッジョブ!!


さて,購入時点では0.5のフリクション芯が入っていますが,

当然,0.38芯も入ります。

f:id:whitypig:20140306212355j:image


漢字を多用して小さい文字を書く必要がある人には0.5だとちょいと太い場合がござんす。

そんな場合は0.38芯に交換することをおすすめします。


楽天で「フリクションボール4 ウッド」を検索


私はここでメール便指定して2680円で購入したんですが,売り切れですね。。。


他の安いところだとこんなところか。メール便指定可。


芯を0.38に交換する人はこちら。

楽天で「フリクション 替え芯 0.38」を検索


フリクションはインクの消費が早いので3本セットを各色買っておくといいと思います。

というか私はそうしてます。

あと,「やい! 0.38はフリクションボールスリム用の替え芯じゃねえのかい?」と

心配するかもしれませんが,ご安心を。

フリクションボール4,フリクションボール3,両方で問題なく使用できます。



緑に関しては,3本セットが発売されてないと思うので,

今のところ1本ずつ買うしかない・・・。

パイロットさん,何がいいたいかもうわかってますよね?

はい,そういうことです。

ちなみに緑じゃなくて,例えば紫がヤンキーっぽくていいなーという場合も,

フリクションボールスリムには色んな色が揃っているので,使用可能でっせ。


ちなみに文房具ごときに3000円なんて出せるかボケ!

「・・・やだ・・・でも・・・ちょっと気になる・・・///」」

という人はプラスチック版はどうでしょうか。定価800円なり。


まとめ

  • 3000円出してまで買う必要ある? 人それぞれ。
  • パイロットさんは頑張っているようで段々とわかってきているようだ。
  • Dr.Grip4+1のウッドグリップ+マット仕上げモデルを早く出せ。値段は2000円。最悪2500円だ。

2014-01-17

ハッシュテーブルのファイルへの書き出しとか

どもです。

さっぶいですねー。


ハッシュテーブルをファイルをファイルに保存しておきたいなーなんて思っちゃったりいたしまして,

さてどうしたもんかと。

以前,確かハッシュテーブルはファイルにそのまま書き出せないみたいなのを

どっかで読んだ記憶がありまして,適当にprintで書き出して試して見たらやっぱりダメでした。

つまりコレがnilを返すわけです。

(let ((tbl (make-hash-table :test #'equal))
      (tbl2 nil))
  (puthash "key1" (make-hash-table :test #'equal) tbl)
  (with-temp-buffer
    (goto-char (point-min))
    (print tbl) ; prin1でも別にいい
    (goto-char (point-min))
    (setq tbl2 (read (current-buffer))))
  (hash-table-p tbl2))

結論から言うと,後々わかったんですがこれで可能。

最初に試したときに,なぜかこれがnilを返していて,

もしくは何かを間違っていてnilを返したと勘違いして,

せこせこと書き出し用の関数を作りました。


なぜに読み込めなかったのか,今となっては謎なのですが,

似たようなことを別のelispでやっているはずだと思い出しそのファイルを覗いたところ,

書き出しはそのままテーブルをprin1。読み込みはread。

えー。犯人は間違いなくワタシ。しかし犯人はやった覚えはないと容疑を否認している模様。

んなあほな。ほんまに記憶ないよ。


ちょっとぐぐっとググってみると,どうやらemacs23くらいから可能になったようです。

http://www.emacswiki.org/emacs/ElispCookbook からちょいと拝借すると,

 (read (prin1-to-string (make-hash-table))) ;; Error before Emacs 23.
    ==> #s(hash-table size 65 test eql rehash-size 1.5 [...] data ())

らしいです。


ただしでかいハッシュテーブルの場合,ごりっと書き出すのと,

走査しながら書き出すのとではどっちが速いかはわかりません。

いやごりっと書き出す方が速いだろ,そりゃ。

でもたぶんハッシュの値の型とでかさによると思うなーと負け惜しみを言っておこう。

1行がめーーっちゃ長くなるような場合は読み込み遅くなりそうじゃん?

ぐちぐち。

だってall of my efforts went in vainなんだもん。

あ,いや,そうそう,下位互換性を持たせたかったんですよ! まじで。

はじめからわかってたし。はいチャックチャック。


まとめ

ハッシュテーブルの書き出し,読み込みのお供にはprin1とreadをどうぞ。