On verbosity of programming languages

My primary task at work for the last few weeks has been the building of an open source plugin for IntelliJ IDEA enabling tooling support for building Android applications which need to talk to Azure Mobile Services, Azure Notification Hubs and various Office 365 services. One of the things I…

Read this article

Using Unix tools to process text on Windows

There was a need at work recently to perform a bunch of text processing tasks on very large XML documents spanning 10s of gigabytes in file size. The documents in question would look more or less like this: ... some meta data tags here ... <Rows> <TableRow> <…

Read this article

Converting document formats with Pandoc

When I set out to convert my blog from the nearly 10 year old home-brewed ASP.NET based system to the spanking new Ghost based blog engine, one of the somewhat trickier problems I encountered was converting all my existing 70 odd posts from HTML into Markdown syntax. It was…

Read this article

Nerdworks Blogorama v2

This blog started its life way back in 2006 when I suddenly decided one day that I needed a web space of my own. I cranked out an ASP.NET based website, got myself a domain and some hosting space and one fine day the site was alive! Over the…

Read this article

Iterating over a std::tuple

I’ve been trying to wrap my brain around the new variadic templates capability in C++11 lately and wondered if it would be possible to write a generic routine to iterate over the members of a std::tuple. I decided to start with the simple case of printing out…

Read this article

Playing in-memory audio streams on Windows 8

A customer I'd been working with recently came up with a support request for a Windows 8 Store app they'd been working on. They were building the app using the HTML/CSS/JS stack and wanted the ability to play audio streams completely from memory instead of loading it up…

Read this article

Add a "Web Server Here" Explorer shell extension command

Sometimes I just want to spin up a web server on a folder in explorer. Often its because browsers get nervous about running HTML pages directly off the file system and seem to feel more comfortable when its served from a web server. I figured I'd had enough of writing…

Read this article

Some notes on C++11 lambda functions

Lambda functions are a new capability introduced in C++ that offers a terse compact syntax for defining functions at the point of their use. Bjarne Stroustrup says that C++11, which is the latest ratified revision of the C++ standard, "feels like a new language". I think lambda functions are…

Read this article

Implementing variable sized tiles using WinJS ListView

Windows Store apps on Windows 8 often use a grouped tile style for rendering user interfaces. The modern desktop on Windows 8 is a classic example. Here's a zoomed out view of my current desktop for instance: You'll note that the tiles have been grouped into separate sections and each…

Read this article

Debugging existing Windows Store apps

Did you know that you can debug pretty much any installed store app on your machine? Let's say you want to know exactly why is it that the Windows Mail app acts funny sometimes. Here's what you'd do: Go to the modern desktop and type "Debuggable Package Manager" and launch…

Read this article

Screen scraping with your browser's JavaScript console

I needed to experiment a bit with language packs for IE 10 the other day and that involved downloading and installing all the available language packs. Unfortunately I couldn't find a single convenient file for download that'd install everything. The language packs were available as separate downloads for each supported…

Read this article

Building an Instagram clone - Part 2

In part 1 we took a look at some of the UI layout implementation details of the InstaFuzz app. You can get the source code for the app from here if you wish to run it locally. In this installment we'll take a look at some of the other bits…

Read this article

Building an Instagram clone - Part 1

Introduction When I started out on this app I was only really just interested in seeing if the web platform had really evolved to a point where an app like the hugely popular Instagram app could be built using just HTML, JavaScript and CSS. As it turns out we can…

Read this article

Organizing your JavaScript with WinJS

While the JavaScript framework for creating metro style apps is surprisingly flexible, in that it allows you to use pretty much any JavaScript framework that's already out there, there is actually some really useful functionality available in the WinJS library that ships out of the box. And since the JavaScript…

Read this article

IE9 web cast / Chennai Web Camps / OSI Days 2011

It has been a somewhat hectic two weeks shuttling between Chennai and Bangalore for a bunch of stuff. As usual, I've been happily handing out promises about posting resources for my talks on my blog. Like candy. Turns out you've got to come good on them eventually. So here goes…

Read this article

Partial function application in JavaScript

Partial function application is a functional programming technique that allows you to transform functions that take N parameters into functions that take a subset of N parameters. For example, say you have this fairly useless function: function add(a, b) { return a + b; } Let's say that for some reason we…

Read this article

Web Camps, Virtual Tech Days and jsFoo

So I've had a busy few weeks recently doing a bunch of sessions at Web Camps (in Delhi and Hyderabad), Virtual Tech Days and jsFoo. At each of those events I promised attendees that I'd put up the demos and the decks on my blog "soon". Well, truth be told…

Read this article

On the HTML5 Indexed DB API - Part 4 of n

So far we have looked at creating databases and adding data to them. Let's next take a look at retrieving records from the database. Surprisingly, this turns out to be a bit complex. The indexed DB way of enumerating records from an object store is to use a "cursor" object…

Read this article

On the HTML5 Indexed DB API - Part 3 of n

In the previous post we covered some more background on working with the Indexed DB API and briefly reviewed the mechanics of creating a new database. In this post we take a look at some important Indexed DB constructs that one must be familiar with while working with the core…

Read this article

On the HTML5 Indexed DB API - Part 2 of n

In the previous post in this series we covered the fundamentals of the Indexed DB specification. We continue the journey in this post and take a look at the API itself. Building an offline note taking app For the rest of this series of posts, we'll try and build the…

Read this article