タグ

ブックマーク / naoya-2.hatenadiary.org (7)

  • PHP版 List_RubyLike - naoyaのはてなダイアリー

    PHP で遊んでいます。 練習がてら、以前に作った List::RubyLike (http://github.com/naoya/list-rubylike) という Perl モジュール *1 の PHP での実装を作ってみました。 <?php require_once 'List/RubyLike.php'; echo LR(array("foo", "bar")) ->push("baz", "piyo") ->map(function ($v) { return strtoupper($v); }) ->join(", ") . "\n"; echo LR(range(1, 5)) ->grep(function ($n) { return $n % 2 == 0; }) ->map(function ($n) { return $n * $n; }) ->sum() . "\n

    PHP版 List_RubyLike - naoyaのはてなダイアリー
    hibariya
    hibariya 2010/09/06
  • エンジニアの不安と壁 - naoyaのはてなダイアリー

    このところ、KLab×はてな エンジニア応援ブログコンテストというのを開催していまして、エンジニア人生に関するちょっとした小話をブログに書いていただくと、内容によっては、シリコンバレーに行けたり、iPad が貰えるかもしれない。という企画です。「え、ブログ書くだけでシリコンバレー? 」 なかなか太っ腹な企画です。 よい機会なので、宣伝がてら、自分もちょっと、昔話をしてみたいと思います。 振り返ってみると、自分がエンジニアとして経験を積むなかで、「ここが壁だったな」と思うところがぼちぼちありました。それが何で壁に感じたのかといま改めて考えると、いずれも体系的な知識がなかったために、それを乗り越えるための指針がなかったというのが大きかったように思います。 きれいなコードを書くにはどうしたらいいんだろう? 負荷分散って、どうやるんだろう? 溜め込んだデータをうまく活用するには、どうしたらいいんだ

    エンジニアの不安と壁 - naoyaのはてなダイアリー
    hibariya
    hibariya 2010/06/22
  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
    hibariya
    hibariya 2010/02/03
  • GNU screen いろいろまとめ。 - naoyaのはてなダイアリー:

    先日人力検索で GNU screen の設定TIPSについて質問してみたところ、かなーり役立つ設定とかをたくさん教えてもらうことができました。みなさん感謝。 そんで、教えていただいた通りにカスタマイズした結果、こんな感じのスクリーンショットが撮れました。MacOSX のターミナルです。 おかげさまでかなり便利になって作業効率が上がったと思います。いろいろ教えてもらったお礼とまではいきませんが、やった設定とかをはまりどころとかも交えて紹介してみます。名付けてリバースNDOメソッド。ちなみに、知ってる人にはごく当然のことが当たり前のように書いてるので、あんまり役に立たないかもしれません。 hardstatus alwayslastline で最終行にウィンドウ一覧を表示 これは今回の質問とは直接関係ないのですが、やるとやらないとでかなり使い勝手が違うので。 hardstatus alwaysl

    hibariya
    hibariya 2009/04/30
  • naoyaのはてなダイアリー - HTML::TagCloud

    del.icio.us / miyagawa 経由で見つけた CPAN モジュール HTML::TagCloud。Tag Cloud (はてなブックマークの右側に出てくるタグ一覧みたいなやつ) を生成する CPAN モジュールです。 出力はどんな感じかなと思って使ってみました。 #!/usr/local/bin/perl use strict; use HTML::TagCloud; my $tags = [ { tag => 'blog', count => 20}, { tag => 'ajax', count => 10}, { tag => 'mysql', count => 5}, { tag => 'hatena', count => 12}, { tag => 'bookmark', count => 30}, { tag => 'rss', count => 1}, { t

  • Wavelet Tree - naoyaのはてなダイアリー

    圧縮全文索引の実装などでしばしば利用される Rank/Select 辞書と呼ばれるデータ構造があります。詳しくは参考文献を参照していただくとして、今回は一般の文字列に対して効率的に Rank/Select を可能とするデータ構造である Wavelet Tree (ウェーブレット木) のライブラリを作りました。 http://github.com/naoya/perl-algorithm-wavelettree/tree/master my $wt = Algorithm::WaveletTree->new("abccbbabca"); is $wt->rank(6, 'a'), 2; is $wt->rank(6, 'b'), 3; is $wt->rank(9, 'b'), 4; is $wt->select(0, 'a'), 0; is $wt->select(1, 'a'), 6;

    Wavelet Tree - naoyaのはてなダイアリー
  • サーバ/インフラ Tech Meeting の資料など - naoyaのはてなダイアリー

    金曜日は サーバー/インフラを支える技術出版記念イベント サーバ/インフラ Tech Meeting の日でした。自分は「Linuxカーネルの読み方」と題して、自分なりにまとめたカーネルのソースコードを読むコツについてお話させていただきました。 発表資料を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/08080924svr_techmeeting.ppt (ppt) http://www.slideshare.net/naoya1977/how-to-read-linux-kernel/ (Slide Share) 同じく著者のひろせさんからはなぜこのを書いたか、どういうなのかという概論 (One more thing もありました)。Klab の安井さんは DSAS について、特に「ダイナミック」をキーワードにした幾つかのインフラ構

    サーバ/インフラ Tech Meeting の資料など - naoyaのはてなダイアリー
    hibariya
    hibariya 2008/08/10
  • 1