tokuhirom's blog
  • 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)
  • 唐突ですがここでプラグインをかいてみよう 〜 軽量フレームワークAmon2入門 (10) 〜
    Amon2 のプラグインの書き方がよくわからないという話をたまに聞くので、そのへんについて説明したいとおもいます。 基本的にはプラグインはただの Perl モジュールで、ただ一つの規約にしたがえば問
    2011-11-25(Fri)
  • Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 その3『Tengの行オブジェクトを拡張して投稿日付を表示しよう』 〜 軽量フレームワークAmon2入門 (9) 〜
    さて、ページングもついて、一応うごいているといえる状況になっている掲示板ですが、とにもかくにも投稿日付がわからないのは不便といっていいでしょう。 通常ならばもちろん投稿日付を保存するようには設計段階
    2011-11-21(Mon)
  • Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 その2『ページャーをつけよう』 〜 軽量フレームワークAmon2入門 (8) 〜
    さて、掲示板をつくったとはいえ、これだけではおもしろくありませんね。 まずこの掲示板には重大な欠陥があります。具体的にいうと、ページングがされていません。 ウェブアプリケーションにおいてはページ
    2011-11-21(Mon)
  • 「なぜそのモジュールをつくったのか、他のものでは駄目なのか」ということをドキュメントに書くといいよ、という話
    なにしろ、「これこれこういう実装なんですよ!!」「こういうインターフェースなんですよ!!」っていうところだけあっても肝心の「なぜこのモジュールが必要なのか」っていうところが記述されていないモジュールが
    2011-11-20(Sun)
  • Amon2::Setup::Flavor::Large + Teng をもちいた簡単な掲示板の作成 〜 軽量フレームワークAmon2入門 (7) 〜
    前回から大分時間が経ってしまいましたが、唐突に Amon2+Teng で大きめのアプリをつくるチュートリアルでもはじめましょう。Teng というのは、O/R Mapper とよばれる種類のライブラリで
    2011-11-20(Sun)
  • Web::Query が HTML5 をサポートとな!
    Web::Scraper が HTML5 をサポートする変更をいれていたので、Web::Query も追従。 [ やはり個人的には Web::Query の方がつかいやすい。自分でつくったから当た
    2011-11-20(Sun)
  • Amon2::Lite の最近の変更とか
    [ なんかこういうのかいてみたんだけど、どうも、ださい書き方を強要されているところがあって、いけてないかんじがしたのでちょっと調整した。 具体的にいうと ``` $res->h
    2011-11-19(Sat)
  • Vim Script の敷居がたかいはなし
    ujihisa.vim#2 の懇親会ではなしてておもったんだけども elisp だと、環境間の差異を吸収するために if をかかなきゃいけない、とか、そういうのが多い気がする。あと、なにかにつけ c
    2011-11-19(Sat)
  • Mouseをわかりやすくするラッパーかいたよー
    [ 「MouseはいいけどDSLはちょっと」というbonnuさんやxaicronさんのためのラッパーかいたよ〜。 ``` package MouseX::Simple; use strict;
    2011-11-19(Sat)
  • HTML::ValidationRules のアレ
    ~~[ これ ``` <input type="text" name="text" pattern="[A-Za-z0-9]+" maxlength="255" /> ``` ってかいてあるけど
    2011-11-19(Sat)
  • Amon2::Lite をつかった TinyURL
    Amon2::Lite を使いやすくしたいなあ、とおもって小物をちょっとかいてみる。まあ、こんなもんかなあ。もうちょいうまく書けそう、という部分もなくはない。 オシャレポイントとしては * DBD
    2011-11-19(Sat)
  • Object::Generic::False
    なんか、どこまでいっても undef の人。 たぶんなんかこう $entry->user->foo() とかよんでるときとかにしななくなる、みたいなかんじなのかな。
    2011-11-18(Fri)
  • 覚えることが多いフレームワークの話
    人は忘れるので、再学習が必要んなってめんどくさいよなーってなる。knockout.js みててそうおもった。 data-nantoka にいっぱいなんか独自のプロパティを書く、みたいなの、あとになっ
    2011-11-18(Fri)
  • Text::VisualWidth::PP について
    あれは、[id:cho45]( が mobirc に Text::VisualWidth をつかったコードをコミットしてて、それによって xs 依存が発生したので、\[それPPでできるよ\]っていいた
    2011-11-17(Thu)
  • no indirect;
    indirect 記法というのは ``` method_name ClassName @args; ``` みたいなやつのことですが。 indirect 記法は将来的に deprecate にな
    2011-11-17(Thu)
  • かっこいいコードとコストのはなし
    かっこよくすればするほど、どういう動きをするのかおもいだすのに時間がかかる面がある。たとえば先日あったはなしで ``` summon; ``` と ``` __PACKAGE__->to_app
    2011-11-16(Wed)
Prev
Next
© tokuhirom