tokuhirom's blog
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)
Amon2 3.34 released
bootstrap 2 系に対応させたのが主な更新です。jquery も 1.7.1 から 1.7.2 にあげておいた。
2012-03-26(Mon)
Devel::Peek の出力の読み方
Devel::Peek::Dump の出力はこういう風になっているわけですが ``` SV = IV(0xedb740) at 0xedb748 REFCNT = 2 FLAGS = (PA
2012-03-26(Mon)
Perl5 のここがいけてないよね、というところ。 { } について。
ブロックとハッシュ構築子が両方とも { } なので、どちらともとれるときにパーザがブロックとして判断してくれる場合があって、ハッシュを書くときは +{ } と書くのが慣例となってしまっている。 も
2012-03-22(Thu)
exception with deep recursion in LL
#### ruby ``` def x() x() end x() ``` ``` hoge.rb:2:in `x': stack level too deep (SystemStackE
2012-03-21(Wed)
git pull がくそおそいのでこまったなーとおもった話
なんか git のリポジトリからの pull が糞おもくて死ぬー! となっていたのだが、実は local の dnscache がくさってて、おかしいっぽかった。 git がおかしかったら GIT\
2012-03-19(Mon)
プログラミング言語を実装するのにかかる時間
速度を気にせずベタなワードコードインタープリタを C++ で実装するのにかかる時間は、フルタイムで1ヶ月、オフの時間で3ヶ月、みたいなことを某氏がいっていたのだけど、それはわりとあたってるのかもしれな
2012-03-18(Sun)
stat は例外をなげるべきか
``` % ruby -e 'File.stat("HOGE")' -e:1:in `stat': No such file or directory - HOGE (Errno::ENOENT)
2012-03-09(Fri)
行頭をみて処理フローがわかるコードをかく
``` MyProj::Exception::Foo->throw unless $res->is_success; ``` という処理は、上から順番にコードをみてると、どうなるかわからない。 `
2012-03-07(Wed)
glob の話
Perl5 では glob("no\_such\_file") が ("no\_such\_file") をかえすが File::Zglob では () をかえす。File::Zglob は gauc
2012-03-06(Tue)
gdb の -ex run が便利
最近ブログかいてないので久々にちょろっと。 ``` gdb -ex run --args ./a.out ``` とすると、起動すると同時に run してくれて便利な気がした。
2012-03-05(Mon)
Perl5 のアレなところ
context と reference はアレですよね。とくに context は罠になりがちなので、とりあえず scalar() つけまくらないといけなかったりして、なんかアレ。 hash の構
2012-02-29(Wed)
Perl5 における nextstate について
gfx がよく「Perl5 にはステートメントスコープが〜」っていう話をしているのだが、ここでいう statement scope というのは、nextstate のことらしい。 Perl5 にお
2012-02-22(Wed)
Perl5 の __DATA__ を seek したときの挙動
``` #!/usr/bin/perl use strict; use warnings; use utf8; use 5.010000; use autodie ':all'; use Fcntl
2012-02-21(Tue)
C++ でlexer/parserをかくなら re2c+lemon がオススメな件
yacc や lex をつかっていても「なんかよくわからんけどうごく」という状態になりがちだったり、グローバル変数にまみれたりしがちだが、re2c + lemon だとそのへんがすっきりする。 レキ
2012-02-13(Mon)
re2c について
[ これみてつかってみたけど、非常によろしい。 flex より flexible である。書きたいことを C/C++ で普通にかけるのがよい。
2012-02-13(Mon)
Perl6 の速度にかんするメモ - 20110130
``` % time perl6 -e 'my $i=0; for (1..10_000) { $i++ }; say $i' 10000 perl6 -e 'my $i=0; for (1..1
2012-01-30(Mon)
Prev
Next