Category Archives: Random/Personal

Random thoughts and rants

Why you should open source your next pet project

After looking into my github account, lot of people used to ask me why I open source my pet projects, especially after looking at my streak at github (my current streak is at 52 days πŸ˜‰ ) the frequency of the question has increased.

I used to come up with an answer by combining these words randomly (passion, show off, free, rebel, linux, anti-Microsoft, license). But today, I realized that there is another (more important) reason why you should open source your (pet) projects.

Your project might have a longer shelf life than your interest in the project and in some cases longer than your life itself.

You might lose interest in the project, but if you have open sourced it, then there might be someone else who will continue to maintain it. But instead if you had just kept it in your hard drive, then it will just become part of the cosmic dust.

Abandoned projects

I have read about many examples where projects are continued to be maintained by other people, when the original creator has lost interest. _why is one famous example. When he suddenly went offline in Aug 2009 people immediately started creating mirrors of his projects and even though he is no more (in the online world) his projects are still being maintained actively.

None of this would have happened if he had not open sourced his code.

Arduino Makefile

Let’s talk about the project that thought me this.

Sometime back, I came across a post which explained how you can program Arduino from command line by using a makefile. I immediately got hooked and started using it when even I was working on Arduino sketches.

Soon I found out a couple of issues and submitted pull requests. Some of my pull requests were accepted and others weren’t. While browsing through the issues and pull requests of the project in github, I found that there were lot of other people who have also contributed various patches to the project. It also seemed that the original author has stopped doing any development or answering pull requests.

I started to consolidate all pull requests and patches from various forks into a common fork and even updated the readme file expressing my desire that one day all these changes would get into the main repo πŸ™‚

Fast forward a couple of months.

Last week, I was surprised to receive an email from the original author, saying that he has lost interest in the project and whether I would be interested in maintaining the project going forward. I happily accepted and he transferred the repo to my account, after I merged all my changes back into the main repo.

None of this would have been possible if he didn’t choose to open source the project initially and also let go the project when he lost interest.

Thanks to Github

Ohh, by the way, I should also mention that some of it was possible only because of github. If github wasn’t there, then it would had been difficult for me to find and consolidate other forks and he also wouldn’t have noticed my fork or the effort that I was spending on the project.

Also, the recent addition of redirects by github made the repo transfer really seamless.

So remember to open source your pet projects by at least uploading them to github. Because you may lose interest in the project some day, but the project might still continue to live long after that.

Happy Open sourcing πŸ˜‰

Posted in Arduino, Random/Personal | Tagged , , , | 7 Comments

Renewing Indian passport online

My passport was due for renewal and I just renewed it. Even though the process seems relatively simple on paper, there were quite a few things I learned on the way which would definitely help someone who has to go through the process again. I thought of documenting and sharing them so that it is useful for people who are in the similar situation.

Disclaimers

Couple of disclaimers before we start.

  • As with government offices in India and state of an atom, your experiences may vary πŸ˜‰
  • I am documenting the steps that worked for me as of Jan 2013. It is possible that rules might have changed.
  • I renewed it in Bangalore. It might be different if you are doing it in another city/state.
  • Most of it apply for new passport also, but there might be some changes.

Additional changes needed in my passport

In addition to renewing the passport, I wanted to do these additional changes as well.

  • Change my address from Chennai to Bangalore
  • Change my marital status from single to married. Yes I got married about a year back πŸ˜‰
  • Include my wife’s name in the spouse column
  • Remove ECR check. I got my old password while I was in college and it was enabled.

One thing I came to know is that, if you are married then it is mandatory to include your spouse name in the passport by providing the necessary documents. Sorry guys, if you are married you can’t skip it πŸ˜‰

Tatkal and Ordinary

There are two methods to renew passport. Tatkal and ordinary. According to the official statement, if you choose tatkal, then you can expect to get your passport within 10 days and for ordinary it will take about 3-4 weeks.

My passport was due for renewal in Jan 2013. I submitted the online application on Dec 3, 2012 through ordinary method and received my passport on Feb 7, 2013. There were two major reasons for the delay.

  • Getting the appointment
  • Delay because of police verification

If you take both into consideration, it is fair to say that you will get your passport in 3-4 weeks even if you choose the ordinary method.

Documents needed

For passport renewal, you need the following documents.

  • Old passport
  • Address proof (need two separate proofs)
  • Marriage certificate or affidavit(to add your spouse name)
  • Degree certificate (for removing ECR check)

For address proof I took the tax document (katha extract) of my house, EB bills, Gas bills, letter from my HR dept and my company id card. Even though the website says only two is needed, they asked for all the above from me.

For adding spouse name, you need the marriage certificate or an affidavit. If you have a marriage certificate it is better to carry that instead of an affidavit. For me they objected since my affidavit was issued in Chennai and was registered using Tamil Nadu stamp paper. I told them that I got married in Chennai and they accepted it on the condition that they will keep the original.

To remove ECR check, I had both my BE and MS certificates and they were fine with that.

It is also safe to carry your 10th and 12th mark sheet and also some additional certificates with have your date of birth. This is not specified anywhere in the website, but they asked me for this. The reason they gave me for this was that, if you are renewing your passport in a new city, then they can’t retrieve your old documents and you have to submit them again. I was not able to argue beyond that but luckily I was carrying them that day.

Process

Okay so let me explain the process now. This is more or less the same for new passport also.

  • Submit your application online
  • Get an appointment for the visit to passport office
  • Visit the office and submit the documents
  • Complete police verification
  • Receive your passport

Submit your application online

You have to create a new account at http://www.passportindia.gov.in, download the application form, fill it and submit it back. The site is maintained by TCS, but don’t have any expectations. It is more or less at the same league of Irctc. Links open randomly in tabs, captchas every where, random session lock-in – you get the idea right?

One very important thing to do, if you don’t want any random calls from tele-marketers is to make sure you un-check the “Share my details with tele-marketers” checkbox, while uploading your filled in form. Yes, you read it correctly! Honestly I was shocked when I first saw it. I don’t know why they want to do this in a site where you upload sensitive information about you. I don’t know how much MEA (Minister of External Affairs) or TCS (who is maintaining this site) is going to earn by doing this. Anyways that is the state of things and make sure you uncheck the checkbox and hope they respect it.

Getting an appointment

Update: From May 28, 2013, Bangalore passport office has started to open the slots for 21 days.

If you thing uploading the document was tough, then you have not seen the real thing πŸ™‚

Personally for me this was the most irritating, difficult and time consuming part of the entire process.

They give appointment only for the next two days. The booking starts at 6PM for Bangalore (varies for different cities) and gets over in less than 100 seconds! (not minutes!) You need to fill in 3-4 captchas during that time and most of the times the site just hangs or times out.

It took me one full month to get the appointment after trying it to get one exactly at 6 PM every day.

The following are some of the things I learned the hard way. Hopefully this should help you to get appointment easily.

  • Don’t try from your office or places where a single public IP is shared. They do filtering based on IP (I don’t know why)
  • Be careful while filling out the captchas.
  • Try exactly at 6:00 PM. Not at 5:59 or 6:01.
  • Close everything in your machine and have only this tab open.
  • Try to do it from a place where you have decent broadband speed. Trying from a slow connection usually fails.
  • Try to choose a time-slot between 12-2PM. Most people don’t choose this time period and the probability of getting this time slot is higher.

Visit the passport office

When you visit the passport office, make sure you are carrying all your documents and be on time. I guess you don’t want to loose the appointment that you got the hard way πŸ˜‰

At the passport office, they will first check your documents and then will give you a file and token number. When the number is displayed on the display screens, you have to go to counter A, where they will check and scan your documents, collect the fees and take your photo. I saw a couple of people wearing blazers with tie and others using a hand mirror and comb. It’s up to you, if you want to do it πŸ˜‰

After that you have to go to counter B when your token number is called. They also will check your documents and will ask you to go to counter C. In counter C, they will check your documents again, put a cancel seal in your old passport and will ask you to go to the final guy, who will give you an acknowledgment.

If you are lucky the entire process should be done in around 2 hours. I was very un-lucky the day I went and ended by waiting there for 6 hours πŸ™ Hopefully you will be lucky enough πŸ˜‰

Complete police verification

Let me state the theoretical process first of how things should happen and then the practical process of how things actually happen.

The theoretical process is that your application is received by the police station, then come to your home to verify you stay there and then forward the application.

But in practice, this never happens. You should consider yourself to be lucky if they atleast have a courtesy to call you. For me they didn’t even give me a call. I waited for more than 3 weeks and went to the police station after that. That’s one of the reason why my passport got delayed.

The police station receive the application in a day or two after you visit the passport office. Wait for a week and if you don’t get a call, it is better to visit them. Make sure you carry all your documents and two passport size photos. Be prepared to be treated badly and also expect to wait there if needed. It is a police station and I guess you get the idea.

You receive your passport

Once the police forward your application you can expect to receive your passport by post with-in a week. Make sure you are either at home or have someone at home with your photo id.

Congratulations you have renewed your passport πŸ˜‰

Posted in Random/Personal | Tagged , , | 91 Comments

Looking back at 2012

2012 had been a great year and it just ended. I thought of publishing my year end review for 2012 as I have done for the previous years.

Personal Highlights

If you have read my year end review of 2011, then you would have know that I got engaged in 2011 and I got married in 2012. Before marriage, pretty much everyone were saying that my life is going to change completely, but fortunately for me things haven’t changed much except that I have another person in my life who cares for me more than I care for myself πŸ˜‰

Talking of marriage, I am very happy to know lot of people really liked my wedding invitation and recently a couple contacted me from Indonesia asking if they can use my wedding invitation design for their marriage.

Travel Highlights

Another thing which most people predicted for me is that after marriage I will not get much time to travel, which again proved to be wrong πŸ˜‰ I continued my tradition of at least one international travel and a couple of domestic travel.

HardwareFun

2012 had been a great year for me from the hardware and robotics perspective. I continued working on hardware and Arduino related stuff which I picked up in 2010.

One of the important things regarding hardware that I did in 2012 is that I launched hardwarefun.com one of my pet projects that is close to me. I created hardwarefun.com to document my different adventures with hardware and also help other people who also want to learn hardware programming.

Talks and Workshops

Another thing which I improved in 2012 is my public speaking skills. I gave around 15 talks and also conducted my robotics workshop. The following are some of my favorite talks.

You can see the complete list of talks that I have given so far from my talks page.

Blog Stats

The following are stats generated for this blog by my Year End Stats WordPress Plugin.

Number of posts by year Number of comments by year Average length of posts by year Length of all posts by year

The number of posts have increased a bit and I am happy about that, since I am also writing posts in at hardwarefun as well.

I am planning to write more posts in 2013 and hope that with talks, workshop and personal life I get some free time to keep up this word πŸ˜‰

What’s in for 2013?

So what’s in for 2013?

I am planning to concentrate more on my WordPress Plugins a bit and I already have some pretty good ideas. So stay tuned πŸ˜‰

Regarding hardware stuff, I am planning expand HardwareFun.com and write more posts there and also continue working on Arduino and start playing around with Raspberry Pi as well. So it is going to be pretty exciting.

Regarding talks and workshop, I am planning to continue my robotics workshop (the next batch is going to be at the end of this month) and also start giving talks and workshops on other areas as well. Planning for a Hadoop and Pig workshop/talk soon.

From the looks of it, 2013 seems to be an exciting as well as a busy year and I am really looking forward to it.

So how was your 2012?

Posted in Random/Personal | Tagged , , , | 5 Comments

Started tracking time spend on my pet projects

Regular readers of my blog will know that I have lot of pet projects. WordPress Plugins, Android Apps, Arduino projects, jQuery Plugins and a whole variety of other hobbies as well.

Some of them are really popular. For instance my Bulk Delete WordPress Plugin has been downloaded for nearly 100,000 times. The flip side of it is that these pet projects have some additional baggage as well. Support questions, regular updates, feature requests etc can be sometimes very time consuming.

I always wanted to know the projects, which takes up most of my free time, but didn’t had any metrics or logs. So I have started to track the amount of time I am spending on each of these projects.

The advantage of this is that, now I know which project are real time hogs and can have some metrics to decide on whether it is worth spending time on those projects or not. I am also going to add this data to the project readme files, so that people who use it might also know the amount of time and effort I have put it on those projects πŸ™‚

I have already started this and the recent release of my Bulk Delete WordPress Plugin had this metrics. I have spent close to 11 hours for releasing the update to the Plugin.

Let’s see how this new experiment turns out to be.

BTW do you guys also track your time spent on pet projects? If yes, then share your experiences as well.

 

Posted in Random/Personal, WordPress | Tagged , , | 3 Comments

Dissecting my wedding program

A couple of people to whom I gave my wedding card, were not able to fully understand the program that I wrote in it and have asked me to explain it. Now that I have kind of settled a bit after my wedding, I thought of dissecting the program and explain it.

Code

Let’s have a look at the code one more time.

My marriage Invitation

You can also get the code from github.

Language

To start of the program was written in JavaScript. Whoever feels that JavaScript is not a *real* programming language, should first read these articles by Douglas Crockford.

Anonymous Function

The program starts with an anonymous function. This is not strictly needed by JavaScript syntax, but it is always considered a good practise to do and I generally do it in all JavaScript code that I write.

Object variables

Next, I create two instances of the Person object. This is similar to creating objects in any object oriented programming language.

Information about wedding

As you might have guessed, gettingMarried function is that one which prints the information about the marriage. I am passing a JSON object to the function as an argument with the required information.

Checking the responsibility

This is the main crux of the invitation. I am verifying the responsibility before the marriage and after the marriage.

If you look closely at the isResponsible function, you will note that it has a special condition, which will always return false for me, irrespective of my marital status. The hidden message is that, I will never change after marriage. It’s going to be month since I am married and I can say that I haven’t changed yet. Hoping that it continues for the rest of my life πŸ˜‰

Posted in Random/Personal | Tagged , , | 3 Comments

How I designed my wedding invitation

Well, as most of you know, I am getting married in a couple of weeks. One of the important things which I needed to do for my marriage was to print the wedding invitation card.

I am not that good at writing stuff that needs to be put on the invitation card, so instead I did what I do best. I wrote code πŸ˜‰ Yes both figuratively and literally πŸ™‚ Need proof? check the photographs.

My marriage Invitation

Code

After deciding that I wanted to write code, I had to decide the language. Initially I thought of writing an HTML document with tags. But somehow I was not convinced that HTML is a real programming language (okay, I am not here for a language war πŸ˜‰ ).

After giving some more thought on it, I decided to do it in JavaScript. It was also fitting that I do it in JavaScript, since I had been mostly a web developer through out my career.

After a few minutes I had the basic version. After a couple of revisions, I finally came up with this version.

Update: I have also posted an explanation of this code, if in case JavaScript is not your cup of tea.

Screenshot

After completing the program (which I nicknamed as the “program that changed my life”), I had to decide how to print it on the card. Navneet Nair, who works with me, suggested me to put a screenshot of my IDE with the code inside.

Even I liked the idea and that’s how I decided to take a screenshot of my IDE and have it printed as the card.

Vim/Vi

This was a pretty easy decision to make. I was typing the code in vim (macVim to be exact) and after trying out a couple of color schemes, I finally settled on the desert color scheme

Envelope

The next step was to design the envelope. I did a basic version in Photoshop, by picking up some quotes from the programmer Ryan Gosling meme and placing them in comic sans font πŸ™‚ I then asked Navneet if he would like to change anything. He looked at it and said that he would like to change everything πŸ˜‰ He then did a quick design in Illustrator with the quotes and it came out very well.

NFC

I wanted to increase the geeky quotient of my wedding invitation a little more and that’s when I thought of embedding NFC chips in the card.

I first heard about NFC in Google’s IO last year and first saw it in action at DroidCon organized by HasGeek a couple of months before. I got hold of the person who had a stall at DroidCon and bought NFC stickers from him. They were a little costly but added a lot of geekness to the invitation πŸ˜‰

I then used the NFC Tag Writer Android app, to write a url on these NFC chips. If you tap an NFC enabled phone on my invitation, it will automatically open up a url which has information about my marriage, address and map to the marriage hall etc.

QR code

After doing the NFC stuff, I realized that most may not have a NFC enabled phone. That’s when I remembered about QR codes and generated one.

If I had time, I could have loved to customize the QR code a bit, but I didn’t have much time, so settled with the default one. You can find it at the back of the envelope.

Printing

After designing both the card and the envelope, I worked with a person from a print shop called PrintWorks who helped me get it printed. They were very helpful and delivered stuff on time and I highly recommend them.

Files

All my design files including the JavaScript source file are available at github. Feel free to use them for your own wedding (if you are not married yet πŸ˜‰ )

Credits

There are couple of people who helped me to get this card designed and printed. A huge thanks to all of them.

  • Navneet Nair, who works with me at Yahoo.
  • Swamy from PrintWorks
  • Kiran from hasgeek

Ohh, btw don’t forget to be present for my wedding πŸ˜‰

Update:Β  The following are some of the words which people said after seeing my invitation πŸ™‚

  • Amazing..
  • The geeket card ever..
  • Collector’s piece..
  • I am gonna frame it ..

Posted in Random/Personal | Tagged , , , , | 58 Comments

Looking back at 2011

2011 had been a great year and it just ended. I thought of publishing my year end review for 2011 as I did for the previous years.

Personal Highlight

Finally..

Well do I have to explain anything more? πŸ˜‰

For those who are still staring at the picture, yes I am β€œformally” engaged now πŸ™‚ My marriage is going to be on Feb 6th 2012 (Just another 21 days to go)

Other highlights in 2011

Apart from the big personal update the following are some of the other highlights of 2011.

I started of the year by changing the permalink of my blog, had a most memorable day on top of a hill, released my first Arduino library, met my idol Doug for the first time in person, went to a couple of HackU events, released my gist-it WordPress Plugin, bought an interesting toy, created my pet bot Asimi, gave a couple of talks and finally experienced snowfall for the first time in my life.

Travel highlights

On the travel front I had a pretty good year. Following are some of my travel highlights

Blog Stats

The following are my blog stats generated by my Year End stats WordPress Plugin.

no-of-posts-2011Β no-of-comments-2011

avg-length-of-posts-2011Β total-no-chars

At the starting of 2011, I wanted to increase the average size of the blog post that I write and I have succeeded in that.

But, when compared with the previous years, I have written fewer posts. Getting committed, travelling places and what else you can expect πŸ˜‰

With me getting married in 2012 I am not sure how much free time I will get, but I will definitely try my best to increase the count in 2012.

What’s in the card for 2012?

I am planning to spend more time on Android and Arduino stuff and also planning to enhance my pet bot Asimi. So expect some news about some cool projects. πŸ˜‰

Well, from the personal front, I am going to get married in 2012. Not sure what to expect out of it, but I am eagerly waiting for it. It’s kind of really exciting to realize that you have finally found someone with whom you are going to spend the rest of your life. πŸ™‚

So how was 2011 for you?

Posted in Random/Personal | Tagged , , , , , | 4 Comments

My plan for December

Regular readers of my blog would now that I generally will be busy in December travelling. But this year, it’s crazy πŸ˜‰

Here is an outline of my plan for December. You yourself can figure out whether it is crazy or not πŸ™‚

I am leaving to Goa on 1st of December for team outing with my teammates and will be back to Bangalore on 3rd night. Then the next day (4th Dec) I am leaving to US on a Business trip. After spending two weeks there, I will be back to Bangalore on 21st Morning. That evening I have a party at office. And after that, my office is closed for forced year-end vacation in which I will be travelling again (even though I haven’t finalized the place yet).

Ohh, by the way, did I mention that I have two weekends in US and I am planning to go Las Vegas in one weekend and to New York in the other.

And did I mention that I am missing two other outings from office because I don’t have enough days in December πŸ˜‰

Is it crazy enough πŸ™‚

So if you sent me an email and if I haven’t responded back, then you know why πŸ™‚

Meet you all in 2012 guys.

Posted in Random/Personal, Travel/Trek | Tagged , | 4 Comments

Looking back at 2010

2011 started off as a busy year for me and so I was not able to publish my year end review post for 2010 on time. Finally I have got some free time and without much delay, here is my year end stats and review post for 2010, which just ended.

Highlights of 2010

2010 has been an eventful year. I started giving talks regularly in local meetup groups, started having crush on CouchDB and then on Arduino, learned a lot of stuff about Android and even released my first app to the Android market, released a couple of WordPress Plugins and themes, together with a couple of RoloPress releases, created my first jQuery Plugin, consolidated all my code to github, bought a new bike and travelled a lot.

Time for some stats now πŸ™‚

Number of Posts

no-posts-per-year

When compared with 2009, the total number of posts has gone. One important reason for this is that, I have been spending more time on stuff like Android and Arduino rather than writing posts. Hopefully this year, I will get some free time so that I can start writing more posts like 2009.

Number of Comments

no-comments-per-year

Like the number of posts, the number of comments has also gone a little low. Hopefully this year as I start to write more posts, the number of comments should go up.

Average number of characters per post

avg-length-posts

The average length of posts as stayed the same when compared with 2009. I am planning to maintain the same for this year too.

total-length-of-posts

Again, because of the less number of posts, the total characters that I have written in 2010 has gone down. πŸ™ Hopefully this should go up in 2011

What’s in for this year

This year I am planning to concentrate more on Scala, Android and physical computing using Arduino. So expect some cool and fun projects this year. πŸ™‚ Also I am planning to travel a lot this year, so keep a watch on my Flickr stream as well.

<shameless self promotion>I have created these wonderful graphs using my year end stats WordPress Plugin. If you run a WordPress blog then you can also generate these graphs by downloading my year end stats WordPress Plugin.</shameless self promotion>

Posted in Random/Personal | Tagged , , | 2 Comments

Smart ways to rule the streets ;)

I have been pretty quiet on this blog for quite some time. It’s mainly because of my new addictions. First addiction is physical computing (more about it later). The other one is that, I have started roaming around the city with my new bike πŸ™‚

New Bike

Ever since I moved to Bangalore, I was planning to get a new bike, instead of bringing my old bike from Chennai. As with anything I buy, I started my research and finally settled on two. Bajaj Pulsar 220 and Yamaha FZ-S. I test drive both and both were pretty good, but in the end Yamaha FZ-S won on the basics of exclusivity.

If you go to any parking lot, you can see hundreds of Pulsars, but only a few FZ-S and I liked my bike to be unique. πŸ™‚

Yamaha FZ-S

Specs

You can check out the full specs of the bike from the manufactures site.

From my experiences so far

Pros

  • The bike is designed for being exclusive and to attract people – and it does it very well.
  • Complete digital display
  • Awesome road grip
  • Has an excellent self-starter. I have not faced any problem with it in the last 20+ days.

Cons

  • Mileage – If you want a bike which gives good mileage, then this bike is not for you. I am hardly getting around 35 Km/Litre of petrol. πŸ™
  • Because of the shape of the tank, if you try to push the bike forward while sitting on it with your legs, you might hurt yourself.

Apart from it, I really like the bike and it has so far held up to its tagline – Smart way to rule the streets πŸ™‚

Posted in Gadgets, Random/Personal | Tagged , , , | 16 Comments