Googlers Jeff Dean and Sanjay Ghemawat have an article, "MapReduce: Simplified Data Processing on Large Clusters", in the January 2008 issue of Communications of the ACM. It is a great introduction to MapReduce, but what I found most interesting was the numbers they cite on usage of MapReduce at Google. Jeff and Sanjay report that, on average, 100k MapReduce jobs are executed every day, processing
「僕は、偉大なプログラマなんかじゃない。偉大な習慣を身につけたプログラマなんだ。」 --- Kent Beck 僕の信じた伝説 この一年間、あまりコードを書かずに、たくさんの本を読み、勉強ばかりしていました。そして、自分がかなり時代に取り残されたプログラマであることが身に染みて分りました。 僕の信じていたプログラミングの伝説は、こんな感じです。 初期工程で完全な仕様を作れ 実際問題、完全な仕様なんて作れるはずがありません。仕様は変わります。また、時代の変化やユーザの要望の変化により、要求も変わります。ですから、仕様が変わってもよいように、実装に柔軟性を持たせないといけません。 効率第一 大切なのは、コードの分りやすさです。効率はよいが分りにくい大きな関数を書くのではなく、効率はやや悪いが分りやすい小さな関数を書くべきです。関数呼び出しは遅いという伝説もありますが、最近のコンピュータは高速で
Update: I've been informed that I didn't clearly explain what monads are and what the code examples are supposed to do. Sorry. I guess I assumed too much preexposure to monads. If you're no familiar with them, there are already so many tutorials on monads that I'll simply direct you to two of my favorites: spacesuits and wikipedia. I've also added more explanations of what the code snippets are su
Last night at Beau's party, one of Beau's guests mentioned he's expecting twins shortly, which is why is wife wasn't at the party. I drunkenly suggested he name his kids two names that were anagrams of each other. I then wandered off downstairs to find such suitable names. Because I'm supposed to be be working in Python these days, not Perl, I gathered what little Python knowledge I had and wrote
先日作ったファイルコピーツールにプラグイン機能を追加する時にも使えるかな。。。と思いながら、簡易プラグイン管理クラスを作ってみました。 クラスの名前はPluginMgrです。(あまりにも安易な名前ですけどね。。) このPluginMgrは以下のことを行います。 ・指定されたディレクトリ中から、モジュールをインポートする。 ・インポートしたモジュールがプラグインとしての条件(必要な関数が存在すること)を満たしている場合には モジュールごとに、関数名と関数オブジェクトの辞書を作成して保持。 ソースコードはこんな感じです。 # -*- coding: utf-8 -*- import os import sys import inspect # # class PluginMgr: ''' プラグイン管理マネージャ。 生成時に指定されたプラグインディレクトリ中から、プラグインプロトコル に適合す
Thu, 03 Jan 2008 Note on point-free programming style This old comp.lang.functional article by Albert Y. C. Lai, makes the point that Unix shell pipeline programming is done in an essentially "point-free" style, using the shell example: grep '^X-Spam-Level' | sort | uniq | wc -l and the analogous Haskell code: length . nub . sort . filter (isPrefixOf "X-Spam-Level") Neither one explicitly mentions
Git is a version control Swiss army knife. A reliable versatile multipurpose revision control tool whose extraordinary flexibility makes it tricky to learn, let alone master. As Arthur C. Clarke observed, any sufficiently advanced technology is indistinguishable from magic. This is a great way to approach Git: newbies can ignore its inner workings and view Git as a gizmo that can amaze friends and
「RESTful Webサービス」、まだ半分しか読めてないけど良い本だと思います。URIがなぜ重要かは、今までも何となく分かっているつもりでしたが、その主張の背景がだんだん理解できてきました。 で、RESTfulとWebフレームワークの相性について、ちょっと疑問が浮上。 イベント駆動を指向しているWebプレゼンテーションフレームワークって、イベントソースを識別する必要上、どうしてもURLが複雑化したり、非bookmarkable化する傾向があると思います。MyFacesのcommandLinkなんてその最たる例で、ハイパーリンクがPOSTリクエストになってしまうという素晴らしい仕様(僕が関わったS2JSFのプロジェクトではこれが許容できず、commandLinkを全部outputLinkに書き換えた)。 これって、RESTful的なURI駆動の考え方と根本的に相容れないんじゃないかな。どう
2019-03-28 Python/インスタンス生成 2018-01-02 Python/クロージャ Pythonを読む 2018-01-01 Python/メソッド呼び出し 2017-12-31 Python/build_class後編 2017-12-30 Python/読解対象とするPythonコードと解析方法 2017-12-24 Python/build_class前編(というよりPyTypeObject) 2017-12-07 Python/ビルトインがビルトインされるまで 2017-12-03 Python/C関数実行とPyObject 2017-10-22 Django/テンプレートシステムを読む(レンダリング) Djangoを読む 2017-10-21 Django/テンプレートシステムを読む(テンプレートのパース) 2017-09-24 Django/テンプレートシステ
_ 複数の OpenID を切り替えて使うときの振る舞い [openid] 細かいことですが,ひとつの IdP が提供する複数の OpenID を切り替えて 使うような状況では,IdP の振る舞いが定められてないかもしれません (仕様バグ?). たとえば,仕事とプライベートで異なる OpenID を使い分けるような状況 です.いくつかの IdP でテストしてみたところ,エラーや不自然な振る 舞いが見られました. 原因を分析して,解決方法を考えてみました. # まだ Open Problem なら,open-id ML に投げてみようかなぁ. (2008-01-05追記) machu さんから,シングルログアウトとの関係について コメントいただきました.ありがとうございます. シングルログアウトがないよって話かな? 確かに,シングルログアウト (Consumer と IdP で同期を取ってロ
A Ruby MapReduce Framework Skynet RubyForge Home Documentation See Skynet at RailsConf 08 Sat Mar 31, 2008 4:25pm – 5:15pm PDT @ Portland Ballroom 255 More Info What is Skynet Skynet is an open source Ruby implementation of Google’s MapReduce framework, created at Geni. With Skynet, one can easily convert a time-consuming serial task, such as a computationally expensive Rails migration, into a di
今日は半日以上モナドに関するネット上の文章をあさっていたうえに、考えすぎ疲れで昼寝もした。 そのせいか少し前進した。特に参考になったところをメモ。 HaskellのモナドIO さて,f が入出力を行う手続だとしたら f を引数に適用したときの値は,引数の値だけではなく,その時のプログラムの外側の世界に依存することになります.また,入出力を「実行」した後の世界は,「実行」前の世界とは別の世界になっているでしょう.この様子を Haskell のプログラムで表現すると(つまり世界の更に外側から見ると) サルでもわかるIOモナド①-副作用の除去 具体的に言いましょう。上で示した関数(y, world')= f(x, world) において x を与えてやると(あるいは、束縛すると)、 (y,world') = g(world)という新しい関数が出来ます(このように関数の引数の一部を束縛することによ
RGBE Image Format Specifications Cornell University Program of Computer Graphics RGBE is an image format invented by Greg Ward Larson. It stores pixels as one byte RGB (red, green, and blue) values with a one byte shared exponent. Thus it store four bytes per pixel. RGBE's biggest advantage is that it allows pixels to have the extended range and precision of floating point values. Often when we ge
AJAX、リッチインターネットUI、マッシュアップ、コミュニティ、ユーザ作成コンテンツなどなど、いずれも複雑さを増すばかりでさほど値打ちはない。これらをデザインするとなると、リソースもかなり必要になる。巷で騒がれているものが最大の利益をもたらすことはないということが(またしても)明らかになったというわけだ。 Web 2.0 Can Be Dangerous by Jakob Nielsen on December 17, 2007 利益を追求しようと思うなら、Web 2.0は危険かもしれない。巷で話題のテクノロジー開発に夢中になるということは、あなたのユーザに、ひいてはあなたの利益にとって本当の意味で重要な投資対効果の高いデザインにあてられるはずのリソースをそちらに回すことに他ならない。 少し前にお目見えしたテクノロジー(FlashやPDFが代表例)とは違い、Web 2.0はユーザにとって
j-j-j-jQuery. It’s on everyone’s lips, right? You love it or you hate it, or you’ve never tried it but you love it, or you’ve never tried it but you super-hate it. Yeah, we know. Well, PJ and I launched FamSpam a bit ago and made the bold move of powering all the jabbascript with jQuery. We even wrote our own Facbeook-style lightbox library in jQuery (Facebox). So while this is a Ruby blog, indulg
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く