Recent Articles

Inai: REST in the Small

Nov 23, 2020   #REST  #Javascript 
(originally posted on the Imaginea Labs blog - The Inai project (forked here) began as a light hearted attempt to explore the consequences of bringing REST principles to organizing components within a single server node. It started off with the following question - Given we know that REST principles are useful to organize the development, deployment and evolution of large collections of services, would those principles be useful in the small - i. Read More ...

The Calculus You Actually Need for Deep Learning

Oct 2, 2020   #Calculus 
The Matrix Calculus You Need For Deep Learning (MCYNDL) is a great summary of what you need and expands starting from pretty much the basics. However, I’ve always felt that introducing the index notation used in physics can help simplify what looks like complicated math, even in that simplified intro. So here is my attempt at re-presenting the material in that paper, but using the simplified index notation. I think good notations are technology for the mind because they let you think and work with things that you otherwise might find too cumbersome or complicated to deal with. Read More ...

Speculative: SciML for Physical Modeling Synthesis

Aug 10, 2020   #SciML  #JuliaLang  #Zygote  #Physical modeling synthesis 
Tools in the “Scientific Machine Learning” (SciML) space have been getting more sophisticated and general purpose. While going through some material regarding “universal differential equations”, I couldn’t help dream up potential applications to tough problems in physical modeling synthesis of musical instruments .. particuarly interested in the vina family of instruments. Noting down some speculative thoughts here that I hope will refine and be replaced with more accurate ones as I learn more. Read More ...

The await-on-need Pattern

Mar 26, 2020   #async/await  #Promise 
The async/await facility in ES5 is perhaps the single biggest readability boost to async code in Javascript - both in NodeJS and in client-side JS code. With async/await, code that does async activities starts to read like synchronous code with the keywords async and await thrown in at appropriate points. But don’t lose sight of opportunities for concurrency while settling into the comfort zone of synchronous-looking code. One way to think of and use async/await usage in JS is like this - Read More ...

I'm LisP. I'm inevitable.

Feb 19, 2020   #LisP  #muvee  #Video editing 
This is a stub post linking to material presented during my talk titled “I’m LisP. I’m inevitable.” at the first Chennai Clojure meetup at Pramati Technologies. Downloads View slides online PDF slides PowerPoint slides Video of talk

Talk: the Nuts and Bolts of Webassembly

Aug 24, 2019   #WebAssembly  #Capability based security  #Clang  #LLVM 

I gave a talk at the “Mixed Nuts @ Pramati” meetup on 2019-08-24 10am-12pm on WebAssembly. This post contains notes from the talk - sort of almost-transcript.

Simul-posted at

Read More ...

Abstraction is the root of all evil

A prized principle of design is the hiding of unimportant details from the users of a product that enables them to work with it without getting overwhelmed by its possibly complex inner workings. This act of deciding that something is unimportant and hiding it behind a simpler facade is what abstraction is about. In this sense, abstraction, when it works, is considered A Good Thing™.

Read More ...

Prolog Is Magic

Jul 16, 2019   #Prolog 
It’s hard these days to impress kids with stuff computers can do that felt like magic back in the early days. Turtle graphics, even the venerable Scratch don’t have the wow factor from the get go because .. the kids have seen too much already. Here is how I (re)discovered something magical in a moment of resistant engagement with my 6-yr old when he persistently asked me to “teach him how to work on a computer”. Read More ...

Good Ideas in Programming

Mar 20, 2019   #FP 

Collecting a bag of what I think are good ideas in the history of programming, which lead to better thinking about system design, implementation and evolution.

Note: This post will continously be edited to include ideas as they come to my mind as worthy of being included here. Also, the ideas are in no particular order and this is just a brain dump.

Read More ...

Automatic Differentiation: Higher ranked beings

Mar 13, 2019   #FP  #Haskell 
(Status: Draft) We saw how we can try to calculate derivates of a function while evaluating the function in the first and second posts on automatic differentiation. Those dealt with only functions of a single real number. While that is illustrative of the approach, it was merely warm up so we can deal with differentiable functions of multiple variables that yield multiple values - i.e. vector valued functions of vectors … or more generally, tensor valued functions of tensors. Read More ...