Author: Ankur Sethi

  • My Reading List for 2014

    The hardest thing to do after finishing a book is deciding which one you want to read next. Things become harder still when you and your roommates collectively own hundreds of books, most of which have been on your to-read list for years. And if you own an e-reader with even more books on it—you…

  • 2013: Year in Review

    The Good The Bad The Ugly The Highlights Unlockments Achieved What Next? There were several goals that I couldn’t achieve in 2013. I’d like to tackle them again this year: Besides these leftover goals from last year, I have some new goals for this year: Have a happy new year, folks. Make it one worth…

  • Loading Spinners With AngularJS and Spin.js

    Spin.js is a tiny JavaScript library that helps you create beautiful loading spinners on every web browser up from IE6. It is highly customizable, fast, and has zero dependencies. I’m using it in my AngularJS application to display loading spinners inside my ng-views while my REST API responds with the data the view needs to…

  • Simulating a Slow Internet Connection

    I am currently working on a single page web application written with AngularJS that communicates with a REST API written with Django and Tastypie. Since I run both the client and the server locally on my machine, every HTTP request that my AngularJS application makes receives a response from the REST API in tens of…

  • An Introduction to CMake

    GameDev.net recently published a four-part series on writing cross-platform build systems with CMake. The series first covers the very basics of CMake, followed by a tutorial on how to add unit-tests to your codebase using googlemock. (Edit: with the release of CMake 2.8.11, a fifth part was recently added.) I consider myself lucky that I…

  • All About Iteration

    Bob Nystrom’s two-part blog post about iteration in programming languages includes perhaps the clearest explanation of coroutines I have read so far. It begins with an exploration of how iteration is implemented in mainstream programming languages, and goes on to talk about internal and external iterators, the yield statement in C# and Python, the call…

  • Tastypie and Timezones

    If you use Tastypie with Django’s timezone support turned on (i.e, you have USE_TZ = True in your settings.py), you will notice that Tastypie helpfully converts all dates and times in your resources to the timezone specified in your TIME_ZONE setting before returning them. If you care about internationalization, this is not the behavior you…

  • Travel Light

    Year 2011. Lines of elisp in .emacs: 145. Lines of configuration in .vim: 115. Year 2013. Lines of configuration in .vim: 0. Lines of JSON in Sublime Text configuration: 0. This is so much better.

  • WordPress: Under Siege

    As I mentioned in my last post, I recently switched my website from my homegrown Django blogging app to WordPress. Before installing WordPress on my VPS, I installed it on a VM so I could test the waters before jumping in. I created an Ubuntu 12.04 VM using VirtualBox and gave it a gigabyte of…

  • Okay WordPress, You Win This Round

    One of my biggest blogging crimes so far has been this: every time I get an itch to write a blog post, I start thinking of possible workflows I could use to make my writing process simpler. A few hours later, instead of the post I wanted, I have UI mockups for The Perfect Blogging…