Archive for August, 2006

コーヒーメーカーサーバー

August 31st, 2006  |  Published in Uncategorized

語感が良いです。

ついつい洗い物してるときに割っちゃったコーヒーメーカーのサーバを、なんとかしなきゃと思い、無印のお店で相談してみました。そしたら、ちゃんと部分売りしてくれると。さっそく頼んでおきました。

やっぱりこういうふうに部品ごとに入手可能になっているのがアフターサービスでは大事なんではなかろうかと思ったりします。それと、年月が過ぎて型落ちしてしまっても、ちゃんと交換部品が手に入るようになっていることも大切なんだろうなと。後者は難しそうですけれどね。

ともあれ、無印の高感度++でした。


Tags: muji,

ドイツ

August 29th, 2006  |  Published in Uncategorized

妻がドイツに出張になりました。

これまで6年くらい前に生協で買ったちっちゃなスーツケースしかなかったので、しっかりしたやつを探しました。 ポイントは、

  • 4輪
  • 軽い
  • 丈夫
  • やや大きめ

SUPER LIGHTS PCというのを買いました。100% ポリカーボネイトで軽くて丈夫とのこと。たしかに、横にあったABS樹脂でできている同じくらいの大きさのものと持ち較べしたら、圧倒的な差が。

あと、ドイツに限らず英語圏外のヨーロッパのひとびとは英語でしゃべってくれないと聞いたことがあるので、ドイツでも困らないように、 も持たせることにしました。

何せ、無事に帰ってきて欲しいものです。


【送料無料!】【プレゼント付★】最軽量ポリカーボネート100%『SUPER LIGHTS PC』/ハードキャ... 【送料無料!】【プレゼント付★】最軽量ポリカーボネート100%『SUPER LIGHTS PC』/ハードキャ…

posted with amazlet on 06.08.29
任天堂 (2006/04/27)
Tags:

LL Ring

August 26th, 2006  |  Published in Uncategorized

LL Ring

去年に引き続き、LLの集いであるLL Ringに行ってきました。新木場遠い。

感想

  • 関数型が勢いづいてる
  • やはりプロジェクタは鬼門
  • リング硬かった
  • 「キミならどう書く」のお題。家計簿アプリは自分もRailsでつくっているので、興味深かった
  • リング上でプレゼンするのは難しそう
  • 休み時間が妙に長かったような
  • 素人さんのSICP会で見かける顔がちらほらいたり
  • リング上の人達に重きが置かれすぎているような。もっと観衆参加型のほうがよいんじゃないかな
  • 技術すごいひとはプレゼンも素晴らしい。流石だと思う
  • Mac多い。MacBook羨まし
  • 生Matz氏見た。感激
  • みんな普段何して飯食ってんだろう?
  • 飯といえば、新木場の吉野家には鰻丼があるのだな
  • スタッフのみなさまありがとうございました。

個別

関数型

  • デバッグ (難しそう | めんどそう)
  • 頭良い人にはピッタリだけど、そうでないひとには厳しい。実際、周りの人達に広めようとしたら、そういう声が返ってきたし。そうでない人達にとっては、命令型言語のほうが直感的なのだということ

Scripting For Java Platform

  • ScriptからJavaのオブジェクトを触りに行くとか、なんか卒論を思い出した (cf : ぶぶ )
  • いろいろなLLが使えるのは素晴らしい

ActionScript

  • やっぱFlashは生産性高いと思った。フレームベースでアニメーションの状態を確認できたり、グラフィックスとスクリプトの連携が見て解かるというのは素敵。
  • Eclipseで開発できるのもGood
  • でも開発環境が6万もするのはBad

L.L Gong

  • c-wrapper素晴らしい。凄い。
  • Sumibi.org。僕もあちらSKKとかやってます。アクセス数伸びる一方なようで羨ましす
  • Plaggerやっぱ凄い。MVCのCだという説明がすごい納得だった

まとめ

やっぱりイベントに来るとモチベーションが上がります。Haskellもうちょっと練習して、SICPもちゃんと読み進めて、Railsアプリをじゃかじゃか書いて、ActionScriptでグラフィカルなプログラムを書きたいと思いました。

1年後には、あの場で何か発表できるものをつくっていたいと思います。

Tags:

W-ZERO3キャンペーンのイヤホンマイク

August 24th, 2006  |  Published in Uncategorized

7月初めくらいに送っていたキャンペーンの景品がやっと届きました。

これで、あのでかい筐体を持って話す違和感から解放されるのでしょうか。されないだろうな。

さっそく試してみたところ、マイクは思ったよりも感度が良くて、普通にしゃべれそうです。

イヤホンの方が驚きで、ちゃんと密閉型のインナーイヤホンでした。電車の中でも遮音できるぞ、とな。

さっそく明日使ってみようと思います。

Google Code Jam Practice

August 24th, 2006  |  Published in Uncategorized

Practiceに2つ取り組んでいるうちに思ったこと。

求められているのは、

  • 問題が何を問うているかを見抜くこと
  • 最適なアルゴリズムを導きだせること
  • アルゴリズムを素早くコードに移すこと

あと、過去問を調べてみたところ、アルゴリズムとしてはグラフや文字列のマッチングが問題になることが多いみたい。Googleで実際に解くような問題っぽいですね。

こうした現実的な問題に対して、いかに素早く適切な解を出せるかというところが、Googleでは大事なのかなと思ったりしました。

Tags: ,

Google Code Jam 2006 Practice 500

August 23rd, 2006  |  Published in Uncategorized

この前書いた Google Code Jam 2006 に続いて、500点問題にも取り組んでみました。

結果

  • 得点 : 150.1pts
  • 所要時間 : 4時間

だめだ…

感想

今回の問題は、割とアルゴリズムをイメージしやすかったので、けっこういけるんじゃないかなぁと期待していたのですが、だめでした。

  • きつい条件が1つだけあって、そこをクリアできない
  • 問題の理解間違い x 2

というか、どうも問題に納得いかないのです。例で上げられている答えのうち、最後のやつがどうしても14にならなくて。


結局240行くらいのコードになってしまいました。 高得点者のコード見てみたら、もうぜんぜんシンプルな。そんなんでできるんかい、と突っ込みChallengeしてみたら、見事に玉砕してしまいました。

世界にはすごい人々がいるのだなぁと。でもまだあきらめずにやってみます。

Tags: ,

A Search Engine That’s Becoming an Inventor

August 23rd, 2006  |  Published in Uncategorized

を読んで。

引用

Google’s biggest rivals, Microsoft and Yahoo, certainly write much of their own software, and they work to configure their computers and data centers to their own needs. But they largely buy machines from existing manufactures like Dell, Sun Microsystems and Rackable Systems.

ライバルもソフトは自前で書いてる。でもハードはそのへんのベンダから買ってきてる。

Despite those boasts, some argue that Google’s home-brew approach is unnecessary and inefficient, a headstrong indulgence masked for now by the growth and profitability of its advertising business. And Google’s rivals say their networks are plenty efficient and powerful.

ぜんぶつくらんでええやろ、との声もある。

These … paint a picture of a company devoted to pushing the boundaries of modern computer science, and applying those concepts on a vast scale.

最新のコンピュータサイエンスをビジネスでフル活用させてるのがGoogle。

例えば並列計算機で動くソフトウェアについて。

MapReduce : Lispチックな。問題をたくさんのコンピュータにばーっとばらまいて、結果を集める。これがものすごく良い出来なのだと。MSもDryadという似たような技術をつくったよ! とはMr.Gatesの弁。

“If they can get a 30 percent cost advantage, in operating a service on the Internet that is a huge difference,” said John M. Lervik, the chief executive of Fast Search & Transfer, a Norwegian search company.

インターネットの世界で30%のコスト削減を実現できるなら、それはものすごい差を生むことになる。

“Having lots of relatively unreliable machines and turning them into a reliable service is a hard problem,” Mr. Hölzle said. “That is what we have been doing for a while.”

たくさんの信頼できないマシンを、1つの信頼できるシステムに仕立て上げるという、むつかしい問題に取り組んでるよ。

感想

Googleのもってるような超大規模並列計算機を使う場合、一番の問題はその強大なパワーをフル活用できるかというところだと思います。次が、信頼性。

並列計算機で動かすプログラムをつくるとなると、昔やってたMPIとかを思い出します。 MapReduceは、それよりもさらに抽象度の高いものなのかと想像します。 データを自動的に計算ノードにばらまいて、そこで関数を適用 (map) し、自動的に集める (reduce) と。 待ち合わせとかを気にしないでプログラムが書けるのでしょうか。 あと、SIMDスタイルだなーと。 Googleが扱うようなプログラム&データだと、なんとなくMIMDスタイルの方が多いんじゃないかな、とか思ったんだけど。うまいことパイプラインを組んだり、条件分岐にひっかからないようにするとかしないとSIMDは活かせないと思うのですが、そのへんどうなってるんでしょう。


最新の研究成果をどんどん地球規模のビジネスで試せる。そんな環境は研究者にとって最高なんじゃないかなとか思いました。

Tags:

Hikiでタグクラウド

August 22nd, 2006  |  Published in hack

Rubyで書かれているWikiエンジンであるHikiで、タグクラウドを実現するプラグインを書きました。

ダウンロード

CodeRepos

背景

やっぱりカテゴリよりもタグの方が手軽です。 HIkiにはもともとキーワードというタグのような機能があったので、これを利用できないかと思い、keywordプラグインを使ってみたところ、ほぼ期待通りのことができて小躍りしていました。

んじゃせっかくだし、タグクラウド (tag cloud) みたいな表示もできないかな、とkeywordプラグインを改造してみました。フォントサイズのアルゴリズムなんかは、blosxomでのタグクラウド実装の1つであるBLOGGING IS FUTILE : Blosxom plugin tagging を参考にしました。

ライセンスは、Hiki及びBlosxom plugin taggingに従って、GPL v2以降です。

ソースは続きにて。

ソース


show keywords like tag-cloud


Licensing: GPL v2 or newer, http://www.gnu.org/licenses/gpl.txt



#

Original:


$Id: keyword.rb,v 1.5 2005/09/30 11:45:49 fdiary Exp $


Copyright (C) 2003 TAKEUCHI Hitoshi <>



THRESHOLD = 1 MAX = 156 MIN = 32
def keyword_cloud(key) # sort by category list = keywords(key).to_a.sort {|a,b| a[0].downcase <=> b[0].downcase}
max = 1 min = 0 list.each do |j| sz = j[1].size next if sz < THRESHOLD
max = sz if sz > max
min = sz if sz < min


end
diff = max - min
s = '' list.each do |j| sz = j[1].size next if sz < THRESHOLD
category = j[0]
p = j[1]

fts = MIN + (((MAX-MIN)/diff.to_f) * (sz-min+1))

## for debug
# s << "<h4>"
# s << [sz, max, min, MIN, (MAX-MIN), diff, (MAX-MIN)/diff.to_f, (sz-min+1), fts].join(', ')
# s << "</h4>"

s << "<span id='tag' style='font-size:#{fts}%'>#{view_title(category)}</span> "


end
s end
def keywords(*keyword) keyword.collect! {|a| a.unescapeHTML}
key = Hash::new do |info| next unless info.values[0][:keyword] info.values[0][:keyword].each do |k| if keyword.size == 0 || keyword.index(k) key[k] = [] unless key[k] key[k] << info end end end key end
def keyword_entries_n(pages) p = j[1]
end
export_plugin_methods(:keyword_cloud)

Tags: , , ,

Google Code Jam 2006

August 20th, 2006  |  Published in Uncategorized

に参戦します。世界最高レベルのプログラマと対決するのです。

ということで、さっそくPracticeに挑んでみました。250pts問題を選んで、Problem Statementを読み、Constraintを理解し、手元の落書き帳でアルゴリズムをうんうん考えて、コードを書いてはテスト。テストが全て通ったところでsubmitしました。

結果

  • 得点 : 75.11pts / 250pts
  • 所要時間 : 4時間

しょぼっっっっっっっっっっ。(´・ω・`) 君にはがっかりだよ… (´・ω・`)

感想

簡単と言われる問題に対して、

  • 見通し悪く
  • 汚く
  • 見苦しく
  • テストも不十分な

コードを書きあげるのに、こんなに苦労するなんて。自分の腑甲斐無さにこみ上げてくる涙を押し止めることができません。

反省

高得点者のソースを見ながら自分の不足部分を考えてみました。

  • アルゴリズムに疎すぎ
  • グラフのアルゴリズム知らなすぎ
  • C++だから書きにくいんだ! なんて思いこんでいたけど、C++でも十分すっきりとしたコードは書けることを再確認

次はがんばるぞう。

Tags: ,

あちら側でかな漢字変換してくれる何か #2

August 19th, 2006  |  Published in hack

06.08/06:あちら側で変換してくれる何かの続きをごりごりとやっていました。 だいぶマシな出来になってきたのですが、まだまだです。pre-editは奥が深い…

できるようになったこと

  • シフトキー押しで漢字変換モード開始に
  • ましなページに

おお、少な。 しかし、JavaScriptの練習にはなったかな。


しかし、あまりpre-editの実装に嵌っていても、今回やろうとしていることの本質から離れていってしまうので、ここらでいったん中断し、本筋であるユーザ辞書の実装に入ろうと思います。

Tags: ime