Dropbox 2.0 in Mac ejects itself

That’s a really nice touch. After installation of Dropbox 2.0 in Mac, it ejects the .dmg for you. I do the usual — you know — after install, eject the .dmg file. I’m pleasantly surprised I don’t have to do that. That’s a great experience you gave me as a user. Although in all good intentions, I wonder does that mean applications can eject my external hard disk should they choose to.

Still it’s a nice touch and I will remember it as that. And the new user interface for Dropbox is amazing too. Kudos there:

Dropbox 2.0

With the recent USD100m acquisition of Mailbox, I am excited to see what’s coming up next.

Notes on frontend development

I’m a Web UI Developer in Singapore and I realized frontend development has gotten really complex. It wasn’t far long ago when users were bitching about Internet Explorer. Today’s Internet Explorer is becoming a better citizen and whoever still screaming about its deficiencies apparently aren’t realizing the bigger issues with UI design in general.

Your pixel is not a pixel

The new issues are resolution independences. Much of the web is still defined by pixels and this no longer makes a lot of sense given Apple having their Retina displays and Samsung having their high resolution Samsung Galaxy S4 coming to Singapore soon. One pixel is no longer one pixel any more.

And given the higher resolutions, the devices do deserve better images. Sometimes this acts as a competitive advantages, your icons are prettier than your competitor, it shows dedication. The issue is not every device support such high resolutions and sending these images to them is just a waste of their bandwidth. Lower end devices might not have LTE either. There’re lots of CSS tricks and JavaScript detection methods to deduce the device capabilities and these workarounds aren’t the most elegant.

DevOps dude says lower number of requests per page

Mobile also has a new priority, to come up with icons all embedded into one image file. This lets the server only load your sprites just one. Sounds like a good deal? It really is, only problem is putting up with the hassle of doing background-position. It’s just too tedious. UI developers struggled and there are better tools to automate this process now.

Backend development might be a little easier these days

Contrasting to backend development, frontend has a different sort of complexity. The challenges of UI development is always learning new technologies and how to achieve productivity through embracing these technologies. There’s often a set back initially and we have to discover (or even make our own) automation tools to remain as agile while still delivering within our deadlines. If you don’t do that, you just can’t survive for long.

Tools of the trade

This is a quick update of the tools I used these days. I am a web user interface developer now so some of these tools might be kinda niche!

  • Text editor: SublimeText 2, because it loads fast and I swear by its open by file name feature
  • Computer: MacBook Air 13″, a decent screen size with good portability. I like working at cafés and this gadget fits my lifestyle.
  • Browser: Chrome 25. I lost track of Chrome’s version, comes with Chrome is the excellent debugger I cannot live without.
  • CSS generator: Less, because Less can be compiled by JavaScript on the client side. It’s easy to get started developing.
  • Revision control: Git or SVN. My vote is to Git but my company is on SVN.
  • Image editor: Photoshop. We use Photoshop for general slicing.
  • Programming and markup languages: Mainly JavaScript, HTML and CSS. We have quite a bit of Handlebars.js stuff as well. We use JavaScript extensively these days.
  • JavaScript framework: Backbone.js and Marionette.
  • Web server: Apache Tomcat. We have a Java stack.
  • Page profiling: Just Chrome.
  • Automation: Ruby Guard and Grunt.js. There’s a bit of LiveReload as well, but only when I develop on a Mac.
  • Quality checks: JShint and Chrome Audit in the console.

I can see what I use previously as a more general web developer.

The compensation

I found it tremendously difficult to express myself in instant messaging. I don’t get most of the smileys and couldn’t bring myself to use it because I have this feeling that the other party might not get it too. (By the way, I am not too wrong about that; I asked.)

I tend to either use a lot more adjectives or I type LIKE KANYE WEST. I PUT MORE EXCLAMATION MARKS THAN USUAL TOO!!! Also found myself using more punctuation to represent pauses in speech, or something.

Perhaps it’s overdone but there’s no way to better represent intent when left with just lines and lines of text. Everything seemed less exciting on instant messaging.

On the responsibility of conserving nature

Yea, this sustainability thing too, while we’re at it.

Sustainability is the capacity to endure. In ecology the word describes how biological systems remain diverse and productive over time. Long-lived and healthy wetlands and forests are examples of sustainable biological systems. For humans, sustainability is the potential for long-term maintenance of well being, which has environmental, economic, and social dimensions.

A dude I talked to defined sustainability is leaving the world better than our ancestor left it for us.

Ah, but that’s subjective isn’t it, I retort. And why is it more moral to leave the world better than it was? Did our ancestors really left the world better than it were for them for us? If so, how?

I could go on questioning about how these statements cannot be properly justified. I think it’s a sweet idea — a really romantic one. But we are making too much assumptions here. For one, what we like might not be what the future generations like. We are imagining a future where we want to live in, however our ancestors will never have imagined our future. We may lament how great was nature a century ago but we are trapped in this digital world that makes communication so easy we probably wouldn’t want to really go back to the past. Unless you’re a hipster. Heck, even hipsters have their AT&T telephones.

But there is at least one thing to agree on. We like the future to have more opportunities so that future generations can choose their paths. We really don’t know what the future would want, the future will probably never know what their future descendants want either. We just keep the doors open, try to rid lesser trees, just in case they actually want the trees, squirrels and shit.

As for these moral responsibilities to leave the world better — or come’on, at least as good as we took over it — such obligations are unfounded. I do like it to be retain as a romantic idea but there’s too much uncertainty here. Who’s to define what’s good. How do we measure goodness after being defined? Can be chart our progress somehow? And then I realize these visions that can’t really be debated against and for reliably just fall into something we vaguely term good values — the commonly agreed upon framework of living in our society.

Xenophobia in Singapore

This is taken in the local skate park at East Coast:

Xenophobia in Singapore

Locals only

Through the past decade, Singaporeans saw foreigners coming in and we get upset, that’s perfectly okay because last I check we are upset over everything. So complaining is perfectly normal, perhaps a hobby, the Indians have their cricket we have our complaints. So shutup and stop complaining.

The xenophobia thing got me thinking a lot on identity though. We realized that we are a young nation and for some people their parents were migrants themselves. This puts everyone in an awkward — AWKWARD (cheerfully) — position. What’s a foreigner then, what are we not liking.

Let’s be specific

We don’t like foreigners alright. We love tourists though. Wait what? Okay, change. We are okay with foreigners, we aren’t okay with foreign workers. But that’s not right either, most locals accepted the Bangladeshis here in Singapore because no Singaporean would want to work under those conditions. This is such a sensitive topic but a couple of times I see some Facebook posts celebrating the true heroes — the construction workers from Bangladesh. There’s something really wrong here, but something just isn’t said outright either.

So if we don’t mind construction workers, are factory workers okay to be foreigners. That’s a tough question. Well it depends, some would confess. If you can hire a local, you should, they answer and just moved on. In reality the hiring process isn’t as simple as imagined. There can be hires for entirely new roles and hires that are for replacements for positions emptied — maybe the previous dude left, or something. Typically the latter will require more urgency to fill since everyday that position goes unfilled, there’s reduction of overall productivity.

Argh! A little cognitive dissonance here

We recognize issues of employment. We want better positions for Singaporean if we are the ones getting hired. If we are bosses, we want the position to be quickly filled up at a good price. There are more people looking to get hired than hiring so the xenophobic voice is slightly louder.

At the same time those people getting hired understand that they don’t want to be in construction too. Reason they give — we didn’t study a paper on marketing to go into construction. Hello there, the Filipino house servants we hire didn’t study a degree in homemaking, I met one with biochemistry.

Reality check

We like to think ourselves to be better than others. We feel we deserve a pay better than others. However we cannot ignore the fact that others think the same too. We are the ones who create a system where foreigners come in to take up jobs to spur our economy. There’s no easy way to revert this plan and still keep up with our growth rate.

The best part is that the vocal ones are beginning to understand this as well. So they say, okay okay, foreigners here are welcomed to stay but we don’t want too much new foreigners. Also it’s not me, it’s my government, they didn’t build enough train stations and our MRTs are getting way too squeezy!


There are some people who hate foreigners, they are being led by people who are trying to advance their own goals. The vocal ones have vested interests and xenophobia is an issue that is sensitive and it is one of those things that you can be aware of but cannot have a proper public discussion. They’re entrapping the government for a discussion. Any action or inaction would lead to at least some negative consequences. This however is a good opportunity to come clean with our needs. Try to ask five whys before you give your opinions. Discuss them with your peers. Get validation.

Books I bought that I haven’t read

I bought a bunch of books in the past, I never had the time to read them. Or at least that’s the excuse. Here’s a list of books I haven’t read to make myself guilty:

  • JavaScript: The Good Parts by Douglas Crockford: They say this is an excellent book. I will not know. You know what, actually I didn’t even know I have this book. It’s a huge surprise for me; I love surprises. (I do UI.)
  • The Hunger Games by Suzanne Collins: Is the movie better or is the book? I wouldn’t know, haven’t experienced either. That said I know more of the plot than most people think because everyone’s feeding me information and I sort of piece them all together.
  • Atlantis Found by Clive Cussler: I lent it to two of my friends and they read it for me. I haven’t read this myself but its worth has been validated at the very least.
  • A General Theory of Love by Thomas Lewis: I’m really about to start this. Really. Two years ago. Back then I was really wondering if I have the capability to fall in love. This isn’t as relevant as back then.
  • Howl’s Moving Castle by Diana Wynne Jones: Loving the movie doesn’t translate to loving the book. I really what I most love about the story is really the characters and watching them come to film in the Hayao Miyazaki’s version made them so loveable I didn’t need to read the book. Honestly I couldn’t get past a quarter of the book.
  • The Lemon Tree by Sandy Tolan: I struggled through this book. I noted time and again that I can’t read books that have this politics thing inside. I keep accepted the challenge and attempting to overcome it with limited success.

Okay enough of embarrassment. I’m reading Sarah Silverman’s book now.