並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 245件

新着順 人気順

tokyocabinetの検索結果1 - 40 件 / 245件

  • はてなブックマーク全文検索機能の裏側

    そろそろ落ち着いて来たころ合いなので、はてなブックマーク全文検索機能の裏側について書いてみることにします。 PFI側は、8月ぐらいからバイトに来てもらっているid:nobu-qと、id:kzkの2人がメインになって進めました(参考: 制作スタッフ)。数学的な所は他のメンバーに色々と助言をしてもらいました。 はてな側は主にid:naoyaさんを中心に、こちらの希望や要求を聞いて頂きました。開発期間は大体1〜2か月ぐらいで、9月の上旬に一度id:naoyaさんにオフィスに来て頂いて合宿をしました。その他の開発はSkypeのチャットで連絡を取りながら進めてました。インフラ面ではid:stanakaさん、契約面ではid:jkondoさん、id:kossyさんにお世話になりました。 全文検索エンジンSedue 今回の検索エンジンはSedue(セデュー)という製品をベースにして構築しています。Sedu

      はてなブックマーク全文検索機能の裏側
    • 体系的な知識・技術を身につけるための学習法について - Kentaro Kuribayashi's blog

      体系的な知識や技術を身につけたいと思っています。たとえばプログラミングに関していえば、これまでたまたま興味を抱いたところをつまみ食いしていて、小手先の技術が少しは身についたものの、もうちょっとなにか深いことをやろうとしても、それだけではなかなか難しい。とはいえ、教育機関のようなところでやり直すわけにもいきませんし、かといって、なにかをただ作ったりしているうちにいつの間にか体系的な知識や技術が身につくというのも、そういうひともいるかもしれませんが、あまり考えられないことです。ではどうすればいいか……?と考えていたのですが、先日ちょっと思いついたので、とりあえずまずは実践してみたいと思いました。 というのはつまり、学習したいと考えている、なにかそれなりに大きな規模の分野について、自分で本を書くつもりで、あるいは、こういう本があったら体系的な知識を得られるだろうなあという本の目次を自分なりに書き

        体系的な知識・技術を身につけるための学習法について - Kentaro Kuribayashi's blog
      • 過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ:phpspot開発日誌

        過負荷に耐えるWEBサービス作成のための使えるPHPキャッシュテクニックまとめ。 サービス展開というとOSのチューニングや各種インフラソフトウェアのチューニング、更にはWEBアプリプログラム自体の効率化と、幅広い知識が必要になってきますが、PHPでWEBアプリを作る際によく効くキャッシュテクニックを用途・使いどころ別に説明します。 キャッシュをうまく効かせることで大幅に計算量を減らしてより多くのリクエストを少ないマシンで捌くことが出来、コストを下げたり、過負荷の悩みを減らせます。 個人レベルでのWEBサービス開発の場合、サーバ代がお財布を大きく圧迫しますが、最低のコストでサービスを賄うことに繋げられます、ということでPHPでサービス作ってやろうと思っている人は参考にしてみて下さい。 static変数でキャッシュ 特に何も入れなくてもそのまま使えるstatic変数。例えば、関数等で一定の計算

        • 常駐型サーバープログラムのデバッグ手法

          BOOK: WEB+DB Press TITLE: 常駐型サーバーのデバッグ手法(ドラフト版) AUTHOR: (株)プリファードインフラストラクチャー 太田一樹 *注: この文章はWEB+DB PRESS Vol.48に掲載された記事のドラフト版です はじめに 今回はデバッグ関連特集ということで、常駐型サーバープログラムを作成する際のハマりどころやそれに対する解析方法・解析ツール・対策を、実際の経験を交えながら紹介したいと思います。 筆者は(株)プリファードインフラストラクチャーでインメモリ分散検索エンジン「Sedue (セデュー)」を開発しています。モバイル向け検索エンジン「エフルート」や、2008/11/6にリニューアルされました「はてなブックマーク2」などの検索バックエンドとして使われております。 この検索エンジンはいくつかの常駐型サーバープログラムから構成されており

          • あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい

            3年ほど前に、Ruby製のクローラー"anemone"を紹介しました。その当時から完成度が高く、Rubyでクローラーを使う場合はanemoneを利用してきました。最近、他に新しくて良いのがないか調べましたが、機能面の網羅性という意味でanemoneを超えるものは見つけられませんでした。そこで改めてanemoneのソースを読んでみたところ、クローラーが必要とする機能を必要最小限で実装され、やはり中々良い出来です。冬休みの宿題ではないですが、勉強の意味を兼ねてソースを追っていくことにします。 Anemoneが利用しているライブラリ一覧 anemoneが利用しているライブラリは、4種類に分類できます。 Ruby標準or一般的なライブラリ データ取得で利用しているライブラリ データ解析で利用しているライブラリ データ保存で利用しているライブラリ この分類別に構造をみるとわかりやすいので、順番に追っ

              あらためてRuby製のクローラー、"anemone"を調べてみた - プログラマでありたい
            • 3行でできる超お手軽全文検索 - mixi engineer blog

              梅雨。部屋干しした洗濯物による異臭騒ぎに苦しむmikioです。今回は、Tokyo Cabinetのテーブルデータベースで超お手軽に全文検索をする方法について説明します。 使い方 テーブルデータベースについてまずおさらいしておきましょう。PerlやRubyのハッシュのようにコラム名とその値を関連づけた構造を、主キーを識別子として保存するデータベースです。例えばRubyからデータを保存するに以下のように行います。データベースであることをほとんど意識させないというのが素敵ポイントです。APIはCでもPerlでもRubyでもほとんど同じなので、言語にかかわらず同じようにレコードを操作できます。 require 'tokyocabinet' include TokyoCabinet # データベースを開く tdb = TDB::new tdb.open("casket", TDB::OWRITER

                3行でできる超お手軽全文検索 - mixi engineer blog
              • PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog

                サボっていた早朝ジョギング@駒沢公園を再開して2週間たち、やっと抜かれる数より抜く数の方が増えてきたmikioです。今回は、PerlやRubyのハッシュの代用としてTokyo Cabinetを使うことでメモリ使用量を激減させられることを説明します。 抽象データベースAPI Tokyo Cabinetには抽象データベースという機構があり、先日、そのPerlとRubyのバインディングをリリースしました。それを使うと、各種言語のハッシュとほぼ同じような共通したインターフェイスで、以下のデータ構造を利用することができます。 オンメモリハッシュ:各種言語に標準のハッシュと同じく、メモリ上でkey/valueの関係を表現する。 オンメモリツリー:メモリ上の二分探索木としてkey/valueの関係を表現する。 ファイルハッシュ:いわゆるDBMとして、ファイル上でkey/valueの関係を表現する。 ファ

                  PerlとRubyで省メモリなハッシュを使おう - mixi engineer blog
                • blog.katsuma.tv

                  greeさんで開催されたKey Value Store勉強会に行ってきました。 時間にして4時間超え、内容も国内のKey-Value Storeなソフトウェアの最前線の話ばかりで相当なボリューム。以下、メモってたのを残しておきたいと思います。(誤字、脱字、内容に誤りを含むものなどありましたらお伝えください)また、発表者の方やプロダクトについて、ざっくり調べてURL見つけられたものについてはリンク張っています。 森さん / 末永さん   groonga Sennaの後継エンジン 融通が効かないのがSennaのデメリット スコア算出式のカスタマイズなど Sennaの転置索引 索引の構成部品を自由に組み合わせて使える APIもいろいろ QL DB Low Level memcached互換のkey-value store バイナリのみ対応 計測 クライアント memstorm-0.6.8 mem

                  • Tokyo Cabinet

                    Our team of highly trained cybersecurity professionals provides expertise in compliance, tool assessments, threat hunting, incident response and more. Critical Start is leading the way in Managed Detection and Response (MDR) services. With a unique approach that treats every security alert as equal, Critical Start's proprietary Trusted Behavior Registry allows security analysts to resolve every al

                    • かんたんCMS 「Tokyo Promenade」を使おう - mixi engineer blog

                      先日、待望の長女が誕生したmikioです。あまりにかわいいから育児ブログでもつけようという魂胆ではありませんが、今回は自作のCMSであるTokyo Promenadeについて語ります。 Tokyo Promenadeとは 以前の記事で、Tokyo Cabinet(TC)を使ったCMSを作ることを予告しましたが、Tokyo Promenade(TP)がまさにそれです。TCのテーブルデータベースを使って記事を管理する軽量なコンテンツ管理システム(CMS)の実装です。例によってC言語のみで記述され、libc以外の全実装が "made by mikio" な製品です。 読み方は「東京プロムナード」です。プロムナードとは散歩道のことですが、東京メトロの広告に出てくる宮崎あおい的なキャラが写真付きブログを書いちゃうようなユースケースをイメージして名づけました。まあ実装はそんな洒落た感じとはほど遠いです

                        かんたんCMS 「Tokyo Promenade」を使おう - mixi engineer blog
                      • なんか Go で書くのが流行ってるみたいなので - moriyoshiの日記

                        追記:「kzk's blog」の「Writing TokyoCabinet wrapper for Go language」で紹介御礼。この記事は cgo を使った TokyoCabinet のラッパーの書き方を解説しているので、下記のコードと組み合わせて本当に tc が backend になっている KVS を書いてみるのもよいかも。 『早速 Go 言語を試してみる!』とか。 『Go で無駄にチャンネルを使ってクイックソートのようなものを書いてみた』とか。 こちらはというと、試しに memcache バイナリプロトコルで通信する KVS もどきを書いた。 サーバのイベントループで go すれば全部済むのが楽ちんですね。 追記: HandleConn() の中で、backend_ch を backend との送信と受信両方に使っていたのだけど、ここにあるように、まったく誤りだということが分

                          なんか Go で書くのが流行ってるみたいなので - moriyoshiの日記
                        • オレオレ検索窓を設置しよう - mixi engineer blog

                          まだピクミン2をクリアしてないのでケジメ的に新作ゲームを買えないmikioです。今回は、Tokyo Cabinetを使って激烈簡単に特定サイトの専用の検索機能を設置する方法について説明します。クローリングから検索までを10分くらいの作業で可能にします。 特定サイトの検索エンジン Web全体の検索機能を作るのは、途方もない技術力と設備を持っているGoogleやMicrosoftなどのビッグプレーヤでないと難しいのが現実です。でも、自分が気に入っているいくつかのサイトを対象とした検索エンジンを作るのであれば個人だってできます。また、インターネットから手が届かないイントラネットのコンテンツの検索機能は自分達で手がけないと構築できません。 ということで、企業用の検索システムが数多く売られていますし、LuceneやGroongaやHyper Estraierなどのオープンソース製品も世に多数存在しま

                            オレオレ検索窓を設置しよう - mixi engineer blog
                          • mixi Engineers’ Blog » 言語バインディングを書こう

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

                              mixi Engineers’ Blog » 言語バインディングを書こう
                            • 国産の全文検索エンジンGroonga vs 世界的流行のElasticsearch - CreateField Blog

                              2014年4月21日は、第4回Elasticsearch勉強会ですね! http://elasticsearch.doorkeeper.jp/events/8865 第4回Elasticsearch勉強会は、参加希望者が約200名の大反響なようです。 私は勉強会に参加できないので、C言語で書かれた国産の高速な全文検索エンジンGroongaと、Javaで書かれた世界的に勢いのあるElasticsearchについて性能の比較をしたいと思います。 注意事項 今回の検証では1台あたりの馬力を比較するためにサーバ1台での全文検索性能について比較しています。 私は、Groonga(Mroonga)の利用暦が約2年であるのに対し、Elasticsearchの利用暦は2日です。このため、Elasticsearchに対するチューニングの不備や公平な比較になっていない点が含まれている可能性があります。 Ela

                                国産の全文検索エンジンGroonga vs 世界的流行のElasticsearch - CreateField Blog
                              • Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server

                                UPDATE: Oracle officially released memcached daemon plugin that talks with InnoDB. I'm glad to see that NoSQL+MySQL has become an official solution. It's still preview release but will be very promising. Let's try it to make it better! Most of high scale web applications use MySQL + memcached. Many of them use also NoSQL like TokyoCabinet/Tyrant. In some cases people have dropped MySQL and have sh

                                  Using MySQL as a NoSQL - A story for exceeding 750,000 qps on a commodity server
                                • TokyoTyrantをPHPで使う際に便利な資料と実装コードサンプル:phpspot開発日誌

                                  TokyoTyrantをPHPで使う際に便利な資料がスライドシェアで公開されてました。 TokyoTyrant をご存知の方も多いと思いますが、一応、知らない方に説明をすると、TokyoCabinet という高速なkey-valueストア型のデータベース操作ライブラリがあって、これのネットワークインタフェースになります。 mixi の最終ログイン時刻保存などに使われているそうで、1秒で10000回もの保存・読み出しクエリをマシンたった1台で処理できた実績があります。 データをファイルに保存するので、サーバを落としてもデータは保持され、なおかつmemcachedと同程度のパフォーマンスを発揮できるという物凄いものです。 これをPHPから扱うためにはどうするか、という際に参考に出来る資料となってます。 非常によくまとまっていたのでご紹介させて頂いてます。 資料によると、当然ながらPHP Ext

                                  • Node におけるスケールアーキテクチャ考察(Scale 編) - Block Rockin’ Codes

                                    [追記] 途中までは Node での複数プロセス起動、プロセス間通信等について書かれていますが、後半は自分が前回の記事 を書くにあたって自分が考えてたことを少し強引に広げて書いた個人的な妄想が多く含まれ、Node におけると言っときながら、後半は Node 関係ない感じになってしまいました。 正直まだ分かっていないことが多いです。変なところをどんどん指摘していただけるとむしろ嬉しいです。 Node におけるスケールアーキテクチャ考察(SSP 編) - Block Rockin’ Codes の続きです。 もともと何となく結論があって書き始めたんですが、書きながら色々調べているうちによくわからなくなりました。 まだまだ調べたらないことがわかったので、とりあえず今わかっているところまで書きます。 結局何がいいたいのかよくわからない感じかもしれないけど、ゴールは SSP のバックエンドの Nod

                                      Node におけるスケールアーキテクチャ考察(Scale 編) - Block Rockin’ Codes
                                    • 噂のTokyoCabinet/TokyoTyrantを使ってみた - (゚∀゚)o彡 sasata299's blog

                                      2009年10月04日20:18 KVS Ruby 噂のTokyoCabinet/TokyoTyrantを使ってみた key-value ストアに興味がある ささたつ です。key-value ストアとして有名なものといえば memcached かと思いますが、他にも TokyoCabinet や TokyoTyrant というものも注目されています(不思議な名前ですね!)。key-value ストアでありながら高速、かつ、データをメモリで無くファイルに保存しているため、サーバが落ちてもデータが消えないとか。 実際に mixi の最終ログイン時間の保持などに使われているそうです。 memcached をセッションの保持などに使っている場合、memcached のサーバがダウンしてしまったら、データは全て消えてしまいます。その結果 RDBMS にアクセスが集中し、パフォーマンスが大幅に悪化し

                                      • 真にスケーラブルなWebアプリケーションを作るには?という話題で盛り上がった件 - Tous Les Jours 攻防記

                                        先週末は上京してRubyKaigiに参加してきました。 運よくLT枠をいただくことができたので、タイトルのようなテーマで(結構紆余曲折があって、当初の想定から逸れてしまった...)プレゼンさせてもらうことができました。 話の流れとしては、 「WebアプリケーションのボトルネックはRDB」 ↓ 「RDBってAmazonEC2みたいなHaaSではスケールしないよね。」 ↓ 「本当に(アプリのコードをそのままで)スケールさせようと思ったら、AmazonSimpleDBのようなクラウドDBを使うしかない」 ↓ 「SimpleDBはMySQLより一桁以上遅いから、単純にRDBをSimpleDBに置き換えると、えらいことになる」 ↓ 「SimpleDBへのアクセスを極力少なくするため、リクエストはMemcachedとかでキャッシュしまくる必要があるね」 ↓ 「このあたりを今Lang-8で実験している。

                                          真にスケーラブルなWebアプリケーションを作るには?という話題で盛り上がった件 - Tous Les Jours 攻防記
                                        • オープンソースの道 〜 よりよい社会を育てる方法 〜

                                          最近、自治体においてオープンソースソフトウェア(以下OSS)を採用する例が増えてきたように思う。(注1)ニュースに上がったものだけでも、次のような例がある。 自治体に広がるOpenOffice.org - ITpro さらばWindows、Linux時代幕開け - 読売新聞 県が「オープンオフィス」導入へ 次期オフィスソフト - 山形新聞 ニュースになっているのはOpenOffice.orgやGNU/Linuxであるが、採用に至った主な理由はOSSにするとコストが下がるからであると記されている。確かにOSSはタダだ。商用で提供されているものもあるがタダでオペレーティングシステム(以下OS)やオフィスソフトのように人数に応じたライセンスが必要なものは、そのライセンスコストだけでも相当な額になる。しかも古くなってソフトウェアを更新するたびにライセンス料金が発生してしまう。それがタダになるのは確

                                            オープンソースの道 〜 よりよい社会を育てる方法 〜
                                          • YappoLogs: 良い子のMacなPerlユーザーに送る、あなたのPerlアプリをMacアプリにする方法 (Mac版的PAR)

                                            良い子のMacなPerlユーザーに送る、あなたのPerlアプリをMacアプリにする方法 (Mac版的PAR) こんにちは!近頃咳と痰と鼻水と鼻づまりがすごく多い、金曜日の天使ことYappoです。 ちょっとしたツールをPerlで書いて、お友達に使ってもらいたいときってありますよね?普通は常識的にgithubとかのurlを教えれば良いのですが、それも出来ない人とかもいた場合が非常に面倒です。 そんな時の便利ツールとしてPlatypusがあるのは有名ですね。 Platyputsを使えば簡単にXSを含めたアプリが配布出来ますんです。 XSとかはアーキテクチャ等によって違うバイナリが吐かれてる事が知られますが、今回はあなたと同じMacOSのバージョンが入ってる事を前提にしちゃって問題無いです。 Macユーザ同士なんだからCPUのアーキテクチャは、殆どの場合は一緒だろうしOSのバージョンもLeopar

                                            • DBMによるテーブルデータベース その五 - mixi engineer blog

                                              ついに発売されたスト4のコンシューマ機版をやりたくてしょうがないけど筐体を買ってもらえないので、駅前のゲーム屋のディスプレー前で垂涎するばかりのmikioです。今回は連載の最終回で、各種スクリプト言語を使ってお手軽にテーブルデータベースを操作する方法について説明します。 TokyoCabinet::TDB まずは、TCのPerlバインディングとRubyバインディングの最新版を入手してください。それぞれテーブルデータベースを扱うための TokyoCabinet::TDB というクラスが加わっています。以下のようなIDLによるガイドラインに準拠したインターフェイスが提供されますので、使い方は言語にかかわらず同じようになるはずです。 module TokyoCabinet { interface TDB { boolean open(in string path, in long omode);

                                                DBMによるテーブルデータベース その五 - mixi engineer blog
                                              • PHPとMongoDBで学ぶ次世代データストア :: handsOut.jp

                                                スライド1: PHP と MongoDB で学ぶ次世代データストア佐藤琢哉LOCAL PHP 部 スライド2: スライド3: 突然ですが スライド4: 4月から札幌市民になります!!!!! スライド5: 友達が少ないので皆さん遊んでやってください スライド6: • MongoDB って何?• 使い方• 他の DBMS との比較• MapReduce• まとめアジェンダ スライド7: そもそも何の話? スライド8: MongoDB すごいよ! スライド9: MongoDB って何? スライド10: http://www.mongodb.org/ スライド11: MongoDB (from "humongous") is a scalable, highperformance,open source, schema-free, documentorienteddatabas

                                                • WEBサービス用に覚えておくと使える&使えそうなpeclモジュールまとめ:phpspot開発日誌

                                                  WEBサービス用に覚えておくと使える&使えそうなpeclモジュールまとめ。 先日「WEBサービスを作るなら最低限覚えておきたいPHPのPEARモジュールまとめ」でまとめると書いてからちょっと日が空いてしまったのですが、まとめてみました。 殆ど使ったことがある物を載せましたが、peclをひと通り見て、使ったことはないけれど面白そうなものも入れてみました。 pecl はCやC++で書かれたPHP用のモジュールをまとめたリポジトリです。PEARはPHPで書かれていますが、peclの物はC/C++で書かれている為、高速に動作します。 基本的にpeclの方が速いので、PEARと同等の機能の物は置き換えたほうがよいです。(但し、ちょっと古いpeclライブラリ等は動作を検証するようご注意) 開発 APC Alternative PHP Cache。PHPのコードを中間コード化して毎回パースしないようにし

                                                  • YappoLogs: TokyoCabinetがPerlのHASHより遅いわけがない!

                                                    TokyoCabinetがPerlのHASHより遅いわけがない! こんにちわ!金曜日担当・Shibuya内フェアリーことYappoです。 mixi Engineers’ Blog » PerlとRubyで省メモリなハッシュを使おうにて 100万件のレコードを格納した場合のメモリ使用量と処理時間を測ってみましょう。Perl(5.8.8)でテストコードを動かしたところ、以下の改善が確認できました。標準のハッシュに比べて、メモリ使用量がTCのオンメモリハッシュだと約61%、TCのオンメモリツリーだと約37%になることがわかります。処理時間に関しては157%ほどになっていますが、まあ許容範囲ですよね。といった事が書かれており、その文面の上の解説で、tieしたので、tieしてるからおせーんじゃねーの?とテストコードも見ないで呟いてたらmikioさんからtie使わないでやってるよ!とつっこんでいただき

                                                    • mixi Engineers’ Blog » manを書こう

                                                      チャリンコ通勤もそろそろ寒くなってきたと感じる今日この頃のmikioです。今回は、manの書き方について述べてみます。 manとは UNIX系のフリーソフトウェア/オープンソースソフトウェアを世に出す場合、その使い方を示した「man」形式のマニュアルを付属させるのが一般的です。端末上で「man hoge」とやると「hoge」のマニュアルを見ることができるので大変便利で、UNIXを使っている方は日々お世話になっている機構だと思います。ちなみに「man -t hoge」とやるとPostScript形式のデータが出力されるので印刷して見ることもできるんです。 そういうわけでUNIXのソフトウェアはmanをつけて配布するのがあたりまえ的になっていて、つけてないと「なんでやねん」とお叱りをうけることもあります。Debian/GNU Linuxでは、パッケージに含まれる全てのコマンドには各々に対応する

                                                        mixi Engineers’ Blog » manを書こう
                                                      • mixi Engineers’ Blog » memcachedのストレージ層をmodularにしてみた

                                                        前回に続いてまたmemcachedの話をしたいと思います。今回は改造編です。 ハッシュデータベースサーバなどの実装でmemcachedライクなものを書くのも良いですが、以前からmemcached自体のストレージをmodularにできたら面白いかも?と思っていたので実験的にmemcachedを改造してみました(memcached-1.2.4がベース)。 とりあえず名前はmemcached modularの略でmmcmodと名づけて、mikioさんのTokyo Cabinetをストレージとして使うモジュール(厳密にいうと共有ライブラリ)を書きました。ソースコードは後日CodeReposの方に上げますがとりあえずこの記事で公開します。ちなみに新しいプロダクトを作る気はなくて、最終的にpatchを作ることが目的です。 で、話を続けると今回の改造を簡単にビジュアライズするとこんな感じです: 図のmm

                                                          mixi Engineers’ Blog » memcachedのストレージ層をmodularにしてみた
                                                        • 第1回 自然言語処理勉強会@東京 に参加してきた - hamadakoichi blog

                                                          「第1回 自然言語処理勉強会@東京 (#tokyotextmining)」(id:nokuno さん主催) に参加してきた。 ATND: 第1回 自然言語処理勉強会@東京 : ATND Google Group: Google グループ 素敵な会でした。主催者のid:nokuno さん、講師の id:sleepy_yoshi さん、id:n_shuyo さん、[Twitter:@PENGUINANA_] さん、 [Twitter:@suzuvie]さん、ありがとうございました。 また素敵な会場提供して下さった 株式会社ミクシィさんにも感謝。 以下、ツイートまとめ(Togetter)、各講師資料、メモ、の覚書き。 Togetter 第1回 自然言語処理勉強会@東京 (#tokyotextmining) - Togetter FSNLPの第1章を読む (id:nokuno, [Twitter:

                                                            第1回 自然言語処理勉強会@東京 に参加してきた - hamadakoichi blog
                                                          • Key-Value Store 勉強会を開催しました。 - moratorium

                                                            Key-Value Store 勉強会を開催しました。 2009-02-26 (Thu) 3:08 勉強会 もう先週の金曜日になりますが、Key-Value Store勉強会というのを開きました。 既に素晴らしいまとめエントリが有りますので、詳細はこちらをご覧下さい。 Key-Value Store勉強会に行ってきました by katsumaさん Key-Value Store勉強会 by shudoさん はてなブックマーク「kvs」タグ UStream録画動画 by ichiiさん 日経BP社 中田さまには、草の根的勉強会にも関わらず、記事にして頂きました。有難うございます。 「キー・バリュー型データストア」開発者が大集合した夜 また、講師の方々に発表資料等をアップロードして頂いております。 末永さん: 全文検索エンジンgroongaをテストリリースしました 山田さん: About L

                                                            • moved

                                                              This site has been moved. Please visit the new site.

                                                              • ブログのプチリニューアルに使った技術要素色々:phpspot開発日誌

                                                                ブログのプチリニューアルに使った技術要素色々。 先日、少し頑張ってブログのプチリニューアルを実施したのですが、その際に使った色々な要素をご紹介します。 タイトルも微妙にリデザインしてます まず、当ブログの問題点として、多数ある記事がきっちりカテゴリわけされていないという点がありました。 過去の記事を探そうにも見つけづらくて困るという連絡を頂いたこともあったり。 というわけで、沢山ある記事をある程度自動でオーガナイズしてしまおう、ということで作業してみました。 最初からタグ付けしとけばいいという話ですが、独自の入稿システムがタグを入力できるシステムになっていない事で、既にある5000以上の記事をいちいち分類するのは面倒なので機械的にやりました。 手間の割には、ある程度いい感じに構築できたかなと思っています。 何か他の仕組みにも参考にして頂ける点もあるかもということでエントリにしてみます。 h

                                                                • 第35回 DBI:生のSQLが散らばると言う前に | gihyo.jp

                                                                  Perlとdbm いまでは省みられることも少なくなりましたが、Perlには1989年にリリースされたバージョン3.0以降、dbmと呼ばれるシンプルなデータベースにアクセスする機構が標準で組み込まれています。このdbmは、いわゆるリレーショナルデータベースとは違ってキーと値の組み合わせをディスクに保存できるだけのものですが、ハッシュ(当時はまだ連想配列と呼んでいました)と結びつけることでタブ区切りファイルなどを読んでいくより高速に検索ができたため、ユーザ環境に永続的なデータを保存する手段のひとつとして重宝されていました。Perl 3/4の時代にはdbmopenというコマンドが使われていましたが、この機構はPerl 5になって一新され、いまではより汎用的なtieというコマンドを使うことになっています。この仲間としては古くからあるBerkeley DBやGDBMなどのほか、最近では平林幹雄氏のT

                                                                    第35回 DBI:生のSQLが散らばると言う前に | gihyo.jp
                                                                  • ウノウラボ Unoh Labs: PHPからTokyoxxxを使おうとした時の話

                                                                    モテ系の方と服を買いにいったKeitaです。 やっとこれで、かっこよくなって、彼女できるかと思っていたのですが、残念ながら服を買っただけでは彼女はできそうにはないです。秋服なので涼しくなったら着てモテモテになりたいと思います。 さて、平林さんが開発されているTokyoCabinet、TokyoTyrant、TokyoDystopiaは個人的にでたまに暇を見つけて仕事では使いもしないのに検証作業をしています。 PHPから使う方法を社内勉強会で簡単に解説をしたのでそれを、それをテキスト起こしておいておきます。 まず簡単に各アプリケーションについて解説しますと。 Tokyo Cabinet ハッシュ型のデータベース というよりデータベースマネージャ インターフェースはCのAPI 高速 TokyoDystopia、TokyoTyrantのストレージエンジン Tokyo Tyrant To

                                                                    • Tokyo Cabinet: Beyond Key-Value Store - igvita.com

                                                                      By Ilya Grigorik on February 13, 2009 It took Ruby some time to go from an infant research project by Matz to a language we've all come to know so well. Now, another Japanese developer (Mikio Hirabayashi) has all the potential to repeat this cycle with his new database project: Tokyo Cabinet. Developed and sponsored by Mixi Inc. (Japanese Facebook), it is an incredibly fast, and feature rich datab

                                                                      • 世界を目指せばエンジニアはもっとハッピーになる:「おれたち世界一になれますか?」:エンジニアライフ

                                                                        ■はじめに 楽天株式会社 開発部の安藤祐介です。アプリケーションエンジニアとしてPHPやRubyのフレームワークやオープンソースのツールの推進などの業務を行っています。また2008年末からは美谷さんからも紹介があったリンクシェアへ出張にいくことが多く、まもなく正式な赴任を控えています。 社外ではPHPなどのオープンソースコミュニティでよく活動しており、昨年は20回弱社内外の勉強会などで講演をしました。そのおかげか昨年は情報処理推進機構(IPA)が例年開催している日本OSS貢献者賞の奨励賞をいただくことができました。 社内での業務を直接オープンソース活動に繋げることは難しい時がありますが、アプリケーションフレームワーク、CakePHPのイベントに参加する為の旅費を会社負担で処理してくれたり社内のスペースを一般参加可能な勉強会の会場として利用するなどオープンソース活動に対して理解があり助かって

                                                                          世界を目指せばエンジニアはもっとハッピーになる:「おれたち世界一になれますか?」:エンジニアライフ
                                                                        • http://1978th.net/tokyocabinet/

                                                                          • 第3回 様々なデータ型を扱えるTokyoTyrant | gihyo.jp

                                                                            どんなところに使える? もっとも簡単な利用方法は、前回紹介したmemcachedの代替として利用するというものです。memcached互換プロトコルが実装されているため、memcachedを利用している場合ポート番号を変えるだけでTokyoTyrantに差し替えることが可能です。これだけで簡単にデータの永続性が得られます。 また、テーブルデータベースを利用すれば一つのkeyに対して複数のvalueを持たせることが可能であり、keyだけでなく任意のvalueを条件としてデータの検索を行うこともできます。JOINやGROUP BYといった処理は行えませんが、それ以外のほとんどの検索条件を扱えます。レスポンスはRDBMSに比べて高速なので、アクセス数が多いテーブルをTokyoTyrantのテーブルデータベースに載せ換える、といった利用方法も効果的かもしれません。 具体的な利用シーン memcac

                                                                              第3回 様々なデータ型を扱えるTokyoTyrant | gihyo.jp
                                                                            • memcachedプロトコルのストリームパーサ - Blog by Sadayuki Furuhashi

                                                                              memcachedクライアントはほとんどの言語で実装されており、key-valueベースの何かを作るときにはmemcacheプロトコルをサポートしておくと、クライアントを実装する手間が省けるのでイケてます。 しかしmemcachedのテキストプロトコルのような「行」が主体となっているプロトコルは、スレッドを使った実装では比較的簡単に処理できるのですが(fgets(3)を使うなど)、selectやepollなどを使ったイベント駆動型の実装では非常に面倒なことになります。(一度パースしてみて、どうも全部データが到着していないようなら一度状態を変数に保存して、次にデータが到着したら変数から状態を復元して…) イベント駆動型の実装では、データを次々に投げ込んでいくと内部の状態が遷移していき、ゴールの状態にたどり着くとパース完了、という状態遷移型のパーサが必要になります。そこで、Ragel Stat

                                                                                memcachedプロトコルのストリームパーサ - Blog by Sadayuki Furuhashi
                                                                              • moved

                                                                                This site has been moved. Please visit the new site.

                                                                                • TCのHaskellバインディングとODF繰り越し制度の紹介 - mixi engineer blog

                                                                                  はじめまして。ミュージック開発チームのtomと申します。名前はtomですが純日本人です。(本名も"tom"でちゃんと漢字があります。) 今回は、"オンラインコーヒーメーカー萌香たん"を作ったりできることでおなじみのODFをちょっとお得に使うための、「ODF繰り越し制度」の紹介と、その制度を利用して私が作っているTokyo CabinetのHaskellバインディングを紹介させていただければと思います。 ODF繰り越し制度 弊社のエンジニアは、ODF(One Day Free)という制度を使って、毎週金曜日に自分が好きなことに取り組むことができます。このODF制度、四半期ごとに実施する or しないを申告するのですが、このときになんと「繰り越す」という選択肢が用意されているのです。 普通のODFでは、四半期(3ヶ月)の間、週1日を自由な時間として確保することができます。とは言っても忙しい時期

                                                                                    TCのHaskellバインディングとODF繰り越し制度の紹介 - mixi engineer blog