2011-10-01(土) [長年日記]
■ 富士山できのこ狩りをしてきた2011
昨年に引き続き、今年もうどん会の方々に誘っていただいて、富士山できのこ狩りをしてきた。昨年はずっと雨でなかなかひどい目にあったのだけど、今年も9月の予定が雨天で延期になり、リベンジとなった今日も雨の予報だったので半ばあきらめていたのだが。蓋を開けてみれば(雲の上ということもあり)ずっと好天で、すがすがしい秋の富士山をたっぷり満喫することができたのだった。
初参加の昨年は、どれが食べられるきのこなのかもわからず、手当たり次第に摘んでみては打率五割というところだったのだが、今年は時期が少しずれたこともあって生えているきのこのバリエーションも少なめで、あまり迷うことなく食べられるものばかりを摘むことができた。打率にすると九割くらい。それでも5、6種類くらいのきのこをたっぷり持ち帰ることができた。
昨年は雨で中止したのだが、今年は(例年どおり)途中できのこ汁を作って食べるというイベントも催された。みんなで採ったきのこの一部で作るのだが、数種類のきのこを刻んで煮て、味噌を加えただけの椀が、もう、なんじゃこりゃというくらいにウマイ! 鮮度の高いきのこって、すげぇ旨いんだなぁ! というわけで我が家は夕飯もきのこ汁である。
そうそう、きのこは放射性物質が心配という話もあって空間線量計も持ち込まれたのだけど、五合目あたりで0.03μSvくらい。地上よりむしろ少ないのだった。飛散している放射性物質は重めなので、高山には届かないのかも知れないね。
その他、美麗きのこ写真はこちら。
2011-09-30(金) [長年日記]
■ Amazon-Auth-ProxyをSinatraに移植してHerokuで動かす
先日発表になったGoogle App Engineの値上げはGAE上で無償サービスを運用していた人たちをパニックに陥れたが、tDiaryとて無関係ではない。amazon.rbが使っているProduct Advertising API用リバースプロキシがGAE上で稼動しているからだ。
GAEの値上げ自体は11月まで猶予されたが、それでもやはり、ああいうロックインされやすい環境に依存するのは危険だ。で、同じサービスをまちゅさんがheroku + Sinatraに移植してくれたので、そちらに引っ越すことに。たぶん10月末に予定されているtDiaryの次のリリースからはこちらを使うことになると思う。
さて、リバースプロキシだけでなく、認証プロキシの方もいつまでもCGIじゃねーだろというかもっと移植性の高い環境で動かさないとね、ということで。Sinatra移植に挑戦してみた。仕事でRuby使ってるつっても主にデータ処理なのでWebアプリの新作はもう何年も作ってないわけで、新しい技術のキャッチアップはぜんぜんしていないのだ。もちろんRailsでもいいわけだけど、そんなデカいものを作る予定もないのでまずはSinatraから。
というわけでGithubの方にいろいろ追加→amazon-auth-proxy。元のCGIをそのままライブラリとして使っているのでかなりひどいアーキテクチャだが、RSpecで不完全ながらテストも書いたし、Rack上で動くようにしたし、Bundler対応もした(というか対応しないとHerokuで動かせないみたい……なのかな?)。なんかモダンじゃーん。
で、これをHerokuで動かす。この手順を簡潔にしておけば、誰もがプロキシを運用できるはず。まずはgemでherokuをインストールし、「heroku create」でアプリケーションを作成する:
% gem install heroku ... % heroku create amazon-auth-proxy-tdtds Enter your Heroku credentials. Email: t@tdtds.jp Password: Found the following SSH public keys: 1) id_dsa.pub 2) tdtds.pub Which would you like to use with your Heroku account? 1 Uploading ssh public key /home/sho/.ssh/id_dsa.pub Creating amazon-auth-proxy-tdtds... done, stack is bamboo-mri-1.9.2 http://amazon-auth-proxy-tdtds.heroku.com/ | git@heroku.com:amazon-auth-proxy-tdtds.git Git remote heroku added %
これでamazon-auth-proxy-tdtds.heroku.comというサイトができた。ここにプログラムをgit pushすればデプロイできるのだけど、さて、ここで問題が。設定ファイルには秘密にしておかなければならないAmazonのキーが含まれるので、これをGitHub上に公開するわけにはいかない。たぶん良いプラクティスがあるのだと思うが、とりあえずローカルにreleaseというブランチを切って、そこに設定ファイルを含めてHerokuにpushすることにした。
% git checkout -b release % cp amazon-auth-proxy.sinatra.yaml amazon-auth-proxy.yaml % vi amazon-auth-proxy.yaml ...KEYなどを書き換え... % git add amazon-auth-proxy.yaml % git commit -m 'added yaml file for release.' ... % git push heroku release:master Counting objects: 90, done. Compressing objects: 100% (86/86), done. Writing objects: 100% (90/90), 12.94 KiB, done. Total 90 (delta 44), reused 3 (delta 0) -----> Heroku receiving push -----> Ruby/Sinatra app detected -----> Gemfile detected, running Bundler version 1.0.7 Unresolved dependencies detected; Installing... Using --without development:test Fetching source index for http://rubygems.org/ Installing diff-lcs (1.1.3) Installing rack (1.3.2) Installing rspec-core (2.6.4) Installing rspec-expectations (2.6.0) Installing rspec-mocks (2.6.0) Installing rspec (2.6.0) Installing tilt (1.3.3) Installing sinatra (1.2.6) Using bundler (1.0.7) Your bundle is complete! It was installed into ./.bundle/gems/ -----> Compiled slug size is 680K -----> Launching... done, v4 http://amazon-auth-proxy-tdtds.heroku.com deployed to Heroku To git@heroku.com:amazon-auth-proxy-tdtds.git * [new branch] release -> master
ありゃー、いりもしないRSpecまでインストールされちゃってるな。これはGemfileで開発用のgemだけ分離するような書き方があるのだろう(と、tDiaryのGemfileを見ながら学習)。まぁいいや。なんにせよ、本当に簡単で拍子抜けするくらいだなぁ。これが現代のPaaSか!(今ごろなに言ってんだ)
というわけでいちおう動くようになったけど(プロクシなのでブラウザからアクセスしてもなにもないよ)、まだ異常系もロクにできていないのでもうちょっといじってから本番投入するとしよう。
2011-09-29(木) [長年日記]
■ 今日のAmazonの発表で一番すごいのは「Kindleのメモリを2GBに減らした」こと
いやぁ、今日発表になった新しいKindle、いいよねぇ。カワイイ。これは欲しいわ。
えっ? Kindle TouchでもKindle Fireでもない、無印Kindleなのかって? そりゃそうです。
ときどきKindleを持ってくるのを忘れて、仕方なくスマフォでmobiファイルを読むことがあるんだけど、タッチインタフェースで読書するというのは、けっこうストレスが溜まるのよ。なにしろ、「紙面」に常時指が乗っているわけで、指をどかさないと読めない部分があるってことだから。しかも電車で立って読んでる時に揺れたりすると、落とさないように端末をしっかり掴みたいけど、うっかり画面に触るとページがめくれちゃったりするわけで、何も考えずに「がしっ」と掴める現行Kindleは実にいいデザインだと思う。まぁ、たしかにあのフルキーボードはちょっと垢抜けないのだけど。
その旧Kindleからフルキーボードだけとっぱらって小さく軽くなった新しいKindleが悪いはずがない。TouchやFireではなくなった左右のページめくりボタンも健在だしね。あれは右手で持っても左手で持っても簡単にページめくりができる、非常にすばらしいデザインのたまものなので、やはりKindleには欠かせない要素だと思う。これで画面が7インチになってくれれば、理想の読書端末なんだがなぁ。
あー、あと、内蔵メモリが4GB→2GBに減っちゃったんだよね。廉価版だしなぁ……と、ここまで考えてはたと思いつく。そうか、これをアメリカで使っている人たちは、(もちろん)AmazonからAZW形式の電子書籍を買って読んでいるわけで、2GBもあればもう、読み切れないほどの本を入れておくことができるのだ。おそらくAmazonは、ユーザの「蔵書数」をオンラインで調査して、たいていの人には4GBも必要ないってことを知ったのだと思う。
もちろん$79という破壊的な価格を達成するために削れるものはなんでも削る、結果としてメモリも削ったということだとは思う。しかし「2GBで十分」という判断があったのは間違いないのだ。
ちなみにおれのKindle(内蔵メモリ4GB)は、まだ数十冊しか入れてないけど、残りが500MBを切ってどうしたものかと悩んでいるところ。そりゃそうだ、テキストなら数MBで済む本を、わざわざ画像にして100MB以上もの大きさに増やしてるんだからな!
アメリカの読者は2GBでもあり余るほどの「書庫」を持ち歩ける。一方日本の我々は4GBあってもぜんぜん足りない。この現実に気づいて、なんだかものすごく悲しくなってしまったよ。はぁ。
Before...
◆ まちゅ [dotCloundの場合は、設定ファイル(dotcloud.yml)に環境変数を書くやり方みたいですね。 http:..]
◆ ただただし [まぁたしかに、ソースツリーに設定ファイル含めちゃったら、サーバ増やせないもんなぁ。しかし環境変数を使うとサーバはスケ..]
◆ hsbt [group :test を除外するには BUNDLE_WITHOUT を使います(これはHeroku特有の設定) h..]
◆ ただただし [あー、次善の策として環境変数を使うというのはいいね。そうしよう。 :testの除外については、ログに「Using -..]
◆ hsbt [Gemfile に group :test do ... end を作らないとダメです!]
◆ ただただし [ああ、それはもちろん。]