2011-01-01から1年間の記事一覧
bytes.pm will be deprecated in Perl 5.12の話の続きです。 なぜ bytes::length()*1を使うべきでないか。それは、一般論としてコードの意味がおかしく、また実際にバグの温床になるからです。 まず、入力されたバイト列をデコードして内部表現にし、出力の…
モダンPerlの世界へようこそ#43がXslateの話だと思ったらノイズ呼ばわりされたでござる、の巻。 著者であるid:charsbarさんの捕捉によれば以下のとおり モダンPerl連載第43回 - Charsbar::Note 「TTの代用品としての」Template::AlloyとText::Xslateについて…
I have created the Xslate mailing list to support Xslate usage ;)
h2xsからModule::Starter、Module::Setupといろいろなディストリ生成ツールを使ってきましたが、ここ半年ほどはDist::Makerという自作ツールを使っています。特にCPANにリリースするつもりはなかったのですが、Dist::Makerが良い。で紹介してもらったのでち…
Shibuya.pm Technical Talk #16 夏の正規表現祭りにスピーカーとして参加してきました。mixiさん会場提供ありがとうございました! 私は「Hello, re::engine!」と題してPerlのプラガブル正規表現エンジンについて発表しました。「正規表現」のイントネーショ…
『心理学の「現在がわかる」ブックガイド』は5人の心理学者による120冊以上の書籍のレビューである。この本は私の大学時代の恩師二人が監修&共著ということで買ってみたが、かなり面白い。扱っている本はメジャーなものが多く、私が読んだことのある本も十…
Coroを使うと簡単にFurlで並列HTTP通信が出来ます。 #!perl # usage: http-ping.pl [urls...] use strict; use warnings; use Coro; use Coro::Select; # Furlよりも先にロードすること! use Furl; my @coros; foreach my $url(@ARGV) { push @coros, async…
同期に向けたエントリです。今月のWeb+DB PressはDeNAのエンジニアである[twitter:@xaicron]さんが寄稿しているのでオススメです。 Web+DB PRESS vol.63 の Perl Hackers Hub に寄稿しました - Technology of DeNA WEB+DB PRESS Vol.63作者: 竹迫良範,和田卓…
Perlではメモリリーク検出ツールがいくつか開発されているので、top(1)の結果を眺めるよりそういうツールを使うほうが楽である。 さて、メモリリークが発生しているとき、その可能性としてはだいたい以下の4つが挙げられる。 Perlレベルでの循環参照 グロー…
いままでキー配列のカスタマイズにあまり興味がなく基本的にデフォルトのままのキー配列に慣れるようにしてきた。キー配列のカスタマイズをすると何かの折にカスタマイズされていないPCを使うときに非常に不便だからである。しかし最近は左手の小指周辺が慢…
Xslate 1.3000でhtml_builder()に非互換な変更を行いました。 html_builder()で作成したフィルタは、いままではunmark_raw()で型情報を落とした引数を受け取っていました。しかし1.3000からは引数をそのまま受け取るようになります。これによりフィルタが全…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
特別な条件がないかぎり、each()は使うべきではありません。代わりにkeys()/values()を使うべきです。その理由は2つあります。 each()は遅い each()でハッシュ全体をループするのは遅いです。これは、keys()/values()がその内部の値をそのまま参照する*1のに…
window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.paren…
ソースコードを読んでいると、関数の引数や戻り値の具体的な例がほしいと思うことがよくある。。そこで、実行可能なコメントを仕込むモジュールであるSmart::Commentsを使って、モジュール内にテストを兼ねたサンプルコードを仕込めばいいのではないかと考え…
TwitterのTLで知ったのだが、少し前に海外の掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸…
このたびperl 5.14.0がリリースされたわけですが、Perlのバージョン表記x.y.zのyは偶数が正規版、奇数が開発版となっています。したがって、5.13系は開発版で今回リリースされた5.14は正規版というわけですね。
perl 5.14.0がリリースされた。Ubuntuなどでは、perlbrew経由でインストールするといくつかテストが失敗するようなので--forceオプションを使わないとインストールできない。 # 念のため-DDEUGGINGもつける。threadは好みで。 $ perlbrew --force install pe…
プログラミング初心者にオススメのPerl本にて、リャマ本(『初めてのPerl』)を読了した段階でls(1)やgrep(1)の簡易版を作れるようになっていればよい、と書きました。そこで実装例として、最小限のls(1)を実装してみました。また、リャマ本読了程度の知識を前…
ときどきPSGIアプリをコマンドラインから呼び出したくなる*1ので、ハンドラを書きました。それなり*2に$psgi_envを整えてくれるので便利です。 https://github.com/gfx/p5-Plack-Handler-CLI http://search.cpan.org/dist/Plack-Handler-CLI/ `plackup -s CL…
この時期、Perlを学び始める方も多いと思います。そこでプログラミング初心者がPerlを学ぶのに適した本を、私が実際に読んだことのあるものの中から選んでみました。 1冊目 1冊目はなんでもいいと思うのでとりあえず定番としてリャマ本を挙げておきます。初…
id:miyagawaさんにPerl on DotCloudのbeta codeをもらったのでさっそく試してみた。 参考: dotCloud でPSGI Hello World (lestrrat) 結果、簡単にHello, world!ができた。 http://hello.goro.dotcloud.com/ lestrratさんの記事ではMacOSXだったみたいだが、…
[twitter:@shmorimo]さんとのやりとりのなかで考えた、Xslateの関数にクロージャを渡したいケースのまとめです。 まず前提条件: リクエスト毎にクロージャをXslateに渡したい Xslateの登録関数を定義できるのはnew()のときのみ 動的に関数を加えることはで…
このたび多くの方から入社祝いをいただいたので、ここで改めて御礼申し上げます。ありがとうございます。 『実践ハイパフォーマンスMySQL』([twitter:@kazeburo]さんより) 『安全なWeアプリケーションの作り方』([twitter:@trinityCRZ]さんより) 『並列コ…
複数の正規表現式で文字列からトークンを切り出したいことがある。しかし、以下のコードは動かない。無限ループになってしまう。 #!perl -w # THIS DOES NOT WORK!!! use 5.10.0; use strict; use utf8; my $s = 'foo bar baz FOO BAR BAZ'; while( 1 ) { if…
既に2週間ほど経過していますが、4/1付けでDeNAに入社しました。なかなか刺激的な毎日を送っています。 さて、これからは忙しさが増す一方でしょうから、今のうちに初心を振り返っておきます。 私はこの数年間、コードを書きながら、自分の人生の中でやりた…
[twitter:@tomita]さんの『CPANモジュールガイド』を献本いただきました。ありがとうございます。Perl CPANモジュールガイド作者: 冨田尚樹,タナカユカリ出版社/メーカー: ワークスコーポレーション発売日: 2011/04/08メディア: 単行本(ソフトカバー)購入:…
OSDC.TW で Xslate の布教をしてきました。 Let's use Xslate - Osdc.tw 2011 View more presentations from Goro Fuji 三行で纏めると Xslate最強 インストールは簡単 コマンドラインで試すのも簡単 です!
Web+DB PressでClojureベースのプレゼンテーションツールであるL5: Yet Another Presentation Tool for Lispersを知ったのでちょっと使ってみた。コードとデータが同一フォーマットであるLispはプレゼンテーションツールに適しているかもしれないと思ったか…
去年も行きましたが、今年もShibuya.pmのPerl hacker達といっしょにOSDC.TWに行って発表してきます*1。ネタは去年と同じXslateなので代わり映えしません。しかしながら、当時は本当に書き始めたばかり*2でまだ海のものとも山のものともつかなかったものが、…