Perl

Webアプリケーションのテストを書くときに考えていること

テストを書く目的 自分の書いたコードが意図した通りに動いてるか確認するために書くのですが、自分が楽をするためと他の人のために書いてます。 自分が楽するため Webアプリの場合、実装した機能がちゃんと動作するかを確認するために何度もブラウザポチポ…

YAPC::ASIA 2013で「個人で出来るWebサービスの作り方」というお話をさせて頂きました #yapcasia

YAPC::ASIA 2013で「個人で出来るWebサービスの作り方」というタイトルでTalkをさせて頂きました。 http://yapcasia.org/2013/talk/show/5f3d4e94-c7ac-11e2-be2e-7ec06aeab6a4 スライド https://speakerdeck.com/koba04/ge-ren-dechu-lai-ruwebsabisufalsez…

YAPC::Asia Tokyo 2013 にて「個人で出来る!PerlによるWebアプリケーションの作り方」というはなしをします #yapcasia

YAPC::Asia Tokyo 2013 にて「個人で出来る!PerlによるWebアプリケーションの作り方」というタイトルで20分のTalkをさせて頂きます。 http://yapcasia.org/2013/ http://yapcasia.org/2013/talk/show/5f3d4e94-c7ac-11e2-be2e-7ec06aeab6a4 内容は Perlで何…

Perl5.14でeval内の$@の挙動が変わっていた

Try::LiteとException::Tinyで例外処理をやろうと導入していたのですが、どうやらネストさせてTry::Liteを使った場合に外側でうまく例外をキャッチ出来ないという現象が発生して悩んでました。 Try::Liteで外側で例外を取得出来なかった例 こんなコードです…

Amon2::Plugin::Web::Rawというのを書いてみた

Amon2::Plugin::Web::Rawというのを書いてみました。 追記ModuleをWeb::ImageからWeb::Rawに変更 https://github.com/koba04/Amon2-Plugin-Web-Raw 何 まぁ見ての通り、Pluginを読み込むとrender_rawっていうメソッドが生えてデータのtype(gif, png, jpeg, s…

PerlCasual#5でお話しさせて頂きました #perlcasual

PerlCasual#5で「元タワレコ店員×Perl×Webサービス」というタイトルでトークさせて頂きました。http://atnd.org/events/37158 話したこと 主に個人でWebサービスを作るときに考えたことと、実際に作ってみた話しと、Perlとの関わりについて話しをさせて頂き…

Perlを勉強するときにオススメしたい本

JavaScript版を書いてみたので調子に乗ってPerl版も書いてみます。 4月からPerl始める人もいるかもしれないですし。(こじつけ) JavaScript版 http://d.hatena.ne.jp/koba04/20130311/1362931533 初めてのPerl 第6版 自分が読んだのは第5版でその時点でも5.10…

Perlで"hoge" x 10とやると...

DBIx::Skinny::DBD::mysqlに書いてあったのですが、、 Perlで"hoge" x 10とやると... % perl -le 'print "hoge" x 10' hogehogehogehogehogehogehogehogehogehoge ってなるんですね。知らなかった!こんな演算子があったとは。。 DBIx::Skinny::DBD::mysqlで…

Perlでダブルクォーテーション中の関数の結果を展開する

Advent Calendar、今年は書くことが出来なかったのでちょっとした小ネタを。 printなんかで文字列と一緒に関数の値を表示するときには、下のように「.」で連結させるかprintfで表示させるのが一般的なのかなと思うのですが、 #!perl use strict; use warning…

ユーザーデータRowにマスタデータRowへのアクセサを生やすこと

単なる反省&メモです。 反省 DBIx::SkinnyなどのO/R Mapper使ってる場合のお話です。 よくあるユーザーが所持しているアイテム一覧を表示するページで、便利だからついユーザーアイテムのRowにアイテムマスタのRowへのアクセサを生やして、それを意識せずル…

YAPC::Asia 2011 に参加して

感想をブログに書かないとYAPCは終わらないそうなので。というよりも941さんをはじめ、YAPC::Asia 2011に関わった全ての方への感謝も気持ちを込めて。 諸事情(YAPCの日程を忘れていて予定を入れてしまっていた。。)により、今年も昨年と同様に前夜祭と1日…

PerlからMemcachedを使う(Cache::Memcached::Fast)

Memcachedは色んなサービスで使われていますね。 ということでPerlからMemcachedを使う方法についてを簡単に書いてみます。 Cache::Memcached::FastのPODのままじゃないかというツッコミもありますがその通りです。。簡単で使いそうな部分だけを取り上げてい…

Perlベストプラクティス(6章)

1〜5章まではこちら。 http://d.hatena.ne.jp/koba04/20100704/1278254275 自分が気になったとこだけを取り上げているので、実際はもっといっぱいベストプラクティスが載っていますよ! 第6章 制御構造 ここではif文やforなどのループを書く際の注意点につい…

Kamakura Perl Mongers テクニカルトーク #1

カヤックに行ってみたい&面白そうな話が聞けそうということで、鎌倉まで行ってきました。http://kamakura.pm.org/2011/01/18/techtalk1.html 結果としては、寒かったですが鎌倉まで行ってホントよかったです! というわけで簡単に感想を。 「Blog Hacks 201…

今さらGearman入門

Gearmanに触れる機会があったので今さらながら入門しました。 思っていた以上に簡単に動かすことが出来たのでその流れを書きたいと思います。 Gearmanとは ジョブキューってやつですね。やって欲しいことをどんどんキューに入れていくと、別プロセスのワーカ…

JPerl Advent Calendar 2010 - Casual Track書きました。

せっかくお誘い頂いたので、はじめてJPerl Advent CalendarのCasual Trackを書かせて頂きました。 http://perl-users.jp/articles/advent-calendar/2010/casual/15 内容をどうするかはスゴく迷いましたが、自分がもっと知りたいと思っていたPath::Classにつ…

Shibuya Perl Mongersテクニカルトーク#15 でLTしました。

Perlと教育「Learning Perl」 http://shibuya.pm.org/ 今回のテーマは「Learning Perl」ということで、Shibuya.pmやYAPC::ASIAに参加しないような方にどうやってPerlを使ってもらうかや、面白さを伝えるかという内容が中心でした。 教育やドキュメント、プロ…

配列に空リストやundefをpushしてみる。

配列にpushで要素を追加する場合、undefは要素として追加され、空リストと宣言されただけの配列は何も追加されない。 つまりundefは要素として有効。 以下、確認したソースです。

XML::Simpleで文字化け??

MacOSX上でLastFMのランキングをつぶやくbotを作っています。 (よかったらフォローしてみてください。新しいアーティストの発見に!?) [twitter:@lastfmrankjp] 週一回、日本でよく聴かれたアーティストベスト50をつぶやくbot。 [twitter:@lastfmrankus] …

Perl 5.10からの新機能を一部使ってみる。

初めてのPerlにも書いてあったperl 5.10からの新機能ですが、個人的に5.10以上の環境でも全く使っていなかったので、改めて(今さら)整理してみました。 (使いそうなものだけ抜粋しています。その他新機能については下記を参照ください。) http://fleur.hio…

AnyEventでイベント駆動プログラミング

Web+DB PRESSのvol.56にあったid:lestrratさんの「AnyEventでイベント駆動プログラミング」を読んで、イベント駆動プログラミングに入門してみました。 間違っている点もあるかと思うのでご指摘頂けると幸いです。 イベント駆動プログラミングとは? 処理を…

Yokohama.pm#6 x PerlCasual#3

前回のPerlCasual#2もすごく楽しく、絶対次も参加するぞと思い今回も楽しみにしていました。 しかも今回はYokohama.pmと一緒との事で、どんなカジュアルな話からコアな話まで聞けるんじゃないかという点にも楽しみにしていました。 今回のイベントについて h…

cpanmでDBD::mysqlをインストール。

Catalystの勉強で、O/Rマッパーモデルのクラスを作るヘルパースクリプト実行時にエラーが発生したのでメモ。 まずは「Catalyst::Model::DBIC::Schema」をcpanmでインストールします。 % cpanm Catalyst::Model::DBIC::Schema ヘルパースクリプトでテーブルク…

Perlベストプラクティス(1〜5章)

「バグを埋め込まないためによいコーディングスタイルを身に付けたい!」ということでこの本を読んでみました。 〜1から5章までの感想を簡単に〜 第1章 ベストプラクティス ここは「はじめに」のような章になっていて、この本の位置付けが書かれています。 P…

Test::Moreの日本語出力処理を覗いてみる。

Test::Moreで日本語出力 Test::Moreでの出力に日本語が含まれていると、 Wide character in print〜 と怒られますよね。 サンプルコード #!/usr/bin/evn perl use strict; use warnings; use utf8; use Test::More tests => 1; is('あああ', 'いいい', 'テス…

続・初めてのPerl 改訂版

「初めてのPerl」の次に読む本という位置づけになっています。 初めてのPerlについては、「http://d.hatena.ne.jp/koba04/20100105/1262700048」 これ、本当に素晴らしくて、Perlを学ぶ際には避けて通れない一冊だと思います。 「初めてのPerl」くらいの内容…

カジュアルPerl #02 - 春のPerlフレッシュマンアワー

勉強会の内容は他の方にお任せするとして、ここでは感想を中心に書いていきたいと思います。(独り言!?)内容は、こちらの方の日記がわかりやすく、これを書く際も参考にさせて頂きました。(ありがとうございます!)http://wo.skr.jp/mt/2010/04/perl-02.h…

単語単位の論理積の否定?(先読みの正規表現)

タイトルを見てもなんのことかさっぱりわからないと思います。 自分でもどう説明すればいいのかわかりませんので、簡単な例を。 あなたが強い人と闘いたいとします。 で、「孫」という性の人は強いんじゃないかと考えたとします。 でも「孫悟空」と「孫悟飯…

Solaris 10 (sparc) にPerlモジュールをインストールした。

以下、ダメな解決方法です。自分だけが使用している開発環境に「Archive::Zip」を入れたかったんです。PerlはSolaris 10 (sparc) インストール時のままの5.8.4を使用していました。 cpanからダウンロードして、 $ perl Makefile.PL $ make $ make test # mak…

シュワルツ変換

一番最初に「シュワルツ変換」という名前を聞いたとき、「かっこいい〜使いたい」と思いました。〜シュワルツ変換とはなんなのか〜 使う場面を簡単にいうとこんな感じでしょうか。 何かソートしたいリストがある。 ソートの条件となる値はリストの値を加工し…