Recent Articles
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
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
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.
Read More ...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.
Automatic Differentiation: Higher ranked beings
(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 ...Automatic Differentiation: Dual numbers & Taylor numbers
In the earlier post, we saw how we can calculate the derivative of a function as a function itself. We may not need to do that, but may want the value of a function’s derivative to be calculated while the function expression is being evaluated.
Read More ...Automatic differentiation
At Pramati Chennai, we’ve been having a series of sessions on math. The purpose is to try and connect many concepts usually considered as separate. We’re currently on a track to understand functions of multiple variables and their calculus.
Along the way, I thought it might be a good idea to try and introduce automatic differentiation in a programmatic way so people have a taste of how to precisely capture their ideas. This is not an attempt to implement the AD algorithms (at least not just yet), but to make the key idea concrete.
Read More ...A hypothetical conversation with an 'imperative programmer'
(This was originally written on May 25, 2015. Publishing it ‘cos a former colleague actually recalled it after all this time when even I had forgotten about it.)
Read More ...Talk: Machine Learning as extreme TDD
I gave a talk last evening at a meetup at Navis giving a soft introduction to machine learning for an audience of mostly developers and QA engineers. I’m sharing the slide deck and also some corrections of mistakes I did in the talk.
Read More ...async/await subtleties
ECMAScript’s new async functions and generators simplify working with concurrent
I/O code. While they work hand-in-hand with Promises, there are some subtleties
that either seem to be underspecified in the language or not talked about much.
Integers
My son is learning about integers at school. It is quite a challenging topic to come to, especially as, thus far, for him, trying to understand it purely based on the familiar is both a necessity and a tough challenge due to the novelty of the idea.
Read More ...
- Notations
- Tala Keeper
- Demos
- Talks
GitHub · Twitter · Google+ · LinkedIn · RSS