Monthly Archives: May 2012

Start at StackOverflow: go for the niche

At the end of a week, I often find myself struggling finding sometimes to write out some “good thing” – some of my experience which may be useful to others. I don’t have much time, but that’s no excuse for low-quality posts. I’ll try my best to make it as short as possible, but also enough for a good read!

Sometimes, I feel people have a treasure that they don’t even know. That’s knowledge. Don’t be too fast to say that our knowledge is not as much as Einstein, Khong Minh, or Obama… I can assure, with my very experience, every of us possess an unique set of knowledge of our own – and they are special.

Imagine that you and Einstein were thrown into a river… you will know what I’m saying about ;)

The same applies for programming. Now we have StackOverflow site as the river!

StackOverflow is one of the great Q&A community site. Its reputation system is good and simple, if only not for the high entrance fee. But I’m already here to help :)

Step aside and observe, you will see: besides lots of the question which get answers after few seconds, a lot of the remains get few of views, and eventually die out unnoticeable.

Why that happened?

It’s because in StackOverflow community, there are many of “sub-communites“: C# community, .NET community, Java community,… and then Zend, Grails, web community,… In strong communities, the answer rates would be a lot better, and it would be more competitive too. But in smaller communities (like Grails, and surprisingly, Facebook), the answer rate are much lower.

So if you are a new-comer, why not go to the “niche” market, which has less competition? Well, if you are a Java developer, I don’t recommend you drop Java to go for COBOL, but trying a new framework (Grails) or similar language(Scala) might be a good choice. People at those areas need help too!

I myself had a good experience with the Grails community. Sometimes I dive in solving another problem which I hadn’t met before, just for help other fellows. That feels really good. That’s also a good way to learn, after all.

Google I/O – Another clever thing by Google

Google is famous with their cleverness – to make little happy joyful things. We developers are all familiar with their tricks, such as “snowy day” , or “do a barrel roll”.

And it’s time for a new trick!

Google IO Game

Google IO Game, Google IO Game

The purpose is simple: get the ball from “input” to “output”.  You are given a variety of “pieces” to make your machine. The pieces include redirectors, elevators, walls,… and so on. Can you make the best machine with only fewest pieces? Let’s try!

Some beautiful machines:




Coding in 1990s – The email Wild West

Creating an email isn’t hard. Creating a good one is.

That statement is very true, especially for HTML emails.

It has been a while since the first time I worked in creating campaign emails. Looking back, it’s a journey of many surprises, even pains, and of courses, lots of interesting experiences… Those are what I’m going to share here.

Email is a strange thing in our technology world. While almost everything get changed day by day, emails we get today are nearly the same as the time they were invented. And not for any good reason.

I guess there are some interesting facts about emails that many developers don’t know:

1. You can’t check if an email address is actually a real email,without sending a confirmed email.
2. Anyone in this world can fake your email address fairly easy. And currently, there’s no reasonable way to tell that an email is actually from an address or not.

3. HTML emails are poorly supported. They have none of the good enhancement that HTML achieved in recent years.

Well, first point first. Currently, the only way to check that an email is valid is: send some “secret message” to it, then if you receive that “magic message” from someone, he/she must be the owner. That’s exactly how confirmation emails work. Remember the last time you register to a forum/website ? Now you understand why.

At first it seems reasonable, but it leads to a funny similarity: you can only check if an address is valid only if you go there. With our advancement in GPS technology, this fact is quite a fun story.

Didn’t the email creators realize this restriction? No, they knew it from very soon. At first, every email server has a utility to check if an email which has domain address belongs to that server is eligible. But with the movement called SPAM MAIL, they one after one turn that function off. A step back in history, IMHO.

Point 2 WILL make many people shocked. Any email can be faked? Yes, I confirm this fact again and I mean it. That means I can send you an email with the address of Obama, Clinton, Bill Gates or Nelson Maldela… you can never tell it out,at least with the current state of our technology.

The reason is that our current email protocol has no reliable method to tell where an email come from. If an email server receive an email which tells that it’s from, the server believe it right away. Some email clients may try to check, but what they do are purely heuristics, like checking the sender server in blacklist or not… In my experiments, even yahoo and Google didn’t realize the “faked email” and consider them “valid” emails!

Only recently,Gmail makes some improvements and “detect” the fake emails ONLY IF the sender is also But it can’t give strong confirmation either, since in some forwarding mail case, the syndrome are same.

Point 3,HTML. In our “modern” email clients, the HTML headers are often striped off. That means no css file AND no header css. So what? Hundreds, no, hundreds of thousands lines of inline styling, which is the nightmares to normal web developers. They are not only duplicate, ugly, but also take lots of our precious web bandwidth. Moreover, table layouts are very popular in html emails, since the html parser in current email clients are just old and can’t parse div layouts accurately. Quite funny, Mr. Table tag found a hide out, after becoming history in the mainstream web development.

That’s just several holes in the design of our email technology. Surprisingly, people seem to be happy with patches, but not a re-design. They continue making marketing emails which looks very good at interface, but unstable in their bases. Running around popular email clients (Gmail, for example), they put enormous effort into beautiful email templates, without noticing that they are encourage for a bad practice.

Emails, as a protocol, should be valid and easy to use, to everyone.

Above problems are also the reason why some senior developers tell that we should always use plain text emails. I would prefer that approach as a developer, but I understand that in business reality, we usually need more than text.

And don’t forget, in near future, mobile’s emails would be a hot topic.

Made by my androids.
For the upcoming birthday