2008-01-01から1年間の記事一覧

変化は急には起こらない

自分を取り巻く周囲、物事の変化は急には起こらない。急に起こる変化というのは非常に希だろう。社会情勢にしてもビジネスにしてもコミュニティにしてもそうだが、何か変化を誘発する動きがあった時、すぐにそれが社会やコミュニティ全体に変化を及ぼすとい…

贈りもの

『サーバー/インフラを支える技術』を一緒に書いた id:hirose31 さんからはてなブックマークリニューアルの贈り物が届きました。微妙に見えていますが、箱を開けてみると...自分の大好物のカルボナーラでしたwww ちょうどおなかが空いた頃合いなので今か…

Shibuya.pm#10 を京都でも

そこで「Shibuya Perl Mongersテクニカルトーク#10 京都サテライト会場」として、弊社・はてなの京都オフィスは、関西在住のPerl Mongersのみなさんや、技術的な話に興味のある方々が集ってshibuya.pmを楽しむ会場を提供いたします。 10回目を迎えた Shibuya…

CodeZine にて KOF 2008 の記事と補足

大阪南港ATCで開催された「関西オープンソース2008」の2日目(11月8日)午前中のセッションで、株式会社はてなCTOの伊藤直也氏が「はてな流大規模データ処理」と題した発表を行った。 CodeZine で先日の KOF 2008 (あらかじめ言っておきますが King of Fight…

Wavelet Tree

圧縮全文索引の実装などでしばしば利用される Rank/Select 辞書と呼ばれるデータ構造があります。詳しくは参考文献を参照していただくとして、今回は一般の文字列に対して効率的に Rank/Select を可能とするデータ構造である Wavelet Tree (ウェーブレット木…

KOF 2008 の発表資料

KOF 2008 での発表資料「はてな流大規模データ処理」を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/081108huge_data.ppt 一部参考文献からの引用 (Introduction to Information Retrieval から Vector space model の図、たつをの Chan…

KOF 2008: 関西オープンフォーラム

はてなが扱うデータ量は日々増加している。単一マシンで扱いきれない量のデータを現実的な時間で処理する類の要件も多い。大規模データを扱いながらウェブサービスを提供していくにあたって、どのようなアプローチを取るか、またどのようなアルゴリズムの知…

Algorithm::MTF / BWT → MTF → Range Coder によるデータ圧縮

先日言及した Burrows Wheeler Transform (id:naoya:20081016:1224173077) による変換後のテキストは圧縮に使えたり、全文索引に利用できたりと応用範囲は広いです。BWT により変換したテキストを圧縮するには、そのまま圧縮するのではなく先頭移動法 (Move-…

List::Rubyish

YappoLogs: List::Rubyish をリリースしました List-Rubyish-0.03 - Array iterator like the Ruby - metacpan.org id:naoya:20080419:1208579525 で紹介した Ruby ライクな操作ができるリストクラスですが、自分と id:secondlife で作って放置していた実装…

Burrows Wheeler Transform と Suffix Array

,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今日 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『BWT について調べていたら Suffix Array のライブラリができていた』 i|:!ヾ、_ノ/ u {:}//ヘ |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ…

Integer::Elias - Elias gamma/delta coder

Perl でγ符号、δ符号で整数を符号化するためのモジュールを作りました。(ω符号はまだサポートしていませんが) Elias 整数符号のモジュールなので Integer::Elias という名前にしています。 http://github.com/naoya/perl-integer-elias/tree/master γ符号、δ…

Introduction to Information Retrieval #12 の復習資料

Introduction to Information Retrieval 輪読会 12章の復習資料を以下にアップロードしました。 http://bloghackers.net/~naoya/iir/ppt/iir_12.ppt 12章は、は "Language models for information retrieval" ということで、確率的言語モデルを情報検索に適…

Perl で Range Coder

練習がてら、圧縮符号化の手法のひとつである Range Coder を Perl で実装してみました。 http://github.com/naoya/perl-algorithm-rangecoder/tree/master Range Coder は算術符号を実数ではなく整数で実現した手法です。高速な算術圧縮を実現する「Range C…

List::FrontCode

先日 Array::Gap という Variable Byte Codes による整列済み整数の圧縮の実装を作りました。(id:naoya:20080906:1220685978) 今日は Front Coding を使った同じような圧縮リストクラス、List::FrontCode を作ってみました。Front Coding は辞書式順に整列済…

第2回 アルゴリズムイントロダクション輪講

今日は id:motemen 主催のアルゴリズムイントロダクション輪読会 第2回でした。現在弊社では今年のインターンシップを 2回目(年に2回のうちの後半) 開催中ですが、先月まで来てくれていたインターン一期生も数名輪読会に参加し、東京オフィスからも数名参加…

Introduction to Information Retrieval #11 の復習資料

Introduction to Information Retrieval 輪読会 11章の復習資料を以下にアップロードしました。 http://bloghackers.net/~naoya/iir/ppt/iir_11.ppt 11章は、は "Probabilistic information retrieval" すなわち確率的検索モデルです。 IIR 10章までにあつか…

ATOK 2008

ハッカーのための IM (Input Method) と言えば SKK というイメージがあります。学生の頃、先輩や先生など知人が数名 SKK を使っていたことから、あの変換スタイルに憧れて、自分も何度か SKK にスイッチを試みましたが幾度となく挫折しました。もう一つ、「…

Array::Gap

明日は一ヶ月ぶりのIIR輪読会 です。主催のたつをさんから「教科書の話題から何か適当に実装せよ」という課題が出ていたので、5章 のインデックスの圧縮の所で見た Variable byte codes (以下 VB code) を使った圧縮の実装を作ってみました。 整列済みの整数…

第2回 インターンシップ

8月の第1回が終わり、続けて9月の第2回目のインターンが始まっています。今日はもう4日目、MVC フレームワークの講義です。8月のインターンでは、後半二週間の開発ではてなダイアリーの AtomPub や下書き機能、はてなハイクの API、新しいはてなキーワードの…

インターン後半 / 第2回募集

今日からインターンも折り返し、後半2週間が始まりました。2週間のトレーニングを終えて、いよいよ実地でアプリケーション開発が始まっています。各プロジェクトチームに配属になり、はてなスタッフの指導のもと新機能などの開発を行います。 社内の方々で仕…

アルゴリズムイントロダクション輪講@京都

社内エンジニアの間に、計算機科学をマジメにやろうという機運が高まっています。それを受けはてな社内で計算機科学に関する教科書の輪講をやろうという話になりました。という訳でまずはアルゴリズムの教科書「アルゴリズムイントロダクション 第1巻 改訂2…

Kansai.pm#10 での発表資料 (Thrift について)

今日は第10回 Kansai.pm でした。自分も 10 分だけ、Thrift について発表を行いました。資料を以下にアップロードしました。 http://bloghackers.net/~naoya/ppt/080810kansaipm.ppt (ppt) http://www.slideshare.net/naoya1977/about-thrift/ (Slide Share)…

サーバ/インフラ Tech Meeting の資料など

金曜日は サーバー/インフラを支える技術出版記念イベント サーバ/インフラ Tech Meeting の日でした。自分は「Linuxカーネルの読み方」と題して、自分なりにまとめたカーネルのソースコードを読むコツについてお話させていただきました。発表資料を以下にア…

インターン 4日目、5日目

インターンシップも5日目です。4日目の昨日は id:motemen から MVC フレームワークの話。はてなの MVC フレームワークである Ridge についての講義でした。一昨日に作成した CLI のデータベースアプリケーションを、MVC フレームワークに載せてウェブアプリ…

サーバー/インフラを支える技術

『サーバ/インフラを支える技術』という書籍を執筆しました。明日 8/7 に発売です。[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)作者: 安井真伸,横川和哉,ひろせまさあき,伊藤…

インターンシップ 3日目

インターンシップ3日目です。昨日は Perl オブジェクト指向でした。演習課題が 3問出ました。居残りしつつ頑張った学生さんもちらほら。今日は id:onishi から OR マッパについて。DBIx::MoCo をベースに OR マッパについての解説です。今日も演習課題が出ま…

インターンシップ 2日目

インターンシップ 2日目です。今日から2週間弱、トレーニング期間です。今日は id:antipop さんから Perl のオブジェクト指向の話。「ある観点から見た利益をもたらすデータ構造と手続きとを一体にしたもので...」などなど。トレーニングの内容は前半は基礎…

インターンシップ初日

はてなのインターンシップ (id:naoya:20080717:1216275897) が始まりました。早速 id:jkondo から、プレゼンテーションです。 はてなではこういう流れで物を作っている、このようなサービスの開発を目指している...といった内容。自分は全体の進行管理です。…

Introduction to Information Retrieval #10 の復習資料

Introduction to Information Retrieval 輪読会 10章の復習資料を以下にアップロードしました。 http://bloghackers.net/~naoya/iir/ppt/iir_10.ppt 10章は、は "XML retrieval" です。XML が題材になっては居ますが、実際には XML がどうこうというよりも、…

あるプロセスが利用しているメモリサイズを procfs 経由で調べる

お題は「あるプロセスがどの程度の物理メモリを利用したかを知りたい」です。手っとりばやく知りたいときは top や ps などで調べると良いでしょうか。例えば手元の coLinux で top して M キーでソートすると emacs のプロセスが最もメモリを使っているよう…