tokuhirom's blog
  • 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)
  • Python の VM を Perl で実装した話
    [ 数年前にかいたやつ。関数ぐらいはうごく。クラスとかも定義できたような気がする。 Python は AST とりだしたりとか assembler とりだせるとか、そういうのがちょいちょいできて
    2012-01-30(Mon)
  • 初心者向けの本についてとか
    [ 寿司ブロガーじゃないのでこちらで言及しようとおもいますが。 初心者向けの本は、一度理解してしまうと不要となるのでブックオフにうっぱらったり、誰かにあげたりしてしまうので、手元にはのこさないし
    2012-01-16(Mon)
  • 最速な JavaScript のリファレンスマニュアルサイトをつくった
    最速な JavaScript のリファレンスマニュアルサイトをつくった
    2012-01-14(Sat)
  • 2011年6月24日あたりに鎌倉いってきたときの日記
    > 朝七時すぎに家をでて、品川経由で戸塚から北鎌倉へ。 あじさい寺に八時半につく。あじさい寺は六月は八時半に開くので、オープンの時間を狙うのが定石。しかしまあ、あじさいはこの寺以外でもたいがい咲いて
    2012-01-10(Tue)
  • 汎用の WebViewController をくみこむための THWebViewController っていうのをでっちあげた
    汎用の WebViewController をくみこむための THWebViewController っていうのをでっちあげた
    2012-01-07(Sat)
  • 電子書籍における内外格差について
    最近は電子書籍について語る前に、とりあえず Kindle を買うべし(Fire 以外)ということを最近つよくおもう。 iPad や、その他のタブレットと Kindle ではだいぶえられる体験がちがう
    2012-01-05(Thu)
  • 2011年のまとめ
    1月 * Teng をリリースするのにかかわってたっぽい * libkyototycoon であそんでた * Text::Darts をなおしたりしてた 2月 * L10N やってた [ * W
    2012-01-01(Sun)
  • JSON.stringify でプリティーにしたい
    JSON.stringify したデータを、ファイルに保存してそれをクライアント側でよむみたいなのやってたけど、大変よみづらかったのでどうにかしようとおもったのだが、結局は ``` JSON.str
    2011-12-28(Wed)
  • node.js で md5 を計算する
    md5 の計算については、node.js で添付されているライブラリである crypto でサポートされている。 Perl5 でいうところの md5\_hex については、以下のようにすると計算でき
    2011-12-28(Wed)
  • 10分でかける! node.js で対話的なプログラムを書く方法。
    [ UTF-8 から UTF-7 への変換をおこなう対話的なシェルをつくりたい、などのように単機能の対話的なシェルをつくりたいというケースはままあるかとおもいます。 そんな場合には readli
    2011-12-27(Tue)
  • jsdom と libxmlext のベンチマークとったよ!
    node.js において jquery-ish な css selector をもちいた検索をしたい、という場合、jsdom がオススメされることがおおいのだが、jsdom は pure-js で実装
    2011-12-25(Sun)
  • node-gdbm つくってみた
    GDBM で保存されているデータを node.js からあつかいたいときがなくはないとおもうので、node-gdbm をつくってみた。 作っている途中で気になたたところなどをまとめておく。 ###
    2011-12-25(Sun)
  • npm で "cpanm --installdeps ."
    ↑相当のことをやる方法。 package.json が perl でいうところの META.yml にあたるものなので、ここに dependencies をかいておいて、 ``` npm inst
    2011-12-25(Sun)
  • node.js で libxml を使うにはどのライブラリをつかうべきか
    #### 目的 node.js で libxml をつかおうとすると、どれをつかっていいのかわからないので、どれがいいかを評価する。 XML をパーズするという用途はもちろんのこと、HTML のパ
    2011-12-23(Fri)
  • node.js で人気のあるライブラリ10選
    node.js というか npm で依存されているライブラリの上位10個ぐらいがどういうものがはいっているのかをまとめます! 具体的には serach.npmjs.org の Most depend
    2011-12-18(Sun)
  • Node.js で重い処理をしてしまったときにタイムアウトするの法
    (この記事は Node.js アドベントカレンダー不参加記事です) チャットサーバー的な使い方とか意外とみんな興味なくて、普通のウェブアプリケーションなどをかく、という用途にちょっと node.js
    2011-12-13(Tue)
  • node.js 用のガラケーライブラリできたよー
    [ ``` var MobileAgent = require('../mobileagent.js'), http = require('http'); http.createServe
    2011-12-10(Sat)
  • visualwidth.js とかかいた
    [ だいぶ適当だけど。VisualWidth.width() とか VisualWidth.truncate() とかできるかんじ VisualWidth.width() というのは、見た目上の
    2011-12-09(Fri)
  • Data::FormValidator::Filters の filter_integer の罠
    filter\_integer っていったら、整数化してくれるとおもうじゃないですか。 ``` % perl -E 'use Data::FormValidator::Filters qw(filt
    2011-12-09(Fri)
  • ビルドシステムについておもうことなど
    Makefile のような専用の DSL よりも汎用言語による DSL の方が汎用性がたかいということでたっとばれる今日この頃ですね。 Rake とか、waf とか scons とかまあいろいろあ
    2011-12-08(Thu)
  • JavaScript Lint 0.3.0 が死ぬコード
    ``` function foo(bar) { var prototype = bar.__proto__; } ``` で ``` JavaScript Lint 0.3.0 (Java
    2011-12-06(Tue)
  • underscore.js の _.isRegExp について
    underscore.js においては正規表現オブジェクトかどうかの判断を以下のようにしてやっている。 ``` var toString = Object.prototype.toString; f
    2011-12-05(Mon)
  • テストの前とかあとにフックするとかの件
    [ について。 ちょっと遅レスですが、以下のようなコードを Module::Install::TestTarget で処理するという話なんですが ``` replace_default_mak
    2011-12-02(Fri)
  • Time::Piece とstrptimeの甘い罠
    ``` my $time = Time::Piece->strptime('2011-11-30T18:19', '%Y-%m-%dT%H:%M:%SZ')->epoch; ``` みたいなコードを
    2011-12-01(Thu)
  • HTTP::BrowserDetect について
    [HTTP::BrowserDetect](HTTP::BrowserDetect) の正規表現ってほんとうに単純で、/Android/i とか /iPhone/i 以上のことはやってくれてないので、
    2011-11-29(Tue)
  • Perl Advent Calendar 2011 やりましょう
    * [English Track]( * [Hacker Track]( * [Casual Track]( * [Test::\* Track]( * [DBIx::\* Track]( 今年もや
    2011-11-28(Mon)
  • Test::Nantoka かいてみた
    Test::More みたいだけど、シンプルなやつかこうとおもったけど、結局ただの Test::More のコピペみたいなかんじになるね! 意味ないので窓からすてた。
    2011-11-26(Sat)
  • Amon2とJSONとセキュリティ
    * \[1\][ * \[2\][ * \[3\] [ * \[4\] [ あたりをよんで、JSON とセキュリティについてかんがえてみた。 ここで、有効とされている対策のうち * while(
    2011-11-25(Fri)
Prev
Next
© tokuhirom