CasperJS は PhantomJS の機能を使って現在扱っているページに対して JS を差し込める。 var casper = require('casper').create({clientScripts: ['jquery-1.9.1.min.js']}); clientScripts にローカルの JQuery へのパスを指定する。phantom.incectJs() を…
CasperJS とは CasperJS: CasperJS is a navigation scripting & testing utility for PhantomJS and SlimerJS written in Javascript JavaScript で書けるスクレイピングとテストを便利にしてくれるツール。PhantomJS/SlimerJS を使っているので Mechanize …
if ($ua =~ /Android/) { if ($ua =~ /Mobile/) { $type = 'Android phone'; } else { $type = 'Android tablet'; } } elsif ($ua =~ /iPhone/) { $type = 'iPhone'; } elsif ($ua =~ /iPad/) { $type = 'iPad'; } http://googlewebmastercentral-ja.blogspo…
#!/usr/bin/env perl use strict; use warnings; use Benchmark qw(:all); use Cache::Memcached::Fast; my $mf = Cache::Memcached::Fast->new( { servers => ['127.0.0.1:2010'] } ); my $mfm = Cache::Memcached::Fast->new( { servers => ['127.0.0.1:11…
環境は以下の通り mac mini 2.66GHz 4GB RAM kyotocabinet 1.2.30 kyototycoon 0.9.18 KTをMemcachd pluginサポート起動 ktserver -plsv /usr/local/lib/ktplugservmemc.dylib -plex 'port=2010'ベンチを取ったコードはこんな感じ とりあえずsetのベンチ #!/…
リモートリポジトリの作成 @example.com cd ~ mkdir git mkdir git/FooBar.git cd git/FooBar.git git --bare init --shared=trueローカルリポジトリからpush mkdir FooBar cd FooBar git init touch README git add README git commit -a -m "initial impor…
一身上の都合でMacが使えなくなったのでUbuntuが入ったラップトップを引っ張り出してきたついでに、10.10をインストールして XML::LibXMLをインストールしようとしたらlibxml2が見つからないと怒られた。 hide@localhost:~$ perl Makefile.PL enable native …
- Linux version 2.6.18-164.el5xen - Memory: 532480k - http://localhost:8080/ Jetty 6 w/o keepalive concurrency num [#/sec] 10 10000 1352.23 100 10000 3793.19 1000 10000 3836.32 w/ keepalive concurrency num [#/sec] 10 10000 3351.16 100 1000…
QRコードを表示するだけの簡単なお仕事を大量にさばきたいって言われたので書いてみた。 use Imager::QRCode; use Plack::Request; my $qrcode = Imager::QRCode->new( size => 2, margin => 2, version => 1, level => 'M', casesensitive => 1, lightcolor…
lighttpdを使ってるとログローテートにcronologをよく使うと風の噂でよく聞きます。そんなcronologをそのまま32bit環境下で動かすとファイルサイズ2GBを超えて書き込めないですねーというありがたい説法をid:kazuhookuさんにしてもらいました。要は32bitアプ…
Macで ab -c 1000 -n 10000 http://example.comとかすると socket: Too many open files (24)とか怒られる。 CentOSとかなら大丈夫なのに。おもむろに ulimit -nとかしてファイルディスクリプタの制限値を見ると、Macは 256おふっ。 ちなみにCentOS 5.3だと1…
会社のmacが交換になったので移行アシスタントとやらで移行してもらったんだけど、色々不具合が… /etc/以下のファイルが色々バックアップされてた(hostconfig~(古い Mac から)みたいなファイル名) /etc/hosts がバックアップなしに綺麗にデフォルトに戻っ…
実名(hideo)出したって匿名(hidek)でも呼んでもらえない俺(hideki)がいる。
ircで聞いたときはうまく説明できなかった&tokuhiromさん、Yappoさん、kazuhoさんに直接教えてもらったのでまとめとくなり。Proxyサーバーを作ることになった。 こんな感じのやつ。で、これの問題として対抗のサーバーの応答速度が遅い場合があってそこにPr…
今は時間取れないのでポインタだけ。Blog PSGI - Perl WSGI - bulknews.typepad.com http://d.hatena.ne.jp/tokuhirom/20090904/1252091316 PSGIまとめ - Angelos in Action - angelosグループ Googleグループ: psgi-plack Googleグループ FAQ/SPEC GitHub -…
http://developer.mixi.co.jp/appli/appli_mobile/lets_enjoy_making_mixiappmobile/process_flowmixiモバイルアプリはユーザーからのリクエストを一旦受け取ってアプリケーションサーバーへリクエストするという形をとっています。これ自体は色んな事情があ…
追記: id:tokuhirom先生に添削してもらった。 malloc使うべからず -> NewXX()系でアロケート、SafeFree()で解放すべし(そういえばid:hirose31さんも言ってた) newSVpvの第二引数(STRLEN)は明示的に指定すべし -> 0で自動計算は\0 終端前提 SV * getString(CF…
http://developer.apple.com/documentation/CoreFoundation/Reference/CFStringRef/Reference/reference.html CFStringRef T_CFSTRINGREF INPUT T_CFSTRINGREF $var = CFStringCreateWithCString(kCFAllocatorDefault, (char *) SvPV_nolen($arg), kCFString…
git svn clone http://svn.coderepos.org/share/websites -r HEADでいけると思ったけどだめだったので svn log --limit 1 http://svn.coderepos.org/share/websites ------------------------------------------------------------------------ r34214 | Neo…
SQLiteの追加/更新はトランザクションを使うと高速化に効果があるというのはよく効くので実際試してみました。 use strict; use warnings; use DBI; use Benchmark qw(:all); my $count = 100; my $loop = 100; cmpthese( $count, { commit_each_insert => \…
コードリファレンスのシリアライズとデシリアライズ use strict; use warnings; use YAML; use Data::Dumper; $Data::Dumper::Deparse = 1; { no warnings ('once'); $YAML::UseCode = 1; } my $obj = { hello => sub { print "hello\n"; }, name => "hoge",…
typesterさん謹製のC::P::FV::Autoはとっても便利なのですが、例に漏れず5.8対応されていません。で、意外とニーズがあるようなのでさくっとpatch書いてみました。(といってもMRO::Compat化したくらいですが…)ただ、sub forwardでlocal $NEXT::NEXT{}してる…
Standard C++ foo-bar.cpp #include <iostream> int main () { std::cout << "Hello World"; } $ gcc -o foo-bar foo-bar.cpp -lstdc++ $ foo-bar Hello Wolrd Devel::BindPP $ perl -MDevel::BindPP -e 'use Devel::BindPP::WriteFile()'foo-bar.cpp include <iostream> #includ</iostream></iostream>…
Moose Docs Grant Is Complete – House Absolute(ly) Pointlesshttp://cpansearch.perl.org/src/DROLSKY/Moose-0.74/Changes 0.66 Tue, February 3, 2009 * Moose::Manual - This is a brand new, extensive manual for Moose. This aims to provide a compl…
YappoLogs: CPUの気持ちは大事だけど、VMの気持ちも考えようよ http://d.hatena.ne.jp/yappo/20090330/1238360153会議中なので-MO=Consiseしてないし特に言いたいことはない。 use strict; use warnings; use Benchmark qw(:all); cmpthese( timethese( 0, {…
http://marcus.nordaaker.com/2009/03/a-proper-trycatch-for-perl/メモ 後で書く { package HTTPStatus; use Moose; has code => (is => 'rw', isa => 'Int', required => 1); __PACKAGE__->meta->make_immutable; } use strict; use warnings; use TryCatc…
FAQにもあるけど、Moose::Objectも継承して->meta->new_objectを明示的に呼ぶことにより、delegationを使わないでNon-Mooseクラスを継承することもできる。 use strict; use warnings; { package Parent; sub new { my ($class, %args) = @_; bless {name =>…
久々にMoose書こうとしたら酷いことになってたのでリハビリ開始。 Non-Mooseなクラスを継承する時には委譲を使うのは知ってたけどコンストラクタも継承するとこんな感じ? 自信なす>< { package Parent; use strict; use warnings; sub new { my ($class, %…
Catalystがモダンかどうかは置いておいてCatalystのコンポーネントを書く時のお作法として大昔は ... use base qw(Catalyst::Action); use NEXT; sub execute { my $self = shift; $self->NEXT::execute( @_ ); ... ちょっと前は ... use base qw(Catalyst::…
追記:2009/02/19 場所変更になりました。 追記:2009/02/19 場所仮決めしました。2/19 15時までに出欠をはてブコメントで表明してください。なお人数が多い場合には渋谷の他の店なる可能性があります。 追記:2009/02/10 日程が変更になりました id:lestrratさ…