2008-01-01から1年間の記事一覧
えっ、と思った現象です。 my $mech = WWW::Mechanize->new; my $res = $mech->get('http://〜〜〜〜.jpg'); warn "mech->content: " . length($mech->content) . "\n"; warn "res->content : " . length($res->content) . "\n"; # 結果 mech->content: 5078…
連載最終回では、主にNFAエンジンについて説明しました。鬼車等の正規表現エンジンも記事で紹介したエンジンのようにNFAをバイトコードに変換して処理を行っています*1ので、今回の記事が少しでもソースを読む際の助けになればと思います。さて、記事中で紹…
連載第五回にして、ようやく正規表現エンジンが完成しました。それとも、逆にあっけなく完成してしまって拍子抜けと言ったほうがいいでしょうか??(笑) こんなに簡単に実装できたのは、今回のエンジンではキャプチャを実装してないことが大きいでしょう。キ…
またまた議事録の元ネタを書かせて頂きました。今までの要約はこちらです。途中参加も全然可能ですので、興味がある人はぜひ。
今現在のtgsetup.pyがまた動きませんねえ。*1駄目になった修正と思われるr5755を見てみたんですけど、なんだこれ。エラー処理を強化してるのはわかるんですけど、以下のコードがまずすぎです。 else: if argv: from setuptools.command.easy_install import …
ワタクシは横浜人ですので。
連載も第四回となりました。今回が正規表現エンジンを作る上で一番重要な部分で*1、正規表現とNFAの関係を説明しています。結局は当たり前のことしか言ってないんですが、そこはコロンブスの卵でして、知ってるのと知らないのとでは大違いです。さて、この連…
正規表現エンジンを作ろう(3)では、簡単のためすべて演算が右結合となるように構文解析を実装しました。ただ、ちょっとこれは乱暴過ぎたかなと反省もしてます。そんなわけで、 なお、引き算、割り算等のような、5-3-2が5-(3-2)のように右結合になると結果…
第三回の公開です。今回は字句解析と構文解析を自作しました。 本格的な構文解析器は、通常 yacc 等のツールを利用して自動で作ることが多いですが、今回の正規表現の文法は単純なので自作してしまいます。 じゃあ、ツールを利用するとどうなるの? ってのを…
CodeZineさんで第ニ回が公開されました。今回は最も底辺の部分である、NFAとDFAを実装しています。ただし、NFAの実行部に関しては以下の通り実装しませんでした。 このためNFAを実行するソースはDFAに比べてかなり複雑になります。ただし、今回はNFAを実行す…
CodeZineさんで連載を始めました。全6回でDFAエンジンの実装方法を紹介する予定なので、興味のある方はぜひ*1。ところで、第一回で出て来た /^([a-z]*)\1$/ と言う正規表現ですが、 残念なことに、数学的な3つの定義ではこの正規表現が表す文字列集合を表現…
問題 文字列'abcccde'に対して、以下の最短一致マッチ(non-greedy match)を使った(1)から(4)の正規表現をかけたときのマッチ結果は? (マッチするかしないかではなく、どの部分がマッチして $& に入るかです。) foreach my $regexp ( qr/bc*/ , # (1) qr/bc*…
POE::Wheel::ReadLine は便利なのですが日本語が使えません。なので、パッチを書きました。 使い方 利用は自己責任でお願いしますm(_ _)m。ReadLine-1.003.patchをDLして、ReadLine.pmにあててください。でもって、POE/Wheel/ReadLine/JP.pmをインクルードパ…
行ってきました。議事録の元ネタ書いてきました。今回のDDD読書会は要約がすべてwikiにまとまっているので、途中参加もしやすくなってます。興味のある方はぜひぜひ。
dieの引数って文字列だけじゃなかったんですね。こんな風にdieの引数省略したら、見慣れないメッセージが。 % perl eval {die "in eval"; }; die; in eval at - line 1. ...propagated at - line 2. perldocを見てみます。 If LIST is empty and $@ contains…
LTです。一人6分間。
いつもの実況メモです。
まさに「お邪魔」してきます(笑)。アウェイ感を楽しんで来ます≧(´▽`)≦ustreamはコチラから。
今回はfujita-yさんのお話がとても刺激的でした。バイナリアンの人って、楽しそうだなーと・・・って、あんまLisp的な刺激じゃないですね(笑)。Lispに特化したスタックやクロージャの最適化の話も面白かったです。懇親会でも間接分岐についてわざわざ教えて…
どうもSVKに慣れません。昨日も暴走させました。しかも2回も。経験的に、「チェックアウトしたワークコピーにpullを使う」ことによる失敗が多い気がします。以下、たまたま昨日暴走させた2例をメモしておきます。 そもそも、なんでワークコピーにpullする…
すいませんすいませんすいません。 1,1,レコードA 2, ,レコードB 3,1,レコードC 4,1,レコードDこんなファイル。2カラム目が有効フラグで、こいつが立ってる行だけ表示したかったとします。 open(my $fh, 'test.csv') or die; while(<$fh>){ tr/\r\n//d; my (…
太古の昔、localよりmyを使え! とみんなが口を酸っぱくして言っていたものだから忘れがちですが、正しい使い方をすればlocalはすごい便利です。 まとめ 最初にまとめを書いておきます。(なので、最後にまとめはありません!) localは便利 メソッド間に渡っ…
今回も参加してきました。議事録の原本を書きましたので、興味ある方はどうぞ!
ドラゴンブック*1って種類がたくさんあるのですね。まとめてみましたので、買う時の参考にどうぞ!版は1と2っぽいですが、以下のような種類があります。 1版(赤いドラゴン) ハードカバー .com 日本語 ハードカバー+第2版のオンライン記事 .com 2版(紫のドラ…
久々に数学やると混乱するので、メモです。nとmを自然数とし、P(n) を 整数nについての命題とすると、 (1). は真ですが、 (2). の右方向は成立しません。
最近、 DBIx::Class の利用例を色々見てるのですが、Schema->connect は見かけるのですがdisconnectを見かけません。疑問に思ったので、色々調べてみました。 結論 disconnectは不要。
仕様かバグかはわからないですけど*1、タイトルの通りです。flymakeとかするときはきちんと -I とかで渡してるんですけどね。ってことで、perly_senseコマンドにパッチあてました。かなりNGなパッチですが、動くことは動きます。 % diff -c perly_sense.orig…
まず、スタッフの皆様、大変お世話になりました。毎年のことなのですが、LLイベントは過酷なのにあっという間に終わると言う印象を持っています。今年も、11時間やったとは思えないほど時間が経つのが早く、楽しい時を過ごさせて頂きました。後、Larry Wall…
電源を確保できたので、*1今日もログ取っておきます。ちなみに、チケットを持ってくるのを忘れましたorz。当日券買ったので二重払いとなりましたが、Larryさんの旅費と言うことで(笑)*2。 *1:結局、電源は途中からお借りしました。助かりました! *2:チケッ…
Trac-0.11.1.ja1入れました。以下の現象が起きました。 現象 mime_encoding の指定が間違えていると、以下のエラーが発生します。本来ならログに吐かれるだけで済むはずです。 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-18:…