Saturday, September 30, 2006

Catalyst Zorpia

YES! FINALLY, Zorpia Catalyst is out!
Catalyst Zorpia! :)
Tuesday, September 26, 2006

XML.ObjTree and force_array

在以前的 blog 里提过 JSAN 的 XML.ObjTree. See javascript XML parser
今天发现一点新东西。所以要做一下修正。
最主要是 force_array 这个以前被我忽略了但非常有用的参数。
<xml><message>OK</message></xml>
<xml><message>OK</message><message>DEL</message></xml>

以前写起来比较麻烦,要用 if (tree.xml.message) { 来判断是不是一个。
现在发现有了 force_array, 就非常简单了。:)

JSAN.use('XML.ObjTree');
var xotree = new XML.ObjTree();
xotree.force_array = [ "message" ];
var tree = xotree.parseXML( response );
for (i = 0; i <>不管有多少个 messages, 一律强制使用 array
以前的我真是有点笨。

any way, JSAN 和 XML.ObjTree 都非常好用。:)

Labels:

Thursday, September 21, 2006

Catalyst Session State

我们一般使用 cookie 来保存 sessionid, 如果 cookie 失效的话就用 url 来传递 sessionid.
这个在 Catalyst 里非常简单。我们能同时使用 State::URI 和 State::Cookie 模块。
use Catalyst qw/
-Debug
Dumper
Config::ConfigLoader
Static::Simple
Authentication
Authentication::Store::DBIC
Authentication::Credential::Password
Session
Session::Store::DBIC
Session::State::URI
Session::State::Cookie
/;
将 URI 放在 Cookie 的前面。Session::State::URI 会判断有没有 load State::Cookie 而且 cookie 有没有效。如果 cookie 有效就使用 cookie, 无效就使用 uri.

perfect solution!
Sunday, September 10, 2006

unihan modules updated

抽个空把三个用 Unihan 数据库的模块给更新了。
Unihan 的数据太大,大概有 24 M, http://www.unicode.org/Public/UNIDATA/Unihan.txt
太大了,然后用个 Perl 脚本把这里面的 kCantonese|kMandarin|kTotalStrokes 抽出来。分别对应到 Cantonese PinYin Stroke 模块。
Unihan 里面还有些是很有用的。比如汉字翻译等。不过我个人没怎么用到,所以也就没写。

have fun.
Saturday, September 09, 2006

Code Complete 2

从当当订购了《代码大全2》,正在那看。稍微看了一点点,感觉还是挺不错的。等我多看点或许会写点感想。
平日里真是太忙。很少有时间去学习新东西,可这样可能很快就会跟不上时代了。上班没时间看资料,下班又不想碰电脑。还是买本书在床头看看比较好。
我们用 Catalyst 编写的新网站可能在这个月就要推出来了。感觉很兴奋。虽然不是很满意所有的代码,但是还是非常兴奋。我在 Zorpia 工作挺开心的。就是太忙了,程序员几乎都很忙。想着把 Lingua::Han 系列的模块更新到 Unicode 5.0 都没时间。看看明天能不能抽个空更新一下。
Saturday, September 02, 2006

fund

我扔了一万多块钱去买基金,mm, 目前回报不可观那。一百块钱都不到。晕厥那。时机不对。去年买的话现在也该有一万五了,不过去年还没钱呢。太阳好大。
不过总比该死的存银行好一点点。
Friday, September 01, 2006

tips tips

as perfaq9, 我们可以通过如下代码得到本机的 IP 地址:
use Sys::Hostname;
use Socket;
my $host = hostname();
my $address = inet_ntoa( scalar gethostbyname( $host || 'localhost' ) );
print $address

PS, the previous post, the "single and find" one shows that ->single don't support order_by attribute, but ->find support it. :)

Want to get a session data by sessionid in Catalyst?
u can insert a seesion_id in TT by [% c.sessionid %]
code like:
my $sid = $c->req->param('sid');
$c->log->debug("sid is $sid");
my $session_data = $c->get_session_data("session:$sid");
return $c->res->body(Dumper($session_data));

don't forget the "seesion:" before $sid.

Good luck.