| @料理/食事

T on T

皆さん炭水化物好きですか。僕は好きです。焼肉を食べに行っても肉はそこそこにご飯ばかり食べてしまいます。炭水化物のことが好きすぎて今朝は炭水化物(トースト)をおかずに炭水化物(白米)を食べてしまいました。最高です。

僕は一時期、京都の病院に入院していたことがありました。病院食でおかずにお好み焼きが出てきたときはビックリしました。「主食のおかずが主食??? こんな食事無理だし関西人は何考えてるのかわからない」と思いながら、戸棚から鮭フレークの瓶を取り出して無理矢理ご飯を食べたことを覚えています。でもその時の自分は背伸びしていただけなのかもしれません。炭水化物 on 炭水化物 is justice。

寒い日が続きますが、肉まんをおかずにピザまんを食べたり、チャーハンをおかずに白米を食べたり、いなり寿司をおかずにうどんを食べたりしましょう。それでは。


この記事はみんなの朝食 Advent Calendar 2015 - Adventar 二日目の記事でした。昨日は @tomoko_ando さんで、明日は誰も登録していません。

| @Mac/iPhone

MindNode

↑に書いてあるような開発の進め方を前職でもやっていて、チームで集まって見積もりをするとき、最初はホワイトボードにタスクを書き出してプランニングポーカーしてたんだけど、だんだんマンネリ化してきたし老化によりホワイトボードに書くのがつらくなってきていたので、ディスプレイのある会議室で Mac をディスプレイにつなぎマインドマップアプリケーションを使ってタスクを洗い出す、というような見積もりの仕方をしてた。そこで大活躍したのが MindNode Pro という Mac のソフトだった。

C というタスクは最初 A という大タスクのサブタスクかと思われたが、話し合いを進めていくうちに実は B というタスクのサブタスクだった、というようなことが起こりうる。そういうときにぐいっとノードを A から B に移すということができる。 C にサブタスクがあったとしてもそれごと移動できて便利。

1026-mindnode-pro-1.gif (789×551)

マインドマップを書くのに熱中していると、マインドマップのレイアウトがぐちゃぐちゃになることがよくある。これではせっかく出したアイディアを整理することができない。この 1 時間は何だったのか、ということになる。しかし MindNode Pro ならこういうときに ⌘ + ⌥ + R を押すとツリーが整理整頓されて見やすくなる。便利。

1026-mindnode-pro-2.gif (789×551)

マインドマップは視覚的にタスクのつながりを把握できるので、非開発メンバーからの受けも良く、見積もりをするときは MindNode がないと困るという感じだった。スプリントを終えて振り返るときにも MindNode を使って KPT を出していた。みんなが同じ画面を見て思っていることをアウトプットできるのがよい。

実際に先日の minne の技術戦略カンファレンスで、元同僚のイケメンスーパー貴公子プラチナハッカー @monochromegane さんが、 minne のプラットフォームチームではマインドマップでタスクの見積もりをしてるとスライドに書いてた。タスクの見積もりやるときに MindNode を使うようにし始めたの自分で、 @monochromegane さんがドヤ顔で話してるのは多少いけすかない感じはしたけども、自分なんかよりもスーパー Go lang 貴公子プラチナハッカーの @monochromegane さんに宣伝してもらった方が MindNode の開発元としてもうれしいだろうからよかったと思う。

仕事以外でも、金がなくて金策をしないといけないときなどにマインドマップを作成してライフハッカーを気取ったりしてた。最近バージョンが 2 になって、書いたマップの内容を Markdown として出力できるようになった。こんな感じ。

CQQKNWwVAAA9zgO.png:large (1024×640)

MindNode で書いてる各ノードが見出しになって、各ノードのメモが本文として書き出される。ノードのネストが深くなるほど見出しのレベルが下がっていく。バージョン 1 の頃からブログのアウトラインのようなものを MindNode で書いて、それをテキストファイルとして書き出してから Markdown として体裁を整える、という使い方をしていたので、この機能は便利だった。

しかも Markdown として書き出せるだけでなく Markdown 文書ビューワーの Marked 2 と連携していて、書いている途中のマインドマップの内容をリアルタイムに Marked 2 で Markdown 文書としてプレビューする機能が付いている。「ファイル」 -> 「詳細」 -> 「マークの付いた項目で開く」(おそらく "Open with Marked" の誤訳)で Marked 2 でプレビューできる。

MindNode -> Marked 2

マインドマップを書いているだけでブログエントリが完成して時間が有効活用できてよい。マインドマップで草稿を書いた上に清書するなどしていたらいつまでたってもブログ記事を公開できない。アウトプット業でプライベートが犠牲になる時間も短くなり、家庭円満である。お試しください。


この記事はできる Mac OS X Advent Calendar 2015 一日目の記事でした。明日は @turusuke さんです。

毎年参加するだけだったアドベントカレンダーだけど、今年は作ってみた。できる Mac OS X Advent Calendar 2015 という。なぜこのようなアドベントカレンダーをやろうと思ったのかというと、iPhone や MacBook Air 出てからだいぶ Mac ユーザーが増えたなと感じるけど、一昔前に比べて、あまり Mac の凝った使い方をしている情報が入ってこなくなった気がする。 iPhone も iPad もなかった頃の方が Mac の便利 Tip を載っけてるブログとかいっぱいあって、毎日いろんなブログを読んで回るのが楽しかった。使いこなすのに知恵がいるけど慣れたら便利な QuickSilver とか、 $50 くらいして少し値は張るのだけど思いついたことを何でもメモしておける Yojimbo とか( Evernote なんてまだなかった)。ブログで紹介されているソフトのライセンスキーを kagi みたいな怪しいサイトで購入してわくわくする、そんな経験をするのがとても楽しかった。いまはブログ書く人減ってるし、主戦場がモバイルに移ってしまって Mac の情報を見かけることがなくなった気がする。 10 年前のあの頃のように、 Mac の話題で盛り上がれたら良いなと思って作ってみた。まだ結構空いてるので、書いてみたい人いたらよろしくお願いします。

| @ブログ

2015 年のアドベントカレンダー、こんだけ参加してる。

edb4a54ee19554bdc4e9e216a20108dd.png (1024×978)

寺・神社とか面白そうなのあったのでひょっとしたらもっと参加するやつ増えるかもしれない。 12 月は睡眠不足になりそう。

また、今年初めて自分でもアドベントカレンダー作ってみた。

Mac のソフトネタ、昔はちょくちょく書いてたけど最近書いてないので、これを機会に久々に書いてみようと思ってこういうアドベントカレンダー作ってみた。

『 Evernote 徹底活用術』とか、『これは便利! 無料の Photoshop テクスチャ 10 選』、みたいなのじゃない記事が集まればよいと思う。

アドベントカレンダー、トピ主の人間力が問われていて、トピ主に知名度がなかったりネットで好かれてなかったりしたらなかなか書きたいという人が集まらない。全然書き手が集まんなくて、 2, 3 個しか記事が投稿されないアドベントカレンダーは寒いので、みんな何か書いてくれ頼む!!!、!!!、!、!!!

| @技術/プログラミング

昨日飲みに行って今朝起きてからふとコード書きたくなって、アドベントカレンダーもあることだし(去年の Adventar で自分のブログだけ og:image がなくて画像が出てなくて残念だった)、このブログを Open Graph protocol に対応させることにした。

Twitter Card の Lokka Plugin を前作ってたのでそれを改造した。

Ruby 2.1.0 以降で使える Module#refine 使いまくったけど安全にモンキーパッチできて便利。

module AddImagesToEntry
  refine Entry do
    def images
      self.body.scan(/https?:\/\/[\w\/:%#\$&\?\(\)~\.=\+\-]+?\.(?:png|jpe?g|gif)/)
    end
  end
end

refine するときのモジュール名、 ActiveRecord のマイグレーションのクラス名みたいで面白い。

| @ブログ

一時期に比べたら Lokka 使ってる人減ってて、 Jekyll/Octopress ブームのあとは Go lang 製のスタティックサイトジェネレーターかはてなブログに移っていってしまった。自分は自分で使うツールを自分でいじるのが好きなので Lokka 使い続けていきたい。ということでいろいろやった。

最近やったこと

テスト通るようにした

Lokka の master ブランチ、しばらくコミットされてなくて Travis CI のビルド 1 年半くらい走ってなかった。久々に Pull Request 出したらビルド成功しなかったので通るようにした。 Travis がコンテナベースの環境から Docker ベースに移行したぽくて、その影響で PostgreSQL がらみで bundle install がこけるようになってた。なのでテキトーに addon を追加しといた。

同じコミットでもうメンテナンスが終了している Ruby 1.9 系の CI をやめるようにした。

Ruby 2.2 に対応させた

json 1.5.5 は Ruby 2.2 系では install に失敗するようなのでいろいろ bundle update した。 ActiveSupport も 3.1 ではエラーが出てしまうので bundle udpate して 3.2 の edge にした。

XSS 直した

コメントで教えてもらったので直した。

ただ実はまだ完全には直せてないので近日中に直したいのだけどテンプレートをレンダリングする仕組みをまるっと変えないと直らなそうなので結構きびしい…。

これからやりたいこと

フロントエンドよくしたい

具体的にはプラグインに同梱された CSS や JavaScript とテーマのやつをくっつけて配信したい。 Asset Pipeline 的な。

高速化

なんか遅い。このブログのトップページのレスポンス返すのに 1 秒くらいかかってるの改善したい。 DB にインデックス張るのとクエリのチューニングかな。

ActiveRecord 化

Fjord の皆さんで開発が続けられていたけど停滞しているっぽい。 DataMapper 、耐えられないほど不便なわけでもないし ActiveRecord にない便利な機能もあるのだけど、 N+1 起こらないという触れ込みなのに N+1 起こったり、ちょっと込み入ったクエリを投げたいと思ったときにやり方がわからないもしくは出来ないということがあるので、 Ruby エンジニアの皆さんが日常的に使ってる ActiveRecord を使うようにするのが良いだろうと思った。そもそもあまりメンテもされてないし、 DataMapper に引きずられて Lokka が停滞するのも残念だし。高速化のためにも ActiveRecord 化有効そう。


最近「仕事外でコードを書かないエンジニアは人間のクズだ」、「いやクズはそっちだ、エンジニアの業務時間外の学習に依存する会社こそ真のクソ」みたいな議論多いけど、自分で使うツールのメンテナンスくらいやらないと本当にプログラマー廃業しないといけない気がするし、自分がプログラミングに触れたの自体 P_BLOG の改造がきっかけだったので、プライベートを犠牲にして歯を食いしばりながら取り組んでいきたい。

| @技術/プログラミング

このブログの Archive ページ自分で作った Lokka Plugin でできているのだけど、ここを React を使って作ってみた。 React チュートリアルの写経の題材を自分のブログにした感じ。 CoffeeScript オワコンと言われて久しいけど Coffee で書いた。 JSX を CoffeeScript で書くときはバッククオートで囲むとよいという知見が得られた。

Entry = React.createClass
  render: ->
    `(
      <li className="entry">
        <a href={this.props.link}>{this.props.title}</a>
        <div className="detail-information">
          <span className="created_at">{this.props.created_at}</span>
          <Category category={this.props.category} />
        </div>
      </li>
    )`

| @技術/プログラミング

Rails 、初心者にとってもよいフレームワークだと思う。いろいろ学びがある。ただ、なんとかスクールとかで金払って習うのではなくて、 DHH が書いてる『 Rails によるアジャイル Web アプリケーション開発』を読むのがよいと思う。あの本はコラム欄に Rails の裏側の思想とかが書いてある。なんとかスクールで習うのだと最速で Twitter クローンを作るだとか、 Rails の使い方しか身につかないのではないかと想像する。なぜ Rails はその様に作られてるのか、その裏側にある考え方は何か、まで合わせて学べばかなり色んなことが勉強できる。 Rails を使うようになって 5 年くらいになるけど、いまだに毎日発見がある。