語感が良いです。
ついつい洗い物してるときに割っちゃったコーヒーメーカーのサーバを、なんとかしなきゃと思い、無印のお店で相談してみました。そしたら、ちゃんと部分売りしてくれると。さっそく頼んでおきました。
やっぱりこういうふうに部品ごとに入手可能になっているのがアフターサービスでは大事なんではなかろうかと思ったりします。それと、年月が過ぎて型落ちしてしまっても、ちゃんと交換部品が手に入るようになっていることも大切なんだろうなと。後者は難しそうですけれどね。
ともあれ、無印の高感度++でした。
one step closer
語感が良いです。
ついつい洗い物してるときに割っちゃったコーヒーメーカーのサーバを、なんとかしなきゃと思い、無印のお店で相談してみました。そしたら、ちゃんと部分売りしてくれると。さっそく頼んでおきました。
やっぱりこういうふうに部品ごとに入手可能になっているのがアフターサービスでは大事なんではなかろうかと思ったりします。それと、年月が過ぎて型落ちしてしまっても、ちゃんと交換部品が手に入るようになっていることも大切なんだろうなと。後者は難しそうですけれどね。
ともあれ、無印の高感度++でした。
妻がドイツに出張になりました。
これまで6年くらい前に生協で買ったちっちゃなスーツケースしかなかったので、しっかりしたやつを探しました。 ポイントは、
SUPER LIGHTS PCというのを買いました。100% ポリカーボネイトで軽くて丈夫とのこと。たしかに、横にあったABS樹脂でできている同じくらいの大きさのものと持ち較べしたら、圧倒的な差が。
あと、ドイツに限らず英語圏外のヨーロッパのひとびとは英語でしゃべってくれないと聞いたことがあるので、ドイツでも困らないように、旅の指さし会話帳DS ドイツ も持たせることにしました。
何せ、無事に帰ってきて欲しいものです。
【送料無料!】【プレゼント付★】最軽量ポリカーボネート100%『SUPER LIGHTS PC』/ハードキャ…
去年に引き続き、LLの集いであるLL Ringに行ってきました。新木場遠い。
やっぱりイベントに来るとモチベーションが上がります。Haskellもうちょっと練習して、SICPもちゃんと読み進めて、Railsアプリをじゃかじゃか書いて、ActionScriptでグラフィカルなプログラムを書きたいと思いました。
1年後には、あの場で何か発表できるものをつくっていたいと思います。
Engadget.jp:アップル、180万本のソニー製バッテリーをリコール を読んで、うちのは大丈夫かいなと調べてみました。そしたら見事にビンゴ。
PowerBook 15”のバッテリーがiBook G4およびPowerBook G4バッテリー交換プログラム のA1078に合致してしまいました。PowerBook 12”はセーフ。
慌てふためきながら、アップルのリコールプログラムに申し込んで交換してもらうことにします。爆発炎上はしゃれになりません。
と、フォームに入力して送信してみたのですが、
このシリアル番号は無効または本プログラムに該当しません。
と返されました。よくよく元のページを見ると、対象バッテリーのシリアル番号は、3X446 – 3X509なので、このバッテリー (3X435…) は対象外なのでした。よかった。
しかし、いい加減このはやとちりの癖直さないとな… :(
7月初めくらいに送っていたキャンペーンの景品がやっと届きました。
これで、あのでかい筐体を持って話す違和感から解放されるのでしょうか。されないだろうな。
さっそく試してみたところ、マイクは思ったよりも感度が良くて、普通にしゃべれそうです。
イヤホンの方が驚きで、ちゃんと密閉型のインナーイヤホンでした。電車の中でも遮音できるぞ、とな。
さっそく明日使ってみようと思います。
Practiceに2つ取り組んでいるうちに思ったこと。
求められているのは、
あと、過去問を調べてみたところ、アルゴリズムとしてはグラフや文字列のマッチングが問題になることが多いみたい。Googleで実際に解くような問題っぽいですね。
こうした現実的な問題に対して、いかに素早く適切な解を出せるかというところが、Googleでは大事なのかなと思ったりしました。
この前書いた Google Code Jam 2006 に続いて、500点問題にも取り組んでみました。
だめだ…
今回の問題は、割とアルゴリズムをイメージしやすかったので、けっこういけるんじゃないかなぁと期待していたのですが、だめでした。
というか、どうも問題に納得いかないのです。例で上げられている答えのうち、最後のやつがどうしても14にならなくて。
結局240行くらいのコードになってしまいました。 高得点者のコード見てみたら、もうぜんぜんシンプルな。そんなんでできるんかい、と突っ込みChallengeしてみたら、見事に玉砕してしまいました。
世界にはすごい人々がいるのだなぁと。でもまだあきらめずにやってみます。
A Search Engine That’s Becoming an Inventor を読んで。
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は活かせないと思うのですが、そのへんどうなってるんでしょう。
最新の研究成果をどんどん地球規模のビジネスで試せる。そんな環境は研究者にとって最高なんじゃないかなとか思いました。
Rubyで書かれているWikiエンジンであるHikiで、タグクラウドを実現するプラグインを書きました。
やっぱりカテゴリよりもタグの方が手軽です。 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 <hitoshi@namaraii.com> 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 @db.page_info.each 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)
Google Code Jam 2006 に参戦します。世界最高レベルのプログラマと対決するのです。
ということで、さっそくPracticeに挑んでみました。250pts問題を選んで、Problem Statementを読み、Constraintを理解し、手元の落書き帳でアルゴリズムをうんうん考えて、コードを書いてはテスト。テストが全て通ったところでsubmitしました。
しょぼっっっっっっっっっっ。(´・ω・`) 君にはがっかりだよ… (´・ω・`)
簡単と言われる問題に対して、
コードを書きあげるのに、こんなに苦労するなんて。自分の腑甲斐無さにこみ上げてくる涙を押し止めることができません。
高得点者のソースを見ながら自分の不足部分を考えてみました。
次はがんばるぞう。