タグ

ブックマーク / cheesy.dip.jp (49)

  • Shibuya Perl Mongersテクニカルトーク#12 NoSQL特集 : no hacking, no life

    TAKESAKOさんにお誘い頂き、shibuya.pmでLux IOについて話してきました。 Perlとはほとんど関係無いですが、NoSQL特集ということで呼んで頂きました。 以前のKey-Value Store 勉強会よりも少しだけ設計方針などを交えましたが、 あんまり変わらない資料で恐縮です。一応、以下に載せておきます。 Lux IO - Shibuyapm View more documents from mogwaing. NoSQL vs NoKVS みたいなのもテーマとしてあったらしく、発表の後半の奥一穂さんなどは、NoSQLではなくて、やっぱりリレーショナルモデルでACID性があって安定していてそこそこ高速なオープンソースのRDBMSをスケールさせて使いたいとのことで、InclineとPacificという新しいプロダクトの紹介をされていました。 KVSの基盤となるD

    mogwaing
    mogwaing 2009/12/21
    id:myui さんもフォローお願いします
  • Dinosaur Jr @ O-EAST : no hacking, no life

    mogwaing
    mogwaing 2009/05/30
  • スーパークリエータに認定されました : no hacking, no life

    2008年上期の未踏IT人材発掘・育成事業において、「スーパークリエータ」に認定されました。 http://www.ipa.go.jp/about/press/20090518.html 今までこのような賞を頂いたことはないので、非常にうれしく思います。それもこれも、石川PMや管理組織のメルコホールディングスの方々、また、会社の方々、あとはの支えがあってのことです。みなさまには当に感謝しております。 石川PMに至っては、2週間に1回のペースで顔を合わせて進捗報告ミーティングを行い、方向性や技術的なアドバイスをたくさん頂きました。こんなに頻繁にミーティングを行ったプロジェクトは他に無いんじゃないでしょうか。石川PMのもとでやってこれて当に良かったと思います。 ただ、自分が「スーパー」でないことは自分が一番よくわかっています。 これからがんばったら「スーパー」になれるかもよ、というこ

  • [KVS] Key-Value Store 勉強会 : no hacking, no life

    Key-Value Store 勉強会でLux IOについて話してきました。 Lux IOの特徴や使い道について簡単に紹介してみました。 About Lux IO View more presentations from mogwaing. 他の登壇者がすごすぎて、当に恐縮しちゃいましたが、何事もなく普通に終わってよかったです。 勉強会自体は当に濃い内容で、聞くのでいっぱいで一切メモをとってないので、全体の内容についてはこっちの完璧なメモ(Key-Value Store勉強会に行ってきました )を参照ください。 企画や当日の司会をしてくれたPFI太田さん、会場やべ物を手配してくれた一井さん、お疲れ様でした&ありがとうございました。

  • Lux IO の言語バインディングとか : no hacking, no life

    一ヶ月ほど前に公開したLux IOですが、何人かのマニアックな方々が言語バインディングなどを作ってくれていてうれしい限りなので、適当に検索して見つかったものをまとめてみました。(他にもあったら教えてもらえるとありがたいです。) PHPバインディング by id:kajidai Rubyバインディング by id:kajidai Javaバインディング by id:maachangさん MSVC9移植版 by id:winebarrelさん (全員はてなダイアリーユーザってw) 細かい修正や機能追加があまりできていなく恐縮ですが、 もっと使ってもらえるようにこれからも努力していきたいと思います。 You’re currently reading “ Lux IO の言語バインディングとか ,” an entry on no hacking, no life Published:

  • Lux IO - Yet Another Fast Database Manager : no hacking, no life

    Lux IOという高速なデータベースマネージャ(DBM)を公開しました。 元々は、keyに対して長く拡張していくvalueを保持できるように、Luxの内部ストレージエンジンとして開発を始めましたが、一般的なDBMのような使い方においても、非常に高速に動作します。(詳しくは、sourceforgeのページのベンチマークを参照ください。) 一般的なDBMでは、ハッシュをサポートしていますが、Lux IOではB+-treeを配列のインデックスのみをサポートしています。 ドキュメントは全く書けていなく恐縮ですが、ソースコードのtestディレクトリにたくさんのテストプログラムがあるので、それを参考にしてみてください。 ぜひ、使ってみて、感想、バグ報告を頂ければと思います。 You’re currently reading “ Lux IO - Yet Another Fast Databas

  • Introduction to Information Retrieval 輪講第7回 : no hacking, no life

    たつをさんが主催するIIR輪講の第7回に参加してきました。 (今回が初参加。誘って頂きありがとうございます!) 最初に、恒例(らしい)のnaoyaさんからの前回の復習がありました。 「転置インデックスの圧縮は、Termを保存する辞書と、Termの出現位置を保存するPostingの両方が圧縮対象で、それぞれ・・・(省略)などの方法があります」という話で、すごいわかりやすい説明だったので、これだけでもとてもためになりました。拙作のLuxではインデックスの圧縮はまだ実装していないので、5章を見ていろいろやってみようと思います。postingsに関しては、variable byte encodedが圧縮率や実装のしやすさの面でよさそうな感じがしました。 その後、題の6章の「Scoring, term weighting and the vector space model」について担当の能登

  • LibMap::Array - 共有メモリ上に配列データベースを構築するテンプレートライブラリ : no hacking, no life

    ゴールデンウィークに少し時間があったので、共有メモリを扱うlibmapというC++のテンプレートライブラリを作りました。 今のところ、値が固定長の永続的な配列を構築する部分(LibMap::Array - 配列を扱うDBMみたいなもの)しかできていません。LibMap::Arrayは書き込むindexに応じて領域が自動的に拡張されるので、前もってサイズを指定する必要はありません。 使い方はソースと下のサンプルコードを見てください。結構適当に作ってあまりテストしてないのでバグがあると思われます。 libmap.h (ライセンスはLGPL) サンプルコード 以下ソースコードを参照ください。 put.cpp #include "libmap.h" #include int main(int argc, char *argv[]) { if (argc != 3) { std::cerr a

  • 全文検索エンジンLuxを公開しました : no hacking, no life

    日、全文検索エンジンLuxを公開しました。 昨年の3月ぐらいから、土日の空いた時間を使ってだらだら作っていたのですが、完璧にしてから公開しようとすると、いつまで経っても公開できないので、晒すことにしました。なので、機能的に足りない部分がたくさんあります。 特徴としては、以下のような感じです。 C++で記述されている シンプル 高速に動作 そこそこ拡張性が高い シンプルな転置インデックス形式の検索エンジンです。今のところ形態素でしかインデックスを作れませんが、N-Gramはすぐに対応しようと思います。また、APIが若干おかしかったり、手抜き部分が沢山あるので、今後にご期待ください。(version 1.0 ぐらいから自信をもって薦められるかも) ドキュメントが全くないので、これからちょこちょこ書いていこうかと思いますが、マニアックな方はぜひ使ってみて、ご意見・ご感想を頂ければと思います。ダ

  • 最速ライブビデオ検索を作ってみた : no hacking, no life

    動画検索SAGURIとAWS(Amazon Web Services)を使ったマッシュアップサイト 「MUSIC DIRECTORY」 を作ってみた。 やってることは単純で、 バンド名をクリックすると、バンド名をSAGURIで検索した結果と、Amazonで検索した結果を表示してるだけです。 特徴としては、すべてJavascriptで動いていて、サーバーサイドのコードはいっさいありません。 「人気動画」と「新着動画」はSAGURIの検索結果RSS feedをGoogle Ajax Feed APIで処理し、Amazonはバンド名をAWSで検索して取得したXMLをXSLTでJSONに変換し、ページのcallback関数を呼ぶようなコードもJSONに入れておき、データをjsで受け取ります。 (この手法はma.laさんのAmazon最速検索を参考にして、簡略化したものです。なのでamazo

  • gccのfastcall関数呼び出しについて : no hacking, no life

    背景 最近、前職の友達や後輩、またその後輩の会社の方々などで「Linuxカーネル勉強会」なるものをはじめました。勉強会といっても読書会に近く、「Linuxカーネル解読室」というを使っての勉強会で、この前早速第1回があり、第1章の「プロセススケジューリング」について行いました。 みんなで議論などをして、書かれてることは大体理解できましたが、やはり前提知識がたくさん必要などの理由から不明な所が何点かあったので、その一つについて調べてみました。 (以降の説明はlinux kernel 2.6.15(x86)を元にしています。) わからなかった事 そのわからなかった事について説明します。 以下は、Linuxカーネルが行うコンテキススイッチの部分の核となるswitch_to というマクロです。 include/asm-i386/system.h #define switch_to(prev,n

  • Twitterオフ会に行ってきた : no hacking, no life

    友達はほとんどいなかったが、Twitterオフ会に行ってきた。 アイコン写真で作ったカードをもらっちゃいました。 友達がmooのminicardsを配っててうらやましかったので、返ってきてすぐオーダーした。 色んな人とお話できて楽しかった。次回も行こうかな。disney movie sexgay movies hotmovies mature sexmovies hypnoporn movies indianmovie nudityadult free moviesfree cumshots movies Map You’re currently reading “ Twitterオフ会に行ってきた ,” an entry on no hacking, no life Published: 6.16.07 / 12am Category: Uncategorize

  • mod_perlアプリの設定ファイルをApache起動時に読み込む方法について : no hacking, no life

    mod_perlのアプリケーションを作る時に、Configモジュールか何かにハッシュとかを書いて、モジュール自体をアプリの設定ファイル代わりにしていたが、やっぱり設定ファイルは別管理にしたいと思っていたので、ちょっと考えてみた。 startup.plはapacheの親プロセス起動時に一回だけ実行され、そこでuseされるモジュールのBEGINブロックはそのタイミングで実行されるので、そこでLoad処理をしてあげれば、apache起動時にしか設定ファイル読み込みのオーバーヘッドがかからず、読み込んだ内容を子プロセス間で共有できていいと思った。 つまり、以下のようなパッケージをstartup.plでuseするようにして、アプリケーションではパッケージ変数$confを参照するようします。 package Hoge::Config; use strict; use warnings; use YAM

  • HyperEstraierが使うzlibのバージョンの違いではまる : no hacking, no life

    1年前にはまったのに、またこの前はまったので覚え書き。 HyperEstraierのestmaster(簡易httpd&検索サーバー)は、(可能ならば)gzip encodingで検索結果を圧縮して返すようになっている。 しかし、僕の一部の環境ではgzipデータのdecodingに失敗して、結果をうまく取得できていなかった。 原因は、/usr/lib にzlib1.1系が、/usr/local/lib にzlib1.2系が入っていて、libestraier.so(クライアント用ライブラリ)は1.2系とリンクし、estmasterは1.1系とリンクしていたために、クライアント側でdecodingができずにおかしくなっていたっぽい。(下位互換性がないということ?) このような環境で両方とも推奨されてるzlib1.2系を使うようにさせるには、configureが生成したMakefileのLD_

  • mod_perl上でCGI.pmを使うと、send_cgi_header()で落ちる : no hacking, no life

  • Flex 2 SDKでYouTubeプレイヤーを作る - インストール 〜 設定 〜 簡単なアプリケーションの開発 : no hacking, no life

    Flex 2に入門してみたので、そのログをtutorialogにまとめてみた。 「Flex 2 SDKでYouTubeプレイヤーを作る - インストール 〜 設定 〜 簡単なアプリケーションの開発」 あんまり見直しもせずがーっと書いたので、誤字・脱字や変な文章がたくさんありそう。 あと、YouTubeプレイヤーを作ると大げさなことが書いてありますが、YouTubeの動画を再生する窓を作っただけです。 You’re currently reading “ Flex 2 SDKでYouTubeプレイヤーを作る - インストール 〜 設定 〜 簡単なアプリケーションの開発 ,” an entry on no hacking, no life Published: 5.16.07 / 10am Category: Flex, ActionScript Have your say XHTML

  • tutorialog » Flex 2 SDKでYouTubeプレイヤーを作る - インストール 〜 設定 〜 簡単なアプリケーションの開発

    Flex 2 SDKでYouTubeプレイヤーを作る - インストール 〜 設定 〜 簡単なアプリケーションの開発 May 16, 2007 Posted by butcher in : Flex, ActionScript , trackback 最近熱いFlex 2を始めてみたので、入門してみたログをまとめてみました。 そもそもflex 2とはflash作成のためのフレームワークです。 adobeのサイトでは Adobe® Flex™ 2は、Adobe Flash®をベースにしたリッチインターネットアプリケーションのためのフレームワークです。Flex 2を利用すれば、あらゆるプラットフォームのユーザに対応できる、見ばえの良いスケーラブルなアプリケーションが効率良く開発できます。 と説明されています。 Flexでの開発方法は今までのFlashコンテンツのそれとは異なっています。

  • vectorの再割当て時にiteratorが無効化されるのを注意する & reserveで予め領域を確保して再割当てを無くそう : no hacking, no life

    一見あってるっぽい以下のコードは、vecのある程度(初期化時に割り当てられた要素数)以上の要素を使うと、vectorが領域の再割当てをしてしまうため、再割当て前に取得したイタレータ等が無効化されてしまう。 class Lexer { public: Lexer::Lexer() { vec_itr = vec.begin(); } Lexer::~Lexer() { } int Lexer::tokenize(char *text) { // textを区切る // textを区切ったtoken(ヒープに確保)をvecに追加していく vec.push_back(token); // ここに書くべき //vec_itr = vec.begin(); } Lexer::token_t *Lexer::get_next_token() { if (vec_itr == vec.end()) {

  • shared_ptrのcustom deleterを使って、C APIで確保した領域をfreeしよう : no hacking, no life

    Cで書かれたライブラリでは、内部でmallocしてヒープに領域を確保してそのポインタを返すというようなAPIも存在する。もちろんそういう場合はライブラリの使用者が領域を解放する責任があるが、それだとメモリリークにつながりやすいコードを生み出してしまう。 (追記 : 下にも書いたが、ライブラリ内で解放してくれるのが一番いいが、そうでない場合も結構あるので、そういう場合の話です。) C からそういうライブラリを使う時は、APIをラップしてboostのスマートポインタshared_ptrを使うようにすれば、メモリリークのデバッグに費やす時間を減らせる。 shared_ptrでは独自の後始末関数(custom deleter)を指定できるので、それを使ってmallocした領域をfreeしようということです。(scoped_ptrやauto_ptrではcustom deleterを指定できないので

    mogwaing
    mogwaing 2007/04/27
    custom deleter
  • Google AJAX Feed API でサイドバーに人気エントリーを出してみた : no hacking, no life

    Google AJAX Feed API が出たので試してみた。 Google AJAX Feed APIとは、googleから提供されている、RSS/Atomフィードを取得するAPI(javascriptライブラリ)です。 導入方法も含め詳しくはここやこの辺を見てください。要するに、XMLHttpRequestのクロスドメイン制約で今まで出来なかった外部ドメインとのやり取りがこれを使うと(RSS/Atomに限るが)できてしまうということ。(Googleがプロキシとなって結果を取得してくれる) これを使って、自分のブログ(no hacking, no lifeとtutorialog)の中で、はてぶで多くブックマークされてる人気エントリの上位をサイドバーに出してみた。 取得するRSSはこれです。 http://b.hatena.ne.jp/entrylist?url=http://chees

    mogwaing
    mogwaing 2007/04/26
    google ajax feed api