Blog Archive


A workflow for Swift compiler development

Notes on the workflow I use for working on the Swift compiler

Swift compiler development on a remote Linux machine

Notes on setting up a Linode for working on the Swift compiler


Introducing Citron

An introduction to Citron, an LALR parser generator for Swift

TRAI’s spat with Apple over app access to messages and call logs

India's telecom regulator wants to bring its Do-Not-Disturb Android app to iOS, but a direct port of the app is not possible

Apple opens App Accelerator

Thoughts on Apple's App Accelerator that has just opened in Bangalore.

The Hide & Seek bug that led me to WebKit

While trying to debug a problem with Hide & Seek, I ended up fixing a bug in WebKit.


Sunsetting Bisect

The end of Bisect for iPad

Swifty Responder Chain

Trying to create a responder chain implementation in pure Swift

A dynamic foundation

In which I argue that Swift has a solid base on which to build dynamic features like Objective-C's.

Apple's prospects in India

In the Q2 2016 earnings call, Tim Cook fielded a question on India as a market for Apple. Here's me trying to add some context to his answer.

Thoughts on ads in App Store search

A recent report stated that Apple is considering ads in App Store search results. Here's a thought experiment on how it would work out if it came true.

Responding to TRAI on net neutrality in India

These are the comments on net neutrality that I submitted to the Telecom Regulatory Authority of India

On Overcast’s new business model

Exploring Overcast’s patronage-subscriptions-based revenue model

Brent's feeds and folders problem

Here's one way of solving a problem Brent Simmons had when adopting protocol-oriented programming with Swift 2.0

loadView vs viewDidLoad

What is the best override point to setup your view hierarchy programatically?

Doing it all in code

I'm one of those developers who like to specify the app's UI in code. I'd like to show you how my setup looks like.

Improvising on KVO

Key-value Observation code can get messy. Here is one way to keep it clean.


Speeding up Swift builds

Building Swift projects incrementally

Why isn't there a formal grammar for Markdown?

On the impossibility of writing a CFG for Markdown

Evaluating the CommonMark spec

A critical look at John MacFarlane's stmd spec for Markdown

The Chasm in the App Store

Applying insights from Crossing the Chasm and The Purple Cow to the iOS App Store

Swift Beta 3

Arrays in Swift Beta 2

What's the problem with Arrays in Swift (Beta 2), and how do we get around it?

The need to know Objective-C

If you want to be an iOS dev, should you start with Objective-C or Swift?

Looking different

Feels nice to see Apple not only looking fresh and charged up, but also open and developer-friendly after WWDC 2014.

Imagining developing for a split-screen iPad

What all would Apple have to keep in mind if it allows third-party apps to go split-screen on the iPad?


Looking back at the “burning-platform” memo

In which I try to guess the reasoning behind Nokia picking Windows Phone over MeeGo, two years ago


No, of course not. It's still rounded rects something else in iOS 7.

The Symbian Experience

As Symbian phones are about to stop shipping this summer, a look back at the last few years of the OS, and some opinions on why it couldn't make it.

iOS 7: Flat or not?

The predominant opinion after the iOS 7 announcement seems to be that iOS 7 looks flat, but really, it doesn't.