タグ

2011年1月18日のブックマーク (9件)

  • Life is beautiful: Javascript、クロージャを使ったプライベート関数の隠蔽について

    (このエントリーは「Javascriptクイズ:無名関数と実行効率の話」の続編。) 「???」と頭をかしげる太郎に、「じゃあ、これだったらどうかな?」と三郎はコードを書き始めます。 function code2name(code) { var mapping = { 'us': 'United States', 'ja': 'Japan', 'ko': 'Korea', 'ru': 'Russa', 'uk': 'United Kingdom', 'fr': 'France', 'cc': 'China', 'gw': 'Germany' }; return mapping[code] || '(unknown)'; } 「カントリーコードを国名に変換しているんですね。」と太郎。 「どこが問題だか分かる?」 「うーん、マッピングのためのオブジェクトを毎回作り直しているところかな。」 「そう

  • Life is beautiful: Javascriptクイズ(中級者向け):無名関数と実行効率の話

    Javascriptを使い始めたばかりの太郎君に、上司の花子さんから「スタイルシート用のスタイル名をDOMからアクセス可能なプロパティ名に変更するJavascriptのライブラリを作って欲しい」という課題が与えられました。何のことか分からずにポカンとしている太郎君に、花子さんは「"font-style" を"fontStyle"に変更する関数を作ればいいのよ」と言い残して立ち去ってしまいます。 O'ReillyのJavascriptとしばらく格闘した太郎君は、やっとライブラリを完成させます。 function capitalize(str) { return str.charAt(1).toUpperCase(); } function style2prop(str) { return str.replace(/-[a-z]/g, capitalize); } "font-style"が

  • Pythonのクロージャ

    Pythonのクロージャ

    Pythonのクロージャ
  • [JavaScript] 猿でもわかるクロージャ超入門 1 問題 - DQNEO起業日記

    問題です。 問題: 呼び出すたびに、1,2,3,...を返すような関数 f( )を定義せよ。 f(); // 1 f(); // 2 f(); // 3 この問題、解けますでしょうか? 普通の関数では、できないと思います。 しかし「クロージャ」というのを使えば、このようなことができます。 クロージャって何だ? 「クロージャ」という言葉を、プログラムのやサイトで目にすることがありますよね。 私が最初に見たのは続・初めてのPerl 改訂版(アルパカ)でした。 まったく理解できませんでした。 その後、404 Blog not foundやnaoyaさんのブログなどで「クロージャ」という単語を目にしました。 やはり、まったく分かりませんでした。 とどめの一撃はWikipediaの解説記事。 クロージャ (クロージャー、Closure) は、プログラミング言語において引数以外の変数を実行時の環境

    hokorobi
    hokorobi 2011/01/18
    クロージャはやっぱり理解出来ていなかったのでお勉強。
  • データベース設計で派生関係は難しい - プログラマの思索

    @t_wadaさんが、データベース設計の素晴らしい資料をリンクしていたのでメモ。 下記の資料は、MySQLでソーシャルゲームDB設計のお話らしいが、データモデリングの設計ノウハウが秀逸。 気になった点をメモしておく。 理解できたことをラフなメモ書き。 【元ネタ】 Twitter / Takuto Wada: 素晴らしい資料。"「スキーマ」「トランザクション」「インデックス」はもっと評価されるべき" / ソーシャルゲームのためのデータベース設計 http://htn.to/PzrnbR 【1】可用性や整合性に関する要求が意外と多い たとえ、SNSゲームであろうが、課金体系になるとお金が絡むため、ユーザの要求のレベルも上がるし、事業者の責任も大きくなる。 データモデリングはアーキテクチャ設計につながる。 【2】派生関係 データベース設計(DOA)でも、派生関係(継承関係)はオブジェクト指向

    データベース設計で派生関係は難しい - プログラマの思索
    hokorobi
    hokorobi 2011/01/18
    駄目だ理解できない。
  • ソーシャルゲームのためのデータベース設計

    ・データベース的な観点でのソーシャルゲームの特徴 ・データモデル ・ソーシャルゲームに従来型RDBMSを使うべきか、�流行りのNoSQLで行くべきか ・負荷対策 (アーキテクチャ面) ・負荷対策 (ツール面) ・インフラエンジニアのキャリアについて

    ソーシャルゲームのためのデータベース設計
  • チケット駆動開発で現場の問題を顕在化させる - rabbit2goのブログ

    開発チームとしてやるべき事は、大きなものから小さなものまで全てTracのチケットに放り込んで作業を進めている。目的は下記の通り。 作業量の顕在化 チケットの更新状況を見れば、チームとしてどんな作業を進めており、どのくらいの分量が残っているのか一目瞭然だ。 作業遅延の顕在化 各チケットには期日があるし、タイムラインにはチケットの更新状況が出てくるので、作業が予定通りに進んでいるのか、遅れているのか直ぐに分かる。 作業漏れの顕在化 やるべき事は全てチケットに入っているはずだが、ふとした会話の中で、これ以外に問題が見つかることが珍しくない。このような誰にも気付かれずに存在していた問題こそが対処を要するものだ。 チケットに記載するということは「やるべき事を明確に定義する」という事に他ならない。「仕事をする」ということは実際のところ曖昧模糊としていて「やるべき事を忘れていた」とか「誰かの作業がいつの

    チケット駆動開発で現場の問題を顕在化させる - rabbit2goのブログ
  • 情弱ユーザーにも使えるRedmine @sakuraVPS(ubuntu10.04) - When it’s ready.

    こんにちわこんにちわ。ニュースではめっちゃ雪降ってるところがあるのにまだ今シーズン雪を見たことないJJなa2cです。 今日は、Redmineのインスコねたです。 0.12から、hgが使いやすくなっただの日語が標準で入ってるだの噂を聞いてTracでもいれてみようとしたのですが、5時間かかっても全然うまく動かなくて涙目。 同じようなソフトでRedmineがあるので、そっちも試してみようとやってみたら、1時間もかからないでセットアップ出来てしまったのでその手順。 ubuntu10.04 serverで、sakuraVPS上に入れてみました。 aptitude install redmineと、50個くらいいろんなモノをインストールして、途中でDBは何にしますか?的なダイアログが出てくるので Yes と sqlite3 を選択する。 インストール作業は以上 バーチャルホストで動かしたいので、si

    情弱ユーザーにも使えるRedmine @sakuraVPS(ubuntu10.04) - When it’s ready.
  • Selenium Generator - GeekFactory

    以前に作ったものをリメイクしてみました。Selenium IDEで作成したシナリオを繰り返し、バリエーションテストのテストケースを生成するツールです。 Selenium Generator - http://lab.hidetake.org/selenium-table/ 3年前に書いたコードはprototype.jsを利用していましたが、今回はjQueryに移行しました。jQueryベースの方が読みやすい気がします。これがまた3年経ったら技術的負債に化けてるかもw

    Selenium Generator - GeekFactory