あと味

たくさん情報を食べて、たくさん発信すると、あとになって味わい深い。

Perl

PSGI + SeleniumでMTの管理画面のテストをする

MTの管理画面は、JavaScriptに依存した部分が結構多く、PhantomJS等のヘッドレスブラウザを使ったテストが必要になるケースがあります。 CasperJSや、Seleniumなど、いろいろなツールがありますが、MTの管理画面のロジックは、Perlで書かれているので、Perl…

Perlでメソッドチェーンのメソッドを動的に決定する

Perl でメソッドを呼び出す時、 $class->$method; みたいな呼び出し方できるのは知ってたけど、 $class->${ \'method' } みたいな感じで、文字列のスカラーリファレンスをデリファレンスすることでも同じことができることを知った。これを用いることでメソッ…

サクッとPSGIなMTOSの開発環境を用意する方法

MTは5.2.2からPSGI対応したということで、今までPSGIアプリケーションをMojoliciousやMENTAで作ることもあった自分としては、かなり嬉しい出来事でした。Mojoliciousなどは、開発用のPSGIサーバーも同梱されていて、ポータブルだし、サクッと開発環境を用意…

Movable TypeのextlibディレクトリのCPANモジュールカタログ

Movable Type Advent Calender 2012の5日目です。Movable Typeのプラグイン開発は、ダイナミック・パブリッシング対応のためにPHPを書くのを除いて、主にPerlのプログラムを書くことになります。Perlのプログラムは、標準のモジュールだけで開発できることは…

Perlのリストのおもしろいところ

PerlのリストはPerlらしいというか、結構おもしろいなーと思うことがあります。Perlのリストの面白いところを紹介してみます。 cons, append Perlでconsとかappendするいい方法何かなーとか考えてた時に、リストの標準機能でできることに気づきました。 my @…

MovableTypeのモジュールのPODのViewerプラグイン作った

MovableTypeを触っていると、MTのモジュールのPODを見る機会が多くなります。MTタグの使い方とかも該当モジュールのPOD見れば解決することもあるので、とりあえずアイデアレベルですが、昨日作ってみたのでエントリー起こしました。MTPodViewerという名前を…

kanazawa.rbで「Mojoliciousと愉快なPerl」という話をしてきました

つい先程の話。kanazawa.rbで「Mojoliciousと愉快なPerl」という話をしてきました。Perlの記事を書いたことはあるけど、Perlについての発表をするのは初めてだったので、いつも以上に緊張した感じです。というか、ようやくプログラムの話ができるようになっ…

S式から(X|HT)MLに変換する簡易的なコマンドラインツール作った

Lispの仏様と言われた竹内郁雄先生は、XMLを分厚いカッコのあるLispとおっしゃっているそうです。実際に、S式で(HT|X)MLを書くと、自然でシンプルに書けるので、S式を(HT|X)MLに変換する単純なコンバータを作りました。 作ったもの Buakko - Simple s−expres…

流行りっぽいツールを組み合わせたミニマルpjaxサンプル書いた

先日、Meteorっていうツールが話題になっていて、いろいろ見てみたんですけど、pjaxいいなぁと思って、今まで実装したことなかったので、Mojolicious::Liteで実装してみました。ついでに流行りっぽいツールを組み合わせてみました。 利用したツール Mojolici…

Perlの環境構築

こなれてきたので、Perlの環境構築についてまとめる。出尽くされてる感は半端ないけど。 導入するツール perlbrew cpanm(App::cpanminus) Carton perlbrew perlbrewはユーザー領域に複数のPerlのバージョンをインストールして使えるツール。Rubyのrvm相当…

Kansai.pmのかんそうぶん

先週の土曜日にKansai.pmに参加したので、その感想。今年のYAPC::Asiaに参加して、Kansai.pmのことをいろいろ教えてもらった*1のですが、その後、割とすぐ、Kansai.pmの告知がTwitterに流れてきたので、参加することにしました。自分は福井県にいるので、な…

YAPC::Asia TOKYO2011で感じたこと・考えたこと

今年は、会社の理解もあり、念願のYAPC::Asia TOKYO 2011に参加することができました。YAPCは初参加です。結論として、ものすごく楽しく、刺激を受け、良い思い出となりました。中学生の作文みたいな感想で稚拙ですが、3日間の感想をまとめてみます。 参加し…

Mojoliciousで出力時だけ別の文字コードにする

Mojoliciousを使っていて、タイトルの件でハマったので、解決方法をメモがてら記事に起こします。 前提・課題 制作はUTF-8を利用し、出力時はEUC-JPを使いたい テンプレートは別ファイルに分けたい MojoliciousはUTF-8を使用する前提で作られているようで、…

Perlを使っています

今の会社は技術を担当する人がいないので、自分がサーバーサイドの面倒を見ているのですが、技術の上司もいなければ、同僚もいないし、後輩もいないということで、どんな技術を使うかは自分次第という環境です。そんな中、自分はPerlを選びました。その理由…

JSerが比較コードを書きながらPerlのデータ構造を学ぶ

厳密に言うと間違ってるかもしれないことを感覚的に書いているので、あまり間に受けない方がいいかもしれません。JavaScriptは、自分が触ったことがある言語の中では、最も仕様を理解している言語になると思います。そろそろ真面目にサーバーサイドの言語も…

MovableTypeのプラグインを書いてみた

必要に迫られて、今までぼんやりとしか把握していなかったMovableTypeを触りはじめました。Flickrの写真をサイトの中に埋め込みたかったんですが、せっかくなのでスクラッチでプラグインを書いてみようということで、「Flickr photos List」というプラグイン…

JavaScriptのfor文の中で、カウンタ変数を利用する関数をジェネレートするいくつかの方法

for文の中で、カウンタ変数を利用する関数を作るとき、はじめは必ずハマるであろうことが予想できます。私も実際にハマったことが多々あります。本エントリーでは、for文の中で、カウンタ変数を利用する関数をジェネレートするいくつかの方法を提示したいと…

MooseでAdapterパターン

前回に引き続きMooseでAdapterパターンを書いてみました。 教科書は結城さんのデザパタ本。 コード Print.pm package Print; use Moose::Role; requires qw( printWeak printStrong ); no Moose::Role; 1; Banner.pm package Banner; use Moose; use Perl6::…

MooseでIteratorパターン

最近、Perlでとあるプログラムを作成しているのですが、動くコードは書けるものの、納得できるコードが書けないというジレンマに陥っています。オブジェクト指向で作りたいとは思いつつ、手続きで書く→オブジェクト指向っぽく直す→これでいいの本当に?みた…