MOOC Review : Machine Learning


My review of the MOOC on Machine Learning

The Myth of Perfect Software


Programs do not acquire bugs as people acquire germs, by hanging around other buggy programs. Programmers must insert them... Harlan Mills Software breaks all the time: booting issues, corrupt software and files, crashes etc; nearly everyone has had a close shave or two with fragile software. Can programmers write 'perfect' fault-free software? I presume a trip to … Continue reading The Myth of Perfect Software

EmberJS vs Backbone


Although I have never tried out the Backbone framework, I had to review it some time ago when I had to select the JS framework to use. I wrote this last year so if anything has changed please let me know. EmberJS Strengths Allows developers to control the entire page at runtime and not just … Continue reading EmberJS vs Backbone

EmberJS: The Rant


So I started on EmberJS some time last year; after spending an inordinate amount of time trying to design a prototype with people located all across the world. Finally, after several dreary demanding iterations and lots of work, we finally agreed on an implementation. One of the dev members suggested using EmberJS or backbone. Based on his review, backbone … Continue reading EmberJS: The Rant

Asynchronous Module Definition (AMD)


AMD (No, not the chip maker) stands for Asynchronous Module Definition - a cool new way of loading scripts. AMD attempts to solve some of the limitations associated with the orthodox approach of loading scripts.

Automate Builds using GruntJS


I already wrote about the awesomeness of GruntJS and here is how to set up your own Grunt system. 1. Installation GruntJS runs on nodejs so you need that installed first. Once nodejs and npm are installed, use the following command to install Grunt (the -g flag installs it globally). npm install -g grunt-cliThis installs the grunt … Continue reading Automate Builds using GruntJS

Grunting with GruntJS


I have been working on a team using a diverse tech stack: PHP, MongoDB, EmberJS and requireJS. Since we intend to release the alpha version in a few weeks insha Allaah, I had to bring everything up to production-ready levels. The usual needs: Javascript linting and obfuscation, resource (JS, CSS + images) minification, test automation (unit + … Continue reading Grunting with GruntJS

Job Hunting 101 for Students


Yes, I am still continuing with my posts on Grad School, research and all-of-that. The big question for most of us towards the end of school is 'Whats next?', a lot of us want to get jobs immediately afterwards but realize too late that it's much more difficult than we thought. Here are a couple of … Continue reading Job Hunting 101 for Students

Thesis Stories Ep 3: Research is Hard!


Alhamdulilah I completed my thesis about three weeks ago; if you're interested, you can check out my thesis and presentation. Looking back at the two years I spent at MASDAR, I have a couple of thoughts: Alhamdulilah I learnt a lot, met a couple of wonderful people and matured significantly. There were a couple of not-so-pleasant experiences too but I believe … Continue reading Thesis Stories Ep 3: Research is Hard!

Exploring my Facebook Network


So I finally completed the Social Network Analysis course by Lada Adamic today and I learnt quite a few things Alhamdulilah. Some of the MOOCs are really good but there are so many options that I sometimes get overwhelmed. One of the cool things about the course is that students can get exports of their entire … Continue reading Exploring my Facebook Network

Applying to Grad School


This post is for you then! There are many advantages (and disadvantages too) of grad school: you meet awesome people, broaden your scope and improve your analytic skills. However, the process of applying to grad school is long, demanding and at times frustrating.

For Devs only


I try to do less to achieve more - it is good; it makes me do my job faster and more easily; you should do so too. Automate, use shortcuts, innovate; well the initial investment might take a lot of time but it's something you will be glad you did. You can learn a lot … Continue reading For Devs only

Static and Instance Methods in JavaScript


I thought I quite 'understood' inheritance in JavaScript until I got flummoxed while trying to test my understanding. The JS prototypical inheritance model is hugely different from the classical approaches of the languages I started out with; the only way to fix this that I know of is by writing code and after spending hours screaming at my console I finally saw the light Alhamdulilah.

Design Patterns: PubSub Explained


I actually wanted to write about PubSub alone: it’s a fascinating design pattern to me however, the thought occurred to me, why not write a design patterns’ series? It’ll be good knowledge for me and give good information. So here goes the first: PubSub.

Taking the PAIN out of coding


Over the years, I have learnt some tricks and picked up some lessons while writing code. Most were learnt the hard way, so I decided to share a couple of tips on how to avoid development pitfalls.

Events in JavaScript


JavaScript events are created in response to user actions such as clicks, mouse moves or key presses; not all events are triggered by user actions though, some are automatic such as the onPageLoad event. JavaScript's event model allows developers to write event handlers which respond to these events and provide the interactivity we have come to … Continue reading Events in JavaScript

The language Series: Python


Python provides easy-to-use tools for data cleaning, processing and graphing;

The language series: JavaScript


I was pretty much amazed to see a JavaScript library for Arduino last year; it's common knowledge that the language powers uncountable web sites, mobile applications and even Windows 8 apps, but Arduino? Mind-blowing. The ever-growing need for powerful web experiences propels the adoption and development of this remarkable language.  JavaScript was influenced by C (syntax), Java … Continue reading The language series: JavaScript

The language series: PHP


All languages have flaws and PHP is no exception; here are some of the reasons why people say PHP is baaaad for your programming health

The Language Series : Java


Java! The language I once loved so passionately that I saw other languages as being inferior. Now, I rarely use it - the last time was while writing an Android app early last year.

2012 in review


The WordPress.com stats helper monkeys prepared a 2012 annual report for this blog. Here's an excerpt: 600 people reached the top of Mt. Everest in 2012. This blog got about 12,000 views in 2012. If every person who reached the top of Mt. Everest viewed this blog, it would have taken 20 years to get … Continue reading 2012 in review

The language series: C


I finally took the compulsory software engineering course notorious for its very difficult course project - writing a bitcoin client in C. Alhamdulilah, we successfully completed the project: about 18k lines of code, automated builds/documentation/tests and lots of other stuff. I figure we rank around 7 or 8 on the Joel 12-point scale even though some … Continue reading The language series: C

Thesis Stories Episode 2 : Adventures in Ginormous Data


Ranting about analyzing humongous data

How I used Pomodoro to boost My Productivity


Tips for using the Pomodoro technique to boost productivity

MOOC Talk : And I thought I knew SQL


Massive Open Online Courses (MOOC) became popular early this year with offerings from Coursera, Udacity and EdX. These platforms were inspired by the phenomenal success of the three online courses (db-class, ai-class and ml-class) that ran in late 2011. It has never been so easy to get high-quality knowledge - for example, Coursera has renowned … Continue reading MOOC Talk : And I thought I knew SQL