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

  • ブックマーク件数取得APIをリリースしました。 - naoyaのはてなダイアリー

    exist API を使えば HTMLスクレイピングするより高速な実装が可能ですが、それでも一画面に 50 件検索結果があったりすると 50 回 exist API を叩くことになって HTTP のオーバーヘッドが大きいでしょうし、サーバー側も SQL が 50 回走ったりして嫌なので、前から考えてた複数 URL を与えてブックマーク数をまとめて取得する API を作ってます。来週にはリリースしたい。 ということで、はてなブックマーク件数取得APIをリリースしました。相変わらず名前がださい。JSON版とかMD5で問い合わせられるようにとかはまた後ほど。 はてなブックマークはそんなにサーバーの台数もまだないので、連続リクエストはすこし間隔あけてもらえたりすると助かります。 そうそう、こういう API を AtomPP で実装するとしたらどんな感じなんだろう。そもそもうまくフィードで定義で

    ブックマーク件数取得APIをリリースしました。 - naoyaのはてなダイアリー
    kak
    kak 2005/12/12
    WebService::Hatena::Exist放置プレイ解消しないと。
  • はてなブックマークの概要取得の処理 - naoyaのはてなダイアリー

    はてなブックマークが取得する概要は、文ではなく Feed から取得している よって、 Feed に含まれない範囲の過去の記事は概要が取得されない Feed を提供していてもそれから正しく概要を取得するとは限らない 簡単にまとめるとこのようなことになります。 ちょっと前に、遅まきながら MT のバージョンを 3.171 から 3.2-ja-2 にアップグレードした。したら、はてなブックマークにブックマークされた際に、記述している記事の概要(excerpt)が反映されなくなった。ちなみに、この <$MTEntryExcerpt$> を反映してくれない件に関しては真琴さん(hxxk.jp)が色々と調べていたんだけど、今んとこ一旦打ち切りという状態になっている。 ここのロジックが内部でどう実装されているかを明示していないのが理由で少々混乱を与えてしまっていて、申し訳ないです。現時点でどういう実装

    はてなブックマークの概要取得の処理 - naoyaのはてなダイアリー
    kak
    kak 2005/12/03
  • Catalyst::Engine::HTTP::Resterter における自動再起動サーバーの実装

    前の話の続き。新しい server.pl は -r オプションをつけたときに、自動的にファイルの修正を検知して再起動してくれる機能が付いてます。 いままでの server.pl だと、デーモン上で perl が永続化してるためにモジュールを書き換えてもそれが再読込されず、一度 ^C で止めてまた起動とかする必要がありました。で、それが必要なくなったと。先日 Rails を試しにいじってたんですが、Rails 付属の WEBrick なサーバーは、クラスの更新も検知してくれてスゲー便利だったので、server.pl がこの仕様になったのはすごくいいです。 どういう実装でこれを実現してるのかなーと思って見てたんですが、やっぱりそこは Catalyst、ちょっと面白い実装になってました。手元にある 5.33 からだと Catalyst::Engine::HTTP::Restarter Catal

    Catalyst::Engine::HTTP::Resterter における自動再起動サーバーの実装
    kak
    kak 2005/11/22
  • MySQL の order by rand() - naoyaのはてなダイアリー

    MySQL のレコード取り出しの際に、ソートをランダムにできないものかと調べていたら、あった。 SELECT * FROM table ORDER BY RAND()こんな感じで。ソートを RAND にすれば良いという… そうそう、僕もこれは最近知ったんですが。Haropy でエントリーをランダムに取り出すのにも order by rand() を使ってます。Class::DBI::mysql に retrieve_random というメソッドがあって、ランダムに一見取り出すことができるという。これも中では order by rand() limit 1 をやってます。 ただ、この rand() はデータ量が大きいテーブルには使いづらいという罠。 mysql> explain select id from entry order by rand() limit 1 ?G *********

    MySQL の order by rand() - naoyaのはてなダイアリー
    kak
    kak 2005/11/19
  • CGI.pm の POSTDATA - naoyaのはてなダイアリー

    CGI.pmtext/xmlなPOSTデータを読みたい場合、 my $q = CGI->new; $q->param('POSTDATA')で読める。いままで知りませんでした。 CGI.pm で $q->param('POSTDATA') とすると、POST で送られて来たデータの body をそのまま取り出せる、という話。 どういうときにこの API が役に立つかというと、かぜぶろさんのタイトルにある通り XML な API をサーバー側に実装したいとき。 もともと CGI.pm は通常のウェブリクエストを処理するために考えられているので、POST のデータを標準入力から読み込み、それを parse して $q->param('foobar') と GET のときと同じ API でアクセスできるようにしてます。が、AtomPP や XML-RPC なんかの場合、その POST のデータ

    CGI.pm の POSTDATA - naoyaのはてなダイアリー
    kak
    kak 2005/11/16
  • 1