タグ

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

  • YAPC::Asia 2013 / Github によりバザールモデルへ - naoyaのはてなダイアリー

    ブログを書くまでが YAPC、ということなので、書きます。 初日「モダンPerlリファクタリング」 自分は20分枠で 「モダンPerlリファクタリング」という題で話しました。スライドは以下で公開してます。 https://speakerdeck.com/naoya/modanperlrihuakutaringu-number-yapcasia 今回、思いの他 CI やテストに関する発表が他に多くてそれらに比べると基礎的な内容に終始しちゃいましたが と @t_wada 御大よりお褒めに与ったので個人的には満足です。 リファクタリングはテストさえ書ければその半分以上は終わったことになる、ただしテストはテストを書くことそのものが主目的になりすぎないように。そして書いたテストはとにかく計算機を利用して頻繁に実行しましょうということが言いたかったのですが、意図通りに伝えられたんじゃないかなと思う。

    YAPC::Asia 2013 / Github によりバザールモデルへ - naoyaのはてなダイアリー
  • Zopfli - naoyaのはてなダイアリー

    Googleが今日(米国時間2/28)、オープンソースの新しい圧縮アルゴリズムZopfliをローンチした。今の標準圧縮技術であるzlibライブラリに比べて5〜8%圧縮率が高いといわれ、また解凍アルゴリズムは今のWebブラウザが現用しているもので間に合うため、Webサーバがこれを採用すれば、データの伝送速度が上がり、Webをやや速くすることができるだろう。 Google が出力が deflate 互換の圧縮アルゴリズムをオープンソースにしたというので、ちょっとタイムラインで話題になっていた。圧縮アルゴリズム周りにはまってた頃から結構時間が経ってしまって色々忘れてしまったけど、少しニュースを捕捉してみようと思う。 Zopfli は deflate 互換なので、deflate アルゴリズムを解釈できる実装なら伸張できる。当然ブラウザが持ってる deflate 実装で伸張できるので、エンドユーザー

    Zopfli - naoyaのはてなダイアリー
    pmakino
    pmakino 2013/03/04
    「この論文では幾つかのコーパスを対象に gzip -9、7-zip、kzip、Zopfli と Deflate 互換のアルゴリズムを比較…Zopfli はそのいずれよりもサイズが小さくなっている」<Deflate互換なのにLZMA以上が本当ならすごいね
  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

    開発メモその3です。今回は Perl のおはなし。 何年も前に作ったウェブアプリケーションのコードを開いてみたら黒歴史なコードが出てきて憂な気分になる、そんな経験ありませんか。私はあります。ずっとそんな現実から目を背けて生きてきました。 さて、先日 Perl + CGI で書いて Apache::Registry で高速化している、実行環境が Apache に癒着した CGIアプリケーションを発見しました。おえ〜っ。一から作り直したい気持ちをぐっと堪えて、これを Plack 化したりとリフォームしていくとしましょう。その過程を以下記します。劇的ビフォア・アフター! ・・・とかは期待せず、地道な変更を積み重ねていくのがコツです。 方針 いきなりコードをがりがり書き換えていくというよりは、試行錯誤のしやすい環境に移行させていきながらリフォームを進めます。遠回りですが、結果的にその後の運用が楽

    開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
  • 先の記事への反応に関して - naoyaのはてなダイアリー

    「クラウドという言葉は定義が曖昧で広く拡大解釈が浸透されてしまったから、混同されるのはもうしょうがない」という意見もいただきました。それは自分的にはあまり賛同できないです。90年代からあるような形のレンタルサーバー的なものも「クラウド」として扱って、今回の件に限らず「そっか、クラウドといっても万能じゃないんだね」的な理解をされてもしょうがないということ態度にもなってしまいかねないので。 もちろん、クラウドは万能じゃないしクラウドに預ければ万事 ok という意味ではないですよ。そうではなくて、クラウドという話がされるよりずっと昔からあるものまで含めて「クラウド」扱いされて、その文脈で最近のビジネスやシステム動向までいっしょくたに扱われても問題ない、とまではさすがに大らかにはなれないなあと思ってます。 自分的には IaaS/PaaS はともかく SaaS まで含めて「クラウド」と言ってしまうと

    先の記事への反応に関して - naoyaのはてなダイアリー
    pmakino
    pmakino 2012/06/28
    この話にユーザ視点も一般人もなくて、そもそも明確な定義がない言葉だと思うんだが…。今日の「クラウド」がレン鯖と排他の関係にあるとしたいならば、まずWikipediaのクラウドの項目を全面的に書き直さないと…
  • ファーストサーバ社の障害に関して - naoyaのはてなダイアリー

    あまりまとめられないので箇条書きで。 「クラウド (IaaS)」と「レンタルサーバ」の区別 技術的には「クラウド (における IaaS)」と「レンタルサーバー」は明確に異なるものなので、そこは混同されないことをおすすめしたい 今回障害が起こったファーストサーバのサービスはレンタルサーバであって、クラウドサービスではないだろう クラウド = Amazon Web Services (AWS) や Heroku がその代表例だと思ってもらえばいい *1 具体的には、日経新聞の当該記事のこと → http://www.nikkei.com/article/DGXNASFK2600L_W2A620C1000000/ 意図は不明だが「クラウド」のような目新しいものと今回の事件とを結びつけて何かしらの印象を与えようとするのは、個人的には感心しない 業者が「クラウド」と謳っていたかどうかは知らない。例え

    ファーストサーバ社の障害に関して - naoyaのはてなダイアリー
    pmakino
    pmakino 2012/06/27
    レン鯖もクラウドで一括りされる気持ち悪さはわかるんだけど、そもそもバズワードで移り変わる曖昧な言葉なんだから、明確な定義がない中で正しいとか間違ってるとか論じても不毛なだけのような
  • YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー

    2日目の発表も終えました。資料を公開します。 はてなブックマークのシステムについてView more presentations from Naoya Ito. 今日も少し駆け足気味でした。YACP::Asia 2009、今年も楽しかったです。Hackathon 出ずに京都に戻らなければならなかったのが悔やまれます。 発表の様子 撮影: id:hirose31

    YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー
  • YAPC::Asia 2009 1日目 「Perlで圧縮」の資料 - naoyaのはてなダイアリー

    1日目の発表を終えました。資料を公開します。 Perlで圧縮View more presentations from Naoya Ito. 発表の方は少し駆け足になってしまいました。明日ははてなブックマークのシステム事例の話をしたいと思います。 発表の様子 via: http://yapcasia2009.ficia.com/

  • 第11回 Kansai.pm / スペルミス修正プログラムを作ろう - naoyaのはてなダイアリー

    昨日は第11回 Kansai.pm でした。 今回は無理を言って自分がホストを担当させていただきましたが、面白い発表が多く開催した自分も非常に満足でした。 PFI の吉田さんによる Cell Challenge での計算機に合わせたアルゴリズムのチューニング手法の発表 (発表資料) は圧巻でした。伊奈さんの文抽出の話 (発表資料)、はこべさんのコルーチンの話 (発表資料)、いずれも難解になりがちなところを凄く分かりやすく解説されていて、さすがだなと思いました。各々ショートトークも、いずれも良かったです。 スペルミス修正プログラムを作ろう 自分も 20 分ほど時間をいただいて、スペルミス修正プログラムの作り方について発表しました。 スペルミス修正プログラムを作ろうView more presentations from Naoya Ito. スペルミス修正プログラムについてはずばり スペル

    第11回 Kansai.pm / スペルミス修正プログラムを作ろう - naoyaのはてなダイアリー
  • PDL で PageRank - naoyaのはてなダイアリー

    id:smly さんが PageRank や HITS を Python で実装 されているのに触発されて、自分も PageRank を Perl で実装してみました。 PageRank の計算の中心になるのは Power Method (べき乗法) です。べき乗法では行列とベクトルの積を計算しますので、手軽に使える行列演算ライブラリがあると楽でしょう。 色々調べてみたところ、PDL (The Perl Data Language) が良く使われているようでしたので、これを選択しました。PDL では各種行列演算が簡単に行える他、文字列評価をオーバーライドして行列の文字列出力を良い具合で定義してくれていたりと、なかなかに便利です。PDL は行列計算以外にも色々な科学技術計算やグラフ描写などの操作をサポートしているようです。 さて、PDL を使った PageRank 計算のコードは以下のように

    PDL で PageRank - naoyaのはてなダイアリー
  • HITS, 主成分分析, SVD - naoyaのはてなダイアリー

    ウェブグラフのリンク解析によるページの評価と言えば PageRank が著名ですが、もうひとつ Jon Kleinberg による HITS (Hyperlink-induced topic search)も有名です。最初の論文 Authoritative Sources in a Hyperlinked Environment は 1999年です。IIR の 21章で、この PageRank と HITS についての解説がありました。 HITS HITS はウェブページの評価に二つの軸を用います。一つが authority スコア、もう一つが hub スコアです。 例えば「Perl の情報が欲しい」という検索要求に対しては CPAN や 開発者である Larry Wall のホームページなどが重要度の高いページかと思います。これらのページは「Perl に関して信頼できる情報源」ということ

    HITS, 主成分分析, SVD - naoyaのはてなダイアリー
  • OGC2009 での発表資料 - naoyaのはてなダイアリー

    昨日開催されました OGC2009 にて、はてなブックマークのコミュニティについて発表させていただきました。 INTERNET Watch さんなどでも取り上げていただいてます。 http://internet.watch.impress.co.jp/cda/event/2009/02/05/22342.html http://game.watch.impress.co.jp/docs/20090206/ogc_net.htm 以下に発表資料を公開します。(ウェブでの公開用に少々編集を行いました) OGC2009 はてなブックマークについてView more presentations from Naoya Ito. (tags: hatena) 後半時間が足りずに飛ばしてしまったので、記事では触れられていませんが、まだまだ課題が山積みです。今後も継続的に改善していきたいと思っています。

    OGC2009 での発表資料 - naoyaのはてなダイアリー
  • Burrows Wheeler Transform と Suffix Array - naoyaのはてなダイアリー

    ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ|          あ…ありのまま 今日 起こった事を話すぜ! |i i|    }! }} //| |l、{   j} /,,ィ//|       『BWT について調べていたら Suffix Array のライブラリができていた』 i|:!ヾ、_ノ/ u {:}//ヘ |リ u' }  ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人        な… 何を言ってるのか わからねーと思うが /'   ヾ|宀| {´,)⌒`/ |<ヽトiゝ        おれも何をされたのかわからなかった… ,゙  / )ヽ iLレ  u' | | ヾlトハ〉 |/_/  ハ !ニ⊇ '/:}  V:::::ヽ        頭がどうにかなりそうだった… // 二二二7'T'' /u' __ /:::::::/`ヽ /'

    Burrows Wheeler Transform と Suffix Array - naoyaのはてなダイアリー
  • KOF 2008 の発表資料 - naoyaのはてなダイアリー

    KOF 2008 での発表資料「はてな流大規模データ処理」を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/081108huge_data.ppt 一部参考文献からの引用 (Introduction to Information Retrieval から Vector space model の図、たつをの ChangeLog から転置インデックスの図) があります。この場を借りて感謝。 環境によってはおそらくフォントの表示がいまいちだと思いますが、ご了承ください。 追記 SlideShare にアップロードしました。 081108huge_data.pptView SlideShare presentation or Upload your own. (tags: linux mysql) 追記: メモリはディスクの 150 倍について

    KOF 2008 の発表資料 - naoyaのはてなダイアリー
  • サーバー/インフラを支える技術 - naoyaのはてなダイアリー

    『サーバ/インフラを支える技術』という書籍を執筆しました。明日 8/7 に発売です。 [24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ) 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己出版社/メーカー: 技術評論社発売日: 2008/08/07メディア: 単行(ソフトカバー)購入: 133人 クリック: 2,270回この商品を含むブログ (288件) を見る 書名にもあります通り、インターネットサービスのサーバ/インフラ周りについての書籍で、Klab さんのエンジニアの方々と一緒に書きました。ただし、サーバーと言っても少し特殊で、如何にコストをかけずに堅牢なサーバー環境を作るかというのが書籍に一貫している姿勢です。 Linux、LVS、DRBD、Squid、Nag

    サーバー/インフラを支える技術 - 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のはてなダイアリー
  • Kansai.pm での発表資料 (Hadoop Streaming で MapReduce) - naoyaのはてなダイアリー

    Kansai.pm に参加しました。とても楽しかったです。自分も "Hadoop Streaming で MapReduce" という題目で発表しました。取り急ぎ、資料を以下に公開します。 http://bloghackers.net/~naoya/ppt/080530kansaipm.ppt MapReduce は Google のバックエンドで動いている分散並列バッチ処理システムです。GFS は Google の分散ファイルシステムです。Google ウェアのクローンとしてオープンソースで開発されているのが Hadoop。Hadoop は Yahoo! Inc や Facebook, Amazon.com などでも利用されているとのこと。Hadoop は Java ですが、Hadoop Streaming を使うと Java 以外でも MapReduce できます。 以下のエントリも合

    Kansai.pm での発表資料 (Hadoop Streaming で MapReduce) - naoyaのはてなダイアリー
  • Introduction to DBIx::MoCo - naoyaのはてなダイアリー

    YAPC::Asia 2008 で OR マッパの DBIx::MoCo について発表しました。DBIx::MoCo は最近のはてなのサービスで利用しているバックエンドのソフトウェアで、Ruby 風のリスト操作や memcached による透過的なキャッシュなどをサポートしています。 http://bloghackers.net/~naoya/ppt/080516introduction_to_dbix_moco.ppt にて発表資料を公開しています。

    Introduction to DBIx::MoCo - naoyaのはてなダイアリー
  • 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のはてなダイアリー
  • Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー

    Perl の言語組み込みのリスト操作は関数形式で、push(@array, 1, 2) のような記述になります。一つのリストに対して複数の操作をしたい場合などは、関数呼び出しを複数行にわたって書いていくことになり、少々面倒です。しかし Perl は、Perl のリスト実装である配列のリファレンスに bless してメソッドを定義したクラスを作ることができます。この独自に定義したクラスにプリミティブな操作を加えていって、Ruby のように連続したメソッドの呼び出しによるリスト操作を実現することが可能です。 ここでは List::RubyLike という配列クラスを作成します。まずは手始めに配列に bless して、size() メソッドが呼び出せるようにします。以下のようになります。 package List::RubyLike; use strict; use warnings; sub

    Perl のリスト操作を Ruby 風に - naoyaのはてなダイアリー
  • Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー

    UNIX でプロセスを一時的にスリープさせるには sleep(3) が使えます。sleep() は引数に秒単位でしか時間を指定できないので、より短い時間を指定したい場合は usleep(3) (マイクロ秒) や nanosleep(2) (ナノ秒) を使うことになります。sleep(), usleep() はライブラリ関数、nanosleep() はシステムコール*1です。 この usleep() や nanosleep() で 1ms 程度の短い時間プロセスを停止したとして、正確にその時間だけ停止させることはできるでしょうか。http://shiroikumo.at.infoseek.co.jp/linux/time/ にあるコードを参考に、実際に動かしてみます。カーネル 2.6.19 x86_64、CentOS 5 で試します。 まず、nanosleep() で 1ms のスリープを行

    Linux のスリープ処理、タイマ処理の詳細を見る - naoyaのはてなダイアリー