Blog
Hariharan Srinath

Building Modular and Flexible React Container Components

This article shows you how to correctly build React components in a modular and flexible way such that they can be used with customization across apps and use cases without having to modify the component code.
Hariharan Srinath

How type embedding intersects with Pointer and Value method receivers in Go

I recently encountered a subtlety in Go language in how methods exposed by an embedded type are resolved vs. those with the same name defined by the container types depending on whether they are defined on Pointer or Value receivers. A quick trip to the language documentation however helped me understand subtlety and fix the unexpected result I was getting. It left me with a greater appreciation for how different features of the Go Language are designed to interact in cleanly defined manners
Hariharan Srinath

Hooking into Android Studio's Gradle build process

This post shows how to hook into an Android Studio's gradle build process to automatically run your own external commands like compiling assets, building JS webapps etc. before compiling the Android app.
Hariharan Srinath

A color theme based on the Nile

A color theme inspired by the beautiful scenary of the Nile riverbank in Egypt
Hariharan Srinath

Making Android Studio (or Eclipse ADT) work on 64-bit Ubuntu Saucy 13.10 or Trusty 14.04

Getting Android Studio (or Eclipse Android Development Tools) to run successfully on 64-bit (ie. amd64) installations of the newer Ubuntu (or underlying Debian) distributions like Trusty Thar (14.04) is not straightforward. As Android build-tools are actually 32-bit programs linked to 32-bit libraries that are not installed by default, build often fails on first installation. Unfortunately, most advise that shows up on a Google search is outdated and recommends installing the ia32-libs package which is no longer supported from Ubuntu 13.10 Saucy onwards. This article shows you how to use multiarch support to install the necessary 32-bit libraries to make Anrdoid builds work on an amd64 installation of newer versions Ubuntu.
Hariharan Srinath

Using FuseCompress to compress folders in Ubuntu

The high price to capacity ratios of Solid State Drives (SSDs) and the use of small capacity SSDs in Chromebooks mean that drive compression could be attractive solutiosn once again. This article focuses on how to use the simplest compression alternative, FuseCompress on Ubuntu.
Hariharan Srinath

Hello World Web Servers in Python & Go

The ubiquitous Hello world programs in programming tutorials are not very insightful in our modern web-centric era. In this post, we implement simple HTTP web servers that serve up a Hello World response in Python & Go languages. We will use functions from just the standard library to get a feel for the relative strengths of the language.