tokuhirom's blog
  • (How to Write a (Lisp) Interpreter (in Perl))
    (How to Write a (Lisp) Interpreter (in Perl))
    2012-07-05(Thu)
  • Move to hatena blog...
    はてな blog に移行してみた。よった勢いってこわい。
    2012-07-05(Thu)
  • --- ONLY hack for Perl5's Test::More::subtest
    Test::Base's "--- ONLY" feature is very cool. but so Test::Base is too smart. I want to use Test::Mo
    2012-07-05(Thu)
  • libmemcached について
    libmemcached についてちょっと久々に話題にあがったので現況をメモしておく。 4年ぐらい前に tmaesaka さんとかが紹介していたやつです。 [ 僕の記憶によれば、libmemc
    2012-07-04(Wed)
  • MVCは死んだ!!!!!1111 時代は TCTO だ!!
    モデルとかビューとかウェブアプリケーションの文脈では不適切な抽象化なので **T(テンプレートエンジン)** **C(コントローラ)** **T(手続き)** **O
    2012-07-04(Wed)
  • mobirc 4 をだした
    最近おもうことあって tiarra から znc に移行したのですが、大変快適なのでオススメです。 znc と tiarra の運用上の大きな違いは、tiarra にはサーバーをおまとめする機能があ
    2012-07-04(Wed)
  • 設定ファイルは relaxed JSON でいいんじゃないかとおもった話
    #### JSON.pm の relaxed モードについて Perl5 の JSON.pm/JSON::XS では relaxed JSON というものがサポートされている。これは JSON 仕様
    2012-07-04(Wed)
  • mobirc を ssl に対応させた
    ``` ssl=1 ``` HEAD で ↑ とかやるといいかんじに接続されます。
    2012-07-03(Tue)
  • Hello world on Parrot
    ``` tokuhirom@www4071uf:~/dev/parrot$ cat hoge.pasm say "Here is the news for Parrots." end tokuhir
    2012-07-03(Tue)
  • ZNC で特定のキーワードを含む発言を <censored> にするハック
    表題の通りです。znc の拡張をかくのは存外楽なのでオススメです。まあ tiarra とそんなに難易度かわらないけどね。 Perl なのに、$\_\[2\] を直接かきかえたりしないといけないのがあ
    2012-07-03(Tue)
  • Perl 5.8 対応について
    Perl 5.8 対応してるレンサバとか現存していなさそうな気がした。
    2012-07-03(Tue)
  • znc で im.kayac をつかうための NotifyImKayacSimple.pm をかいた
    [ znc で im.kayac.com をつかうためのモジュールとして sugyan がつくった ZNC-NotifyImkayac があるが、これは依存があって使うのがめんどくさいし、そもそも
    2012-07-03(Tue)
  • Rakudo Star speed report 201206
    ``` $ time perl6 -e 'my $i=0; for (1..10_000) { $i++ }; say $i' 10000 perl6 -e 'my $i=0; for (1..10
    2012-07-02(Mon)
  • Re: Data::Validator::Managerなるものを書いてみた
    [ > メソッドや関数の引数をバリデーションするときにData::Validatorを使わせて貰っているのですが、 > 低レベルAPIと高レベルAPIで同じバリデーションルールを適用したい事があ
    2012-07-01(Sun)
  • これからMacで開発する人向け三種の神器
    iTerm2, limechat, My Day ですかね!
    2012-06-29(Fri)
  • Module::Build と Module::Install
    現状、Module::Build がオススメですし、ましてや Pure Perl なモジュールの場合には Module::Build をつかわないことのメリットはないように存じます。
    2012-06-29(Fri)
  • Data::MessagePack 0.46 がでました
    [ msgpack core の問題で big endian な環境で unpack がうまくいかないケースがあったようなので、msgpack core を更新しました。
    2012-06-28(Thu)
  • Data::MessagePack 0.45 がでました。
    [ Reini からのパッチを適用しています。tie された hash のあつかいがマシになった子ちゃん。
    2012-06-28(Thu)
  • Pure Perl 対応にかんする見解
    もうさすがにレン鯖という時代でもないだろうから、個人的には、今後 pure perl 対応のモジュールというものの開発はおこなわない方針です。
    2012-06-27(Wed)
  • Text::Xslate::Bridge::Star に split メソッドを追加しました
    [ つかってみたら、なかった。なかったら不便なので、たしました! 以上!
    2012-06-26(Tue)
  • いまどきの SCSS 運用方法
    最近は scss をつかっています。SCSS の運用についてまとめておこうとおもったので、まとめます。 scss --watch を手元でうごかす運用などをすると、scss と css の両方を g
    2012-06-26(Tue)
  • bundler for Perl5 といえば carton です。
    [ carton は簡単につかえるのと、[ このあたりで採用されてるのと、いかさまさんが若干つかってるらしいという噂があります。 まだ alpha だけど普通につかえるらしいです。 【追記】
    2012-06-25(Mon)
  • Data::MessagePack::Unpacker と AnyEvent::MessagePack に関する注意喚起
    typester, gfx, tokuhirom の3人で話しあった結果、以下のように決まりましたので、つつしんでご報告いたします。 Data::MessagePack::Unpacker には B
    2012-06-25(Mon)
  • App::Rad がよさそう
    って↓ をみておもった。実際つかうかというとつかわない気もする。 [
    2012-06-23(Sat)
  • Shipped mRuby.pm
    [ ``` use mRuby; my $mrb = mRuby::State->new(); my $st = $mrb->parse_string('9');
    2012-06-21(Thu)
  • Do not use LWP::Simple::getstore
    LWP::Simple::getstore looks only response code from LWP::UserAgent, but It doesn't handles I/O error
    2012-06-21(Thu)
  • あなたが理解できない,たった一行のPerlのコード
    [ ``` whatever / 25 ; # / ; die "this dies!";
    2012-06-20(Wed)
  • sakura vps でのアプリケーションサーバーの実行を upstart にしてみた。
    2個前にセットアップしたときは daemontools つかってて、1個前は supervisord をつかってたんだけど、せっかく ubuntu つかってるんだから、ということで superviso
    2012-06-14(Thu)
  • cron の実行ログをすてさせないライフハックできたよー
    昨今、cron のログにかんする話がちょいちょいありますが、問題点をまとめると * stdout or stderr に1バイトでも書くとメールがとぶ * インタープリタのだす warnings や
    2012-06-13(Wed)
  • crontab のパーズには Config::Crontab
    crontab(5) をパーズしたいときには Config::Crontab をつかうと簡単にできるようだ。vixie cron の形式がひととおりパーズできている様子。 以下サンプルコード。コメン
    2012-06-13(Wed)
  • SQLのWHERE句をMongoDBのクエリに変換してみるテスト
    全くもって誰得なんですが、ちょっと訳あってこういう感じのものが必要そうなので作ってみました。まだMongoDBに投げたわけじゃないので文法的にホントにあってるかとか、そもそもプレースホルダ使えよとか色
    2012-06-12(Tue)
  • Perl5.16.0 における tr// の動作があやしいので perlbug してみた
    [ ``` perlop.pod ( ) says If multiple transliterations are given for a character, only the first
    2012-06-11(Mon)
  • Perl5 の標準添付モジュールについての考察
    Linux の場合、ディストリビュータの趣味によって tar ball に標準添付されているものが分割パッケージにされたりすることはままあることなので、あまりあてにしない方がいいし、今後 CPANPL
    2012-06-11(Mon)
  • データベースへのクエリをトレースする PSGI ミドルウェア
    これをつくってる途中で、DBIx::QueryLog がめんどくなってきて DBIx::Tracer をつくってしまったのでした。 なんか無駄に threashold\_sum\_total\_cn
    2012-06-05(Tue)
  • DBIx::Tracer 書いた
    [ [ DBIx::QueryLog が便利でよくつかってるんだけど、なんかこう、立てまししまくった家みたいなコードになってて、ハウルの動く城のようになってしまっていて、ログをだしたいなーってと
    2012-06-04(Mon)
  • Streaming with PSGI
    basic streaming(code by chiba-san [ ``` use strict; use warnings; my $app = sub { my $env = sh
    2012-05-25(Fri)
  • Perl 5.16.0 RC0 がでたので __SUB__ をつかいこなしてみた。
    [ にあるような、Data::Visitor::Callback をつかうような visitor を、簡単に無名関数で実装することができます。 ``` use 5.16.0; my $rh_t
    2012-05-11(Fri)
  • unite.vim と ctrlp をつかってみた比較
    vim の ctrlp でたりないこと * 行の選択を C-p/C-n でかえられないっぽい → [ こちらでできるそうです! * 存在しないファイル名いれたときに作れない * 存在しないディレクト
    2012-05-02(Wed)
  • overload behavior on Perl 5.14.2
    ``` use strict; use warnings; use utf8; use 5.010000; { package Foo; sub new { bless +{}, s
    2012-05-01(Tue)
  • nana という tora 言語処理系をだしていた話
    [ tora を perl5 の上でうごかす処理系である nana をだしておきました。 perl5 でうごいているので perl5 の関数もなんとなくよんだりできます。 ``` import_
    2012-04-28(Sat)
  • sakura vps を ubuntu 12.04 LTS にあげたら resolv.conf がきえた話
    resolvconf の配下になったとかで、からっぽになってしまって、名前がひけなくなる。 /etc/resolvconf/resolv.conf.d/base というファイルがベース設定らしいので
    2012-04-27(Fri)
  • XS をかくときのコツ
    CODE: をつかうと謎くなるので PPCODE: をつかう。
    2012-04-25(Wed)
  • sprintf の引数の挙動
    sprintf に配列で引数をわたそうとするとはまる。 ``` use strict; use warnings; use utf8; use 5.10.0; sub fmt { sprintf(
    2012-04-21(Sat)
  • smart match operator
    ``` 23:10 tokuhirom: ""~~0 23:10 tokuhirom: true 23:10 tokuhirom: ""==0 23:10 tokuhirom: true 23:10
    2012-04-18(Wed)
  • Perl5 をよくしようというタイプのレキシカルプラグマ
    まあ、便利なんだけど、実際あまりつかうことはないかもね、という。 というか言語コアの方で use 5.10; したときに deprecate 、みたいになるといいね。 #### indirect
    2012-04-16(Mon)
  • Perl5 の適当な手書きパーザで、簡単な数式をパースしてみる
    パーザジェネレータを使うのは情弱だ、そんな風なことをいう kazuho さんもいる今日このごろなので、手書きでパーズしてみようとおもってみました。 Perl5 で適当にパースしたい場合は、こんな風
    2012-04-13(Fri)
  • SConstruct について
    かれこれ3年ぐらい SConstruct を愛用している。 SConstruct は、非常に手軽につかえてポータブルなのがいい。 しかし、これがなんというか、遅い。 もうすこし速くならないもの
    2012-04-12(Thu)
  • tora のデバッグについて
    scons debug=1 とすると、デバッグしやすくなります。 assertion が有効になるためです。 また、-t で AST がダンプされ、-q でVMトレーサが有効になり、-d でVM
    2012-04-10(Tue)
  • tora を sakura VPS+centos でつかう方法
    [ YOPPOさんが書いてくれました。参考にしてみんなもいれてみよう!
    2012-04-10(Tue)
  • IRC Protocol Parser を書いた
    [ C++ で 1ファイルでうごく IRC の protocol parser を書いたので github にアップしておきました。 IRC のクライアントライブラリは、イベントのハンドリングが主
    2012-04-07(Sat)
  • tora に REPL がついた
    とりあえず REPL を実装した。Eval::WithLexicals のような、pad\_list をキャプチャして次の回にひきつぐ機能はまだない。 tora ではグローバル変数を使いにくくして
    2012-04-07(Sat)
  • tora の内部実装がちょっとかわりました。
    拡張まわりのかきかたがちょっとかわってます。現状の master にある ext/ 以下は修正してあります。 具体的には、グローバルな package name map がなくなって、Class c
    2012-04-07(Sat)
  • tora の拡張のかきかたについてのメモ
    * ポインタの値をラップするときは PointerValue という型があるので、こちらをつかってください。ポータビリティがまします。 * 各メソッドはかならずなんらかの値をかえす必要があります。NU
    2012-04-06(Fri)
  • 文字列リテラルに変数をうめこめるようにした
    "foo $bar"; みたいなやつができるようになりました。 re2c + lemon という構成の場合、スキャナは一度に一個のトークンしか返せないので、スキャナーの中にトークンのキューをつくって
    2012-04-05(Thu)
  • はやりもの一個飛ばしの法則
    なんかこう、世間をみておりますと、いろいろなものがはやったりすたれたりしておりますね。 prototype.js のあとに MooTools とかなんかいろいろあったけど、それを静観して jQuer
    2012-04-04(Wed)
  • Fcntl つけた
    とりあえず Fcntl.flock と Fcntl.LOCK\_SH とかそのへんがつかえます。 まあベタに。
    2012-04-03(Tue)
  • Toraのテストケースの書き方
    C++ レベルでテストした方がいい部分は C++ でユニットテストを書きます。たとえばスキャナとか、Value 型の実装とかです。tests/test\_foo.t というのがそれです。ここを増やしす
    2012-04-02(Mon)
  • プログラミング言語 Tora を公開した
    [ Perl6 の開発が宣言されてから10年以上の歳月がたち、いまだ実用的な実装はあらわれません。 そんななかで、[next perl 的なものをつくりたいと gfx がいってから 3ヶ月ぐらい
    2012-03-31(Sat)
  • unite.vim のバージョンをあげたら新規ファイルをつくれなくなって涙で枕をぬらした話
    Date: Sat Mar 3 15:41:02 2012 +0900 あたりの変更かとおもうのだけど、いままでの設定だと新規のファイルをつくれなくなった。 こまったので、ドキュメントをみたところ
    2012-03-30(Fri)
  • re2 で String#scan 的なことをする
    C++ でかかれた 高速でつかいやすい正規表現エンジンである re2 で String#scan 的な操作をしたいとおもったのでやってみた。もっとスマートな解法がありそうですが、これでとりあえずうごき
    2012-03-27(Tue)
Prev
Next
© tokuhirom