タグ

perlとprogrammingに関するakaihoのブックマーク (17)

  • 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のはてなダイアリー
  • 404 Blog Not Found:perl - Encode 入門

    2008年04月09日01:00 カテゴリLightweight Languages perl - Encode 入門 すでにOSCONでもYAPCでも、あちこちそちこちでこの基方針に関しては話したのですが、ここ 404 Blog Not Found でも改めて。 Perl で utf8 化けしたときにどうしたらいいか - TokuLog 改め だまってコードを書けよハゲ 入り口で decode して、内部ではすべて flagged utf8 で扱い、出口で encode する。これがすべてです!とにかくこの基方針をまもっていれば幸せになれます。ここでは、EUC-JPでエンコードされたファイル中の「小飼弾」「こがいだん」「コガイダン」「Kogai Dan」を正規表現で書き換えて標準出力にEUC-JPで出力するプログラムを例にとって説明します。 decode() then encode(

    404 Blog Not Found:perl - Encode 入門
  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
  • 最速インターフェース研究会 :: ハッシュキーの存在チェックを超高速に省メモリで行う方法

    リンク先まとめて登録できる機能が付きました。 http://blog.livedoor.jp/staff_reader/archives/51034585.html かとゆー家断絶からリンク張られてるサイトをまとめて登録とか http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww6.ocn.ne.jp%2F~katoyuu%2F&extract=on スタートマック体験モニタのブログをまとめて登録とか http://reader.livedoor.com/subscribe/?url=http%3A%2F%2Fwww.apple.com%2Fjp%2Farticles%2Fstartmac_monitor_2%2Fwinners.html&extract=on できます。 リンク先の全件にAuto Discoveryをかけると、

  • Perl and UNIX Network Programming (YAPC::Asia 2007) - naoyaのはてなダイアリー

    YAPC::Asia で Perl UNIX ネットワークプログラミングについての発表をしてきました。UNIX ネットワークプログラミングの基礎の概論、I/O多重化の話、Perl のモダンなネットワークライブラリの話です。資料を以下に置いておきます。 http://bloghackers.net/~naoya/ppt/070404Perl_and_UNIX_Network_Programming.ppt (ppt, 122k) なお、会場では口頭で触れましたが、資料中のソースは簡単のためエラー処理を飛ばしています。また、途中で出てくる図は例えば vfs のページキャッシュをはしょってあったりとこれも簡単のため省略事項がある点にご注意ください。 それからフォントが Consolas なので Consolas が入ってない環境だと変になる、かも。

    Perl and UNIX Network Programming (YAPC::Asia 2007) - naoyaのはてなダイアリー
  • ITmedia エンタープライズ:第4回 Webサービスって実はこんなに簡単 (1/2)

    第4回 Webサービスって実はこんなに簡単:作って学ぶ、今どきのWebサービス(1/2 ページ) 前回まで3回に渡って、PerlにおけるWebプログラミングの基礎を解説しました。今回は一歩進めて、より実用的なアプリケーションを作るため、その足がかりとなるであろうXML Webサービスの使い方について解説していきたいと思います。 前回まで3回に渡って、PerlプログラムからWeb上のコンテンツを取得するLWPと、LWPで取得したXML文書を料理するためのXMLモジュールの利用方法を学びました。いずれもPerlにおけるWebプログラミングの基礎となるものでした。今回は一歩進めて、より実用的なアプリケーションを作るため、その足がかりとなるであろうXML Webサービスの使い方について解説していきたいと思います。 XML Webサービスって? 前回も少し触れましたが、XML Webサービス(以下、

    ITmedia エンタープライズ:第4回 Webサービスって実はこんなに簡単 (1/2)
  • ITmedia エンタープライズ:第3回 XML::SimpleであらゆるXML文書を料理する (1/2)

    第3回 XML::SimpleであらゆるXML文書を料理する:作って学ぶ、今どきのWebサービス(1/2 ページ) RSSにおけるXML::RSSのように、専用のモジュールがある場合にはそれを使えばよいのですが、そうでない場合は汎用のXMLパーサーモジュールを使ってパースすることになります。今回は、XML::Simpleを使ってあらゆるXML文書を料理できるようにしてみます。 前回まででXML::RSSによるRSS料理方法は分かったとして、ではRSS以外のXML文書を料理する場合にはどうしたらよいのでしょう? RSSにおけるXML::RSSのように、専用のモジュールがある場合にはそれを使えばよいのですが、そうでない場合は汎用のXMLパーサーモジュール*を使ってパースすることになります。 XML文書からPerlのデータ構造を作るXML::Simple Perlの代表的なXMLパーサーである

    ITmedia エンタープライズ:第3回 XML::SimpleであらゆるXML文書を料理する (1/2)
  • Perl正規表現雑技

    このページは Perl5.6 を対象としています. perl スクリプトは EUC-JP で書かれることを想定しています. このページは 正規表現メーリングリスト を参考に,私が独自にメモとしてまとめたものです. このページの正規表現やスクリプトについての詳しい説明, わかりやすい説明はおそらくできません. このページに書かれているスクリプトは, 個人の責任において実行してください. このページに書かれているスクリプトの 利用・改造は自由 です. その際はどこかにこのページの URI( http://www.din.or.jp/~ohzaki/regex.htm )を参考として記述していただければ幸いです(任意). ご意見・ご感想・ご要望などは にお願いします.こう書いた方がいい, 動かん,わからん,バグってる,これ書け,などなどお待ちしています. このページへの リンクは自由 に張ってく

  • 美しいプログラムの美しくないソース : 404 Blog Not Found

    2006年12月19日17:00 カテゴリArt 美しいプログラムの美しくないソース 半分だけ同意。 304 Not Modified: プログラマの美意識 私にとって美しいプログラムとは、シンプルなプログラムのことです。なぜ半分だけ、かというと、美しくない状況をより美しくすることがプログラムの使命であるならば、結果としてソースコードが美しくならないことも往々にしてあるから。 もっと身も蓋もない言い方をすると、この世の穢れをプログラムが背負う事もまたあるのだということ。 このことは、特にAPIを提供するソースを書くときに顕著だ。こういったプログラムに求められるのは、APIが美しいことであって、ソースコードそのものが美しいことではない。そこでは、さまざまな泥臭いことはAPIを提供するプログラムがかぶることで、APIのユーザーは醜いものを気にせずにプログラムできるようになる。 実装が美しいけど

    美しいプログラムの美しくないソース : 404 Blog Not Found
  • 電脳言語における祖先の呪い--演算子篇 : 404 Blog Not Found

    2006年11月30日00:45 カテゴリLightweight Languages 電脳言語における祖先の呪い--演算子篇 というわけで、Cの娘達が、Cにどのように呪縛されてきたかを考察してみる。 404 Blog Not Found:プログラマーが単一言語にこだわるべきではないN個の理由 比較的それに近いのはDだけど、それでもDはCとJavaの呪縛が強すぎるように思う。次回はそのことについて述べようと思う。Cの呪い、というより母言語の呪いとして一番強いのは、実は静的とか動的とか、コンパイラ言語だとかスクリプト言語だということではなくて、演算子、もう少し具体的に言えば、「どんな記号をどの演算子に割り当てるか」だと思う。 Cに関しては、特に強かった呪縛は->演算子。そしてなぜこれが呪縛になったかというと、単項(unary)の*、すなわちポインター参照が前置だったから。 おかげで、Pasca

    電脳言語における祖先の呪い--演算子篇 : 404 Blog Not Found
  • 使える言語は Perl と言うと何故にバカにされるのか?

    ?さん 「言語何使ってる?」 僕 「Perl がメインかなぁ〜」 ?さん 「( ´_ゝ`)フーン Java じゃないんだぁ・・・今時 CGI で書いてるの?」 ここで言う Java ってのは Tomcat や Resin に代表される Servlet / JSP コンテナを利用したプロセス常駐型 java の事を指してます。決して Java-cgi のことを意味していません。多分彼らも、そういったことは意識していないと思います。 業で随分昔(servlet 技術が出る前)に作成した Java-cgi で作られたアプリケーションが現役で活躍していますが、とてつもなく遅いです。いわゆる Perl-cgi が遅いと言われる理由と一緒です。一番の勘違いのポイントは、 CGI = Perl って図式が無意識のうちにあると言うことですね。でも実際は、CGI の定義は、アクセスがあるたびにサーバが新し

  • [を] Perl の -T スイッチ

    Perl の -T スイッチ 2006-05-27-3 [Programming] プログラミング Perl 第3版 VOLUME 2 「23章 セキュリティ」より: デーモン、サーバ、および他人のために実行されるすべてのプログラム (例えばCGIスクリプト)には、-Tスイッチを指定すべきである。 [...] すべてのCGIスクリプトに-Tフラグを指定して実行するということは、単 に良い考えであるだけではない――それは、荒野のごときインターネット で生き延びるための掟なのである。 「掟」だそうです!!! とはいえ、今まであまり意識してませんでした。反省。 というわけで説明。perlスクリプトの先頭を以下のようにする。 #!/usr/bin/perl -T すると、コマンドライン引数やCGIのパラメタなどの外から来た変数を ファイル名として開くときに Insecu

  • naoyaのはてなダイアリー - Perl の話をまとめた

    use strict がどうのこうのという話があって、そういえば昔自分もそんなこと書いたなあと思っていろいろ自分の書いた Perl の話を見返してて、せっかくだから拙作のまとめでも作っておくかと思いました。とりあえず文章量がそれなりにあって、まとまりのあるものだけを見繕ってみます。 今見ると、当時の理解が不十分で微妙なところもあったりしますが、そのあたりはご愛嬌。 いま読んでもまだ陳腐化はしてなさそうな話 お薦めの Perl をいくつか紹介 : NDO::Weblog Perlおすすめの書籍や情報。今ならここにPerl救命病棟とWEB+DB PRESS総集編を入れるかな。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー Perlプログラマのレベル10。なんか他言語にも飛び火した。 Perl の変数に関するちょっとした誤解と、動的な

    naoyaのはてなダイアリー - Perl の話をまとめた
  • http://d.hatena.ne.jp/courant/20060506/1146925142

  • タブのスペース化はタブ幅よりも重要である : 404 Blog Not Found

    2006年04月30日03:46 カテゴリOpen Source タブのスペース化はタブ幅よりも重要である あえて断言します。君たちは半分しかわかっていないと。 Charsbar::Note - タブとスペースの話 あえて断言しときます。こんなモンはバッドノウハウなんであって、ベストプラクティスでもなんでもない、と。 最速インターフェース研究会 :: タブとスペースと萌ディタの話なんかそもそもタブを使わずにスペース4で統一せよってのはフォントサイズをピクセル単位で指定したがるデザイナの言い分みたいで気にわない。君たちは、patchのことをきれいさぱーり忘れている。 人のコードを直したり、人にコードを直してもらったりしなくてもいいというのであれば、君たちのいい分ももっともだ。しかし、人とコードをやりとりする時にpatchをやりとりする場合、tabは頭が痛い以外の何者でもない。 以下に二つの

    タブのスペース化はタブ幅よりも重要である : 404 Blog Not Found
  • 無精で短気で傲慢なプログラマ これ、読みやすいの?

    perl - 勝手に添削 - WEB+DB Press Vol.32 pp.94 について。 わたしなんかよりよっぽど perl を知っている人なのだろうから機能的な 点についてはコメントしないが、はたしてこの添削後のコードはきれいなのか? 気になるのは、   sub search_result{ return unless param("query"); ... my $response = get($uri) or return; ... と途中で節操なく return しているところ。 上記関数の引数がなく、$q がグローバル変数化しているところ。 最後の   return $xml->{'totalResultsAvailable'}, "hits", ol(map { encode_utf8 li(a({href=>$_->{'ClickUrl'}}, $_->{'Title'}

    akaiho
    akaiho 2006/04/23
    周りの人とコーディングスタイルの基準が違ってて戸惑うことはたまにあるな・・
  • 「perlに関する玄人向けTIPS集」へのツッコミ - shag の日記

    perlに関する玄人向けTIPS集【1】 をみたら、あまりにツッコミどころが満載だったのでちょっと書いておきます。気を悪くされたらごめんなさい(何か変な日語だ)。 ハッシュのキーをABC順にソートする foreach my $key(sort $hash{$a} cmp $hash{$b} keys %hash){ sort の引数は sort SUBNAME LIST sort BLOCK LIST sort LISTなので、 sort {} @array が正しい。しかも、{ $hash{$a} cmp $hash{$b} } は hash の value での sort ですね。正しくは以下のようになるのかと。 #!/usr/local/bin/perl my %hash = ( c => 'mount', m => 'play', a => 'zip', l => 'view',

    「perlに関する玄人向けTIPS集」へのツッコミ - shag の日記
  • 1