November 2009 Archives
November 25, 2009
Plurking in Social, and more
Social supports plruk now. c9s released Net::Plurk last week and I made AnyEvent::Plurk with it. Programming with AE feels really good, a much easier alternative to POE.
Besides that, as a heavy user of Social, I found myself desired to peek messages inside channels before switching to the channel page. Therefore, I added a dashboard page that displays messages from all irc channels, Twitter, and Plurk. Also, On the channel list page, the latest 3 messages from each channel is right there to be seen.
And they are all live-updated. That is, you can just stay on the dashboard page watching messages flowing by, which I found very enjoyable.
Screenshots:
November 15, 2009
Twitter in Social
The list of twitter clients is already too long. It is almost like the “hello world” example program.
After I polish Social UI with jqtouch, I then start integrating twitter into Social.
Screenshots comes first:
The new iPhone-UI look.
Statuses of friends:
Inline flickr photo:
IRC supports multiple networks now:
The underlying AnyEvent::Twitter polls for twitter update. It is amazing how this Social app works with only one running process. No background program and/or crontab setup are required. The mixed of synchronous and asynchronous coding style provided by AnyEvent is a really comfortable chair for web programmers. It backs you up with awesome support. Such web programming technique must rock the future, otherwise /dev/null can suck the universe.
November 12, 2009
指鹿為馬 Perl 版
Perl 可以用 *a = *b 這種寫法來做函式別名。而且可以用中文寫(檔案內容要以 utf8 編碼) :
#!/usr/bin/env perl
use strict;
use warnings;
use utf8;
use encoding 'utf8';
sub 馬 { "馬函式" };
# 指鹿為馬
*鹿 = *馬;
print 鹿(), "\n";
函式名也可以是中文。事實上,類別名也可以:
package 糜鹿;
sub 速 { "慢" };
package main;
print 糜鹿->速, "\n";
很驚人而有趣的事實。
November 11, 2009
IRC on Web and then iPhone
My previous playing with Tatsumaki turns out to be really useful. I ended up checking IRC logs on iPhone every day recently. This is particularly handy when I am on the bus or stuck in the traffic.
I named it Social, for I want to make it do many things more the just an IRC client. The code is here: http://github.com/gugod/Social.
Here’s how it looks now:
I made the HTML semantic similar to Limechat so I can use their theme, and it worked just fine. The currently theme of choice is vicutake. Very nice-looking, and it fits iPhone screen perfectly.
November 8, 2009
Google Closure Compiler
I created a program to send js code to google closure compiler service to see how it performs.
This tool is pretty awesome doing minimization. With ADVANCED_OPTIMIZATIONS, it shrink jquery-1.3.2.min.js from 57254 bytes to 49636 bytes. That is about 7Kb smaller. Amazing result.
November 6, 2009
開放源碼中的軟體台灣名稱問題
雖然 FreeBSD 台灣名稱問題 已被 妥善解決,但這只是一個案例。「直接使用 ISO 3166 資料」以便軟體開發的心態仍然普偏存在;前有 Ruby On Rails 之例。 但絕對不限於此。現在也有很多其他開放源碼軟體 依然不知此問題而直接使用。
FreeBSD 的國際化政策 或許可做為此後爭論上一有力的後援。
世人將 ISO 3166 中的國家名稱資料直接拿來使用,也無可厚非,畢竟沒有其他哪個資料來源如此容易取得,又有這麼多的國名。使用這份資料的研發人員就在不知情況之下,繼承了這份資料的所有政治問題。修改 ISO 3166 資料中名稱當然是必要的,但這份資料的使用者眾,那廣大數目的軟體也都要隨著更新才算是真的生效了。只是,若原作者不知情、不關心,又怎會主動跟著修改呢。
無論如何,台灣人不主動花些口舌些去說明問題並推動世人修改的話,這宗大問題是不會變小的。
November 5, 2009
A jQuery outerHTML one-liner
$(...).clone().wrapAll("<div/>").parent().html();
November 3, 2009
The Tatsumaki Move
Instead of playing with Google Wave, I’m trying to write my own IRC client these days. Why ? Because I want to check IRC messages with my phone, and the solution of using screen+irssi all these years doesn’t cover that.
Turns out it is surprisingly trival.
AnyEvent::IRC::Client does a really nice work in detail dealing with the underlying IRC protocol, and the new shiny miyagawa-ware, Tatusmaki, nicely implemented message queue, keep the log of everything after started too. This nice little project made my weekend.
Before I release the code, let me show some screenshots:
The #chupei.pm channel page:
The channel switcher at to top:
MobileSafari doesn’t work nicely with mxhr, it timesout in about 60 second. However the plain-old long-polling works just fine.








