タグ

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

  • HTML::TreeBuilder + CSSセレクタがいい感じな件

    先日 PerlCSSセレクタ で HTML::Selector::XPath がいい感じであると思ったわけですが、CSS セレクタだけじゃなく何気に HTML::TreeBuilder::XPath とのコンボがすげーイイ!ということにいまさら気づきました。 HTML::TreeBuilder::XPath で findnodes するとツリー状に連なった HTML::Element なデータ構造が返ってくるんですが、HTML::Element は API をかなりいろいろ持ってて、これをうまく使ってやるとスクレイピングを自然な感じで書けます。 例えばはてなダイアリーの任意のページから、文部分だけをスクレイピングしたいと思ったときにキーワードリンクが邪魔だったりするわけですが、とりあえず HTML::Selector::XPath で div.section をぶっこ抜いて取れた HT

    HTML::TreeBuilder + CSSセレクタがいい感じな件
  • naoyaのはてなダイアリー - Perl で CSS セレクタ

    rubyスクレイピングして web の情報を取得するのには、今まで正規表現か xpath でやってたので、わりと面倒でした。で、ふと scrAPI というスクレイピングツールキットを知ったのですが、これがかなり便利そう。 このツールキットを使うと、CSS3 なセレクタを記述することで、要素を取得することができます。 という Ruby の scrAPI での CSS セレクタがいい感じでございますなあと指をくわえて見てたんだけど、 Per discussions in CSS Selector in Perl, I made a quick perl module HTML::Selector::XPath, which is available at http://svn.bulknews.net/repos/public/HTML-Selector-XPath/trunk/ now.

    naoyaのはてなダイアリー - Perl で CSS セレクタ
  • バイト募集してます。 - naoyaのはてなダイアリー

    手前味噌であれですが はてなでは各種サーバーネットワークの運用アシストを募集しています。はてな技術担当社員の指示に従って働いてもらうため、高度なスキルは必要ありませんが、経験に応じて様々な仕事をしてもらいます。 ということでつい先日からサーバー、ネットワーク関連のバイトを募集してます。 自分語りをさせていただきますと、僕がいまの仕事につくにあたって非常に重要な活動だったなあというのがありまして、それが大学のネットワーク管理のバイトでした。青山学院の理工キャンパスのネットワークを管理してたんですが、まあ仕事の内容はいま思うとお粗末というか、やばそうなのは全部教授がやっちゃってくれてたりもしましたが、それでも UNIX に触れ、ネットワークに触れ、各種サーバーに触れという感じでいろんなことを学びました。 実はそのバイトに就いた当時は UNIX の U も分からんような具合で、ネットゲームとか

    バイト募集してます。 - naoyaのはてなダイアリー
  • 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
  • naoyaのはてなダイアリー - カンファレンスの資料 - はてなと私と開発環境

    UP しときました。時間が15分だったので、ちょっとあっさりめの内容ではありますが。 http://bloghackers.net/~naoya/pdf/060909devcon.pdf 個人的にはここ最近のカンファレンスの中では一番面白かったかなと思いました。いろいろ役に立つ話とか、自分もやってみようみたいな話がいろいろ聞けたのが大きかったのかも。 2回目はどうだろう、だいたい話す内容が被りそうなので難しいかもね(笑) あ、そうだ。昨日の感想とかいろいろ読みたいので blog に書いた人は Shibuya.js のページなりこのエントリなりにトラックバックしていただけると大変嬉しいです。読んだやつは http://b.hatena.ne.jp/naoya/decon/ あたりに。

    naoyaのはてなダイアリー - カンファレンスの資料 - はてなと私と開発環境
  • naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う

    あとで書く、と言った手前なので書くとします。 DSASの中の人がすごい勢いで LVS の話を書いてくれてます。この辺。LVS を使うと Linux と箱でロードバランサが作れちゃいます。普通に買ったら数百万とかしちゃうやつ。 DSAS の中のひとに感謝しつつ、いい機会なのでやってみよう! と思っていろいろ試して昨日あたりからはてなの中でも LVS + keepalived で動かしはじめてます。いまのところ問題なし。 そのロードバランサをどこに使ってるかですが、普通ロードバランサというとインターネットからの入り口のところに置いてウェブサーバーの負荷分散に使うイメージがあります。が、今回ははてなでは MySQL のスレーブの手前に置くという役割でとりあえず使いはじめました。 +-----------+ +-----------+ | mod_perl | | mod_perl | +----

    naoyaのはてなダイアリー - MySQL の負荷分散に LVS + keepalived を使う
  • naoyaのはてなダイアリー - MyISAM vs InnoDB

    あくまで憶測で仮説でしかないんですが。 MySQL のストレージエンジンのうち代表的な二つ、MyISAM と InnoDB はよく MyISAM: Read は速いけどテーブルロックのため並行性が低い。運用が簡単。 InnoDB: MyISAM より Read は遅いけど並行性が高い 。行レベルロックなので。あとトランザクションや外部キー制約。運用が MyISAM よりちょっとめんどくさい。 という区別がされます。ここから転じて、 MyISAM は参照系クエリが大部分を占める場合に適用すると良い。例えば blog アプリケーションとか。 InnoDB は更新系クエリが多い場合に適用すると良い。 と言わたりします。実践ハイパフォーマンスMySQL でも第2章 ストレージエンジン(テーブル型) P.30 に アプリケーションでトランザクションを使用する必要がなく、主に SELECT または I

    naoyaのはてなダイアリー - MyISAM vs InnoDB
  • naoyaのはてなダイアリー - はてなブックマークのピン機能のフラッシュ

    はてなブックマークのピン機能を強化したのですが、ちょっと文章では伝えにくいのでフラッシュの動画を作ってみました。例によって Wink で作ってあります。 http://bloghackers.net/~naoya/swf/bookmark_pin.htm フラッシュのサイズがでかくてすいませんが、興味のあるかたは一度観ていただければうれしいです。 このピン機能は(Livedoor Reader に同じく)タブブラウザと一緒に使うと相性が良いです。Firefox でもいいですが、僕は個人的に unDonut が好きなのでこの動画も unDonut です。F4 をタブを閉じるに割り当ててあるので、ピンでいっきに開いて読み終わったら F4 で閉じる、というのでやってます。便利便利。 肝心の Mac の方は SafariStand を入れた Safari でもタブでがーっと開くのができないので、ち

    naoyaのはてなダイアリー - はてなブックマークのピン機能のフラッシュ
  • Test::Class - naoyaのはてなダイアリー

    最近 Perl でテストを書くときに Test::Class を使ってます。(もしかして常識?) これまでは *.t で Test::More をそのまま使ってたけど、テストが大きくなってくるとコードが分かりにくくなったり、自分であれこれしなきゃいけないことが多くてめんどくさい。 Test::Class は xUnit スタイルで Perl のテストを書けるフレームワークです。xUnitPerl 実装といえば Test::Unit もあるんですが、テスト用の関数も Test::Unit の流儀に従う必要があってちょっと嫌。Test::Class は Test::More と Test::Harness とか、普段使い慣れてる Perl らしいテストスタイルを使いつつ xUnit できるという点が良いです。 使い方ですが、 Test::Class を継承したテストクラスを作り テスト用

    Test::Class - naoyaのはてなダイアリー
  • ドラクエ8のレベル上げ方法 - メタルスライム/はぐれメタル/メタルキング狩り - naoyaのはてなダイアリー

    なんだか、この日記に「ドラクエ8 レベル上げ」で検索で来られる方が多いようです。期待を裏切るのも何なので、ドラクエ8のレベル上げ方法を書いてみます。まだプレイ中の方は、結構ネタばれになってしまうのでご注意。 ドラクエ8のレベル上げはもちろんメタル系狙いです。ドラクエ8のメタル系出現ポイントで一番おいしいのは、スライムの丘。ライドンの塔の少し北の丘です。(ただし空を飛べないと行けないところです。) スライムの丘では、スライム系だけが出現します。その中で、 メタルスライム はぐれメタル メタルキング が出現します。ほかのスライムが出たら倒してもよいし、にげてもよいです。レベルが48以上になると100%逃げられるらしいので、ヤンガスの「くちぶえ」を使ってメタル系が出なかったらにげるを繰り返すと効率がよいでしょう。 ここでのレベル上げの必須アイテムは3つ。 はやぶさの剣 x 2 不思議なタンバリン

    ドラクエ8のレベル上げ方法 - メタルスライム/はぐれメタル/メタルキング狩り - naoyaのはてなダイアリー
  • eijiro.pl 改 - naoyaのはてなダイアリー

    市販のソフトなども色々あるようですが、英辞郎そのものの辞書データが、1980円というリーズナブルなお値段でダウンロード可能なのですね。英辞郎のホームページから入手可能。 ただ、あくまでもデータだけなので、辞書として検索するためのビューワーが必要になります。 英辞郎のデータが 1,980円で手に入るとはなんということでしょう。Goodpic さんおいしい情報ありがとう。 そういえば英辞郎と言えば宮川さんが昔 Hack した eijiro.pl なんてのがあったなあと思い出しました。(http://bulknews.net/lib/columns/02_eijiro/column.html) これは alc のウェブページをスクレイピングしてコマンドライン用に整形するスクリプトです。短いスクリプトですが、英和/和英を自動判定したり、対話型でヒストリがあったり、less や lv などのページャ

    eijiro.pl 改 - naoyaのはてなダイアリー
  • (PRです) 負荷分散、サーバー/ネットワーク構築運用エンジニア募集中 - naoyaのはてなダイアリー

    いまスケーラビリティのを読んでたりもするんですが、そんな訳で負荷分散やサーバーやネットワークの構築・運用をやってくれちゃったりする硬派なエンジニアを、ただいま絶賛募集中です。 はてなのサーバーは現在 250 台以上あり、月間の PV は 5 億くらいあります。そんなシステムを、あくまで自前運用、低コストで運用していくことにこだわってここまでやってきました。サーバーはすべて自作、ネットワークも高価なスイッチなどは使わず費用対効果が最も良いと思ったものを選択し、ソフトウェアもいろいろ駆使し、自分たちで開発しながら色々工夫してやってます。 その一方で、サーバーが急激に増えてきたり、ソフトウェアで頑張ってたりすることもあって冗長性の確保があまりうまくできていなかったりする側面もあります。はてなのユーザーのみなさんに、はてなのサービスを 24 時間 365 日快適に利用していただけるように、「オレ

    (PRです) 負荷分散、サーバー/ネットワーク構築運用エンジニア募集中 - naoyaのはてなダイアリー
  • naoyaのはてなダイアリー - Perl の話をまとめた

    use strict がどうのこうのという話があって、そういえば昔自分もそんなこと書いたなあと思っていろいろ自分の書いた Perl の話を見返してて、せっかくだから拙作のまとめでも作っておくかと思いました。とりあえず文章量がそれなりにあって、まとまりのあるものだけを見繕ってみます。 今見ると、当時の理解が不十分で微妙なところもあったりしますが、そのあたりはご愛嬌。 いま読んでもまだ陳腐化はしてなさそうな話 お薦めの Perl をいくつか紹介 : NDO::Weblog Perlおすすめの書籍や情報。今ならここにPerl救命病棟とWEB+DB PRESS総集編を入れるかな。 Perlプログラマのレベル10 - Perlプログラミング救命病棟より - naoyaのはてなダイアリー Perlプログラマのレベル10。なんか他言語にも飛び火した。 Perl の変数に関するちょっとした誤解と、動的な

    naoyaのはてなダイアリー - Perl の話をまとめた
  • TinyMCE JavaScript Content Editor - naoyaのはてなダイアリー:

    とある友人に教えても経ったTinyMCEという WYSYWIGWYSIWYG な HTML エディタライブラリがやばそう。 JavaScript で記述された LGPL でオープンソースな クロスプラットフォームの 多言語対応もしてて 簡単に使える ライブラリ。似たようなものに htmlArea というのがあって結構昔に話題になってたんですが、導入がめんどくさかったりブラウザによってはまともに動かなかったりとか色々面倒な感がありました。TinyMCE の方はと言いますと、Installation instructions にもあるとおり、 <html> <head> <title>TinyMCE Test</title> <script type="text/javascript" src="/js/tiny_mce/tiny_mce.js"></script> <script type=

  • mod_perl 2.0.2 へのマイグレーション - naoyaのはてなダイアリー

    mod_perl 2 が Stable リリースになって気がつけば半年以上経った様子。はてなではこれまで mod_perl 2 は mod_perl 2.0RC-4 (1.99) とかを使ってましたが、ぼちぼち 2.0 にちゃんと移行した方がいいかなと、重い腰を上げつつ作業してます。 現在、mod_perl には互換性のない三つのバージョンが存在してます。 mod_perl 1.0 (1.29) mod_perl 1.99 mod_perl 2.0 (2.0.2) 1.0 は Apache 1.3 の API に対応している mod_perl、1.99 と 2.0 は Apache 2.0 API に対応している mod_perl です。Apache 2.0 がそれまでのバージョンとの API の互換性を捨ててアーキテクチャの見直しが行われたのをきっかけに、mod_perl も後方互換性を

    mod_perl 2.0.2 へのマイグレーション - naoyaのはてなダイアリー
  • 10分で完了、mod_perl 2.0 で Hello, World! - naoyaのはてなダイアリー

    10分で、といいながらたぶん mod_perl と Apache2 をビルドするのに 10 分以上かかるという罠。まあいいや。以下のやり方で LinuxMacOSX どちらでもちゃんと動くと思われます。 まず、mod_perl 2.0 のインストール。DSO でもいいけど、ここでは Apache にスタティックに組み込みます。 インストールディレクトリは /usr/local/httpd_mp2 に。 MPM は prefork。perl を thread 有効でビルドしてるなら mpm=worker でもいいと思います。 $ wget http://perl.apache.org/dist/mod_perl-2.0-current.tar.gz $ wget http://www.apache.org/dist/httpd/httpd-2.0.55.tar.gz $ tar zxvf

    10分で完了、mod_perl 2.0 で Hello, World! - naoyaのはてなダイアリー