tag:blogger.com,1999:blog-8482319960169153792024-03-21T14:44:20.165-04:00Mint's logRSSを全文配信していますUnknownnoreply@blogger.comBlogger93125tag:blogger.com,1999:blog-848231996016915379.post-77580778750236551172010-02-17T21:00:00.001-05:002010-02-17T23:35:25.076-05:00iPhoneが水没してから2日で直るまで<p>自分だけは大丈夫だと思っていたがiPhoneを水没させてしまった。</p><p>無事に直ったので経緯を書いてみたい。</p><h4>水没当日・深夜</h4><p>台所で洗い物をしていたそのとき、iPhoneはポケットに入っていた。</p><p>使った鍋に水をはり、翌日までおいておこうと思ったときに電話がかかってきた。知らない番号だったのですこし動揺し、見事にiPhoneを水でいっぱいの鍋に落とす。</p><h5>したこと1:とにかく拭く</h5><p>タオルでも服でもなんでもよいからまずは見えるところの水をざっと拭き取る。</p><h5>したこと2:電源を切る</h5><p>水がだいたい取れたらすぐ電源を切る。バックライトが点灯しなくなっており画面は真っ暗だったが、かろうじて画面上の文字が読めたので普通に操作をして電源を切れたが、読めない場合は電源ボタンとホームボタンの同時押しで強制終了。</p><h5>したこと3:さらに乾燥</h5><p>ドライヤーの風をiPhoneにあて続けるのが理想なのだが、深夜のドライヤーはうるさいかと思い、暖房を最大出力にした部屋に数時間放置した。</p><h5>したこと4:ジーニアスバーの予約</h5><p>水没した時点で保証も無効となり、ジーニアスバーのできることは限られているのだが、修理を頼むにしろ本体を交換してもらうにしろ結局ジーニアスバーに行かなくてはいけない。2日後の予約が取れた。</p><h5>したこと5:保険の確認</h5><p>入っている損害保険の約款を見て、保険で修理代を出してもらえるか検討。</p><p>「iPhoneの保険なんて入っていない」と言わず、よく考えてみよう。勤務先でわけもわからず入る保険、クレジットカード付帯の保険。もしかしたらiPhone水没も対象かもしれない。</p><h5>したこと6:米に埋める</h5><p>乾燥剤がない場合、iPhoneをじっくり乾かすのには米がいいらしい。洗いたてのiPhoneだからそのまま米びつにつっこもうかと思ったが、自制してジップロックに米をつめ、その中にiPhoneを埋める。</p><h4>水没翌日・午前</h4><p>液晶画面の内部が曇っている。またカメラのレンズ部分に水滴がたまっている。電源を入れてみたいが我慢する。</p><h4>水没翌日・夜</h4><p>恐る恐る電源を入れてみる。この時点でのトラブルは以下のとおり。</p><ul><li>まだ液晶が水滴で曇っている。カメラのレンズにも水滴がある。</li><li>バックライトが点灯せず画面が暗い。</li><li>電池の残量表示が30%になったり0%になったりと不安定。</li><li>画面に「SIMカードが挿入されていない」というエラーが出る。</li></ul><p>電源を切り、翌日のアップルストア訪問に備えて寝る。iPhoneは米に埋もれさせたままだ。</p><h4>水没翌々日・午前</h4><p>電源を入れてみたら無事にSIMカードが認識されている。順調に乾燥が進んでいるようだ。電源を切り、また米に突っ込む。</p><h4>水没翌々日・午後</h4><p>アップルストアに行く前にまた電源を入れた。バックライトが直っているではないか。</p><p>電池の残量表示はまだおかしい。</p><p>水滴はまだ残っているがだいぶ減った。</p><h4>水没翌々日・夜</h4><h5>したこと7:アップルストアのジーニアスバーに行き、正直に話す</h5><p>米袋にiPhoneを入れてアップルストアに行った。ジーニアスバーの担当者は優秀だった。</p><p>「電池の残量がおかしいのは水没のせいだとは言い切れないのでiPhone OSを初期化したい」とジーニアスはもっともらしく言う。</p><h5>したこと8:OSの初期化。ジーニアスがやってくれた。</h5><p>半信半疑ながらOSの初期化をやってもらったら電池の残量表示が見事に直った!</p><p>さらにジーニアスは「一応内部も異常がないか点検したい」と言った。承諾するとジーニアスは15分くらい奥にこもった。戻ってくると「少し湿ってましたが大丈夫みたいです」と言う。</p><p>「$199で本体を交換できますがどうしますか」と言われたので「でも普通に使えるみたいなのでいいです」と言ったらジーニアスは苦笑。</p><p>そのままiPhoneを米袋に入れて家に帰り、夕食を食べてiPhoneを見ると、液晶の曇りもカメラの水滴もなくなっていた。ジーニアスマジックか。</p><p>というわけで水没から2週間。順調に使えています。</p>Unknownnoreply@blogger.com24tag:blogger.com,1999:blog-848231996016915379.post-88121597166557577092009-12-30T11:00:00.000-05:002009-12-30T11:00:02.432-05:00AppleのTime Machineはユーザがログインしていないと動かない<p>LinuxからOS Xに移行してもう2年になる。OS Xの機能を使い倒していないので、まだApple初心者気分は抜けないのだが、たぶん一番よくお世話になっている機能は<a href="http://www.apple.com/jp/macosx/what-is-macosx/time-machine.html" title="アップル - Mac OS X - Mac OS Xとは? - Time Machine">Time Machine</a>である。簡単に書くと、Time Machineは一時間に一回、外付けディスクにファイルのバックアップを取ってくれるものだ。ディスクの破損にも対応できるし、うっかり改変・消去してしまったファイルの復元にも使える。なによりも、OS標準の機能なのがうれしい。</p><p>ところがこのTime Machine、不可解な設計になっていて、<strong>ユーザがログインしていないとバックアップが取れない</strong>のである。バックアップが起こった直後にファイルを編集し、そのままログアウトして寝てしまうと翌朝ログインするまでバックアップが取れないことになる。</p><h4>ユーザがログインしていなくてもバックアップを毎時間取る</h4><p><a href="http://www.macosxhints.com/article.php?story=20080425101239408" title="10.5: Allow Time Machine to run after logout - Mac OS X Hints">Mac OS X Hints</a>にその解説があった。</p><p>それによると、</p><ul><li>Time Machineはユーザがログインしていなくても一時間に一度バックアップを取るようになっている</li><li>OSはユーザがログアウトするとディスクのマウントを外してしまう</li></ul><p>のだそうだ。つまりユーザがログインしていないときにもTime Machineはバックアップを取ろうとするのだが、バックアップ先がない状態になってしまっている。</p><p>対策としてはターミナルで</p><pre>% sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true</pre><p>とする。OSの再起動をして設定を有効にする。</p><p>これでコンピュータをスリープしないようにしておけば、24時間毎時バックアップが取れる。幸せです。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-72405436912475471222009-07-29T22:30:00.001-04:002009-08-21T20:09:06.236-04:00夕焼けとサマータイムと人生と<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-SpFcT-855eer7Yj_ynQx7VFHIDd1L0_PgbmOvqwkpp6Nu0spYLciYKqOXz8xZg5_qi_oVhYCIDNdt2iQB2ZtjFmqaev6WslKchC_I94NLRZOJRkmN6JURcIcHTRNugZq07X40JZUZko/s1600-h/afterglow.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 266px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-SpFcT-855eer7Yj_ynQx7VFHIDd1L0_PgbmOvqwkpp6Nu0spYLciYKqOXz8xZg5_qi_oVhYCIDNdt2iQB2ZtjFmqaev6WslKchC_I94NLRZOJRkmN6JURcIcHTRNugZq07X40JZUZko/s400/afterglow.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5372573300298912242" /></a><br /><p>僕がずっと前に大阪で仕事をしていたときの話である。サービス残業の多い会社で帰宅はいつも10時過ぎだった。部内最年少の僕は残業したところでできることは知れているのだが、かといって先輩より先に帰れるような雰囲気ではなかった。</p><p>当時付き合っていたガールフレンドも電話で話すばかりでなかなか会えなかった。一足先に社会人になっていた彼女は僕の慣れない職場環境を気づかってくれ、文句はまったく言わなかった。僕が電話で話す内容は仕事場のことが中心だった。</p><p>「昨日、イケメンの課長にサシで夕食を食べに行こうと言われたんだ。この課長ならフレンチかイタリアンに違いないと思って行ったのに街の中華料理屋、おまけに最初の注文が餃子5人前とビールで幻滅さ」</p><p>彼女はウフフと笑ってくれた後、「フレンチだなんて、あなたが社会人生活に夢を持ち過ぎよ。でも大企業だと思ってちょっと期待してたけど大したことないのね。でもいいわ私餃子好きだから。今度食べに連れて行ってよ。一緒に夕焼けも見たいし」と言った。<p>倹約デートでいいから会いたい、という彼女なりのメッセージなのだが僕はそれに気づかず「夕焼けはともかく、餃子なんか好きだったっけ?」と彼女の言葉を額面通りに受け取った。</p><p>大阪という所は餃子を食べる場所には事欠かないのだが、夕焼けスポットは隣の神戸と比べると実に乏しい。僕は雑誌と首っ引きで高層ビルのカフェに当たりをつけた。仕事帰りに落ち合い、カフェで夕焼けを鑑賞してから餃子という計画だ。</p><p align="center">◇ ◇ ◇</p><p>さてデートの当日。夕焼けの時間帯から逆算すると6時には退社しなければならないのだが、雑用が多く実際に会社を出られたのは6時20分を回っていた。異例に早い退社なので上司が「おや今日は半休ですか」と嫌味を言っていたが言い返す時間すら惜しんで待ち合わせの場所に向かった。</p><p>遅刻から始まったデート。結論から言えば失敗だった。彼女とようやく高層階のカフェに着いたときは夕焼けはほとんど終わっていた。評判の餃子専門店は客が多過ぎるせいか皮の包み方が雑だった。</p><p>そして僕達の仲も、下手な職人が包んだ餃子の襞がゆっくりはがれるように疎遠になっていった。僕が東京で別の仕事を始めたのは既に二人の関係が終わった後だった。</p><p align="center">◇ ◇ ◇</p><p>今更ながらに思う。</p><p>あのときもし日本にサマータイムがあったら。日没は一時間遅くなり、僕達は夕焼けに照らされたカフェで愛を誓い合ったはずだ。たとえ餃子の味が悪くても、ゆっくり口直しをする余裕があったに違いない。</p><p>サマータイムがないおかげで僕は大阪で家庭を築きそこねたのだ。</p><p>サマータイムに反対の人は一度夕焼けデートをしてみるといいよ。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-34947764606297753882009-07-12T00:00:00.010-04:002011-12-29T20:50:35.981-05:00バンガロールからの週末海外旅行<p>インドのベンガルール(バンガロール)からの海外旅行情報。バンガロールに住む人が週末を使って海外旅行をしようと思ったらどこに行けばいいのだろうか。</p><h4>ベンガルール空港</h4><p>昨年新しい場所に空港ができた。市内から40km(<a href="http://en.wikipedia.org/wiki/Bengaluru_International_Airport" title="Bengaluru International Airport - Wikipedia, the free encyclopedia">Wikipedia</a>)。</p><p>IT都市のはずなのに、<a href="http://www.bengaluruairport.com/" title="Bengaluru International Airport">オフィシャルベージ</a>はちょっと残念な感じ。</p><p>ほとんどの発着便がインド国内線で、国際線の発着は一日20便程度。国内線を乗り継げば行動の幅が広がるが、以下は週末旅行計画のため直行便のみにしぼった。</p><h4>近隣諸国</h4><p>飛行時間は短いが、フライトの時間帯が悪く滞在時間は長くない。</p><p><table><tr><th>目的地<th>国<th>航空会社<th>往路時刻<th>復路時刻<th>所要時間<th>コメント<br />
<tr><td rowspan=2>コロンボ<td rowspan=2>スリランカ<td><a href="http://www.flykingfisher.com/" title="Kingfisher Airlines – India’s only Five Star Airline, rated by Skytrax, book flight tickets online for India, London & Colombo.">Kingfisher Airlines</a><td>土曜日15:00発→16:30着<td>日曜日09:15発→10:45着<td rowspan=2>1時間半<td rowspan=2>日曜日の午前便で帰ってこなければいけない<br />
<tr><td><a href="http://www.srilankan.aero/" title="SriLankan Airlines">スリランカ航空</a><td>金曜日21:15発→22:35着<td>日曜日07:35発→08:55着<br />
<tr><td>マレ<td>モルジブ<td><a href="http://www.indianairlines.in/" title="Air India (IC)">エアインディア</a><td>土曜日10:30発→12:00着<td>日曜日12:50発→15:30着<td>2時間<td><br />
</table></p><h4>中東</h4><p><table><tr><th>目的地<th>国<th>航空会社<th>往路時刻<th>復路時刻<th>所要時間<th>コメント<br />
<tr><td>ドバイ<td rowspan=2>アラブ首長国連邦<td><a href="http://www.emirates.com/" title="Emirates | Welcome to Emirates.com">Emirates</a><td>金曜日18:30発→21:00着<td>日曜日11:45発→17:15着または21:30発→月曜日03:00着<td>4時間<td rowspan=2>日本人は到着ビザを取れる<br />
<tr><td>シャルジャ<td><a href="http://www.airarabia.com/" title="Air Arabia">Air Arabia</a><td>土曜日04:55発→07:10着<td>日曜日22:50発→月曜日04:10着<td>3時間半<br />
<tr><td rowspan=2>マスカット<td rowspan=2>オマーン<td><a href="http://www.indianairlines.in/" title="Air India (IC)">エアインディア</a><td>金曜日18:40発→20:25着<td><br />
<td rowspan=2>3時間半<td>帰りの便が月曜日夜しかないため週末旅行が無理<br />
<tr><td><a href="http://www.omanair.aero/" title="Oman Air - Modern Vision, Timeless Tradition">Oman Air</a><td>金曜日16:20発→18:15着<td>日曜日10:20発→15:20着または月曜日00:40発→05:20着<td><br />
<tr><td>バーレーン<td>バーレーン<td><a href="http://www.gulfair.com/" title="Flights from Bahrain, Hotels and Car Rentals - Gulf Air">Gulf Air</a><td><br />
<td><br />
<td><br />
<td>現在欠航中で10月に再開予定<br />
<tr><td>サウジアラビア<td>ジッダ<td><a href="http://www.saudiairlines.com/portal/site/saudiairlines/Welcome" title="Saudi Airlines > Welcome to Saudi Arabian Airlines">Saudi Airlines</a><td><br />
<td><br />
<td>7時間(リヤド経由)<td>便数が少なく週末旅行は無理</table></p><h4>東南アジア・香港</h4><p>おすすめ。</p><p><table><tr><th>目的地<th>国<th>航空会社<th>往路時刻<th>復路時刻<th>所要時間<th>コメント<br />
<tr><td>バンコク<td>タイ<td><a href="http://www.thaiair.com/" title="Thai Airways - Online Ticket Reservation">タイ航空</a><td>土曜日00:30発→05:55着<td>日曜日21:10発→23:15着<td>4時間<td><br />
<tr><td>クアラルンプール<td>マレーシア<td><a href="http://www.malaysiaairlines.com/splash.aspx" title="Malaysia Airlines - Splash Page">マレーシア航空</a><td>土曜日00:55発→07:35着<td>日曜日22:10発→23:40着<td>4時間<td><br />
<tr><td rowspan=3>シンガポール<td rowspan=3>シンガポール<td><a href="http://home.airindia.in/" title="Welcome To AirIndia">エアインディア</a><td>土曜日00:05発→06:55着<td>日曜日07:50→09:30着<td rowspan=3>4時間<td rowspan=3><br />
<tr><td><a href="http://www.singaporeair.com/saa/index.jsp" title="Welcome to Singapore Airlines: Asia's leading airline with flights serving over 35 countries">シンガポール航空</a><td>金曜日23:05発→土曜日06:10着<td>日曜日20:05→21:50着<br />
<tr><td><a href="http://www.tigerairways.com/" title="Welcome To Tiger Airways">Tiger Airways</a><td>金曜日23:00発→土曜日05:40着<td>日曜日20:30→22:20着<br />
<tr><td>香港<td>中国<td><a href="http://www.dragonair.com/" title="Asia Flights, Asia Pacific Airline Flights - Dragonair">Dragonair</a><td>土曜日02:20発→10:50着<td>日曜日22:20発→月曜日01:20着<td>6時間<td><br />
</table></p><h4>その他</h4><p>これらの都市にもバンガロールから直行便が出ているが、週末旅行は無理だ。</p><p><table><tr><th>目的地<th>国<th>航空会社<th>往路時刻<th>復路時刻<th>所要時間<th>コメント<br />
<tr><td>フランクフルト<td>ドイツ<td><a href="http://www.lufthansa.com/" title="Lufthansa - Flights at low air fares to Europe | No booking fee">ルフトハンザ</a><td rowspan=5><br />
<td rowspan=5><br />
<td>9時間<td rowspan=5><br />
<tr><td rowspan=2>ロンドン<td rowspan=2>イギリス<td><a href="http://www.britishairways.com/travel/globalgateway.jsp/global/public/en_" title="Book Flights, Hotels, Holidays, Car Rental with British Airways - BA.com">ブリティッシュエアウェイズ</a><td rowspan=2>10時間<br />
<tr><td><a href="http://www.flykingfisher.com/" title="Kingfisher Airlines – India’s only Five Star Airline, rated by Skytrax, book flight tickets online for India, London & Colombo.">Kingfisher Airlines</a><br />
<tr><td>パリ<td>フランス<td><a href="http://www.airfrance.com/indexCOM.html" title="Air France">エールフランス</a><td>10時間半<br />
<tr><td>モーリシャス<td>モーリシャス<td><a href="http://www.airmauritius.com/" title="Air Mauritius">Air Mauritius</a><td>14時間</table></p>Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-848231996016915379.post-52643939511462793132009-07-04T23:00:00.001-04:002009-07-04T23:38:05.719-04:00アメリカの法律にも有給の病気休暇はない。これ豆知識な。<p><a href="http://kusoshigoto.blog121.fc2.com/" title="ニートの海外就職日記">ニートの海外就職日記</a>というブログが好きだ。この方はシンガポールで働いておられるが、国の数だけ労働スタイルがあるということを改めて思い知らされる。</p><p>さて最近の<a href="http://kusoshigoto.blog121.fc2.com/blog-entry-269.html" title="「有給休暇の本来の使い方は、遊ぶため」です。 ニートの海外就職日記">「有給休暇の本来の使い方は、遊ぶため」です。</a>という記事はsick leaveについて書かれている。</p><blockquote> 何度も書いて来たけど、海外では「有給とは別に」sick leave(病欠給)というモノがあって、年に2週間(シンガポールの場合。入院の場合は60日)まで取得可能(給料も当然全額出て、診察代も会社持ち)だ。もちろん有給には一切手を付けなくてオッケー。</blockquote><blockquote> 正直、sick leave(病欠給)がない国ってのは聞いた事がない。特に日本は先進国、経済大国wとか言っておきながらsick leave(病欠給)すら定められてなくて、病気で休んだら有給が削られるなんてエグ過ぎるだろ? </blockquote><p>私も最近まで知らなかったが、アメリカの連邦法にも有給のsick leave(病欠)は定められていない。さらに有給休暇の規定さえない。労働政策研究・研修機構の<a href="http://www.jil.go.jp/jil/kunibetu/kiso/2002/america.html" title="労働基礎情報 [ アメリカ ]">レポート</a>によると、</p><blockquote> アメリカでは、労働時間、休憩、休日、年次有給休暇に関して規定する連邦法はない。そのため使用者は、労働組合との労働協約により、労働組合がない場合は労働契約により、所定労働時間等を決めるのが一般的である。</blockquote><p>とある。さらに病欠に関しては、</p><blockquote> 労働者本人の病気、および育児・出産、家族の介護のための休暇を、12カ月の期間中に最長12週間まで、事業主は付与することが義務づけられている。(中略)休暇は無給でよいが、事業主が有給の休暇制度を採用している場合には、その取得分を12週内にカウントすることが認められる。</blockquote><p>だそうだ。平たく言えば「病気になったら有給休暇を使って休んでね、有給休暇がない(もともとない・使ってしまったなど)場合は休んだ日の給料はナシ」ということだ。なお、サンフランシスコなど市のレベルで有給の病欠を義務づけているところはわずかにある。</p><p>もちろん、福利厚生の一環として、有給休暇に加えて有給での病欠を認めている会社も多数ある。</p><h4>豚インフルエンザの影響</h4><p>有給の病欠制度を法律で義務づけようという議論は米国に以前からあったが、この時期になってこれが再燃している。たとえばこの<a href="http://www3.signonsandiego.com/stories/2009/may/02/1n2sick23274-swine-flu-underscores-lack-sick-leave/?uniontrib" title="Swine flu underscores lack of sick leave">APの記事</a>。</p><p>これによると5700万人のアメリカ人が有給の病欠を取ることができず、病気の場合も出勤を余儀なくされている。出勤しないと給料が減らされ、最悪の場合は解雇につながるからだ。ところがそういう人が豚インフルエンザにかかったのにもかかわらず無理をして出勤すると、同僚やお客に接触したり、食べ物を調理したり託児所勤務の場合は子供の相手をしたりすることになる。だから有給の病欠を法律で認めましょう、という論理。</p><p>5700万人といえばアメリカ労働者人口の4割くらいだろう。みんなが安心して病欠できるようにしようというシンガポール式の考えは正論だと思うのだが、これが法律になることができないアメリカの文化というのは難しい。</p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-848231996016915379.post-63700963851558029352009-06-29T00:00:00.001-04:002009-06-29T00:06:22.678-04:00[Perl] CPXXXANプロジェクト<p>CPXXXANは古いバージョンのPerlでも動くCPANモジュールのリストを作ってダウンロードできるようにするという発展途上のプロジェクトである。</p><p>Perlはこの数年でバージョン5.6、5.8、5.10と進化してきたが、未だに5.10より前の古いバージョンを使い続けている人もいる。しかし、5.6のユーザーが普通にCPANに行ってDBIモジュールをダウンロードしても動かない。最新のDBIは5.6に対応していないからだ。CPXXXANはこの問題を解決するべく開発されている。</p><p>CPXXXANという独立したソフトウェアがあるというよりは、Perlのバージョンごとに用意されたURLを通してCPANにアクセスするという言い方が近い。</p><ul><li><a href="http://cp5.5.3an.barnyard.co.uk/" title="CP5.5.3AN: the Comprehensive Perl 5.5.3 Archive Network">CP5.5.3AN</a></li><li><a href="http://cp5.6.2an.barnyard.co.uk/" title="CP5.6.2AN: the Comprehensive Perl 5.6.2 Archive Network">CP5.6.2AN</a></li><li><a href="http://cp5.8.8an.barnyard.co.uk/" title="CP5.8.8AN: the Comprehensive Perl 5.8.8 Archive Network">CP5.8.8AN</a></li></ul><p>さて、CPXXXXANを試してみよう。</p><h4>試す前に環境のテスト</h4><p>普通にCPANシェルを起動して最新のDBIを取得してみる。</p><pre>% cpan<br /> <br />cpan shell -- CPAN exploration and modules installation (v1.94)<br />ReadLine support enabled<br /><br />cpan[1]> get DBI<br />...<br />DBI-1.609/<br />DBI-1.609/Changes<br />DBI-1.609/dbd_xsh.h<br />...</pre><p>最新版の1.609がダウンロードされる。</p><h4>CPXXXANの設定</h4><p>たとえばPerl 5.6.2を使っている場合、CPANのターゲットURLをhttp://cp5.6.2an.barnyard.co.uk/に設定する。</p><pre>cpan[2]> o conf urllist http://cp5.6.2an.barnyard.co.uk/ <br />Please use 'o conf commit' to make the config permanent!<br /><br />cpan[3]> </pre><p>ここで「o conf commit」とすると設定ファイルが上書きされるが、今は試して遊んでいるだけなので上書きはしない。</p><h4>CPXXXANからダウンロード</h4><p>上でCPANのURLを設定した後、</p><pre>cpan[3]> reload index<br />...<br />Fetching with LWP:<br /> http://cp5.6.2an.barnyard.co.uk/authors/01mailrc.txt.gz<br />...</pre><p>としてPerl 5.6用に作られたインデックスファイルを取得する。</p><p>さてDBIをもう一度ダウンロードしてみよう。</p><pre>cpan[4]> get DBI<br />Running get for module 'DBI'<br />...<br />DBI-1.604/<br />DBI-1.604/Changes<br />DBI-1.604/dbd_xsh.h<br />...</pre><p>と、1.604がダウンロードされた。これが5.6.2で動作するDBIの最新バージョンである。</p><h4>まとめ</h4><p>さまざまなしがらみで古いバージョンのPerlを使わざるを得ない人は多い。「古いPerlはサポートしません」というのはモジュール作者の自由だが、このようなやり方で古いPerlのユーザーを救済するやりかたは美しい。正式公開が待たれる。</p><p>ちなみにこのプロジェクトの存在はPerl Seminar NYで教えてもらった。</p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-848231996016915379.post-38723642552263402342009-06-28T01:00:00.004-04:002011-12-29T20:50:39.365-05:00Doodle 4 Googleの展覧会がNYで開催中<p><img src="http://www.google.com/doodle4google/2009/images/doodle_logo.gif"></p><p><a href="http://www.google.com/doodle4google/index.html" title="Doodle 4 Google">Doodle 4 Google</a>とはGoogleのトップページのロゴをデザインするコンテストだ。Google社が米国の高校生以下の子供を対象に開催していて、今年が2回目である。</p><p>現在ニューヨークの<a href="http://cooperhewitt.org/" title="Cooper-Hewitt, National Design Museum">Cooper-Hewitt, National Design Museum</a>という美術館で入選作品を展示しているので行ってきた。</p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG3klOWX7UT0yeL5RsBD5wBBGTxJeNuRbHO_mi6hV-Lm8366NG35P09QorWMqjY2MkS09V_c2_MjnlIyHGXdF0R5vDekPgslv2psbiXqqiCncT7vW_s1rrkrFhXOuHAvKBf6HJhPWUiC4/s1600-h/cooper-hewitt.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG3klOWX7UT0yeL5RsBD5wBBGTxJeNuRbHO_mi6hV-Lm8366NG35P09QorWMqjY2MkS09V_c2_MjnlIyHGXdF0R5vDekPgslv2psbiXqqiCncT7vW_s1rrkrFhXOuHAvKBf6HJhPWUiC4/s320/cooper-hewitt.jpg" alt="Cooper Hewitt" id="BLOGGER_PHOTO_ID_5352238113841275186" /></a><p>同じものが<a href="http://www.google.com/doodle4google/winners_region.html" title="Doodle 4 Google">結果発表のページ</a>で見られるのでどうということはないはずだが、やはりその「もの」を見るのはいい。</p><p>3万点近くの中から選ばれたとあって超力作ばかり。子供らしさを全面に押し出したものよりは、プロのデザイナーのように洗練された作品が多い。</p><p>ちなみにこの美術館、このあたりでは珍しく館内の撮影が禁止だ。</p><p>この日本語のブログを読んでいる人はほとんど日本在住だろうし、ニューヨークの人でさえ「それインターネットで同じのが見られるよ」と言われそうだが、お時間のある方はどうぞ。7月5日まで。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-60943430560345994882009-06-27T02:00:00.001-04:002009-06-27T02:06:43.658-04:00簡体字から繁体字の変換をGreasemonkeyで<p>簡体字の文章を日本の漢字に変換するツールが公開されている。</p><ul><li><a href="http://chalow.net/2009-06-14-1.html" title="[を] 簡体字と日本語漢字の相互変換ツール Kanconvit を公開">[を] 簡体字と日本語漢字の相互変換ツール Kanconvit を公開</a></li><li><a href="http://blog.livedoor.jp/dankogai/archives/51224227.html" title="404 Blog Not Found:javascript - にKanconvitを移植してみた">404 Blog Not Found:javascript - にKanconvitを移植してみた</a></li></ul><p>同じ要領で簡体字から繁体字に変換する方法はないかと探していたら、案の定Greasemonkeyを公開している人がいた。</p><ul><li><a href="http://userscripts.org/scripts/show/38023" title="簡繁轉換 for Greasemonkey">簡繁轉換 for Greasemonkey</a></li></ul><p>ただ、これをそのまま実行すると日本語のページさえ繁体字に変換されてしまう。恋愛が戀愛になってしまうとあまりラブリーな感じがしない。</p><p>完全な解決方法ではないが、スクリプトを1行だけ変えてひらがなが入っているノードは繁体字に変換しないようにした。</p><pre>function traditionalize(cc) {<br /> if (cc.match(/[ぁ-ん]/)) return cc; // ここ<br /> var str="";</pre><h4>繁体字から簡体字への変換</h4><p>その逆に、簡体字への変換を行うGreasemonkeyもある。</p><ul><li><a href="http://userscripts.org/scripts/show/29802" title="繁简转换 for Greasemonkey">繁简转换 for Greasemonkey</a></li></ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-90273471400960154482009-05-31T00:33:00.002-04:002009-05-31T00:46:16.545-04:00海外で働くということ<p>他の国で働こうと他の県に就職しようとそれは大した違いではない。</p><p>その昔、私たちの親の世代が海外で仕事を見つけるのはとても大変なことだった。外国の新聞を買ってきて求人広告を切り抜き、履歴書を封筒に入れてエアメール。国際電話で面接ということになっても電話代が高かった。航空券はもっと高かった。</p><p>今はどうか。世界の求人情報がネットでいくらでも手に入るし、履歴書を送るのも一瞬だ。スカイプもある。十数万円と少しの時間でニューヨークに行ける。</p><p>言葉を別にすれば東京の人が沖縄の仕事を探すのもニューヨークの仕事を探すのも同じことだ。</p><p>これだけ世界が小さくなった今、海外で働くということを特別扱いすることはまったくない。大切なのは自分がどういう人生をどのような環境で送りたいかであって、それは日本か海外かというような単純な二択ではない。世界には二百の国があり無数の都市がある。そして住む場所と働く場所は都市の数だけ選択肢がある。</p><p>ブロードウェイで働きたければニューヨークに住めばよいし、IT業界の先端で仕事をしたければシリコンバレーに引っ越せばいい。大都会に住みたければ東京が世界一だ。ビーチが好きだという理由で沖縄に住むのも良いだろう。もちろん生まれ育った土地が一番良いという人はそれがいい。</p><p>だから、<a href="http://www.chikawatanabe.com/blog/2009/04/future_of_japan.html" title="On Off and Beyond: 海外で勉強して働こう">渡辺さんのブログ</a>のように、日本がダメだから海外で働こうという二択の消去法的な考えには抵抗がある。住むべき場所はやりたいことによって違うし、幸せも人それぞれだ。</p><p>ところで私は日本の将来を悲観していない。そもそも私は日本が好きだし、朝はご飯と味噌汁に限るし、日本は最高の国だと思っている。税金で教育を受けさせてもらった義理もある。どこに住もうとも国を思う気持ちは忘れないし、どうすれば国の役に立てるかを常に考えていたい。</p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-848231996016915379.post-35604686760761230632009-05-24T14:30:00.001-04:002009-05-24T14:35:17.745-04:00一流ブランドのサービスとは<p>ニューヨークのティファニーといえば映画の舞台にもなった五番街の店舗だ。</p><p>かれこれ10年近く前、ティファニーニューヨークの刻印入りキーホルダーをもらったことがある。なかなか使いやすく、それからずっと使っている。鍵をまとめて棒に差し、ネジをしめるシンプルな構造のものだ。</p><p>たとえティファニーとはいえ、長い間使っているとガタがくる。特にネジの部分がゆるくなり、勝手に鍵が外れたりするようになってきた。実害はあまりないので買い替えもせずに使い続けていた。</p><p>さて先日、用事でティファニーに行ってきたときのこと。ふと思い出してキーホルダーを出してみた。</p><p>「これ10年前の品なんですけど似たようなのありますか? ネジが外れるので新しいのを買おうかと思って」</p><p>それを聞いた店員、</p><p>「無料で修理させていただきます」</p><p>そういう返事は予期していず驚いた。</p><p>「悪いですよ、古いもので傷もついてますし」</p><p>店員は言った。</p><p>「ちゃんと磨いて傷も見えなくしますので」</p><p>また驚いた。アメリカでこれだけちゃんとしたサービスを受けるのははじめてだ。</p><p>ブランド好きな人は「一年しか持たないカバンを買うのなら、十倍の値段でエルメスを買って十年使え」という。これは真理かもしれないと思った。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-85436380759126667842009-05-18T00:51:00.004-04:002011-12-29T20:50:52.869-05:00ニューヨークの大統領機低空飛行の件<p>4月下旬の時事通信の記事より。日本でもニュースになったから覚えている方がいるかもしれない。</p><blockquote>大統領機低空旋回で避難騒ぎ=自由の女神背景に撮影-NY<br />
<br />
【ニューヨーク27日時事】オバマ米大統領の専用機が27日、戦闘機を伴ってニューヨーク市上空を低空旋回し、旅客機が高層ビルに突っ込んだ2001年の同時テロを想起した数百人が避難する騒ぎになった。実は軍による写真撮影の一環で、ホワイトハウスは謝罪を表明。</blockquote><p>ちなみにウォールストリートジャーナルの<a href="http://online.wsj.com/article/SB124084127590859371.html" title="Photo Op Turns Into White House Blunder - WSJ.com">記事</a>では数千人が避難したことになっている。こちらが正しい数字だと思う。</p><p>それはともかく。これはひどかった。2001年の同時多発テロのときにニューヨークにいなかった私も鳥肌が立ち体が震えた。</p><p align="center">◇ ◇ ◇ </p><p>月曜日の朝10時。最高気温が30度を超えるという予報のあった快晴の日だ。飛行機の飛ぶ音が随分大きく聞こえるので空を見た。旅客機サイズのボーイング747型機が低空飛行をしていた。</p><p>ニューヨークでは常に飛行機が上空を飛んでいるが、これほど機体が大きく見えるのは普通ではない。さらに飛行機は同じところを小さい半径で旋回している。あたかも突撃するビルに狙いを定めているかのように。</p><p>飛行機の轟音は大きくなり、道を歩いていた人も立ち止まり飛行機を見上げた。その場にいる全員があの日、9月11日のことを思った。</p><p>「戦闘機もいる」</p><p>だれかが叫んだ。ボーイングより機体が小さいので目立たなかったが、F-16戦闘機がボーイングのあとにぴったり着いて一緒に飛んでいる。</p><p>「ボーイングを撃ち落とすんじゃないか?」<br />
「嘘だろ」</p><p>のような会話が聞かれる。</p><p>「逃げろ」</p><p>誰かが言った。</p><p align="center">◇ ◇ ◇</p><p>飛行機が落ちてくるかもしれない状況でどこに避難するかは難しい問題だ。とりあえず大きなビルの近くは避けたほうがよさそうだ。もっとも建物の中からは人が外に退避してきているので近寄れない。しかし、とりあえず建物が少ない場所に移って善後策を考えている間に「この飛行は実は撮影のためのものでした。安全です」という発表がなされた。</p><p>ほんの30分程度のことだったが、避難したほかの人たちと同様、私も死ぬ可能性を少し考えた。人生まだやり残したことがたくさんあるのに、とも思った。</p><p>私は9月11日のテロをテレビでしか見たことがない。それでも恐怖と緊張は言葉で表せないほどだった。テロを知るニューヨーカーがこの撮影に対し怒りを表明していた気持ちはよくわかる。</p><p align="center">◇ ◇ ◇</p><p>スラッシュドット・ジャパンに当を得た<a href="http://slashdot.jp/comments.pl?sid=448548&cid=1556875" title="エア・フォース・ワン、低空飛行でマンハッタン周辺をパニックに陥れる">書き込み</a>があった。</p><blockquote>「○○省が事前の徹底通知をおろそかにしたまま、東京メトロの大きな駅にて、科学防護服を着けた集団を使って写真撮影をおこなう」に等しいことなのかもしれない。(laggnuggさん)</blockquote><p>すばらしい比喩だと思う。</p><p align="center">◇ ◇ ◇</p><p>事件の直後に詳細な体験を書けばよかったのだろうが、とてもその瞬間を振り返る気持ちにならなかった。というわけで3週間たった今、これを書いてみる。</p><h4>動画リンク</h4><ul><li><a href="http://www.youtube.com/watch?v=-TPjJ4PXXMc&NR=1" title="YouTube - Air Force One Flies Over Lower Manhattan, Scaring New Yorkers!">YouTube - Air Force One Flies Over Lower Manhattan, Scaring New Yorkers!</a></li>
</ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-31865262746504380702009-05-13T23:33:00.006-04:002009-05-13T23:39:41.574-04:00ニューヨークではiPhoneから「はてな」が使えない<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbZC4YjFcIboo-o2blRGuBeMeBrBb4_GBSwBmWkzXIpXeVxe-QYeXj1EcPgHXBt_Q6cwmvAucEhb4dTh2-i1Mer_rWNrnNbxynBTSE0oRKY0_WmF5Q6uqCvlOGbfQxkkF8r1ZdXWPYJDY/s1600-h/iphone-hatena1.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 213px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhbZC4YjFcIboo-o2blRGuBeMeBrBb4_GBSwBmWkzXIpXeVxe-QYeXj1EcPgHXBt_Q6cwmvAucEhb4dTh2-i1Mer_rWNrnNbxynBTSE0oRKY0_WmF5Q6uqCvlOGbfQxkkF8r1ZdXWPYJDY/s320/iphone-hatena1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5335517661093074642" /></a><p>タイトルを「ぼくがはてなを使わない理由」にしようかと思ったがやめた。使わないのではなくて使えないのである。</p><p>あまり知られていないことだが、NYでiPhoneのSafariを使うとはてな(www.hatena.ne.jp)につながらない。wwwだけではなくてb.hatena.ne.jpもだめだしd.hatena.ne.jpも、とにかくhatena.ne.jpにはエラーが出てつながらない。</p><p>これは以下の条件で起こるようだ。複数台のiPhoneで再現した。</p><ul><li>アメリカ東海岸</li><li>AT&T経由で接続(3G・EDGEを問わない)</li></ul><p>ニューヨークに限らず、米国東部のボストン、フィラデルフィア、シカゴ、マイアミでも同じだった。逆に中部のミネアポリスではちゃんとつながった。はてなのユーザが多そうな西海岸もきっと大丈夫なのだろう。</p><p>Wi-Fiで接続したらこの問題は起こらないため、キャリアのAT&Tがおかしいのではないかと思う。</p><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEistEhOVZNA0W4ODpugT8jvJgSlC_1OmlsGq00S6mZKorqDh8vXruA8U-GZ76qF9bsjib0Q3IOi9HSdkmo01T-nbPLXP8AJljDnNAOkqrI-XABlJfkPm507Q2ZPX-ZIgkDtrdQvjoDuoPM/s1600-h/iphone-hatena2.png"><img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 231px; height: 320px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEistEhOVZNA0W4ODpugT8jvJgSlC_1OmlsGq00S6mZKorqDh8vXruA8U-GZ76qF9bsjib0Q3IOi9HSdkmo01T-nbPLXP8AJljDnNAOkqrI-XABlJfkPm507Q2ZPX-ZIgkDtrdQvjoDuoPM/s320/iphone-hatena2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5335519111555457570" /></a><p><a href="http://www.mochasoft.dk/iphone_ping.htm" title="Network Ping for iPhone - iPod Touch. Free Lite Version.">Ping</a>というiPhoneアプリケーションを使ってPingしてみたら、案の定Pingができない。ルーティング関係の問題だろうか。</p><p>ニューヨーク周辺からAT&Tの携帯電話ではてなが使えているという方は教えてください。</p><h4>関係ないけれど</h4><p>まだ日本に住んでいたころ、技術系の集まりで会った人にはてなIDを聞かれた。「持ってません」と言ったら信じられないという顔をされたが、そういうわけではてなIDはいまだに持っていない。もっと関係ないけれどミクシィのIDも取らないでいたらこちらは携帯電話が必須になってしまった。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-4624074634320213972009-04-16T23:13:00.002-04:002009-04-16T23:23:06.687-04:00Remedieは15分でインストールできるのか<p>あらかじめ書いておきますがネタです。</p><p><a href="http://overlasting.dyndns.org/2009-01-07-1.html" title="[O] これから15分で Remedie を始めるための資料">[O] これから15分で Remedie を始めるための資料</a>には</p><blockquote> インストール自体は15分で終わらない場合が多いでしょう。</blockquote><p>とある。</p><p>タイトルと中身が矛盾しているが、環境によりけりということのようだ。そこで、果たして本当に15分でインストールできるかどうか、PerlとRemedieを一からインストールしたときの時間を計ってみた。</p><h4>0. 準備</h4><p><a href="http://googlewhacks.blogspot.com/2007/12/gccleopard.html" title="Mint's log: gccをLeopardにインストール">Xcode</a>とgitを入れておく。</p><p>正確に時間を計測するために~/.cpanを削除。</p><pre>% rm -rf ~/.cpan<br />% </pre><h4>1. ActivePerlのダウンロード(30秒)</h4><p>ブラウザで<a href="http://downloads.activestate.com/ActivePerl/MacOSX/5.10/">ActivePerlのサイト</a>からダウンロードしてもいいが、時間を計測するためにcurlを使う。</p><pre>% cd /tmp<br />% time /usr/bin/curl -sO http://downloads.activestate.com/ActivePerl/MacOSX/5.10/ActivePerl-5.10.0.1004-darwin-9.4.0-287188.tar.gz<br />/usr/bin/curl -sO 0.32s user 1.59s system 8% cpu 23.030 total<br />% time tar zxf ActivePerl-5.10.0.1004-darwin-9.4.0-287188.tar.gz<br />tar zxf ActivePerl-5.10.0.1004-darwin-9.4.0-287188.tar.gz 1.45s user 1.17s system 63% cpu 4.144 total<br />%</pre><h4>2. ActivePerlのインストール(15秒)</h4><p>お遊びなので/tmp/activeperlに入れる。</p><pre>% cd ActivePerl-5.10.0.1004-darwin-9.4.0-287188<br />% time ./install.sh --prefix /tmp/activeperl --license-accepted --no-install-html --no-manifest-check<br />....<br />./install.sh --prefix /tmp/activeperl --license-accepted --no-install-html 3.57s user 2.56s system 58% cpu 10.523 total<br />%</pre><p>ついでにパスの設定も行う。</p><pre>% export PATH=/tmp/activeperl/site/bin:/tmp/activeperl/bin:/usr/bin:/bin<br />%</pre><h4>3. Remedieのダウンロード(10秒)</h4><pre>% cd /tmp<br />% time /opt/local/bin/git clone git://github.com/miyagawa/remedie.git<br />....<br />/opt/local/bin/git clone git://github.com/miyagawa/remedie.git 0.44s user 0.30s system 9% cpu 7.754 total<br />%</pre><h4>4. 必要なモジュールのダウンロード(18分)</h4><p>時間を節約するため、依存関係の処理をいちいち聞かないで勝手に処理してくれるように設定。</p><pre>% export PERL_AUTOINSTALL="--defaultdeps"<br />%</pre><p>いざcpanコマンドを実行。途中で5か所プロンプトが出るがリターンを押せばよい。あらかじめ5回リターンを押してもいいはず。ちなみにyesコマンドはLeopardにはついてこないので使わない。</p><pre>% cd remedie<br />% time cpan -i .<br />....<br />M/MS/MSCHWERN/ExtUtils-MakeMaker-6.50.tar.gz is just needed temporarily during building or testing. Do you want to install it permanently? (Y/n) [yes] リターン<br />....<br />*** Press return to continue (or wait 60 seconds) リターン<br />....<br />*** Press return to continue (or wait 60 seconds) リターン<br />....<br />Do you want to build the XS Stash module? [y] リターン<br />Do you want to use the XS Stash by default? [y] リターン<br />....<br />cpan -i . 582.42s user 125.23s system 66% cpu 17:48.14 total<br />%</pre><p>起動。</p><pre>% bin/remedie-server.pl <br />HTTP::Engine::Interface::ServerSimple : You can connect to your server at http://localhost:10010/</pre><h4>まとめ</h4><p>全部で19分。この記事を書くためにActivePerlとRemedieを10回以上インストールしたが、15分を切ることはできなかった。回線の太さよりもmakeのスピードに依存しそうなので、速いコンピュータなら15分でできるかもと思う。</p>Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-848231996016915379.post-74810259195928774532009-04-15T20:56:00.006-04:002009-04-15T21:24:59.342-04:00Remedieをインストール<p>家の前の川に飛行機が飛んできたのは1月のことだ。家にいながらこれにまったく気づかなかったその夜、消防車や救急車の音で窓の外が騒がしいので見てみたら、川の中に飛行機があって驚いた。とりあえず写真を撮って<a href="http://googlewhacks.blogspot.com/2009/01/blog-post_17.html" title="Mint's log: 飛行機救出作戦">ブログ</a>のネタにした。</p><p>飛行機が川に不時着したのはすごいできごとだが、何よりも驚いたのは日本の人たちが事故のことを何時間も前から知っていてTwitterで話題にしていたことだった。</p><p>前にも書いたが私はテレビをほとんど見ない。ニュースは新聞が主な情報源で、インターネットでニュースにアクセスするとしても動画はほとんど見ないテキスト派だ。</p><p>そういう原始人のような生活から脱却するために、奮起して<a href="http://remediecode.org/" title="Remedie">Remedie</a>を入れてみた。</p><h4>1. gitをインストール</h4><p>MacPortsを使っているので簡単インストール。</p><pre># port selfupdate<br /># port install git-core</pre><h4>2. Remedieのダウンロード</h4><p><a href="http://overlasting.dyndns.org/2009-01-07-1.html" title="[O] これから15分で Remedie を始めるための資料">[O] これから15分で Remedie を始めるための資料</a>を見ながらやった。</p><pre>% cd tmp<br />% git clone git://github.com/miyagawa/remedie.git</pre><h4>3. 必要なPerlモジュールのダウンロード</h4><p>まずはRemedieのパッケージにREADME.mkdnというファイルがあるのでそれを読む。「cpan -i .」というコマンドを実行するべしとあるのでそのとおりにするとPerlのモジュールが大量にインストールされる。</p><pre>% cd remedie<br />% cpan -i .</pre><p>インストール済みのモジュールがそれなりに多いせいでトラブルもなく5分くらいで終了。</p><p>README.mkdnというファイル名は初めて見たが、mkdnはMarkdownの略だそうだ。Markdownはお手軽マークアップ言語。</p><h4>4. テストがFAILするので微調整</h4><p>cpan -i .の最後のほうでRemedie自身のテストが行われる。私の環境だとテストが3個Failした。</p><pre>Test Summary Report<br />-------------------<br />t/99_fail.t (Wstat: 256 Tests: 1 Failed: 1)<br /> Failed test: 1<br /> Non-zero exit status: 1<br />t/plagger/plugins/CustomFeed-Script/base.t (Wstat: 1024 Tests: 4 Failed: 4)<br /> Failed tests: 1-4<br /> Non-zero exit status: 4<br />t/plagger/plugins/Discovery-Sites/base.t (Wstat: 256 Tests: 4 Failed: 1)<br /> Failed test: 2<br /> Non-zero exit status: 1<br />Files=41, Tests=236, 57 wallclock secs ( 0.16 usr 0.16 sys + 31.11 cusr 3.77 csys = 35.20 CPU)<br />Result: FAIL<br />Failed 3/41 test programs. 6/236 subtests failed.</pre><h5>t/99_fail.t</h5><p>一番最初のt/99_fail.tはFailになるように設計されているので無視する。</p><h5>t/plagger/plugins/CustomFeed-Script/base.t</h5><p>これはやや複雑で、私のperlが標準のパス(/usr/bin/perl)にないから起こる。t/samplesディレクトリにあるスクリプトを書き替える。</p><pre>% perl -pi.bak -e 's{/usr/bin/perl}{/usr/bin/env perl}' t/samples/*.pl</pre><p>つまり、/usr/bin/perlではなくて自分が使っているほうのPerlを呼び出すようにする。</p><h5>t/plagger/plugins/Discovery-Sites/base.t</h5><p>このテストは実行するたびにFailしたりしなかったりする曲者である上にVeohなんて初めて使ったから自信がないのだが、t/plagger/plugins/Discovery-Sites/base.tをこのように書き替えたらエラーが出なくなった。</p><p>変更前</p><pre>like $context->update->feeds->[0]->entries->[0]->thumbnail->{url}, qr/ll-images/;</pre><p>変更後</p><pre>like $context->update->feeds->[0]->entries->[3]->thumbnail->{url}, qr/(ll-images|img\.youtube|thumbnails\.cbsig|www\.mtv\.com)/;</pre><h4>5. 再テスト</h4><p>同じコマンドを再度実行し、t/99_fail.t以外は大丈夫なことを確認する。</p><pre>% cpan -i .<br />(略)<br />Test Summary Report<br />-------------------<br />t/99_fail.t (Wstat: 256 Tests: 1 Failed: 1)<br /> Failed test: 1<br /> Non-zero exit status: 1<br />Files=41, Tests=250, 60 wallclock secs ( 0.16 usr 0.16 sys + 31.77 cusr 3.91 csys = 36.00 CPU)<br />Result: FAIL<br />Failed 1/41 test programs. 1/250 subtests failed.</pre><h4>6. Remedieを起動</h4><pre>% ./bin/remedie-server.pl<br />Mouse::Meta::Class::__ANON__::SERIAL::1: You can connect to your server at http://localhost:10010/</pre><h4>7. フィードを追加</h4><p>Remedieのページ(http://localhost:10010/)にアクセスすると真っ黒の画面が出るので、「New」を押してフィードを登録する。</p><p>まずは地元のテレビ局<a href="http://ny1.com/" title="NY1 | 24 Hour Local News | Top Stories">ny1.com</a>を登録してみる。NY1のサイトに行ってRSSのURLを見つければいいのだけれど、もしかしてと思い直接「ny1.com」を入れてみる。</p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwxDVdtu87F0WE75ut53Cih9kVWDfAwvuXqERg6HC9AY41hsjoquZd5-sXTwCA8u2aBMMeUyCxu4gE3zGREA051klYUQN7YYTcEvxZTElEZC6tncJvqwmRiOfONo-hcS_qspQplR3ajyc/s1600-h/Remedie1.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwxDVdtu87F0WE75ut53Cih9kVWDfAwvuXqERg6HC9AY41hsjoquZd5-sXTwCA8u2aBMMeUyCxu4gE3zGREA051klYUQN7YYTcEvxZTElEZC6tncJvqwmRiOfONo-hcS_qspQplR3ajyc/s400/Remedie1.png"></a><p>ちゃんとRSSのURLを見つけてくれた。これには感動。</p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Y4bv1BcninDaW7LBlLA63YtHlA-XciUQa4NQ57upfRJapQV8Tru44Z1mh9pXNPBA5q8G_Qn3h-tOl5l7YsCx_WwAGW4f3mmxISJqpYONwcQRUmxwjhewxRs5ZXxwqg_sMOm7sAIt13c/s1600-h/Remedie2.png"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Y4bv1BcninDaW7LBlLA63YtHlA-XciUQa4NQ57upfRJapQV8Tru44Z1mh9pXNPBA5q8G_Qn3h-tOl5l7YsCx_WwAGW4f3mmxISJqpYONwcQRUmxwjhewxRs5ZXxwqg_sMOm7sAIt13c/s400/Remedie2.png"></a><p>というわけで今年度の目標は、日本在住の人よりも早くNYのニュースをキャッチすることです。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-3773132348209664052009-04-14T21:08:00.002-04:002009-04-14T23:17:27.850-04:00リチャード・ストールマンの講演に行ってきた<p>Richard Stallmanといえばフリーソフトウェアの神様のような存在だ。今回その神様がニューヨークで講演をするとのことで、先日、本人を見に行ってきた。批判の多い人でもあるしそれほど興味の対象でもなかったのだが一度くらいは顔を見ておこうと思ったのだ。話を聞いてみるとやはり氏は偉大な思想家だった。</p><p>会場はニューヨークにあるYeshiva Universityの講堂で、参加者は200人くらい。募金などもない完全無料のイベントで、講演後はパーティーまであった。スポンサーがいるのだろうか、ありがたいことである。</p><p>講演の内容はソフトウェアの自由と著作権の歴史について。</p><ul><li>フリーソフトウェアの「フリー」は自由という意味。</li><ul><li>無料という意味ではない(有償のフリーソフトウェアはありうる)</li></ul><li>フリーソフトウェアのユーザには以下の自由があるべきだ</li><ul><li>プログラムを実行する</li><li>プログラムの内部を解析する(=ソースコードを読む)</li><li>プログラムを手を加えずに再配布する</li><li>プログラムを改変して再配布する</li></ul><li>フリーでないソフトウェア(proprietary software)はユーザの自由を制限し、ユーザ同士を分断する</li></ul><p>著作権の話はアメリカ特有の話が多かったが、要点を拾いだすとこうなる。</p><ul><li>古代には著作権の概念はなかった</li><li>現代では著作権の保護期間は延長される一方</li><ul><li>一部企業の政治活動も関係している(ディズニーなど)</li></ul><li>著作権は本来著作者に独占的に使用する権利を保証して技術の進歩を促進するためのもの</li><ul><li>アメリカ合衆国憲法第1条</li></ul><li>ところが現代では著作権を保護しすぎて視聴者の権利が阻害されている</li><ul><li>DRM(デジタル著作権管理)、DVDの暗号化</li></ul></ul><h4>質疑応答から</h4><p>質問「最近はどの言語でプログラムを書いていますか」<br>Richard「時間がなくて実はコードはほとんど書いてないのです」</p><p>質問「これだけフリーなOSがある中、どうしてみんなMS Windowsを使っているのでしょう」<br>Richard「多くの職場で求められるスキルはWindowsですから学校でもWindowsしか教えません。Windowsの教育を受けた人が社会に出て職場にWindowsを導入するというサイクルができています」</p><h4>その他</h4><p>GNUの発音はグニューかグヌーかヌーかというような話が昔からあるがRichard本人はグニューと発音していた。本来ヌーとGなしで発音するはずのgnuのぬいぐるみもグニューと呼んでいた。</p><p>学者タイプの人によくあるように、言葉の使い方に厳しい。質問者「オープンソースソフトウェアが……」Richard「フリーソフトウェアと言ってください」なおcreatorという言葉もお好きではないそうで、authorかartistと呼ぶべきとのことだった。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-44457149617351543062009-03-29T22:01:00.007-04:002009-03-29T22:35:43.496-04:00世界各地のYAPCはおいくら?<p>春が来た。コンピュータ関係のカンファレンスは春から秋にかけて行われるため、今年はどこに行こうかと考える時期でもある。ふと思い立って北米・ヨーロッパ・アジア(日本)のPerlカンファレンス、YAPCについて参加費を計算してみたくなった。</p><h4>生データ</h4><p>まずは通貨換算をする前の生データから。</p><p><table><tr><th><br><th>YAPC::NA<th>YAPC::EU<th>YAPC::Asia<tr><th>1999<td align="right">USD 60<td align="right"><br><td align="right"><br><tr><th>2000<td align="right">USD 75<td align="right">GBP 40<td align="right"><br><tr><th>2001<td align="right">USD 85<td align="right">EUR 99<td align="right"><br><tr><th>2002<td align="right">USD 85<td align="right">EUR 89<td align="right"><br><tr><th>2003<td align="right">USD 85<td align="right">EUR 99<td align="right"><br><tr><th>2004<td align="right">USD 85<td align="right">GBP 65<td align="right"><br><tr><th>2005<td align="right">USD 85<td align="right">EUR 89<td align="right"><br><tr><th>2006<td align="right">USD 100<td align="right">GBP 75<td align="right">JPY 4000<tr><th>2007<td align="right">USD 100<td align="right">EUR 100<td align="right">JPY 4000<tr><th>2008<td align="right">USD 100<td align="right">DKK 900<td align="right">JPY 3500<tr><th>2009<td align="right">USD 150<td align="right">EUR 100<td align="right"><br></table></p><p>USD=米ドル、JPY=円、EUR=ユーロ、GBP=英ポンド、DKK=デンマーククローネ。</p><p>ヨーロッパのYAPC::EUは大体100ユーロ前後、北米YAPC::NAは100ドル前後でどちらもゆるやかに増加している。</p><h4>円に換算してみる</h4><p>開催初日の為替レートをもとに計算してみた。</p><p><table><tr><th><br><th>YAPC::NA<th>YAPC::EU<th>YAPC::Asia<tr><th>1999<td align="right">7286円<td align="right"><br><td align="right"><br><tr><th>2000<td align="right">7911円<td align="right">6087円<td align="right"><br><tr><th>2001<td align="right">10377円<td align="right">10862円<td align="right"><br><tr><th>2002<td align="right">10206円<td align="right">10585円<td align="right"><br><tr><th>2003<td align="right">9999円<td align="right">13366円<td align="right"><br><tr><th>2004<td align="right">9351円<td align="right">12804円<td align="right"><br><tr><th>2005<td align="right">9297円<td align="right">12109円<td align="right"><br><tr><th>2006<td align="right">11607円<td align="right">16630円<td align="right">4000円<tr><th>2007<td align="right">12355円<td align="right">15886円<td align="right">4000円<tr><th>2008<td align="right">10821円<td align="right">19779円<td align="right">3500円<tr><th>2009<td align="right">14681円<td align="right">13011円<td align="right"></table></p><p>グラフは<a href="http://chart.apis.google.com/chart?chtt=YAPC+Attendance+Fee+(JPY)&chts=000000,12&chs=800x200&chf=bg,s,ffffff|c,lg,0,ffffcc,1,ffffff,0&chxt=x,y&chxl=0:|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|1:|0|5000|10000|15000|20000&cht=bvg&chd=t:36.43,39.56,51.88,51.03,49.99,46.75,46.49,58.04,61.78,54.11,73.4|0,30.43,54.31,52.92,66.83,64.02,60.55,83.15,79.43,98.9,65.06|0,0,0,0,0,0,0,20,20,17.5,0&chdl=NA|EU|Asia&chco=ccffcc,9999ff,ffcc66&chbh=15">こちら</a>。</p><p><a href="http://chart.apis.google.com/chart?chtt=YAPC+Attendance+Fee+(JPY)&chts=000000,12&chs=800x200&chf=bg,s,ffffff|c,lg,0,ffffcc,1,ffffff,0&chxt=x,y&chxl=0:|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|1:|0|5000|10000|15000|20000&cht=bvg&chd=t:36.43,39.56,51.88,51.03,49.99,46.75,46.49,58.04,61.78,54.11,73.4|0,30.43,54.31,52.92,66.83,64.02,60.55,83.15,79.43,98.9,65.06|0,0,0,0,0,0,0,20,20,17.5,0&chdl=NA|EU|Asia&chco=ccffcc,9999ff,ffcc66&chbh=15"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjobQtaDDqJSl4aOSQ093ZFASlWS1DiCrB9aghVqwsbN50944QQ0uWUBjrZlp3C_7a6lox60mnPVjcoN6sB13UkVLM2XeCxrufIisboWL4C0cRC76F6ha8JvFsDjQ9epEThBePjdaav5t8/s400/yapc-fee.png"></a></p><p>まず目を引くのがヨーロッパの値上がりである。これはヨーロッパ通貨の値上がりによるところが大きい。デンマークで開催された2008年などは参加費が20000円近くに達している。</p><p>それにしてもYAPC::Asiaの安いこと。開催日数やノベルティの違いなど各国のYAPCを単純比較はできないが、それにしても低価格だ。会計報告を読むとスポンサー収入の違いかと思う。</p><h4>マクドナルドで比較</h4><p>円換算だと各国の物価・購買力が統計に現れないので、2008年のYAPC参加費をビッグマックの個数で比較してみよう。たとえば、YAPC::NA 2008の参加費用はアメリカのビッグマック(USD 3.57)28個分にあたる。</p><p><table><tr><th><th>参加費(現地通貨)<th>参加費(円)<th>ビッグマック<tr><th>YAPC::NA<td align="right">USD 100<td align="right">10821<td align="right">28個分<tr><th>YAPC::EU<td align="right">DKK 900<td align="right">19779<td align="right">32個分<tr><th>YAPC::Asia<td align="right">JPY 3500<td align="right">3500<td align="right">12.5個分</table></p><p>円換算だとYAPC::EUはYAPC::NAの倍近い価格だが、ビッグマック換算だと大差がないことがわかる。Asiaと他のYAPCは差が縮まったが、それでもNAとEUの半額以下である。</p><h4>YAPC::EUについて</h4><p>上の数字を見るとYAPC::EUは高価格に見えてしまうのはやむをえないが、若手参加者に対する配慮が一番大きいことを特筆しておきたい。</p><ul><li>学割制度が充実している。2009年のYAPC::EUは学割40ユーロ。一般価格に比べ半額以下である。</li><li>YAPC::EUの参加者有志が<a href="http://www.send-a-newbie.com/" title="Home">Send-a-Newbie</a>というサイトを始めた。航空券・宿泊費などの補助が必要な25歳未満のYAPC::EU参加者にお金を出し合って応援しようという趣旨である。</li></ul><h4>参考URL</h4><ul><li>YAPC参加費</li><ul><li>YAPC::NA:<a href="http://www.yapc.org/America/previous-years/1999/" title="yapc: yet another perl conference: Carnegie Mellon University, Pittsburgh, PA">1999</a>、<a href="http://www.yapc.org/America/previous-years/19100/" title="yapc: yet another perl conference: Carnegie Mellon University, Pittsburgh, PA">2000</a>、<a href="http://www.yapc.org/America/previous-years/2001/" title="YAPC 2001: Yet Another Perl Conference">2001</a>、<a href="http://www.yapc.org/America/previous-years/2002/" title="YAPC 2002: Yet Another Perl Conference">2002</a>、<a href="http://www.yapc.org/America/previous-years/2003/" title="YAPC 2003: Yet Another Perl Conference">2003</a>、<a href="http://www.yapc.org/America/previous-years/2004/" title="YAPC 2004: Yet Another Perl Conference">2004</a>、<a href="http://www.yapc.org/America/previous-years/2005/" title="YAPC 2005: Yet Another Perl Conference">2005</a>、<a href="http://www.yapc.org/America/previous-years/2006/about-yapc/index.html" title="YAPC::NA 2006 » About YAPC">2006</a>、<a href="http://conferences.mongueurs.net/yn2007/about.html" title="What is YAPC?">2007</a>、<a href="http://conferences.mongueurs.net/yn2008/" title="YAPC::NA 2008">2008</a>、<a href="http://yapc10.org/yn2009/" title="Home - YAPC|10 - Pittsburgh - June 22-24, 2009">2009</a></li><li>YAPC::EU:<a href="http://markmail.org/message/t445owyrvsxlkn7p" title="YAPC::Europe - Call for Participation (fwd) - al...@lurk.org - org.perl.midi - MarkMail">2000</a>、<a href="http://www.yapceurope.org/2001/registration.html" title="YAPC::Europe 2001: Yet Another Perl Conference">2001</a>、<a href="http://www.mail-archive.com/yapc-europe@lists.dircon.co.uk/msg01253.html" title="ANNOUNCE: YAPC::Europe::2002 (Munich) - Second Call for Participation">2002</a>、<a href="http://conferences.mongueurs.net/ye2003/cfp.html" title="Call for Participation - Y::E 2003">2003</a>、<a href="http://belfast.yapc.org/register/" title="YAPC::Europe::2004">2004</a>、<a href="http://braga.yapceurope.org/" title="YAPC::EU::2005 - Kwiki">2005</a>、<a href="http://www.yapceurope.org/2006/nlet/item/pr090.html" title="YAPC::Europe::2006 - Birmingham, UK - 30th August, 31st August & 1st September">2006</a>、<a href="http://vienna.yapceurope.org/ye2007/" title="YAPC::Europe 2007 in Vienna | YAPC::EU | 2007 | Vienna | 28th to 30th August 2007">2007</a>、<a href="http://www.yapceurope2008.org/ye2008/" title="YAPC::Europe 2008">2008</a>、<a href="http://yapceurope2009.org/ye2009/wiki?node=newsletter3" title="Wiki - newsletter3">2009</a></li><li>YAPC::Asia:<a href="http://tokyo.yapcasia.org/blog/ja/2006/02/yapc.html" title="YAPC::Asia 2006 Tokyo (Japanese) - YAPC チケット発売開始">2006</a>、<a href="http://tokyo2007.yapcasia.org/blog/ja/" title="YAPC::Asia 2007 Tokyo - April 4-5 2007 (Japanese)">2007</a>、<a href="http://conferences.yapcasia.org/ya2008/news" title="News: YAPC::Asia 2008 - May 15-16th in Tokyo, JAPAN">2008</a></li><li>なお、早売り割引・当日の割増料金など価格の変動がある場合がある。そのような場合、開催日前の販売最終日に購入した場合の価格を基準にした。YAPC::Asia 2008の追加販売は考慮していない。</li></ul><li>為替レート</li><ul><li><a href="http://www.forexrate.co.uk/forexhistoricaldata.php" title="Forex Historical Data">Forex Historical Data</a></li><li><a href="http://www.oanda.com/convert/fxhistory" title="FXHistory - Historical Currency Exchange Rates">FXHistory - Historical Currency Exchange Rates</a></li><li>2009年のYAPCのみ3月27日の為替レートを適用した。</li></ul><li>ビッグマック指数</li><ul><li><a href="http://www.economist.com/finance/displaystory.cfm?story_id=11793125" title="Big Macs reveal Europe's strong currencies | Sandwiched | The Economist">Big Macs reveal Europe's strong currencies | Sandwiched | The Economist</a></li></ul><li><a href="http://module.jp/dist/yapcasia2008-LT-oyama.pdf" title="YAPC::Asia 2006..2008 会計報告">YAPC::Asia 2006..2008 会計報告(PDF)</a></li></ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-11670279861301501472009-03-25T23:03:00.002-04:002009-04-07T21:46:56.483-04:00アメリカ人「日本人なのにアニメを見ないのは人生の無駄づかいだな」<p>日本人だからアニメを見るだろうと言われても困るのである。</p><p>海外のアニメファンにとって日本といえばまずアニメという連想が働くらしく、日本人の私は親しげに話しかけられる。日本人は全員アニメが好きだと思っているアメリカ人さえいるが、アニメが好きかどうか以前に私は映像作品自体をほとんど見ない。DVDを買ったことはないし最後に映画を見たのは10年前のことだ。</p><p align="center"> ◇ ◇ ◇</p><p>友人にP君という人がいる。ユダヤ系のアメリカ人で超真面目な男であるが、日本のアニメが大好きである。このP君、私が唯一の日本人の友達なのでいつも構ってほしがる。</p><p>P君「ナルトのDVDは全部持ってるし英訳の単行本もあるんだけど日本語の単行本がほしい。どこで買えるのかな」</p><p>日本語の単行本のほうが話が先に進んでいるから日本語で読みたいらしい。ニューヨークにある紀伊國屋書店で聞いてみればいいのでは。</p><p>P君「デスノートのあの部分には矛盾があると思うんだが、なぜかというと、……」</p><p>ごめん、デスノートという言葉自体初めて知った。</p><p>P君「ユーギオーの続編は出ないのかな」</p><p>続編もなにも、私は本編を知らない(註:米国では一年だけテレビ放映されたそうです)。</p><p align="center"> ◇ ◇ ◇</p><p>あまりに話が噛み合ないので申し訳ないと思い、提案をしてみた。</p><p>私「最近のアニメは知らないけど、20年以上前のアニメならわかると思うよ」</p><p>目を光らせるP君。</p><p>P君「じゃあ君、ジャイガンターは知っているね」</p><p>私「そんなの知らないよ」</p><p>P君「日本語だとタイトルが違うのかな。ちょっとiPhone貸してみて。YouTubeで検索してみよう」</p><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/Ti2bbtN_HwU&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Ti2bbtN_HwU&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p><p>鉄人28号! これなら知ってる。異国アメリカでジャイガンターという名前になっていたとは。</p><p>P君「ジャイガンターは僕たちが生まれる前からアメリカのテレビで放映してたよ。主人公の少年はジミーだ」</p><p>ショータローじゃないのか。本当に詳しいなこの人。</p><p align="center"> ◇ ◇ ◇</p><p>P君「それにしても、日本人のくせにアニメ見ないって本当に信じられない。人生の無駄遣いしてるよ」</p><p>そこまで言うか。</p><p>ちなみにP君の夢は日本を訪れて秋葉原と三鷹の森ジブリ美術館に行くことである。</p>Unknownnoreply@blogger.com6tag:blogger.com,1999:blog-848231996016915379.post-86094863222331756612009-03-03T21:30:00.002-05:002009-03-04T21:10:00.304-05:00MacPortsのselfupdateを忘れた→はまる<p>MacPortsは各portのバージョンや依存関係といった情報をローカルなファイルに保存している。そのportがインストールされていなくても、である。これがちょっとした問題になることがある。</p><p>結論を先に書くと、selfupdateは定期的に実行しなければいけない。</p><h4>例1:ローカルの情報が古いと旧バージョンのportがインストールされる</h4><p>caml-sqlite3というportを例に説明してみる。現時点でcaml-sqlite3の最新版は<a href="http://trac.macports.org/browser/trunk/dports/devel/caml-sqlite3/Portfile" title="/trunk/dports/devel/caml-sqlite3/Portfile - MacPorts">1.3.0</a>だ。</p><p>ところが、私の環境でcaml-sqlite3を入れようとすると1.2.0を取りに行く。</p><pre># port -v fetch caml-sqlite3<br />---> Fetching caml-sqlite3<br />---> ocaml-sqlite3-1.2.0.tar.gz doesn't seem to exist in /opt/local/var/macports/distfiles/caml-sqlite3<br />---> Attempting to fetch ocaml-sqlite3-1.2.0.tar.gz from http://www.ocaml.info/ocaml_sources/</pre><p>こうなるのは、私のLeopard上にあるPortfileが古いからだ。このファイルはMacPortsをインストールしたときに作成されている。</p><pre># grep version /opt/local/var/macports/sources/rsync.macports.org/release/ports/devel/caml-sqlite3/Portfile <br />version 1.2.0<br />distname ocaml-sqlite3-${version}<br />#</pre><h4>例2:portがインストールできないこともある</h4><p>上の場合は旧バージョンの1.2.0がまだ1.3.0同様<a href="http://distfiles.macports.org/caml-sqlite3/" title="Index of /caml-sqlite3">ダウンロードできる</a>のでまだ良いが、portによっては旧バージョンがダウンロードできない場合もある。p5-errorがその例だ。</p><pre># port install p5-error<br />---> Fetching p5-error<br />---> Attempting to fetch Error-0.17012.tar.gz from http://ftp.ucr.ac.cr/Unix/CPAN/modules/by-module/Error<br />(略)<br />Error: Target org.macports.fetch returned: fetch failed<br />Error: Status 1 encountered during processing.<br />#</pre><p>port installの裏側ではError-0.17012.tar.gzを取りに行っているのにサーバ側には最新版(<a href="http://trac.macports.org/browser/trunk/dports/perl/p5-error/Portfile" title="/trunk/dports/perl/p5-error/Portfile - MacPorts">0.17015</a>)しかないためにダウンロードが失敗している。</p><h4>解決方法</h4><p>上の問題を解決するにはselfupdateというコマンドを実行する。</p><pre># port selfupdate</pre><p>出力はこれのどちらかになるようだが</p><ul><li>selfupdate done!</li><li>The MacPorts installation is not outdated so it was not updated</li></ul><p>どちらにしても/opt/local/var/macports/sources/rsync.macports.org/release/ports/以下のファイルが更新される。</p><p>selfupdateを行った後に先のcaml-sqliteでもう一度試してみると無事1.3.0をダウンロードしてくれる。</p><pre># port -v fetch caml-sqlite3<br />---> Fetching caml-sqlite3<br />---> ocaml-sqlite3-1.3.0.tar.gz doesn't seem to exist in /opt/local/var/macports/distfiles/caml-sqlite3<br />---> Attempting to fetch ocaml-sqlite3-1.3.0.tar.gz from http://www.ocaml.info/ocaml_sources/</pre><h4>selfupdateは定期的に実行する</h4><p>今までselfupdateはその名前からして/opt/local/bin/portのバイナリを更新するだけのものだと思っていたが、実はそうではなかった。<a href="http://trac.macports.org/wiki/UsingMacPortsQuickStart" title="UsingMacPortsQuickStart - MacPorts">MacPortsのWiki</a>にこうある。</p><blockquote> Selfupdate is the command used to automatically download new Portfiles so that your local copy of MacPorts is aware of new MacPorts software or upgrades to existing software that have been committed to the MacPorts infrastructure. Additionally, this command is used to update the MacPorts software itself - think of it is a Software Update, like its name suggests.</blockquote><p>(抄訳)selfupdateコマンドを使うと更新のあったPortfile群をダウンロードできる。さらに、selfupdateの名前のとおり、インストールされているMacPortsのバイナリ自身を更新する。</p><blockquote> Selfupdate is a command that can safely be scheduled to automatically run, as it doesn't actually update your installed software, it just "teaches" MacPorts about new updates. Take a look at using crontabs to run your selfupdate. </blockquote><p>(抄訳)selfupdateコマンドは更新情報をダウンロードするだけのものなので実際にソフトウェアの更新を行うわけではない。そのため自動的に実行しても安全だ。</p><p>実行しても安全というか、実行しないと更新情報が同期できないのだ。</p><h4>私のcronの設定</h4><p>rootのcrontabをこのように設定した。</p><pre># 毎日午前1:23にselfupdateを実行<br />23 1 * * * /opt/local/bin/port selfupdate</pre><h4>どこか気持ち悪い</h4><p>上記をまとめると、</p><ul><li>MacPortsを安心して使うにはport selfupdateの実行が不可欠</li><li>selfupdateはcronで定期的に走らせるのが一番</li></ul><p>となるのだがどうにも気持ち悪い。</p><p>ウェブの世界に例えると、ローカルに保存されたPortfileはHTTPのキャッシュに近いが、自分でキャッシュの更新(selfupdate)をしない限りブラウザが永遠に古いキャッシュを参照しているという状態になっている。Yahooで昨日の検索結果が表示されるのは構わないが、昨日の天気予報が出てくるのはいやだ。</p><p>サーバの更新情報をローカルに保存する仕組みの是非はともかく、ユーザが何もしないとその情報が更新されないのが腑に落ちない。MacPortsは他のところがうまくできているので、不思議でならない。サーバ側で走らせるデーモンをrsyncだけにしたかったのだろうか。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-73989657898968917862009-02-16T01:01:00.002-05:002009-02-16T01:05:59.555-05:00私が博士課程に進学しなかった理由<p><a href="http://blackshadow.seesaa.net/article/97414722.html" title="幻影随想: ブログでバイオ 第41回「私が博士課程に進学しなかった理由」">幻影随想: ブログでバイオ 第41回「私が博士課程に進学しなかった理由」</a>という記事がおもしろい。私が同じ問題で悩んだのはかれこれ一昔前の話だが、私が博士課程に進学せずに企業に就職した理由を書いてみたい。</p><h4>1. リスクの話</h4><p>もともと私はあまり考えずに行動するクセがある。穴があれば入ってみるし穴がなければ掘ってみる。考えずに行動して困るのはいつものことで慣れっこなのだが、リスク管理は大事である。後悔しなくてすむよう、選択を間違えた場合のことを少し考えた。</p><p>博士課程を1年で中退して企業に就職するのと、企業を1年で退職して博士課程に入るのとどちらがやりやすいだろうか。私の結論はとりあえず企業に就職、向いていないと思ったら大学に復学することだった。博士課程を中退したら第二新卒とやらの就職活動をせねばならず、なにかと大変そうだ。逆に企業をやめて博士課程に入るのは、同じ研究室に入り直すのならば簡単、出身大学の同じ学部でもなんとかなると思っていた。</p><p>もちろん、修士課程から1年のブランクを経て博士課程に戻り、元同級生に追いつくのは言うほど簡単ではない。将来間違いなく戻ってこられるよう、修士の段階で研究の成果は出しておくように努めた。</p><h4>2. 大学だけが研究の場所ではない</h4><p>研究は好きだった。ただ、「研究をするために博士課程に残る」という考え方は説得力がなかった。企業で研究者になっても良いし、仕事が終わってから自分の研究を家で細々とやっても楽しい。幸い私の専門分野は実験器具がいらない情報系だったため、自分の研究はどこでもできた。大学にあって家にないものといえば図書館と研究仲間・先生だが、大抵の論文はオンラインで手に入るしインターネットで世界中の研究者と議論もできる。</p><h4>3. 海外の大学に行ってみたかった</h4><p>私は国産品主義の日本びいきなのだが、残念なことに私の研究分野はアメリカが一歩進んでいた。先輩を見ても優秀な人はほとんど海外の大学に留学・就職していた。さらに残念なことに私は英語がそれほどできるわけではないので修士の時点では留学は遠い存在だった。もちろん英会話が苦手でもそれなりの論文を英語で量産すれば自然に道は開けるのだろうが、英語をきちんと学べる環境が大学にはなかった。特に英語でアカデミックな内容を議論する場がなかった。</p><p>企業に入れば無料英語研修もあるだろうし、なによりも留学費用が稼げる。会社の負担で留学をさせてくれるありがたい企業もある。</p><h4>4. 博士課程の3年は長過ぎた</h4><p>世間の基本は博士課程3年。博士課程はちゃんとした研究をして論文を書けばいつでも修了できてよさそうなものだが、3年間は勤め上げなければいけないことになっている。大学・学部によっては2年で出してくれるところもあるが、私の学部はどれだけ論文を書こうと3年がルールだった。3年という時間は貴重な20代の中では長過ぎる。</p><p>もちろん3年間正しく拘束されて一つの研究を仕上げるのが博士課程の意義であるし、さらにこの間には人脈を作ったり博士論文目的以外の研究をしたりできるので別に3年間を無意味に過ごすわけではないが、余分に3年を大学で過ごそうという気にならなかった。</p><h4>実際には</h4><p>修士課程を修了する少し前から会社に入った。研究も面白かったが仕事はさらに面白く、結局大学に戻ることはなかった。研究も私的に続けたが飽きて数年でやめてしまったので、結果的に就職したことが正しい選択だったのだろう。</p><p>留学は社会人3年目くらいまでは考え続けていたが、海外で勉強をするくらいなら海外で就職するほうが楽しいだろうと思い直し、アメリカで仕事を見つけ今に至っている。</p><p>余談だが、ニューヨークに住むようになったあと、私が修士を取った分野の研究をしている大学の先生と偶然知り合った。「うちでドクター取らない?」と本気だか冗談だかわからない調子で勧誘された。ちょっと心が動いた。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-5061128683853201642009-01-17T23:48:00.007-05:002009-01-18T00:02:38.360-05:00飛行機救出作戦<p>うまくいきますように</p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Q8ebRMnSY6byoVu-NyG5g7lqleYJojDPOcMAYHxoGBw7f2Hl6Ok2BUjW9m2g1h82nvPt23eDAr_Gc-ZrDnYgLwAie3eCDqxDyxXEya-q6o3WYVaTu-vlTw2ZyxoA5PL77nJKKhD_2bc/s1600-h/1549-4.jpg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_Q8ebRMnSY6byoVu-NyG5g7lqleYJojDPOcMAYHxoGBw7f2Hl6Ok2BUjW9m2g1h82nvPt23eDAr_Gc-ZrDnYgLwAie3eCDqxDyxXEya-q6o3WYVaTu-vlTw2ZyxoA5PL77nJKKhD_2bc/s400/1549-4.jpg"/></a><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj44UgYov3597Qn3SeSymppqHb-KmiUW-ebmlXTBfmscl0E8uo1WMNmsCcgn2a5JoaRK3Jk4VkHgLnmX9ADwMdCF1r5uUMce19v0ZPPsBDjLPXDbcMlt7NHpLCREQDYYoBDqGQdjMOXh-s/s1600-h/1549-3.jpg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj44UgYov3597Qn3SeSymppqHb-KmiUW-ebmlXTBfmscl0E8uo1WMNmsCcgn2a5JoaRK3Jk4VkHgLnmX9ADwMdCF1r5uUMce19v0ZPPsBDjLPXDbcMlt7NHpLCREQDYYoBDqGQdjMOXh-s/s400/1549-3.jpg"/></a><br /><p>8時間前の様子</p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGQZ-DGR9N8inUyKJVRENkeWF-x97rivap0xdcGcFL_kji4kAQTT25ItNj4K0l4cmDhUBgb6a6xMKtMnmuJiPUPIb-fIy97CJtR6azXNdtKKkaw71czzl3FhBKJjeHqdZq8TzFqd1bXXE/s1600-h/1549-2.jpg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiGQZ-DGR9N8inUyKJVRENkeWF-x97rivap0xdcGcFL_kji4kAQTT25ItNj4K0l4cmDhUBgb6a6xMKtMnmuJiPUPIb-fIy97CJtR6azXNdtKKkaw71czzl3FhBKJjeHqdZq8TzFqd1bXXE/s400/1549-2.jpg"/></a><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1wZaWnFLpyW-CSzUWKsrBgun5f8XTp8FA1nsMDs1CgTxL4dL5eAcl_-5dO6jI9qaU3nD1Q2215lyVZ-wBnDoYsVbeVaI35lcUzsNdLmWVYr9fgsSbFwye2FuhZ1JAvirKjxAjce30XGA/s1600-h/1549-1.jpg"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1wZaWnFLpyW-CSzUWKsrBgun5f8XTp8FA1nsMDs1CgTxL4dL5eAcl_-5dO6jI9qaU3nD1Q2215lyVZ-wBnDoYsVbeVaI35lcUzsNdLmWVYr9fgsSbFwye2FuhZ1JAvirKjxAjce30XGA/s400/1549-1.jpg"/></a>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-61265745882252039492009-01-02T22:32:00.003-05:002009-01-03T00:30:05.630-05:00アイスコーヒー讃歌<p>アイスコーヒーが好きだ。朝起きて2杯、午前中に1杯、おやつに1杯、寝る前に1杯。書き出してみるとたった5杯しか飲んでないのかとも思うがとにかくアイスコーヒーが好きだ。</p><p>朝のコーヒーは濃く入れる。いつもブラックだが朝の1杯目はミルク入りだ。</p><p>社会人になったころはアイスコーヒーが世界の中心だと思っていた。外国ではアイスコーヒーが一般的ではないと知らず、世界中の喫茶店でアイスコーヒーを注文した。拒否されたり怪訝な顔をされたり苦笑されたりして世間がいやになった。</p><p>飛行機に乗って飲み物の希望を聞かれたときも必ずアイスコーヒーを頼んだものだった。大人になった現在はアイスコーヒーを出す航空会社はほとんどないことを知っているけれど、私は若かった。</p><p>典型的な反応は英国ブリティッシュ・エアウェイズ。「ハア? アイスコーヒー? ありません!」とスチュワーデスに怒り気味に言われた。ちなみにアイスティーもなかった。アメリカン航空だったか、米系の会社は優しかった。「アイスコーヒーはメニューにはありませんが、やってみます」氷の足りない水で薄めたようなコーヒーが出てきたけれど。</p><p>ドイツのルフトハンザも同様、「がんばってみます」と言ったスチュワーデスはぬるいコーヒーの上にホイップクリームの乗ったものを持ってきた。ホイップクリームをコーヒーに乗せることよりも、飛行機の厨房にホイップクリームがあるのに驚いた。苦く入れたアイスコーヒーにコンデンスミルクを入れるのはマレーシア航空。所変われば品変わるということを学ぶのが人間の成長というものである。</p><p>世界のどこに行ってもアイスコーヒーが飲みたくなるほど好きだ。さんざん学習したためもう日本人のスチュワーデス相手にしかアイスコーヒーを頼まないが、とにかくアイスコーヒーが好きだ。</p><p>アメリカに引っ越す前はもうアイスコーヒーが飲めなくなるのかと思っていたが、喜ばしいことにスターバックスがアメリカでもアイスコーヒーを出すようになったため、アメリカでの認知度は高い。普通の喫茶店ではレギュラーコーヒーに氷を大量に入れてアイスコーヒーを作るので薄いぼんやりした味であることが多いが、アイスコーヒーには違いない。</p><p>ところがわれらがスターバックスは違う。Iced Caffè Americanoというアイスコーヒーはちゃんとエスプレッソに氷を入れて作るため薄くない。</p><p>スターバックスの難点をあげるとすれば豆の味だ。悪くない味なのだが一日何度も飲むには飽きる味だ。さらに、濃いめに作られるため大量にがぶがぶ飲むには向かない。いつでもスターバックスに行ける身分でもない。</p><p>アイスコーヒーが好きだ。複数の豆を使い分けて好きなように自宅で飲むのが一番好きだ。</p><p>昨年買ったものの中で一番良かったものがサエコ社のエスプレッソコーヒーマシン。目玉が飛び出るくらい高いがおいしいアイスコーヒーのためにはやむを得ない。アイスコーヒー好き・エスプレッソ好きにこの機械はかなりおすすめだ。ただ日本で買うとなぜかアメリカ価格の倍以上するので話半分でどうぞ。</p><p>以上、2008年の総括でした。アイスコーヒーはおいしい。</p><p>参考リンク</p><ul><li><a href="http://www.starbucks.com/retail/nutrition_beverage_detail.asp?selProducts=%7BC4332CAD-61C6-4192-BD72-366C5433E576%7D&x=8&y=10&strAction=GETDEFAULT" title="Iced Caffè Americano">Iced Caffè Americano</a><li><a href="http://saeco.co.jp/product/talea_giro.php" title="日本サエコ saeco コーヒーメーカー エスプレッソコーヒーマシン、スチームクリーナー&アイロン">サエコ社・Talea Giro</a></ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-87470283438943797522008-12-28T23:38:00.002-05:002008-12-28T23:57:52.795-05:00そういう風に見えますか<p>アマゾンから届いた大量の段ボール箱をゴミ捨て場に運んでいたときのこと。</p><p>「ちょっとあなた、うちのゴミも捨てておいてくれない?」</p><p>同じ階に住む白人女性に声をかけられた。初めて見る顔だが、苦労を知らずに育ったお嬢様という雰囲気である。それがゴミを運べとおっしゃる。</p><p>お嬢様というものは初対面の隣人だろうと遠慮なくこき使うものらしい。むっとしたが、聖書には「隣人を愛せよ」とある。レディーファーストの国アメリカに住んでいるのだから仕方がない。いいですよ、と答えて隣人の敷居をまたいだ。</p><p>家具でも買ったのだろうか、大人が3人は入りそうな梱包材が部屋の入り口に放置されていた。ゴミ捨て場まで5往復で足りるかどうかという量だ。軽そうな紙束が大量にあったのでそれから取りかかる。隣人の彼女はといえば、手伝いもせずに靴のカタログを眺めている。当方はまたむっとする。</p><p>特大の段ボール箱を部屋から運び出そうとすると、彼女が一言。</p><p>「廊下に傷をつけると困るから箱をつぶしてから出してね」</p><p>なんの因果で師走の一日をこういうことに費やさねばならぬのだろうか。レディーファースト、レディーファーストと自分に言い聞かせながら黙々と作業をする私。箱を分解するのに工具があれば助かるんですけど、と言ったら</p><p>「そんなものないわ」</p><p>と一蹴。No such thingですかそうですか。自分の部屋に取りに帰ってまた作業続行。手が痛い。</p><p>30分以上かけてお嬢様のゴミをすべて運び出して差し上げた。この彼女、一度も手伝わないものだから気分がかなりブルーになり、すごすごと帰ろうとしたそのとき、</p><p>「これ持って行って」</p><p>なぜか10ドル札を手渡された。ああ、この人、勘違いしているな、とわかったのはこのときだ。私はただの隣人ですからチップは不要ですよ。彼女にそう伝えた。</p><p>「ええっ! アパートメントの掃除夫の人だと思っていました。ごめんなさい。私の名前はA子。あなたは?」</p><p>さっきまでの仏頂面からはうってかわり、いきなりフレンドリーになった。だからといって私の心の傷が癒えるわけではない。</p><p align="center">◇ ◇ ◇</p><p>こういう話もある。</p><p>お手製の弁当を袋に入れて仕事場に向かっていると、</p><p>「ちょっと、メニューもらえる?」</p><p>と言われた。意味がわからずぽかんとしていると</p><p>「ランチのデリバリーの人じゃないの?」</p><p>いえ、これは私のお弁当ですと言うとその人はお詫びをしつつ去って行った。ちなみに自宅の近所で弁当屋に間違えられたことは3回もある。</p><p align="center">◇ ◇ ◇</p><p>職業に貴賤はないというしこういうことを言うのは気が引けるが、掃除夫とか弁当屋とかそういった職業の人に間違われることが多いのである。日本にいたときはこんなことはなかった。私の顔がそういうふうにできているのか、それともなにか人種差別的な何かなのだろうか。</p>Unknownnoreply@blogger.com5tag:blogger.com,1999:blog-848231996016915379.post-65697231980799123982008-11-26T22:19:00.000-05:002008-11-26T22:22:14.275-05:00日本人のビザは出せません<p>ニューヨークには外国人差別がない、と言い切ったら過言というものだが、病院や図書館など公共の場所で国籍を問題にされることはない。ここアメリカで外国人として生きていくには居心地の良い都市である。居心地が良すぎて自分が外国人であることを忘れそうになるが、足元をすくわれることもある。</p><p>それは中東と西アジアに行く準備をしたときのことだった。</p><h4>中東A国の場合</h4><p>石油資本のおかげで建設ラッシュのA国。観光にも力を入れていて、日本人は入国の際にビザがいらない。ネットを見ても日本人の観光旅行記がたくさんみつかる。しかしガイドブックには「ビザの件は流動的なので大使館に確認すること」とも書いてある。</p><p>そういうわけで、念のためにA国の出先機関に問い合わせてみた。ところが「日本人だからビザはいらないですよね?」というだけの要件のはずが長電話になってしまった。</p><p>A国の係員「アメリカに住んでますか?」</p><p>日本のパスポートを持ち米国ビザでアメリカに滞在しています、と説明。滞在年数を聞かれた後、</p><p>A国「あなたは日本のパスポートを持っていても状況が若干特殊なのでビザを取ったほうがいいでしょう」</p><p>ではすみませんがビザの手続方法を教えてもらえますか。</p><p>A国「いえ、ここでは日本人用のビザは出せません」</p><p>なんと。</p><p>A国「現地の空港に到着したときに到着ビザを取ってください。A国人の書いた招聘状が必要になりますから滞在先のホテルにあらかじめ書いてもらって、それを入国係官に提出してください」</p><p>……。</p><p>結局面倒になり、A国に行くのはやめてしまった。</p><h4>西アジアB国の場合</h4><p>西アジアのB国。発展を続けてはいるものの、他の西アジアの国と同じく観光の目的地としては一般的でない。日本人がB国に入国するにはビザが必要である。ビザの有効期間は数か月から10年まであるが、今回は5年のビザを申し込んでみた。</p><p>ビザを申し込みしてから数日、ビザの手配を頼んだ旅行社から電話がかかってきた。</p><p>旅行社「5年のビザは無理ですねー」</p><p>特に制限はなかったはずだが、と思っていると</p><p>旅行社「あなたの場合アメリカに住んでいる日本人なので、通常のアメリカ人や日本人に比べて制限が厳しくなります」</p><p>ううむ、ここでもか。</p><p>旅行社「1年ビザなら出ますので、また必要になったらビザを取り直してください」</p><h4>注釈</h4><p>蛇足ながら真面目な話を書いておくと、上記の話は理由のないことではない。</p><p>A国のように、ビザ申請者(私)が国籍のない国(アメリカ)でビザを取得できないのは特別なことではない。在アメリカA国領事の仕事はアメリカ人の入国資格を審査してビザを発給することであり、日本人は審査不可能と言われても仕方がないのだ。日本にあるA国大使館に行ってください、と言われないだけまだましというものである。B国も同様で、期間が短縮されたもののビザを発給してくれたのには感謝するべきだと思う。</p><p>それにしても、自分が外国人であることを認識したのはひさしぶりだった。</p>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-54905870783378952252008-11-23T20:35:00.000-05:002008-11-23T20:35:19.423-05:00Perl 6超入門(その3)Perl 5との基本的な違い<p>Perl Seminar NYという集まりでPerl 6の文法をおさらいした。会場で習ってきたことをインストールしたてのPerl 6を使って自分で試してみる。</p><h4>まずはバージョン表示</h4><pre>% ./perl6 -v<br />This is Rakudo Perl 6, revision 0 built on parrot 0.8.1<br />for darwin-thread-multi-2level.<br /><br />Copyright 2006-2008, The Perl Foundation.<br /><br />% </pre><h4>文字列連結</h4><p>Perl 5の「.」は「~」になった。メソッド呼び出しが「obj->method()」から「obj.method()」になったため。</p><p>Perl 5</p><pre>my $x = 'a';<br />my $y = 'b';<br />print $x . $y; # abを表示</pre><p>Perl 6</p><pre>my $x = 'a';<br />my $y = 'b';<br />say $x ~ $y; </pre><h4>三項演算子(条件演算子)</h4><p>「条件 ? 正の場合の値 : 偽の場合の値」という書き方はCからの伝統だったが、「条件 ?? 正の場合 !! 偽の場合」になった。</p><p>Perl 5</p><pre>my $x = 1;<br />print $x == 1 ? 'yes' : 'no'; # yesを表示</pre><p>Perl 6</p><pre>my $x = 1;<br />say $x == 1 ?? 'yes' !! 'no';</pre><h4>配列に対するx演算子はxx</h4><p>Perl 6</p><pre>my @array = (1, 2, 3);<br />my @longarray = @array xx 3;<br />say join',', @longarray; # 1,2,3,1,2,3,1,2,3を表示</pre><h4>ジャンクション</h4><p>Perl 6</p><p>「3」は「1または2または3」にマッチするので「yes」を表示する。</p><pre>if (3 == (1 | 2 | 3)) {<br /> say "yes";<br />}<br />else {<br /> say "no";<br />}</pre><p>「1かつ2かつ3」にはマッチしないので「no」を表示する。</p><pre>if (3 == (1 & 2 & 3)) {<br /> say "yes";<br />}<br />else {<br /> say "no";<br />}</pre><h4>その他</h4><p>エラーメッセージが(まだ)不親切。セミナーの会場でもエラーメッセージがわからずにみんなではまった。</p><p>たとえば、これを見せられて「=」ではなくて「==」にしなければいけないんだな、とわかるのは無理だ。ドキュメントの整備はこれから行われるとのこと。</p><pre>% ./perl6 -e 'say "yes" if 3 = (1|2|3)' <br />Method 'lvalue' not found for invocant of class 'PAST;Val'<br />current instr.: 'parrot;PAST;Compiler;as_post' pc 2924 (src/PAST/Compiler.pir:742)<br />called from Sub 'parrot;PAST;Compiler;if' pc 3461 (src/PAST/Compiler.pir:934)<br />called from Sub 'parrot;PAST;Compiler;post_children' pc 1783 (src/PAST/Compiler.pir:368)<br />called from Sub 'parrot;PAST;Compiler;as_post' pc 2060 (src/PAST/Compiler.pir:500)<br />called from Sub 'parrot;PAST;Compiler;post_children' pc 1783 (src/PAST/Compiler.pir:368)<br />called from Sub 'parrot;PAST;Compiler;pirop' pc 3061 (src/PAST/Compiler.pir:796)<br />called from Sub 'parrot;PAST;Compiler;post_children' pc 1783 (src/PAST/Compiler.pir:368)<br />called from Sub 'parrot;PAST;Compiler;as_post' pc 2408 (src/PAST/Compiler.pir:614)<br />called from Sub 'parrot;PCT;HLLCompiler;compile' pc 434 (src/PCT/HLLCompiler.pir:303)<br />called from Sub 'parrot;PCT;HLLCompiler;eval' pc 868 (src/PCT/HLLCompiler.pir:502)<br />called from Sub 'parrot;PCT;HLLCompiler;command_line' pc 1450 (src/PCT/HLLCompiler.pir:774)<br />called from Sub 'parrot;Perl6;Compiler;main' pc 16140 (perl6.pir:168)<br />% </pre><h4>関連記事</h4><ul><li><a href="http://googlewhacks.blogspot.com/2007/06/perl62say.html" title="Mint's log: Perl 6超入門(その2)say">Perl 6超入門(その2)say</a></li></ul>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-848231996016915379.post-70790547973050190712008-11-22T23:56:00.004-05:002008-11-23T00:00:28.854-05:00Perl 6(Rakudo Perl)をインストール<p>Perl 6の実装は複数あり、<a href="http://www.pugscode.org/" title="Try Pugs!">Pugs</a>と<a href="http://rakudo.org/" title="Rakudo.org:">Rakudo Perl</a>が有名である。今回は手もとのLeopardでRakudoを試してみる。</p><h4>ダウンロード</h4><p><a href="http://search.cpan.org/dist/parrot/" title="chromatic / parrot - search.cpan.org">CPAN</a>で最新版のParrotをダウンロードする。MacportsにもParrotはあるが、月一度のリリースに追いついていないのでCPANを使ったほうがよいようだ。</p><h4>展開</h4><pre>% tar zxvf parrot-0.8.1.tar.gz <br />parrot-0.8.1/CREDITS<br />parrot-0.8.1/ChangeLog<br />parrot-0.8.1/Configure.pl<br />parrot-0.8.1/DEPRECATED.pod<br />parrot-0.8.1/DONORS.pod<br />parrot-0.8.1/LICENSE<br />parrot-0.8.1/MANIFEST<br />parrot-0.8.1/MANIFEST.SKIP<br />parrot-0.8.1/MANIFEST.generated<br />parrot-0.8.1/META.yml<br />parrot-0.8.1/Makefile.PL<br />parrot-0.8.1/NEWS<br />parrot-0.8.1/PBC_COMPAT<br />parrot-0.8.1/PLATFORMS<br />(略)<br />parrot-0.8.1/tools/util/templates.json<br />parrot-0.8.1/tools/util/update_copyright.pl<br />parrot-0.8.1/xconf/samples/testfoobar<br />parrot-0.8.1/xconf/samples/yourfoobar<br />%</pre><h4>コンパイル</h4><p>LeopardだとXcodeが必要。</p><pre>% cd parrot-0.8.1<br />% perl Configure.pl<br />Parrot Version 0.8.1 Configure 2.0<br />Copyright (C) 2001-2008, The Perl Foundation.<br /><br />Hello, I'm Configure. My job is to poke and prod your system to figure out<br />how to build Parrot. The process is completely automated, unless you passed in<br />the `--ask' flag on the command line, in which case I'll prompt you for a few<br />pieces of info.<br />(略)<br />Okay, we're done!<br /><br />You can now use `make' to build your Parrot.<br />After that, you can use `make test' to run the test suite.<br /><br />Happy Hacking,<br /> The Parrot Team<br />% </pre><pre>% make<br />Compiling with:<br />xx.c<br />(略)<br /> -L/Users/mint/tmp/parrot-0.8.1/blib/lib -L/Users/mint/tmp/parrot-0.8.1/blib/lib -lparrot -lm -lgmp -lreadline -framework OpenGL -framework GLUT -lcrypto -lintl -undefined dynamic_lookup -L/opt/local/lib<br />%</pre><pre>% make test<br />Compiling with:<br />xx.c<br />(略)<br />Test Summary Report<br />-------------------<br />t/stm/runtime.t (Wstat: 256 Tests: 5 Failed: 1)<br /> Failed test: 4<br /> Non-zero exit status: 1<br />Files=396, Tests=11657, 367 wallclock secs ( 3.43 usr 2.24 sys + 169.59 cusr 70.23 csys = 245.49 CPU)<br />Result: FAIL<br />make: *** [test] Error 1<br />%</pre><p>失敗するテストもあるが気にしない。</p><pre>% ./parrot -V<br />This is parrot version 0.8.1 built for nojit.<br />Copyright (C) 2001-2008, The Perl Foundation.<br /><br />This code is distributed under the terms of the Artistic License 2.0.<br />For more details, see the full text of the license in the LICENSE file<br />included in the Parrot source tree.<br /><br />%</pre><p>コンパイル完了。実行可能なParrotのバイナリができる。</p><p>Perl 6をビルドするのは簡単で</p><pre>% make perl6<br />make -C compilers/pct<br />make[1]: Nothing to be done for `all'.<br />(略)<br />perl -MExtUtils::Command -e cp languages/perl6/perl6 ./perl6<br />perl -MExtUtils::Command -e ExtUtils::Command::chmod 0755 ./perl6<br />./perl6 -e"say 'Hello, world.'"<br />Hello, world.<br />%</pre><p>こうするとperl 6のバイナリもできる。最後のところで「Hello, world」を実際にPerl 6で実行している。</p><p>「make reallyinstall」をすると/usr/localにParrotがインストールされる(perl6は自動でインストールされない)が、遊んでみるだけなら自分の作業ディレクトリで十分である。</p><h4>関連記事</h4><ul><li><a href="http://googlewhacks.blogspot.com/2007/06/perl6pugs.html" title="Mint's log: Perl 6(Pugs)をインストール">Perl 6(Pugs)をインストール</a></ul>Unknownnoreply@blogger.com0