Learning Haskell

I've tried multiple times over the past two years to lean Haskell. I always began by starting Lean You a Haskell for Great Good, a programming book with a pretty interesting approach towards teaching Haskell. However, I always seemed to loose my drive and give up; usually somewhere around the…

NaNaNaNaNa Batman!

Continuing with my quest to learn graphics and web design, I have completed another Adobe Illustrator tutorial from Tuts+. This one shows you how to create the Batman Dark Knight Logo. To be honest, I'm actually pretty impressed with how this one turned out. However, I have learned almost nothing…

The Curious Case of django db.reset_queries()

tl;dr: If you have a long running script that uses the django ORM to do db related stuff, and you're in DEBUG mode, you should know that django saves every query ever run, resulting in your script using more and more memory with every db operation. To fix, either…

Moving to Ghost

I have been following the new kid on the blogging block; Ghost, for quite some time now. This weekend, I had nothing to do, so I decided to move my blog here. As well as allowing me to try out Ghost, this also allowed me to test out DigitalOcean, a…

import('artistic ability')

Well hello there. It's been a long time since I last wrote anything here, so here goes. I have, since a long time wanted to learn design and other artistic stuff. Well, after I moved to Dubai to work with Dubizzle, I had the opportunity to; for the first time…

Run Vim Macros on Selected Lines

Short Version: to run a vim macro over selected lines (in visual mode), run the following: :'<,'>normal @q It's been a long time since I last had anything to post, and since I just recently discovered a new vim trick (there is an uncountable number of…

jQuery is Awesome

Do you know how awesome jQuery really is? If you're still here, I have a feeling you want to find out. Here is a simple sample from one of my freelancing projects that got me thinking about the power of jQuery, and how it has changed JavaScript programming. The interface…

JavaScript: Delete Array Elements

As part of a freelancing project on oDesk, I am currently working on a couple of simple JavaScript utilities for text processing. A common function in all these utilities is to get a list of non-blank lines from an HTML textarea. The simplest way to get a list of lines…

The Pheonix Blog

Until recently, I was running my blog on Word Press using my own hosting at Web Faction (awesome hosting provider). However, after looking at a couple of well designed Tumblr blogs, it struck me that Tumblr was a lot easier to use and manage, so I have decided to give…

The Pakistani Problem

Hazrat Muhammad (P.B.U.H): Whoever among you sees an evil action, then let him change it with his hand [by taking action]; if he cannot, then with his tongue [by speaking out]; and if he cannot, then with his heart – and that is the weakest of faith. Narrated…