コーヒーメーカーサーバー
August 31st, 2006 | Published in Uncategorized
August 31st, 2006 | Published in Uncategorized
August 29th, 2006 | Published in Uncategorized
妻がドイツに出張になりました。
これまで6年くらい前に生協で買ったちっちゃなスーツケースしかなかったので、しっかりしたやつを探しました。 ポイントは、
SUPER LIGHTS PCというのを買いました。100% ポリカーボネイトで軽くて丈夫とのこと。たしかに、横にあったABS樹脂でできている同じくらいの大きさのものと持ち較べしたら、圧倒的な差が。
あと、ドイツに限らず英語圏外のヨーロッパのひとびとは英語でしゃべってくれないと聞いたことがあるので、ドイツでも困らないように、 も持たせることにしました。
何せ、無事に帰ってきて欲しいものです。
【送料無料!】【プレゼント付★】最軽量ポリカーボネート100%『SUPER LIGHTS PC』/ハードキャ…
August 26th, 2006 | Published in Uncategorized
去年に引き続き、LLの集いであるLL Ringに行ってきました。新木場遠い。
やっぱりイベントに来るとモチベーションが上がります。Haskellもうちょっと練習して、SICPもちゃんと読み進めて、Railsアプリをじゃかじゃか書いて、ActionScriptでグラフィカルなプログラムを書きたいと思いました。
1年後には、あの場で何か発表できるものをつくっていたいと思います。
August 24th, 2006 | Published in Uncategorized
7月初めくらいに送っていたキャンペーンの景品がやっと届きました。
これで、あのでかい筐体を持って話す違和感から解放されるのでしょうか。されないだろうな。
さっそく試してみたところ、マイクは思ったよりも感度が良くて、普通にしゃべれそうです。
イヤホンの方が驚きで、ちゃんと密閉型のインナーイヤホンでした。電車の中でも遮音できるぞ、とな。
さっそく明日使ってみようと思います。
August 24th, 2006 | Published in Uncategorized
Practiceに2つ取り組んでいるうちに思ったこと。
求められているのは、
あと、過去問を調べてみたところ、アルゴリズムとしてはグラフや文字列のマッチングが問題になることが多いみたい。Googleで実際に解くような問題っぽいですね。
こうした現実的な問題に対して、いかに素早く適切な解を出せるかというところが、Googleでは大事なのかなと思ったりしました。
August 23rd, 2006 | Published in Uncategorized
この前書いた Google Code Jam 2006 に続いて、500点問題にも取り組んでみました。
だめだ…
今回の問題は、割とアルゴリズムをイメージしやすかったので、けっこういけるんじゃないかなぁと期待していたのですが、だめでした。
というか、どうも問題に納得いかないのです。例で上げられている答えのうち、最後のやつがどうしても14にならなくて。
結局240行くらいのコードになってしまいました。 高得点者のコード見てみたら、もうぜんぜんシンプルな。そんなんでできるんかい、と突っ込みChallengeしてみたら、見事に玉砕してしまいました。
世界にはすごい人々がいるのだなぁと。でもまだあきらめずにやってみます。
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は活かせないと思うのですが、そのへんどうなってるんでしょう。
最新の研究成果をどんどん地球規模のビジネスで試せる。そんな環境は研究者にとって最高なんじゃないかなとか思いました。
August 22nd, 2006 | Published in hack
Rubyで書かれているWikiエンジンであるHikiで、タグクラウドを実現するプラグインを書きました。
やっぱりカテゴリよりもタグの方が手軽です。 HIkiにはもともとキーワードというタグのような機能があったので、これを利用できないかと思い、keywordプラグインを使ってみたところ、ほぼ期待通りのことができて小躍りしていました。
んじゃせっかくだし、タグクラウド (tag cloud) みたいな表示もできないかな、とkeywordプラグインを改造してみました。フォントサイズのアルゴリズムなんかは、blosxomでのタグクラウド実装の1つであるBLOGGING IS FUTILE : Blosxom plugin tagging を参考にしました。
ライセンスは、Hiki及びBlosxom plugin taggingに従って、GPL v2以降です。
ソースは続きにて。
#
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)
August 20th, 2006 | Published in Uncategorized
に参戦します。世界最高レベルのプログラマと対決するのです。
ということで、さっそくPracticeに挑んでみました。250pts問題を選んで、Problem Statementを読み、Constraintを理解し、手元の落書き帳でアルゴリズムをうんうん考えて、コードを書いてはテスト。テストが全て通ったところでsubmitしました。
しょぼっっっっっっっっっっ。(´・ω・`) 君にはがっかりだよ… (´・ω・`)
簡単と言われる問題に対して、
コードを書きあげるのに、こんなに苦労するなんて。自分の腑甲斐無さにこみ上げてくる涙を押し止めることができません。
高得点者のソースを見ながら自分の不足部分を考えてみました。
次はがんばるぞう。
August 19th, 2006 | Published in hack
06.08/06:あちら側で変換してくれる何かの続きをごりごりとやっていました。 だいぶマシな出来になってきたのですが、まだまだです。pre-editは奥が深い…
おお、少な。 しかし、JavaScriptの練習にはなったかな。
しかし、あまりpre-editの実装に嵌っていても、今回やろうとしていることの本質から離れていってしまうので、ここらでいったん中断し、本筋であるユーザ辞書の実装に入ろうと思います。