雑文発散

追記
過去の日記

2015-01-29 [長年日記]

[] Lean Analytics の翻訳レビューに参加していたよ

@kdmsnrさんの最新作「Lean Analytics」が、1/24 にめでたく出版された。紙の本だけでなく、電子書籍版が O'Reilly の Ebook からも発売中なので、本棚の残スペースが気になっている人とか、常に持ち歩いていたいという人は、こっちを買うのがいいんじゃないかな。

しかも、Kindle 版の「レンタル」とは違って、本当の意味での「購入」ができるのが O'Reilly の Ebook。DRM がない世界を維持(そして拡大)するために積極的に使っていきたい。

Lean Analytics

「リーン・シリーズ」としては、概念を解説した「リーン・スタートアップ」、その概念をより実践に近づけた「Running Lean」、更にそこから「計測」の実践にフォーカスした「Lean Analytics」という位置付けになっていると思っている。

リーン・スタートアップ ムダのない起業プロセスでイノベーションを生みだす(エリック リース/井口 耕二/伊藤 穣一(MITメディアラボ所長) (解説)) Running Lean ―実践リーンスタートアップ (THE LEAN SERIES)(アッシュ・マウリャ/渡辺 千賀/エリック・リース/角 征典) Lean Analytics ―スタートアップのためのデータ解析と活用法 (THE LEAN SERIES)(アリステア・クロール/ベンジャミン・ヨスコビッツ/エリック・リース/林 千晶(解説)/角 征典)


まず最初の2冊を読んで、知識はそれなりに吸収してきた。実践する機会があったら使ってみたいなと思っていたら、最近タイミングよくそういう機会が訪れたので、「Running Lean」の「リーンキャンバス」を現実世界で使い始めているところ。初めてやっているので、うまく書けなかったり、これどうすりゃいいんだ?と悩んだりする部分が出たりしているけれど、一緒に動いているチームも(オレの感覚に間違いが無ければ)好意的に感じている人が多いので、このまま継続していきたいと思っている。

時間をちょっと巻き戻して、まだ最初の2冊を読んだだけの昨年の春頃の話。「Lean Analytics」の翻訳が始まっており、そのレビューアを募集しているとの話を知った。翻訳者は「Running Lean」に続き @kdmsnr さん。オレは「Running Lean」の翻訳レビューにも参加していたし、その先を知りたいという興味もあったので、すぐに手を上げて参加させて貰った。

いつものように(?)主に typo 発見マシーンとして機能していたのだけど、「あれ?ここ意味がズレてない?」というところも発見できたので、多少はこの書籍のクオリティアップに貢献できたんじゃないかと思う(自画自賛)。

それはともかく、本書の翻訳文は、いつもの @kdmsnr 品質で、たいへん読みやすい。「この文章ってつまり何を言っているんだ?(日本語でOK)」という「翻訳書を読んでいるのに日本語として意味がわからない」という悩みは最小限で済むんじゃないかな。翻訳力と国語力は別物だと思っているけど、双方をバランス良く発揮できる数少ない翻訳者だと思うので、もっとみんな翻訳者で選択して書籍を買ったりしても良いと思うよ。(で、その翻訳者が儲かれば、次のよい翻訳本が産まれ、、、というループが回るわけだ)

本の内容については、スタートアップや新規事業開発においての「成長」を判断するために、何をどう計測していくのか?というところにフォーカスしている。業態に合わせて実例を含めた具体例が示されているので、自分の業界・業態に近いものをモデルにして指標を決めるのが良いんだろう。

前述のとおり、オレの現実世界では「リーンキャンバス」を描いたところ。まだ計測の段階には来ていないんだけど、近いうちにそのタイミングが訪れるはず。その時にはこの本の考え方・やり方を参考にしながら進めたいと思っている。

それはともかく、この本、結構ずっしり来るね。翻訳レビュー時にはテキストデータで読んでいたので、ここまで厚い本になるとは思っていなかったんだけど、レビューの報酬(?)として献本を頂いたら、分厚くてびっくりした(笑)

ちなみに翻訳レビューは、GitHub 上のプライベートリポジトリが用意され、レビュー参加者だけがアクセスできる状態で行われた。手元に最新の翻訳文を取り寄せるには git pull をし、何か気づいたことがあれば GitHub 上の Issue として登録するというとてもイマドキな流れ。エンジニアなら慣れた手順だと思うし、「まだ他の人が読んだことがない本」を一足早く読めるのも楽しいので、機会があったら参加するのをオススメするよ。


2015-01-28 [長年日記]

[Emacs][JavaScript] Emacs の js3-mode の基礎

「Emacs の js3-mode が良い」という話だけ聞いて、なんとなく入れて使っているんだけど、そもそも何ができるのかとかあまり調べていなかったので少し掘り下げた。

デフォルトで定義されているキーバインド。コードの一部を隠して見通しを良くしたりするやつらかな。

キーバインド 関数 内容
C-c C-e js3-mode-hide-element カーソル位置の要素(コード)を隠す
C-c C-s js3-mode-show-element カーソル位置の要素(コード)を表示
C-c C-a js3-mode-show-all 隠してあるコードを全て表示
C-c C-f js3-mode-toggle-hide-functions バッファ内の関数部分の表示・非表示を切り替える
C-c C-t js3-mode-toggle-hide-comments バッファ内のコメント部分の表示・非表示を切り替える
C-c C-o js3-mode-toggle-element カーソル位置の要素の表示・非表示を切り替える
C-c C-w js3-mode-toggle-warnings-and-errors (これよく分からず)
C-c C-g js3-add-to-globals カーソル位置の要素を /*global */ に追加する

最後の /*global */ は「この JavaScript ファイルでは定義されていないけど、他のところでグローバルに定義されているものリスト」みたいな役割のコメント。JSHint とかそういうもので使われたり、js3-mode 自身の構文解析でも使われている様子。

何を言っているかというと、js3-mode では定義されていない変数などを使うと、色を変えて(正確には face を変えて)注意喚起してくれる機能がある。ただ、/*global */ で定義されている場合は、このファイル以外のところで定義されている前提で、注意喚起を抑制する。

例えばこんな感じ。

Emacs + js3-mode

このコードで、変数 bbb は、このファイル内で定義されていないので、注意表示になっている。変数 aaa もコード内では定義されていないのだが、/*global aaa */ に書かれているので、これは「別のところで定義されている前提」となり、注意表示はされないという動きになる。

コードを書いている最中にこういう点が分かるのはいいな、と思う。


2015-01-27 [長年日記]

[Emacs] Emacs に「選択したテキストを Web 検索する」コマンドが搭載されていた

Emacs に「選択したテキストを Web 検索する」コマンドが搭載されていた。と言っても最新版(git HEAD)でのお話。

昨日、Emacs を最新版に更新した(コンパイルしなおした)ので、さらにその前に HEAD から入れたときからどんな変更点があったのかな?と M-x help n で NEWS ファイルをつらつら眺めていたら発見した。

The new M-s M-w key binding uses eww to search the web for the text in the region.

つまり、調べたいテキストを選択して M-s M-w を叩けば、eww を使った Web 検索できるという話。例えば *scratch* バッファに「雑文発散」と書いて、この部分を選択状態にしておく。

Emacs + eww-search-words

そして、M-s M-w を叩くと、次のように eww ブラウザで Web 検索の結果が表示された。

Emacs + eww-search-words

ちなみに、検索結果が eww 標準の DuckDuckGo ではなく Google になっているのは、次のような設定をしているから。

(setq eww-search-prefix "https://www.google.co.jp/search?q=")

この辺りの話は「Emacs 24.4 の新機能・内蔵ブラウザ eww.el を調べてみた」に少し書いたので、興味があればそっちも読んでくださいな。

コーディング中にこの Web 検索機能を使うかと言うとどうなんだろう?って思うけど、文章を書いているときには使えるのかな。例えば、この日記みたいなヤツを Emacs で書いている場合とか。。。まぁ、でも、Chrome とかのブラウザで検索するのに慣れちゃってるから、ブラウザを使うかなぁ(笑)

CLI の中で閉じている状態で Emacs を使うなら便利なのかもなぁ。


2015-01-26 [長年日記]

[Emacs] Emacs HEAD(25.0)を inline-patch 付きでコンパイル再び

前に「OS X Yosemite (10.10) に Emacs HEAD (25.0) をインストールした」って日記で、Emacs の git HEAD をコンパイルして使っているんだけど、ふと「そろそろ、いまの最新版に追従するか」と思って、コンパイルしなおした。

Homebrew の emacs.rb も更新されていたので、その最新版を用いて、自分でカスタマイズしている emacs.rb も入れ替えた。

inline-patch は、前回使ったヤツでそのまま使えそう。少なくともパッチ当てには失敗していない様子。

ということで、もしかしてこのカスタム Formula を使うかも知れない人のために、またインストール方法を書いておく。

いま Emacs を Homebrew で入れている場合は、アンインストールする。

% brew uninstall emacs

tap コマンドでオレのリポジトリを指定しているけど、これは一度行えば良いはず。

% brew tap suzuki/emacs
% brew install suzuki/emacs/emacs --cocoa --use-git-head --HEAD --verbose
% brew linkapps emacs

inline-patch は HEAD にしか入れておらず、デフォルトの(--HEAD を指定しない)状態でコンパイルされる Emacs 24.4 のことは考えていない。


2015-01-25 [長年日記]

[] 奥多摩湖へ行くつもりが富士山へ行ってきた

ちょいと奥多摩周遊道路でもドライブしてこようと思って、朝 6:30 頃に家を出た。混むのがイヤだったので、さっと行ってサクっと帰る計画。ナビには「檜原都民の森」を目的地に入れた。

まだ空いている中央道を西へ向かって走っていると、雲ひとつ無い青空の下に富士山が見えてきた。「あー、富士山もいいよなー。富士山なー。富士山!」という一人会議の結果、富士山まで直行。普段なら談合坂サービスエリアとかに寄ったりもするんだけど、テンション上がった状態でいたので、どこにも停車せず。

本当は河口湖インターで降りるつもりだったんだけど、途中で檜原都民の森へ向かうナビを切っちゃって、その後、新しい目的地を入れずにいたので、思いっきり通過してしまった(笑)仕方ないので次の山中湖インターで降りた。

河口湖に行くときはいつも寄る大石公園で富士山を撮影。

富士山とハンバーグ

ちょいとドライブのつもりだったので、カメラは iPhone5s だけ。富士山を撮るつもりだったら、もうちょいなんか持っていったのに。

その後は、河口湖や西湖の方にちょっと足を伸ばし、富士山の裾野をぐるっと回って富士市の方へ。ここまで来たら目的はひとつ。「さわやか」のげんこつハンバーグ。到着するのがちょっと早くて、11:00 の開店待ちをするハメに。でもそういう間にもお客さんはどんどんやってきて、さわやか人気を感じた。

ひさびさのげんこつハンバーグを食べて満足。だがしかし、すぐ、また食べたくなるのだよな。

富士山とハンバーグ