2009年5月31日日曜日

Jettable

Jettable - PHP5で動作する柔軟なHTMLテーブル出力フレームワーク



一応、覚書しておく。

※smartyとか使ってれば、あまりいらない気もしますが。

XEAD

業務モデリングやなんかの本をたくさん出版されてる渡辺幸三さんという方のサイトに無償モデリングツールとして紹介されてました。(というか、渡辺幸三さんご自身が開発されたっぽいですね。)

http://homepage2.nifty.com/dbc/xead.html

2009年5月29日金曜日

PHPで半角カナのチェック

【参考にさせていただいたサイト】
http://blog.96q.org/2008/08/21/php-regular-expression/
http://yosiwo.lowtech.ne.jp/item/475
http://pentan.info/php/reg/is_kana.html
http://charset.7jp.net/euc.html

期待大!Google Wave

ふと、↓こんな記事が目に留まりました。

グーグル、「Google Wave」を発表――電子メールでリアルタイムコミュニケーション

※以下、思い切り、抜粋。
 Rasmussen兄弟には、「Googleの社内でも、最も独立した、独自に開発を進められる一部門」を立ち上げる権限が与えられたことを、同社共同創設者のSergey Brin氏は、デモンストレーションに続いて行われた記者会見の席で明らかにした。「Google Maps」プロジェクトの根底にある技術開発で、Rasmussen兄弟が成功を収めたのを見て、Brin氏は、インターネット上のコミュニケーションの再発明に取り組む話を持ちかけられた時、「この2人に今回も期待して賭けてみる」気になったようだ。

 Rasmussen兄弟は、アイデアがトレンディに流れていくインターネット上のディスカッションを組織化した、「Google Wave」を開発するに至った。Google Waveは、ややTwitterのようでもあり、FriendfeedやFacebookにも似通いつつ、そのすべてを同一のサービスにまとめたような存在だ。Google Waveでは、オンラインのコンタクト先へ、ダイレクトにメッセージを送りつつ、リアルタイムに返信を受け取ったり、写真やドキュメントを共有したり、会話に加わるメンバーを、必要に応じて追加したり、削除したりできるようになっている。


インターネット上のコミュニケーションについて、私もよく考えます。どうもインタフェースが多過ぎる気がする上に、それらを統合して何かするというようなことがやりにくい気がします。facadeが欲しくなるんです。
Google Waveが、世の中のおよそ全てのコミュニケーションツールのfacade的な役割を果たしてくれたら、なんて素敵だろうと夢想してます。

※↑たぶんハズしてますが、半ば確信犯です。>自分

2009年5月28日木曜日

XCのセッション管理

XoopsCube向けモジュールを開発中なのですが、セッション周りで少しハマってしまいました。


【やろうとしていたこと】


wizardっぽい画面(群)を作成するため、それら全てのデータを包括できるようなActionFormクラスを定義しておき、インスタンスをセッションに持っておいてwizardの各画面で入力された値をActionFormに格納するような構造を考えました。


【そういうときフツーは・・・】


こういうとき、つまりPHPでクラス(インスタンス)をセッションに保持する場合には、自分でserializeして$_SESSIONに格納するようプログラムを書きます。


【しかし、こんな現象が・・・】


なので、今回もそのようにしたのですが・・そうすると何故か、セッションに格納した他の変数が欠落して取得できなくなってしまい、プログラムが正常に動作しなくなりました。

欠落したのは、一番最後にセッションに格納されるデータ=画面formに埋め込むtokenです。


【調査開始】


今回、firefoxで確認していたので、firefoxで「セッションが保存されない」と来ればローカルに保存されたクッキーが何かの拍子に破壊されたとかそういうのが考えられます。そのため、真っ先にクッキーを一度削除してからfirefox再起動による再作成を行いましたが、現象は変わりません。。。
※この辺りで、正直、頭を抱えてしまいました。


【さらに詳しく調査】


XoopsCubeでは、セッションに格納したデータはDBテーブルに書き出されるようですので、該当テーブルを参照にいくと、最後にセッションに格納したハズのデータが確かに欠落しています。DB保存した段階で既に。

該当テーブルの中でセッションデータを保持するフィールドはtext型で定義されていました。MySQLでtext型というのは最大で65535byteを格納できる、かなり大きなフィールドです。

で、今回私が格納しようとしたデータをみると、クラス自体がかなり入り組んだ構造になっているため、そのまんまシリアライズ化すると、入れ子入れ子の連続で、かなり大きなサイズになっているだろうことが容易に予測されました。


【このように対策しました】


ActionFormをそのまんまシリアライズするのをやめて、各フィールドの値だけを配列に抜き出してきて、それをセッションに格納するようにプログラムを修正したところ、たちどころに、見事に、解決してしまいました。(めでたしめでたし?)


【少し考え事。。。】


どう考えてもActionFormをそのままセッションに持てたほうがプログラム的にはスッキリするとは思うのですが、セッションデータをDBに保存することを考えると、やはりあまり巨大なデータを格納することはできないと考えるほうが正解だろうと思うようになりました。

※そもそも何故セッションデータをDBに保存するのかについては、ネットで調べれば、参考になる情報が実にたくさん見つかります。

今までオレオレ・プログラムを書いたりするときには、ついついセッションを安易にファイルに格納するようにばかりしていたため、思わぬところで先入観に縛られてしまっていました。

反省しきりです。。。

2009年5月27日水曜日

myfax.com ~free fax 送信サービス~

試してませんが、無料でFAX送れるんだそうです。

myfax.com

ホントなら、すごい時代になったなあと実感します。

※当方spark43には、まだFAXがありません。
 そう言えば、すっかり忘れてました。

2009年5月23日土曜日

パペボさん、代表取締役異動

いやあ、知らなかった。
しかも、ペパボさん、ジャスダックに上場してた。
ヌカってました。。。