北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

perl

$&のpodはきちんと読むべき

心に傷を負ったのでこれを記しておく。 The use of this variable anywhere in a program imposes a considerable performance penalty on all regular expression matches. perlvar perl5.18なら直ってるみたいな噂も小耳に挟んだけど変わらなそげ。手元のp…

Mouse-1.3でMooseと挙動が違うコード

コンフリクトした場合はスーパークラス側のメソッドが優先されるべきなんだけど、"Hage te nai"が出力される。 package Role1; use Moose::Role; sub hage { "Hage te ru" } package Role2; use Moose::Role; sub hage { "Hage te nai" } package Super; use…

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

2日目です。地元開催なので、地の利を生かして朝からタリーズでのんびり朝食などとっております。今日もgihyo.jpさんのスペシャルレポートにレポーターとして参加しています。

YAPC::Asia Tokyo 2013 を終えて

今年もYAPCが終わった。スタッフを始めとした関係者の皆様には、本当にありがたいと思っている。また、gihyo.jpの担当の@k_takaさんには、今年も大変お世話になった。さて、今年のYAPCに参加して感じたことが2つある。まず、世の中は自分が思った以上に進ん…

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

一日目です。今日もgihyo.jpさんのスペシャルレポートにレポーターとして参加しています。

今日はYAPC::Asia Tokyo 2013の前夜祭です

今年もYAPC::Asia Tokyoの季節がやって参りました。今年の会場は慶應義塾日吉キャンパスです。夕方から始まる前夜祭から参加する予定ですので、いつものように適当にメモをとっていきます。今年もgihyo.jpさんのスペシャルレポートにレポーターとして参加し…

採択されればYAPCで話すつもりの型の話について

今年のYAPC Asia 2013にはTypes and Perl Languageというタイトルで話をしようと申し込んだのだけど、リジェクトされそうな気しかしないので話そうとしていることの概要を書いておく。なお、トークのタイトルは名著TaPLのオマージュである*1。以下のGoのコー…

JITで爆速なgperlを試す

Linux Mint上でgperlをビルドした。原則、ないと言われたものをどんどんaptで入れてっただけだけど、jit/jit.hがないって言われてそいつだけaptで解決できなかったのでこのPostScriptのファイル読んでlibjitをビルドした。これで万事うまくgperlが作れたので…

QAハッカソンでTest::BangAwayってモジュール書いた

Perl QA Hackathon 2013 Satellite at Tokyo なるものに参加してきた。こういうイベントで貢献できるガラではないのだけど、開催場所が自分の職場だったのでお邪魔させてもらった。MillaとMinilla周りの話題が熱い中、前々から作ってみたかったQuickCheckも…

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

実家に帰るついでに、久々にHokkaido.pmへふらっと立ち寄ります。マイクスタンドを借りたのでライブコーディングでも安心です。 cpanfile / @aloelight さん cpanファイルとは? Ruby Gemfileの移植 依存モジュールのバージョン cpanmとcartonで利用可能 ア…

Class::Accessor::TrackDirty っての書いた

KVMにハッシュ的なデータ構造出し入れするのに、O/Rマッパーのエンティティみたいにプロパティが変わったかを追っかけて必要なときだけ保存したかったんだけど、良さげなのを見つけられなかったので自分で Class::Accessor::TrackDirty て名前のClass::Acces…

Stateモナドとオブジェクト

面白くもなんともないParsonオブジェクト。 package Parson; sub new { my ($class, $self) = @_; bless $self => $class; } sub change_name { my ($self, $name) = @_; $self->{name} = $name; } sub get_name { my ($self) = @_; $self->{name}; } my $p …

今日は『Webサービスのつくり方』出版記念イベントの日です

仕事をサボって『Webサービスのつくり方』出版記念イベントに来ていますので、適当にレポートします。結局ゆーすけべーさん不在のまま始まりました(笑)。 今日の進め方 → 参加者が紙に書いた質問に全て答える けんすうさんの案らしい ゆーすけべーさん登場 …

JSON::XSで作られる浮動小数点数でハマった話

JSON::XSを使うと、小数は浮動小数点数にパースしてくれる。 use JSON::XS qw(decode_json); my ($double) = @{decode_json("[0.6]")}; この値、printすると "0.6" なのだけど、0.6とイコールではない。 print $double, "\n"; # 0.6 print +($double - 0.6),…

今日はYokohama.pm #9の日です

残念ながら横浜市民ではなくなりましたが、Yokohama.pm #9に参加しています。USTはこちら。

PerlによるFreeモナドの実装

悟りを開けると話題のFreeモナドをPerlで実装した。実装はこちら。 Freeモナドとは? モナドの性質の1つとして、flatten : TTX → TX (または join、またはη)によって重複する関手Tを1つに押しつぶせるという点がある。そのお陰で、TTTTTTXのようにTが複数あ…

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

YAPC::Asia Tokyo 2012の最終日です。電源ケーブルを忘れたので一度家に帰りますが、東大内の伊藤国際学術研究センターに向かいます><今日もgihyo.jpさんの特集にレポーターとして参加します。@amayanさん、@moznionさん、ya_k0さん、@takayuki_hさんのメ…

メモから振り返るYAPC

Perl 今昔物語を受けて当時のエントリへリンクを貼ってみる。懐かしいですね! 2006 初日 二日目 2007 初日 二日目 2008 前夜祭 初日 二日目 2009 前夜祭 初日 二日目 2010 前夜祭 初日 二日目 2011 前夜祭 初日 二日目 2012 前夜祭 初日 二日目

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

今日は昨日に引き続きYAPC::Asia Tokyo 2012の1日目です。東大内の伊藤国際学術研究センターに入り開会を待っております。今日もgihyo.jpさんの特集にレポーターとして参加します。昨日と同様に@amayanさん、@moznionさん、ya_k0さん、@takayuki_hさんが中心…

YAPC::Asia Tokyo 2012 で LT してきた

ほんとは Coq-perl 作りたかったのだけど間に合わなくて別のネタでLT。 Perlでおねえさんを救った話 元ネタの素材はこちらの動画のものなので、合わせて見ておきたい。

今日はYAPC::Asia Tokyo 2012の前夜祭です

今日はYAPC::Asia Tokyo 2012の前夜祭です。去年までとは会場が代わり、今年は東大内の伊藤国際学術研究センターにて開催されます。今日から最終日まで参加する予定ですので、いつものように聞いた話をリアルタイムでメモっていくつもりです。なお、今年もgi…

単純なRSA暗号の解き方

以下のような感じで"ABCD"を暗号化する。 use strict; use warnings; use Crypt::RSA; use Crypt::RSA::Primitives; my $rsa = Crypt::RSA->new; my ($public, $private) = $rsa->keygen(Size => 48) or die; print $public->serialize, "\n"; my $prim = Cr…

「フカシギの数え方」をPerlで解く

まずはこの動画を見るべし → 『フカシギの数え方』 おねえさんといっしょ! みんなで数えてみよう!。 きちんとした解答がすでに上がっている → 「フカシギの数え方」の問題を解いてみた。 まあでも、これだけ力作な動画を見せられたら自分でも解いてみたい…

Modification of a read-only value attempted

% perl -e 'for (1) { while(<>) {} }' Modification of a read-only value attempted at -e line 1.forの中の$_は1そのものを指してて、while(<>)は$_を書き換えるものだから。 for ($x) なら 大丈夫で、$x に<>で読んだモノが入る。

正しいのになぜかみんなが「変だ!」という問題にPerlで答えてみた

正しいのになぜかみんなが「変だ!」という問題: x,y,zを自然数とする。このとき、x=3ならばy=5になる。あるいは、y=5ならばz=8になる。 @noricoco これは良問!さすが @noricoco 先生 > RT @hyuki Perlで解答するとこうだろうなあ。 perl -e 'for my $x(0,…

逆FizzBuzz(Inverse FizzBuzz)の正規表現書いた(解けてないけど)

ええ、そうなの!? と思ったので深追いしてみた。 逆FizzBuzzって、オートマトンなので正規表現を使うと楽に出来るはず。Perl で 逆FizzBuzz 状態遷移図を書いてみるとこう。ほんとは1〜15まで全て状態を書いて、ε遷移を加えてεの長さも1とした最少の単語を…

Test::LeakTrace についてメモ書き

ハマったので未来の自分のためにメモ書きを残しつつ、今年もよろしくお願い致しますm(_ _)m。 Test::LeakTraceの特性 Test::LeakTrace で、以下のテストは通る。 my %x; no_leaks_ok { $x{x} = undef }; しかし以下のテストは通らない。 my @x; no_leaks_ok …

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

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です。

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

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