某Nのキックオフパーティーだかなんだかに潜入。偉い人と名刺交換したりしてすごい口頭ベースで仕事もらえそうな話に。うほほー。
家に帰ってきて爪切りばりばり。
某Nのキックオフパーティーだかなんだかに潜入。偉い人と名刺交換したりしてすごい口頭ベースで仕事もらえそうな話に。うほほー。
家に帰ってきて爪切りばりばり。
どうもここのところ日記才人の調子が悪いのに俺があまりマトモにメンテしてないので色々な問題が起きている。これはそろそろhttp://www.nikki-site.com:3000でこっそり稼働しているバージョンに無理矢理変えちゃって、あとはおいおい作業していこう、みたいな気になってきているんだが、どうだろうかなぁ。
現行のヤツって、AxKitでフロントを作ったのはいいものの、データベースの設計とかがすげーCGI当時のままなので正直いけてない。新しいヤツもだいたい作ったつもりなんだが、どこまでやったかなぁ。忘れちゃったですよ。まずRTをインストールして、そこと合わせてやるかな?
さー、区役所行って印鑑登録しないと。しかしなんで印鑑登録は全国区じゃないんだ。引っ越しする度に登録し直すなんてナンセンスだよ。
朝7時半に起きまして、そのまま寝転がりながらコード書き。DBIx::Classを使ってみて、早速DBIx::Class::Plugin::DateTimeを作ろうかと思ったんだけど、ドキュメント少な!結局search.cpan.orgでgrepしまくって、どうやらDBIx::Class::InflateColumnが怪しいというのがわかって、とりあえずMySQLで軽く書いてみる:
package DBIx::Class::Plugin::DateTime::MySQL;
use strict;
use DateTime::Format::MySQL;
sub inflate_mysql_datetime { DateTime::Format::MySQL->parse_datetime(shift) }
sub deflate_mysql_datetime { DateTime::Format::MySQL->format_datetime(shift) }
sub has_datetime
{
my $class = shift;
my $column = shift;
$class->inflate_column($column, {
inflate => \&inflate_mysql_datetime,
deflate => \&deflate_mysql_datetime
});
}
でまぁ、問題はこれをどう使うのかーって事かな。DBIx::Class的にはなんとなーくMixIn的なアプローチではなく、継承を使うような気がするんだけど・・・ってことは
use DBIx::Class::Loader;
DBIx::Class::Loader->new(
dsn => 'dbi:mysql:....',
user => '...',
password => '...',
additional_base_classes => [ qw(DBIx::Class::Plugin::DateTime::MySQL) ]
);
って感じかな。でもどうせなら自動的にデータベースのタイプによって使用するクラスを判別して欲しいかな。ってことで、ベースクラスに・・・とか色々書いてたらなんかコードが多くなってきたのでこりゃー、とっとと全部書いてCPANリリースしちゃおうかな。まずCDB::Plugin::DateTimeを再実装しようっと。
DBIx::ClassとDBIx::Role見ようっと。
鶴田真由キタ━━━━(°∀°)━━━━ッ!!美し過ぎる。
http://www.perlmonks.org/index.pl?node=Can%20I%20please%20have%20%2Asimple%2A%20modules%3F
bundleしてローカルディレクトリにインストールってのは自分的に盲点だった。
miyagawa氏に教えてもらったのだが、PerlハッカーのBrian Ingersonが名前をIngy dot Netに変えたらしい
http://blog.ingy.net/2005/11/the_ingy_formerly_known_as_bri.html
すげー。お茶目なのかエスプリが効いてるのか、はたまた馬鹿なのかよくわからんが、ともかくパイオニアであるのは正しいと思うw
ちょっと久しぶりに餃子を作った。餃子の種はキャベツ、ニラ、生姜だけ。あとは醤油、酒、塩胡椒、胡麻油、味噌で味付けしてそれをちょっと厚めのもちもちの皮で包む、包む、包む。とは言っても20個ほどのみ。
これを用意しつつ鶏ガラでスープを作成。こっちは化学調味料とかの入った出汁とかは使わず、あくまで鶏ガラのみ!これにレタスと生姜を入れてあっさりとレタススープ。
まずは水餃子を普通に茹でただけのを酢醤油+辣油で普通に。これがうまーーーー!うまい、あまりにもうまいのですぐにスープ餃子に移行。同じく茹でて、さきほどのスープに入れて、ネギをちらして。これまたうまーーーー!!っていうか、うますぎ。食べながらハナコさんと二人で我々は天才だと自画自賛。
あと鶏の唐揚げを作ってもらった。これまたうまーーーー。カリカリジューシー♪
本当の罪とは知らないという自分を認められない事である。
技術というのは長年の、幾多数の人達の努力を積み上げてきたものだと俺は思うので、若い/経験の浅い人が「効率のいい」「正しい」やり方を知らないというのは全く問題ない。敢えてことさらのように書くが、!!全く!!問題ない。
だけど、知らないまま間違った方向に突っ走るのは罪だ。問題に直面した時、ある場面までは自分の力でゴリ押ししてみようと思うのはしょうがない事だが、どこかで「これはひょっとしたら正しいやりかたではないのではないか」「ひょっとして自分の知らないやり方があるんではないか」と思うべきである。希にそういう状況を完全な独創で打破できる人もいるが、そういう人は多分自分のやってる事にことさら疑念など抱かないはずなので自分で打破できるとすでに確信しているはずなので特に迷う事はないだろう。
問題は自信も根拠もないのに、だれにも質問もせずそのまま突っ走って迷路の奥深くに入ってしまうヤツだ。知らないのは罪じゃない。だけど自分でできないと思ったらすぐ聞け!聞かずに迷宮の奥まで行ってしまったら引き返せない。いや、引き返せるけど、その時は周りのみーーーーーーーんなを巻き込んで迷惑をかけてるのだ。
他人に頼りすぎるのも問題だが、黙ってりゃ自分だけで解決できるかどうかくらいは把握してほしいもんだ。わからないと認めるのはそんなに恥ずかしい事か?
最近、猫も杓子もCatalystであるようだ。今日もリンクを辿って行ったら突然Catalystのページにぶちあたった。びっくりっていうか、なんかもう食傷気味だなぁ。Catalystは一応試した。確かにキレイにフレームワークができてて、色々できるしいいと思うよ。思うけど、なんだろう。なんか気に入らんのだよなぁ。
もちろん、新技術の温床としてとても注目すべきモジュールではあるので(id:naoyaさんとかがチェック/解析してくれてるあたり)ウォッチは継続していくべきだと思うんだけど、なんだろうなぁ。なんか、そこまで画期的というか革新的ではないよーな・・・
まぁいいのです。HTML::Mason使いの僻みかもしれませぬ。
「The Divine Commedy」は高校時代の先生、故Galvao先生が常に薦めてきてたのでよく覚えているが、邦題の「神曲」がどうしても思いだせない。
自分はほぼ全てのWeb系のプロジェクトをmod_perlで行っているわけですが、これを毎回サーバーにログインして作業するわけには行かない時が結構ある。特に毎日あちこちに移動している自分としては常に快適に作業が出来る程の高速回線があるとは限らないので、最近は特にローカルマシンで作業をしたい事が多い。
http://localhost/project1/
http://localhost/project2/
http://localhost/project3/
みたいな感じでアクセスできるようにしたいのだけど、ここで問題は実際の稼働環境とホスト名やらパスやらが違う事。これを吸収するためにはまずApacheの管理から考え始める:httpd.confに直接ガリガリ書き込む人も多いのだけれども、スムーズな開発→本番への移行を考えるなら折角存在するIncludeディレクティブを使用しない手はない
[httpd.conf]
...
Include /path/to/project1/misc/httpd.conf
本番マシンでは以上のように設定する事によって、ローカルのマシンではこのInclude行を繰り返せば設定できるようになる。
Include /path/to/project1/misc/httpd.conf
Include /path/to/project2/misc/httpd.conf
Include /path/to/project3/misc/httpd.conf
さて、今度はそれぞれのプロジェクト。問題は本番環境では
http://project1.mydomain.com/hoge.html
とアクセスするところを
http://localhost/project1/hoge.html
に行くようにする。このためにはmod_rewriteを使わないといけないが、そのためにはさらに*他のプロジェクトの邪魔にならないように*URLの書き換えを行わないといけない。
RewriteEngine On
RewriteRule ^/project1/(.*)$ /path/to/project1/htdocs/$1 [L]
そうしておいて
PerlRequire /path/to/project1/misc/startup.pl
<Directory /path/to/project1/htdocs>
SetHandler perl-script
</Directory>
みたいな感じで設定しておく。この時点ですでにベタ打ちの設定箇所があちこちにあるのですでに本番サーバーになかなか移行できなさそうな匂いがぷんぷんするのでパス名とかを後で代入できるようにする(ここでText::Template等を使ってもいいのだが、この程度のテンプレーティングで依存関係を増やすのもアレなので手動で)
RewriteEngine On
RewriteRule ^%ProjectPrefix%/(.*) %ProjectHome%/$1 [L]
PerlRequire %ProjectHome%/misc/startup.pl
<Directory %ProjectHome%/htdocs>
SetHandler perl-script
</Directory>
こんな感じにしておいて、httpd.conf.inに保存。ローカルマシンでは%ProjectPrefix% = '/project1'、本番では%ProjectPrefix% = ''等になるように置換してhttpd.confに書き込む簡単なスクリプトを書いておけば開発と本番環境を比較的簡単に切り替えられる。
俺はこの手法をstartup.plにも適用して、@INCパスやらその他設定項目を変えてやってみた。以上半分くらいメモ代わりに。
寝込んでるハナコさんのところに行ってキャベツ、ニンジン、ベーコンのスープと鶏肉を焼いたもの、それに全然炒り豆腐じゃない炒り豆腐を作った。あとはテレビ見たり漫画読んだりしながらダラダラ。しかし劇的ビフォーアフターはリフォーム(というか、立て直し)の後住人がどうなったのか、是非フォローアップをしていただきたい。
実家に行ったら、祖父から我が家の皆に「これ読めるか」という事で新聞の切り抜きが回ってきていた(読売新聞か?)
(01)辛辣 (02)九十九折(03)栄枯盛衰(04)欠伸 (05)玉蜀黍
(06)脊椎 (07)海鼠 (08)躾 (09)篆刻 (10)紫檀
(11)大綱 (12)辟易 (13)鍼灸 (14)吏員 (15)隠然
(16)安閑 (17)綺羅 (18)土竜 (19)杜撰 (20)静謐
(21)押印 (22)灰汁 (23)強面 (24)封緘 (25)山車
(26)鯱 (27)法網 (28)隷書 (29)薪 (30)藁
(31)畦道 (32)御用達 (33)造詣 (34)時化 (35)独活
半分くらいしか読めなかったよ・・・。以下自分がわかった分
(01)しんらつ(02)九十九折(03)えいこせいすい(04)あくび(05)玉蜀黍
(06)せきつい(07)海鼠 (08)しつけ (09)篆刻 (10)紫檀
(11)大綱 (12)へきえき(13)しんきゅう (14)りいん(15)いんぜん
(16)あんかん(17)綺羅 (18)もぐら (19)杜撰 (20)せいいつ
(21)おういん(22)あく (23)こわもて (24)封緘 (25)だし
(26)鯱 (27)法網 (28)隷書 (29)まき (30)わら
(31)あぜみち(32)ごようたし(33)ぞうけい (34)しけ (35)うど
とりわけ「とうもろこし」「ずさん」が分からなかったのは自分的にちょっと悲しい。
昨日は某社の某D氏とかとともに某社に某案件についての説明を某と一緒に通訳しにいった。六本木にある某ビルより某所の某社のビルのほうが某某としてていい感じだったような気がした。もっとも基本的に通訳自体は某のほうが全然うまいのでほとんどまかせっきり。某所に話が差し掛かった所で某D氏にちょっと訂正を加えた程度で、ほとんどやってもらっちゃった。
その後某社の某諸君と飯。うまかったけど、接待以外には絶対にいかないと思う・・・
いやぁ、分かりやすい日記だなぁ。わはは
あとは役所に行ったり、お金を数えたり、新宿まで行って書類を買ってきたり。移動と話ばっかで実務があんまり進まないのがちょっとストレスだけど、さっきid:higepon氏とやりとりしたりしてバグツブシができたと思うのですこーし気が晴れた。
アップルのiMac G5欲しい!
これって、はてなで懸賞やってるのしらなかったら全然わけわからないエントリーだよな。