-
サーバがまた止まる。そしてgoogleがまたすごいものを 2007-06-01 00:00:00
昨日は夕方に雷をともなう大雨が降ったようです(ぼくは仕事中で知らなかった)。そのせいか、雷のなっていた時間帯に一瞬だけ停電になったみたいで、サーバがまた落ちました。ユルさんが電源を入れてくれたのだけど、なんだか途中で引っかかっていてMySQLが起動しておらず。ぼくが家に帰ってきて復旧させるまで、しばらく500エラーが出ていたりしました。やっぱり個人管理のサーバはいろいろと不安定で大変です。ユーザのコンテンツを保持するようなサービスを避けるようにしているのはこのためなのです。せめて短時間の停電に耐えられるよう、ノートPCをサーバにしたいところ。
「Googleマップに平面視点で地図を見られる新機能「Street View」追加」という記事にあるように、googleがまたすごいものを作り上げました。これ、おもしろいなあ。サンフランシスコとかニューヨークとかどんどん歩けるし、これだけで数日遊べそう。地図好きな人の夢みたいなサービスですね。google本社前に、たくさん人がいて集合写真を撮っているみたいに並んでいるのがおもしろいです。開発者たちなのかな。
-
酔っ払いのケンカ 2007-06-02 00:00:00
地下鉄に乗っているとき、酔っ払いが殴りあいのケンカをしているのを見ました。四十代のいいおっさんと二十代前半の若者でした。子供みたいなケンカでしたが、殴りあいのケンカをするのは子供だけなのでこれは当然というものでしょう。恥ずかしいよね。
-
上野のバイク街と秋葉原に行ってきました 2007-06-03 00:00:00
昨日は上野のバイク街と秋葉原に行ってきました。最初は六本木の東京ミッドタウンにでも行こうと思っていたのですが、ユルさんがあまり乗り気ではなかったのです。彼女は(ぼくもですが)、表参道ヒルズのつまらなさを覚えていて、それの二の舞になるのがイヤなのでした。
上野のバイク街に来たのは10年ぶりくらいでしたが、あまりの寂れ具合にびっくりしました。当時は路肩にずらりとあちらこちらからやってきたいろいろな種類のバイクがずらりと止まっていて、それを眺めているだけでも飽きないものでしたが、今となっては店も少なく、人も少なく、光輪はなにやら揉めごとが勃発している様子でした。もう来ることはないでしょう。
秋葉原ではヨドバシカメラで液晶ディスプレイやプリンタを見て二階の喫茶店でマンゴーソフトクリームを食べたりしました。マンガがいっぱい置かれているお店に、ユルさんに連れられて行ったりしましたが、ちょっとツラかったです。道端でたこ焼を一緒に食べました。 -
Asobozeをはじめました。そして今さらFizz-Buzz問題 2007-06-04 00:00:00
Railsで作るサービス第二弾は、WebカレンダーのAsobozeです。ユルさんに頼まれて、仲間内だけで使えるものを作ったのですが、複数のカレンダーをいくらでもつくれるようにして、誰でも使えるものにしてみました。今後の課題はサイトデザインです(今はノータッチ)。
今さらですが、Fizz-Buzz問題をやってみました。「2分とかからずにできるはずだ」とあるので、とにかく直観のままに1分で書いてみたのが以下のコード。
1.upto(100) do |i| output = '' if i % 3 == 0 output << 'Fizz' end if i % 5 == 0 output << 'Buzz' end if output.empty? output << i.to_s end puts output endもうちょっとイジくってみよう。
1.upto(100) do |i| output = '' output << 'Fizz' if i % 3 == 0 output << 'Buzz' if i % 5 == 0 output << i.to_s if output.empty? puts output end
なんとなくoutputという文字列オブジェクトを使うのが納得いかない気がする。わかりやすいけど洗練されていませんね。
ちなみにワンライナでいくとこんな風になりました。(1..100).to_a.map{ |i| i % 15 == 0 ? 'FizzBuzz' : i }.map{ |i| i % 3 == 0 ? 'Fizz' : i}.map{ |i| i % 5 == 0 ? 'Buzz' : i }.each{ |i| puts i }きたねー。
日曜の夜はなんだかゆったり時間があったので、溜っていたメールやRSSリーダの記事を消化したりしてました。こういうのって、溜りすぎるともう読めなくなっちゃうから注意が必要です。
-
無意識の証人 2007-06-05 00:00:00
- 無意識の証人 (文春文庫)
- 作者/アーティスト: Gianrico Carofiglio,石橋 典子
- 出版社/メーカー: 文藝春秋
- メディア: 文庫
- 発売日: 2005-12
「「無意識の証人 (文春文庫)」」を読みました。文章がすばらしい。とてもおもしろかった。
-
Asobozeにユーザ登録機能を追加しました 2007-06-06 00:00:00
Asobozeにユーザ登録機能を追加しました。ユーザ登録をしておくと、他人があなたの名前を勝手に使えなくなるし、参加者を限定して非公開のカレンダーを作ることもできます。カレンダーの管理機能(カレンダー名を変えたり、参加者や公開・非公開を選んだり)は次の実装です。その前にデザインをなんとかしたいです。今はただ部品を置いているだけだもの。その次はリファクタリングでしょうか。
-
Asobozeのデザインをちょっとだけ 2007-06-07 00:00:00
Asobozeのデザインがちょっとだけまともになりました。そうそう、せっかく遊びの予定を決める掲示板なのだから、食べログとか楽天とかのグルメ情報や宿情報が簡単に載せられたらいいなあと思いつつ、WebAPIを調べようと考えています。kaeruspoonのかえる記法とAmazon検索機能もまるまる移植しちゃおうかな。
-
Rubyを仕事で使う 2007-06-08 00:00:00
会社の開発マシンにRubyがインストールされていることに気づきました。わざわざ入れることは考えられないから、ディストリビューションにデフォルトで入っていたものみたい。バージョンは1.6.8とかだったかな(古)。
この前の文字処理ツールですが、ちょっと複雑な処理が必要になって、Cなんかで書いてられなくてRubyでささっと作りました。やっぱりRubyは楽しいや。必要にかられてクロージャを使ってみました。勉強以外の目的で、実際に必要になってクロージャを書いたのは初めてだったのですが、これって便利だなあ。いまさら実感です。やっぱり必要になんないとちゃんと覚えないよね。ますますRubyが好きになりました。
-
RubyKaigi一日目にいってきました 2007-06-09 00:00:00
会場から携帯でアップしています。今はお昼。ロビーにmap派、collect派のアンケートがあったので「場合による派」にしておきました。
会場のマック率が超高い!見える範囲にはマックしかありません。日本にはマックしか存在しないみたいです。
セッション.午後.firstはまつもとゆきひろさんです。楽しみ!
帰ってきました。とりあえず、map vs collect アンケートの写真と会場の写真をアップです。map派がほとんどだったのでちょっと驚いた。ぼくは「場合による派」にしたと上で書いたけど、本音をいうとこだわりは全然なくて、そのときそのときで気が向いたほうを使っています。
参加者みんなが、こんなものをもらいました。「No Ruby, No Life」の文字がクールなトートバックがけっこうカッコいいです。でも、会場から出ると当然ながら参加者400人みんなが持っていたので、ちょっと恥ずかしかったです。個人的には全然使えるものなのでこれはうれしい(明日は持っていかないけど)。あとは、スポンサーのパンフなどがいろいろと。アメはユルさんが食べています。
セッションの内容についていろいろと書こうかと思っていましたが、たぶん、みなさんブログに書くだろうし、なにより本家サイトに素晴らしいログがアップされていました。
発表者の方たちはみんなプレゼンがすごくうまくて、もうあれはなんだかエンターテインメントですね。笑いが絶えませんでした。はじめて生で高橋メソッドを拝見しました。JRubyは予想外に使えそうです。Charles Nutterさん と Thomas Eneboさん のおふたりは英語でのプレゼンでしたが、ワンセンテンスごとに数秒の時間をあけてくれたし、単語のひとつひとつも発音がわかりやすくて、ぼくでも内容が理解できたし、笑えるところでちゃんと笑えました。楽しいなあ。
まつもとゆきひろさんのお話は愛について。楽天で何をなさるのか、ご本人もよくわかっていないご様子でした。朴 芝印さんのお話も楽しかった。日本語がうまくて聞き取りやすかったです。XMLとかHTMLのパースとか、kaeruspoonやはてブメールでも使っているし今後もよく使いそうなところなので興味深かった。FireBugでXPathが拾い出せるのは知らなかった。scRUBYtは今度使ってみよう。
LTはテンポがよくてどの発表も楽しくてエキサイティングでした。米澤 直記さんの発表で、Rubyで一時間かかった処理がC言語で12秒で終わったというのがありましたけど、これはいかにRubyでもないんじゃないの、と思わないでもなかったり。野田 哲夫さんのお話にあったMatz江市に笑った。
あっという間にすぎた一日でした。400人ものRubyistを見たのも初めてでした。こんなにいるんだなあ(もっといるに決まっている)。Railsを仕事で使っている人が2割以上もいました。羨ましいかぎり。ぼくも来年のRubyKaigiでは手をあげられるようになりたいものです。
まだまだ明日も続きます。楽しみだ。 -
RubyKaigi2007 二日目にいってきました 2007-06-10 00:00:00
午前中のセッションが終わったところです。まじろうがおもしろかった。それにとても使いやすそうでした。かくたにさんの本があっという間に売り切れになってます。本といえばレシピブックがよさそうです。今度買おう。外は雨でしかも寒いです。
あんなに楽しみにしていたRubyKaigi2007も、もう終わってしまいました。すごく楽しい2日間でした。楽天のセッションで、「楽天は技術な会社だと思っている人」「技術に貢献していると思う人」の質問に、会場の誰一人として手をあげなかったのがおもしろかった。でも、今後はそういうところを払拭していきたいそうです。ちょっと期待してもいいかもしれません。
NaClがRubyに関して "Do not Control" なものとして、Spec、Source、そしてMatzを挙げていました。どちらかというと、Matzに関しては "Cannot Control" だそうです。
使っているOSは何か、のアンケート。ぼくらのubuntuもなかなかがんばっています。でも、Macにはおよばず(当り前か)。ここでは、Windowsは完全にアウェイですね。ちなみにぼくも次はMacにしようかと思います。
今日はなんといってもDave Thomasの日でした。いろいろと印象深い言葉が今も頭に残っています。"You have to love what you do"、 "I Love Ruby"、 "Rubydoes not wear a suit"、"Rubyis Ruby. Rubyis ours" などなど。
ぼくらが聞きたがっている言葉を口にしてくれる、といった感じで、会場がすごい一体感に包まれた感じでした。最後にはスタンディングオベーション。もちろん、本当に宗教的にRuby教徒と化しているのは極一部の人たちだけでしょうけど。プレゼンがすごくうまかったです。スティーブ・ジョブズのプレゼンもこんな感じなのかもしれないな、と思いました。
ロビーから会場まで
始まる前
JRubyWebServer
RubyCocoa
Dave Thomas
-
Rubyでの非同期処理 2007-06-12 00:00:00
kaeruspoonで、ブログ更新pingを打つときの待ち時間が長いことがあるので、スレッドを使って非同期処理にしてみた。
def ping_check if request.remote_ip == '(サーバのIPアドレス)' diary = Diary.find(:first, :conditions => ["open_date = ?", Date.today]) Thread.start(diary) {|d| ping_send(d) if d} render(:text => 'ping_check end', :layout => false) else redirect_to(unknown_url) end endこれだけ。これは単純な処理だから、何も考えなくても作れる。まじろうみたいに素晴らしいものではないけれど。
[追記]全然速くならなかった。どうもスレッド切替えが行われなかったように見える。うーむ。
ユルさんが今日から仕事です。彼女の仕事では土日にはあまり休みがありません。一緒に遊べなくてつまらないので、日曜日はRails勉強会@東京第19回に参加することにしました。ポジション・ペーパを作っとかなきゃ。何もネタがないのだけれども。
-
スレッドの続き、子プロセスも 2007-06-13 00:00:00
昨日の続き。更新ping全体ではなく、ひとつひとつのXML-RPCをスレッドにしてみました。
thread_list = Array.new ping_uris.each do |ping_uri| uri = URI.parse(ping_uri) thread_list << Thread.new(uri) do |u| connection = XMLRPC::Client.new(u.host, u.path, u.port) connection.call('weblogUpdates.ping', name, url) end end thread_list.each {|t| t.join}うーん、これならたしかに並列処理できるけど、結局は待たなきゃいけないんだな。更新ping処理全体を子プロセスとかにしたほうがいいかも。
-
RubyのThreadとforkについて 2007-06-14 00:00:00
スレッドについてもうすこし調べてみました。
thread_list = Array.new 2.times do |i| thread_list << Thread.new(i) do |m| 1000000.times do |a| if a % 200000 == 0 if m == 0 puts "one" else puts " two" end end end end end thread_list.each {|t| t.join} 1000000.times do |a| if a % 200000 == 0 puts " three" end end puts "--end--"これの結果は
one two one two one two one two one two three three three three three --end--joinで子スレッドが終了するのを待っていますね。これでは更新pingの速度も劇的に速くなるとはちょっと言いがたい。
ちなみにスレッド内の例外を処理したいときは、スレッド単位でrescueして安心してはいけなくて、なぜかといえばjoinで待っているスレッドでも例外が発生するからなのです。なので注意が必要です。thread_list = Array.new begin 2.times do |i| thread_list << Thread.new(i) do |m| 1000000.times do |a| if a % 200000 == 0 if m == 0 puts "one" else puts " two" end end raise "test e" end end end thread_list.each {|t| t.join} rescue p $! end 1000000.times do |a| if a % 200000 == 0 puts " three" end end puts "--end--"結果は
one two #<RuntimeError: test e> three three three three three --end--こんな感じ。
さらに子プロセスでやってみる。
fork do 2.times do |m| 1000000.times do |a| if a % 200000 == 0 if m == 0 puts "one" else puts " two" end end end end end 1000000.times do |a| if a % 200000 == 0 puts " three" end end puts "--end--"結果は
one three three three three three --end-- [tsukasa@] $ one [~/lesson] one one one two two two two twoお、ぼくがやりたかった流れの処理になったようです。よかったよかった。というわけでkaeruspoonもfork doを使って子プロセスを作り、ブログ更新ping送信を発信するという処理にします。
継続とかFiberとかもちょっと調べてみようかな(まだよくわかっていない)。
-
ポジションペーパーとねむねむの日 2007-06-15 00:00:00
最近寝不足だったので、帰ってきてからずっとソファで寝てました。いまから布団で寝ます。
【追記】日記の書き込みが超速くなりました。fork最高!
-
AP4Rよさげ 2007-06-16 00:00:00
RubyKaigiで、AP4Rがエンタープライズ向けだけじゃなくて、ぼくみたいなサンデープログラマにも使えそうだ、というところに魅力を感じたのだけど、AP4R on Rails はじめの一歩という記事にあるようにさっそく試している人がいた。
シンプルですごくよさそう。今のところ、ぼくが使うシーンはイメージできないけれけれど(ブログ更新pingの非同期処理に使うには大げさすぎるでしょう?)。今後、使いたいときが出てくるかもしれない。 -
自転車 > プログラミング >>>>>>>> バイク > スノボー 2007-06-17 00:00:00
この日記を書いている今時点での気持ちはタイトルみたいな感じ。バイクがここまで落ちるなんて、10年前のぼくが知ったら激怒するかもしれません。あのころはバイクが最高ダントツでぼくの中のほとんどを占めていたのですが。
ユルさんが言うには、ぼくが欲しいものはだいたい20万円なのだそうです。MacBookも、VAIO typeS も、チネリのエクスペリエンスもだいたい同じくらい。
特に、最近は自転車がぼくの中でぐんぐん頭角を表しつつあって、今20万円手元にあったら、中古のNSR250ではなくてチネリを買ってしまうと思います。そのことに今日、自分で気づいて驚愕してみたりしなかったり。- Apple MacBook Black 2.16GHz Core 2 Duo/13.3/1G/160G/8x SuperDrive DL/Gigabit/BT/DVI MB063J/A
- 出版社/メーカー: アップル
- メディア: エレクトロニクス
- 発売日: 2007-05-16
PCに関しては、MacとVAIOの間で揺れ動いている感じです。Mac OS Xはデスクトップ用途では間違いなく最高のOSだと思いますが、やや劣るもののUbuntuだって負けてはいません。そしてハードウェアとしてのデザインの好みは、ぼくにとってMacBookよりもVAIOの方なのです。うーん、悩む。VAIOSにMacOSXが入っていれば文句ないのですが。
-
Asobozeにホットペッパーがやってきました。 2007-06-18 00:00:00
金曜日からちょっと熱っぽかったのですが、大事をとって日曜日のRails勉強会は欠席させていただきました。で、なにをしていたかというと、Asobozeにホットペッパー検索機能をつけたりしてました。google mapも使っています。マッシュアップってやつでしょうか。特におれってすげー感は味わえなかったような。当たり前か。そろそろデザインをなんとかしないといけません。洗練されたデザインとかすごく興味があるのに、ぼくにはセンスがないのでデザインはいつも後回しです。誰かがやってくれないかな。
その手の雑誌を見ていると、デザインは芸術系の仕事として社会に認識されているのを感じます。もちろんそのとおりなんだけど、プログラミングも実は芸術系の仕事なんだけどな。と、ぼくは常々思っているわけで。小説家に近いですよね。書いているときの感覚はどちらもとても近いし。
テクノラティランキングにもランクアップされていたけど、竹原慎二 オフィシャルブログがすごくおもしろい。
じゃあの。 -
Internet Explorerにまたやられています 2007-06-19 00:00:00
Asobozeにホットペッパーとgoogle map機能を付けたのですが、google map機能のところでエラーダイアログが出てしまっています。これはInternet Explorerだけに出現する問題です。ほんとにもう、なにかと問題を起こしてくれるブラウザだよ。メジャーじゃなければ捨てておきたいところですが、そうもいかない。原因はわかっていて(google検索で山のように情報が見つかります)、ようはロードのタイミングみたいです。
で、解決できたと思ったら、やっぱりうまくいかなかった。うーん、なんでだろう。今日はもう遅いので続きはまた明日です。最悪、iframeを使う技で逃げようかとも思っています。 -
google map使用時にIEから見ると「開けません」というダイアログが出現する、の解決法 2007-06-20 00:00:00
問題は解決しました。どう解決したかはソースを見てください。ようは、loadイベント時にgoogle map関数を呼ぶようにしただけ。簡単でしたね。
といっているけど、実はprototypeでクラスみたいなのを作ろうとしてうまくいかなかったりしました。Javascriptはまだまだだ。もっと勉強しよう。しばらく、Javascriptで遊んでみることにします。
-
一緒に帰宅する日々 2007-06-21 00:00:00
最近、帰りに駅で仕事帰りのユルさんと一緒によくなります。駅で待ち合わせてスーパーでお買い物して一緒に家に帰るのが、なんだかほのぼのとして楽しいものです。
Asobozeにぐるなび検索機能もつけようかと考えています。これでグルメ系の検索はとりあえず大丈夫かなと。あとはじゃらん検索機能もつけて、宿関係の検索もできるようにしようと思います。機能面はとりあえずこれくらいで一段落かな。あとはリファクタリングとデザインを納得いくところまでやって、また別のサービスを考えようと思います。
-
サーバメンテナンス 2007-06-22 00:00:00
22時から22時半くらいの間、サーバメンテナンスをやってました。ホコリを取り除いたくらいのことで、メンテナンスというよりクリーニングです。すでに筐体もかなりの熱を持つようになっています。また今年の夏もハードディスクがやられてしまいそうです。エアコンが効きまくった凍えそうなサーバルームでもあればいいのですが、個人ではそうもいきません。
-
週末は何もなく 2007-06-25 00:00:00
なんだかずっと体調が悪い週末でした。プログラミングも一切せず、だらだらと何もせずに過ごしてしまった。不毛だ。でもたまには不毛もいいでしょう。まったく無駄なく生きてもしかたがない。無駄がなければ侘寂も生まれない。少なくとも脳も体もすっかり休めた週末であったことは確かです。そんな今日この頃。
-
WEB+DB Pressを買いました。 2007-06-27 00:00:00
- WEB+DB PRESS Vol.39
- 作者/アーティスト: WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- メディア: 大型本
- 発売日: 2007-06-22
「「WEB+DB PRESS Vol.39」」を買いました。今回も楽しい記事ばかりです。
-
ひさしぶりにkaeruspoonをちょっと 2007-06-29 00:00:00
p:106:none
ひさしぶりにkaeruspoonの機能をちょっと触りました。今まではリンク元に関して、検索キーワードも一緒に並べていたのだけど、それを分けて検索数も加算して表示するようにしてみました。 -
新宿へ 2007-06-30 00:00:00
仕事帰りにユルさんと新宿で合流しました。人が相変わらず多いですね。

コメント(
リンク元(21)
