マックのコーヒーについて
マックのコーヒーの味については、最近のんでないからわからないのだけど、1年半くらい前に言及している。
http://unknownplace.org/memo/2006/04/16#e002
マックのコーヒーがうまくなってる件。普通にのめるよ。すごい。
ファストフードでは一番うまいんじゃない?これ。いつからだろ。。
値段を考えたらマックが一位でも不思議じゃないかなぁ。
DBIx::Classで論理削除
DBICで論理削除をしたくなったので調べていたのだが、うまく書く方法がイマイチなかった。
まず、削除フラグを常にチェックするようにするのは簡単で、テーブルクラスに
__PACKAGE__->resultset_attributes({ where => { deleted => undef }});
とか書いてくだけでつねにWHERE句に deleted IS NOT NULL
が入るようになる。これはマニュアルに書いてある通り。
問題は削除するときで、テーブルクラスで delete
定義してそこで update({ deleted => 1 })
とかやればいいかなと思いきや、そうすると cascade delete 効かなくなってしまっていやだ。
DBICのrowに対するdeleteチェーンは大まかに
- ユーザー定義テーブルクラスでのdelete (定義されてる場合)
- DBIx::Class::Relationship::CascadeActions
- DBIx::Class::Row
となっていて、2 で cascade delete の処理が入り。3で実際に row が削除される。
(正確には2ではnextよんでからcascade deleteしてるため 1 -> 2 -> 3 -> 2 という感じである)
それでこの場合は実際に削除するのを update({ deleted => 1 })
に置き換えたいので 3 の直前に自分のメソッドを差し込んでそこでチェーンをとめるという実装がしたいと思った。
のだけどしばらく考えたけどいいやり方が見つからなかったので結局 1 のユーザー定義クラスで
sub delete {
my $self = shift;
$self->update({ deleted => 1 });
my $source = $self->result_source;
$self->search_related($_)->delete_all
for grep { $source->relationship_info($_)->{attrs}{cascade_delete} } $source->relationships;
$self;
}
などと全部詰め込む感じでお茶を濁した。
論理削除を今まで使ってなかったのでいまさら感がありますが、DBICで論理削除ってるひとでいいやり方知ってる人いたら教えてください!
uri_forのやつ
uri_withも同じようにおかしかったのでそっちもなおしてもらった。
IRCのログをそのまんま貼り付けるという行為
sexさんがtokuhiromのログをコピペして貼っているけれども、IRCでの会話をそのままコピペしてブログるということはなんというかあまりよろしくないと思っている。
まぁtokuhiromだからいいという話もあるけどw
なんというかIRCでの発言というのはその場の流れだとか雰囲気だとかがあってその中での発言になっているから、自分の言葉で~さんが~といっていた、的に自分の言葉で記事にするのはいいとおもうけど、そのままコピペしちゃうというのは違うと思うのだ。僕だけかもしれないけど。
でも、tokuhirom自身もログ張るときはnick伏字にしてたりしてて、あれは多分こういう考え方してるからなんじゃないかなーと思っている。
IRCのログを収集するサービスが不人気だったのも同じような理由な気がするし。
まぁなんかここのとこ連続してログコピペしてる記事をみたので書いてみた次第です。
uri_forのパッチ
いまどきのperl使いな皆様におかれましては内部ではutf8フラグを立てたutf8 stringとして文字列を扱っていると思いますが、そういった場合は uri_for
は正しく動作します。
そうではなく、utf8 bytes を渡した場合、今の uri_for
では壊れたURIが帰って来るというバグがあります。単純なミスなのだけど。
かなり前からなんだけど誰も気がつかないのか必要ないのか一向に直らないので業を煮やしてメールでパッチ送ったところすぐに反映してくれた。ナイス。
パッチはこんなん。
canonical してないのは仕様らしい。(昔のはしてたよね?)
mst によれば
For RSS/atom feeds etc.
とのこと。どゆこと?
Colin Moock さんのイベント
いってきましたー。Flash系のイベントに参加したのははじめてだったのだけど、asよりということもあるかもしれないけど、とても面白かった。
感想など。
Colinさんによる ECMAScript4 の話
- ECMAScriptの話はへーという感じである
- 日本語うまい
- null の発音はヌルではなくてどっちかといえばナルに近くて最初訳してくれるまで何言ってるのかわからなかった。
yossyさん
- javaっぽくリフレクションできるやつ。個人的には興味ないけどすごくよくできてる感がした。
- AS3Unit いいねー
- as2でもaddChildとかどーのこーの。as2の話はよくわからん。addChildをアドチルドといっていたのがきになりまくる。
- swfassistすげーー。スイフ(スウィフ?)アシストって呼んでたのもびっくりした。swf == スイフ? ってよむんだー。
むらゴンさん
- タッチパネルThinkpadは思った以上によさげ。
- 最初Flash IDEの画面出ててこれはアウェイかなーと思いきや動画にエフェクト二種類かけてその解説など。おもしろかった。
- プレゼン画面が黒板にチョークを模したもので実際にチョークで字かいたりできた。質感もよかった。おもれー。
せこん
- 多言語化の話。よかった。僕も使いたい。(機会があれば)
- 「gettextって便利なあぷりがあるんですよぅ」とか1から説明していたりとアウェイ感でてておもしろかった。
むらけんさん + 寺井さん
- バカスw
岩崎さん
- なんかフレームワークのイベントマネージャの話。よくわからなかった。
yu-kobayashiさん
- HotRubyの話。こないだblog記事みたときもおどろいたけど、実際に3Dのピンボールうごいてるのみてぽかーんとした。
飛び入りの人
- ダッシュ四駆郎。その発想はなかったなぁw
質疑応答
- as3からByteArray+Socketで直接MySQL接続できるとはいってもそれを実際のサービスで使うのはねーよwww FlashPlayerからつなげる == だれでもそのMySQLにつなげる。ですからね。
本当にただの感想です。
yossyさんと話すチャンスがなかったのでsparkprojectをDISれなかったのが残念である。
WWW::HatenaDiary
CPANの更新Feedで存在を知った罠。どんだけcoderepos見てないんだよ。。。
Fuse::Hatena
のコードちょっと使ってるみたいなこと書いてあるけど、逆にこれを Fuse::Hatena
で使わせてもらおうw
POE::Component::WWW::Google::Calculator とか
PoCo::Genericってもんを知らないのかなこの人は。。。
DBIx::Class::AsArrayHash - Hatena::Diary::Neko::kak 500 Internal Server Error
うんうん、DBICつかってるとmapまくりよね。僕ならこう書いてるな。
my @rets = map { $_->get_columns }, $rs->all;
DBIC::AsArrayHashいらないってのは同意。
retrieveとかCDBI的なのもあれ。
mmm-mode
mmm-mode はいままで3回くらい挑戦してると思うけどうまく使えたためしがないのであきらめている。
今度社内でemacs自慢大会やるつもりなのでそのときにだれかやってくれないかな。