Monthly Archives: June 2008

Rubyで自動的にリンクを拾ってきてくるツールを作ったのだが・・・

とある目的のため、Rubyで自動的にリンクをたどって、HTMLファイルを解析し、必要となるリンクを抜き出してきてくれるツールを作った。

基本的にはNet::HTTPを使ってresponseをgetし、response.bodyで中身のHTMLファイルが取得できるので、あとはHTMLパーサーにかけるだけである。

HTMLパーサーにはhpricotというものを使った。
Hpricot, a fast and delightful HTML parser

これで非常に簡単にリンクが取得できる。
たとえば(たぶん)こんな風に(いい加減、ブログにアップロードするときにコードに色をつけてくれるのが欲しいな)。

require "rubygems"
require "hpricot"
require "net/http"

url = ARGV[0]

Net::HTTP.start(url) { |http|
  response = http.get(hoge)
  
  doc = hpricot(response.body)
  (doc/:a).each { |link|
    p(link[:href])
  }
}

実際に動かしてみると、何かが遅くて1時間ぐらい経っても?(放置していたので正確な時間がわからない)終わっていない(挙げ句の果てには、#<eoferror : end of file reached>とはき出して死んでいたのだが(笑))。

プロファイルしてみないとわからないけれども、ネットワークが遅いのか、Rubyが遅いのか、HTMLのパースが遅いのかのどれかだと思う。
ただ、hpricotはCでバックエンドが書かれているようなので、ここが遅いというのは考えにくいのかも。

こうなったらC++で書くしかないのか?
でも文字列処理が面倒 + httpを扱うものを書いたことがないということで(boost::asioで解決できるかな)、できる限り使いたくはないのだけれど。
しかも元々のHTMLはEUC-JPだしなぁ・・・。

風邪引いた 2

風邪引いたの続き。

どうにも痰が絡むので、こんなときには痰の粘度を変えてくれるであろうL-カルボシステイン + アンブロキソールが良いだろうと思った。
本当は医療用のムコダイン(250 mg 10.8円/錠、500 mg 19.6円/錠)とムコソルバン(23.7円/錠)が安くていいと思ったけれども、今日は薬局に行かないので残念ながら購入できない。

ということで、仕方なくOTCを検索。
L-カルボシステインが入ったものは、エスエス製薬の「新エスエスブロン錠エース」、それとなぜか中身は同じ「新フステノン」(つまり同じ会社が中身の同じものを二つ出している???)、キョーリン製薬の「クールワン せき止め」などがあるよう。

一方、アンブロキソールの方は、最近OTC(市販薬)になったSwitch OTC。
大正製薬の「パブロンエースAX」とエスエス製薬の「エスタックイブファイン」がある。

残念ながらどうしても両方入ったやつは出てこない。
アンブロキソールの入った方は、総合感冒薬という位置づけになっているから、イブプロフェンとか余計なもんが入っているので、そんなもんはいらんということで「新エスエスブロン錠エース」よりも安そうな「新フステノン」を選択。

が、売っていないということで「新エスエスブロン錠エース」を購入した。

服用してみると、嬉しいことにほとんど咳は収まってくれた、、、のだが、リン酸ジヒドロコデインのせいか?かなり眠い。
風邪薬を飲んだときに、眠たくないのに頭の中心部が重たくなって、どうにもならなくなるようなあの感じ。

TextMateを試用中

Ruby on Rails界隈ではかなり有名な?TextMateというテキストエディタですが、なんといってもその良さは強力な定型文入力機能です。

TextMate — The Missing Editor for Mac OS X

たとえばhtmlファイルを編集するときには、scriptと書いてタブキーを押すと

<script type="text/javascript" charset="utf-8">

</script>

というように自動的に挿入してくれますし、さらにここでfunと書いてタブキーを押せば

<script type="text/javascript" charset="utf-8">
	function function_name (argument) {
		// body...
	}
</script>

こうなります。

こうした非常に優れたエディタなのですが、Emacsキーバインドでマークの設定が使えない。
これは個人的に大きい問題なので、どうしようかなぁというところです。
でも、これで捨ててしまうにはあまりにも惜しいぐらいのエディタな気がするので、もう少し他の使い方をしてみるかな。

風邪引いた

金曜日、ノドの調子がおかしい

土曜日、声がだんだんがらがらになる

日曜日、痰が絡んで咳が出る

月曜日、治らず ← 今ここ

のどの炎症はセフラターゼを服用してよくなったものの・・・咳の方が辛いわ。
メジコンとムコダインも一緒に入手しておくべきだった・・・。

自分の観察

1. プログラムを作っていて、詰まる。

2. こうすればできそうなんだけど、これもしなきゃいけないし、あれもしなきゃいけないし、現在のところに組み込むのはなんとなく面倒くさそうだなぁ。

3. 後回し。

やはりかなりの元凶はこの面倒くさそうというところに始まっているのではないか?と思えてくる。
とにかく手を動かせばいいというのが頭では理解できていても、心が理解できていない。

2. でやることがたくさん(ただし漠然と見つかる状況)というのがいけないような気もする。
もっと具体的に書いていって、本当にやることに分割していく。

やることがない訳ではないし、もっというとたまっているのに、どれをやったらいいのかわからない。
GTD (Getting Things Done) で説かれるのは、そういうことを全部掻き出して頭の中をすっきりして仕事をしなさいということだった。

そういう態度が時間を上手に使う方法の一つなのかもしれないと改めて思いはする。

表面だけまねしてみました

iPhone

SH906i

ただ単に表面に見えるマルチタッチをまねしてみましたということが見え見え。

下記のエントリに大変重要なことが書かれている。

iPhone 3Gを考える:iPhoneが提案するデザインとは

ジョブズ氏が考える「デザイン」とは?

 iPhoneの最大の特徴は、自分のパーソナルデータとWeb上にあるデータをまるでひとつのアプリケーションで扱っているかのようにシームレスに利用できるところだ。

 インターネットで見つけたイベントをワンクリックでカレンダーに追加する。位置情報からレストラン検索をしたら道順を教えてくれて、電話もすぐできる。「インターネット(フルブラウザ)」「カレンダー」「ナビゲーション」「地図」というキーワードをみると、それは日本の携帯電話でも既に実装されていて驚きはない。

 ポイントはユーザー側に手間をかけさせることなく、それらの機能を繋ぎ合わせるかのようにデータを移動したり利用することができるソフトウェアとサービスがあるところだ。

 今年のWWDCでも基調講演を行ったSteve Jobs氏は、デザインとは「how it works(どのように動作するかだ)」と語っている。

 つまり、見た目や感覚的なところだけをデザインと指しているわけではなく、利用者が本当に実現したいことを単純に実現させることができるかどうかが「デザイン」だと説いているわけだ。利用者側で単純と思えることが、作っている側にとっても簡単なこととはいえない。ハードウェアだけでなく、ソフトウェアやサービスプロバイダそれぞれのレイヤーで連携や協力があってこそはじめて実現できる「単純」さだ。

 マルチタッチにしてもそうだ。技術だけみれば日本が最初に作れたのかもしれない。しかし、マルチタッチをコンシューマープロダクトに実装し、使いやすいインタフェースと操作性の実現、さらにマルチタッチをはじめiPhoneのデータや技術をAPIとして解放し、開発者とも可能性を共有する姿勢。

iPhone 3Gを考える:iPhoneが提案するデザインとは

また、Appleはスペックなどについての情報は極力出さないようにしている。

WWDC’08 インタビュー編:「iPhone 3Gは最良の体験をめざして進化した」――iPhone/MobileMe担当者インタビュー (1/5) – ITmedia +D PC USER

我々の方針で、本体のアーキテクチャなど、細かなハードウェアの仕様についてはあまりおおやけには話さないことになっています。我々はそうした個々のハードウェア要素ではなく、全体としての体験のよさに目を向けて製品開発をしています。

WWDC’08 インタビュー編:「iPhone 3Gは最良の体験をめざして進化した」――iPhone/MobileMe担当者インタビュー (1/5) – ITmedia +D PC USER

必ずハードウェア自体に目的が置かれるのではなく、そのハードウェアで何をするかに目的が置かれている。
たとえばiPodであれば手軽に音楽を聴くことであるし、iPhoneでは手軽に電話(というかスマートフォン) + iPod + Safariを使うこと。
その目的に合致しない合致しないことはばっさりと切り捨てる。

彼女があのテレビを買ったワケ ― 男がわからなかった 女が商品を選ぶ本当の理由
著者: 木田理恵
ページ数: 240ページ
出版社: エクスナレッジ
発売日: 2008年3月10日

この本の冒頭では、筆者がディープブルーのDVD(サメが出てくるものではないみたいです)をきれいなテレビで見たくて、テレビを買いに行くという話から始まる。

家電量販店に行き、ディープブルーがきれいに見られるテレビをくださいといった彼女に対する、店員の反応はスペック語りの嵐。
その日は結局止め、いくつか絞り込んだあとで最終的に選んだ理由はリモコン。
リモコンが部屋に置いてある様子を想像して、決めたとのこと。

リモコンと目的との解離はあるにせよ、このディープブルーが見たくてきれいなテレビが欲しいという動機は非常に本質的だと思った。

重い話を聴く方法

5年前は重い話を聞いても、自分自身に遙かに余裕がなかったということもあって、自分自身がさらに重くなるだけで、いやになって逃げ出した。

さっきとある人の重い話をメールで返信しつつ自分を観察して思ったのは、重い話に対して何か良い案を出そうとするから、自分の中でさらに重くなってしまっていやになるということ。いわば???、食物連鎖の濃縮みたいなことが起こっていた。

重い話を聞く → どうしたらいいかとか案を考えようとする → いいように思いつかない → 無価値感を感じる → いやになる

もしくは

重い話を聞く → どうしたらいいかとか案を考えようとする → よかれと思っていったことが相手に対してさして意味をなさない → 無価値感を感じる → いやになる

もしくは

重い話を聞く → どうしたらいいかとか案を考えようとする → 何回も同じ話を繰り返される(相手の中でまだ消化できていないということ)→ 無価値感を感じる → いやになる

これは男性的な問題解決思考によるもの。

少し横道にそれて、一方で女性的な思考をしてみる。

重い話を聞く → 自分は似たような経験ではこんなことを思ったよという同情をする → 私はもっと大変なんだからという無意識の競争が起こる → 問題(物理的な問題というよりも心の上で)は解決されない

閑話休題。

「いいこと」をしようとすればするほど自分が消耗して、結果的には何も意味をなさなくなる。

だから、そうじゃない。
そうじゃなくて、まずは「いいこと」をしようなんていう思考を吹っ飛ばす必要がある。
問題を解決をするのは、心の上だろうが、物理的であろうが、その相手。
前に河合隼雄氏が心理療法家になりたいという人は、救おうとして結果的にダメにするというのを書いていたのを思い出す。

「いいこと」をしようなんていう思考を吹っ飛ばしたら、できることなんていうのはほとんどなくて、ただそばにいる、共感する、放置する(見守る)、逃げるぐらいしかないのではないか?

共感ということにフォーカスをすれば、ただ単にこんな風に考えているのかなぁと思いつつ言葉を返す。
本当は相手の言葉の中の閉じた世界の中だけで言葉を発すればいいのかもしれないけれども、それは時間がかかるかもしれないから、相手の発する言葉を含みつつ、もしかしてこう思っている?と少し自分の想像力を働かしてみる。

それが無意識的にできるようにならないかな。

日々雑感: 2008/06/15

物欲日記。

1. CDが高い

奥華子のCD2枚持っているのですが、他の曲も聴きたいなぁと思ってAmazonで見たところ、「恋手紙」が3,000円。
高い。洋楽のCD、2枚買えるしなぁ。1枚 2,000円ぐらいにならないとなぁ。

2. イヤホン買おうかなぁ。

前に使っていたSHUREという会社のE4cというイヤホン(今はSCL4という名前になったみたい)は壊れたので、そのとき一緒に購入したER-4Sというイヤホンを使っているのですが、解像度は抜群に高いものの、聴いていて疲れる。
そろそろiPhoneもあるしなぁということで、新しいイヤホンをと思っているというところです。

次はこれかなぁ。

Ultimate Ears Triple.fi 10 PRO
メーカー: Ultimate Ears
発売日: 2007年9月28日

ヨドバシカメラとかで買うのよりも1万円安いとはいえ、約40,000円。

iPhone, MacBook Air, これとなるとなかなか出せるもんじゃないよなぁ・・・。
やっぱりAirはなしかなぁ・・・。

3. Inside Steve’s Brain

なかなかおもしろそうな本。

Inside Steve’s Brain
著者: Leander Kahney
ページ数: 304ページ
出版社: Portfolio
発売日: 2008年4月17日

レビューも出ている。

Book Review: Inside Steve’s Brain

英語の本は読み始めるのは良いのだけれど、疲れて止めちゃうからなぁ。。。

Apple Storeでも販売!

世界観が素晴らしい――ソフトバンク孫社長がiPhoneの魅力を熱弁:ITpro

正式なプレスリリースが出た訳ではありませんが、

製品は,ソフトバンクショップのほか,アップルストアでも販売する。

やっぱりちゃんと販売してくれそうです。

ただ16 GBの方は7月の後半からという噂もあるので、そうなったらそれまで待つしかないなぁ。

もうすぐ世界が変わる日が来るんだと考えると、本当にわくわくします。

超えてゆく 3

デキルヤツノ条件 15:非情のコメントブレイカー(前編)

この連載はいつも大変におもしろいし、今回も非常におもしろかった。

バブル世代を羨む前に、自分でバブルを起こすくらいの気概はないのか。氷河期を乗り越えるだけで気力のほとんどを使い果たしてしまったのか。それとも、自分をもう“負け組”に置いてしまったのか。

そんなはずはない。そんなことがあっていいはずがないのだ。閉塞感にやりきれなくなっても、挫折感に打ちのめされそうになっても、あきらめさえしなければ必ず光は差し込んでくる。その方向を見誤ることなく、まっしぐらに突き進めば、今度はきみが羨まれるような存在になる。氷河期というつらい時期を乗り切ったのであれば、今度はもっと大きな山だって乗り越えられる。どうしてそういう方向に考えをもっていけないのだ。

デキるやつは放っておいてもデキるようになる。何故なら、不満を口にするより先に考え、行動を起こしているからだ。バブル世代に責任を転嫁するより、自分に価値を見出したほうが前向きだということに気づいているからだ。だから努力をする。歯を食いしばる。

それでも努力をしないやつは、努力をしたやつを羨み、自分より前を行くやつを妬み、時代を恨む。それは、人に期待される人生を選ぶか、人に期待されない人生を選ぶかのどちらかなのだ。

数年前に心理学の本を読み始めて、なんて厳しいのだろうかと思った。
たとえば「被害者になっている間は前には進めないが、被害者になっている間は自分が変わらなくてすむ」とか。

上記のエントリで被害妄想のエントリが出てきて、そのようなことをいっている間は成長できないというように筆者は返していると思うのだけれども、まさに上記の被害者になっている間には進めないということと同じ。

結局「できる」人間というのは、ついでに人間的な成長をすごい勢いでしている人なのかもしれないなと思った。
被害者にならないということは、誰のせいにもしないということで、それは誰のせいにもできないということであって、自分が全部責任を負うということである。
それはとてつもなく苦しいこと。
それでも歯を食いしばって前に進むことで、きっとかつての自分を超えてゆける。

自分は努力というものはできないけれど、向上心だけがあるのはまだ取り柄だと思っている。
弱いダメダメな自分を超えてゆきたい。
倖せな生活の夢やファンタジーではなくてヴィジョンを描いて、そこに向かっていきたい。
それがどんな道を選ぼうとも、解なんだと思っている。