lxmlモジュールでXPathプリコンパイルの効果

前回の記事で使用したPythonのlxmlモジュールについて調べていたら、XMLデータの検索に用いるXPath式をプリコンパイルできるらしいことが分かったので、どのくらい速度が向上するのか試してみた。 テストデータは前回のものと同じ。 $ ls -hl | grep yahoo_l…

XPathの書き方でどのくらい速度に影響するのか

pythonのlxmlを使ってXML文書内を検索するとき、XPathの書き方でどのくらい速度に影響するのか、簡単に試してみた。 まず、検索対象とするテストデータとして、Yahooからrssをダウンロードした。 $ wget -q http://blogs.yahoo.co.jp/rss.xml && mv rss.xml …

SocketServerのエラー「socket.error: (98, 'Address already in use')」

pythonのSocketServerモジュールを使っていて、前回bindしたソケットは閉じているのに再実行時に以下のようにsocket.errorが発生した。 $ python -V Python 2.4.3 $ python test_srv.py server start server close $ python test_srv.py Traceback (most rec…

pytc-0.8をインストール

先日pytc-0.7について書いた件 http://d.hatena.ne.jp/stog/20090504#1241451199 を、 id:gunyara-python さんに連絡してみたところ、速攻で対応(pytc-0.8をリリース)してもらえました。というわけで 前回setup.pyにパッチを当ててインストールしたpytc-0.…

CentOS 5.3にアップデート後、cpanインストールが失敗する。

CentOS 5.3がリリースされたということで、何気なく yum update したところ、cpanインストールが失敗するようになった。 # cpan -i JSON::XS ...(色々出力される) LWP failed with code[500] message[Errno architecture (i386-linux-thread-multi-2.6.18-…

PyTCのインストールでハマる。

以下のように、tokyocabinetの ./configureで --prefixに/usr/local以外を指定してインストールすると、easy_installによる pytcのインストールが失敗するようです。 $ cat /etc/redhat-release CentOS release 5.2 (Final) $ python -V Python 2.4.3 (toky…

Ruby1.9のArray#sampleを使ってビンゴカードを作る。

別にビンゴカードを作りたいわけじゃないけど、Ruby1.9のArray#sampleの使いどころを考えてたらビンゴカードが思い浮かんだのでやってみました。最初は単純に (1..75).to_a.sample(24) で良いのかなーと思ったんですけど、wikipediaを読んでみたら なお、通…

Ruby1.9をインストールしてみた。

こちら(http://d.hatena.ne.jp/spider-man/20080802/p4)を参考に ./configure --program-suffix=1.9 としてruby1.9をインストールしてみました。 $ ruby -e'puts RUBY_VERSION' 1.8.6 $ ruby1.9 -e'puts RUBY_VERSION' 1.9.1 irb、gemもそれぞれ irb1.9、g…

目からウロコ

http://d.hatena.ne.jp/s-n-k/20080630/1214836026 必ず偶数番目に数値がくるっていうのが目からウロコ Rubyでもやってみる。おお、確かに目からウロコ。 RUBY_VERSION #=> "1.8.6" DIGITS = /(\d+)/ pieces = '123a4bcd56e'.split(DIGITS) #=> ["", "123", …

文字列から数字を抜き出す

Perlで文字列から数字を抜き出すのはこんな感じか? #!/usr/bin/perl use strict; use warnings; my $DIGITS = '(\d+)'; my @pieces; # 文字列を数字と数字以外に分ける。 @pieces = split(/$DIGITS/, '123a4bcd56e'); print join(", ", map{"'$_'"} @pieces…

構造体クラス

どういう場合に嬉しいのか、Structを使いどころがよく分からない。 class StructPerson < Struct.new(:name, :age) end foo = StructPerson.new("taro", 20) #=> #<struct StructPerson name="taro", age=20> class ObjectPerson attr_accessor :name, :age def initialize(name, age) @name = name @a</struct>…

net-sshの練習

RubyでSSH経由でリモートのLinuxマシンを操作するとかいうので、net-sshを練習している。 いかんせんドキュメントが英語なもんで進みが悪い。 http://net-ssh.rubyforge.org/ require "rubygems" require "net/ssh" host = "example.com" port = 22 user = "…

RailsのログのWARNING

会社のとあるマシンにインストールしてあるRailsを1.2.3から1.2.6にして動かしてみたら、ログの中に「この書き方はRails2.0では使えないよ。」みたいなWARNINGがいっぱい出てた。まあ、これ以上いじる予定の無いアプリだから放置することにした。

blessのタイミング

イニシャライズ中に他のメソッドを呼ぼうとしたら Can't call method "hoge" on unblessed reference at .... ってエラーが出た。しばらく悩む。 package Human; sub new { my $class = shift; my $name = shift; my $age = shift; my $self = {}; $self->{n…

ソケットをファイルのように読み取る

Pythonでソケット通信するとき ソケットオブジェクト.recv(受信バイト数) とすると受信できるみたいなんだけど、行単位で処理しようとすると何かと不便を感じたので調べたらあった。 import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s…

スーパーpre記法

↑で初めて使ってみた。ハイライトされてかわいくなった。いいね。

use strict時のソケットハンドル

今日、Perlでハマッたのでメモ。 use strict書いたら、関数にソケットハンドルを渡せなくってしばらく悩んだ。 use strict; use Socket; sub func { my $socket = shift; my $data = shift; .... } my $data = "any data"; socket(SOCKET, PF_INET, SOCK_STR…

インデント

普段、PerlやRubyでスクリプト書くときは2スペースでインデントしてるんだけど、 Python標準添付ライブラリをいくつか見てみたら4スペースでインデントしてたので、 エディタの設定いじってPythonファイル(*.py)のときはTabキーで4スペース挿入されるよう…

改めて感じたこと

やっぱり集中してるときに声かけられるとウザイ。 全速力でキーボードぶっ叩いてるのに、空気を読まずに作業を遮る奴ら方々がいて困る。やっぱり今の会社はもの作りするところじゃない。って思った。

wiki記法

若い子がwikiを設置してくれたんで、何回か書いてたら少し慣れてきた。

ここ1週間くらい

職場で何か作りたいって気持ちは辛うじて残っているけど、1行たりともコード書いてない。 モチベーションは明らかに下がってる。前の上司にはとても申し訳なく思う。

三連休

ほとんど寝てた。

とりあえず練習

日記の書き方の練習してみます。太い文字斜めの文字 あああ いいい ううう えええ 見出し 見出し テーブル テーブル