Combining SCons and Ninja builds

After considering several software build systems for Swift a few years ago, we ended up settling on SCons for its correctness, power, and maintainability. The main thing we traded this for was speed: although we could get a no-op build down to only a few seconds by using the right flags, those few seconds can still get in the way when doing very short build/test/debug cycles during daily development. To shorten the turnaround time during development, I created a script to use SCons to generate a build file for Ninja, a small but very fast build system, which gets our no-op builds down to a fraction of a second.

Continue reading →

Posted in Software with tags SCons, Ninja, Swift

JsnPrsr: A Lean JSON Parser

As a weekend project, I created JsnPrsr, a fast, small and lightweight JSON parser (and serializer), written in Java, with no external dependencies. I played around with Caliper to microbenchmark different snippets of code to squeeze some more performance out of it, within bounds of keeping the code readable.

Continue reading →

Posted in Software with tags Java, JSON, JsnPrsr, Caliper

My Favorite Vim Plugins

After a brief affair with another editor, I’m now back to using my beloved Vim again. What’s more, I decided to invest the time I should have put in years ago when I started using it, and learned to do things more efficiently. Besides reading Practical Vim and watching some VimCasts, I went through my list of plugins I collected over the years, removed the ones I wasn’t using, learned about a couple of new ones I didn’t know, and re-learned some of the ones I forgot about. Here’s the list of my favorite plugins I ended up with.

Continue reading →

Posted in Miscellaneous with tags Vim, Git, VimCasts, Eclipse

The Sublime Text Experiment

I’m not easily persuaded to try out a new editor, but since I heard so many great things about Sublime Text, I decided to give it a try. After all, it looked a lot better and smoother than my old and rusty Vim, and I’m a sucker for look & feel. So, I took the free courses on tuts+, and tried it out for a while on my daily tasks. Here are my findings.

Continue reading →

Posted in Miscellaneous with tags Sublime Text, Vim, Tuts+

Book Review: Wonderful Life with the Elements (Bunpei Yorifuji)

In Wonderful Life with the Elements, the Japanese author (and artist) Bunpei Yorifuji takes you through all the chemical elements in a playful, entertaining, and very graphical way.

Continue reading →

Posted in Books with tags Books, Reviews, Bunpei Yorifuji, O'Reilly, No Starch Press, Chemistry, Japanese, Chinese

From WordPress to Nanoc

After 7 years of serving my blog/website with WordPress, I thought it was time to try something else. One of my biggest gripes about WordPress (apart from having to hold my breath on each version update) is that writing posts through a web UI isn’t very handy: it’s slow, inconvenient for complicated posts (especially if you’re used to your favorite editor), you can’t write while offline, and the versioning is limited (compared to real versioning systems). So, I decided to give static blog generators a try, and ended up converting my blog to Nanoc (after a brief stopover at Jekyll). Result: I can now write my posts in VIM, use Markdown syntax for writing, preview my posts live using tools such as Marked and MarkdownPad, preview the site using Nanoc’s built-in HTTP server, easily customize my site with some Ruby code, and keep everything versioned with Git. And of course move it on Amazon S3 in case my blog really hits off and starts getting million hits a minute (which should be any day now).

In case you’re interested in the details of how I converted from WordPress to Nanoc (including code), read on.

Continue reading →

Posted in Miscellaneous with tags WordPress, Jekyll, Nanoc, MarkDown, CGit, Git, RDiscount, Ruby, Blog, Galleriffic, Tag Clouds

Swift 2.0 Released

Just in time for a 2012 release: Swift 2.0 is out! This new stable release has many enhancements and bugfixes, so head over to the Release Notes page to find out what’s new.

Happy New Year!

Posted in Jabber with tags Jabber, XMPP, Swift

Swift 2.0 Release Candidate Released

That’s right, we’re almost there: we just put up the release candidate of Swift 2.0. If no critical bugs are reported, this will become the final release. As always, we encourage everyone to get the new build and try it out, and tell us about any bugs they should come across.

Posted in Jabber with tags Jabber, XMPP, Swift

Swift 2.0-beta2 Released

We have just released the second (and final) Swift 2.0 beta. Apart from several bugfixes, highlights include the possibility to set custom connection options, getting detailed information about certificates upon connection errors, and improved room invitations. We encourage everyone to get the new build and try it out, and tell us about any bugs they should come across.

Posted in Jabber with tags Jabber, XMPP, Swift

Swift Hackathon Roundup

Last sunday, we finished our week-long Swift Hackathon, and it was a great success, leading to Swift 2.0-beta1! Here’s a list of the things we achieved during that week.

Continue reading →

Posted in Jabber with tags Jabber, XMPP, Swift, Hackathon