Beautiful and clean diagrams with Keynote

Look at this flow chart like diagram. It is a really nice representation for explaining the concepts of Iterators and Generators.

By Vincent Driessen

If you use git, then there is a big chance you might have come across this article A successful Git branching model by the same author. There are more pretty diagrams in that post as well. For a very long time I have wondered how those diagrams are made. I decided to find out today and it turns out it was done with: Keynote – the powerpoint equivalent in Mac.


Pretty good.

OSM Mapping with AI from Facebook

Facebook and HOT OSM have come together to use machine learning to make maps better. It looks like a mutually beneficial collaboration that will help OSM

“AI is supercharging the creation of maps around the world” is a very interesting development in OSM mapping. It perhaps will reduce the number of hours required to map areas by at least a couple of orders of magnitude.

Automatic feature extraction is nothing new of course. People have been doing it for decades. I should know, I spent two years mastering (supposedly) on Remote Sensing, the domain that deals with capturing information about the earth using satellites and extracting useful information from the captured data. The traditional remote sensing workflow uses techniques like Supervised Classification and Unsupervised Classification for feature extraction. The beauty of machine learning algorithms is that models can be built which can merge these two classification techniques and automate the process.

OSM community AFAIK stayed away from automated data generation mostly because the work involved in cleaning up bad data is more difficult and tedious than in creating new data. It looks like the collaboration from HOT OSM and the development of RapID (enhanced ID), the process put in place ensures that only quality data goes into the system preventing the issues of bad data from happening.

While it is all colourful for the OSM community, the question with profit seekers like Facebook is always what’s the catch? I tend to think there is no catch for the OSM community and that FB has decided to invest some money in the OSM so that they can use the fruits of community work for their benefits. It looks like a mutually beneficial arrangement. The community gets the resources from FB to create a better dataset and FB gets the data for its usage. I am sure FB will extract more value out of their investment in the long run and reap more benefits than the community. They will obviously have their own data layers on top of the OSM data, they will overlay all sorts of tracking data and enhance their capabilities as a surveillance machine. But all that is left to them and their corporate interests.

For now this is a good thing and doesn’t seem to do any harm to OSM.

Internet Dot Org

Yesterday one of my friends posted a message on Facebook saying he supports in InternetDotOrg initiative of Facebook and pointed to a post by Mark Zuckerberg. I had some free time and wrote a eloborate explanation so as to why it is not really a good solution for bringing internet to the unconnected masses. The following text is a repost of the same.

Comment #1:

Hi. First, the issue behind InternetDotOrg is not about internet. It is about control and flow of information.

Let me break it down one step at a time:
Solving last mile internet penetration as you imagine is being done at various levels currently including fibre laying for e-Governance initiatives. This report…/ says 91% of the rural India are connected by at least one mobile operator.

Comment #2:

Next is affordability: Now that is a question we all can ponder. I will take my operator Airtel 2008-09 unlimited 2G data for one month was @98rs, then it was 2GB for 98, then 1GB for 98, then it started climbing up 125, 145 and now it is 175 for 1GB of data. Who is driving the cost up? Is there more demand than supply? Why is 2G data cost rising when Airtel is rolling out 4G?

Comment #3:

I will try to answer them, but I don’t have all answers. Demand – Supply: Yes with smart phones demand has increased comparatively and that too drastically, but instead of moving the users to a higher bandwidth platform like 3G or 4G, telcos are trying to make use of the situation best by increasing prices in a congested bandwidth (is it really congested is a debate in itself :)) If properly billed urban masses can be migrated to 3G networks pretty easily, again due to crappy phones that most buy, 3G battery draining is a bottleneck for such an expansion. So everything is caught up in a muddle, and telcos have chosen the easy way out of charge more on what people use more

Comment #4:

Due to this muddling the once easily available internet has moved farther from the ‘poor and unconnected’ masses that InternetDotOrg says it wants to connect. The actual reality is everyone is connected already, only people don’t know it.

Comment #5:

Now let us talk about this “disadvantaged people of the society who are deprived of opportunity” and how IDotOrg is positioning itself. Disadvantage – Technologically there is none. Economically – YES. So IDotOrg says, it is going to give free access to NOT INTERNET but “..offers free access in local languages to basic internet services like …”, the key difference being internet and internet services. So anyone who partners with FB gets a path to reach the population. If you don’t partner you don’t get a customer. Simple. Personally I am not much worried about this at this point from business stand point and don’t talk Net Neutrality here. At the end of the day, it is a choice, even I might use it, because all I care about internet in my mobile is Whatsapp. Everything else I have my house Wifi.

Comment #6:

What bothers me is the things that we don’t see, while giving a selection of internet services is one way to solve the problem, there are surely many other.

  1. Use public corp like BSNL to provide cheap or free internet in rural areas.
  2. Why not repurpose barely used resources like EduSat satellite?
  3. Why not create a whitespace in the mobile spectrum and leave it free for hyper-local non-profit telcos like a Community Radio?
  4. Use other white space solutions like the ones Microsoft Proposes…/govt-to-test-white…
  5. Use something like Google’s Project Loon with a more stationary setup.

All these solutions are driving at providing affordable internet connectivity, not just Internet Services. Nobody owns airwaves, it is not some exhaustible resource. All of the above won’t happen because there is NO MONEY in it and nobody really cares about a sustainable long term solution for affordable internet.

Comment #7:

Facebook is doing it because, user acquisition has plateaued. It is not a startup but a listed corporation. It needs to make shareholders happy, one of the key metrics is user base. The next billion users of FB are not going to come from America or Europe, but from South Asia and Africa. So there needs to be a way to tap into this potential user base, this cannot happen because of the bottleneck – affordability. So by IDotOrg FB is trying to acquire users. You might say it is a win-win situation for both the users and FB. At this point I should agree. But I won’t. Because I am going to apply a simple test here, imagine the most vulnerable person who has zero idea about online privacy, data tracking, focused advt, behaviour tracking, face recognition and other technology used by FB. Now can IDotOrg collect enough data to make this person’s life miserable? Does the person have any idea of what he is giving up for what he is getting? Is it the right price to pay? Are YOU willing to be that person? Are you willing to live in a flat with the perfect view of the garden, but never being allowed to enter the garden? I cannot. I am not willing to be that person. I don’t want my idea of internet, my access to information, and my choice of using a particular web service decided by a for-profit corporation which makes money based on people’s choices and behaviour.

Comment #8:

I would request you to reread Zuckerberg’s post again and really see has he anything to say except marketing crap. I suppose he is doing nothing but selling.

Getting ready for planet CODE

With the end of TeachForIndia Fellowship around the corner, I am contemplating on jumping into the programming world. So here is a checklist of things that I am going to put up in place and document it along the way.

Get a decent mail ID

Though not strictly related to planet code, I wanted to have a decent email id. The one I used ~~aruntheguy at gmail~~ was created when I was 15 and not so professional. Hence I have moved the mail to

Creating a online presence

These days online presence is mostly Social Media. I deleted my Facebook account and have only Twitter, but that alone isn’t sufficient.

Moved blog from static-site Pelican back to wordpress for easy theming and maintanence
Created a home page where I can showcase stuff

Customer Research

Making use of a skillset is all about selling it. So what do the buyers look for? Being a follower of Coding Horror I started of with his post on How to hire a programmer.

Here are the things I learnt:
1. Know to really write a program – I pass
2. Should have a portfolio – Need to create a portfolio page
3. Be culturally fit for the role – Depends on the company
4. Answer computer science theoritical/tricky/nerdy qustions – Well you can’t really prepare for them, can you? May be the theory part, but again when was the last time I thought about hash tables, 3rd year of my college?
5. Expect an audition project or a real world problem to solve.
6. Pitch in front of small group – have mixed feelings about this. But good to know this might be coming.

1 is done, 2 requires some work, 3 can’t really be worked on, 4 is subjective on how we look at it, solving puzzles and learning nerdy jokes is not the point, it shows the recruiter how we approach a problem and how much passionate about programming is a person. I will leave them at that. Finally, the points 5 and 6 are subjective to personal preference and circumstances as outlined in the comments by various people. I am sort of going to forget them for now.

Product preparation

I am the product, in case you are wondering. The article cited above and others linked in that article give a general idea about the product.
With that in mind, and my long time personal goals, here is the list of things I have in mind to do:

  1. Learn touch-typing!! Yeah, I am a pecker – albeit a fast one. – Done
  2. Learn Vim to the extent I am not going into v mode everytime to delete a set of words. – Ever learning
  3. Get core commit rights for QGIS – its time to work on itCouldn’t fit in time.
  4. Create a Portfolio/Resume/HireMe page
  5. Learn some tools of trade:
    • Plain text manipulations – Regex
    • Shell scripting
    • Code Editor – Vim
    • Version Control – Git + Github
    • Debugging Tools
    • Unit Testing Frameworks
  6. …….

I guess I will add more to the list as I set the goals. For now this should keep me focused.

The year of 2014

Basically I attempted two projects as a personal development venture.

52 Weeks 52 Books: Started with the objective of improving the number of books that I read in a year. Read about a total of 27 books in all this year. Better than any other year in my life. Though the project is a failure, I reaped huge satisfaction in the process.

52 Weeks 52 Maps: Started with the aim of creating and uploading maps for Wikipedia. I think I did only 8 in all. Even those were done in the initial one or two weeks. This failed spectacularly.

Hopefully 2015 would be a better year.