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日土曜日

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

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

2009年5月19日火曜日

ケータイの持ち運び方

ノキア、世界のユーザーニーズを探るリサーチ方法を語る
 Chipchase氏は、世界各国の文化の違いとして、ケータイの持ち運び方の違いについて紹介する。世界的に男性はポケットに、女性はハンドバッグに入れて持ち運ぶという傾向を示し、「女性は着信があったとき、ケータイを探すのにイライラする」と語って会場の笑いを取った。また、ベルトにつける専用ポーチの使用率が国ごとに異なることを紹介し、「中国の重慶のビジネス街では、63%の男性がベルトポーチを使うほど一般的だが、アメリカではビーバースタイルといって、中年男性のイメージがある」と紹介した。さらに変わった例として、日本の若い男性に見受けられる、折りたたみ端末をクリップのようにしてジーンズの前ポケットに挟み込む様子(強度的に問題があるので、実際には推奨されない)、日本やアジアではストラップが一般的であること(欧米ではほとんど利用されていない)も紹介し、「こうした持ち運び方の違いを踏まえて端末をデザインしている」と語った。


フィールドを調査。
ある観点で持って、定点観測したり。
アンケート取ったり。
話聞いたり。

・・ある意味、それが基本なんだろうと思い始めています。

2009年5月16日土曜日

XoopsCubeLegacy

OSC2009島根 - なぜ私たちは Ruby版 XOOPS を開発したか


http://www.ustream.tv/recorded/1513813


時限コンテンツだとは思いますが、
Xoops Cube Legacy2.2の紹介や、
Xoopsの並列化の試みなど、
興味深い話が聞けます。

個人的には、面白かったです。すごく。

2009年5月13日水曜日

ヒートアイランド対策で大阪市庁舎屋上にサツマイモを植え付け

 「日本一暑い」といわれる大阪の夏を冷やそうと、大阪市役所の屋上で12日、平松邦夫市長と園児29人がサツマイモの苗を植え付けた。

 市が今年度から始めたヒートアイランド対策の一環。公共施設の屋上でサツマイモを栽培したり、ゴーヤを壁面に植えたりして都心部を冷やす試みだ。

 10月ごろにはイモの収穫を予定。ゾウのエサに利用するほか、園児たちにも贈られるといい、園児は「大きくなーれ」と将来の“おやつ”に熱い視線。


大阪の夏は、確かに、ひどく暑いです。大阪の街を歩いていると、ビル群の中に、申し訳程度に木々や草花などの緑が植えられているのが分かりますが、「この程度では殆ど関係ないんだろな」というのがアリアリと分かる程度のものです。

先日、とある研究会に参加した際、南米をバイクで旅してきた経営者の方がおっしゃっておられたのですが、木を伐採していって山に地肌が増えていき、山肌がドンドン増えていくと山が崩れていき、やがて一面が砂漠のようになっていく、と。

ここだけを切り出して考えると、「当たり前じゃないか」と思ってしまうようなことですが、しかし、いまのこの大阪の現状を考えるとどうでしょう?

空室率が増大しているビルが増えている中で、また新しく大きなビルを建てていて、緑を減少させたり日当たりを悪くさせたりしている中で、新たな空室率を生む要因を自分達で作りつつ、ヒートアイランド現象に拍車をかけつつ、「暑い、暑い」と。

・・・なんだか、ひどくバカっぽく感じるのです。
自分で自分の首を絞めて「ああ苦しい」などと口走ってるような。



日本人は、いつ頃から目先の利益でしか行動できなくなったのでしょうか?

5年先、10年先、20年先・・・そして、次世代の子孫のために、
いま私達が行動していることは、貢献できているのでしょうか?

2009年5月11日月曜日

世界は変わる

折り畳みテレビ、夢じゃない 伸び縮みする有機EL開発


この技術は、世界を変えますね。

今後注目したいのは、次のようなことでしょうか?

解像度をどこまで高められるか
 ⇒日本人は、やけに画面の美しさみたいなことに
  厳しいですよね。。。

どこまで画面サイズの大きな製品を
 ターゲット価格帯で提供できるか

 ⇒携帯電話とか面白商品に加えて
  ノートPCのセカンドディスプレイ的な
  ストーリーでも売れる気がします

「折り畳み」時の耐性
 ⇒丸めてカバンに入れてたら壊れてた、
  ・・なんて事になったら悲しいですね

2009年5月9日土曜日

ADOdb Active Record

PHPにはADOdbというDB抽象レイヤの実装ライブラリがある。
このADOdbはActiveRecordを持っている。
持っているが、かつては単一テーブルのみ対象で、
リレーション・テーブルを操作するメソッドが無かった。
無かったと思ってたら、最近(?)、追加されていたらしい。

ADOdb Active Record

世の中がドンドン便利になっていく。

2009年5月8日金曜日

貢献したくなるサイト

WEB周りで商売するからには、「集客」というようなキーワードでいつも物事を考えていたりするワケです。

最近、動画が当たり前にサイトに組み込まれる時代になってくると、ただ動画を見せるだけでは、もう面白くなくなってきています。

今日、ちょっと面白いサイトを見つけました。

yappr
yapprはスポーツ、音楽、コメディ、ニュースなどの英語のテレビ番組や映画を使って、楽しみながら英語を学べるサイトです。


まず、その趣旨である「英語を学びましょう」というのがこれ以上ないくらい分かり易く伝わってきます。その教材は、
 1)ユーザーが投稿した動画
 2)動画に対するscription
 3)scriptionに対する翻訳
の3部構成になっており、かつ、1)2)3)のどれにも参加することが出来るし、すべて整って完成されたものをただ観るだけでもいい。

映画好きな人の中には、好きな映画の好きなシーンの台詞を覚えたいと思ったことがある人もいるでしょう。または、海外で話題になっているスピーチ、例えばスティーブ・ジョブスの名スピーチやなんかを丸ごと覚えたいと思ったことがある人もいるでしょう。あるいは、海外で話題になっているTV番組、例えば昨日までただのオバさんだった人が、オーディション番組で驚くような天使の歌声を響かせて合格してしまったりする場面のやり取りや歌詞を英語と日本語の両方知りたいと思ったことがある人もいるでしょう。

そんな、要するに、自分が覚えたいシーンで英語と日本語の両方を眺める・理解する・覚えるようなことが可能になる。これなら、「自分も貢献したい」という気持ちでなく貢献しちゃうことが可能になりそうです。

このサイト作った人、頭いいなあ、と思います。

2009年5月5日火曜日

Stephen Wolfram

Google crashes Wolfram Alpha debut party

私も数学科出身ということもあり、
Wolfram,Stephen氏の名は知らなくとも
Mathematicaというソフトは知ってたり
するワケです。

まあ、世の中、幾らでも頭のいい人というのは
上を見ればキリがない程にいるワケです。

2009年5月4日月曜日

PHPのADOdbライブラリ

MySQLでDictionaryAPIを使ってみました。

【ソース】
$tabname = 'test';
$flds = array(
  array('C','C','128'),
  array('X','X'),
  array('XL','XL'),
  array('C2','C2','128'),
  array('X2','X2'),
  array('B','B'),
  array('D','D'),
  array('T','T'),
  array('L','L'),
  array('I','I'),
  array('I1','I1'),
  array('I2','I2'),
  array('I4','I4'),
  array('I8','I8'),
  array('F','F'),
  array('N','N')
);
$taboptarray = array(
  'mysql' => 'TYPE=ISAM',
  'oci8' => 'tablespace users',
  'REPLACE');
  $dict = NewDataDictionary($context->_db);
  $sqlarray = $dict->CreateTableSQL($tabname, $flds, $taboptarray);


【作成されたSQL】
DROP TABLE IF EXISTS test
CREATE TABLE test (
  C VARCHAR(128),
  X TEXT,
  XL LONGTEXT,
  C2 VARCHAR(128),
  X2 LONGTEXT,
  B LONGBLOB,
  D DATE,
  T DATETIME,
  L TINYINT,
  I INTEGER,
  I1 TINYINT,
  I2 SMALLINT,
  I4 INTEGER,
  I8 BIGINT,
  F DOUBLE,
  N NUMERIC
)TYPE=ISAM


【作成されたテーブル】

2009年5月2日土曜日

フリーのERツール

A5:SQL Mk-2



機能の説明を読んでて、

「ああ、そうそう、こういうのが欲しかった」

と思わずにはいられない、秀逸な仕様の一品。



お一人で開発されてるっぽいけど、

願わくば、ずっとずっとメンテし続けて欲しい。

log4php

検索かけたら色んなのが引っ掛かってしまって
紛らわしいけど、今は、
log4php
これを主と思うことにしています。

すみません、ただの覚書です。