perl

Yokohama.pm#04

Yokohama.pm#04で発表した時の資料をアップしておきました。http://nekokak.org/presen/yokohama04/Qudoはまだまだ開発中のプロジェクトなので 興味のある方は開発に参加してみませんか? 今回のYokohama.pmの感想としては 発表者の数はそこそこ多かったので…

Skinny現状

codereposで開発していたDBIx::Skinnyですが githubにうつしました(yappoさんによりなぜか移されました)。http://github.com/nekokak/p5-dbix-skinny/tree/master興味がある人はてけとうにforkすればいいとおもいます。てけとうにmergeするかもしれません…

Perlbal::Plugin::ConfLoaderをつくってみた

追記:Perlbal::Plugin::Includeでなんの問題もなく可能なのでした Perlbalでは/etc/perlbal/perlbal.confに Perlbalの設定をもりもり書くわけですが、 相当数のサービスを1台のPerlbalで管理していると、 1つの設定ファイルがかなり大きくなってしまって …

advent-calendar #10

http://perl-users.jp/articles/advent-calendar/2008/10.html寝たら忘れそうだったので最速でアップしてみた。 SQLite使うときのtipsです。 おつぎはzigorouさんお願いします

Yacafiイイネ

最近個人ではYacafiを使ってます。 http://blog.yappo.jp/yappo/archives/000618.html http://nekokak.org/こちらは全面的にYacafiとDBIx::Skinnyをつかってかいてみました。 Yacafiは高速に動作してくれるので素のCGIでもこんだけ早く動きます。 (もし、遅…

Yokohama.pm#03

http://yokohama.pm.org/2008/12/yokohamapm-3-2.html 開催されました。 今回はオオトリという大役でしたが、id:precuredaisukiのおかげで 笑いもとれ今回も大盛況のうちに終わりましたね!Yokohama.pmはShibuya.pmでは聞けない人の話が聞けたり、 新しい人…

データをイテレーションしながらオブジェクト化

したくなったのでMooseでもよかったのですが これまたでっちあげてみた。 package Data::Object; use strict; use warnings; our $VERSION = '0.01'; use Data::Object::Iterator; sub new { my ($class, $args) = @_; my $itr = Data::Object::Iterator->ne…

ANONクラスの生成

ANONクラスを作りまくりたくなったのですが Class::MOPを使ってもいいし Moose::Meta::Class->create_anon_classとMooseつかってもいいんですけど、 ちょっと適当に作ってみた。 package Class::Anon; use strict; use warnings; sub create_anon_class_by_e…

TheSchwartz::Test

というのを書いてみました。 といってもTheSchwartzのt/に入ってるdb-common.plからのほとんどコピペですが、 Pluginとか別パッケージで書く場合にあったほうが便利かなーとか思ったので。 こんなのいかが?追記:codereposにいれてみました (http://coderep…

Perlbal::Plugin::UrlGroup再び

おおよそ1年半ほど前に書いたP::P::UrlGroupですが VHOST周りの扱いで微妙にバグがあったので直しつつ、 リクエストされたuriの拡張子をみて .gifだったら静的POOLに飛ばすとかだけやってたのですが、 VHOSTのバグを直すついでにPoundのurl_groupぽく変更し…

DBIx::Skinny

いまさっきcodereposにDBix::Skinnyというものをimportしました。 http://coderepos.org/share/browser/lang/perl/DBIx-Skinny 昨今のDBICブームで利用者は増えてきたんですが、いろいろ使うにあたって、 ここまでORマッパーでいろいろ(JOINしたり、キャッ…

Yokohama.pm#2

発表してきました。資料はこちら。途中で時間切れになってしまった。http://nekokak.org/presen/yokohama02/デジハリ横浜さんの会場がかなりよかったですね。 デジハリ横浜++懇親会も楽しかった。 引き抜き合戦が特に笑えた。次回があれば、著作権についての…

Yokohama.pm#01

Test::Declareの紹介をYokohama.pm#01でやってきました。発表資料は http://nekokak.org/presen/yokohama01/ でどうぞ。Shibuya.pmとは違った感じで楽しかったです!会場の手配でkdaibaさん 懇親会の手配でtypesterさん 参加者のみなさん そして我らがリーダ…

svnで特定パス直下のファイルを消せなくする術

先日codereposのlang/perlをぶっとばしてしまったのですが、 それを解消すべく特定パス直下はdelできなくするHookをかいてみる。svnのpre-commitのHookでは REPOS="$1" TXN="$2" /path/to/svn_pre_commit_hook.pl "$TXN" "$REPOS" || exit 1と、書いておく。…

Spork

YAPCでの発表の際、どんなプレゼンツールをつかおうかなーと考えていたのですが、 自分でつくるのも面倒になってきたので IngyのSporkを試しに使ってみたら、すげー簡単にできたのでご紹介。まずはともあれSporkのインストール。 cpan> install Spork私の環…

DBICで簡単map

http://d.hatena.ne.jp/naoya/20080419/1208579525 naoyaさんのをふと思い出してDBICでの出来るように書いてみた次第。DBIx::MoCoの場合とは異なりDBICの場合は、 searchメソッドから戻ってくるものはスカラーコンテキストではResultSetなので 無理矢理DBIC:…

Test::Declare

最近会社のプロジェクトでもテストがないと すごい勢いでDISられるのでがんばって書いている今日この頃です。 ただやっぱりテストがあると、機能変更とかやりやすくなって 精神安定剤にもなていいですね。 test++さてPerlでテスト書く時ってTest::Baseがかな…

autoboxでDBIとか

sql->doとかできたらおもろいかなとおもってやってみた。 use strict; use warnings; use autobox; use autobox::DBI ['dbi:SQLite:/tmp/autobox_dbi.db'], {RaiseError => 1,AutoCommit =>1}; use Test::More tests => 8; 'CREATE TABLE foo(id INT, body T…

DBICのresultset_attributes

resultset_attributesをつけてると便利だったりもするんですけど、 resultset_attributesに検索条件を入れてると うざい場合があって、同僚が悩んでたので↓みたいにしてみそらしどといってみた my $schema = $self->model; { local $schema->source('Hoge')-…

DBIx::Class::AsArrayHash

っていうのがcodereposにあがってたのですが、 これって、コンポーネント化するまでもなく my @rets = map { +{$_->get_columns} } $rs->all; もしくは my @rets = map { $_->as_fdat} $rs->all; で十分じゃないかなとおもいました。 もしくは DBIx::Class::…

DBIx::Class::TableNames

DBIx::Class::ProxyTableと絡んだりするのですが、 動的にテーブルを作ってDBICのスキーマを生成しない場合、 テーブル一覧をとるのがいつも $self->storage->dbh->tables(undef, undef, $key, 'TABLE'); とかやっててめんどくさいので作ってみたのでした。h…

DBIx::Class::ProxyTable

前にhttp://d.hatena.ne.jp/nekokak/20070824/1187941930ってのをかきましたが それをモジュール化してみたhttp://coderepos.org/share/browser/lang/perl/DBIx-Class-ProxyTableとりあえずMySQLとSQLiteでつかえる(はずです使い方 package Your::Schema; u…

Lingua::JA::Kana

danさんがつくってたのをみたのでテストしてみた。 テストは適当ですけど。 個人的にこのモジュールはタイムリーだた。Lingua::JA::Romajiを使うことが多かったんだけど、変換がすげー適当で、 (日本人が作ってないからってのもおおきいんだろけど) 泣ける…

CatalystとCLI

Catalystを使ったアプリケーションを作ったとき、 コマンドライン経由でそのアプリケーションのDBを更新したい場合、 Modelはどういう風にあつかうべきなんざましょ?Catalyst内での処理の場合は Catalyst::Model::DBIC::Schema を継承したMyApp::Model::DBI…

Net::Serverをつかってswiftyをサーバ化

やってみた。 Net::Server使えば結構簡単にいろいろできるます 今回は色々やってないですが。http://search.cpan.org/~rhandom/Net-Server/もっとエラー処理だとか なんだかんだでやってもいいとおもいますけど とりあえずとりあえずで。 package Cache::Swi…

Cache::Swiftyにパッチ

というほどでもまったくないのですが、 現在のVersion0.02では ScalarValueしかあつかえんでしたので。↓間違ってます [nekokak@kobayashi218]$ diff -u Swifty.pm.org Swifty.pm --- Swifty.pm.org 2007-09-12 15:14:15.000000000 +0900 +++ Swifty.pm 2007-…

DBICでマルチラインインサートできる

http://d.hatena.ne.jp/tokuhirom/20070829おーすばらしい。ちなみに http://d.hatena.ne.jp/nekokak/20061207/1165473328 この記事を書いたときは DBIx-Class-0.07000あたりのバージョンをつかってたのですが そのときにはpopulateメソッドはbulk insertを…

Perlbalを使ったUploadプログレス表示

Webでファイルアップロードの仕組みって結構つかわれてますが、 大きなファイルをアップロードしている時、プログレスバーとかを 表示したかったりしますが、Perlbalでは簡単にできました。Perlbalの設定ファイルには↓見たいに設定 肝は CREATE SERVICE uptr…

DBICでテーブル名切替の術

アプリを作ってると色々ログ系をDBに保存しておきたかったりするのですが、 ログテーブルって結構でかくなってしまう運命です。 DBによってはテーブルサイズがでかくなると検索効率が落ちてしまったり ちょくちょく問題になってしまうのですが、 ログテーブ…

DBIC::Cursor::CachedのCacheKeyに関するパッチ

DBICを使ったプロジェクトが複数ある場合とか キャッシュのキーがかぶるのもいやだからかいてみた。 プロジェクトのSchema名をぶちこんでるだけ。 基本かぶらないはずなんだけどねー。 $ diff Cached.pm Cached.pm.org 51c51 < return Digest::SHA1::sha1_he…