Bukit Tabur Hike (photoless post)

I’m petrified.

Looking down all I see is the hundred feet sheer drop, and between us is just a rope and two slanting rocks that I have to descend. I’ve had half a mind to give up, but I’m already hanging precariously on the rope, and there is no way up. The only way is down and forward, yet fear cripples your every step.

Bukit Tabur is not an easy hill to climb, especially for first-time-hikers and people who are afraid of heights. Rocky and steep cliffs litter the trail and there is only your hands and legs that keep you tumbling down to the bottom. You hang on for dear life on those little crannies you dig your feet and fingers into, hoping the stone will be strong enough to hold your weight. You pause every moment or so to catch your breath, and you inevitably look down and back. You cannot believe that you have just made through that crazy ridge with a 80 degree cliff, but there’s more to come.

I ask my friends, “How long more till we reach the next peak/descend”, and the answer is almost always a lie, “We’re almost there”.  But it’s a lie that keeps you moving on.

Bukit Tabur has 5 “peaks” on its ridges, and you had to get through all of them to reach the descending trail. On the 3rd peak we were unable to find a way to the next peak, or a way down, and we just came down from a rope descent which was almost impossible to climb back up again. Stranded here, I felt a pang of despair, as my friends Edward and Koo tried different routes and that seemed impossible to climb. For a lack of option, Mei-fern called up her friend and it was ascertained we had to really go through the next peak and there was no other way around it.

I heard myself curse a number of times during the hike. Never have I been so close to the fragility of life, just a step (or misstep) away.

My climb to the 4th peak was filled with fear. It was literally “rock climbing” as the cliffs were getting higher and so were the climbs. There were also less space for you to safely fall, as the previous are you were standing on was no more than 2 feets wide, with a steep drop on the sides. Loose rocks and slippery slopes were the mainstay of the trail at this point in time. Acrophobia kicked into full gear. I was literally crawling even on flatter surfaces. I wish I could just lay flat on the ground and not move at all.

I felt both relief and satisfaction as we made it to the 5th peak and we could see the descending trail. I had a moment of insight on life, “Sometimes a path in life seems impossible, but moving forward is the only way.”

Though, Bukit Tabur to some people isn’t as hard as I put it to be, dangerous as it may be. I’m probably just a new hiker, and my fear of heights isn’t going to help in climbing hills. Nevertheless, it was a great experience, and maybe it’ll start me on another adventure in life.

Web Design Service

I’m offering up some of my free time to do web design for personal websites and blogs.

I don’t really have any portfolio right now, so this chiawei.net, tfgnight.com, kooichin.net is designed by me.

I’m charging a very nominal fee of RM0.00(nothing!) for basic website design. If you require other stuff like SEO, jQuery, illustration/graphic design, multi-user etc, the options are always open to discussion.

I mainly use WordPress, but I can work with Tumblr or Blogspot. I focus on simple and clean designs, with emphasis on typography, readability, and ease-of-use/accessibility.

You have to have some kind of hosting, which you can get from ServerFreak, or Exabytes who are running a discount on Dealmates until tomorrow. I’ve been using ServerFreak and I find they’re reliable enough.
If you have a Tumblr or Blogspot site, then it’s not necessary to have hosting, unless you want your own domain name.

Though if you’ve a special project that needs help, I might just help you out for free. Just pitch your ideas to me.

Contact me via the contact form or twitter.

Sequentially fading-in tweets and loop

I just wrote a chunk of brilliant code!

I wanted to write a piece of code that did “fade in tweets one by one and loop after reaching the end” and this was the process.

var n = 0;
(function showt(jq){
	jq.eq(n).fadeIn(500).delay(500).fadeOut(500, function(){
		n++;
		if (n == 5) { n = 0; };
		showt(jq);
	});
})(jQuery('#twitter-3 .tweets li'));

I basically did this for tfgnight.com’s twitter feed to sequentially fade in recent tweets on the scrolling sidebar.
I initially tried using a while or for loop but it failed miserably because javascript doesn’t queue events in loops – it runs them as fast as possible.
Then I tried using setInterval, delay, setTimeout as timers, but they too failed badly because sometimes Chrome doesn’t count the time correctly when you shift focus away from pages.

Finally I found a piece of brilliant code in a tutorial for callbacks which was:

(function hidenext(jq){
    jq.eq(0).fadeOut("fast", function(){
        (jq=jq.slice(1)).length && hidenext(jq);
    });
})($('div#bodyContent a'))

This piece of elegant code is a simple self-running callback that first fades away the first element selected via eq(0), then slices off 1 element of the selected, then if there is still anything left, .length returns it to be true and it calls itself again. If there is nothing left, the function is returned false and it stops there.

Brilliantly simple, but of course I didn’t understand it until later when a guy called Kevin in the jquery forums explained it to me. The thread I made can be found here.

So I changed it to instead of slicing off each element, I merely selected each element via eq(n), where n is the nth tweet I wanted to pick. It started with n = 0, which was the first element, then in the self-callback loop I added a n++ increment, then if n reached the end, it should restart from 0. After that it calls itself again.

Queuing the events in this way was less prone to error since timing is notorious for screwing up if let’s say your CPU or browser decides to take a millisecond break, or if you decide to change the timing of the fadeIn or Out or delay you’d have to recalculate the whole thing again. Using this is much more dynamic!

I hope it helped for those of you who are trying to do something similar.

Tri-Factor Glam Night

My project for tfgnight.com

My project for tfgnight.com – a pretty simple but (I think) nice looking website. Uses wordpress and sandbox for the base theme, since it’s so much easier to code from scratch than trying to filter/hook frameworks.

My next project I’d like it to be like the nice inFocus themes by webtreats at mysitemyway. It just exudes elegance in simplicity.

Anyway – if you’re interested in modeling, photography or fashion design, head over to tfgnight.com – it’s a avant-garde concept in fashion nights, combining the whole package of models, designers and photographers as a team.

Doppelganger

Entering the lonely house with my wife
I saw him for the first time
Peering furtively from behind a bush –
Blackness that moved,
A shape amid the shadows,
A momentary glimpse of gleaming eyes
Revealed in the ragged moon.
A closer look (he seemed to turn) might have
Put him to flight forever –
I dared not
(For reasons that I failed to understand),
Though I knew I should act at once.

I puzzled over it, hiding alone,
Watching the woman as she neared the gate.
He came, and I saw him crouching
Night after night.
Night after night
He came, and I saw him crouching,
Watching the woman as she neared the gate.

I puzzled over it, hiding alone –
Though I knew I should act at once,
For reasons that I failed to understand
I dared not
Put him to flight forever.

A closer look (he seemed to turn) might have
Revealed in the ragged moon.
A momentary glimpse of gleaming eyes
A shape amid the shadows,
Blackness that moved.

Peering furtively from behind a bush,
I saw him for the first time,
Entering the lonely house with my wife.

by James A. Lindon