今月は5冊。冊数だけで見ると少ないが、週1くらいのペースで面白い本が読めた。
最初に読んだ ボナンザVS勝負脳―最強将棋ソフトは人間を超えるか (角川oneテーマ21) は2007年の本。実は今読むとかなり状況は異なってはいるが、そもそもどういった思想でコンピュータ将棋のアルゴリズムが実装されているのか。それに対してプロ棋士はどの様に考えるのかなどが双方の立場から交互に章で述べられていてとてもおもしろかった。
今月は5冊。冊数だけで見ると少ないが、週1くらいのペースで面白い本が読めた。
最初に読んだ ボナンザVS勝負脳―最強将棋ソフトは人間を超えるか (角川oneテーマ21) は2007年の本。実は今読むとかなり状況は異なってはいるが、そもそもどういった思想でコンピュータ将棋のアルゴリズムが実装されているのか。それに対してプロ棋士はどの様に考えるのかなどが双方の立場から交互に章で述べられていてとてもおもしろかった。
evac - Node.js based simple aggregator - でこの一週間改良した箇所まとめです。
SlackのIncoming webhookを利用してevacの出力をSlack上に流せる様にしました。
例えば、
in: staticWord: text: Hello, slack! <http://www.remp.jp> out: slack: url: https://hooks.slack.com/services/***/***/****
の様にoutputとしてslackプラグインを指定し、SlackのIncoming webhookの設定で示されたhook用のURLを指定してやることで任意のルームで発言することができます。
REMPチームで今までチャットシステムにLingrを利用していたのだけど、会社でもSlackの試用を始めたりしているので丸っとSlackに移動させようとLingrで動かしていたHubotをSlackに移した。
Slack自体がHubotを稼働させるためのintegrationとして準備しているのでほとんど障壁が高く無かったのだけど、一応動かした際のメモ。
https://〜.slack.com/services の Integrations で Hubot を追加する
Setup Instructions
として表示される HUBOT_SLACK_TOKEN
の値をHubotが稼働しているサーバーへ環境変数として追加する。Hubotのプロジェクトに slackhq/hubot-slack · GitHub を追加する。
$ npm install hubot-slack --save
Hubotを起動させる際にアダプタとしてslackを指定する。起動時に -a のオプションを指定する。
$ bin/hubot -a slack
Hubot自体も、Hubotを永続化させるのに利用しているsupervisorの設定もChefのテンプレートとしてリポジトリ管理してたのでその辺りも我ながらよかった。*1
*1:というか普通はきっとherokuで動かしてるんだろうな。
天ぷらにソースをかけますか?―ニッポン食文化の境界線 (新潮文庫)という本を読んだ。
食文化って面白い。東京に出てきて大分時間は過ぎたのだけど、外でご飯を食べたり人とお酒を呑んでいると、稀に「あれ?こんな食べ方するのか。」と思うことがままある。
ちなみに東京では、決してコンビニで豚まん(肉まん)を買っても何もついてこない。豚まんには酢醤油が欲しいとやっぱり思ってしまう。
この本では、
などといった日本各所によって異なる食文化の断片を知ることができてとても面白い。
REMPやSTORYBOARDS ではminaを利用してデプロイを行っているのだけど、これらのアプリケーションでもステージング環境を扱いたいなと思った時に切り替えをどの様にすればよいのか調べたのでメモ。
以下の様な感じで切り分けができる。
case ENV['to'] when 'staging' set :deploy_to, '/foo/bar/storyboards_staging' else set :deploy_to, '/foo/bar/storyboards' end
これでデプロイする際に
$ bundle exec mina deploy to=staging
とすることでパラメータとして渡すことができるので、これでデプロイ先を切り分けることができる。
突然ですが餃子好きですか?
餃子は美味しいので家でもタネから作ったり、お手軽に冷凍食品のものを買ったりして家で焼くことが多いのですが、意外と焼くのは簡単なのでその時のコツ3つ。
これだけで餃子は上手に焼ける(はず)
フライパンを温めてから餃子を並べると最初に入れた餃子はきれいな焼き色がついたのに、並べ終えて最後に入れた餃子は全く焼き色が付かない。というケースがあるので、そうであれば火を付ける前から並べれば良い。ということで、フライパンに油を引いたら餃子を並べてしまいます。
焼きムラ気にして慌てなくても良いし、並べるときに鍋は熱くないのでゆっくり作業できます。
餃子を2,3個箸で上げてみて焼き面を見ていい焼き色がついていたらフライパンに水を入れます。
これは一般的だと思いますが、いざ実際やってみるときになると「こんなに入れて焼き餃子になるのだろうか!」という不安に襲われて稀に控えめにお水入れる方もありますが、心配せずに餃子が1/3〜1/2程度水に浸かる程度入れてしまいます。
ここで入れる水を中華スープの素を薄く溶いたものを使うと餃子の皮に外側からも味がしみこんで美味しくなりますがスープが濃すぎると「これは中華スープに浸かった餃子を焼いたな」という餃子になるのでお好みで....。
入れたら 強火&蓋をして 水を蒸発させていきます。
水をどんどん蒸発させていき、フライパンのそこに水が多少残ってぐつぐついっている段階でごま油をフライパンの周りにかけます。水が残っているところに油をかけると、これもまた不思議な感覚に襲われることもありますが気にせず回しかけます。
その後は蓋を取ったまま水を完全に蒸発させて、ごま油で餃子の皮がカリッとなったら出来上がりです。
evac - Node.js based simple aggregator -で今週改良した箇所まとめです。
トピックとしては、以下の2点。
今までJSONでレシピを対応する仕様にしていたのですが、YAMLでも定義できる様になりました。
in: staticWord: text: "test word." filter: through: out: stdout:
上記の様なYAMLファイルを用意した上でevacコマンドに渡してやれば、
$ evac test_stdout.yaml test word.
と今までどおり扱うことができます。
標準入力のプラグインを追加しました。入力として標準入力を扱うことができる様になったので、例えば、標準入力で渡された内容をそのままPushbulletで通知したい場合、
in: stdin: out: pushbullet: device: ******@gmail.com token: ******* title: テスト mode: note
といったレシピファイルを用意した上で実行時にパイプを利用して文字列を渡してやることで、その内容をPush通知できます。
実際に標準入力で渡された文字列をPushbullet経由で通知している様子はこの様な形。
$ echo "Hey" | evac -v test_stdin.yaml
evacでは、アグリゲータとしての挙動をJSONファイルで定義する様にしていて、その内容の解釈にnconfを利用しているのだけど、YAMLもフォーマットとしてサポートさせたいので試してみたのでその際のメモ。
nconf自体はパーサーを外部に指定できる仕組みがあるので以下の様に組み合わせるとYAMLをJSONを扱うのと同様に解釈できた。
YAMLのパーサーには以下を利用した。
YAMLファイルを適当に準備。
in: staticWord: text: "test word." filter: through: out: stdout:
これをnconfと組み合わせてYAMLを設定ファイルとして解釈させるには以下の様にすればよい。
var config = require('nconf'); var yaml = require('js-yaml'); config.use('file',{ file:'/home/hideack/foo.yaml', format:{ parse: yaml.safeLoad, stringify: yaml.safeDump } }); config.load(function (err, conf) { console.log(conf); //{ in: {staticWord: {text:'test word.'}},filter: {through: null},out: {stdout: null}} });
素朴にどうやんだ?と思ってしまったのでメモ。気づけばnpmはnodebrewで入れたきりそのままだった...。
結論 "npm install -g npm" でnpm自体をアップデートすることができる。
$ npm install -g npm /Users/hideack/.nodebrew/current/bin/npm -> /Users/hideack/.nodebrew/current/lib/node_modules/npm/bin/npm-cli.js npm@2.5.0 /Users/hideack/.nodebrew/current/lib/node_modules/npm $ npm -v 2.5.0
1月は雑誌含めて9冊。年初があった割にあまり読めなかった。余裕が無いのはいけないと思いつつ。
最近のコメント