タグ

ブックマーク / ktat.hatenadiary.jp (8)

  • Perl で WebSocket クライアント - Practice of Programming

    こんなんで良いかなぁ。 #!/usr/bin/perl use strict; use warnings; use POSIX ":sys_wait_h"; use Protocol::WebSocket::Handshake::Client; use Protocol::WebSocket::Frame; use IO::Socket; use open ':utf8'; use open ':std'; $| = 1; run(); sub run { my $s = IO::Socket::INET->new(PeerAddr => '127.0.0.1', PeerPort => 50000, Proto => 'tcp'); if ($s->connected) { my $hc = Protocol::WebSocket::Handshake::Client->new(url

    Perl で WebSocket クライアント - Practice of Programming
  • 逆引きにはまる - Practice of Programming

    VMで動かしているWebアプリの反応が尋常じゃなく遅かったので、調べていた。 構成は以下のようになっている。 [自機] -- [開発機(ルータ)] -- [VM(開発機内)]VM内でWebアプリたたく分には速かったのですが、外から叩くと異様に遅い。 traceroute も遅い...けど、まぁ、これはいつものこと...(普段は -n つけてる)。 straceつけて、実行してみる。 strace traceroute ...どうも、逆引きのところで、timeout している。 今回、遅いのに逆引きが関係してるかはわからないのだけど、とりあえず、LAN用のDNSサーバに逆引きの設定を追加してみた。 tinydns の設定を追加。 /service/tinydns/root/data に、 .168.192.in-addr.arpa:192.168.0.1:a:25920 dnscahce の

    逆引きにはまる - Practice of Programming
  • MySQL5.1 + full-text parser plugin 使ってみた - Practice of Programming

    Tritonが固まるとかいう話を聞いて、どうしようかなぁーと思って、試してみました。 http://sourceforge.net/apps/mediawiki/mysqlftppc/index.php?title=Main_Page インストール方法は、下記に簡単にまとめています。 http://www.rwds.net/wiki?page=MySQL5.1+%2B+full-text+parser+plugin インストールの注意点は、Mecabをutf8対応にするところくらいでしょうか。 64bit環境では、full-text parser pluginを64bitのCFLAGSをつけてコンパイルしろと言うことだったんですが、何つけたらいいかわからず、-m64てのをつけました。あってたのかしらん。 簡単にしか試していませんが、100万点のレコードのtext型のカラムに対して、sele

    MySQL5.1 + full-text parser plugin 使ってみた - Practice of Programming
  • @ARGVにUTF8フラグをたてる - Practice of Programming

    @ARGVには、普通UTF8フラグはつきません。どうやってフラグをつけるのか調べてみました。 その後、ブックマークコメントを見て、モジュール探したら見つけましたんで、追加しました。 -C か環境変数でやる こちらで見つけました. 起動オプション-Cか環境変数PERL_UNICODEにAを与えてやります。 perl -CA -e 'print utf8::is_utf8($ARGV[0]);' あああ PERL_UNICODE=A perl -e 'print utf8::is_utf8($ARGV[0]);' あああ -CやPERL_UNICODEが取れる値は、perldoc perlrun にあります。以下、抜粋。 -C [number/list] The "-C" flag controls some Unicode of the Perl Unicode features. As o

    @ARGVにUTF8フラグをたてる - Practice of Programming
  • LinkSeeker スクレイピングフレームワーク - Practice of Programming

    最近、スクレイピングすることが多かったので、面倒くさくなって作りました。まだ、いろいろ途中ではありますが。 初Mouse、初git、初githubなんで、なんか変なことしてたらすみません。 http://github.com/ktat/LinkSeeker/ スクレイピングするときは、以前書いてますが、下記のような処理をしています。 URLのページを取得する (URLのページを保存) スクレイピングする (スクレイピングしたデータを保存) データをDBに入れたりする これを、各クラスにばらけさせました。 LinkSeeker::Getter (URLのページ取得) LinkSeeker::HtmlStore (取得したページの保存) LinkSeeker::Scraper (ページのスクレイピング) -- 実装は継承したsubclassで LinkSeeker::DataStore (スク

    LinkSeeker スクレイピングフレームワーク - Practice of Programming
  • NICのデバイス名(eth0とか)が変わったら? - Practice of Programming

    Dellの vostro 1000 ノートPCをサーバに使っているのですが、最近、熱暴走でシャットダウンてことになっちゃってました。熱暴走になかなか気づけなかったのですが、これは、サーバのモニタリングをサボっていたせいですね...orz ちなみに、温度は、下記を調べるとわかります。 % cat /proc/acpi/thermal_zone/THRM/temperature temperature: 57 Cこれは、修理後の値。修理前は平均80度越えていて、95度あたりで、死んでました。 で、修理が終わって起動すると、eth0 が認識されてない。 ハードウェアのテストをしてもらうと、特に問題はない。 んー。Linuxの設定の問題だなぁーと。 ※ブックマークコメントより、ifconfig -aしたら、下記の作業(device見つける作業)は不要のようです。manを見ると、-a は、ダウンして

    NICのデバイス名(eth0とか)が変わったら? - Practice of Programming
  • ipcalcが便利 - Practice of Programming

    ネットマスクの計算とか、僕はとても苦手なんです。 そんなわけで、ipcalcというコマンド。 % ipcalc 192.168.255.0/25 Address: 192.168.255.0 11000000.10101000.11111111.0 0000000 Netmask: 255.255.255.128 = 25 11111111.11111111.11111111.1 0000000 Wildcard: 0.0.0.127 00000000.00000000.00000000.0 1111111 => Network: 192.168.255.0/25 11000000.10101000.11111111.0 0000000 HostMin: 192.168.255.1 11000000.10101000.11111111.0 0000001 HostMax: 192.168.

    ipcalcが便利 - Practice of Programming
  • UtilをまとめてしまうUtil::Any - Practice of Programming

    #coderepos で、「怪しい名前空間w」と言われてしまいましたが(^^;; Util系のモジュールがPerlにいくつかあって、便利なんだけど、紛らわしいというか、覚えてなくて、毎度調べるみたいなことがあります。 たとえば、List::UtilとList::MoreUtils。 「uniq関数どっちやったけ...?」 みたいな。そんな、わずらわしさを解消するために、Util::Any というものを作ってみました。 まとめるだけじゃ芸が無いので、まとめるモジュールを自作しやすいようにしてみました。 CPAN http://search.cpan.org/dist/Util-Any CodeRepos http://coderepos.org/share/browser/lang/perl/Util-Any/trunk/ 使い方は非常に簡単。 use Util::Any qw/list/;

    UtilをまとめてしまうUtil::Any - Practice of Programming
  • 1