29092012 Haskell
みんなHaskell好きですね。
次回はネタを持ち寄り勉強会形式でやりましょう。
Yesod面白そうだな。nexus7がきたらepub買ってみよう
Developing Web Applications With Haskell and YesodMichael Snoyman
Oreilly & Associates Inc / 2805円 ( 2012-05-04 )
29092012 Haskell
みんなHaskell好きですね。
次回はネタを持ち寄り勉強会形式でやりましょう。
Yesod面白そうだな。nexus7がきたらepub買ってみよう
Developing Web Applications With Haskell and Yesod28092012 work
理想は追いかけるものだけどね。
ワーク・ライフ・バランスの重要性を説くのだけど。
ワークライフバランスは、「ワークとライフを両方充実させることで、結果として、どちらもうまく回るようになる」という考え方です
個人的にワーク・ライフ・バランスってのはワークとライフの融合を説くものなので、サラリーマンのような時間を売る職業にそれを強いるのはなんだかなぁーと思うところではある。広義の賃金圧縮だろうと。サラリーマンも自営化してきて、成果で賃金が大きく変動するんだったら分かるんだけど。
とはいえ、働き方としてはそうだよなぁと思うのも事実。僕も「より面白いところ、やりがいのあるところ」があれば速攻移るべきだ(流動性に貢献するべき)と思うしね。
28092012 life
小学校の授業で、一人一匹くらい飼ってる小動物を持っていって世話したりとよくわからないことをするのをいまやっているらしい。うちの娘はザリガニを持って行っている。
一応飼っていないヒトは持ってかなくていいらしいんだけど、買ってもってく子供も多いらしい。(で、その後どうすんのそれ?とか思うんだけど、他人のことだからどうでもいい。)
問題なのは、飼ってる動物を毎日学校と家を行き来させるのを一週間続けるってことだ。水槽と虫カゴを出し入れしたら弱るだろうってのはちょっと考えればわかるだろうに。僕は一日だけかなと思っていたので、まぁいいかと考えていたんだけど一週間はさすがにあれだよなぁ。
環境の変化で速攻死んだりしてるらしいんだけど、小学校では何を教えてるんだろ?死んでもいいような小動物を用意してくださいとか但し書きがついてるのを見逃したんだろうか?
27092012 javascript Spine
Spineを使いそうな案件が増えそうなので、ちょっと復習でもしておくかなと前にやったサンプルを動かしてみたらなぜか動かなかった。
結構な時間を費やしたのち、slug.jsonのjquery.tmplを消せば良いと気づいたのだけど、hem serverはエラーを吐かずに動き続けるので気付かなかったのだけど、おもむろにhem buildをしたところ、エラーが出てきたので解決したのだけど、ココらへんはちょっと不親切かもと思った。
spineはまだまだドキュメントも少ないしサンプルも少ないので試行錯誤を強いられるけど、コードの見通しは良いと思う。僕はCoffeeScript好きなので。
26092012 Emacs twitter-bootstrap
最近Twitter-Bootstrapを使っているのでEmacsのLESSモードが欲しくなった。
site-lispでgit cloneしたら
(setq load-path (cons "~/.emacs.d/site-lisp/less-css-mode" load-path)) (setq exec-path (cons (expand-file-name "~/.nvm/v0.8.0/bin") exec-path)) (require 'less-css-mode)
Flymakeも走るので快適だ。

sphinx-quickstart でスキャフォールドを作成したら、sphinx-docxbuilderエクステンションを使えるようにするためクローンする
mkdir exts
cd exts/
hg clone https://bitbucket.org/haraisao/sphinx-docxbuilder
conf.pyの15-30行目あたりを編集
sys.path.insert(0, os.path.abspath('exts')) # -- General configuration ----------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be extensions # coming with Sphinx (named 'sphinx.ext.*') or your custom ones. extensions = ['sphinx-docxbuilder']
Makefileにdocx用の設定を追加
docx: $(SPHINXBUILD) -b docx $(ALLSPHINXOPTS) $(BUILDDIR)/docx @echo @echo"Build finished. now you can process the docx file. $(BUILDDIR)/docx."
文書を作成してみる
make docx
おお!

業務の文書をMSWordで提出しないとだめいうカルチャーの会社は多いと思うが、文書がフォルダに収められた後に、実際に再利用されるのを見たことがある人は少ないはず(探すの面倒だし)。
そういう場合にはReSTで書けるWIKIなんかを使うと常に参照できるうえに必要に応じてレポーティング出来ていいよねと思うのだが。僕はそういうスタイルでやっていたが超快適だった。
この快適さをmoin2+Sphinxで再現したい。
主催者がHaskellerではないので「三島Haskell無名関数の会」と銘打ってますが、正確には三島λerの会です(嘘です)。
というわけで、Haskell (とPython)でおおいに盛り上がりましょう。
λ.ΣπとかいうHaskellとPythonを主軸にした地域コミュニティでもつくるかっていう話をしてこようっと。
24092012 life
戦略として周知されてしまったら、知らないと大損するだけで知っているからアドバンテージが生じるという話にはならんと思うが。
内容はよくまとまっているので、速読にちょうどよかった。
ブルーオーシャンとかレッドオーシャンとか表現すると、まだ見ぬ土地が眠っているみたいに錯覚するけど、レッドを突き詰めて考えていった結果新たな視点が開けるみたいな、視点の転換と新たな顧客想像の結果がブルーだったっていうだけの話で、プロスペクティブにやれんのか?という疑問はつきまとうなぁ。
メディシナルケミストリー系の論文のresult&discussionみたいだw
23092012 Ti
Twitterクライアントの作成をアプリ作成の入門にするのも下火になりそうだし、面倒くさくなる前に作ってみた。お盆のあたりからだらだらコードを写経してたので1ヶ月もかかったが、3,4章のTwitterクライアントまではできた。
4-3-2で紹介されていたキーボードツールバーが動かなくて困ったが、元のソースコードをコンパイルしても動かなかったので、バージョンの関係かなとさらっと流すことにした。
5章は食べログAPIを使ったアプリの開発なのでこれも楽しみ。
それから、function(){}とか()();とか毎回書くのもだるいので写経が終わったらCoffeeScriptで書くことにした。
@ando_ando_andoに呼ばれてコミュニティfでSphinxサイト構築の手伝いをしてきた。彼のためのGit入門サイトが出来てたのを本人に教えてもらったのだけど、alias切ってなくてstatusとかcommitとかフルで手打ちしてたので、上の4つくらいはやっておいたほうがいいんじゃないかなぁ(と今思った)。
ついでに、@ando_ando_andoの「静岡の東部にはHaskellerが多い」という主張を検証するために、今週末に香香飯店あたりで集まって飲むことになったので、参加される方がいれば連絡してください。
さて、彼はインフラエンジニアなので、作業メモとかblockdiagで描いた図なんかを手元で編集して、さくらのVPSで管理したいそうだ(GithubPagesでいいじゃんって言ったら、認証かけたいからそれはダメらしい)。

という状態にして、サーバー側にGitの共有リポジトリ置いて、プッシュしたタイミングで公開サイトのほうも更新するようにフックを設定しておけばいいよねーという僕の提案に対し

pushしたらpullするようにフックを設定すると、もとのrstとかMakefileがサイトのディレクトリに含まれてしまい美しくない。_build/html以下のファイルだけを公開サイトに置きたいと言い出した
ここから、ちょっとハマった。
_build/html以下のみを公開するんだったら、サーバー側にpushした後に、一回cloneとかpushして作業ディレクトリを作ってからcpするなりしないといけないということなので、最初からbareオプション付けないで共有リポジトリ設定すればいいんじゃないと。
これは見事に失敗する
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
メッセージ見たら、まぁそうだよなと思った。なので、これは却下した。
結局サーバーにもクローンを作って_build/html/*を/var/www/html以下の適当なディレクトリにコピーするようにした(今ココ)。

手でコマンド叩いたけど、フックに書いておけばいいかな。
単にbuildしたやつをscpすればいいんじゃない?ってことで

を提案してみたが、彼の美意識にそぐわなかったのかボツった。
cpするためだけにサーバー側に作業リポジトリを作っておくというのはなんとなく気持ち悪いんだけど、他にいい方法ないのかな?
Makefile書き換えて/var/www/htmlにbuildするようなオプション付けておけば、そもそも_buildをGitで管理しなくていいだろうとも思うんだけど、そこらへんの管理のさじ加減みたいなのもちょっと自信がない。
Pythonプロフェッショナルプログラミングになんかヒントっぽいもの書いてないかなぁと読みなおす。