Pixel Pedals of Tomakomai

北海道苫小牧市出身の初老の日常

2011-01-01から1年間の記事一覧

2011年のまとめ

2009年のまとめはあるのに2010年のまとめがないことに気がつきましたが気にしない。 CLTT読書会に割と出た #yhiosに割と出た 各種.pmに割と出た スタートHaskellに少し出た Awodey読書会に少し出た Java EE勉強会に少し出てClojureした GAEにパッチ送った (…

Connectのソースを読む(2)

前回の続きで、Connect 1.8.4のソースを読む。今日はミドルウェアから適当に抜粋。残ってるのはミドルウェアだけなので、今日で終わりのつもり(気が向いたら残りも書くかも?)。 middleware/logger.js アクセスログを書き込むだけだが、connectのミドルウェ…

Connectのソースを読む(1)

node.js 使ったことがなかったので読んでみる。今日はコアの部分。 下準備 githubからcloneしてきて、checkout 1.8.4した。masterじゃないので注意*1。npm install を実行すると依存モジュールがnode_modules/ 以下に入る。そうするとmake test でテストを走…

あなたの圏は大丈夫? - 手続き型言語の裏に潜む罠

Monads in PerlやAllows in Perlの話では、合成compと恒等射idを以下のように定めた。 sub comp($$) { my ($g, $f) = @_; sub { $g->($f->(@_)) }; } sub id { @_ } しかし、これは厳密には圏とならない。 合成の結合則 h . (g . f) == (h . g) . f が満たさ…

今日は Hokkaido.pm#6 の日です

実家に帰るついでにふらっと立ち寄りました(2)。次はHokkaido.pmです。

今日は 関数型都市忘年会 の日です

実家に帰るついでにふらっと立ち寄ります。ってことで、札幌に向かっています。午前中は関数型都市忘年会に出席します。途中で退席予定です。

今日は 第5回 スタートHaskell の日です

生憎の雨ですが、大森ベルポートのニフティさんに来てます。途中退室の予定ですが、居る間に聞いた内容をメモ。

Hachioji.pm in Machida に行ってきました。

飲んで騒いで楽しかったです。以上!人数多かったので使わずに済ませましたが、スライドは用意してたんでリンク貼っときます。緩募は本当に募集してます(笑。普段あまり見かけないような方と会えて楽しかったです。幹事の @ytnobody さんと運営の @uzulla …

AE::cv->cb のコールバック実行タイミングについての小噺

$cv を実行が終わるまで取っておこうとして、 package CVPrinter; use strict; use warnings; use AnyEvent; sub new { bless {}, $_[0] } sub print_cv { my ($self, $cv) = @_; $cv->cb(sub { my ($v) = $_[0]->recv; print $v, "\n"; delete $self->{cv};…

Hokkaido.pm #6 は 12月10日 です

Hokkaido.pm #6 への参加申し込みはお早めにどうぞ。 今回は、懇親会の1次会までの参加です。今回は@sugyan さんの参加が確定してますし、@nekokak さんもスケジュールがあえばいらっしゃるようです。純粋にスキルアップを狙う人はもちろん、Perlを使ってい…

Directing AE with Arrows

@maki_daisukeさんに教えてもらったのを読んで実装してみた。 use strict; use warnings; { package AsyncArrow; use Scalar::Util qw/weaken/; use AnyEvent; use Exporter qw/import/; use Class::Accessor::Lite new => 1, rw => ['code']; our @EXPORT =…

「Hokkaido.pm のおかげで結婚できました」

めでたい RT @lestrrat: [YAPC::Asia のおかげで結婚できました」RT @hiratara: 無事に婚姻届が受理されたとこ。@Yappo 「YAPC::Asia のおかげで結婚できました」エントリありますか RT @hiratara: 無事に婚姻届が受理されたとこ。@lestrrat エアRTからの無…

YAPC Asia 2011を終えて

YAPC Asia 2011が終わりました。まず、今年もYAPC::Asia Tokyo 2011 スペシャルレポートのレポーターをする機会を与えて下さったgihyo.jpさん、そして担当の@k_takaさんとレポーターの@ytnobodyさん、本当にどうもありがとうございました。前夜祭で体調を崩…

今日はYAPC::Asia Tokyo 2011の2日目です

あいにくの雨ですが、今日も時間通り会場に到着しています。本日もgihyo.jpさんの特集のレポーターをやってます。参加されているみなさんと一緒に楽しみながらレポートしようと思っています。

YAPCで話さなかったこと

今回のトークでは「斜めの矢印」とか「合成」とかそういう言葉を説明に含める必要があったので圏論のことばや記法を前半で色々紹介しましたが、泥沼詳細には踏み込み過ぎないように気をつけました。その泥沼詳細にあえて踏み込んでみたい人のために、このト…

YAPCで話したこと

今回のYAPCでスピーカーデビューしてきました。スライドは以下にあります。 Monads in Perl (動画) 応募した当初は、十数名聞きにくればいいかなーと思っていたのですが、蓋を開けてみると結構な人数に聞いていただき、ほんとうにありがとうございました。今…

今日はYAPC::Asia Tokyo 2011の1日目です

YAPC::Asiaの季節がやってまいりました。昨日は寝込んでいましたが、今日は朝から出席します。場所は東京工業大学大岡山キャンパスです。なお、今年もgihyo.jpさんの特集のレポーターをやってます。会場の熱気を伝えられるよう、頑張ります。なお、機材トラ…

Data::Monad::CondVar をリリースしました

YAPC Asia 2011で話をする予定のモジュールをCPANへアップしました。Data::Monad::CondVarはJSDeferred みたいなもんです。 use AnyEvent; use AnyEvent::HTTP; sub random_choice { my ($data, $headers, $cb) = @_; my (@url) = $data =~ m{href="(http:[^…

Catamorphism の他の例

Catamorphismを使って二分木での畳み込みを定義すると比べると関連が見えてくるかも? リストの畳み込み 自己関手Fとして、型Xを1+A*Xへ移すものをとる。1+A*ArrayRef A→ArrayRef A なる以下のF代数が始対象となる。 sub array(;$$) { @_ == 0 ? [] # type 1…

Catamorphismを使って二分木での畳み込みを定義する

高階関数がなす圏上の自己関手Fとして、型Xを A+X*X へ移すものを考える。A+X*X は具体的には、$a∈A 、$x1, $x2∈X としたとき、$a または ($x1, $x2) の形を含むもの。F代数とは、FX→X のような射をいう。例えば、以下のような射A+Int*Int→Int。 sub choose_…

RIP Steve Jobs

Steve Jobs 1955-2011 自分がApple社の製品を使い始めたのはOS X のPanther が出た頃なので歴は浅いのですが、Windows で失っていたわくわく感、Linuxのデスクトップで夜遅くまで作業して失っていた時間、これらを取り戻し、コンピュータって楽しいんだと思…

函数プログラミングで集いに来ました

函数プログラミングの集い 2011 in Tokyo に来てます。途中退出しますが、居る間内容を適当にメモります。会場はIIJさんです。毎度のことながらすばらしい会場。この会は、神田でICFPという大きな国際的な学会が日本で行われるのにちなんでいるそうです。普…

Tengのソースを読む(3)

Teng-0.11 IT'S IN ALPHA QUALITY. IT MAY CHANGE THE API WITHOUT NOTICE.」">*1の最後。プラグインを見てみる。 概要 第一回で見たようにPluginはTengクラスにメソッドを生やすものなので、どんなメソッドが生えるか見る。 Teng::Plugin::BulkInsert 複数…

Tengのソースを読む(2)

Teng-0.11 IT'S IN ALPHA QUALITY. IT MAY CHANGE THE API WITHOUT NOTICE.」">*1の続き。今日はSchemaクラスとRowクラス周り。 概要 Teng::Schemaと Teng::Schema::Table はスキーマ情報の保持、Teng::Schema::Declare とTeng::Schema::Loader, Teng::Schem…

今日は第2回スタートHaskell の日です

第2回スタートHaskellに来ていますので、レポートします。といっても、中身は全てProgramming in Haskell の話なのですが。 宿題の解説 / @yuzutechnology さん 宿題の答え合わせ。 問題2 : カリー化の問題。 問題3 : フレームレートやビットレートの計算。 …

Tengのソースを読む(1)

次はORMの最近の事情を知りたいのでTeng-0.11(ただし、「> IT'S IN ALPHA QUALITY. IT MAY CHANGE THE API WITHOUT NOTICE.」)。今日はTengクラス周り。 Tengでは Teng->new で得られるオブジェクトを起点に様々な操作を行う。DBやテーブルやカラムの情報を…

DBIx::TransactionManagerのソースを読む

今日はDBIx::TransactionManager-1.09。1ファイルしかないのでさっくりと。 中では2クラス定義がされていて、DBIx::TransactionManager と DBIx::TransactionManager::ScopeGuard。前者がメインで、後者はスコープガード用のクラス。 txn_begin の中では$dbh…

Amon2のソースを読む(5)

今日はAmon2-2.49のDSL周り。これで最後。 Amon2::Declare $c じゃなくて c() 使えたらいいよねって話。内容物の中では、t/ 内のExtended::V::MT::Context にて、テンプレからcを呼び出せるようにするために使っている。 Amon2::Lite Sinatra-ish な書き方が…

Amon2のソースを読む(4)

今日はAmon2-2.49のTriggerとPluggin。 Amon2::Trigger クラスに対してもインスタンスに対してもフックがかけられ、それぞれ@Class::_trigger と $obj->{_trigger} を使って保存される。get_trigger_code を呼ぶと関連するハンドラを全て取得できるが、イン…

Amon2のソースを読む(3)

今日はAmon2-2.49のscaffoldとDispatcher。--flavor=Basic が基本なんで、それを読む。 概要 scaffold 内のPerl関連のファイルはapp.psgiとYourProject.pmとYourProject::Webと YourProject::Web::Dispatcher だけ。実際のユーザ側の処理は YourProject::Web…