Icons/Font related to Indian Culture

There seems to be a clear lack in availability of icons and icon fonts for using in the Indian cultural context. I realized this when we were designing a wedding invitation and we couldn’t find any free available material. So I am creating a list of known objects with cultural relevance and create them in my free time. All the icons you see here are available in Wikimedia Commons in Public Domain License. Feel free to do whatever you want with it. I suggest you upload your derived works to keep the spirit.

  • Nadaswram – Nadaswaram
  • Mridangam – Mridangam
  • Murasu – Murasu
  • Bullock Cart – Bullock cart icon
    • Bullock face – Bullock face
    • Bullock Full – Bullock full
  • Tea Tumbler – Tea Tumbler icon
  • Catapult – Catapult Icon
  • Garland –
  • Pot –
  • Two hands Vanakkam –
  • Cycle Tyre –
  • Cycle tube Catapult –
  • Mango –
  • Banana tree –
  • Full Boil / Half Boil – Half boil Icon
  • Biriyani –
  • Betel Leaf –
  • Head with towel –
  • Head with ear rings and pottu –
  • Kumbam –
  • Banana Leaf with Food –
  • Kolam (Thanks Pravin) –

If you happen to read this and have an idea of what more could be included, kindly leave your suggestions as comments. Or if you happen to find these icons in some form for free usage post the link.

People’s Mobile

Caution: This is a bit wild man.

Here is my idea.

Open a part of the spectrum used for mobile communication for public non-commercial use

Really!? What to do with it?

My plan is to run a community/volunteer/enthusiast/philanthropist sponsored mobile network which is free for everybody to use. That is, if you could bear the initial installation charges. If we could put enough towers in enough places, we could all talk to each other for free, send messages for free, access internet for free throughout our lives. And we can put an end to all this noise that projects messaging apps as technology disruption, we can engage in more serious pursuit that shout on the road internet for net neutrality, do away recharge coupons, payment gateways like PayTM, freeCharge etc., …… oh my, we can actually do away with a lot of unnecessary stuff.Then, we would have an open internet with all the bandwidth that the technology could offer -say “bye bye data plans”.

Wonderful!

Exactly. Isn’t this the best thing you have heard in a while.

Yay, I am the man from an utopian future.

Sadly this won’t happen – Money.

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 arunmozhi.in.

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.

So,
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.

Apparix – Bookmarking in terminal

When working in a large code base like Quantum GIS or when dealing with a lot of repositories in the machine, it is always tedious to cd all the way to the folder we require to move to. Enter apparix, an excellent linux tool I found by googling “bookmarking in the terminal”. This blog post has the complete details of how to use it.

Yay, no longer cd goto/project/src/core/of/module1 and again cd ../../../test/number/three. I can simply do

$ bm projectsrc
$ bm test3
$ bm fancypants4

to bookmark my locations and simply

$ to projectsrc
$ to test3
$ to fancypants4

One more tool added in the arsenal to improve productivity.

Net-neutrality. This is why.

This post is a reply to the previous post by me titled Why Net-Neutrality? or Why not tiered pricing?.

After a hour long discussion and debate with a couple of people, these are the things that tell me why net-neutrality is essentially a social issue and not a capitalist one. I am going to outlay the arguments that I made in the previous article and try to point out the flaws and get a better understanding.

1. Greed of companies like Netflix and YouTube

The flaw with the argument “since these services use the ISP’s pipe for their service, they owe a part of income to the ISP” is akin to arguing a runner ran through this road to win his marathon and thus owes a part of the prize to the local government.

The point that it is streaming that clogs the pipe is countered by the argument that it is precisely because of those services, the size of the pipe is getting bigger and definition of broadband internet getting revised to higher speeds.

2. The cost of usage

I have argued the one difference between electric company and ISP is the cost of usage. While an electric equipment doesn’t mean recurring income to the manufacturer, a web service gets an income. Thus there is cost involved in usage of internet services which the ISPs want a slice of.In short, the ISPs are greedy.

Because the initial cost for both the internet and electric connection are very similar. Replace the electric line with a coaxial or CAT line, replace the local transformers with switches and repeaters, replace the high tension substation transformers with the servers of ISP, we have almost exactly the same setup except only electricity is an utility and internet is not

3. More speed more money

I argued why would any ISP want to create a slow lane if they make more money for more speed / more volume. Simply put, why would there be a fast lane and a slow lane?

It seems that it is exactly for the same reason “more speed/volume more money”. In a situation when the ISP can more money why would he be willing to give out a connection involving the same initial costs for a low volume low income connection? The flaw here is assuming that volume/speed is limited and the ISPs are really worried about their precious resource from getting sucked up by the streamers. I should have known better.

Finally

I previously concluded,

I as a layman consumer is completely ok with the current state of affairs and don’t mind if the billing becomes usage based, or someone creates a fast-lane for those who pay more as long as the slow lane is at the mandated minimum speed, which is the present case anyways.

Though I still say the same, I would say it in fewer words – I want a neutral net, which is the present case anyways 🙂

Why Net-Neutrality? Or Why not tiered pricing?

Update: Kindly read the follow up article Net-neutrality. This is why.

I have genuine question. Why net neutrality? I know there are reams of pages of content answering the question, but I am asking from a completely lay man non-techie version of the question. Why? The only answer that I seem to get is – It protects the interests of the consumer.

Interest or Greed?

The current pricing model used by the internet service providers is something akin to an electric connection. They give you a line to use and bill based on the connection speed and the quantity of data or amount of time you spend online. The electric company doesn’t worry whether you use a geyser or lamp as long as you pay the bill. Similarly the present ISP models doesn’t care whether you stream YouTube or read Wikipedia. The analogy seems extremely apt, except for one difference – the cost of usage.

In case of an electric connection, you buy any equipment that you want to use and pay the cost of the hardware. The more you use the more the electric company gains, the equipment manufacturer gets nothing most of the time. Exceptions like cable TV exist, but again cable is another utility altogether and we will get into that shortly. But in case of the ISP, you buy services over its line which earns money for those services. In this case it is completely opposite; the ISP gains almost no money no matter how much you use any kind of service over their lines.
For example, using geyser on a daily basis could consume a lot of energy and prove to be great revenue for the electric company, whereas streaming movies 24×7 is going to benefit only Netflix of YouTube and does nothing to the ISP except choking their lines.

The ISPs this want to take a part of the money paid to the service as it also utilizes on their resource. The invention of thing like Fair Usage Policy (FUP) is a way to limit this choking of the lines.
So when companies like Google talk about net neutrality (against tired pricing), the real question is whether the company is really trying to protect the consumer or just trying to enjoy the free ride that it currently enjoys.

The Cable TV Pricing

From a consumer standpoint this is certainly against the interest because we don’t really want to pay more for certain services. It is time we visit the cable TV evolution and see what the consumer really has said and done about it.

Initially there were there was only one way of getting satellite TV – Using a Dish Antenna. The intial investment was huge. Then came cable operators, who charged a certain amount of fees for certain number of channels, no choices, all just paid an amount. After that came the Direct to Home (DTH) services replacing the cable TV operator with a corporate body. Until to this day we pay per channel, called packages. And the customer has hopped on merrily with some noises here and there. Nothing in the transition has affected the channels’ (services) revenue.

Applying the same route, we are currently in the cable operator state, where the ISP is giving us a cable, we pay an amount. If the model evolves into one which prices textual data, VOIP, and media streaming at different rates, like that of a channel based DTH pricing, and bills the consumer on what is consumed, a lot of people would might end up paying a lot more as well as a lot less. Just as I avoid all sports channels, I might avoid all VOIP usage. If I am programmer, most of my requirement is software package and code, there is no need for me to pay more. But people preferring YouTube to TV would pay a lot, and thus reduce revenue to business like Apple TV, Google TV, Netflix, etc., but taking away a share of the pie. So for me a consumer, paying on how much traffic I use seems as much legit as big truck paying more than car on a toll road, simply because I use more resource.

This argument so seems biased towards ISPs. What if things like the ones below, said in Wikipedia, happens?

From Wikipedia
Neutrality proponents claim that telecom companies seek to impose a tiered service model in order to control the pipeline and thereby remove competition, create artificial scarcity, and oblige subscribers to buy their otherwise uncompetitive services.

From HuffingtonPost
A fast lane would let some websites operate at higher speeds and essentially relegate many sites — likely smaller, less-moneyed ones — to a slower pace.

Where are the regulatory authorities who enforce mobile communication and telecommunication pricing? Why such an authority can’t be created and clear rules saying what could and couldn’t be charged drafted? Why can’t things like slow lanes be completely outlawed? Say we create a law which says Non-profit sites like Wikipedia, Khan Academy should never be charged (extra) even for streaming content and pricing can only be done on For-profit entities like YouTube and Netflix. Calls for making internet a utility are a step in this direction of regulation. Why would anyone really want to create a slow-lane if more speed and more data transfer results in more money for the utility provider?

So.,

The entire thing about raising hue and cry over differentiated pricing seems to be for only one reason – Greed.
The greed of the companies to make money. They pull us, consumers, into the issue by terrifying us that our bills would shoot sky high and ISPs will fleece consumer. If that is the real issue, I think it is better dealt by talking to (or even creating new) regulatory authorities, consumer protection agencies and other similar governmental organizations and certainly not by tactfully converting a purely capitalistic issue a social issue involving rights and freedom.

I as a layman consumer is completely ok with the current state of affairs and don’t mind if the billing becomes usage based, or someone creates a fast-lane for those who pay more as long as the slow lane is at the mandated minimum speed, which is the present case anyways.

Unit Testing with CasperJS

Today I sat down to create a JavaScript library. I wanted to do it the way I have long dreamed of – TDD (Test Driven Development). There is no dearth of Unit testing libraries and frameworks for JavaScript, so after some reading on the internet settled on CasperJS and PhantomJS combination. CasperJS is just awesome for functional testing, but Unit testing? Even though it supports Unit Testing, it as such is not a dedicated unit testing framework like Karma or Protractor. Read this for more information on TTD frameworks for JS libraries.

Loading plain JavaScript files in CasperJS for unit testing seems to be completely undocumented. I tend to think it is because it wasn’t meant to be webpage-less. But the note on docs of tester module says:

The best way to learn how to use the Tester API and see it in action is probably to have a look at CasperJS’ own test suites.

Thanks for this quote, I found that using the fs module one can load local filesystem files as modules to be used. Using that now I could write unit tests while developing the library and later on write functional tests while using the library.

Here is the file structure

library
--test
  |--unit
  |--test.js
  |--index.html
--src
  |--livetransit.js

And here is are the two tests – i) uses a webpage based approach; ii) uses module approach
https://gist.github.com/tecoholic/937f51b6889448836db8

Live Transit Visualization

After a push from @logic, I started working on a project to show live location of suburban trains based on transit.js. The idea is to make a map similar to this for many cities, with a choice of schedules (weekday/sunday). But I found the jQuery plugin, transit.js, too hardcoded and disorganised to perform what I wanted to and also to my taste.

I found other projects like:

  • LiveBus which does a live status map using SVG maps based on d3.js library and GTFS feeds of the bus data.
  • TransitLive which uses LeafletJS as the map library with their own OSM tiles. The schdule data seems to come from the backend service.
  • NextBus which has a textual realtime status and route maps based completely on Google Maps.
  • King County Metro which again uses Google Maps for the map and a custom way of loading data from its servers. The best map I have seen so far and loads a ton of JS.

Each has its own technology stack solving the same problem.This blog post details the use of GTFS data or the lack of it for realtime visualization. So the generalized picture seems to be that everyone is rolling out a custom version of their own.

So, I am going to create a simple library that can do this.

Here is the mockup usage of the library:

// Create a new livetransit object with the map type
var lt = new LiveTransit();

// Assign a div for the map
var divId = "map";
var mapType = "google";

lt.setupMap(divId, mapType);

// Overloaded to perform both addRoute and initiateMovement
lt.initiateMovement("chennai_velachery.kml", "chennai_velachery_weekday.json");

// ------------------------------------
// other probable cases to deal with
// -----------------------------------
// Specify a different schedule like Sunday/Holiday Schedule
lt.changeSchedule( "chennai_velachery_sunday.json" );
// change the location - city
lt.changeLocation( "new.kml", "new.json" );

Facebook Account Deletion

I just now deleted my Facebook account.

Why?

  1. Freedom – Day by day using it makes me feel as if someone is dictating me how and what I should be talking to people about. The rampant, out of the blue censors by law enforcement and judiciary are the reasons. Even though I have never been a part of any such action, the atmosphere is getting too toxic over there in that domain.
  2. Irrelevancy – Most of the content that I encounter on my timeline are completely irrelevant to me and the only content that I engage with are blogs like Lifehacker and posts of a set of very few friends, both of which I think I can do without having to endure a non-free environment.
  3. Privacy – It has been a great concern for me ever since I became aware of its importance and ethics. Somehow kept telling myself, nothing would affect me. I think underestimating risks is something I am unwilling to do these days after reading “Fooled by Randomness“.
  4. Paranoia – Closely connected to “Privacy” – I was always thinking what if someday I discover that all the stuff that I have shared is sold/shared to someone and that someone uses it for purposes I never suppose it to be? Am I planning murder? No. But what if someone frames me for it? I am NOT paranoid by nature, I walk 1 among the billion+ in the country. But again, not all billion+ walk around recording data about what they read, where they go and what they think.
  5. Narcissism – One of the biggest effect of Facebook on character is, I think, breeding narcissism. It breeds a kind of self importance and provides an easy sense of achievement and forces a person to project a personality, real or otherwise. This becomes especially stressful when considering the fact when one is connected to all sorts of people from high school friends to working colleagues. A few recent encounters with people has left a bad taste in  mouth about the whole “sharing” thing.
  6. Spam – Spam, spam, spam – there is just no end to it. I am generally very efficient in ignoring Ads and spam because all that I look for is content from people and never click any link other than blog-posts. But most of the time genuine and original content is very hard to come by and all sorts of false claims on history, technology, identity creep in along with celebrity, movie and all sorts of eye-ball catching stuff.

After considering all this, the most logical decision to make seems to be to leave the system and reduce a lot of responses that brain generates due to unnecessary stimuli.

Will I ever get on a social network again?

I currently do not have an answer to that. There are a lot of things to be considered as listed above and see how they play out to make a decision. With the current turmoil of internet censorship across the world, misuse of it as tools of destruction, authoritative control, capitalist bait holder, and as an enterprise looking to make money indirectly by using my data, I don’t think I am getting onto it (FB) any time soon. I specifically mean FB here because, there exists an alternate platform called Diaspora* which deals with all of my above concerns (okay, maybe not narcissism), but  jumping into such a platform is pointless if I don’t really have the people I want to interact.