2012/03/17

Emacs24のテーマ

Emacs24のpretestも5版(24.0.94)になって、そろそろ24に移行すっか、というわけで、24を常用し始めました。オイラは職業プログラマじゃないんで、emacsの用途といえばorgでレポート書いたり、趣味のclojureで遊んだり、まあ気楽なもんなんですがね。そんなハンパユーザーだから、あんまり機能がどうのというのは気にならんのだけれど、気になってたのがelpaの正式サポート。まあ正式じゃなくても使えてたからいいんだけど、とりあえず何も設定しなくても使えるってのがいいじゃないですか。それと、今までcolor-themeっていうのをインストールしてカラフルにしてたんですが、正式にテーマがサポートされたこと。で、早速M-x customize-themesとかやって見るわけですよ。color-themeのテーマライブラリーには山のように他人が作ったテーマが付属していて、適当にヨサゲなのを選ぶ楽しみがあったんだけど、正式なテーマは何だか数が少ないぞ。それと、何となく好みのテーマがない。うーん、どうしよう。ちなみにcolor-theme時代にはclarityってのが好きで何年も使ってた。その前はsubtle-hackerとかも使ったかな。ちなみに、24になってもcolor-themeは使えるみたいですけどね。

で、最初は付属のthemeをテンプレートにして、color-themeのclarityから適当にコピペしてそれっぽくしていたんだけど、どうせどっちもset-faceしているだけだし、color-themeのfaceをダンプしてEmacs24用のthemeに変換するってのを作ってみた。

こんな感じ。相当やっつけ(笑)。だってどうせ一回しか使わないし。
Emacs23を-qで立ち上げて、color-themeだけロードしてM-x color-theme-clarity、そのあと上のファイルをロードして、M-x my-dump-themeするとテーマの名前と説明を聞いてくるから適当に答えてあげると、新しいバッファにEmacs24用のthemeができる。そのバッファを適当な場所にセーブしとく。オイラの場合は~/.emacs.d/themes/というフォルダを掘って、そこにぶち込んだ。
今度はEmacs24でcustom-theme-directoryにさっきのフォルダをcustomize-variableして、M-x customize-themesすると、さっきのテーマがリストに現れるって寸法。
で、これを使って作ったclarityがこれ。

うーん、clarity。うーん、マンダム。

2012/01/13

ClojureScript Oneやってみた

ニュースリーダー見てたらClojureScript Oneというのが出てた。気になってたんだけどなんとなく触る機会がなかったClojureScriptだけど、ClojureScript Oneは見た感じハードルが低そうだったので、ちょっと触ってみた。

git clone https://github.com/brentonashworth/one.git 
cd one 
script/deps 
script/run
の4行でできるって書いてあるし。ちなみに環境はWindowsXP+cygwinとjre1.6です。

git clone https://github.com/brentonashworth/one.git

これはまあ普通にクローンできる。

cd one

これも普通。

script/deps

で、これをやるとjarが見つからんといってこける。まあそうだよな、jreにはjarコマンド無いもんね。幸い(?)jdkもパソコンに入ってたんで、jdkからjar.exeとjli.dllをパスの通ったところにコピる。本当はパスにjdkを追加するべきだな。この理由は……続きはWebで。あ、Webだった。jarが動けばまあ普通に終る。

script/run

これを実行すると、まずError: no `server' JVM at `C:\Program Files\Java\jre6\bin\server\jvm.dll'.てなエラーメッセージがでてこけてしまう。そうだよなー、jreのjvmには-serverがないもんなー。というわけで、これもjdkの方のbin/serverをjreのbinにそのままコピる。これでjava -serverが使えるようになる。再度実行すると、今度は、java.lang.NoClassDefFoundError: jline/ConsoleRunnerなんてエラーがでる。jlineちゃんと入ってるのになー、と思いつつ、これは例によってclasspathがunix(cygwin)のままなのがだめだろう、と見当をつける。仕方がないんで、script/setup_classpath.shの最後に
if [ "$OSTYPE" = "cygwin" ]; then
    CLJSC_CP=`cygpath -wp "$CLJSC_CP"`
fi
を追加して再実行と。
お、REPLが動いてるじゃん、ということでhttp://localhost:8080/にアクセスすると、今風の画面が。

まとめ

取り敢えず動いた。以上。

2012/01/06

orgで書き捨て その2

前回のwkhtmltopdf版は便利に使っているんだけど、いまいち出来上がるpdfが綺麗くない。ちゃんとスタイルシートを書けばいいんだろうけど、どうせ書き捨てなんでそこまでやる気もない。orgにはLaTeXの他にもdocbookからpdfにexportできるので、今度はこれを使ってみようかと。なんとなくハマリそうだったので、今までdocbookは避けてたんだけど…取り敢えず動くようになったんでメモ。

準備

外部のモロモロを事前に準備する必要がある。これはorg-export-docbookをcustomize-groupするとあらかた見当がつく。

  1. org-export-docbook-xslt-proc-command
  2. org-export-docbook-xsl-fo-command
  3. org-export-docbook-xslt-stylesheet

こんな感じ。まず、org-export-docbook-xslt-proc-commandはcygwinのxsltprocを使うことにした。あ、cygwinとgnupackさんのNTEmacsユーザーです、ワシは。cygwinでlibxml2とlibxsltをインストール。

次にorg-export-docbook-xsl-fo-commandだが、コイツはApache FOPを使うことに。ダウンロードして適当なところに置いておく(FOP_DIRとする)。

さらにorg-export-docbook-xslt-stylesheetですが、これもここから最新のdocbook-xsl-1.76.1というのをダウンロードして、適当なところに置いておく(DOCBOOK_XSL_DIRとする)。

テスト


ここで手動でpdfを生成してみる。まずhoge.orgをorg-export-as-docbookしてhoge.xmlを生成しておいて、

$ xsltproc --output hoge.fo $(DOCBOOK_XSL_DIR)/fo/docbook.xsl hoge.xml

$ $(FOP_DIR)/fop hoge.fo hoge.pdf

とやってみる。一応pdfができたのだけれど、日本語の文字がががががが…ぐぐるとfopに日本語フォントをしらせてやらんといかんみたい。

FOPに日本語フォントを

で、このあたりを参考に、MSゴシックとMS明朝のフォントメトリクスを抽出して、fopのuserconf.xmlを書く。ちなみに現在の版(fop-1.0)だと、特に指定しない場合はconfは読まないみたいなので、confフォルダにあるfop.xconfをuserconf.xmlにコピーして、フォントメトリクス部分を先のリンクのように変更。ただし、metrics-file、embed-fileはそれぞれmetrics-url、embed-urlに変更する必要があった。

これで再度手動でPDFを生成してみる。

$ $(FOP_DIR)/fop -c $(FOP_DIR)/conf/userconf.xml hoge.fo hoge.pdf

おー、でけたでた。日本語もちゃんと見えるじゃまいか。

全部まとめてemacsに設定

ここまでくるとあとは楽。先ほどのcustomize-groupで
  1. org-export-docbook-xslt-proc-command ⇒ $(CYGWIN_BIN)/xsltproc.exe --output %o %s %i
  2. org-export-docbook-xsl-fo-command ⇒ $(FOP_DIR)/fop.bat -c $(FOP_DIR)/conf/userconfig.xml %i %o
  3. org-export-docbook-xslt-stylesheet ⇒ $(DOCBOOK_XSL_DIR)/fo/docbook.xsl
と設定してやってM-x org-export-as-docbook-pdfっと。

あれ、エラーになる…

例によってパスに日本語が入ってるんで、うまく外部コマンドが動いてないっぽいんだけど、edebugで見てたらなんかちょっと変。パスに入っている日本語文字が、ご丁寧に一文字づつ\\でエスケープされてる。うーん……

org-export-as-docbook-pdfのソースを見たら、shell-commandに渡すパスをshell-quote-argumentでエスケープするようになってる。ちょっと悩んだけど、まあ悩んでいても仕方ないんで、org-export-as-docbook-pdfからよばれたらshell-quote-argumentは引数をそのまま返すようにdefadviceを2ケ書いてみた。これでワンストップでpdf生成までできるようになった。

で、感想

うーん綺麗なpdfだ。目次までついて。

えっ? orgのオプションでtoc:nilにしてあるんだけど? あれ? 

というわけで、ちゃんとしたドキュメント用には凄く良さげなんだけど、書き捨て用には使えないなぁ。
p.s.文字化けするのなんで?

2012/02/01追記

xsltprocに--stringparam generate.toc 0を追加したら、目次が生成されなくなりました。書き捨て用に使えるようになってしまったよ(笑)

2012/01/02

年始


1月2日は甲府に年始に。別に決まりがあるわけじゃないけど、もう何年もそうしているなぁ。で、最近は八王子で一旦出て、そごうでお使い物を買うついでに、まい泉のかつサンドを買って、電車(大抵かいじ)で昼食。まめおは鶏肉以外の肉はあまり好きではないようだけど、まい泉のかつサンドだけは大好き。今回も家を出る前からかつサンドかつサンド言ってた(笑)。

そういえば八王子そごうってそろそろ閉店じゃなかったか?次は多分春のお彼岸なんだけど、お使い物とかつサンドどこで買えばいいんだろう。

2012/01/01

あけましてとかなんとか


ここ数年全く一緒の年賀状です。まめおは卒園したり入学したり骨折したり神輿担いだり自転車に乗ったり、まあ普通に生活してます。


まめおにせがまれて初日の出を見に行きました。さぶかった。しかしこいつはジャンパーを重ね着して、帽子の上にヘルメットかぶって、コントの衣装のような格好をしてますね。

雲が多くて、太陽が見えたのは7時をかなり過ぎてからでした。

というわけで今年もよろしくとかなんとか。

2011/10/23

新しい自転車



まめおは新しい自転車を買ってもらった。ギヤ付きだぜ。オヤジの図書館に付き合うついでに交通安全のお守りを買いに師岡熊野神社へ。あんまりかっこいいお守りがなかったので、八咫烏のサッカー守りを購入(熊野神社なんで)。ちょうど七五三の時期で、結構賑わっていた。



図書館の後はまた鶴見川沿いをサイクリングがてら。



これは川沿いにある市営地下鉄の車両基地。このあたりは広々しているんだけど、倉庫や工場ばかりでちょっと気味が悪い。廃墟っぽくて荒んだ感じ。

今回も無意味な動画を。




Posted by Picasa

2011/10/10

サイクリング

まめおが自転車に乗れるようになったので、サイクリングに行ってみた。図書館までは以前に一度一緒に行ったんだけど、途中に山があってまめおの自転車ではかなり大変。なので、鶴見川沿いに新横浜方面へ。

まずは太尾公園で給水。太尾公園を過ぎるともう新横浜のビル街が見え、その先に日産スタジアムと労災病院が。オヤジは朝飯を食べてなかったので、コンビニでおにぎり調達。まめおに何か食べるか聞いても何も要らないという。まめおはよっちゃんイカ(笑)とお茶だけ。
途中で新横浜と小机の中間にあるまめおの生まれた病院へ。7年ぶりに見たけどなにも変わっていなかった。まめおは別に感慨もないようなので、写真省略。 ビル街を見ながら日産スタジアムの先の新横浜公園へ。広々していて気持ちが良い。今日は体育の日なので、イベントもいろいろやってる。というか同じ区内なのに何この差、という感じ。芝生のベンチで休憩。
さて帰ろうと思い、新横浜公園から鶴見川に出る場所を探したんだけど、あっちこっちで行き止まり。結局入ったところからでないと出られなかった。ここで30分位時間がかかってしまった。帰りはひたすら鶴見川を下るのみ。まめおは結局人の歩く程度のスピードしか出せません。まあその小さい自転車じゃ仕方がない。最後は近所のコンビニでアイスモナカ。
うちから新横浜公園まで直線距離だと片道4km位。川沿いだと曲がっているので6km位か。いい運動になった。

2011/10/09

brainfuckインタープリター

この記事に触発されて、brainfuckのインタープリターを書いてみた。Clojureのimmutableな世界のコストがどれほどのものか、ちょっと気になって調べてみたくなった。普通にClojureで書くと、30,000個のセルを都度assocで作りなおすことになる。少しでも軽くするために、(vector-of :byte)を使ってみた。

次に、セルを都度作りなおすのではなくtransient vectorにして、assoc!で書き換えるという、手続き的なやり方の版を書いてみた。残念ながら(vector-of :byte)で作ったものはtransientに出来なかったので、意味的には最初の版とちょっと異なってしまったが、まあ気にしないでください。
さて、brainfuckのHello world!("++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.")を実行してみて、どの程度違いがあるのか調べてみよう。それぞれ100回実行して、

minavrmax
immutable版124.82159.86268.14
transient版61.10113.55356.83

単位はmsだけど、うちの糞遅いEeePCで、裏でchromeがいっぱいタブひらいていたり、emacsが動いていたりするんで、値自体は重要じゃない。で、思ったほど変わらないじゃないか、というのが感想。もちろんtransientにするだけなんで、変更のコストも安いんだけど。(vector-of :byte)なんてのを使っているのも、都度生成/コピーしても速度的に劣化しない原因なんだろうな。
ちなみに、インタープリターのカンマ命令はテストしていないので、これで実装が正しいかわからない。brainfuck自体にはあまり興味がないのだろう、オレは。

2011/09/16

お墓参りと昇仙峡

お彼岸なのでお墓参りに。

例のごとく八王子で手土産とまい泉のかつサンドを買ってかいじに。いつもは空いているんだけど、今日は三連休の初日だからか、八王子では自由席に座れなかった。でも大月からは座れた。

長禅寺にお参りしたあと爺さん婆さんの家に。今年は昇仙峡に行きたかったので、そのまま親戚の家も一瞬で通り抜け、山交バスで昇仙峡へ。

実はオヤジはずいぶん小さい頃(多分今のまめおよりも小さい頃)、昇仙峡の河原で水晶を探したことがある。もちろん見つかるわけは無いんだけど。その話を聞いたら、無性に昇仙峡というところに行きたくなったまめお。水晶を見つけるつもりでやってきた。

本当は天神森から奇岩を眺めながら川沿いの遊歩道を歩くんだけど、台風の後で川の水量が多く、とても河原に降りられるような状態じゃない。しかももう午後3時過ぎなので、終点の仙娥滝の上までバスで行った。 まめおの後がその仙娥滝が落ちているところ。遊歩道を歩く代わりに、仙娥滝の下まで降りて、滝をちょっとだけ鑑賞。水量は多いけど、水が濁っていてちょっとがっかり。

仙娥滝の上にはもちろんお土産物屋がいっぱいあって、その中に、プールに砂を敷いて水を張って、紫水晶やらヒスイやらの屑石を埋めてあり、それを移植鏝で掬って笊で濾す、という子供騙しをやっているところがあり、まめおは見事にそこに吸い寄せられた(笑)。時間制限なし、袋いっぱいで1,000円。いい商売だ。30分位かけて袋いっぱいの屑石、もといお宝をあつめて満足したまめお。

それから昇仙峡ロープウェイにのって、展望台まで。甲府の街はよく見えたけど、残念ながら富士山は雲に隠れて見えなかった。

ロープウェイを降りて帰りのバスの時間を見たら18時。タクシーの相乗りの斡旋をしてるおじさんに声をかけられて、1,000円でいいよというわけで、帰りはタクシーで、千代田湖、和田峠経由で。タクシーの運転手さんはいろいろ観光案内をしてくれた。が、千代田湖は小学校の遠足の目的地だったし、和田峠はバイクでねぇ。そう言えば昇仙峡ってちゃんと観光したことがなかったよなぁ。学生の頃車で金桜神社に初詣に行ったりバイクで昼飯に山菜そば食いに行ったりしたことはあったけど。というわけで、爺さん婆さんのうちにちょっと寄ってから、横浜に帰った。

2011/09/03

まめお7歳


9月3日はドラえもんの誕生日だけどまめおの誕生日でもある。誕生日は回転寿司に連れていけとのこと。まめおは骨折する前に自転車に乗れるようになっていたんだけど、骨折してた間は自転車に乗れなかった。ギプスがとれてお医者からOKをもらって、最近やっとまた自転車に乗れるようになった。オッチョコチョイなので、交差点に差し掛かるたびに「止まれ」とか「左右を見ろ」とか言わないと、そのまま飛び出してしまう。危なっかしくてしょうがない。