読者です 読者をやめる 読者になる 読者になる

BiB/iのプリセット機能でシンタックスハイライト

先日BiB/iさんがアップデートされまして、いろいろ機能追加になったんですが、その中に「EPUB 内の HTML に任意の外部 CSS / JavaScript を追加可能」が!

BiB/i | EPUB Reader on Your Web Site. — ビビ。EPUB リーダを、あなたのウェブサイトに。
http://sarasa.la/bib/i/

これでいろいろしようという人間は限られてると思いますが、個人的には非常に欲しかった機能なのでちょっと試してみます。この機能の可能性が感じられるんじゃないかと思います。

そのまえに、2年ほど前のネタ。Oreillyの電子版(EPUB)はDRMフリーで編集可能なのでFUSEeを使ってシンタックスハイライトを追加して読みやすくしようというもの。いい感じなんだけども以外と手間がかかる。

しかし、BiB/iの新機能「ページに任意のCSS/Javascriptを追加する機能」を使えばEPUBを編集しないでもこれが可能になるのですよ!(※残念ながらブラウザにより制限ありですが)

Google Chromeではiframe内のDOMを動的に変更した場合に反映されなかったり。Firefoxでは動く模様。


では、以下BiB/iのプリセット機能でシンタックスハイライト本編です。
以下が追加前、コードと地の文が混じっていてちょっと読みにくい。

以下が、今回の完成物、EPUBは編集せずシンタックスハイライトを追加しています。

利用するのはスライド資料と同じ、Google Code Prettify。手軽で言語指定がいらないのが良い感じ。
https://code.google.com/p/google-code-prettify/

こちらのJavascriptCSSを使いますが、CSSについてはテーマギャラリーにあるのをちょっと修正して使います。

また、prettify.jsにもO'reillyの文章中のコード部分をPrettifyするためのしかけをちょっと追加します。
programlistingというクラスのあるpreタグにprettyprintというクラスを追加しておき、pretifyを実行するようにします。完成物は以下のGistのprettify.jsを参照。
https://gist.github.com/shunito/9c0d2fbf3312d0a4d879

そして、この2つのファイルを読み込むようにBiB/iのpresetファイルを作成します。
場所は以下「~/bib/presets/」デフォルトのdefault.jsをコピーして、oreilly.jsを作成します。

f:id:uraito:20140721163307p:plain

ついでにGoogle Code Prettifyのコードは「bibi」と同じ階層に「gcp」というディレクトリを作っていれておきましょう。Presetファイルの説明はここの「readme.txt」に書かれてますが、外部ファイルの読み込みは以下を設定すれば良いです。今回はこんな感じ。

	"epub-additional-stylesheet"        : "/gcp/prettify.css",
	"epub-additional-script"            : "/gcp/prettify.js",

で、EPUBを読み込むときにこのプリセットを使うには、以下のように読み込み側でURLに指定します。
「#bibi(preset:プリセットファイル名)」をつけるわけですね。

    <p><a href="bib/i/index.html?book=JavaScriptPocketReference#bibi(preset:oreilly.js)">JavaScriptPocketReference</a></p>

同じOreillyのEPUBもHTMLの仕様が違う可能性がありますので、全部OKとはいかないと思いますが
、一度このプリセットを作成しておけば、ほかのOreilly本を開くときにもこれを指定すれば自動的にシンタックスハイライトが起動します。URLをブックマークに入れておけばいつでもブラウザ経由読めるので非常に便利ですね。

諸々応用できそうですがBiB/iで開くと問題集EPUBインタラクティブにする、なんてのが考えられるかな。

2013年 今年面白かったもの10

ここ数年、年内に書き上げたためしはないんですが。一年のおもしろかったものを振り返ってみよう企画。
おもしろくなかったものとか記憶の強化しても仕方ないんで、おもしろかったーというものだけです。

入学&入園

長男の小学校入学と次男、長女の双子の幼稚園入園でもろもろ春先はバタバタしたり物入りだったり。お祝い事はいいんですけれどもキャッシュフロー上、大変厳しい一年でありました。。以下各所に影響しております。

BOOKSCAN

f:id:uraito:20140101163349j:plain
某ePubPubにてじゃんけんで20冊無料体験の権利を手に入れまして、小説やら技術書やらをOCRによるテキスト入りPDFに。かなり満足度高いサービスでしたが家庭の都合で追加発注できず。(キャッシュフローがぁぁぁ。)電子書籍業界的には権利処理まわりで諸々あって安泰とは言えないのは承知ですけれども、BOOKSCANさんはすごくまじめに取り組んでいることが見て取れますし、特にシステム化の取り組みがすごいです。
2014年は隙をみてもう少し電子書籍化を依頼したいと思ってます。

空手体験教室

この歳になって格闘技に挑戦することになるとは思わなかったですが、長男が興味あるということで体験しに行ってみました。普段使わない筋肉使って翌日体がギシギシいって辛かったですが、縁のなかった世界に触れるというのはおもしろいもので、いろいろ調べたり。
結局のところ、今習っている水泳などとの兼ね合い(主に金銭面)などもあり、いったん見送りになりました。
下の子もいるし、長男だけ月謝たくさんかけるわけにもいかんでねぇ。

VM(LLVM)

ここ数年の動きではあるんですが。NaClが思ったより進まないなぁと思っていたらPNaCLとか出てきて勉強せないかん。

竜のかわいい七つの子(九井諒子

九井諒子作品集 竜のかわいい七つの子 (ビームコミックス)

九井諒子作品集 竜のかわいい七つの子 (ビームコミックス)

金なし白祿の話がとくに良かったですね。
そのほか漫画ではハイスコアガール僕だけがいない街が今年面白かったなぁ。

BeBe

BiB/i | EPUB Reader on Your Web Site. — ビビ。EPUB リーダを、あなたのウェブサイトに。をLeapMotionで操作することを目指したBiBiMotionというものをちょっと作りかけて途中で挫折していましたが、副産物から以下のラッパーができました。これ単体で何かできるものではないんですが、使い方次第で面白いものができると思います。というか今年創ったものでちゃんと公開まで持っていけたものがこれしかないというのがなんとも。2014年はもうちょいオリジナルなものを発表したいなぁ。
BeBeはBiB/i の薄いラッパーです。

でんでんコンバーター VS BiB/i

あるいは電書ちゃん対ビビさんのJEPAの電子出版アワードを舞台とした戦い。
勝手にでんでんコンバーターは親戚の娘さんくらいに思っておりますし、BiB/iさんはその愛らしさにカーディガン的な何かを献上するような感じですから。一人でいい感じに盛り上がってました。

結果としてはでんでんコンバーターの勝利、改めておめでとうございます。
第7回 JEPA電子出版アワード 大賞は「でんでんコンバーター」 - JEPA

EPUB&DAISY

iBooksで踊る初音ミクというオーパーツな一作、誰が何と言おうと今年のEPUBの極北はこれである。
f:id:uraito:20140101185314j:plain
f:id:uraito:20140101185243j:plain
WebGLが有効になっていない一般のiBooksでは表示できず、Readium(Google Chorome版)でしか見ることができないのが残念。

ほか、子供の夏休みの自由研究をEPUB化した親馬鹿EPUB第二弾、KADOKAWA-EPUB 制作仕様に準拠の一作 。
f:id:uraito:20140101185851j:plain

ほか今年は発表に至らず、SMIL maker+ささらさんをePubPubでちら見せのみのアレが。
これはEPUBSMIL用のspan埋め込みとCeVIO用のCSVSMILを生成するスクリプトであり、もう少し完成度あげると音声つきEPUB制作の敷居がぐっと下がるはずのもの。完成度は60%から結局年内進まず。

というか発表のシチュエーションとタイミングなんかまずい状況だったらしいけどほんとに大丈夫だったのかな。
あれが今年一番状況読めない冷や汗体験でした。

Bitcoin

後だしじゃんけんっぽいけども、実はかなり前から注目していたBitocoinは、今年だいぶ話題になりました。仮想通貨でありつつ為替的な金融商品な性質もあり、興味が尽きない存在ですね。
面白さを堪能できるのは、本業で通貨についてちょっと勉強したうえでレッシグのCODEとか好きなタイプかつ微妙に技術者なところを残している中途半端な自分ならではであるのかもなぁ。

Leapmotion

f:id:uraito:20140101190202j:plain
最後に。ARとかOculusなども話題となりましたけれども。
購入してちょっと開発しつつその難しさに触れた年ともなりました。正直あまり時間がとれずモヤモヤしたまま終わってしまったので2014年はこのあたりをもう少しやっていきたいですね。


以上、今年(2013年)面白かったものでした。
2014年も面白いものをいろいろ発見していきたいと思います。

1962年の高速の電動タイプライタ

過日、ePubPubにてBOOKSCANの20冊スキャンクーポンをゲットし、電子化(PDF)した本「思想としてのパソコン_」より、私がUIについて深く考えるようになったきっかけであるダグラス・エンゲルバートの論文の一節を引用。

「ヒトの知能を補強増大させるための概念フレームワーク」(1962年)- ダグラス・C・エンゲルバート

概念フレームワークの能力階層を例示するために、「文字テクストを作り修正する」という比較的低いレベルの能力で直接生じる人工物の技術革新について考えてみよう、そしてそれが能力階層にいかに影響するかを眺めてみよう。いま、きわめて特殊な機能をもつ高速の電動タイプライタがあるとする。従来のタイプライタと同様に、そのキーボードを操作してテクストを書くことができる。ただし印字機構はもっと複雑だ。すなわち、一打ちごとに目に見える字を印刷するだけでなく、印字機構のなかに目に見えない選択用部分があって、それで特別なコード化をおこなうことができる。補助装置として設けられるのは、筆記機械(またはその類似機械)から出力される印字列に沿って動ける、エンピツのような形のセンサーである。この読み取りセンサーから信号が電線を通じて筆記機械に送られ、読み取っている文字がわかり、自動的に複写タイプがおこなわれる。筆記機械には記憶装置があって、読み取リセンサーはユーザがタイプするよりはるかに速く印字列を走査することができる。ユーザが次にどの単語や単語列を複写しようかと考えて立ち止まったり、センサーが走査する定規のリポジショニングをしたりする間に、複写機構はたちまちユーザのタイプ動作に追いつく。

読んでお分かりのとおり、ここで丹念に描写されているものの結実が、今に続くディスプレイ・キーボード・マウスのインターフェイス3種の神器である。そして、こう続く。

続きを読む

2012年、今年面白かったもの10

例年10個、その年に面白かったものをあげるというのをやってたんですが、なんか近年ぐだぐだで、書いたものも一部は終わったサ―ビス中に置き去りだったり、2011年のがどこだかわからない始末。今年は6個書いて2013年になってしまい、自分でもなんだかわかりませんがせっかくなので公開します。

九井諒子
「竜の学校は山の上」は去年発表の作品だが今年読んだ。「竜のかわいい七つの子」ももちろん。最近はあんまりマンガも読んでないので新発見とかなくて、お決まりのだけ買ってるような感じなんですが、これは買ってよかったなぁ。
外天楼も今年読んで評判通りとても面白かったけれども、今年はこの発見がうれしかった。


EPUB
電子書籍ではなくEPUB、そしてFUSEeについてはいろいろ書いてみたり実験してみたり可能性を探る一年でしたけれども、結局アウトプットとしてはユーザグループにたまに投稿する程度だったり。もう少しやりたいところであったんだけれども。


Readlists.com
http://readlists.com/
個人的に昨年一番興味深かったWebサービス。いろいろな意味で興味深いのだけれども、自粛しているのか検索さえ設けられていない。まぁそうかなぁ、という気もする。もごもご。


md2epub
https://github.com/shunito/md2epub
自分が書いたやつも載せておこう。これを書いたのは2012年の4月かぁ。文字通り初めてのRubyで今見てもぎこちない。自分用スクリプトのつもりがgithubにあげたら本職の方がForkして、あれよあれよという間に洗練されてgem化されてて笑いました。いやもうほんと、こういうのは嬉しいもんですね。
その後の展開的には、本職仕事が大変になって失礼しちゃったアレもあるんですけれど、昨年の何かをひとつ選ぶとしたらこれですかねぇ。


FUJI Rock Festival
2012年は久々に家族で参加。子供一人、幼児二人連れなので無理せずまったり、天候もそこまで厳しくなく、ビールと料理、音楽を楽しみました。今後しばらく無理だろうなぁ。


EPUB RISING
いやもうこういうの大好きな自分を再発見しました。ろっけんさん最高でした。


Virtual Machine
言語に対するこだわりはないどころか開発者ですらないのだけれどもインターネットが趣味と実益を兼ねている実情、諸々調べたりするわけです。で思うのはVMの時代であるよなということで。
技術関連ネタとしては新型不揮発性メモリとHTTP2.0などのプロトコルまわりも非常に興味深かったですが、まぁこれは2013年の話題でしょうね。というか新型不揮発性メモリの世界がまだうまく想像できません。
ところでChoromeのNative Clientが予想より進みませんでしたが、V8が優秀すぎたのかJavascriptを最適化してけばいいじゃん的な方向は熱かったですが、このまま始まらないまま終わっちゃうんですかねぇ。


HTML5
続いてでましたHTML5。一時のクラウドのようにぶっちゃけそれHTML5じゃなくね?的なモノまで含んで話題になりましたね。とはいえいろいろ着実で地道な進捗もあり関係者皆様ご苦労様であります。Canvasもすっかり市民権を得て。私がこれ(jqCandleChart)書いたのなんかもう2年以上前で今見ると酷いコードだよなぁ。
本来はJavascriptで単独項目になりそうな勢いで興味深かったんですが、なんだかJavascriptをコンパイルする流れの中でなんかよく分かんなくなってしまって後半ちょっと引いて様子見な感じの一年でした。


Apple ID
私のジョブズ知識の半分が電脳なをさんなのは関係無いですが、AppleIDのサンクコストで地球がヤバイ。Apple TVでAirPlayとか、共有フォトストリームをテレビで見るとかマジ凄い。Appleは個々の製品の出来もまぁよろしいんですが、ヤバイのはAppleIDですね。
実はテレビ➕ネットだけで家族で楽しめるTUTAYA TVもかなりいいんだけど、リモコンとソフトウェアキーボードで検索が苦しい。居間のテレビをネット活用とかアプリは2013年面白いんじゃないかな、と。


Leap Motion
https://leapmotion.com/
価格は69.99ドルということですが、ほしくてたまりません。
今一番やりたいのは実は非接触型の入力インターフェイスなんですけれどもやっぱ技術的な敷居も高そうでちょっと躊躇してます。今年どこかでやってみたいけど、まず実機買わないとだしなぁ。でも買いそう。誕生日あたりには。


とりあえず以上で10個ありますね。金融ネタとかは面白くはないので割愛ですが、何か忘れている気もするな。
FusionIOとかHFTへのGPU活用(というかすごいスイッチ?)とか技術面での革新的な処理速度向上はまだ続く中で、いかに問題を並列処理させるためにうまく小分けにするかというアイデアがより問われるんだろな、とか雑然と考えますが2013年どうなるんでしょね。
最大の問題は双子の幼稚園費用と子供の成長に伴うエンゲル係数の増大であることだけは確かですが。

iBooksにおけるwindow.onloadの挙動を調べてみた。

本日風邪でお休み、あったかくして積んでた宿題をひとつやっときます。
内容は、iBooksにおけるイベント発火ポイント、特にwindow.onloadの挙動です。

以前、いくつかJavascriptを組み込んだEPUBを作成したときに気がついたのですが、iBooksはリフローのEPUBを開くときに(おそらく)ページ数を計算するために裏で全HTMLをオープンしており、その際にwindow.onloadが発火しているような気がしました。今回はそれが正しいのか、またフィックス型ではどうなのかを検証してみました。

検証は、windowオブジェクトにあるイベントを捕捉してページ内に動的に挿入するEPUBを作成し、iPhone(iOS 6.0.1)のiBooks(version 3.0.2)で実際に開いて行いました。
ちなみに、手で操作しているとdeviceorientationとdevicemotionが大量に発生してしまうため、この二つは表示しないようにしています。

リフロー型の挙動
f:id:uraito:20121119165235j:plain

EPUBの1ページ目を開いたところ。時間フォーマットは「時間:分:秒:ミリ秒」です。
onload、pageshow、popstateが発火しているのがわかります。
ちょっと触ると、focus、touchstart、touchendが追加されました。

f:id:uraito:20121119165258j:plain

2ページ目に移動。

f:id:uraito:20121119165326j:plain

3ページに移動。これを見ると、window.onloadはページを開いた時間ににあっている様子。
裏でonloadが発火しているというのは勘違いか・・・。

f:id:uraito:20121119165315j:plain

2ページに戻りタッチ。window.onloadは一度しか記録されていません。
これを見てわかる通りページ送りをしただけだと何もイベントが発生しませんので、ページが開かれたら何かをする、という制御ができないことがわかります。(何か方法はあるのかも?)


フィックス型の挙動
f:id:uraito:20121119161830j:plain

同様にフィックス型の挙動ですが、1ページ目を開いたときの挙動は同様です。

f:id:uraito:20121119161916j:plain

2ページ目を開いたところ。3ページ目がちらっと見えますが、どうやらすでにonloadが発火している様子。

f:id:uraito:20121119161933j:plain

3ページ目。微妙に2ページ目とタイムラグはありますがほぼ同時にonloadが発火していたのがわかります。つまり、フィックス型の見開きは大方の想定通り両ページともonloadが発火することになります。

f:id:uraito:20121119161952j:plain

ページをスワイプして2ページ目を表示させます。
大量にtouchmoveとresizeが記録されました。resizeが想定外な気がしますが表示領域が大幅に変わるためでしょうか。

ここで1ページに戻ります。

f:id:uraito:20121119161956j:plain

おお、ここではonloadが再発火。フィックス型ではリフローと違いページ表示ごとにonloadが発火するようです。

今度は、画面を横向きにしてみます。

f:id:uraito:20121119162002j:plain

orientationChangeが記録されました。
その状態で2ページ目を開くと・・・。

f:id:uraito:20121119162011j:plain

両ページのonloadが発火しています。onloadで一度初期化されてしまうためorientationChangeは記録されていません。
では、リフローではどうなるかというと。。。

f:id:uraito:20121119162023j:plain

EPUBを開き、2、3ページまで一度開きonloadを発生させ、1ページに戻り画面を横向きにします。
まずは1ページ目でorientationChangeが記録されました。

2、3ページがどうなっているかというと。

f:id:uraito:20121119162032j:plain

2ページ目。

f:id:uraito:20121119162039j:plain

3ページ目。
この通り、orientationChangeが各ページで記録されています。つまりiBooksがバックグラウンドでページをオープンしたままにしており、イベントも発生するようです。


まとめ

  • フィックス型のEPUBでは、画面表示ごとにwindow.onloadが発火するが、リフロー型では一度開いたらwindow.onloadは再発火しない。
  • リフロー型でもページを初回開いたタイミングでonloadが発火する。(EPUBを開いたタイミングで全ページonloadではない)
  • リフロー型EPUBで、ページ送りでの再表示タイミングを捕捉するイベントはない?

iBooksではページを開いたタイミングで何かする、というのはリフロー型のEPUBではできないのかもしれません。

以下、テストで利用したページのソース
https://gist.github.com/4109674

怒りの孜然羊肉

Twitterで羊肉串の写真をみてから食べたくて仕方なく、作ろうと羊肉を買ってきたはいいが、鉄串がなかった。このままでは引っ込みがつかん。俺様は一刻も早く羊肉とクミンのハーモニーを楽しみたいのだ!
ということで、ここは孜然羊肉だっ!ミニトマトとの戦いは一時休戦で!


f:id:uraito:20120812200414j:plain
しかしいきなり問題が。。。近所のコープでは香草を売ってない。おのれ、どこまでも邪魔をする気だな?
代わりに選んだのは、イタリアンパセリ。正直微妙。そして、セロリ。なぜセロリなのかは長い話となるが羊肉にはセロリなのだ。ともあれ美味いので許してほしいところだ。


f:id:uraito:20120812202758j:plain
羊肉は近所の肉の卸売り「鈴政」で骨付きのラムチョップを買った。ほんとは肩肉が欲しかったんだけど2kgの塊が最低単位だったので、これまた妥協の産物だ!こいつを骨からはがして赤身と脂身に分ける。肉はちょっと小さめに切るよ。

下味は、塩とガラムマサラ、クミンパウダー多めでしっかり味付け。紹興酒がなかったので赤ワイン少々だ。セロリは、茎はざっくり1センチ幅に、葉っぱはちぎって適当に。最後に美味ければなんでもいいじゃんか!


f:id:uraito:20120812203802j:plain
鍋を中火にかけ、脂身投入。クミンシードを投入。
ここではあんまりたくさん入れない。こげると苦いからね。


f:id:uraito:20120812203824j:plain
羊肉を投入して強火に。しっかり火を通します。


f:id:uraito:20120812203950j:plain
それからセロリ、追いクミンシードをがっつり投入。強火で水分を飛ばすのだー!


f:id:uraito:20120812204401j:plain
こんな感じで。


f:id:uraito:20120812204537j:plain
最後に香草がないので代わりになぜかイタリアンパセリをちぎってかけてでできあがりー!
もう鼻がクミンの香りに麻痺しちゃってる感じなのが残念な具合であり、さらに食べる直前に追いクミンの勢い。

肉はもっと小さくてカラッとしてるのが本場流だと思うけど、なんか全体に洋風になっちゃった!
しかしとりあえずクミンと羊肉、あわせてセロリを堪能できたのでよし!ビールも美味い!

今更ながら中国語のレシピ読むと、油で一回あげてからやるのが正式なのかねぇ。
クミンシードはもうちょい最初のところで多めでもよかったやもしれん。(腹一杯になって反省戦)

ま、まぁ、とりあえず今日のところはこの辺で許してやることにする。

ミニトマトとの戦い

f:id:uraito:20120811114711j:plain
この一週間仕事で忙しくて放置していたら庭のミニトマトがまた大量に熟れていた。一部は熟れ過ぎで割れてきてるし。
まだ先日収穫したのも消化しきれていないのに。。ということで大量消費作戦を敢行であります。

一緒にとうがらしも収穫。どのくらい辛いのかよくわからんが、3本ほど使ってみることに。


f:id:uraito:20120811114428j:plain
まずは材料を買ってきた。ワインと鶏肉。今回は味付けに楽をするため鶏肉のトマト煮ソースも一袋。
鶏もも肉は30%オフ、手羽元は20%オフだよ!
あと、冷蔵庫にあった人参一本と、キャベツ1/4もこの際一緒に消化だ。


f:id:uraito:20120811122341j:plain
味付けはこの辺。ニンニクにオリーブオイル、バジルに買ってきたソース。ツナ缶ひとつ。
ワインも飲むだけじゃなくちゃんと使うよ!飲むけども!


f:id:uraito:20120811115554j:plain
まずはミニトマトのへたを取り、洗いながら選別。傷んでたり虫の食ってるのは外します。


f:id:uraito:20120811122154j:plain
キャベツと人参、とうがらしを適当に切ります。とうがらしはちょっと端のほう切って食べてみたところさほど辛くなかったのでそのままいくことにして、大きめに切って種を取りました。
ミニトマトは半分に切ります。しかし多すぎて途中で挫折。鍋に入らなそうな分は宿題で。


f:id:uraito:20120811122551j:plain
オリーブオイル適当に、ニンニクと鷹の爪の輪切りを軽く炒めてから鶏肉投入。軽く表面に焼き色がつくくらい炒めます。
あ、胸肉は食べたい大きさに切って、手羽元と一緒に塩胡椒して室温にしておくとよいよ。
とうがらしもあるので今回は鷹の爪少なめで(これが正解だった)。


f:id:uraito:20120811122722j:plain
続いてキャベツ人参とうがらし投入。


f:id:uraito:20120811122851j:plain
ミニトマトとソース投入。あふれてるけどキャベツがしんなりしてくれば埋まるので気にしない。
バジルちょい多めが好きなので多めにふって。。


f:id:uraito:20120811123038j:plain
ワインを飲んでるコップ一杯分投入。うん。適当。
中火?弱火より少し強め?な感じ。これまた適当に。

f:id:uraito:20120811123130j:plain
強引に蓋を閉めます。ちなみにルクルーゼであります。


f:id:uraito:20120811124924j:plain
15分後。キャベツとトマトから良い感じに水分が出てきてますねー。


f:id:uraito:20120811125130j:plain
ざっくりかき混ぜます。


f:id:uraito:20120811125223j:plain
ツナ缶投入。ツナはあんまり煮すぎないのが好き。
味を見ましょう。

f:id:uraito:20120811125800j:plain
・・・・予想より辛い。とうがらし舐めてた。でもピリっとした感じでより食欲はそそる。
悪くない。悪くないぞー!

もう一回蓋を閉めて、さらに15分ほど煮込みます。


f:id:uraito:20120811131005j:plain
できあがりー!
家族は今田舎に帰省してるので、これをしばらく一人で食べ続けます。


f:id:uraito:20120811131111j:plain
残る宿題。俺たちの戦いはこれからだ!