« 2007年02月 | メイン | 2007年04月 »

2007年03月 アーカイブ

2007年03月01日

SoozyのEngine化 #0

今のところ$self->reqがApache::Requestになってるのでmod_perl以外で融通が利かないのをどうにかしたい!
Sledgeからcode持って来てCGIとか出来る物も作ってみたけど、あれもApache::Request互換的な実装なので、やっぱりCatalystのそれっぽい実装に変えてしまいたい。

Soozy::Requestにリクエスト系の処理をやらせ
Soozy::Responseでレスポンス周りの処理をする
Soozy::Engineでリクエスト/レスポンスのハンドリングを行う感じ。

問題点は、Soozy::CoreやPluginとかで->reqを多用しちゃってるので、後方互換性を取りながら変えるのをどうするかだ。
多分Soozy::CoreのメソッドをPlugin::Bundle::0_4みたいなので上書きしちゃうのが分かりやすいのかなぁ。
Plugin::Bundle::0_4自体は、Engine化するためのPluginをloadするだけで、実際のメソッド上書きはPlugin::Engineとかでやるみたいな。
後方互換取るのが難しそうな変更内容をPlugin::Bundleで実装していく感じだと、いいかんじかもしれんね。
Soozy::Core自体もバランス良く変更していって奇麗に0.4に移行したい。


CLIとかでも活用できたら嬉しいす。

SoozyのEngine化 #1

Catalystというのは良く出来た物なわけで、結局Catalyst::(Engine|Request|Response)からのコピペになる感じ。
流石にJiftyからは取れない。。。

Plugin::Bundle::0_4とかで後方互換性取るのやめて

use Soozy qw(-Engine=Apache::MP13 -Debug=1 DebugScreen ConfigLoader);
と-Engineオプションを付ける事でEngineが動くようにした。
付けなければ0.3系列の挙動のままになる。
$self->engineがあると要所要所のメソッドをcode refで書き換えて処理フローを変えて行く感じで。

これの影響でPlugin動かないのがいっぱい出て来てるから、PluginのEngine対応しなきゃいけないね。
出来れば0.3系のアプリでもEngine使いたいからSoozy::RequestにApache::Request互換のメソッドつけときたいな。
headerとuploadあたりが出来ればいいはず。

2007年03月02日

SoozyのEngine化 #2

とりあえずPlugin::DebugScreenを動くようにした。

Soozy::Requestに

# for Soozy 0.3 user methods                                                                                                                            
sub header_out {
my $self = shift;

$self->context->res->header( @_ ) if @_ == 2;
$self->context->res->header(shift);
}

*header_in = \&header;

sub status { shift->context->res->status(shift) }

なコード入れといたのである程度互換性保てそうだ。
$self->redirectも$self->res->redirectに飛ばすようにしてある。
あとはPlugin側もちゃんと対応して、FileUpload周りの互換性とる作業したら、Engine化のベースは固まりそうだ。

うまく行けば0.3系のアプリに投入できるな。

takesakoさんお誕生日おめでとうございます!

sennaの副作用

sennaのmysqlバインディングのお陰で、mysqlのコードをより深く追求するモチベーションが増えたという事は、検索技術の発展に匹敵するくらいの良い結果が出てる気がする。

mysqlもソースファイル多いけど要領が分かればapache並に見ていける物ですね。

合宿は楽しい?

3,4日は、男性の方たちで、1泊2日のミーティング&温泉合宿です。
去年もやったみたいです。(リクナビに写真などが掲載中)
お天気も良さそうだし、日ごろの疲れを取って、
温泉に入って、少しはのんびりできるでしょうか?!
月曜日には皆さん、お肌が ☆ツヤ☆ツヤ☆

お土産は温泉饅頭でいいです。
では、気をつけていってらっしゃ~い。

SoozyのEngine化 #3

file upload周りの互換性チェックを軽くしてみたところ、そのまま動きそうなのでやる事無かった。

PluginはJSONとSession::State::Cookieが過去のRequest API使ってるけど、今のところ吸収されてるので放置しておく。

互換性一通り取れてそうなのでsvk pushした
http://trac.yappo.jp/trac/changeset/278
なんかコメントが酷い事になってる。。。

Catalystからコードを流用したお陰で、ファイルアップロードしてデータをすぐに表示するといった用途が楽に書けるようになった。

template/tt/default/default.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Language" content="en" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>EngineTest - Default on Soozy</title>
</head>
<body>
<h1>Hello! EngineTest - Default default</h1>
<form action="upload" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><input type="submit" />
</form>
</body>
</html>
とテンプレートを書いて置いて

lib/EngineTest/C/Default.pm

package EngineTest::C::Default;
use strict;
use warnings;
use base qw( EngineTest );

sub do_default {}
sub do_upload {
my $self = shift;
my $upload = $self->req->upload('file');
return $self->forward('default') unless $upload;

$self->res->content_type($upload->type);
$self->res->body($upload->fh);
$self->handle_view('');
}
1;

とコントローラを書くと、アップロードしたファイルを直ぐに表示できる。

用途は全くないけど!

2007年03月04日

合宿途中経過

今日の午後から箱根湯本の某旅館にて合宿ミーティングがスタートです。

本日の進行。
・会議部屋にLANとネットワークプリンター、液晶プロジェクターを設置。
・合宿中の議事進行スケジュールについて確認
・まずは露天風呂。 (16:00)
身も心もすっきりしたところで、
サイトデザイン、レイアウト、SEOの基本方針を確認
・夕食 (19:30)
・叶姉妹とアンチエイジングを考える
・コンテンツモジュールの生成、管理アルゴリズムについて
・CMSと静的コンテンツ制作フローの関連を確認
・とても美味な豆腐屋さんの件
・ようやくビールが飲める
・ふたたび露天風呂
・就寝 (02:30)


会議風景。露天風呂パワーでエンジン全開。
P1020251.jpg


夕食風景。すごーく量が多かった。会議中なので全員「ウーロン茶」。
P1020260.jpg


今日も一日お疲れさまでした。明日は6:30からミーティングです。
P1020271.jpg

明日につづく・・・

2007年03月08日

SoozyのEngine化 #4

YAPC開催があと一ヶ月を切った今日この頃、皆様はどうおすごしでしょうか。

Soozy::Engineの整備が一通り終わりました。
内蔵Webサーバも付けてmod_perl無くても使えるようになりました。
#3の時からの追加内容は

Soozy::Engine::CGI
Soozy::Engine::HTTP
Soozy::Engine::HTTP::Restarter
Soozy::Engine::HTTP::Restarter::Watcher

です。
結果的にCGI対応にもなりました。
helper scriptもちょっと追加して app_server.pl という内蔵Webサーバコマンドをsoozy.plが作るようになってます。

作業コンソールが若干黒いのでcperl modeの色が奇麗に見えるので、CLIとHelperのリファクタリングも進めます。
大分仕様が変わる予定。

2007年03月09日

今日は曇り

今日の天気は曇り。
金曜日だというのに・・・
今週はインフォマークスにとって不運の週。
K君がインフルエンザB型にかかり、
Iさんも風邪でダウン。
まわりのスタッフも風邪気味の人がたくさん。
みなさんちょっとオーバーワークになって
疲れもたまっています。
週末は心身ともに休ませて、来週は元気で活動しましょう。
ストレス解消も忘れずに。。。

あれれ・・・ビルが揺れてる。
地震かな???

2007年03月14日

今更だけど

リクナビNEXTの採用ページ作るためにインタビュー受けたわけですが
その時にアキバ系だとかアニメだとかの話になったので

 「里村茜は俺の嫁。コレ重要」

ってちゃんと伝えたわけですよ


完成した採用ページに書かれてなかったのはとても残念だった…

2007年03月15日

さむっ!

昨日、お豆腐が届きました。
取引先の方にお願いして、取り寄せたものです。
(一般では買えないそうです)
とても濃厚で、甘みがあり、とうふって感じです。
美味しかったです。

ところで今日は寒いです。昨日より更に寒い。
法務局まで用事があったので、頑張って自転車で突っ走りました。
桜の開花予想も気象庁が訂正したりと
明日は雪になるかもしれないとのこと。
「雪が降る」と言って喜んでいるのは、うちの子供ぐらいでしょうか。
彼は積もることを期待しているようですが・・・
大人は困るのよねぇ。


2007年03月16日

今週のSoozy update 2007/3/16

2つプラグインの追加をしてconfig.yamlに便利機能をつけました。

Plugin::CnfigLoaderの中に__path_to()__をサポートしました。
例えばconfig.yamlに

  static:
dirs:
- images
include_path:
- __path_to(./upload)__
と記入して、アプリケーションのroot pathが/usr/local/myappの場合は
  static:
dirs:
- images
include_path:
- /usr/local/myapp/upload
とconfigが書かれた物として動作します。
Catalystから機能をコピーしてきました。



Plugin::Static::Simple

Catalyst::Plugin::Static::Simpleと同等で、静的ファイルを簡単に処理出来ます。たとえば、設定に
  static:
dirs:
- images
include_path:
- __path_to(./upload)__
と書くとhttp://localhost:13000/images/へのアクセスは/usr/local/myapp/upload以下のディレクトリへのアクセスとして見なします。MIMEタイプの処理等も自動的に行われます。
これもCat

Plugin::Camelize

SoozyのURL/Classマッピングは微妙にCamelizeと違う方法でマッピングされていましたが、このプラグインを使うとString::Camelizeを使ってクラスマッピングを行います。

現在は特定のURLを特定のコントローラーに飛ばすプラグインの実装を考えています。

これがおわったら、今度こそCLIをちゃんと作る。

2007年03月28日

米の炊けるいいにおいが…

オフィスに、というか給湯エリアから米の炊けるいいにおいが漂ってきてます
こーゆー状態になるといつも思い出すのが、高校のクラスメイトが弁当と称して炊飯器と魔法瓶に入れたカレーを持ってきたこと
4間目の事業中なんて米の炊けるいいにおいが教室に充満して授業に全然集中できなかったよなぁ、と

つまり何が言いたいかと言うと

腹が減ったぜチクショー
もう辛抱たまらんですタイ
負けるもんか、って事でさいたま屋の味噌ラーメンくってきてやる

About 2007年03月

2007年03月にブログ「新宿御苑前ではたらく社員のぶろぐ」に投稿されたすべてのエントリーです。過去のものから新しいものへ順番に並んでいます。

前のアーカイブは2007年02月です。

次のアーカイブは2007年04月です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

Powered by
Movable Type 3.34