Rethinking Blogging
31 October 09 07:00 AM | adrian | with no comments

Yes, you guessed it right, these are the times that my blogging frequency dips. I had this before, Scoble had it, everybody else did. Be it work schedule, a new toy to play with, or just plain laziness, blogging doesn’t seem to be hip anymore. I no longer enjoy reading most blogs, but those which I do enjoy keep going strong. So, close to the fifth birthday of my blog, I’m rethinking the whole concept of blogging.

Blogging20

Combination of Courier New (introduced on Windows 3.1) and
Consolas (introduced on Windows Vista, 15 years later)

Content

The main thing about blogging is the content, as always. You write stuff. This kept it unique from other means of self-expression on the web. A long time ago, blogging is a cost-effective way of moving information around. Text is small in size and easy to digest. But when bandwidth price went down, people suddenly have the ability to start uploading terabytes of multimedia.

The iPod came and podcasts too. Then Youtube took off, consuming even more bandwidth. Then smartphones and iPhone , then Twitter and other micro-blogging clones, then their derivatives. I’ve tried almost all of them. Nothing feels more home then a blog.

Podcasts took too long to listen, and the idea of multitasking while listening is totally absurd. You can either do one or the other, not both. Youtube took too long to stream, and if you actually do have proper bandwidth, it’ll be in the location where too many people can take a peek at what’s playing (think the office’s unlimited 24Mbps line). Micro-blogs were cool, you can blast whatever you’re doing to the world in an instant, but then information overload happened.

What’s good from the blogs that I like is that it actually uses multimedia coolness without being dependent on it. Some pictures are good (think Flickr blog), one video per post is a bit too much, and podcast can be done on weekends to recap over what happened (think Engadget podcasts). A lot other put tweets on sidebar as an easy solution to keep the “always updated” look.

Conclusion, text-only is boring, but too little text is cheesy (think Friendster and Myspace). Balance them out.

Comment

One of the value propositions of blogging was being able to solicit public opinion over what you have written. They will agree, then disagree, then flame each other, then realizing that the whole conversation was just useless, they died down without resolution. Even worse, the commentators did it anonymously.

While commenting was a good driving force behind the popularity of blogging, after some time, some people hated it. They said, commenting on a blog is an irresponsible behavior due to the lack of attribution/reputation (citation needed). Sure you can allow comments only from a reputable group, but that’s not the point of having the textbox there in the first place, right? So those people advocates you to write your own blog post on your own blog instead of writing a comment, and then create a trackback to the original post. By being written on your blog, you explicitly state that this is your own opinion and not some randomly smart bystander-Joe. Some did this, some not.

Now we have Twitter. And Facebook. You can, basically, put a link to someone’s blog and comment about it. My gut feeling says that this is an acceptable behavior, as you will be putting those comments together with all of your other stuff (not with other junk comments written by a spambot on the said blog post). Was thinking about a way to extend trackback to incorporate these, found out Scoble did it with his “Reactions” feature. Note to self: copy, no, steal that feature.

If required, create a follow up post addressing the comments. More quality content your way.

Conclusion, no direct comment under the post, but provide other means (including e-mail feedback). Keep your posts clean.

Tags

Open ended categorization, what an oxymoron! Tags are good if you have a lot more content than your tags. If you have more tags than content, well, that’s not a categorization is it?

I fancy how StackOverflow use tags. You may pick any, but not more than five, and only from a predefined list, unless you’ve gained enough experience to understand how tags work, only then you can create a new one. There were even occasions where a certain tag or tags are combined into one, more general and popular, tag. On the other hand, Flickr has open tags, but the amount of content is just overwhelming. They just hit 4,000,000,000 images on mid-October 2009.

Conclusion, if you’re the only one producing your content, don’t bother with tag. Stick with age-old categorization instead.

Feeds

They are more relevant than ever. RSS was huge, but now that everyone has it, why not provide JSON?

JavaScriptObjectNotation is the currency for JavaScript (which is the lingua franca of the Web 2.0 world). You can speak JS, but without the currency, you worth nothing. Exposing JSON will make people with extraordinary talent in JS-speaking loves your blog because they can consume it easily on their own app.

The question then: do we syndicate full text or just some partial, teaser text? This is a very sensitive issue for content producers which depends on advertising income. Provide full text and there will be no page view. Provide partial text and people get annoyed. Even worse, provide only title. For this time being, I tend to side with those who provides partial text, but not without reservation. The partial text should be written well enough to imply the real content without revealing too much (lest your reader will not read it wholly), like writing an abstract for a paper, or like the first paragraph of this post.

Conclusion, more format is always welcome, carefully constructed content is win.

Other Stuff

If I forgot any element, then that element is either too small to care about or is just a gimmick that won’t have any real effect on your blog. Disagree with me? Post your own set of criteria.

Now given my criteria for a blog, any engine worth trying?

Share this post: | | | |
Filed under:
RIP Edit
13 August 09 07:46 PM | adrian | 3 comment(s)

Today, I found out that Windows 7 killed the Edit application and forced me to use Notepad for simple text editing. FML.

Edit1995

RIP Edit, 1991-2009.

Share this post: | | | |
Kyoto Garden Waterfalls
31 July 09 04:19 AM | adrian | 1 comment(s)

Kyoto Garden Waterfalls, originally uploaded by Adrian Godong.

Testing Flickr post to MetaWeblog API.

Share this post: | | | |
Embedding A Valid XHTML Video
12 July 09 06:45 PM | adrian | with no comments

Writing a valid XHTML web site is hard, adding valid XHTML user generated content to it is even harder. One of the most annoying widget to validate is Youtube. Youtube provided an embed code, something like:

  <object width="560" height="340">
    <param name="movie"
value="http://www.youtube.com/v/uqeSnKmmv1k&hl=en&fs=1&"></param> <param name="allowFullScreen" value="true"></param> <param name="allowscriptaccess" value="always"></param> <embed src="http://www.youtube.com/v/uqeSnKmmv1k&hl=en&fs=1&"
type="application/x-shockwave-flash" allowscriptaccess="always"
allowfullscreen="true" width="560" height="340"></embed> </object>

That is hardly valid (because of the embed tag and src element on the tag). Based on several sources, I’ve put up together a cleaner, simpler code snippet for valid Youtube video.

  <object type="application/x-shockwave-flash"
data="http://www.youtube.com/v/uqeSnKmmv1k&fs=1"
width="500" height="400"> <param value="http://www.youtube.com/v/uqeSnKmmv1k&fs=1" name="movie" /> <param value="true" name="allowFullScreen"></param> </object>

For your convenience, I have also put together a plug in for Windows Live Writer to insert this snippet. Download here.

Share this post: | | | |
Online Banking Experience
15 May 09 01:04 AM | adrian | with no comments

When Bill Buxton kicked MIX 09 off with User Experience theme, I can’t stop thinking about how UX is so obvious but easily forgotten by developers. One thing that came into my mind lately was my online banking experience.

As a background information, I have used several online banking applications, sadly, none provide the ultimate experience. When I talk about experience, I’m talking about ease of use and peace of mind when using it.

For this writing, I’m focusing on how each system treats users when interacting with it, focusing on authentication.

Bank Niaga

Bank Niaga is an Indonesian local bank. I opened an account with the bank for my first job salary credit. The company refused to use another bank, thus so it went.

They don’t offer free account but comes with free online banking. If I remember correctly, they only provide one factor authentication, username-password. I have used it once or twice to check whether my salary is properly credited, but after a while, I forgot all information regarding my account even though it is still active.

Moreover, they have been constantly sending notification e-mails regarding URL address changes (I received three or so this month) due to vendor switch I presume. That was really confusing. Can’t they buy a proper domain and redirect from there (if anything change)?

Verdict: simple but useful when you use it often, but people can forget username-password combination.

Bank Central Asia

BCA is another Indonesian local bank. This is by far the biggest consumer bank, and the best network in Indonesia, so no reason not to have an account with them.

They don’t offer free account but comes with free online banking. You also need to pay the token for multifactor authentication. They use two factor authentication; username-PIN and token. They have a dedicated domain name for the application. Currently, I forgot my username-password combination and the account is probably locked out.

The most annoying part of the experience is that you always need to have your token ready for almost all transaction you’re making. Usability of the token is appalling, because it tries to be smart without being helpful (i.e. does not adhere to KISS principle).

Verdict: almost downright useless but the sense of security is everywhere because all transaction needs to be authenticated.

DBS Singapore

DBS is a Singapore bank with branches in several countries, I’m using the Singapore branch online banking application. It has the best network in Singapore.

They offered free account, free online banking, and free token. They use two factor authentication; username-PIN and token. The token is only used during authentication.

The annoying part of the experience is that the authentication uses a Java applet. If you don’t have Java installed or for some (unknown) reason it doesn’t run, you can’t use the application.

Verdict: more usable than two Indonesian banks, if and only if all the support components work.

Citibank Singapore

Citibank is a US bank with branches in several countries, this section is for Singapore branch application.

They offered free account, free online banking, and free token. They use two factor authentication; user ID-PIN and token. The application has two good usability points:

  • Instead of username, it uses your card number as your ID. You can’t lose your card number.
  • The token is used the first time you want to see details such as transaction history or do transfers, but not if you just want to see your account balances on the home page.

But, there are also two annoying points:

  • It uses on screen keyboard to key in PIN, nice if you have tablet, but painful if you’re using a mouse.
  • The authentication uses a Java applet. If you don’t have Java installed or for some reason it messed up, you can’t use the application.

Verdict: better than DBS most of the time, but with additional annoyances.

HSBC UK

It’s hard to say which country HSBC is from, so I’ll just call it international bank, like how they want to be known as.

They don’t offer free account for foreigners but it comes with free online banking. They are using one factor authentication: a combination of user ID with birth date and PIN. They are not using any applet to authenticate it.

The user ID is randomly generated, thus quite safe to write on the card (by being not related to anything I own/know). I do have a negative feedback; the system doesn’t require you to enter your whole PIN number (for security purposes), instead only requiring three out of six. The problem is, they address the numbers to enter by using text ordinals like “first”, “second last”, etc. It would be helpful for me to also have graphical representation of which number enter.

Verdict: the most usable of all so far.

Citibank UK

Citibank is an American bank with branches in several other countries, this section is for UK branch application.

They offered free account with online banking. They use username-password and additional personal information. They also uses an on screen keyboard for the password, now full keyboard instead of number pads (like the one from Singapore) because the password is a string not just PIN.

Verdict: less usable than HSBC, because of the additional annoyances.

The Ultimate Experience

Well, learning from all the systems, I would like the banks to build an authentication system that is perfectly usable without being insecure or annoying.

  1. I would use a username / user ID that I will never forget. Citibank Singapore made a big win on this point by using your card number instead of some random string. You will always have access to your card, it doesn’t have any personal info, it’s just always available.
  2. I would use birth date and personal information as “password”. You will never forget your birth date or your primary school town name or your mother’s maiden name, for instance.
  3. For multi factor authentication, I would use a simple One Time Password token with additional alternative mechanism such as OTP via SMS or e-mail.
  4. Don’t annoy user by keep requiring them to enter codes after the first one, instead implement short timeout. I would prefer be punished because of my slowness (that causes a timeout) instead of my impatience.
  5. Don’t use Java or on screen keyboard whatsoever, it is plain PITA and doesn’t really help security. Instead, use partial numbers (like HSBC) and invest on SSL!
Share this post: | | | |
Unhandled Overflow
21 April 09 03:44 AM | adrian | with no comments

Happened earlier this morning, I stumbled over a piece of code that looks something like this (can’t remember from where):

var x = 1;

var y = int.MaxValue + x;

Scanning the code, I was actually expecting an exception being thrown by the CLR. Well, apparently not.

The result of y on the above assignment is -2,147,483,648, or in binary 00000000.

For those uninitiated about how addition works inside a computer, here’s a quick take:

  1. All things in a computer is expressed in a binary format. So for example, 3 in decimal equals to 11 (one-one, not eleven) in binary.
  2. When you add, do a usual addition, but if the result is 2, write 0 and add 1 to the next digit. For example, 3 + 2 (in decimal) equals to 11 + 10 in binary. Take least significant digit (the rightmost one), add, and move towards the left. The result would be 101 in binary.
  3. int in C# contains 32 digit of binary, a.k.a. 32 bit. Thus, the maximum value is 1111 1111 1111 1111 1111 1111 1111 1111 binary or 4,294,967,295. But since we need to take account negative numbers as well, someone devises a clever idea, anything with 1 on the most significant digit (the right-most digit), means positive, otherwise negative. Thus, 0 decimal starts from 1000 0000 0000 0000 0000 0000 0000 0000 binary.
  4. Now take int.MaxValue, and add 1 to it. The result would be 1 0000 0000 0000 0000 0000 0000 0000 0000 (1 followed with 32-zeroes). This will cause an overflow, which means more data than the memory can handle (which is 33 digit versus 32 digit). The processor ditches the rightmost digit, thus creating a variable that contains all zero. All zero = -2,147,483,648 decimal.

Now the worrying part is, .NET handled this too gracefully, and instead of throwing exception, it just removes the most significant digit. A coworker said, this was part of an Intel specification. Well, that means extra work for us! So if you aware that you are doing calculations on a large number, please check the result before using it. If you’re using int, you can use long as the result and check if it is within boundary of int.MaxValue (or int.MinValue depending on your situation).

Here’s the piece of code that somehow illustrates that idea:

function int SaveAddition(int a, int b) {

  long result = a + b;

  if (result > int.MaxValue || result < int.MinValue) throw new ArgumentOutOfRangeException();

  return (int)result;

}

Addendum:

Apparently there’s an additional keyword that requires these checks to be done explicitly. The keyword is checked, and more info can be found at MSDN. Phew!

Share this post: | | | |
No More MVP
02 April 09 03:40 PM | adrian | 2 comment(s)

Just now got confirmation from UK MVP Lead, Microsoft’s not renewing my MVP Award for the year 2009. That means, I’m removing all the MVP logos and stuff from this site and my sig.

But don’t worry, those are the only changes. I will keep blogging here and on twitter as well. Talks probably a lot less, since I discovered that the British talks a very different English! Now you may think Singaporean English is “different” enough (I’m not saying it’s bad), the British English is even more different.

Share this post: | | | |
Jumping to Twitter
20 March 09 04:34 AM | adrian | with no comments

Yes, I have been positively poisoned by people around me during daytime (i.e. work colleagues) to jump to Twittering.

From now on, I’ll be updating the blog less (as if it’s not already less) and the Twitter more.

Follow me on Twitter at http://tinyurl.com/dhg8em.

Oh and BTW, IE8 RTMed today, and is available to all Windows OS except Windows 7. *sigh*

Share this post: | | | |
MIX 09: ScottGu Keynote
19 March 09 01:27 AM | adrian | with no comments

Several big announcements just now from Las Vegas:

  • SuperPreview Beta: test out your web app rendering in different browser using one app, only IE6 and IE7 available in beta. Will be shipped with Expression 3. Download beta from http://tinyurl.com/c3fwsw.
  • StackOverflow is made with .NET and BizSpark. Runs 600k page view per day on two servers only.
  • Silverlight 3 Beta, the only beta until release later this year, is out. Download from http://tinyurl.com/dcs3fj.
Share this post: | | | |
Hello London!
01 February 09 06:08 PM | adrian | 2 comment(s)

If you're reading this, then most likely I'll be setting up my new humble (rented) home in London. Yes, I am moving to London as of today.

First impression is... very London. Not much different than all the movies we have watched about London, but of course, all in the movies are better portrayed. The first "ugly" thing that hits me today is train services not running. You'll have to take another detour services with a lot more hassle than originally planned. But, of course, being a 100 years old train system, I'm amazed it's even running efficiently on a day to day basis (today is excluded because it's weekend where all the engineering works are being done to minimize the effect).

And it's damn cold when the wind blows (but if it doesn't blow, it's not that much different than 17 degrees Celsius at mountain peaks).

Share this post: | | | |
Filed under: ,
Reviving The Workstation
13 January 09 10:36 PM | adrian | with no comments

Well, some of you may know that I'll be doing my pet project again now that I'm free of day job. To do that, I will need a workstation.

For the past year, I was stuck to my trusty laptop for all code/net/entertainment function. It does the job, but just.

I can definitely code small projects on it, I can surf the Internet (now with Google Chrome, everything seems faster!), and I can run Colonization for DOS on it (WTF!?).

I can't run full blown project with TFS + SQL + SPS + VMs. I can't run Google Earth any faster. And I can't run the latest game (such as Fallout 3) on it.

So going back home, I was thinking about reviving my old desktop as a gaming *** working rig. The story of my old desktop went back from my university days... (went flash back)

Being a poor student back then, I can only put the best CPU on my desktop. I can't afford more memory, I can't afford GPU, I can't even afford a new hard drive! So the first inception of the machine was a high end CPU on a low end setup. Below was it:

Intel Pentium 4 3.0E GHz (it's the second best of its class, the one with Hyper Threading technology) + Intel D865PERL (I guess Intel and Intel makes a great combo) + GeForce2 MX 440 (hint: it runs Counter Strike) + 512 Mb of RAM + Maxtor 60Gb (it was Maxtor's age).

It ran Windows XP, VS2003, and Counter Strike. I even had a CS party at the university lab with this rig.

After saving enough money for some upgrade, the desktop finally got a little more juice. GeForce2 is out in favor of newer but low end GeForce FX5200, and I also slapped in 2x512Mb to make it 1.5Gb in total. The HD was failing, so I've made a trade in to Seagate 80Gb (Maxtor was bought by Seagate). I've changed the power supply to ThermalTake 450W since the previous one failed as well.

It ran Windows XP and Windows Vista, VS2005, and still, Counter Strike. Although newer games like Need for Speed: Most Wanted and Company of Heroes runs as well on lowest settings (with occasional graphic glitches).

Afterwards, I went off to Singapore. Add one year plus, before I went back, I bought some more juice to finally put the platform to its ultimate settings... (went back to current time)

The FX5200 is out in favor of ATI Radeon HD3850 (yes, they made this beast chip in AGP flavor!), and I slapped in 2x1Gb to make it 3Gb in total. This is the best value combination for 32 bit system, more than that and it won't be detected and won't make much difference.

It now runs Windows Vista (and Windows Server 2008 in VPC), VS2008, and of course, Fallout 3 (by the time of writing, I've already reached the end)!

Here's a shot of the Windows Vista Experience Index, as you can see, the only component not upgraded (CPU) has the lowest score, while the high end GPU maxxed out Windows Vista index.

Revived Rig

Looking back, I've always cherished buying the first setup. It was an aging platform for Intel 865 (Pentium D with Intel 875 was going mainstream), but I got the second best processor available for it. It was still a bit expensive, but not that expensive for such power. And it's expandability is still going strong even until today, five years down the road.

Of course, I won't be bringing this desktop to my next day job. It's too big to bring, so I'll be building up a new one! But that's another post altogether.

Share this post: | | | |
Filed under:
Logics: SQL or Code
11 January 09 01:32 AM | adrian | with no comments

One of the common pattern I found during my enterprise application development last year was moving the bulk of the logic to the persistence layer using SQL. Thankfully, we're a .NET shop so I wrote T-SQL mostly. But the question then: does 3-layer separation architecture really fits enterprise scenario?

Before answering the question, I would like to give some perspective on why logic was moved to database layer.

The first encounter was performance problem. The logic involved a huge data set (not System.Data.Dataset object), do complex operation on it, and return a set of data back as an output. In this scenario, putting the logic in the code will not make much sense, because obviously we will lose performance gains from large data set operation optimization you're buying from the database server vendor. If you're not using this DB feature, might as well convert your persistence layer into XML file.

The second encounter was logic protection. The client defined two separate teams, in house developers doing SQL, consultants (that's me) doing front end. The SQL will contain sensitive logic and will not be accessible from outside the server, in other words, I can only execute a SP but not open or modify it. In this scenario, putting the logic in the SQL will guarantee code security, controllable by ACL on the server. This is safe, unless someone hacked into the server, of course.

Now in both scenario, it's perfectly okay to place your logic in the persistence layer, or should I say it "persistence-logic layer". Just as UI layer may have additional UI-logic layer, so does this.

To give a balanced viewpoint, I do use 3-layer architecture. I believe that persistence layer should provide only basic CRUD operations (get, add, update, delete). These operations will then be orchestrated by the business logic layer. The problem is, for some scenario, the orchestration was very complex, that the benefit of having clear division of responsibility in terms of small functions outweighs the performance hit it cause. When it hit this stage, only then we can move the logic closer to the persistence layer.

So the answer to the question at the beginning of the post is: it fits, up to a certain extent. These patterns are for reference purposes only, and does not always mean that you have to follow it to the letter. Be flexible, and pick the best solution for any problem.

Share this post: | | | |
Windows 7 Beta is Out
08 January 09 10:47 AM | adrian | 1 comment(s)

Available now for early adopters via Connect and MSDN/Technet Download. Available to public next Monday.

Connect site:

https://connect.microsoft.com/windows7 (registered user only, use the download link on the left hand side)

MSDN/Technet Subscriber Download site:

https://msdn.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=36:350

or

https://technet.microsoft.com/en-us/subscriptions/securedownloads/default.aspx?pv=36:350

Share this post: | | | |
HOWTO: Work in Singapore
08 January 09 10:09 AM | adrian | 3 comment(s)

I've promised this post earlier, so here it is.

Well, the first step is to go find a job! I'll tell you a secret, Singapore is so damn small that they have to rely on foreign talents to grow their economy! I've worked with different teams in Singapore, and this holds true... there are hardly any Singaporean in all of my teams. The majority are foreigners, so don't be discouraged.

Finding a job in Singapore is also easy. There are several Internet sites providing job vacancies, on top of my head are www.jobsdb.com, www.monster.com, and www.st701.com. But of course, not all company in Singapore is good company. I've heard horror stories from other Indonesians in Singapore regarding their employers. So do your homework! The company you're applying to should have at least a decent web site. Why? Because Internet in Singapore is so reliable that if you find some business with ugly or no web site at all, that business is guaranteed a very shady business.

There are two kinds of employer in Singapore, direct employer and agency employer. Direct means you're working for your employer, while agency will somehow act as an intermediate entity between your true employer (which the agency call client) and yourself. There are different pros and cons between the two, but most of the time they're well balanced. So it doesn't really matter between the two.

After you found a nice job in a nice company, the next part is applying. Now ditch that templated resume or CV, start fresh! There are a lot of good samples of great resume out there in the Internet. And keep this in mind, your resume should be unique for each job you're applying. This is because every job is unique as well! You don't want to let the recruiter feel that this is just another applicant, right? Do sharpen your English as well, Singapore is first and foremost an English speaking country. Mandarin Chinese and Malay are secondary, you don't need it to survive, though knowing a bit will help a conversation!

If that step went through, next part will be interview. Your first interview will be most likely over the phone. Now let me tell you, Singaporean English (called affectionately Singlish) is awful. It's not even close to their British roots! No matter how good your English is, you will find it hard to understand what they are talking. This is normal, and nothing to worry about. As long as you speak good English, they will understand you somehow. My trick was using e-mail as primary communication, since almost everyone have and read their e-mail, it can even be considered as legal evidence.

Other than phone interviews, sometimes (but not always), you will need to do physical interview. If you're reading this now, most likely you'll be able to get there cheaply because our exit tax is finally exempted! The cheapest way to get there was by plane to Batam and then by boat to Singapore, but now things changed. Cheap airlines and free fiscal tax is definitely worth thinking about. And of course, it's always a good thing if you can do more than one interview at the same time.

Now, if everything is good and you're about to sign on the dotted line, a.k.a. employment agreement, do think about living costs in Singapore. Last year, living in Jakarta is cheap, dirt cheap. I barely hit 1 million rupiah on monthly expenses (excluding place to stay). Hitting Singapore, it rose to almost twice that amount for living cost (excluding place to stay). But now that I'm back to Indonesia, I can tell that now it's not much different. Jakarta is as costly as Singapore, excluding place to stay. If your salary is enough, then by all means, proceed to legal issues!

Every foreigner who works in Singapore will require a work permit. There are two types, S Pass (SP) and Employment Pass (EP). SP is meant for skilled workers, fresh graduates with less experience, while EP is meant for professional workers. The difference between the two are how many of your family member can go with you to Singapore. And of course, having an EP is considered more exclusive. Application for work permit will be done by your employer, you'll just need to sit tight and pray a lot that everything is smooth.

While waiting, it's a good thing to start looking for a place to live. Two paragraphs earlier, I have never included accommodation into the living cost. Why? The answer is simple, it's because accommodation in Singapore is very expensive. I rented a room which monthly cost is as much as one year cost back home! The solution to this is simple, either you pay that much (and lose more money from entertainment and savings) or you move to farther area from the Singapore CBD (and lose more time in transit).

My personal advice on accommodation, as long as it's close to the MRT station and cheap, take it. It doesn't really matter much where because transportation in Singapore is extremely efficient. You can go from one side of the island to the city in half an hour, dramatic improvement over transportation in Jakarta which took more than an hour going from anywhere to anywhere! But then again, it depends on personal preference.

Speaking about accommodation, there are several types of house you will find in Singapore. The most common and the cheapest to rent is HDB Apartments. These are government subsidized housing, sellable to Singapore Citizens. You can't buy this yet, but there are a lot to rent. A level above HDB are private apartments. These range from low rise to high rise, no facility to full condo facility (like swimming pool, gym, etc). A level above that are landed houses, something that we call a real "house" back here. These landed houses are expensive, far from any public transportation (as they are meant for people rich enough to buy a car).

After your permit is approved, you can proceed to Singapore using a social visit pass (a.k.a. tourist visa), and do a medical examination. Proceed to any big hospital and they will know what to do. This usually takes three days, but there are options to pay more for overnight process. This is something you will see a lot in Singapore. If you want it quick, you can pay more than others. A system that is very similar to the one back home called bribery, but this one is more organized.

After everything is complete, you may then proceed to Ministry of Manpower to claim your work visa (to replace the tourist visa) and then immediately start working! Congratulations!

I realized I haven't even talked about living in Singapore and the differences with Indonesia. We'll save that for the future post.

Share this post: | | | |
Fourth Birthday
21 December 08 10:19 PM | adrian | with no comments

OK, this date a year ago was the third birthday. This date two years ago was the second birthday. This date three years ago, was the first birthday. This date, four years ago, I've started to blog here.

All through the year, I've been blogging from Singapore. It's not the best year for my dear blog, with technical glitches on the servers (yeah, some brands are just not meant to be servers) and also uneven work-life balance (more life, but no blog post).

I'll be leaving Singapore soon, but it'll always be on my go to list for future holidays (I love the convenience of this island). What's up next? We'll see after new year! Meanwhile, happy holidays for everyone!

Share this post: | | | |
More Posts Next page »