Dancing with the dorks

Early Wednesday morning. I'm entertaining both Sempi and Vian. I start to play some music (Tamil songs) and decided to dance. Sempi reaches for his ear muffs and Vian starts to bounce to the music. 

I have the sudden realization that both the kids are doomed to be dorks if they're learning dance moves from me. Naturally, I start dancing harder. 

Facts about a 9 month old

These facts are based on a sample size of one 9 month old.

  • 9-month-olds can eat 3 whole grapes before they get bored of it.
  • 9-month-olds can go from smiling to crying in 5 seconds flat. I've also managed to reverse this reaction in 5 seconds. Once!
  • 9-month-olds have no sense of personal hygiene. If you try to kiss them on their cheeks, they can turn their head at the last second and slobber all over your mouth.
  • If you give them an avocado to eat, make sure to wash their hair afterward. Avocado leaks out of their hair and all over their face.
  • 9-month-olds are dramatic. They are emotionally moved when you pluck them out of their mother's hand. They cry out in joy for saving them. With tears flowing down their chubby cheeks.
  • 9-month-olds are thrill seekers. Even though they can't walk to save their lives, they will try to launch themselves down the stairs or climb up tables.


In defense of GPL

When I first started coding, GPL used to be the most popular license for open source projects. It was the go to license for someone dipping their toe in the FOSS world unless you're developing software for FreeBSD.

But over the past few years, companies have pulled a brilliant coup d'état and convinced the up and coming programmers that GPL is a virus. If you release your software in anything other than MIT or BSD license the programming community looks down upon that contribution.

Recently I've been seeing a lot of open source maintainers complaining about companies that use their software and demand bug fixes or features but hardly contribute any code or money towards their projects. 

This is the exact problem that GPL was designed to solve. If a company finds value in your code and decide to build upon it, they can either contribute back to the community by making their product open source or pay you for an alternative license that allows them to keep their code closed source.

OpenSource is Socialism. People do OpenSource because they enjoy doing it or they stepped up to fill a need. In a socialistic community, you're not paid for the end product and sharing (or forking) is encouraged. But commercial companies operate on the principle of Capitalism. They're trying to maximize their shareholder's value. Trying to appeal to a capitalist entity to support a socialist endeavor will not work. This is the reason why GPL is designed the way it is. GPL protects the OpenSource source ecosystem from the exploitation of capitalist entities.

But somehow the programming community decided that permissive licenses are the way forward. This is further encouraged by commercial companies because now they can use all this quality software without paying a penny or contributing back to the community. This erodes the OpenSource ecosystem in the long run because we are building software on the ashes of thousands of burnt out programmers.

This is where we arrive at a fork in our journey. 

Should we all use GPL? No.

If you're doing OpenSource because you love what you do and want to see your work used by as many people as possible, go with a more permissive license. But don't expect companies or users to pay for the product. This is never going to work.

There is nothing wrong with trying to make a living through OpenSource. Dual licensing with GPL + paid commercial license is a fantastic option. Don't succumb to the ivory tower programmers who demand all OpenSource software must be permissively licensed. If a company wants to build their profits from your software, there is nothing wrong with asking them to pay your fair share.

If you do take the more permissive license route, take care of your mental health and take steps to prevent burnout. Because whether you like it or not it's coming.

Classical music geeks

I'm a bit of a classical string instruments nerd. I can't pay any instrument but I listen to classical music a lot.

Sempi and I like to name our trucks. Sempi goes for the classics like Mary Anne and Mike Mulligan. I usually go for Jacquline Du Pre, Yoyo Ma and Stradivarius. 

Me: So Yoyo Ma is driving the Stradivarius (the dump truck) and Jacquline Du Pre is digging the dirt with Guarneri (the excavator).

Sempi: Appa, Mike Mulligan and Mary Anne are driving up the hill and coming to the construction site.

Me: Paganini (the steam roller) is flattening the road. Perlman and Heifetz are pouring the concrete. 

Sempi starts struggling with the names at this point.

Sempi: What should we name our back hoe. 

Me: How about Beethoven? 

Sempi: Ok, we'll call it Beethoven Backhoei. But we'll use Backhoei for short. What do you think? 

Me: Nice try buddy, we're calling our backhoe, Beethoven.


My hope is that by the time he starts taking Cello lessons, he's already used to the names of big wigs.

Conversations about an 8 month old

Vian is starting to pull himself up. He stood up and tried to grab everything in his reach. 

Me: We shouldn't keep the water cup here. Vian might grab it.

Yoshi: We just have to keep an eye on him. You might think he has tiny T-Rex hands, but nooo. He's more like an octopus with tentacles.


Alphabet Race - a kid's game

TL;DR: I built a little truck "game" to teach my son alphabets.

I started watching http://javascript30.com a couple of days ago. It's a series of 30 videos that uses vanilla Javascript to do amazing things.

I have only done the first two videos in the series. Based on what I learned in those two videos, I decided to write a small game. My son is a fan of trucks, so I cobbled together a truck race that teaches him alphabets.

The game is written using the latest version of Javascript. It will not work in old browsers (sorry). It is not designed for tablets or phones, you need a keyboard to play this game.

Game: http://alphabetrace.itsybits.xyz/

Source: https://github.com/amjith/alphabet_race/

My goal was to create an educational game that is entertaining but not addictive. 

You can send me feedback about the game via twitter or email.

'Tis the season for giving

Some of you might know that I created a couple of open source projects that became successful.

I added a donate button to one of the project's homepage. A couple of days ago, I received a donation through that link (thanks, Daniel). This is the second donation I've received since it's inception. Needless to say, I was pleasantly surprised.

My current job pays me well, so I decided to funnel the donation to the following charities. It's a small sum ($15) but it had a big impact. 

Solve Hunger: https://onetoday.google.com/p/pnvzxbtk

$5 to provide 4 meals for 5 school children.

Nepal Earthquake: https://onetoday.google.com/p/mjsxg_gq

$5 can provide 785 water purification tablets.

Clean water: https://onetoday.google.com/p/66rfdsta

$5 can provide clean water to 5 children for 3 months. Isn't that incredible?

If you happen to use pgcli or mycli and you're happy with it, consider making a donation. I promise to pick the best charities out there to contribute your donations. :)

Nostalgic Programming

For some unknown reason, I looked up GWBasic today and downloaded an emulator. GWBasic was the first programming language that I learned. I have fond memories of that language. I love the fact that I could switch to a graphics mode and start drawing circles and squares. 

After about 30 minutes of fumbling around, my muscle memory kicked in and I started to write a simple program to draw some shapes on the screen. I asked Sempi to sit with me and help me with the drawing. He wanted me to draw a truck, so I decided to give it a shot. 

He lost interest midway when I started looking up various commands in the programming manual, but I stuck with it. 

Here's the creation in all it's glory. 

Needless to say, I had a lot of fun.