Happiness generator

In my current thrust towards greater management responsibilities, I have discovered a mechanism for generating happiness.

I set up meetings on important topics. That makes me happy — I’m driving something useful.

Often, the meeting gets cancelled. That makes me happy — I’ve more free time.

It’s the perfect perpetual motion machine.

Dissecting my Airtel bills

My monthly postpaid mobile bills have been in the Rs 2,000 – Rs 3,000 range for some time now, and I spent a few hours dissecting them yesterday.

Page 3 had the good stuff. It’s a little hard to figure out, but what the last 2 columns say is that most of my spend is offset by discounts.

2015-08-11 18_26_53-Start

What’s not getting offset are outgoing roaming calls. Followed by calls to local landlines. For all practical purposes, that’s the only thing that counts in this bill. Everything else is close enough to zero.

It took me some time to figure out that Airtel postpaid has something called myPlan. Based on your plan, you get set of “myPacks” or discounts. That determines your final bill. And it turns out that I was barely using my quota in some areas – specifically data. I had 3GB of data available. I was typically using 200MB – 500MB. The last 2 columns on page 2 show the usage of myPacks.


Clearly, I can do with less data, less SMS, less local mobile, and perhaps less STD mobile. I might need more outgoing roaming, but that’s about it. This means I need fewer myPacks. So I was able to switch to the Rs 799 plan from the Rs 999 plan, while simultaneously increasing the number of free outgoing roaming calls I can make.

There seems to be no myPack for incoming roaming, so I’m actually better off calling people if I’m travelling, rather than receiving calls!

The rest of the bill is a treasure-trove of data, listing every call and every pulse of data connection. I only wish it also had the location of the calls, and were available as CSV files.

An ambulance ride

I rode in an ambulance yesterday.

I’ve been in a few of these in the last 3 weeks, but yesterday was the first time I had to give directions, so I was paying a bit more attention to the traffic.

It’s remarkable how well Bangalore traffic responds to ambulances. Almost every single person gave way. (Not that this is easy. Merely slowing towards the left isn’t always effective if it ends up blocking the way. Many people were wise enough to give way at the appropriate place, and our flow was not impeded.)

Not everyone gave way, though.

The first was the driver of a small car. (I can’t identify vehicle models. This sort of looked like a Maruti.) He was driving right in front of us for a while, right in the middle of the road, without giving way on either side. After some time, when the road widened, we passed him. I noticed that he was wearing earphones. Based on his body posture, my guess was that he was listening to music — as opposed to speaking on the phone, for example. Clearly, he had not heard the siren nor the horn.

The second was a young girl riding a moped. (Scooty, or something like that.) The road was narrow. There was no chance of overtaking her. She did hear the siren, though, and tried her best to rush ahead of the ambulance. After about half a minute, the road widened again, and she gave way. My guess is that she was under 18, out on a ride in a relatively small and safe road, and had no idea what to do when an ambulance scares her noisily from behind.

The third was a bus driver, though the circumstances were different. The car ahead of us (a call taxi) gave way to the left. The bus was approaching us from the opposite side. The bus stopped right next to the car. Given the width of the road, the ambulance could not pass.

The taxi driver tried to guide the bus driver, telling him that he should move a bit forward to let us pass, but the bus driver (again, a very young chap) seemed frozen. He didn’t (or couldn’t budge). The taxi driver in front of us started his car, moved 50 metres ahead, and let us pass.

The fourth caused the longest delay. A couple riding a bike were ahead of us. The road turned ahead. They tried to give way, skidded, and they fell right in the middle of the road.

The were shaken, but not hurt, thankfully. It took a couple of minutes for them to gather themselves and their vehicle (with assistance from a passerby) and give way. We checked after confirming that they were unhurt.

I’m not sure what to make of this. In every case, the cause for delay ways ignorance. Either not hearing, or not knowing what to do, or not knowing how to do it well. But it’s gladdening that the bulk of Bangalore is both knowledgeable and responsive to the needs of those in ambulances.

But: please don’t endanger yourselves while giving way.

Poor Miss Wormwood

It’s hard not to feel sorry for Miss Wormwood.

Software I currently use

Every few years, I review the software I use. Here are some of my earlier lists.

Right now, among browsers, Chrome is my primary browser. What’s interesting is that IE 11 has overtaken Firefox in terms of usage. That’s partly because we’re working with Microsoft a lot, but also because Firefox has a number of weird bugs like IE6 used to have, and is slowly lagging in the race.

Next to browsers, I spend most of my time on the command prompt. I use Console2 for tabbed console windows. Given the number of command prompts I open, this is often necessary. I use bash in Cygwin as the default shell. Haven’t had the need for PowerShell.

The only text editor I use is Sublime Text 3. This is the only text editor I’ve used for the last 3 years. The only plugin I use is PlainTasks which I use as my todo list. I write my blog posts in Windows Live Writer, which makes blogging offline quite painless.

For image editing, I use PicPick to capture screens and basic editing. Since I haven’t upgraded to Windows 8, I don’t have the snipping tool. But PicPick also lets me pick colors from the screen, which is pretty useful when copying designs. For slightly more serious editing like changing colours, adding annotations, etc., I use Paint.NET. It’s close enough to Photoshop for most practical uses. On rare occasions, I’ve needed to power of GIMP – especially to remove background on images. But when even this fails me, it’s ImageMagick to the rescue, with inscrutable command line options that can morph Obama into Osama. If I want to edit icon files (to create favicons, for example), I use IcoFX. For vector graphics, I use InkScape, which has a steep learning curve but doesn’t seem to have a good free alternative. To edit shapefiles, I use QGIS, and Shape Viewer to view them.

For music and movies, I’ve kept it simple: I use VLC. It lets me stream on to my iPad. I can also watch/stream movies as they are being downloaded via μTorrent – which is probably the coolest feature feature of any torrent client. I store all my music in one large folder, and keep .m3u playlists. These are rsynced periodically into my Android phone.

For audio editing, Audacity remains my best bet. However, for video editing, my needs have changed. It’s usually screen-recordings I need to create, so I don’t use VirtualDub much. I’ve moved from CamStudio to Microsoft Expression Encoder Screen Capture (long name for a rather nice piece of software that works reasonably well.)

To read books, I’ve started using Calibre, simply because it can read both ePub and .mobi formats. Since then, I’ve been using Kindle less. I continue to use my old copy of Microsoft Reader, even though the product is dead, because I have a lot of .lit files. (That’s one of the advantages of software over online services. Even if they pull the plug, you can use an old copy of the software. And it works!) To read PDF files, I use Foxit PDF Reader. On the extremely rare occasion that I need to print PDF files from a software that does not support PDF printing, I use CutePDF Writer.

For file sharing, I use Dropbox for files. It’s simple, popular and just works. I tried BitTorrent Sync as a peer-to-peer alternative to Dropbox, but the interface has a long way to go before it’s usable. I do hope something emerges. For screen sharing, I use TeamViewer (which is fast) or join.me (which doesn’t require a client). Though I use Skype for calls, I don’t find its screen-sharing fast enough.

I play around with data a lot. This is mostly done in Python, for which I use Continuum’s Anaconda builds – they have most of the useful packages built-in. When I need to scrape Javascript-based websites, I try CasperJS on top of PhantomJS. This is particularly handy for the several ASPX based Government websites. I also have node.js installed, but don’t really use it much.

I use RStudio as my R IDE. I’m experimenting with Tabula to see if it’s practical to extract PDF tables with it, but my current preference is to use xpdf to convert PDF to text and then process it. For data cleansing, there’s only one tool that I know that’s effective: Open Refine. For network visualisations, I use Gephi, though NodeXL can do a small but useful subset of that within Excel.

For compression, I use 7-zip. The 7z format provides the best compression across most file types that I’ve seen, but even if you want to use ZIP files, 7-zip creates smaller ZIP files. For image compression, I use kraken.io, which offers the best compression I’ve seen. On the desktop, TruePNG and jpegoptim do the trick.

There are several small utilities I use. WinDirStat tells me how my hard disk space is used up, helping clean drives and Dropbox folders. ClipX lets you copy and keep multiple items in the clipboard. Restoration can undelete even permanently deleted files. Truecrypt keeps files encrypted. Putty lets you connect via SSH if you don’t have cygwin. But the mother of all tools is AutoHotkey, which I use for everything ranging from typing my signature to resizing windows to storing our conference bridge numbers.

I’ve a number of web servers on my system. I use XAMPP for Apache, MySQL and PHP, but also have nginx handy. But the simplest, easiest and smallest web server is perhaps Mongoose. Just run it in any folder to start a web server. python -mSimpleHTTPServer does the same for developers. I also have Fiddler installed as a proxy – partly to monitor what URLs my applications access, and partly to simulate slow speed connections for the web apps I build. Apart from MySQL in XAMPP, I have a few databases installed: SQL Server, SQLite and SQLite Studio to read the sqlite3 files.

      Of course, some of my apps apps have moved online, and my earlier post on the A-Z of my browsing history covers that. But there are a few applications that I’ve hosted which I must talk about. WordPress, which this blog runs on, is the primary one on the list. I also use gitlab as an internal alternative to Github, slideshare.net to share slides, and etherpad.mozilla.org to chat / collaborate on code. But the application that I spend the most time on is selfoss – an RSS reader, my replacement for the late beloved Google Reader.

A-Z of my browsing history

When you start typing in the address bar, Chrome suggests a link to visit, based on frecency. What do my recommendations look like?

  • A is for airtel.in/smartbyte-s/page.html – the page where you can check your bandwidth usage. I used to check it infrequently until I upgraded to a 125GB connection. Now I check it every few days and feel miserable that I’ve nowhere near used up my quota. This has coerced me to watch many Telugu movies, of which I don’t understand a word.
  • B is for blog.gramener.com – I blog there on data stories. The last month or so has been fairly active thanks to the elections.
  • C is for calendar.google.com – which has become primarily a shared calendar. It was always indispensible to manage my time. Now it helps my colleagues pick when to call me. Right now, my calendar has events booked about two months in advance.
  • D is for docs.google.com – for effectively one single purpose: shared spreadsheets. This is such a common and powerful use case, and I’m surprised it hasn’t become much easier to use.
  • E is for epaper.timesofindia.com – some of our content has been published by The Economic Times, and I keep doing ego-searches in the print edition. But close behind is eci.nic.in which I’ve been scraping a lot, and election-results.ibnlive.in.com which we created for CNN-IBN.
  • F is for flipkart.com – not facebook.com. I’m not often on Facebook.
  • G is for gramener.com. Naturally. (It’s not surprising that it’s not google.com: I search directly from the address bar.)
  • H is for handsontable.com – a library that I’ve been using a lot recently, followed by html5please.com that tells me which HTML5 features are ready for use.
  • I is for ibn.gramener.com – another property we created, but it only just beats irctc.co.in.
  • J is for join.me – a clean way to share your screen without the audience having to install anything (though you the sharer do have to install the software.)
  • K is for kraken.io – an amazingly efficient image compressor. As you might have guessed, I lead a strange life.
  • L is for learn.gramener.com – our Intranet. Sorry, you can’t access this one.
  • M is for mail.google.com. I’ll probably be moving away from gmail as a backend this weekend to Mail-in-a-box, though. Google’s pulling the plug on Google Reader has shaken my faith.
  • N is for news.ycombinator.com. When I’m bored and want to watch something while I have dinner, I don’t open YouTube. I open Hacker News.
  • O is for odc.datameet.org – the Open Data Camp. I’m quite into open data.
  • P is for pay.airtel.com, but if you ignore the number of bills I pay, it would be pandas.pydata.org, the home page of a remarkable data processing library.
  • Q is for quirksmode.org, PPK’s remarkable browser-compatibility guide
  • R is for reader.s-anand.net, my self-hosted RSS reader. It used to be reader.google.com, but Google let me down there.
  • S is for s-anand.net – this blog.
  • T is for twitter.com. Unlike Facebook, I don’t dislike Twitter so much.
  • U is for underscorejs.org. Clearly I need to get a life.
  • V is for visualizing.org. They have a number of interesting data visualisations.
  • W is for webpagetest.org – it helps measure the speed of web pages.
  • X is for xem.github.io. I’ve probably visited this page once, but it’s the only one in my recent history that starts with X
  • Y is for youtube.com. I lied. I spend an order of magnitude more time watching Telugu movies on YouTube than on Hacker News.
  • Z is for zoemob.com. Again, a page I visited only once, but there’s nothing else in Z at the moment.

Why I’m blogging less

My blog’s been through a number of phases. Between 1996 – 1999, it was just a website with a few facts about my and some of my juvenile ramblings. Inspired by robotwisdom.com, I converted it into a blog – except that I didn’t know what blogging was and just called it “updating my site every day.” It was mostly a link blog.

In 2006, around the time when I moved from Mumbai to London, I reduced my link-blogging and started writing longer articles talking about my experiences. This was a fairly productive phase, and I was churning a few dozen articles every year until 2012.

In the UK, I didn’t know many people, and wasn’t comfortable going out of the way to interact. My blog was the primary means of sharing my thoughts and work.

In 2012, when I moved back to India, that changed. I started speaking at various events. (Some of my talks are recorded.) I’ve been speaking at one or two events every month, which is roughly the volume of blogging I was doing since 2006.

So, effectively, my output medium has changed. Instead of writing, I speak. Correspondingly, my blogging has come down.

How does it feel? Well, on the one hand,  there’s a lot more direct feedback when you’re speaking to an audience. You can interact with them, ask questions, play games – all of which I can do on a blog as well, but this is real-time. When my audience laughs, I steer my talk more towards funny insights. When my audience claps, I steer it towards more impressive techniques. When my audience reacts like dead fish, I switch to Q&A. When my audience is lost in their own conversation, I terminate the talk early.

Effectively, my content is often shaped in real time. And that can be (usually) an exhilarating experience. I used to worry that the talks didn’t have the permanence of blog posts. But like I said, many of them are recorded. I also worried that the audience response would not be permanent, like blog comments. But Twitter fills that void.

For example, yesterday, I was speaking at the Great Indian Developer Summit. Here are the tweets going out as I was speaking.

Kashinath Pai. P.: #GIDS visualising data by Anand »

Naresha: Looking forward for a cool ‘Visualizing Big Data’ presentation from @sanand0 #gids »

ARAVIND CHEKKALURE: #gids watg for a solution in visualizating bigdata..woww »

Raj: Analysis of big data and visualization of big data is very different #gids »

Sundarraj Kaushik: Now to visualize data with Anand at #gids »

Raj: Anand’s session on visualization of big data surly interesting talk of day. I attended previously #gids »

UK Gupta: Another Excitin &Interestin Session “Leveraging #Cloud Services2Build & Integrate Analytics in Ur #IoT Solutions” by @Ragural #IntelDZ #gids »

Siva Narayanan: Doordarshi party is the worst loser in Indian politics #gids »

Siva Narayanan: Very cool viz about Indian Elections from gramener #gids »

ARAVIND CHEKKALURE: Examples for visualiztion that anad took is rally imprazv #gids »

Siva Narayanan: Margin of victory for winner isn’t affected by number of candidates. Affects runner up. #gids »

Goutham G: Enjoyed every bit of information on xls by vinod #GIDS »

Sanaulla: Very interesting facts and presentation by s anand in visualizing big data #gids »

THIYAGARAJAN.R: #gids Hi everyone, Anand session on Data visualization is interesting… happening on Main Hall »

Sanaulla: Visualization helps grasp huge amount of data quite easily #gids »

Vignesh Rajendran: Sanand might be called @NateSilver538 of Indian politics analysis #gids »

45hw1nk5: By far the beat talk so far, visualising data by S Anand from Gramener. #gids »

Rahul Sharma: On the Everest of knowledge with S Anand.. Courtesy – ‘Big Data’ 😀 #gids »

Sundarraj Kaushik: A very pertinent subject visualization of election statistics at #gids. »

Siva Narayanan: UdayKumar has 1600 cases against him #gids »

Rishi Raj Srivastav: Great Indian politics (data) visualization by Anand. #GIDS »

Siva Narayanan: Singh has been most popular last name in Indian elections every time #gids »

ARAVIND CHEKKALURE: Big data visualization is this much easy..like anand speks #gids »

Sundarraj Kaushik: A very colourful presentation without actual mention of big data or visualization. Wonderful presentation at #gids. »

Govind Kanshi: Gujarat, Maharashtra have longest names fighting in elections #gids powerful story as usual by @sanand0 »

Venkat ramanan v: Data visualization at it’s best. #gids »

Kamlesh ®: RT @govindk: Gujarat, Maharashtra have longest names fighting in elections #gids powerful story as usual by @sanand0 »

brntbeer: Talk about last names and regions of India. I’m definitely an outsider! #gids »

Sundarraj Kaushik: Is the dropout of girls the cause of better results of girls. Anand at #gids »

Sanaulla: Best session of the day: visualizing big data #gids »

ujwala: Visualizing big data session is very very interesting. Nicely done. #gids »

Siva Narayanan: Sun sign has a big impact on exam performance #gids »

Venkat ramanan v: Intriguing session on visualization #gids http://t.co/sezeRP48BM »

Siva Narayanan: Almost nobody is born in august in India! #gids People are fudging birth dates. »

Raj: Thanks #saltmartch for invite such a good speaker. #gids »

ujwala: RT @K2_181: Almost nobody is born in august in India! #gids People are fudging birth dates. »

Vinod Srinivas: @greatindiandev #gids #Anand was at his best in his session on #Visualisation »

Kiran Bhat: Lets get people to SEE data #Gramener #gids »

Sonali Patnaik: #GIDS “lets get people to see data” good session @sanand »

Amol Khanapurkar: Easily the best session at #gids for me by S Anand from http://t.co/1lVuBMpPlW »

isha jain: Amazing facts and awesome session on data visualization by Anand… #gids »

Kashinath Pai. P.: Absolutely mind blowing presentation by s anand #GIDS »

Sundarraj Kaushik: Thanks to Anand S for a marvellous and pertinent presentation at #gids 2014 »

Naresha: @sanand0 Those were amazing visualizations of data. One of the best sessions of #gids. »

Amol Khanapurkar: Data visualization can provide insights that no amount of analytic processing can hope to provide. #gids »

Vijay Singh: Session on big data visualisation was a joy ride #gids »

Mrugen Deshmukh: @Gramener Most entertaining talk yet. by S. Anand #gids »

Kashinath Pai. P.: Wonderful work @greatindiandev . inviting @sanand0 was absolutely amazing. #GIDS »

Sachin: That was an really awesome session on big data visualisation.. Had fun… #gids »

ARAVIND CHEKKALURE: Its reLy gd session by anand on visualizatg Bigdata..but never touch any tools and technologis. DisAptD #gids »

Harpreet Singh: Great session by anand Add visualisation to data to make it information #gids »

Raja Guru T: #gids thing of awesomeness visualization of large data. Lovely session by Anand. Way to go Saltmarch. Loving it. »

Raja Guru T: RT @ujwala: Visualizing big data session is very very interesting. Nicely done. #gids »

Prashanth: #gids data visualization session was amazing »

Subhashish Dutta: At #gids today, awesome visualization of some big data in the Indian context by Anand of Gramener. »

Japesh Thyagarajan: An impressive and fun session from Anand on Visualising Big Data, amazing illustration of Election and Education system , Hats off #GIDS »

Raj: I must say visualization of big data best session of #gids »

Apart from being able to preserve comments, I get to hear of this feedback a lot quicker than on a blog.

What I miss, though, is discoverability. When I blog, search engines index the content for anyone to find. I still get relevant comments on 15-year old blog posts. That, I suspect, will not be the case even for recorded talks.

But in any case, I’m afraid I will continue blogging less and speaking more over the course of the next few years. Please bear with me until then!

A utilitarian’s apology

A couple of years ago, my HTC Explorer’s screen died. I bought a Micromax A50. This triggered a series of reactions prompting this post.

I have many defects. Like most men, I can’t tell colours apart – like the difference between pink and purple – and am constantly corrected by my six-year-old. I can’t hear two people at the same time – or even in-between each other. I can’t find things outside of my narrow field of vision. I can’t recognise faces, and need at least three one-on-one interactions before I place people. (If you ask me “Do you recognise me?” and I say “Yes, of course!”, I’m usually lying.) I can’t place voices on the phone. My memory is terrible – my wife’s learnt to make me write errands on my laptop. I cannot identify cars – in fact, I couldn’t drive until recently.

I also lack a fashion sense, despite being a keen student of design. I can understand rules of thumb, like how large line heights should be, or why high saturation colours are jarring. I can even give passable judgement on the quality of clothing.

The trouble is, I don’t see much value in it. I’m a utilitarian.

This post is an apology from all utilitarians like me. We’re sorry – we just don’t see the the point of a Mont Blanc pen or a Cartier watch. Our Bic pens and digital watches work just as well. We’re not saying you shouldn’t buy them. It’s just that we don’t understand why you would.

This is not an argument against expensive items. I bought the iPod and loved it. Same with the iPhone 4. I have two iPads. I’m fairly picky about the earphones I buy. The thing is, the reason I buy these is because there’s a value that matches the price. Where I don’t see the value, that’s just throwing money away.

So that’s why I travel in buses or autos. I can work on my laptop while someone else drives. That’s why I walk or climb stairs. I get to lose weight without wasting time at a gym. That’s why I don’t wear a watch and don’t subscribe to newspapers or TV.

For my non-utilitarian friends out there, this is from us utilitarians. Please forgive us. We don’t see the value.

Weight lines, again

A few years ago, I ended up losting weight, mostly by dieting. That worked out rather well up to a point: I lost about 20kgs rapidly. But I ended up putting them back on almost as rapidly.

What I learnt from this was that dieting made me more short-tempered. It also reduced my metabolic rate. My body would adjust to the hunger and enter a “starvation-mode”, using the limited food ridiculously efficiently. So I’d have to eat even less to continue losing weight.

This time, I’m going to try it the slow way.

Firstly, my targets are moderate. I plan to lose about 1kg every month. (It’ll take me a few years to achieve my target. That’s good – it postpones the time when I’ll say “Ah, I’m thin. I can eat now” and become fat again.)

Secondly, I’m not going to keep myself hungry. I’m just going try to stop eating when I’m not hungry.

This happens for two reasons. One’s because I usually watch a movie when I eat, and keep eating until the movie’s done. The other’s because when I’m between activities, I raid the kitchen. It’s not realistic to pretend that I can curb these tendencies. But it’s possible to be a bit more aware of them.

Stocking the house with healthier foods helps. I also find that some fruits in particular keep my stomach full for longer. They’re low value for money energy-wise, but great for dieting and health.

Thirdly, I’m going to start exercising, but in my own, slow, way. I’m not good at running or going to the gym, but weirdly, I rather like climbing stairs So the next step is to abandon lifts and only use the stairs.

None of these is a big step. But I’m not in a hurry, and these are more like habits I’d like to get into for the rest of my life rather than short-term measures.

Here’s to a lighter 2014!

Motorbike science lab

My cousin’s working on an interesting project at the Agastya Foundation. A group of scientifically inclined volunteers go around on a bike to schools, taking with them a science lab kit, and show children in rural schools a variety of experiments.

Google will award this and 3 other projects (out of 10) Rs 3 crores based on public votes. You can vote for and read more at https://impactchallenge.withgoogle.com/india2013#/agastya|vote