読者です 読者をやめる 読者になる 読者になる

はちゅにっき

こっちのブログはまったり更新

Ark + DBIx::Skinny + Text::Xslate (+Tiffany) で NoPaste 的な何か

というわけで、だいぶ前につくってみたものですが、恥ずかしながらアップロードしてみたり。 いろんな機能を使うために、いろいろと遠回りしてたりもします。 Ark-Paste http://github.com/magicalhat/p5-ark-paste Catalyst + DBIC (+ Template-Toolkit) に…

Shibuya.pm #14 にいってきました

今回のテーマは「IPAとJPAは違う団体です」ということで、IPA と JPA の両者が参加。 ということで、いつも通りてきとうなまとめ。 Perl 6 Language Update (dankogai さん) 大まかには Perl6 も Perl5 もあんまり変わらないよ 構文とかだいぶ違うようにみえ…

"Filesystem notification initialization error" と怒られたら

どうやら courier-imap + libfam を使っているとでるみたい。 とりあえず、解決策としては libfam ではなくて gamin というのを使えばよいらしい。 ということで、いつものように % aptitude install gamin で解決しました。 やったね。 ちなみに、gamin と…

Xslate に入門しつつ Tiffany とか Ark とか

最近はもっぱら PHP を書いている magicalhat です。 それでもやっぱり Perl が好き。というわけで、id:gfx さんの新作 Xslate という新しいテンプレートエンジンが登場したとか、それがすごく速いとか、そんなウワサを耳にしたので入門してみることに。 つ…

PerlCasual#02 へいってきました

Twitter では訳あって hatyuki に改名した magicalhat です。 懲りずにまた遠方から参加させていただきましたので、超簡単にメモ。 てゆーか殴り書きれべるだけど。 オープニング Perl いいよね。CPAN いいよね。 Author のキャラクタを垣間見れるのがいい A…

zsh を一般ユーザでインストール

zsh

とゆーのは、以前まとめてますので以下のページへ。 zsh とか vim とかを一般ユーザ権限でインストール(?)しちゃおう http://d.hatena.ne.jp/magicalhat/20081223/1230012363 今回は、一般ユーザで zsh インストールしようとしたら curses.c がコンパイルエ…

DBIx::Skinny で update_or_create

ができたらいいなー。 と思ったので、作ってみました。 DBIx-Skinny-Mixin-UpdateOrCreate http://github.com/magicalhat/p5-dbix-skinny-update_or_create DBIx::Class だと、利用することも多いので Skinny でもあれば便利かな?と思ってみたり。 オマケと…

ActiveRecord で Numeric 型を使いたい!

うーん、float 型で作って ALTER TABLE すればいいのかなぁ? あれ、でもそうしたら倍精度型になっちゃったよ? こんなときは、ActiveRecord::ConnectionAdapters::PostgreSQLAdapter あたりを見てみよう! そんな感じで見てみると、decimal という型を発見…

DBIx::Skinny::Iterator の値だって JSON で出力したい!

ほぼ↓のつづき。 DBIx-Skinny-Row の値を JSON で出力したい! http://d.hatena.ne.jp/magicalhat/20100118/1263745674 今度は Iterator クラスを奪ってみました。 結局同じようなやり方でごり押ししました。。。これで以下のようにかくだけで、JSON データ…

ReadLine で CPAN を便利に

otsune さんに ☆ をつけられるたびに泣きそうな magicalhat です。 小さなことですが、大きな励みだったりします。 ありがとうございます><って、なんか気づいたら1月なんですけど。 今年も底辺からがんばっていきたいと思います。よろしくおねがいします…

DBIx::Skinny::Row の値を JSON で出力したい!

から始まった、Row クラスをちょっと変わった方法で拡張するお話。 すごく特異なケースだと思いますが。。。 JSON に書き出すときに、できれば Row クラスから直接 my $itr = $model->search('table_name1'); while (my $row = $itr->next) { my $json = $ro…

Casual Perl Talks#1 にいってきました

Skinny のベンチマークを筆頭に、役立つ話題g とにかく、すごく楽しかったです。 懇親会は空前のやきみそぶーむ。 id:acotie さんには「人生の山を2つ3つ越えてそう」っていわれました>< さてさて。 今回は縁あって遠路はるばると参加させていただきま…

ActiveRecord の Migration で bigint を

つかい。。。たい? そもそも bigint が本当に必要なのかを先に考えるべきじゃ。。。 とか思いつつも 「移行元の DB が bigint なんだよ」 というわけで、bigint を使うことに。 あれ?ところで (Rails とかで)、ActiveRecord 使って migration するとき、bi…

PDOxSkinny - Intro

PHP

ドキュメントまでコピーでほんとごめんなさい。PDOxSkinny を利用するための最小限の雛形は以下のようになります。 Schema Class は存在だけしていれば、スキーマの定義がなくてもある程度動きます。

DBIx::Skinny を参考に PDOxSkinny という O/R Mapper をつくってます

PHP

前回、DBIx::Skinny::SQL を参考にまるコピして、PHP のデータ構造から SQL を生成する SkinnySQL というクラスを作成しましたが、そこから更にがんばってまるコピして DBIx::Skinny の機能をほぼそのまま PHP に移植したクラスを作成しています。 名づけて…

間違えて git reset --hard HEAD^ しちゃったら

Git

いきなり追記 すばらしいコメントをいただきましたので、そちらも参考にしていただければと思います。 具体的には git reflog で見失ったコミットさんを見つけるんだ!!! - 8時40分が超えられない - subtech http://subtech.g.hatena.ne.jp/secondlife/200…

DBIx::Skinny::SQL を PHP に移植してみました

まず最初に id:nekokak さん、ごめんなさい。 「DBIx::Skinny を使ってみました」 という日記を書くよりも先に「うわー。こんなモジュールが PHP でも使えたらステキだなぁ」と思ったので、勢いで、しかも勝手に (一部だけですが) 移植してみました。 ごめん…

MouseX::App::Cmd があったらいいな。と思った

そもそも「Casual Perler」のさらにその手前にいる気がしている magicalhat です。今回の記事は 「CUI アプリケーションを作るときには、App::Cmd というフレームワーク (?) をよく使っています。」 というお話と 「MouseX::App::Cmd が欲しかったので挑戦…

あぁ勘違い

Mouse (0.3? - 0.40) を使っていて 「Moose でできるし、できるんじゃないかなぁ?」 と思ってやってみたけれど、できなかったことを忘れないように書いておこぅ。 なんか、他にもいろいろあった (あるだろう) けれど、随時書き足せたらいいなー。 あ、あと…

PHP で Mixin したい!

PHP

「アナタに Mixin されたい」とかタイトル書こうとしたけれど、なんか変な連想されそうだったので却下。 PHP って Ruby と同じで多重継承ができないけれど、Ruby とは違って Mixin の機能がないので、適当に繕ってみようかなー。 という動機で作ってみました…

pg_config がないといわれたら

すぐ忘れるのでメモ。DBD::Pg などをインストールする際に、pg_config がないよといわれたら # aptitude install libpq-dev するといいみたい。

Singleton なクラスをかいてみたい

PHP

ということで、AppRegistry というクラスを書いてみました。 といっても、これまた Perl の Pixis から拝借しただけ。 Pixis -- Pixis-Registry http://github.com/lestrrat/pixis/blob/master/lib/Pixis/Registry.pm あと、作ってみて?作る前から?分かっ…

PHPのとりこです

久しぶりですが生きています。 gist が貼り付けられるかテストを兼ねて。 内容はすっごく簡単で、Perl の Hash::Rename を PHP にして、実現できないことを切り捨てただけです。 Hash-Rename http://search.cpan.org/~marcel/Hash-Rename-0.01/ これで 'bar…

単純に知らなかった

ソース

Perl で Excel を Parse する

Perl で Excel を Parse するときのお約束といえば Spreadsheet-ParseExcel http://search.cpan.org/~jmcnamara/Spreadsheet-ParseExcel-0.54/lib/Spreadsheet/ParseExcel.pm ですよね! というわけで、今回の話題は Perl で Excel を Parse する方法につい…

Asynchronous Programming for (A)synchronous Communication

mala さんのセッション。 今話題の AnyEvent + Coro というだけあって、これまた大盛況でした。はやすぎて & はいれべるすぎて めもしきれなかった。ノンブロッキングにプログラミングしましょう。 ブロッキングする場所があるとそこでブロッキングしてしま…

Remedie: Building a desktop app using Perl, SQLite and jQuery

miyagawa さんによる Remedie セッション。 別の部屋で行われていた naoya さんのセッションも気になったー。 ローカルで動くソフトを作りたい 何を使って書く? 候補はたくさんある VC / C++ / C#。 マルチプラットフォームで動く wxWidgets。 Mac でしか動…

YAPC::Asia 2009 に参加して

今回が YAPC 初参加でしたが、参加にあたってはいくつか不安がありました。 もっとも単純な不安は、何の収穫もなく終わること。 そもそも仕事では Perl を使わない、というか「Perl 禁止」のため有休を使うという強行手段にでました。 なので、何としてでも…

Perl Which perl

弾さんのセッション。 さすがは弾さんってこともあって、超満員でした。 Modern Perl Perl 4 (PHP) は忘れましょう。さすがにまだ使っている人はいないですね。 Perl 5.6 は Encode サポートがないのであまりオススメできない。 それでもメンテナンスはまだ…

OpenGL Programming with Perl

Perl は 3D プログラミングの夢をみるか 3D グラフィックスモジュールはあるの? CPAN にある。 Perl から OpenGL を利用するためのモジュール POGL OpenGL クロスプラットフォームな3DグラフィックスAPI対象OS: Mac OS X Leopard でしか確認してないないcpa…

Concurrent DB Access with Perl

tokuhirom さんのセッション。 これまた大人気のセッションでした。 RDBMS に並行にアクセスしたい。 Webアプリケーションでは、DB へクエリを投げて整形して〜 ということが多い。 何回かクエリを投げる場合、直列の場合は各クエリでブロッキングするのでレ…

endeworks での WebApp の作り方

エンド ワークス ではなくて エン「デ」ワークスです。 ENgineer DEsign works エンジニア募集中です。 事前に 特別なことをやっているわけではない。 あぁ、標準サイズなんだなぁと実感してもらえれば幸いです。 endeworks での開発 開発サーバは特に用意し…

FormValidator::LazyWay で検証ルールをまとめよう

vkgtaro さんのセッション。 講演者がいない!?というハプニングもありましたが、無事にスタート。 lazy-people 面白そうですね。 lazy-people のプロジェクト lazy は遅延 って意味ではなくて 怠けられる って意味 Form Validateor は CPAN にもたくさん上…

スケールするウェブアプリケーションを20分で作る方法

Q4M の開発者でもある kazuho さんのセッション。 RDB の Sharding について。 Sharding するときに問題になるのは非正規化。 Twitter とかで発言があった場合に、全員のとこに発言があったことを書き込む必要がある。 既存手法 eventual consistency 複数の…

LT まとめ

yusukebe さんが LT 全部に共通するすばらしいお言葉をおっしゃっていたので、それを借りて。 LT 全部総括してまとめ Yes, we can.

『Ficia』インフラと Perl にまつわるエトセトラ

Apache 運用についてのノウハウ。 まとめる側の集中力に問題がでてきた。。。 前提 Linux 2.6.29.x Apacche 2.2X mod_perl 2.0.4 ありがたいお言葉 推測するな。計測すべし。 ざっくり調べる ps top fork は書き込みがあるまで親プロセスと同じページなので…

Simple OR Mapper DBIx::Skinny

なんてゆーか PHP に移植してみたい。 むりそうだけど。 PHP って、これ!っていった ORM が本当にない。。。よね? DBIx::Class DBIC 重い DBIC の SQL って微妙 DBIC パフォーマンスを考慮した SQL を投げてくれるわけじゃない 複雑な Perl のデータ構造か…

優しいモダンな WAF の作り方

Angelos ネタ。 以前 WAF を作ったときにすごくお世話になったソースコード。 モダンな WAF の要素 Plagger のような拡張性 WSGI のようなサーバ抽象化 テスタビリティ Rails のようなフルスタック ユーザビリティ 最小構成要素 Engine -> Dispatcher -> Com…

CPAN Packager による RPM / Deb の自動生成

メモメモ。 依存関係などを解決しつつ自動で rpm / deb をつくるツール。 モジュールのインストールに1日かかっちゃったよ! cpan でいれてたら違うバージョンではいっちゃったよ! を解消したい。 既存ツールの問題点 既存ツールは依存関係を完全には解決し…

Event programing fun with AnyEvent and Coro

AnyEvent 面白そう。 というわけで、聞き入っていた。 # ってゆーいいわけ。 EventLoop なモジュールはたくさんある。 でも API はどれも違う。書き方が違い過ぎて、ある EventLoop なプログラムを、他の EventLoop へ移植できない。POE::Compornent には 25…

modern Catalyst

hide-k さんのモダン Catalyst 講座。 すごく漏れている場所が多いと思います。 # メモが追いつかなかった。。。 モダンな Catalyst use Moose; extends 'Catalyst' __PACKAGE__->config( ); __PACKAGE__->setup( qw/ ロードするプラグインとか / ); Catalys…

Perlハッカーのための遊べるPostgreSQL

メモメモ PostgreSQL の変遷 PostgreSQL 8.3 で性能が大きくアップ HOT という機能 などなど地道にVerUpしてきている PostgreSQL 8.4 SQL 再帰SQLのサポート 8.2以前との互換性について改善 暗黙のキャストに対する改善 移植性の改善 大規模対応 パーティシ…

「モダン Perl 入門」の入門

とりあえずメモ程度にー。 School Guardian をモダン Perl でつくったよ。 モチベーション Catalyst 5.8 CataMoose でつくる 特に API 化に力をいれる その中の悩みや葛藤について説明していきます 使いたかった技術 CataMoose API Web::Scraper TheSchwartz…

おまけ

Acme 大全 2009 買っちゃった。

YAPC::Asia 2009 にいってきました

スライドをコピペするんじゃなく、きちんと書きたいなぁ。 と思ったけれどやっぱりムリでした。ごめんなさい。 参加したのに、メモがないのは完全にスライド丸コピになりそうだったものや、メモが取りにくい内容だったものです。 # スライドがすごく分かりや…

ソースで拾った CPAN モジュールを local::lib を使ってインストールする

前の記事のおまけ。 DateTime はすごく重いらしいので、それを回避するため DateTimeX::Lite というモジュールを利用させていただきました。 詳しくは↓ DateTimeX-Lite http://mt.endeworks.jp/d-6/2009/02/datetime-xlite.html CPAN はこっち↓ DateTimeX-Li…

Perl でハードディスクの温度を定期的に Twitter にポストする

ちょっと Twitter での aoshiman さんの発言 が気になったので、Blog を見てみることに。 自宅サーバは極端に熱のこもる場所に設置してあるわけではないので、廃熱に関してはそこそこ大丈夫だと思っているのだけど、それでもハードディスクとかの温度は心配…

FindBin::libs をつかってみる

use FindBin; use lib "$FindBin::Bin/lib"; が use FindBin::libs; とかけます。べんり! 詳しくは CPAN で! FindBin-libs http://search.cpan.org/~lembark/FindBin-libs-1.41/lib/FindBin/libs.pm

LLTV いってきました

行った証拠程度にメモ。 朝から生テレビ LL の最近の話題についていくつか PHP 5.3 Perl 5.10.1 Ruby 1.9.1 Python 2系列と 3系列 並列化のお話。dan さんの例がわかりやすくて面白かった。 みんな手をあげてー ( ´∀`)ノ 各自で判断して手を挙げることがで…

local::lib をちょっと使って Catalyst で作られた Wiki "MojoMojo" をいれてみる

今まで Front に Lighty、Back に Apache(mod_perl) の構成で Catalyst を動かしていましたが、Apache の mod_uploader を導入してからは、それを逆転し Front に Apache を、Back に Lighty (FastCGI) を利用するようになりました。 というわけで 「この構…