Hugo のサイトへ引越しをした
Hugo のサイトへ引越しをした ということで、長らく (のわりには記事を書いてないけど) お世話になった Tumblr へさよならをして、Hugo+Netlify で記事を書いていこうと思います。
書いたものの参照が消えるのはよくないかと思って過去のサイトも基本残しているのだけど、あまりそうこだわらずに新しいものをつくったら消していってもいいのかなあ。
今後はこちらを更新します。 https://site.hacklife.net/

oozey mess

Product Placement
sheepfilms
dirt enthusiast

❣ Chile in a Photography ❣
YOU ARE THE REASON
d e v o n

Andulka
Sade Olutola
Misplaced Lens Cap
Not today Justin

blake kathryn
Show & Tell

izzy's playlists!
Lint Roller? I Barely Know Her
Three Goblin Art
Claire Keane

if i look back, i am lost

@theartofmadeline
hello vonnie

seen from Canada
seen from United States

seen from United States

seen from Türkiye
seen from United States
seen from United States
seen from United States

seen from Türkiye

seen from Russia
seen from France
seen from United States

seen from Hungary

seen from Malaysia

seen from Germany

seen from Malaysia
seen from Poland
seen from Germany

seen from Türkiye
seen from Türkiye

seen from Türkiye
@sunaot
Hugo のサイトへ引越しをした
Hugo のサイトへ引越しをした ということで、長らく (のわりには記事を書いてないけど) お世話になった Tumblr へさよならをして、Hugo+Netlify で記事を書いていこうと思います。
書いたものの参照が消えるのはよくないかと思って過去のサイトも基本残しているのだけど、あまりそうこだわらずに新しいものをつくったら消していってもいいのかなあ。
今後はこちらを更新します。 https://site.hacklife.net/

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
1行直すだけってそんなに大変なの?
どこの会社でも「1行直すだけでしょ? そんなに大変なの?」ということを何度も聞かれる (もしくは言外にそのニュアンスを含められる) ので毎度説明するのだけれど、「いや、そう思うだろうけれど大変なんですよ」以外に答えられていなくて、自分でもあまりうまい答えではないなと感じるのでまじめに考えてみた。
まず大前提として1行を修正するのに本当に言われるがままにその1行を直すのであればそれは作業者で世の中にエンジニアなんて職業はいらないわけで、ぼくらの付加価値は1行を直すときに1行の外にあるものを想起できるから価値があるわけです。
じゃあ、どんなことを考えているかというと、まずたいていそんなすぐに安請け合いできないシステムというのは1行を直すときに影響を受ける行数というのは10行や20行ではないことが多い。そこで影響範囲を考えます。途端にこれが1万行になったりする。すると、1万行へ影響が出るのにこれはそのままその1行の修正をしてはいけないのではないかと開放閉鎖原則や局所化なんて言葉がまっとうに学習している開発者なら頭をよぎるわけです。
すると、ここで1行の修正だったものがもう1万行を対象にした再設計の開発と化けます。1万行はなにをやっているのかを洗い出し、さてこれは本来どういう役割のものがこの1万行のごった煮に混ざっているのかを考え直し、あれ、これはともすると既存の業務に影響出るんじゃねーのと気付いて今その仕事をやっている人に話を聞きに行き、これはそもそもなにがやりたい仕事なんですか?と業務分析から始めることになります。オペレーションを変えることになると、そのための説明や調整をして回ったり、オペレーションの変更コストを業務担当の人が払ってくれない場合は、その影響先への説明や調整も自分でして回ります (会社のために必要なら調整するよって引き取ってくれる土壌があるとここが開発者の負担から離れて、結果改善速度が早くなります)。
最後はそうやって理解できた全体像から、今採るべき手段はなにが総合的に考えて最適なのかをその都度意思決定するのですが、その意思決定にあたって必要なこととしてこれだけ考えています。
作業者として1行言われるがままに直すこともできるかできないかで言えば当然できます。ただ、その結果、そうやって思考停止で目の前の要望を持っている人の希望を叶え続けると、最後に誰のためにもならないシステムができあがり、誰の手にも負えなくなります。そのことを知っていて、真剣に開発者という仕事に向かいあっている人ほど先ほどのようなロジックで今自分が採るべき手段はなにかをよく考えます。
作業を請負うのでなく事業会社の社員として開発者として働くというのは、要望を持ってくる人へ応えるのが仕事ではなく、それをきっかけに会社にとって一番よい形を技術という自分の強みを活かして考えるのが仕事です。アウトソースで開発をするのでなく、自社に開発者がいて働いているというのはそういうことだと思ってます。『たまたま要望を言ってくる人がコンピューターとか苦手だから代わりにやりたいことをやってあげる仕事』ではけしてないのです。あくまで会社だったり事業だったり、その先のお客さんのために必要なことをするために働いてます。そこへの尊重が基礎にあり説明コストが低く、開発者が本来一番やるべき仕事 (コードを書いて事業を前に進める) へ集中できるというのが『開発文化がある』という状態だろうなというのを最近考えます。
こんな面倒なやつとして振る舞わなくても「おっけ、おっけ、すぐやっとくよー」と言ってばんばん直してばんばんリリースできるシステム開発をやっていける環境で働きたいものですね!
私からは以上です。
iRuby を試した
irb より iRuby/iRails がいいよと言われたので、試してみた。
Mac OSX へのインストールログ。途中で怒られてあれこれ足したから、その人の環境によってけっこう違いそう。
brew install python3 brew linkapps python3 pip3 install ipython pyzmq tornado Jinja2 jsonschema pip3 install "ipython[notebook]" brew install autoconf automake zeromq gem install iruby gem install pry pry-doc awsome_print gnuplot rubyvis nyaplot
そういえば、以前にレオさんの記事「Railsエンジニアに役立つJupyter NotebookとiRuby」を見かけて読んでいた気はする。
豪華な食事といって量が増えるのはおかしい。品質が高まってほしい。と思ったけど、ソフトウェアも同様で、機能を増やすよりは、すでにある機能の使い勝手を高める方が完成度上がると思った。
豪華な食事 - hitode909の日記 (via in-the-sea)
Ruby の net/imap で日本語検索
情報見つからずわりとはまったのでメモ。
require 'net/imap' imap = Net::IMAP.new('imap.gmail.com', 993, true) imap.login 'username', 'password' imap.select 'INBOX' uids = imap.uid_search ['TO', 'sunaot', 'SUBJECT', 'こんにちは'.force_encoding('ASCII-8BIT')], 'utf-8'
日本語で検索したいときは、uid_search に charset を指定できるんだけど、そのときは force_encoding してやらないと正規表現のマッチのところで Encoding::CompatibilityError が起きてエラーになるのでした。
なお、mail gem の imap retriever による find は charset をオプションとして受け付けないので、yalab さんのこの pull request の取り込みが待たれます。活動が止まってるわけではなさそうだから、テストを追加すると取り込まれたりするのかなあ。
https://github.com/mikel/mail/pull/647

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
4 月にエンジニアとなった人たちに知っておいてもらいたいこと
個人的な経験を書きますが、ぼくはエンジニア生活 10 数年で 5 社を転職して渡り歩いています。そして、その 5 社すべてでなにかしらの勉強会なり研修なりといったものをやってきました。
そして、それが仕事であろうとなんだろうと自分がエンジニアに研修なり説明会なりをするときは、自分がもらったものを返すつもりでやってきました。そのときそのときは当然所属している会社があるわけですが、その会社のため (だけ) にやったことは一度もありません。プロジェクトによって参加している人の立場も発注元だったり受託開発の常駐エンジニアだったり様々だったので、あくまで一人のエンジニア同士として自分が伝えられることをなるべく伝わるような言い方で伝えるということをやってきました。その中では所属会社へ都合の悪い話も出たりしますが、これは所属会社へのコミットメントとは別の話です (PHP 使ってる会社で PHP の悪い点を説明するとか)。
そして、これらの準備は多くの場合、自分の時間を使ってやってきました。これが良いことだとは思いません。ただたんにそうしないと時間がとれない程度に別の業務も抱えていたというだけの話です。
ではなぜそんなことをしていたか。それが書きたいことです。
実際、gist にあれこれそういうテキストを公開していますが、あれらも大半は業務時間なんて使わずに自宅で朝まであーでもない、こーでもないと書いたものです。たいして得にもならないことをなぜするのかと言ったら、それは自分が肩に乗せてもらってる先人への感謝の気持ちがあるからです。いまやそれがいきすぎて、「それが自然な行為で、そういうものだ」と思ってるからです。
今のシステム開発は一人で一からすべてを体験して学んで理解しようとするにはあまりに複雑すぎます。「学習の高速道路」なんて言葉がありましたが、これに乗るのはアドバンテージではなく最低条件のように見えます。
この高速道路はただ乗りもできますが、ただ乗りしてたどり着けるところには限界があります。この限界は「大渋滞」という言葉で 2004 年にも言及されていました。
最も効率のよい勉強の仕方、しかし同質の勉強の仕方で、皆が、高速道路をひた走ってくる。結果として、その一群は、確かに一つ前の世代の並のプロは追い抜いてしまう勢いなのだが、そうやって皆で到達したところで直面する大渋滞を抜け出すには、どうも全く別の要素が必要なようである
これは将棋の羽生さんの言葉ですが、エンジニアにとってこの「全く別の要素」のひとつはまず間違いなく「アウトプットすること」だと思います。
アウトプットは give & take の文脈で語られることもあります。
自分がアウトプットをすると、フィードバックをもらえます。これは通常自分が書いたテーマに関するものになるので、自分の関心ごとだけに関する情報を集められることになります。
つっこみを入れてくれる人は識者であるケースも多いので、想像もしなかったような指摘をもらえることもあります。これは自分の枠内で進みがちな学習を大きくジャンプさせてくれるきっかけになります。
これらはアウトプットの利点として正しいです。ただ、一つの側面だけを語っているように感じ、やや自分の過ごしてきた世界と違うようにも思います。
実際にエンジニアとして過ごしてきて感じるのは、今のエンジニア生活を支えている「それぞれが少しずつ give し合う」という習慣の強さです。一つ一つの give に対してメリットを求めようとすると、正直さしてありません。よほど注目される情報であれば反応も大きくやりがいも感じるでしょうが、ほとんどの情報はその時点では他の情報に価値が埋もれてたいして注目もされないでしょう。割に合わないと思うことでしょう。
しかし、エンジニアとして過ごしていくうちに、そういう小さな情報に助けられる機会がいかに多いかを実感していくと思います。自分が何時間も困っていた現象をすべて解決してくれるような内容を、解決した問題としてブログに書いていてくれるような人もいます。それでも、コメントやソーシャルブックマークのようなアテンションはさしてないでしょう。ただ、間違いなくそういうものに支えられてエンジニア生活を送ってることに気づくと思います。
たとえば、Rubyist で Rails を使っていれば、いつか前島さんのブログに出会うでしょう。名前を意識するかはわかりませんが、このブログがなかったら困ったという日本人 Rails 利用者はかなり多いでしょう。ひょっとすると、Rails コミッタ松田明さんを知らなくても前島さんのブログは知っているという人もいるかもしれません。それくらい、今のエンジニアはこうした情報に支えられて生きてます。
発表や雑誌記事、書籍、発表資料の公開についても同じことが言えます。発行されるすべての書籍、リファレンスマニュアル、論文、ソースコード。すべてに自分で目を通せればいいのですが、物量と時間の制約上、そうはいきません。その中で、読むべきものを絞ってくれる、見落としていたものを紹介してくれる、自分の知恵を共有してくれる、といった誰かの give のおかげで、読むべき書籍を絞れたり、新たに見つけたり、自分の理解を深めたりといったことができています。
これまで何年もそうやって学んできたので、自分の学んだことは自分の知識だという意識はほとんどありません。もらったものをその情報をくれた人へ返すことはもう不可能な量になりました。でも、それでいいと思ってます。自分がもらったものは、機会を見つけていくらでも次の人へ返していきます。
これからエンジニアになろうという人は、いろいろな本や文章に出会うでしょう。それをどうやって学ぶかというのももちろん大切なことなのですが、この文章を読んだ人はエンジニアの give の輪に参加したんだということに気づいてぜひ自分の give を始めてみてほしいです。意気込んで始めてみたものの反応がなくてがっかりするかもしれません。でも、そんなものです。気にせず続けてみてください。一発かぎりのインパクトよりも続けていることへ敬意を払われやすいというのもこの輪のルールです。
世治にはあえて言わないが(笑)…ブログでは言っちゃうが(笑)… 世治の好きなポイント、いきやすいポイントを熟知しているので イントロ最後をコードAでステイして そのままAメロあたまをAmajor7で半音テンションを付ければ あとは勝手に世治が美メロを構築してくれると信じて 「はい!どうぞ」と。 見事な美メロを描いてくれました。
美大生の語る完成品に向けてデザインが進むプロセス
海外有名美大へ通う美大生に教えてもらったこと。一晩かけて完成品に向けてデザインが進むプロセスを話ししながら過程の写真を見せてもらった。めちゃくちゃおもしろく、刺激を受けたので自分の理解としてメモ。 本人はかなり論理的ではない話し方をするので、それを基本的に論理的に思考するぼくが自分が理解できる形に落としてしまっている。このため、大切な要素は抜け落ちしている可能性が大いにある。ただ、本人の説明をそのまま載せると「こう、ええなあと思った」とかそんなんで終わってしまうので、こうなっている。あしからず。 * デザインをするときに、大きなイメージで作りたいものの方向性を出す * 自分の作りたいものが完成したとしたら、それはどんなものでできているんだっけ? (構成要素への分解 構成要素であるかもしれないもの程度の確度) * 素材はなにでできているか * どんな色をしているか * 手触りは? * 置き方 * 見る向き * 光の当たり方 * 作り方 * おもしろさをどう見出すか、どの軸で切るのか、なにがおもしろさを生み出していると解釈するのか (おもしろさを生み出すポイントは引き継がないといけない。一方で、コピーでなく新しいものでいるためには他の部分は変化させないといけない。) * おもしろさをどう解釈したかが後々進めるものの中心になってくる。たとえば、「自然の雲や海の美しさを表現できたらおもしろい」というのがあって、それを再現するためのアイデアとして「同じようで少し違うパターンの繰り返し」「”少し違う”は光の当たる角度の違いで見た目の色合いの違いが出るようにする (六角形の角度を変える) 」「陰影の違いをより際立たせて、見た目の複雑さが増えるように (表現力が増すように) 三色で塗り分ける」 * 分解した要素を実際につくってみたらどんな風に見えるか、ひたすら試していく * つくったものは記録をする (写真を撮る) * つくってみて、おもしろかったか、おもしろくなかったか。自分の向かいたいイメージに向かいそうか、向かいそうでないか。 * でも、ここでおもしろいからその要素は入れるというわけでもない。おもしろかったなぁと理解しておく。記録しておく。 * 他の要素と組み合わせてみたら、つくってみたものを「見立て」をして別の文脈へ放り込んでみたら、色を変えるなどのアレンジしてみたら、手近なものと組み合わせてみたら、などなど、いろいろな形で一度つくったものをベースに向かいたいイメージへ近づくものと近づかないものを自分の中で理解していく (たぶん、ここは言語化されないようなレベルで認識が進むんだと思う) * その間、日常生活を送りながらも、自分の向かいたいイメージはどんなものなのかを考え続けて、目に入るもの、風景のなかにきっかけとなるようなものがないか、考え、観察し、記録し続ける (きっと、ぶつくさ言ったりぼーっとしたりしながらひたすら写真撮ってるんだと思う。これは試作の簡易版の役割もあるのかもしれない) * 同じようなものもたくさんつくって、比べてみる。なにを変化させると好ましく見えるか。 * 全然別のアイデアを追うというよりも、なにが加わったら近づくかを重ねていく。それを探すために別のものをつくったりもする。 * 後から見て重要だったことは、つくってみたときにもやっぱりよく見える。ちゃんと自分を信じて大丈夫 (実際によいものができたときって、そのつくっている瞬間にもいいなーと思えるの?という質問に対して) 。 * ひたすらいろいろ試している間は、答えが出ている感覚もなく、期限に向けて一定のスピードで前へ進んでいるわけでもない。不安だけど、ためす。 きっと、「よさそうな要素」を探すためにやっているあたりの試行錯誤やそこで作っているものは、定番のパターンに基づくものが多いんだと思う。プラ板に傷つけてみるとかアルミホイルをくしゃくしゃにしてみるとか、複数の模様のパターンがあればつなげて組合せにしてみるとか。そういうのを実際につくってみて試してみているうちに、定番の要素と定番の要素が組み合わさったアイデアとかが出てきて、そういうのの積み重ねで、全体でみると新しいアイデアに見えるものが生まれてくるのだろう。 そこで何を採るか、何を採らないかの判断が結果へ大きく影響を与えるのだろうが、そこは「ええなあと思ったから」の一言だったりしたので、なかなかむずかしい。
QConTokyo Planning
QConTokyo 2012 へ参加するので、参加予定トラックを書いてみる。現地に行きながらあのセッション聞かないとかその眼は節穴なの?というようなやつがあったら教えてほしい。
MythBusters - Mission Cloud Computing @ NASA
Androidに関わるエンジニアの視点
美しさは見る人の目の中に宿る (Beauty is in The Eye of the Beholder)
どっちにしよ
米国のスマートフォンサイトの設計・テスト・運用監視手法
クラウドデザインパターン -AWSを用いたシステム設計のベストプラクティス-
どっちにしよ
Big Dataを支える大規模並列分散技術の現状と今後の方向性
ソーシャル・コンピューティングをスケールさせるには(Scaling Social Computing)
うーん、なぜこれをかぶらせたのか。どちらも大変聞きたい
Twitterの最新アーキテクチャ
Real-time node.js も気になる
クラウドへのデータ移行: Cassandra at Netflix (Migrating Data to the Cloud : Cassandra at Netflix)
関数プログラミングの希望 Haskellの夢
退職金て食べれるの世代のための退職金講座
なんか書こうと思ったことがあったのに光の速さで記憶から消えていった。なんだっけ。
あ、そうそう。唐突だけど、退職金というものについて計算してみた。
退職金をもらえる会社というので働いた経験が大変少なく、今後もそういう会社で働く機会はあまりない人生を送りそうな予感がするので、不幸にも退職金がない人はどの程度の不利益をこうむり、どんな準備をすればいいかを知りたかったのだ。
「一部上場企業 退職金」でぐぐってみると、退職金の相場というのは 2000 万円 〜 3000 万円といったところらしい。サバを読んで現在 30 歳だとして、65 歳定年までに 3000 万円が貯められる年収がもらえるなら、退職金がないデメリットを補えると言っていいだろう。本当はここに複利での運用益が載るので大分有利なんだけれど、そこはいったんおいておく。
年収の中から年間約 90 万円を積み立てておくことができれば、運用益が 0 の預金をしておいたとしても十分に元がとれる。仮に運用益を 5% で計算すると、40 万円 〜 45 万円の積み立てで十分退職金を賄える計算になる。
もっと圧倒的に不利なのかと思っていたけれど、年間このくらいの額で自分の職業人生を満足いくように生きていけるのであれば、何もひとつの会社に縛られるリスクを負ってまでほしいものではないなあと確認することができた。
注意点として、退職金は税務上とても優遇されるし、一方投資した場合の税率はバカにならない高さなので実際は上で書いたほど気楽な数字ではない (給与へ課税され、さらに運用益へ課税され) 。ただ、そのあたりが気になるのであれば、自分で調べて考慮した商品 (たとえば年金保険とか) を組み入れたポートフォリオにするなり、確定拠出年金を使うなり、選択肢はある。倒産による転職を余儀なくされる可能性なんかを考えると、投資元本保証型の年金保険にでも入っておくほうが退職金よりもあてにしやすい気はする (投資元本保証の前提として、途中解約しない前提。途中解約の可能性があるなら自分で運用が無難かなあ) 。
そして、やっぱり複利は偉大だ。こうして数字を見ると貯金しないといかんなあと思わされる。

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
テンプレートエンジンあれこれ
Xslate について調べようと思ったので、Rubyist がテンプレートエンジンを調べるならまずここから復習しますよねと思ってリンクをまとめてみる。
Erubis徹底解説
HTMLデザインを崩さない、美しいテンプレートエンジンの作り方
HTMLデザインを崩さない、美しいテンプレートエンジンの作り方 (動画)
HTMLデザインを崩さない、美しいテンプレートエンジンの作り方 Part2
デザイナーとの協業を本気で考える
No such file or directory
ubuntu へ mongodb をインストールして起動しようとしてたんだけど、次のエラーでさっぱり進まず一瞬詰まった。
bash: /home/sunaot/bin/mongod: No such file or directory
ファイルは ls で確認できるのになぜか起動されない。結論としては単に 64bit 版の ubuntu へ 32bit 版の mongodb を誤ってダウンロードして展開したからだったみたい。64bit 版をダウンロードしてやりなおしたら同じインストール手順で正常に起動した。
たしかに間違ったんだけど、こんなエラーの出方するのね。初めて見たよ。
gollum のインストール
github の wiki システムである gollum のインストールをしてみた。環境としては rvm と gemset と bundler を使ってる前提 (前二者は依存ないから気にしなくていいけど) 。
markdown を使おうとしたら、Redcarpet 2.x 系へ対応してないようだったので、こんなかんじの Gemfile でインストールするといいみたい。
# coding: utf-8 source :rubygems source 'http://gems.github.com' gem 'gollum' gem 'redcarpet', '= 1.17.2' # markdown gem 'RedCloth' # textile
ここまでできたら、インストールはこれだけ。
$ bundle
gollum コマンドで立ち上げる前に git init してリポジトリ作っておくこと。
ユーザロールモデリング
ストーリーがあんまり使えてないなーというときにはユーザロールモデリングができているかを意識するといい気がする。ユーザロールがぶれていると、そのあとのストーリーもなんのために書いたんだかわからない記述になりがち。自分で書いてしっくりこないときもユーザロールやそのコンテキストを見返したりする。 ユーザロールモデリング知らない、なんのことかわからない、という場合は、末尾にポインタを載せておくので、一度読んでみてストーリーを見返してみる。 「ユーザロールモデリングしましょう!」というとめんどくさがられるので要件定義のふりしてその中で整理していくのはよくやっていた。一気にモデリングを終えるんじゃなくて、一つ一つドメインの用語としてのロールをチームで共有していくかんじ (Mike Cohn の書いてた正しい手順からは遠い) 。 Web のサービス系の会社だとけっこう自社の運営都合のストーリーというのがむずかしいようで、実績計測系の機能だったりすると、「これ、どういうことでしたっけ?」「このとき、どんな役割の人がいたんでしたっけ?」「けっきょく実際運用するときに毎日使うのは誰なんでしたっけ?」「それなんのため、誰かに提出するんでしたっけ? (レポートのための数値とか) 」「提出した数字って何に使うの?なんで?なにか次のアクションが変わるんでしたっけ? (変わらないならいらなくない?) 」とひたすら質問してみないと、全部「運営としては、hoge な実績の計測ができてほしい」みたいなストーリーになってしまい、計画づくりのために必要なコミュニケーションが進まない。 ヒアリングしながらのユーザロールモデリングとしては、その中で出てきたロールを書き出しておいて、次からはその語彙を前提に話を深めていく。 こうしてつきつめると全部「目的は PV 向上」のようなところに収まってしまうのもありがちで、そこから今度は「そのための実績計測とカイゼン」を目的とした機能追加なのか、「ユーザへ働きかけて PV 増を狙った機能」なのかがはっきりしてくると、「そうすると、どっちが先にできていないとダメなんだっけ?」という議論ができるようになったりする。両方がベストなんだけど、指標の数字は一つではないことが多いので「どれはどこまでやるの?」 (そうすると何は計測できて何は計測できないの?、という話ができる) てなことを話せると、必然的に今回はこれだなーというのが見えてきやすい。 目的にむかって深堀りしたり、反対に具体的にしたり、行ったり来たりしながら、最終的に「今やるべきこと」がコミュニケーションできて、誰もが何のことを言っているかわかるストーリーが並ぶというのが理想的だと思ってる。 脇道にそれると、「もし、こっちしかできないとしたら」の仮定で関係しそうなストーリーについて話をしてもらうのもおすすめ。強く依存する意外なストーリーがでてきたり、大きく優先順が変わるきっかけになったりすることがある。 以下、日本語でのポインタがなかったので User Stories Applied のユーザロールモデリングの章へのリンク。 http://my.safaribooksonline.com/book/software-engineering-and-development/agile-development/0321205685/getting-started/ch03#X2ludGVybmFsX0ZsYXNoUmVhZGVyP3htbGlkPTAzMjEyMDU2ODUvMzE= http://my.safaribooksonline.com/book/software-engineering-and-development/agile-development/0321205685/an-example/ch17 日本語の情報があったほうがいい気がするので本で解説されている手順もあとでかんたんに紹介を書くつもり。
a happy path is a default scenario that features no exceptional or error conditions, and comprises the sequence of activities that will be executed if everything goes as expected.[1][2] For example, the "happy path" for a function that validates credit card numbers would be the one where none of the validation rules raise an error, thus letting execution continue successfully to the end, generating a positive response.
Happy path - Wikipedia, the free encyclopedia

Anya is live and ready to show you everything. Watch her strip, dance, and perform exclusive shows just for you. Interact in real-time and make your fantasies come true.
Free to watch • No registration required • HD streaming
関数があらかじめカリー化された形式の関数を取ることが前提になっている場合などでしょうか。
カリー化 != 部分適用 - Onion開発しつつ、PEGEXを開発する日記
Ruby 1.9では、Proc#curryメソッドがあるのですが、これは正しく、Procオブジェクトを「カリー化」してくれます。
Twitter / @kmizu: @ryoasai74 で、Ruby 1.9では、Pr ...