Recent Articles

iOS animation notes

Nov 22, 2015   #iOS  #Objective-C  #Animation  #UIView  #CALayer 

Recently, I had to work on an animated view for an iOS app. I built the view using explicit layer-based animations (CABAsicAnimation and brethren) in a separate app and it worked fine. Then I moved the view into the host application and all hell broke loose. After much fighting with the API, I finally arrived at the techniques needed to ensure that the animations work as intended irrespective of context. This post collects these notes as a list of recommendations to follow.

Read More ...


Nov 1, 2015   #Jeff Raskin 

Yesterday, I drove an automatic for the first time. When driving a manual shifter, my brain is on auto pilot - I’m seldom aware of my gear shifts and footwork. When I drove the automatic, all of this suddenly needed to be consciously done. So there was a bit of struggle I experienced with a supposedly simpler system. Bleh! The automatic drive is not intuitive.

Now, wait a minute. We know that folks who shift (ahem!) from automatic to manual face a harder struggle. In the software world, there is a similar hurdle faced by folks shifting between operating systems, and yet we see wars of the kind “my OS is more intuitive than yours”. What do people mean when they say something like that?

Read More ...

Talk @ JSFoo 2015: Orchestrating the Web Audio API

Sep 22, 2015   #JSFoo  #Web Audio API 
Slides (CC BY-SA 3.0)

Talk: Functional Thinking for Fun and Profit

Aug 11, 2015   #Functional  #Closure  #Mathematics  #Haskell  #Type system  #Notation 

These are elaborate notes on a “Tech Tonic” talk given at Pramati Technologies, Chennai, on 23rd July 2015. The organization of this post reflects the talk itself.

Read More ...

On net neutrality in India

The net neutrality debate in India largely lingers on what folks will have to pay for that they’re now getting for free, how much more it is going to cost them to do the same things they’re doing today, what will happen to the small business guys as the large guys take over with money power, etc. Even the (in)venerable AIB does more or less the same pitch in their now famous Save The Internet video. There is also the article on The Hindu pointing out the panel recommendations and they mostly have to do with who and what needs to be paid for and what is to be left untouched.

Much of this money-focused hoohah is a distraction on why net neutrality is important to us. If we don’t adopt a “we won’t touch the internet” policy, there is much more at stake than just a few people making more money than we think they should.

Read More ...

Melakarta workshop for children at Brhaddhvani

Apr 23, 2015   #Melakarta  #Brhaddhvani 
Workshop at Brhaddhvani for children this summer on melakarta system.

Closures all the way through

Apr 2, 2015   #Closure  #Mental models 

In A Mental Model for Variables and Closures in Javascript, I described an allocation based model that I’d used with some success to teach and understand the intricacies of closures, as implemented in Javascript engines. While we have plenty of tutorials on closures that describe what results are gotten under various conditions, with variables being magically “captured”, I’ve not seen many work through a mechanistic explanation of closures. To that end, here is the slide deck of a session I recently conducted which walked the participants through a mechanistic understanding of closures and objects, using the Chrome debugger. Read on to find out how to follow the deck and the rationale behind it.

Read More ...

Talk: Mathemusicking with children

Mar 21, 2015   #Mathemusicking  #Mathematics  #Music  #Children  #Cognitive models 

I gave a talk titled “Mathemusicking with children: Doing math and music without telling them apart” at the C. R. Rao Advanced Institute for Mathematics Statistics and Computer Science on 14 March 2015, as part of a workshop on Math, music and nature.

Read More ...

Why I'm a vegetarian

Mar 18, 2015   #Vegetarian  #Photosynthesis 

Some years ago, I had a change of perspective on being vegetarian. The fact that I am a vegetarian was not the thing that changed, but it was the why that did.

Read More ...

Errors, recovery and async code flow

Oct 11, 2014   #cspjs  #Asynchronous  #Exception  #Try-Catch-Finally  #Channel 

try-catch-finally style error management is common in many programming languages. Though the underlying mechanism of propagating errors up a “call stack” is alright from a development perspective, the common syntax ends up invariably mangling the code flow. In cspjs, a macro library presenting an easy-to-use syntax for working with async Javascript code, I attempted what felt to me to be a better way to fit error handling and recovery code into the statement-by-statement sequential flow of activity.

In Bye Bye Javascript Promises, I intended to present this key reason why I wrote cspjs - error handling and recovery specification that respects code flow - but I didn’t do a good job of presenting it. I attempt that in this post.

Read More ...