Archive for the 'Thoughts' Category

A Letter from Prison

While going out from home a few days ago, a neighbor approached me asking me to translate a letter she received. So began my attempt to be a english-chinese translator while reading the letter simultaneously. Following is a rough impression of its contents

Dear nephew,

I’ve been recently sentenced x years imprisonment and will be release on xx.xx.20xx. As you know I’ve did not study much in the past so this letter was written with the help of my cellmates. I hope you would study hard and not follow in my footsteps.

Do not worry about me as I’m well taken care here. Let my children know and give them my prison cell id, so they can visit me or write to me.

… … …

The letter, was written on a “prison paper” letter format with very neat handwriting. My neighbor, not understanding english and worried something bad had happened, decided to clarify with me.

Fortunately (or maybe not), it turned out the letter was sent to the wrong destination. The block and unit number were correct, but the recipient’s name and street address was wrong, so I suggested returning the mail.

Although this few short minutes was insignificant, it provoked a few thoughts of mine.

1st, it made me realised how personal letters were. Emails are still personal, but perhaps not at the same level as written letters. Perhaps the early believers would have been very encouraged when they received letters John wrote to the church while in prison.

2nd, it shows the prison in another light away from Prison Break and Mal Selamat saga. Its sad if you know if a friend or relative is in prison but jailed time spent would be worth if it is able to change a man’s life, and the lives around the man.

Another little incident that day for thought: While looking at when the rain would stop, a passerby threw the classified section of the newspaper on a bench and walked off hurriedly. An inconsiderate or courteous action? Well, I took that newspaper to shelter my head back home, then dump that into the recycling bin.

Eventful Weeks

The past weeks (not over a month) have been pretty eventful (writer’s side-thought: eventful sounds more positive than busy?).

(usual projects, schooling, concerts, performing and weddings… yadayadayada…)

So to shorten, the more important events (to me) are:

  • NOC interview
  • New facebook application: Boombasheep
  • NUSSO Concert: Flame of the Night
  • NUSSO Elections
  • Piano Exams

NOC interview
I’m grateful to be able to attend the 2nd interview. Questions asked were similar to the 1st, but I felt my responses were better during the 1st interview. Still, the interview teaches me lessons and gives me experiences, and the least I tried was to show my determination. Lesson from my dad remains- pray, try my best and expect the least.

Boombasheep
Screenshot
Boombasheep
is the name of the latest facebook application I developed together with Lester Chan, and my Zi han, my OG-mate. The objective of the game is simple and in fact brainless: a bomb is created with a time to explode, and so the parcel gets pass around. The idea came from Chua when we were sharing ideas, then I decided it was feasible. Although it was meant for my 3rd assignment, my personal objectives deviate from the assignment’s, but I believe our team were largely satisfied with the outcome.

Flame in the Night
Mr Lim and Me
Photo with our conductor, Mr Lim
Before this concert was NAF Opening concert, but this concert had the orchestra and committee preparing at least half a year ago. Although some might expected better, it was still a great experience for everyone and myself at YST’s concert hall and comments have been positive. The concert was also reviewed on The Straits Times. A pleasant surprise was I personally didn’t really expect my siblings and friends made out over 10% of the hall’s capacity (thanks for coming!). Photos here.

Elections
I got voted for Welfare Secretary post. Its my wish that I’ll be able to contribute as in the best of my capacity for the best of everyone.

Piano Exams
Something that I wanted to be over and done with since last year, and today’s the day. I feel indebted to many- first to the many friends who often encourage me. Auntie Fong who first persuaded me to take on, and buying the exam book for me, Uncle Yeow Whye, Auntie Alison who sponsored the exams, and recommended my teacher to me, my teacher Ms Winnie for her care and patience in these few quick and brief months, my parents for sponsoring the lessons fees, and my mom especially for encouraging me so much beyonds words and actions. The first piano exam in my life, things feel far from ideal, what only was familiar is the courage had to gut down failures when it comes again: hence preparing the worst is my unwritten plague to try again until success. (However, Auntie Alison cheerful declared my exams pass over the phone :p)

Closing
These are the times, stressful, challenging and trying. I ever thought if I would lose my sanity. Thanks be to God whose grace is sufficient for me. Battles continue with mid-term exams and assignments for the next 4 consecutive days. While the future and the many outcomes lies unknown, trust and hope needs to be learn.

Blog Posts on a Timeline

Its 2008, so wishing all readers here a very happy new year!

Yesterday, I touched about glancing back at a previous year (2007) , and one good way is to retrieve all the posts on your blog and place visualise it on a timeline. Of course there are other ways, say looking and sharing photo albums with friends could be a better way to bring back memories.

My Blog on the Timeline

I revisited Dandelife (A Social Biography Network?), and found that they have made more features and progress, compared to the last time I tried using it. Some features include importing “life streams” from flickr, facebook, blogs, feeds etc… anyway I didn’t manage to import my blog so I moved on.

Next I tired SIMILE Timeline plugin for Wordpress. Pretty good it seems, but I encountered couple of problems which i didn’t bother to troubleshoot and fix much. I considered implementing my own wordpress plugin when I got the idea to create a client which uses MetaWeblog API, so that it can work not only for my blog, but any wordpress blogs, blogger sites etc.

I will use the metaWeblog.getRecentPosts method to retrieve the post from the webservice. Since metaweblogapi is based on xmlrpc, I used the library phpxmlrpc. The data returned is then formatted as timeline xml to be used the timeline api (in my case I chose to truncate blog contents too). Pretty simple right?

Here’s my source code which I glued together quickly, isn’t too pretty, but works dandy for me. I’ve placed the script online, so you may want to try it.


<?php
/* by http://zz85.is-a-geek.com/ 31 December 2007 */
session_start();
if ($_POST['login']) {
	$reponse = blogconnect ($_POST['blogaddr'],1, $_POST['username'],$_POST['password']);
	if ($reponse->errno=="0") {
		$_SESSION['blogaddr'] = $_POST['blogaddr'];
		$_SESSION['posts'] = $_POST['posts'];
		$_SESSION['username'] = $_POST['username'];
		$_SESSION['password'] = $_POST['password'];
		showhtml();
	} else {
		echo "login failed";
		showform();
	}
} elseif ($_GET['js']) {
	$_SESSION['username'].$_SESSION['password'];
	printxml(blogconnect($_SESSION['blogaddr'],$_SESSION['posts'], $_SESSION['username'],$_SESSION['password']));
	exit;
}else {
	showform();
}

function blogconnect($link, $posts, $username, $password) {
	//requires xmlrpc.inc from http://phpxmlrpc.sourceforge.net/
	require_once('lib/xmlrpc.inc');

	// Using metaWeblogApi http://www.xmlrpc.com/metaWeblogApi
	$client = new xmlrpc_client($link);
	 $client->return_type = 'phpvals';
	 //$client->setDebug(1);

	 $params[] = new xmlrpcval("n/a");
	$params[] = new xmlrpcval($username);            //your wordpress login
	$params[] = new xmlrpcval($password);
	$params[] = new xmlrpcval($posts);
	 $msg    = new xmlrpcmsg("metaWeblog.getRecentPosts",$params);
	$response = $client->send($msg);
	return $response;
}
function printxml($response) {
	header('Content-type: text/xml; charset=utf-8');
	echo "<data date-time-format=\"iso8601\">";
	foreach ($response->val as $entry) {
		/*
		['dateCreated']
		['userid']
		['postid']
		['description']
		['title']
		['link']
		['permaLink']
		['categories']
		['mt_keywords']
		['wp_author_display_name']
		['date_created_gmt'] -8
		*/

		$description = htmlentities (substr($entry['description'],0,255)."...");
		?>
<event
        start="<?=$entry['dateCreated'];?>"
        end="<?=$entry['dateCreated'];?>"
	link="<?=$entry['link'];?>"
        title="<?=htmlentities($entry['title']);?>"
        >
	<?=htmlentities ($description);?>
        <?=htmlentities('<br/>by '.$entry['wp_author_display_name'].'');?>
</event>
		<?php
	}
	echo "</data>";
}

function showform(){
?>
<form method="post">
Blog Address: <input name="blogaddr" value="http://yoursite/blog/xmlrpc.php" size="40"/><br/>
No. of posts: <input name="posts" value="100" /><br/>
Username: <input name="username" /><br/>
Password: <input name="password" type="password" /><br/>
<input name="login" type="hidden" value="1"/>
<input type="submit"/>
</form>
<a href="http://zz85.is-a-geek.com/">http://zz85.is-a-geek.com/</a>
<?php } 

function showhtml() {
?>
<html>
  <head>
  <title>Wordpress (MetaWeblog) API and Timeline API Integration</title>
   <link rel='stylesheet' href='http://simile.mit.edu/timeline/docs/styles.css' type='text/css' />
    <script src="http://simile.mit.edu/timeline/api/timeline-api.js" type="text/javascript"></script>
    <script>
    	var tl;
	var eventSource = new Timeline.DefaultEventSource();

	function onLoad() {
		createTimeline();
	}

function createTimeline() {
  var bandInfos = [

   Timeline.createBandInfo({
        width:          "25%",
	//timeZone: 8,
	eventSource:    eventSource,
        intervalUnit:   Timeline.DateTime.DAY,
        intervalPixels: 50
    }),
    Timeline.createBandInfo({
	showEventText:  true,
	eventSource:    eventSource,
	width:          "60%",
        intervalUnit:   Timeline.DateTime.WEEK,
        intervalPixels: 100
    }),
    Timeline.createBandInfo({
        width:          "15%",
	eventSource:    eventSource,
	showEventText:  false,
        intervalUnit:   Timeline.DateTime.MONTH,
        intervalPixels: 95
    }),

  ];

  // sync bands
  bandInfos[1].syncWith = 0;
  bandInfos[1].highlight = true;
  bandInfos[2].syncWith = 1;
  bandInfos[2].highlight = true;

  tl = Timeline.create(document.getElementById("my-timeline"), bandInfos);

  Timeline.loadXML("<?php echo $PHP_SELF; ?>?js=1", function(xml, url) { eventSource.loadXML(xml, url); });
}

var resizeTimerID = null;
function onResize() {
    if (resizeTimerID == null) {
        resizeTimerID = window.setTimeout(function() {
            resizeTimerID = null;
            tl.layout();
        }, 500);
    }
}

  </script>
  </head>
  <body onload="onLoad();" onresize="onResize();">
  	<h2>Laying Out a Year (2007) Full of Blog Posts on the Timeline</h2>
	Using Simile Timeline Library, Wordpress API/MetaWeblog API, and PHP to translate that into Timeline XML. <br/>
	<div id="my-timeline" style="height:450px; border: 1px solid #aaa"></div>
	<a href="http://zz85.is-a-geek.com/">http://zz85.is-a-geek.com/</a>
  </body>
</html>
<?php } ?>

So now, I can have twitter and blog posts displayed on the timeline. If I have the time, calendars and metadata would be next. But there’s also too many other data sources around. Emails- run a search on gmail. On handphone, view the calendar data and smses for a year. Photos: Run time view in Picasa. Diary: read. Gps: Color tag them on googlemaps? Too many! so I’ll be satisfied with the blogs posts on the timeline for now.

Happy revisiting your posts!

In Memory of Reuben Kee

A talented designer, potential game developer, 3d modeler,
a brilliant pianist, an aspiring game composer and musician,
a team leader, a sportsman,
a friend.

Reuben Kee

I couldn’t remember exactly where we met, but perhaps for a reason-music and an object-piano, we got to know each other and shared our interests.

In my faint memories, I believe I was a freshman in NYP, while Reuben was a year my senior, and we were going to perform for a graduation ceremony. He was playing solo on the piano, while I was playing in an ensemble.

“Are you nervous when you perform?”, I asked.
“I do not admit I’m nervous”, was his answer, and as time go by I understood more of that statement.

Both of us were in NYP’s Piano Ensemble, where he was the President before he graduated. We had the chance to perform in numerous occasions, and perhaps his biggest accomplishment was composing and directing a musical. Although his piano training stopped at grade 3, the skill he displayed with despite imperfect techniques at the piano always impress and win crowds. His towering figure and hammering with fast speed on the piano makes me relate him to Rachmaninoff. Surprising, despite his size, he way he speaks to me is usually soft and in fluent english. The music he played were usually his own arrangements from computer game music and anime soundtracks. His natural talent for music allowed him to play by ear, and coordinate different rhythms in both his hands with ease. At his home, he showed me works he perform and create on his Yamaha Clavinova. After Reuben’s National Service, he updated me that his career path was composing music.

Perhaps for one thing others might not remember for, but I remember he was the one who often designed beautiful posters, published them, and pinned over the notice boards in NYP, not only for piano ensemble but for the Dragon Boat club. Not only was he active in piano ensemble, and dragonboat training, he joined the cannoning activities in NYP. A reason why he enjoyed dragonboating and the training, he told me that an advantage he gain from the training was he gain much built and weight, much fitter than the skinny him when he was in secondary school. During his NS days, he continued to row in SAFSA, and he said he will continue to row.

During our NYP years, he would be training at least 3 times a week, and walking through the sports complex I usually see him training, and we would exchange greetings. Academically, we were in different schools- he was in School of Design, I was under IT, but we often pass each other at labs. Therefore, the interests we shared went beyond music and sports, and eventually much into design and technology. A little thing we shared in common, was playfulness. However, in NYP unlike usual ourselves, both of us experienced getting into trouble with the school discipline separately. In his case, perhaps he had to extend his stay in poly for a few more months.

There’s was a time, despite both our busy project days (Reu was working on a game for SAF for his final year project), we meet up and he showed me his lab and his work. I showed him how he could access his work back from home. I couldn’t remember because of that he helped me model a simple 3d teddy bear, when I was then still unfamiliar with 3d Studio Max.

It was interesting with the different paths we took, we still bump into each other in occasions during our NS days like traveling to our respective camps.

He must had his way to deal with his popularity, since he never put me aside and tell me he’s busy. His works he post online had great demand that he always faced trouble with exceeded bandwidth on his webpage. I introduced another friend (from lab4games.net now lab4solutions.com) who was able to provide the capacity in storage and bandwidth he needed and his site www.reubenkee.com stayed on until now. On his sites, are his recordings of his music, see some of his flash in action, and links to his mugen interest, and at the most recent, youtube videos. He devoted time to mugen, its a 2d vs style fighting engine (like street fighter) and he managed to create one of the best AI (artificial intelligences) for the characters (and perhaps only his reflexes could defeat his AI he created).

There could be much more to say, and much more to know by reading the papers and from others who would know him better than I do, just that this is a account of our friendship.

On the news flash the shocked many Singaporeans, was that 5 members of national dragon boat team were missing after the boat capsized. They had completed a race in Cambodia for a festival, a wave hit them, and all fell into the water. 17 members were rescued and treated for injuries. On Sunday, bodies of 5 missing members were found.

That night the bodies were found, I logged on friendster (something I do only in a blue moon) and there were 3 observations.
1. There were hundreds of farewell messages for him.
2. He posted a photo of us which I did not remember seeing it before.
3. Last login showed: “2 Days Ago”.

me and reu

When thinking of Reu, I wondered how was his final moments like. Perhaps the impact was enough to give a knock out, perhaps a current were dragging them, perhaps fatigue after race render him unable to keep afloat. 12 years ago, I experienced drowning, but I was saved and it was my turning point in life. During those moments, my life flashed through my mind. I do not know however what exactly reu experienced because it wasn’t me, but now 1 thing is certain. For reu, it was his final point in life on earth.

I know not how to carry on in this post, so I would quote my friend’s post after someone she knew passed on.

It reminded us of how fragile we are even when we think we’re invincible at times. We so often assume we’ll live to a ripe old age, but in reality, our lives are not in our hands.

Life is short. Do you know where you’re headed? I sure hope you do.

For what is your life? It is even a vapor that appeareth for a little time, and then vanishes away (James 4:14).

Finally, we ought to know and remember

Salvation belongeth unto the Lord

(Psalms 3:8)

Blessed 22nd

Thank you,
to all who gave me birthday wishes.

Happy Birthday

Thank you,
my brother and sisters, dad and mom;
for buying this cake, for celebrating my birthday,
in the fashion of authentic tradition of our family.
22nd Birthday

Thank you,
my fellow brother and sisters in Christ,
for gathering in my school;
for the cakes and presents,
and the company over lunch.

Thank you,
friends from nusso,
for treat out to dinner,
for the walk along singapore river.
Clarke Quay

Thank you,
other individuals who have gave me presents;
Mr Jon Tan, Pei Juan,
and for all friendship and help I never repay.

Cool Gifts

Thank you,
to those who encouraged me;
in my difficult times in school,
and when you learn of my miserable test failures.
Maths Test Fail

Thank you,
for the encouragements in the Lord;
for Sock kwin for sharing your experiences in pain and failures,
and the lessons from Proverbs 3:5-6;
from another, an encouragement from Psalm 31:24,
to be Strong.
SK Present

Thank you,
all those who care and hope for me,
with unspoken words,
with unheard silence,
and long suffering;
2 of them, my earthly parents.

Thank you,
for those who are patiently reading this.

Thank you,
Dear Heavenly Father,
Light from above
despite my worthlessness and unfaithfulness,
thou hast shew me countless mercies in the 22 years of my life;

the glimpse you give of your goodness,
for family and friends; and the showers of love and warmth;

the chance you give to appreciate your greatness;
by the beauty of the world you give us as a temporary home.
Rainbow
Its a beautiful rainbow. Pardon the bad view and quality

Thank you!