タグ

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

  • Web::Scraper - naoyaのはてなダイアリー

    Today I've been thinking about what to talk in YAPC::EU (and OSCON if they're short of Perl talks, I'm not sure), and came up with a few hours of hacking with web-content scraping module using Domain Specific Languages. 使ってみたよ! #!/usr/local/bin/perl use strict; use warnings; use FindBin::libs; use URI; use Web::Scraper; use Encode; use List::MoreUtils qw/uniq/; my $links = scraper { process 'a.key

    Web::Scraper - naoyaのはてなダイアリー
  • naoyaのはてなダイアリー - ライブドアのテクノロジーセミナーでしゃべってきました。

    昨晩はライブドアで開催されたテクノロジーセミナーで軽くはてなのシステムや開発体制についてしゃべってきました。資料を以下に置いておきます。 http://bloghackers.net/~naoya/ppt/061214livedoor_hatena.ppt (ppt, 286k) 昨晩の感想、資料を読んでの感想など、トラックバックでお待ちしております。

    naoyaのはてなダイアリー - ライブドアのテクノロジーセミナーでしゃべってきました。
  • はてなブックマークの裏側その後 - naoyaのはてなダイアリー

    まるごとPerl! Vol.1 で執筆させていただいたはてなブックマークのシステムに関する記事が ThinkIT で読めるようになりました。記事全体を何回かにわけて掲載していただいています。まるごとPerlの記事なのですが、実は Perl のことはあまり触れていなくてはてなのサーバー運用概論みたいは話が主なところです。 http://www.thinkit.co.jp/free/article/0610/1/1/ http://www.thinkit.co.jp/free/article/0610/1/2/ せっかくなので現状報告も含めて少し補足をしてみようかなと思います。 現在の数字 記事の中での数字は6月のもので ユーザー:45,000人 ブックマーク数:535万件 ページビュー:5,000万/月 サーバー:17台 となってますが、現在 10 月の方はというと ユーザー: 60,000

    はてなブックマークの裏側その後 - naoyaのはてなダイアリー
  • はてなブックマークカウンターと bookmark.getTotalCount - naoyaのはてなダイアリー

    今日は二つほどはてなブックマークの新機能を公開しました。 http://hatena.g.hatena.ne.jp/hatenabookmark/20061004/1159941842 http://hatena.g.hatena.ne.jp/hatenabookmark/20061004/1159944160 はてなブックマークカウンター と、カウンターでも表示されてる数字を XML-RPC で取得できる API です。カウンターは早速この日記のサイドに表示させてみました。はてなダイアリーなら bcount モジュールで。 API の方ですが、告知で書いてるサンプルスクリプトで好きなサイトのブックマーク数とかを調べられます。 #!/usr/local/bin/perl use strict; use warnings; use XMLRPC::Lite; my $url = shift

  • naoyaのはてなダイアリー - JSON を Template-Toolkit で展開する Jemplate

    Jemplate is a templating framework for Javascript that is built over Perl's Template Toolkit (TT2). Jemplate parses TT2 templates using the TT2 Perl framework, but with a twist. Instead of compiling the templates into Perl code, it compiles them into Javascript. かぜぶろさんや宮川さんがブックマークしてたので気になってちょっと見てみた新着モジュールの Jemplate。なかなか面白いです。Template-Toolkit で記述したテンプレートのテンプレート変数に JavaScript 上の JSON を展開させることができるという

    naoyaのはてなダイアリー - JSON を Template-Toolkit で展開する Jemplate
  • naoyaのはてなダイアリー - WebService::KakakuCom

    日、価格.com WEBサービスの第一弾として、価格.comから商品検索とアイテム情報取得用のAPIと、べログ.comから、レストラン情報を取得するAPIを一般公開しました。 今回のリリースでは、ユーザやアプリケーション登録が必要ありません。是非気軽にお試し下さい。 なんかウェブサービスがいろいろリリースされる季節ですね。ということで気軽に試してみましたよッ! http://bloghackers.net/~naoya/lib/perlmodules/WebService-KakakuCom-0.02.tar.gz http://trac.bloghackers.net/browser/lib/perl/WebService-KakakuCom/trunk 昨日の RakuAPI のとコードが相当似てる。 NAME WebService::KakakuCom - Handle WebA

    naoyaのはてなダイアリー - WebService::KakakuCom
  • AA記法 - naoyaのはてなダイアリー

    はてなダイアリーでも簡単に綺麗に AA が貼れるようになったのでテスト。 _  ∩      ,-― 、 ( ゚∀゚)彡// /   ` i ⊂彡  _...,,_ |_    i | 〈     \   ,| \   // ヽ 丿 ||l    >====||l= /|l      / |"   バコタン! ノ /、      // } )  ヽ、__i||,./ /   ベコタン! ⌒ ,〉  ,,    ",〉 〈 _ _  , / `ー--‐''" >|aa| ... < でいけますよ。

    AA記法 - naoyaのはてなダイアリー
  • はてな記法が使えるTropyクローン - Haropy - naoyaのはてなダイアリー

    結城さんが作った Tropy が何だか面白い。氏曰くWeb 0.5としてのTropy。ここでいう Web 0.5 というのは揶揄としての Web 0.5 ではなく、ちゃんと意味をもった 0.5。 クローンもすでにいくつか生まれているようだし、僕も暇つぶしがてら作ってみた。はてな記法が使えるTropyクローンということで、Haropy。 http://haropy.bloghackers.net/help サニタイズとかほとんどしてないのでアレなんですが、その辺は近藤タンに相談しつつ Text::Hatena でのやり方を聞いてから実装しよう。とりあえずこんなものが動きました程度に。 中の実装は Catalyst で作ってあります。実は、はじめは 10分で作る Catalyst アプリケーション実演をやろうと思ってたんだけど、つくりはじめたらちょっと面白くなったのでちゃんと作ってしまったとい

    はてな記法が使えるTropyクローン - Haropy - naoyaのはてなダイアリー
  • 「注目フィルタ」がかかったRSSの配信 - naoyaのはてなダイアリー

    はてなブックマークのナビゲーションを色々改善するのを最近やっています。エントリー追加時にタグ一覧が出てくるようになった変更は、みなさんご存知かと思います。(あの機能はid:kambara君に作ってもらいました。さすがユーザーインタフェース専門家。) その一方で、一見地味なような改善として、各情報のデフォルトを「注目のユーザー一覧」にする、ということもやってきました。 ベータサービス開始当初は、注目エントリーの機能が存在しておらず、新着エントリー、人気エントリーのみの提供となっていました。そして、ブックマーク数が増えた現在は、人気エントリーよりも、時系列の要素が含まれる注目エントリーの方が、より価値の高い情報が含まれたページとして認識されるようになってきました。 そこで、 キーワード ドメイン カテゴリ をそれぞれクリックした際に表示されるエントリー一覧は、デフォルトで「注目エントリー」にな

    higeorange
    higeorange 2005/10/25
    確かにスパム多いよなぁ
  • naoyaのはてなダイアリー - Perlプログラマのレベル10 - Perlプログラミング救命病棟より

    プログラマ、と一言で言っても、if文の意味をようやく理解したばかりの駆け出しのプログラマもいれば、汎用的で優れたライブラリを量産できるような凄腕のハッカーもいる、つまりはピンきりです。 Perlプログラマに関してはどうでしょう。一流のPerlプログラマになるためには、見えない階段があるようです。use strict を使い始めたらその階段を一歩上ったと言えるでしょうし、正規表現を理解したときも一段あがることになると思います。リファレンス、クロージャ、オブジェクト指向、CPANモジュール、mod_perl、MVCフレームワーク。それらも階段を構成する材料の数々と言えるでしょう。 さて、Perlプログラミング救命病棟という書籍から、ちょっと長いですがそんなPerlプログラマのレベル10のリストを引用してみます。 レベル1: Perl 関係の書籍や資料を何も読んでいない。Perl がプログラミン

  • Perl の開発環境 - naoyaのはてなダイアリー

    人力検索でPerlの開発環境はどんな感じ?という質問があがっていて、にわかに盛り上がって(?)いますね。僕も回答してみました。 一般的にPerl使ってる人はWindowsで開発する人が多いんですかね?サーバにログインして、ターミナル上で開発をする人って結構少ないのかなぁ。 自分なんかローカルで一応Active Perlをインストールしているけど、ほとんど使わないし…。普段はサーバにログインしてそこでemacsで開発、ローカルでやるとしたらcolinuxにログインしてそこで開発って感じです。Windows上にソースを置くということはしてませんねぇ(あ、colinuxWindows上か…) その感想として Emacs とか vi 使わないの? っていう話。mixi なんかを見てても僕の周辺で同じ感想を持ったひとが多かったようで。 やっぱり PerlPC-UNIX を含む UNIX との

    Perl の開発環境 - naoyaのはてなダイアリー
  • prototype.js でデザインパターン - Bridge

    結城さんのデザパタMLでも紹介されてしまった手前、さぼるわけにもいくまい、ということで「機能の階層と実装の階層を分ける」 Bridge パターンです。 使いどころはたくさんありそうでなさそうでありそうな(どっちだ)、個人的には結構好きなパターンです。プログラムを拡張するには、クラスを追加するわけですが、あらかじめ「機能」を追加するのか、「実装」を追加するのかという視点で二つの階層に分けて実装しておくことで、拡張しやすい構成にしましょうというパターンです。 +-------------+ |Hello, Japan.| +-------------+ +-------------+ |Hello, World.| +-------------+ +----------------+ |Hello, Universe.| +----------------+こんな感じの出力を作りたい場合、まず

    prototype.js でデザインパターン - Bridge
  • prototype.js でデザインパターン - Iterator

    Ruby on Rails や Catalyst のプラグインなんかでは prototype.js という JavaScript のライブラリを使って、Ajax サポートを実現しています。prototype.js とフレームワークが必要な Ajax の JavaScript コードを吐き出してくれるので、Ruby プログラマや Perl プログラマは JavaScript の実装を意識しなくても Ajax なインタフェースが作れる、という風になっています。 こんな感じで prototype.js は Ajax な部分に注目が集まっていますが、ほかにも "Class-style OO" なフレームワークも内包してます。 JavaScript はプロトタイプベースのオブジェクト指向言語で、C++Java のようなクラスベースのオブジェクト指向言語とはちょっと実装が異なります。プロトタイプ

    prototype.js でデザインパターン - Iterator
  • prototype.js でデザインパターン - Abstract Factory

    ようやく8つめ。まだ残り 15 あります。8つめは「関連する部品を組み合わせて製品を作る」Abstract Factory パターン。複数のオブジェクトを正しい組み合わせで生成されるようにしたい、といったときに使うパターンです。 デザパタの題材は階層構造を持ったリンク集ページを作る、というものですね。 LinkPage * 新聞 o 朝日新聞 o 読売新聞 * サーチエンジン o Yahoo! + Yahoo! + Yahoo! Japan o Excite o Google -- 伊藤 直也こんな感じの出力を HTML で出してみましょう、というもの。 集合を扱う Tray クラスと、各個別のリンクを扱う Link クラスを用意してそのインスタンスを操作しページに相当する Page クラスに追加していくことでこの出力を作ります。ただ、出力は ul/li によるリスト構造による出力とか

    prototype.js でデザインパターン - Abstract Factory
  • prototype.js でデザインパターン - Singleton

    次は「たった1つのインスタンス」Singleton パターンです。あるクラスがあって、そのクラスのインスタンスは実行アプリケーションのライフサイクルを通じて唯一に制限したい、何回生成しても同じインスタンスである、というものです。 var Main = Class.create(); Main.prototype = { initialize : function() {}, main : function() { document.writeln('Start.<br>'); var obj1 = Singleton.getInstance(); var obj2 = Singleton.getInstance(); if (obj1 == obj2) { document.writeln('obj1 と obj2 は同じインスタンスです。<br>'); } else { document

    prototype.js でデザインパターン - Singleton
  • naoyaのはてなダイアリー - Hatena ID Auto-Discovery の仕様

    前回のエントリーではたくさんのコメント、トラックバックをいただき、ページの中にはてなアカウント名を埋め込む仕様が徐々に固まりつつあります。FOAF を使う、microformats 的解決手段を使う、PI を使うなどいろんな方法があるんだなあと勉強になりました。それから rel="payment" なんて話が海外ではあがっているという事も知りました。 それでどれを採用しようか、というところですが、投げ銭以外の目的でもそのページを書いている人の ID が取得できると将来的に拡がりがありそうだと思い、汎用的な Dublin Core を使った表現方法を試してみています。 <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" /> <link rel="DC.creator" title="id:naoya" href="ht

    naoyaのはてなダイアリー - Hatena ID Auto-Discovery の仕様
  • そのページが誰のものなのかを示す識別子を埋め込む仕様を考えています - naoyaのはてなダイアリー

    はてなブックマークに、はてなポイントをインフラにした投げ銭機能のようなものを追加したいと思っているのですが、ポイントを送信できる対象がはてなダイアリーだけでは面白くないし、それ以外のウェブサイトにもポイントを送信できるような仕組みを考えています。 そこで、AmazonのアソシエイトIDやGoogle AdSenseのIDのような、各アカウント毎にユニークなIDを発行してそれをウェブサイト上のどこかに埋め込んでもらえばいいのかなと思っています。その埋め込む方法を microformats で実現したらいいんだろうか、と思ってたのですがどうもそういう用途に使うというのは少し違うような気がしています。 ということで、引き続き投げ銭機能の仕様を考えています。全体的な機能自体の仕様はだいたい固まったのですが、この識別子のフォーマットについて決めかねています。 具体的にどういうことかというと、例えば

    そのページが誰のものなのかを示す識別子を埋め込む仕様を考えています - naoyaのはてなダイアリー
  • はてなマップのRSS - naoyaのはてなダイアリー

    Google Maps の日対応が始まったこともあるし、サービス開始から一週間で大きな update もないわけにはいかないだろう、ということで今日はエンジニアチーム一丸となってはてなマップの機能強化を行いました。僕はトラックバックの機能を作っていました。アップデートの主な内容ははてなマップ日記をご覧ください。 このアップデートの中で、マップのRSSフィード配信なんてものもあります。 日、はてなマップにおいて、表示中の地図上に含まれる各種拠点情報を含んだRSSの配信を開始しました。 地図にRSS、と聞いただけだと何だか不思議な感じでイメージし辛いのですが、使ってみるとすぐにお分かりいただけるかと思います。そのときマップを表示している範囲内の新着情報を、RSS で受け取れる、というものです。例えばはてなオフィス周辺の情報はこんな具合で syndicate されてます。 RSS の中には

    はてなマップのRSS - naoyaのはてなダイアリー
  • URL入力欄でいろんなページにジャンプするデモ - naoyaのはてなダイアリー

    昨晩にブックマークレットのデモを Wink で作ってみましたが、いろんな操作方法のデモにこれはいいなあと思って、調子にのってもう一つ作ってみました。 随分と前にURL入力欄から「id naoya」でダイアリーにジャンプという TIPS を紹介しました。それで、この方法で僕が登録しているアドレスバー用ショートカットを実際に使っている様子を実演してみました。 http://naoya.dyndns.org/~naoya/swf/urlbar.htm 少しサイズが大きめです、ごめんなさい。この中でもよく使うのは、はてなの各サービスへのジャンプとか perldoc とかかな。 話はずれますが、Remixable なウェブサイトの要件として Valid な HTML とかメタデータの配布なんかがよく挙げられます。加えて、こんな感じで URL を Hack しやすい形にしておくというのもひとつのポイン

  • このページに言及するブックマークレットのデモ - naoyaのはてなダイアリー

    僕は普段他のサイトを引用した日記を書く時は、「このページに言及する」ブックマークレットを使っています。(ブックマークレットは管理ツールの「関連ツール」からセットアップできます。同じ機能のボタンははてなツールバーやHatenabarにもあります。) このブックマークレットを使うと、引用して blockquote で囲むのも簡単ですし、少し前にトラックバックURLを自動で検出する機能も追加したので、トラックバックを打つのも同時に行えて便利です。 と、テキストで説明してもなかなか伝わりにくいだろうと思い、フラッシュでデモを用意してみました。 http://naoya.dyndns.org/~naoya/swf/refer.htm ちょっとカクカクしていますが、使っている様子が見られるかと思います。 なお、このデモは最速インタフェース研究会 :: GoogleAutoPagerというのを作りました