February 2006 Archives

いろんな Web アプリをくっつける

| 0 Comments | 0 TrackBacks

複数の Web アプリの Farm を作るためのフレームワークということで、いろいろくっつけたものを作りつつ、フレームワークのありかたを考えています。

んで、現在の状況としては、、、

  • Wiki は、最小限の機能をします。まだ見ることはできませんが、無限バックアップをとっています。
  • Chat は、最小限の機能をします。ただし、通信方法がありえないので、改善が必要です。
  • Blog は、ビュワーとしての機能します。エントリの投稿画面、その他管理画面や、コメント・トラックバック周辺が必要です。
  • Todo は、未着手です。

http://draft.woremacx.com/でデモをしていますので、使ってみて下さい。

また、作業の状況については、レポジトリをごらんください。

複数の Web アプリの Farm を作るためのフレームワーク

| 0 Comments | 0 TrackBacks

複数の Web アプリの Farm を作るためのフレームワークを Catalyst で作り始めました。

  • http://example.com/(user)/(controller)/
  • http://(user).example.com/(controller)/ (今後対応予定)

適切な user と controller を与えてアクセスすると、対応する controller へ内部でサブリクエスト(subreq)を発生させます。user だけ指定された場合は、portal という controller にアクセスされたものとみなして動作します。

各 controller 内で認証が欲しい場合は、各 controller の auto 内で認証画面に redirect で飛ばして return 0 すればいいので、楽ちんです。

なんでこんなものを作っているかというと、blog と wiki と webchat と todolist を一つの単位とした Farm をローカルで大量に作りたいからなのです。

blog は日記用、wiki はまとめ用、webchat はブレーンストリーミング用、todolist は進捗管理用という感じで使えたらいいなと考えてます。手元にソースを持つことで、インターネットが使えない場所でも各種の連携した機能を使うことができるので、とても幸せになれるのではないかと考えています。

Wore::Wiki

| 0 Comments | 0 TrackBacks

気がついたら Wiki みたいなのを作りかけていた。。。

Catalyst おそるべし。

Wore::Wiki

Class::DBI::Loader でハマる

| 0 Comments | 0 TrackBacks

use Class::DBI::Loader; した直後に Class::DBI::Loader->new すると、Class::DBI::Loader::mysql が呼んだ Class::DBI::mysql が「set_sql ねーよ」と落ちてしまうので、結果読み込めないのです。

実際、Wore::Note では Class::DBI::Loader で動いているので、何か use し忘れているに違いないと思い、Catalyst::Model::CDBI を見てみることにしました。

use base qw/Class::DBI/;
use Class::DBI::Loader;

とあるので、まねして解決しました。

今日の Wore::Note

| 0 Comments | 0 TrackBacks

今日の Wore::Note でできること

そのうちできるようになること

  • /tag/ での抽出表示
  • /tag/yyyy/ を表示
  • /tag/yyyy/mm/ を表示

今までさっぱり忘れていたこと

  • 管理画面

だめじゃん

Jifty::Dispatcher

| 2 Comments | 0 TrackBacks

とても気になったので、Jifty::Dispatcher をpod2text して説明を読んでみました。ついでに手元の環境も r569 にうpしてみたり。

  • 流れ: before → (action) → on → after
  • on の中で show, redirect, abort
  • run の中に処理を書く

という感じ。

before
 ↓
(action)
 ↓
 on → show, redirect, abort
 ↓
after

他にも when, under とかがある。

Jifty

| 0 Comments | 0 TrackBacks

まずは、怒濤のインスコロール作業をクリアしました。perl -V:installvendorarch な場所にコードではないファイルが入るイベントがあったりしましたが、適当に mv して適当に Jifty::Util->share_root を書き変えておいたり。

んで、Jifty::Manual::Tutorialの翻訳でチュートリアルをやってみました。未知のものを触るときに翻訳があると、とてもありがたいと思います。

例によって taskpad.jp みたいなのを作ってみようかと思ってます。

symfony版に期待してます。

追記:Jifty::Dispatcher 発見。

ProxyPreserveHost でバックエンドにホスト名を渡す

| 0 Comments | 0 TrackBacks

今作ってるブログツールは、Catalyst アプリがバックエンドとして動いていて、mod_proxy で渡すような環境に置いています。

こういう環境の場合で tdiary.net みたいにバーチャルホストを使って複数のブログをホストする場合って、どーやればいいんだろうかと悩んでました。$c を Data::Dumper してみたりしたけど、ホスト名をもらえないので、どうするんだろうと。

taskpad.jp みたいなのを Ruby on Rails で作ってるページ

| 0 Comments | 0 TrackBacks

task*pad.jp Imitation with Ruby on Railsという記事より

そんな折、 perl 版 Rails とも言える Catalyst を使って、task*pad.jp を実装しているページを見つけ、これを参考にしつつ Rails で実装してみた、その経過である。

task*pad.jp みたいなアプリの Ruby on Rails 版です。

Ruby を勉強するときに参考にさせていただきたいと思います。

ワンタイムパスワード方式のログイン認証

| 0 Comments | 0 TrackBacks

AjaxとPHPを使ったワンタイムパスワード方式のログイン認証という記事から

Ajaxでサーバからチャレンジコードを取得し、チャレンジコードとパスワードをmd5でハッシュして、更にその値をサーバに送信し、認証を取ります。このため、従来の方式よりは安全な認証が可能となります。

なんか見たような話だと思ったら、以前バイトで使わされてたグループウェアWebMagic(デモ)に Ajax ではないけど実装されてました。発見したときは、すげー感激したのを覚えてます。

ブラウザで APOP な認証してるよー。すげー。と周りの人に言ったところで誰も理解してもらえず悲しかったことだけは覚えています。

タグを parse するルーチン

| 0 Comments | 0 TrackBacks

CPAN にモジュールあるかもしれないけど、自分でなんとかなりそうだったので、属性付きのタグを parse するルーチンをでっちあげてみました。

これで、属性付きの様々なMovableTypeのテンプレートタグを Wore::Note で実装できそうです。

splittag.pl

Wore::Note の svn レポジトリ

| 0 Comments | 0 TrackBacks

Wore::Note に実装したい機能

| 0 Comments | 0 TrackBacks

Wore::Note は、以前「メモ書きアプリを考える」で考えたことも含めて、実装したい機能を考えているところです。

あの時点では、DB 未使用、暗号 fs との連携可とか書いてましたが、それはローカルな隔離環境の中で ChangeLog を書いて解決ということになりました。

んで、今求めているのは、

  • 認証が通ってなくても、メモを保存(not webで表示)可能。 (いくらでも追加しておいて、認証が通ったときに web での表示可否を決めれる)
  • タグ付けがらくちん。
  • 入力途中のフォームの自動履歴管理。
  • MovableType のテンプレートを利用可。
  • ローカルな環境に置いたプライベートなブログからの楽ちん同期。
  • ライセンスは GNU GPL version 2 を採用し、何やってもやられても安心。
  • MySQL + senna で全文検索。

「土曜日くらいにフリーズして、日曜日に実装してみたいと思います。 」とか書いてましたが、昨日からぼちぼち書いてます。

Wore::Note

| 0 Comments | 0 TrackBacks

perl でフリーで MySQL 使ってるブログツールが欲しくて、Wore::Note という Catalyst アプリを書き始めました。

今のところ、トラックバックやコメントやその他サイドバーの機能とかがなく、このブログのデータをコピーしたものを表示してるだけなので、今月中には完成させたいなと思ってます。