redesigning right now. simple is the best.

この日記のはてなブックマーク数   フィードメーター - blog.s14u.info

あれ?whois ないな。

whois があるサーバへ移動。

 $ rpm -qf /usr/bin/whois
jwhois-x.x.x

あ、jwhois だったか。

whois のないサーバに戻る。

 # yum install jwhois

よし。これで www.s14u.info の whois をみるとするか。(なんで自分のサイト見えないの?)

「あー、これ hosts にかかないとダメっすね」
「ブラウザ再読み込みして」
「あれー、hosts に書いたんだけどな」
「ping うったら何か hosts と違う IP を叩いてるなぁ」
「いつ反映されるんだっけ?」


そんなあなたに・・・

lookupd -flushcache

Mac で同僚の人と動作確認している最中に、同僚の人に教えてもらいました。
さすがは同僚の人です。

忘れないように備忘録。。。

写真共有サイトの Zooomr API を公開しましたよ。
Flickr API との後方互換性もあり、なかなかすてきです。Congratulations!

Flickr:
http://farm1.static.flickr.com/253/461524967_f3551dfeb0.jpg
Zooomr:
http://static.zooomr.com/images/5217432_7838e9f814.jpg 



twitter_01.jpg仕事をしていると自分自身が想定していることを越える何かが発生したりするとフラストレーションがたまるもの。そんなフラストレーションを軽減するメソッドとして最近社内で流行しているのが、「それは恋ですね」という台詞。端を発したのは同僚の「例えばそれは恋愛みたいなものですよ」という名言から。 確かに相手を思えば思う程、自分の欲求は募り、大きな期待をしてしまうもの。なんか似ているところがありますよね。おそらくフラストレーションの原因とあなたは恋をしているのです。仕事でたまったフラストレーションを恋に例えてみると案外笑って一蹴できてしまい、ストレスフリーな状態になれたりします。 今仕事でストレスを抱えている方、恋に例えてみてはいかがでしょうか?

JSMIN, The JavaScript Minifier で紹介されていた Perl モジュール JavaScript::Minifier

Perl extension for minifying JavaScript code
ということで、javascriptファイル中の不要なスペースや改行などを取り除いてくれます。

ある時点での jQuery の core.js に JavaScript::Minifier をあててみました。
45%くらい小さくなりました。


# ls -al core*
-rw-r--r-- 1 root wheel 21346 Jun 10 01:21 core-min.js
-rw-r--r-- 1 root wheel 38087 Jun 10 01:18 core.js

小さいことではありますが、でもファイルサイズはウェブページ閲覧のパフォーマンスに影響する部分ですので、こういうツールはありがたいですね。

YAPC::Asia 2008 に行ってきました で概要は書いたので、こちらではその他のことを書きます。

多くのご来場いただいた皆様、本当にありがとうございました。最後の竹迫さんのプレゼンを見ながら、そして宮川さんが「スタッフは立ってください」といったあとに皆さんから温かい大きな拍手をいただいたとき、涙がこぼれそうになったのは言うまでもありません。最高の体験ができました。

この体験をくれた YAPC::Asia 2008 に感謝、3日間の参加を許可してくれた会社に感謝、私が不在の間に仕事をこなしてくれた会社のみんなに感謝、心の底から本当に感謝しております。ありがとうございました。

また来年もスタッフとして参加できたらいいなと思いつつ、でも京都だったとしたら、会社はどこまで許可してくれるんだろうか、と気にしながら、また来年の YAPC::Asia につなげたいと思います。

今回の YAPC::Asia 2008 では WADL でごにょごにょできる XML::WADL というモジュールを披露しようと思っていたのですが、開発がまったく間に合っていなかったことと WebService::Simple などウェブサービス系が重なっていたようで、今回はプレゼンできませんでした。このモジュールはとりあえず完成させようと思うので、いずれ CPAN にあげるつもりです。hackathon では XML::WADL の実装を進めたいと思います。

そして今は弾さんのお宅にお邪魔して hackathon に参加しております。プレゼンをすることはできなかったのですが speakers のリストに入れていただいたので今回 hackathon に参加することができました。Larry Wall、Ingy、Jesse、clkao、gugod、jrockway、nothingmuch、lbrocardとかがいます。雰囲気的にはお客さん抜きの YAPC::Asia 2008 の DeNA room に近いです。基本的に英語です。この場を提供していただいた、弾さんとご家族のみなさま、本当にありがとうございます!

まだまだ書き足りないことがたくさんあるような気がしますが、感謝の気持ちでいっぱいであることをお伝えしました。

追伸:
懇親会で名刺をいただいた皆様に名刺をお返ししたいところなのですがタイミングがありません><
またどこかでどこかのイベントなどでお会いすることがあるかと思いますのでそのときにお返しさせてください。お声がけいただきましてありがとうございました。お話できてうれしかったです。

XML::LibXML を使って、XML の属性を取り出すときに findvalue メソッドで XPath を使うのと XML::LibXML::Element のメソッド getAttribute を使うのとどちらが早いのかベンチマークしてみました。

Benchmark: timing 10000 iterations of accessor, xpath...
  accessor:  0 wallclock secs ( 0.05 usr +  0.00 sys =  0.05 CPU) @ 200000.00/s (n=10000)
            (warning: too few iterations for a reliable count)
     xpath:  1 wallclock secs ( 0.55 usr +  0.00 sys =  0.55 CPU) @ 18181.82/s (n=10000)

XPath の方が遅いのか。。。XPathエンジンとか重たいのかな?

以下がコードです。

#!/usr/local/bin/perl
use strict;
use warnings;
use XML::LibXML;
use Perl6::Say;
use Benchmark;

my $xp = XML::LibXML->new;
my $doc = $xp->parse_string(<<"XML");
<?xml version="1.0"?>
<doc attr="please">
please ignore.this is a test.
</doc>
XML

my $xml = $doc->documentElement;

timethese (10000, {
'accessor' => sub { $xml->getAttribute('attr') },
'xpath' => sub { $xml->findvalue('@attr') },
});

追記
さらに、Devel::Profile を用いて、上記の timethese の中の accessor と xpath のそれぞれ片方だけを実行した結果の上位10位です。(上記のコードを baz.pl として保存して、perl -d:Profile baz.pl と実行)

'accessor'のみ実行(#'xpath'の行をコメントアウト)


time elapsed (wall): 0.7500
time running program: 0.5730 (76.40%)
time profiling (est.): 0.1770 (23.60%)
number of calls: 41183

%Time Sec. #calls sec/call F name
34.91 0.2000 20000 0.000010 :.../Perl/5.8.6/Benchmark.pm:651
18.27 0.1047 10000 0.000010 XML::LibXML::Element::getAttribute
10.43 0.0598 1 0.059758 :.../Perl/5.8.6/Benchmark.pm:675
10.41 0.0597 10000 0.000006 XML::LibXML::Element::_getAttribute
10.30 0.0590 1 0.059044 :.../Perl/5.8.6/Benchmark.pm:682
3.16 0.0181 1 0.018114 :baz.pl:6
1.23 0.0071 383 0.000018 Benchmark::new
1.17 0.0067 0 0.006728 *
1.15 0.0066 1 0.006588 :baz.pl:9
1.10 0.0063 1 0.006291 :baz.pl:8

'xpath'のみ実行(#'accessor'の行をコメントアウト)


time elapsed (wall): 2.2250
time running program: 1.7546 (78.86%)
time profiling (est.): 0.4705 (21.14%)
number of calls: 111103

%Time Sec. #calls sec/call F name
21.90 0.3842 10000 0.000038 XML::LibXML::Node::_find
17.64 0.3096 10000 0.000031 XML::LibXML::Node::findvalue
11.83 0.2076 10000 0.000021 XML::LibXML::NodeList::to_literal
11.63 0.2041 20000 0.000010 :.../Perl/5.8.6/Benchmark.pm:651
11.26 0.1976 10000 0.000020 XML::LibXML::Node::find
3.90 0.0684 10000 0.000007 XML::LibXML::Node::string_value
3.56 0.0625 1 0.062548 :.../Perl/5.8.6/Benchmark.pm:682
3.44 0.0604 1 0.060442 :.../Perl/5.8.6/Benchmark.pm:675
3.36 0.0590 10000 0.000006 XML::LibXML::Literal::new
3.23 0.0566 10000 0.000006 XML::LibXML::NodeList::new