タグ

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

  • LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー

    LTSV って何? Labeled Tab-Separated Values という、テキストのフォーマットの仕様です。CSV や TSV や JSON そのほかと同じ、テキストデータのフォーマット名。主にログ、特に httpd のアクセスログなどに適用すると便利です。 仕様は http://ltsv.org にまとまっています。随時更新中です。 LTSV は単なるログのフォーマットであって、それ以上でもそれ以下でもありません。 LTSV ってタブ区切りで値に名前を付けただけのもの? はい、そうです。 これが 127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (

    LTSV FAQ - LTSV って何? どういうところが良いの? - naoyaのはてなダイアリー
    parkbench
    parkbench 2013/02/09
  • 開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー

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

    開発メモ#3 : レガシーなCGIアプリケーションのリファクタリング - naoyaのはてなダイアリー
    parkbench
    parkbench 2013/01/30
  • HBFav というはてなブックマーク iPhone アプリを作りました - naoyaのはてなダイアリー

    ちょこちょこと余暇の時間を使って、HBFav という iPhone アプリを作りました。 HBFav は、はてなブックマークの「お気に入り」機能を閲覧するためのアプリです。はてなブックマークの「お気に入り」は、気に入ったユーザーがブックマークしたブックマークを一覧する機能、つまり、Twitter で言うところのタイムラインです。それを見る専用のアプリがほしかった、ということで作ったものです。 ・・・ということで、繰り返すと、HBFav はタイムライン形式でソーシャル・ブックマークを楽しむためのアプリ。はてなブックマークのお気に入り機能を活用しているぜ! という方におすすめです。 HBFav は、App Store からインストールできます。 App Store - HBFav : http://itunes.apple.com/app/id477950722 Kindle とともに HBF

    HBFav というはてなブックマーク iPhone アプリを作りました - naoyaのはてなダイアリー
  • Titanium Mobile についての勉強会資料 - naoyaのはてなダイアリー

    昨日は gumiStudy#5 でした。何か Tech Talk を、ということだったので最近いじっていた Titanium Mobile について整理して、紹介してきました。 Titanium MobileView more presentations from Naoya Ito. (フォントがひどいですね・・・すみません。http://www.slideshare.net/naoya1977/titanium-mobile/download からダウンロードできます) 先日書いたエントリ (http://d.hatena.ne.jp/naoya/20101011/1286799669) のとおり、Titanium Mobile を使うと JavaScript でネイティブアプリを開発することができます。しかも iPhone/Android マルチプラットフォーム対応。最近は Blac

    Titanium Mobile についての勉強会資料 - naoyaのはてなダイアリー
  • Titanium - JavaScript で iPhone/Android アプリを作る - naoyaのはてなダイアリー

    Titanium Mobile は JavaScriptiPhone/Android のアプリ (not Webアプリ) を開発できる開発環境。詳しくは Titaniumで始めるモバイルアプリ作成の基礎知識 (1/3):Web技術でネイティブアプリを作れるTitanium(2) - @IT などに解説があります。 少し時間があったので、JavaScript で作るというのがどんな感じか試してみました。作ったアプリは こんな感じで TableView があり、選択すると WebView でアプリ内ブラウザが立ち上がる、ブラウザはツールバーで「戻る」や「リロード」が可能。あとはタブコントロールがあったり・・・という単純なもの。初期起動画面のサイトリストは、HTTP でローカルに立てたサーバーから JSON で読み込んでいます。 Web上のドキュメントを見ながら2, 3時間試行錯誤で一応の

    Titanium - JavaScript で iPhone/Android アプリを作る - naoyaのはてなダイアリー
  • 退職のお知らせ - naoyaのはてなダイアリー

    日8月31日をもって、はてな退職しました。 入社は2004年9月1日でしたから、今日でちょうど6年です。6年間の間に、はてなブックマークをはじめとする各種サービスの企画開発やディレクション、インフラの構築、技術チームのマネジメント等々、色々な経験を積むことができました。その一方で、なかなか自分の思うようにはサービスを成長させる、会社を伸ばすことができず自分の力量不足を感じる毎日でもありました。その足りない能力と経験を埋め合わせる日々が、成長を促してくれたとは思います。 この6年は、はてなという会社が、個人あるいは家族のような繋がりから組織に変っていく過程でした。会社というものが何なのかを全然知らなかった自分が、Webサービスの開発と運営に、組織がなぜ必要かというのを体で知ることになりました。なかなかに得難い経験でした。 遠回りもありましたが、はてなは組織になりました。新サービスは日々ユ

    退職のお知らせ - naoyaのはてなダイアリー
  • YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー

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

    YAPC::Asia 2日目 「はてなブックマークのシステムについて」 - naoyaのはてなダイアリー
  • 第11回 Kansai.pm / スペルミス修正プログラムを作ろう - naoyaのはてなダイアリー

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

    第11回 Kansai.pm / スペルミス修正プログラムを作ろう - naoyaのはてなダイアリー
  • はてなブックマークFirefox拡張, JavaScript で IS 法 による Suffix Array 構築 - naoyaのはてなダイアリー

    昨日、はてなブックマークFirefox拡張をリリースしました。おかげさまでベータ版からダウンロード数は累積で1万ダウンロードを突破し、アクティブユーザー数も伸びています。 はてなブックマークFirefox拡張で新しいインターネットを体験しよう http://b.hatena.ne.jp/guide/firefox_addon 開発者の id:secondlife が g:subtech:id:secondlife:20090415:1239804170 で技術的な側面からのちょっとした TIPS なども紹介していますので、興味のある方はご一読ください。 検索では思いのほか SQLite の like 検索が高速なのに驚いた。はてブ検索では、検索ワードから URL, Title, コメント にマッチしたものを表示していて、それ専用の search_data だかかんらかの検索用カラムがある。

    はてなブックマークFirefox拡張, JavaScript で IS 法 による Suffix Array 構築 - naoyaのはてなダイアリー
  • Aho Corasick 法 - naoyaのはてなダイアリー

    適当な単語群を含む辞書があったとします。「京都の高倉二条に美味しいつけ麺のお店がある」*1という文章が入力として与えられたとき、この文章中に含まれる辞書中のキーワードを抽出したい、ということがあります。例えば辞書に「京都」「高倉二条」「つけ麺」「店」という単語が含まれていた場合には、これらの単語(と出現位置)が入力に対しての出力になります。 この類の処理は、任意の開始位置から部分一致する辞書中のキーワードをすべて取り出す処理、ということで「共通接頭辞検索 (Common Prefix Search)」などと呼ばれるそうです。形態素解析Wikipediaはてなキーワードのキーワードリンク処理などが代表的な応用例です。 Aho Corasick 法 任意のテキストから辞書に含まれるキーワードをすべて抽出するという処理の実現方法は色々とあります。Aho Corasick 法はその方法のひと

    Aho Corasick 法 - naoyaのはてなダイアリー
  • ダイクストラ法, 貪欲アルゴリズム - naoyaのはてなダイアリー

    現実逃避をしながらウェブを眺めていたら ダイクストラ法(最短経路問題) にたどり着きました。単一始点最短路問題におけるダイクストラ法の解説です。 何を思ったのか、図を眺めていたところ動かしたい衝動に駆られて、気付いたらパワポでアニメーションができていました。 http://bloghackers.net/~naoya/ppt/090319dijkstra_algorithm.ppt 実装もしてみました。隣接ノードの表現は、ここではリストを使いました。 #!/usr/bin/env perl use strict; use warnings; package Node; use base qw/Class::Accessor::Lvalue::Fast/; __PACKAGE__->mk_accessors(qw/id done cost edges_to prev/); package Q

    ダイクストラ法, 貪欲アルゴリズム - 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のはてなダイアリー
  • 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のはてなダイアリー
  • CodeZine にて KOF 2008 の記事と補足 - naoyaのはてなダイアリー

    大阪南港ATCで開催された「関西オープンソース2008」の2日目(11月8日)午前中のセッションで、株式会社はてなCTOの伊藤直也氏が「はてな流大規模データ処理」と題した発表を行った。 CodeZine で先日の KOF 2008 (あらかじめ言っておきますが King of Fighters ではないですよ、関西オープンフォーラムです) の発表を記事にしていただきました。ありがとうございます。 発表資料は以下のエントリーにありますので一緒にご覧いただければと思います。 http://d.hatena.ne.jp/naoya/20081111/1226395400 さて、記事内容について少し補足をしておきたいと思います。 メモリとディスクの速度比較について 「メモリはディスクの 150 倍」という話ですが、その後知人と話して検索のインデックスをシークする場合などは ms 対 ns くらい違

    CodeZine にて KOF 2008 の記事と補足 - naoyaのはてなダイアリー
  • Kikker の学習の仕組みと Rocchio アルゴリズム - naoyaのはてなダイアリー

    先日のソーシャルブックマーク研究会では id:kanbayashi さんによる発表がありました。id:kanbayashi さんは Kikker や はてブまわりのひと などの開発をされている方です。最近情報検索理論に入門した自分にとっては、非常に面白い発表でした。 発表の中で Kikker の学習の仕組みについての解説もありました。Kikker は Cosine similarity で推薦するドキュメントを検索しているそうですが、ユーザーのクリックデータを使って、ユーザーごとに推薦対象を最適化するようにしているそうです。この学習は、ユーザーが見たページのベクトルを、そのユーザーの趣向ベクトルに足し込むことで実現している、とのことでした。 SBM研究会で発表した"私がチャレンジしたSBMデータマイニング"のスライド - Ryoの開発日記 Neo! 発表ではベクトルを加算することについて「

    Kikker の学習の仕組みと Rocchio アルゴリズム - naoyaのはてなダイアリー
  • はてなでインターンシップ - naoyaのはてなダイアリー

    8月4日から8月29日までの一ヶ月弱、はてなでインターンシップを開催します。アプリケーション開発をテーマにしたインターンシップです。 はてなの京都オフィスにて開催します。時給 1,000 円でお給料を支払います。遠方からの参加者の方には宿を弊社で手配しますので、関西在住の方以外からの応募も大歓迎です。京都で一夏、というのも良い思い出になるのではないでしょうか。 前半二週間はトレーニング的な内容です。自分や弊社のエンジニアスタッフから、大規模ウェブアプリケーション開発やはてなでの開発ノウハウについての講義があります。実際のウェブアプリケーションをどう開発するか、どう動かすかについて良い学習になるのではないかと思います。 この前半は、いくつかの演習を通じて習熟度チェックを行いながら進みます。また、二週間を終えた段階で後半ステップに進むための評価があります。これは結構、ドキドキものです。 後半は

    はてなでインターンシップ - naoyaのはてなダイアリー
  • はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 - naoyaのはてなダイアリー

    はてなブックマークに関連エントリーを配信する機能を追加しました。詳しくは 告知日記で。 この関連エントリーは、株式会社プリファードインフラストラクチャー (以下 PFI) の技術者のみなさんと一緒に開発しました。週末に2泊3日で京都で合宿をしてコア部分を作り、その後京都と東京に分かれてオンラインで連絡を取りながら2週間ほど作り込みをして、今日リリースです。 この合宿では何チームかに分かれて、今回の関連エントリーの機能以外の開発も行っています。その辺の成果はまた後日にリリースできるのではないかと思います。 はてなブックマークの一つの問題として、昔のエントリーがデータベースに埋もれてしまうという点がありました。その問題の解決策としての類似記事抽出、それから検索機能の強化を以前から考えていました。PFI のメンバーのみなさんは情報検索技術のスペシャリストです。アカデミックな研究の成果を製品化を通

    はてなブックマークの関連エントリー機能開発、PFI さんとの合宿 - naoyaのはてなダイアリー
  • はてなブックマークエンジニア、ディレクターを募集します - naoyaのはてなダイアリー

    ご存じの方も多いとは思いますが、新はてなブックマークの開発を進めています。はてなブックマークをスクラッチから開発し直し、ユーザーインターフェイスや各種機能の見直しと更なる楽しさを追加してユーザーのみなさんにお届けするための企画/開発作業です。 詳しくは以下の記事などを参照ください。 はてなブックマークの作り直しについて - naoyaのはてなダイアリー 今夏に新はてなブックマーク登場--その進化と情熱 - CNET Japan 現在は、自分とデザイナ、インターフェイスエンジニアの3名で開発を進めています。5月の中ごろまではある程度規模のコードベースをまず作るために、自分が一人で開発を進めていましたが、先日から3名でチームを作って次の段階に入っています。各種ページのデザイン及びサイト設計を詰めるのと並行しながら、新しく搭載する機能やインターフェイスの検討などを行っています。昨日も夕方にオフィ

    はてなブックマークエンジニア、ディレクターを募集します - 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のはてなダイアリー
  • Introduction to Information Retrieval #4 の復習資料 - naoyaのはてなダイアリー

    Introduction to Information Retrieval の4章の復習資料を以下にアップロードしました。 http://bloghackers.net/~naoya/iir/ppt/iir_04.ppt 4章はインデックス構築に関するアルゴリズムなどがテーマです。 前半では単一マシン上で二次記憶装置を使ったインデックス構築手法として、入力を適当なサイズのブロックに分けて最後にマージする Blocked sort-based indexing (BSBI) と、BSBI を改良して入力をストリームで扱うようにした Single-pass in-memory indexing (SPIMI) が紹介されています。 次に、例えばウェブ検索のような、単一のマシンでは扱いきれない巨大なインデックスを扱う戦略として、並列計算クラスタで分散インデックスを構築する Google の Ma

    Introduction to Information Retrieval #4 の復習資料 - naoyaのはてなダイアリー