Aman King

Aman King's BlikiControl PanelChange LogBrowse PagesSearch?

Aman King's Bliki

Welcome to my bliki!

My name is Aman King. I'm a software developer working out of India. I used to work for a cool product engineering company in Delhi called GlobalLogic, and am now in Pune working for another awesome company called ThoughtWorks.

Here I'll post my ideas (and opinions on others' ideas) on topics such as Agile, Ruby, Java, coding, a lot of technical stuff, and some non-technical stuff too. Please take a look at the Keywords listed on the left.

If you like what you see, email me at amanking [at] yahoo [dot] com or simply leave a comment on the Talk page of a post. You can also check out my personal website.

Thanks for visiting! Come back often and don't forget to subscribe to my blog feed! Wink

Oh, and btw... the opinions expressed here are those of the author; they are not the opinions of past or present employers or clients. Razz


Agile Mumbai 2010

FileModified: 23 Jan 2010, 13:17Created: 15 Jan 2010, 06:44

I attended Agile Mumbai 2010 on 16 and 17 Jan. I gave a 3-minute Lightning Talk and also made it till the final round of "Programming with the Stars". I also enjoyed what the keynote speakers had to say and did a good amount of networking with fellow enthusiasts.

Overall I think the event has grown over the years. I was part of Agile Mumbai 2008 where I co-presented a workshop on refactoring, and being part of the event again this year, I've noticed improvements. Having international speakers definitely upped the quality of ideas and thoughts shared, and the attendees also seemed interested in stepping beyond the initial adoption curve.

... Read More (717 words)

RubyConf in India

FileModified: 7 Feb 2010, 10:20Created: 2 Jan 2010, 01:06

This is a proud moment for Indian Ruby enthusiasts: India will be hosting its first RubyConf in 2010.

Check out more details at http://www.rubyconfindia.org

Speaker confirmations have begun and a good number of sessions are getting listed. Ahem, one of them happen to be mine: I'm happy to have my proposal "Ruby OOP: Objects over Classes" accepted.

(A special thanks to Sidu from ThoughtWorks Bangalore for getting this event going.)

... Read More (99 words)

Ruby unit testing frameworks comparison

FileModified: 10 Sept 2009, 08:47Created: 8 Sept 2009, 07:16

As part of a session I presented at Ruby FunDay in ThoughtWorks Pune, I tried TDDing a simple rock-paper-scissors game. The frameworks I compared were rspec, expectations, and good ol' test/unit.

I'm hosting the code at bitbucket for reference sake: http://bitbucket.org/amanking/ruby-test-framework-comparison

... Read More (741 words)

Renaming an ActiveRecord model

FileModified: 19 Oct 2009, 00:00Created: 7 Sept 2009, 12:09

Refactoring is a practice that ThoughtWorks developers apply in their work everyday. One of the most common (and arguably, most useful) refactoring is "Rename": basically renaming a variable, a method, a class or any such code artifact to express intent more clearly, according to its evolving responsibility.

In most cases, renaming is pretty trivial, especially with the use of modern IDEs. However, renaming an ActiveRecord model in a Ruby on Rails application can turn into an extremely non-trivial task, mostly because of "convention over configuration" (not that I'm saying anything against it). Here are the things you may need to rename along with your ActiveRecord model:

... Read More (510 words)

GROUP BY in MySQL does implicit ordering

FileModified: 7 Sept 2009, 09:36Created: 7 Sept 2009, 09:15

It may not be obvious, and in most cases, it may not matter but sometimes it is helpful to know that GROUP BY in MySQL does implicit ordering according to the grouped columns.

Let's take an example. Suppose we have a table like so:

mysql> SELECT * FROM users;
+----+--------+------+
| id | name   | age  |
+----+--------+------+
|  1 | donald |   27 | 
|  2 | mickey |   20 |

... Read More (372 words)

Adaptive ALM by ThoughtWorks

FileModified: 19 Aug 2009, 10:28Created: 19 Aug 2009, 10:24

ThoughtWorks recently introduced "Adaptive ALM", a suite of 3 products that facilitate application lifecycle management. ALM sounds like a traditional management term but we do it differently in ThoughtWorks, making it very flexible and effective for everyone in the team (not just managers).

I've used Mingle in all of the ThoughtWorks projects I've been on, and can assure anyone that it has worked well for us. It makes life easy for a distributed team, or even for a collocated one actually (having an online story card is helpful when you lose your physical ones).

... Read More (269 words)

Ignite Pune at ThoughtWorks

FileModified: 1 Sept 2009, 14:05Created: 19 Jul 2009, 04:53

On 19 June 2009, ThoughtWorks successfully hosted Pune's first Ignite event.

Ignite is a platform where people from different walks of life can address a diverse crowd for just 5 minutes each, talking about something that they are passionate about and wished that society at large was listening.

Ignite Pune started as an idea pushed by Rajiv from ThoughtWorks' Bangalore office. He had helped coordinate such an event in Bangalore and thought that it was high time our Pune office did something similar too.

... Read More (1241 words)

Jirb Online on Google App Engine

FileModified: 17 May 2009, 09:14Created: 17 May 2009, 09:12

Some time back (around the 2nd week of May '09) I deployed my Jirb Online web application on Google App Engine for Java (GAE/J): http://jirbonline.appspot.com

It was not as straightforward as I'd hoped but was an interesting experience that gave me some insights into dealing with GAE/J and JRuby. This is how I went about it:

Created my GAE/J account

I registered for the GAE account and got an invite for trying out GAE/J. I registered using the mobile phone option: you get a code via sms that you need to complete the process. The Vodafone network in India failed to deliver Google's sms to me but IDEA worked. I got myself: http://jirbonline.appspot.com

... Read More (1001 words)

Individual practices in team setting

FileModified: 6 May 2009, 13:42Created: 6 May 2009, 13:42

There are certain programming practices that work when done at an individual level but need careful application (and probably ceremony) when working in a team.

For example, pulling out small domain classes for things like Money, Range, Link, etc is a good idea. I'm used to doing that in my day-to-day programming... problem is that my team mates have the same good habits. Smile So after a while, you may run into more than one class representing the same thing. If a concept is tied to your project's domain, it is very likely to have an impact on various features (user stories), and hence, different team members may end up having to implement that same concept. If folks do not realize that a class for the concept is already implemented, they may accidentally add more copies of the class. In my current project, we had Link, ServiceLink, and Url almost doing the same thing until we noticed the duplication and made all consumers use just Link.

... Read More (400 words)

Metaclass in Ruby

FileModified: 4 May 2009, 01:41Created: 1 May 2009, 09:57

After writing about the Singleton class in Ruby, it is time to write about the Metaclass.

Note that some people use "metaclass" to mean a normal singleton class (aka eigenclass) but that is incorrect. The Ruby metaclass is a special type of singleton class, one for a Ruby class object (hence the term "metaclass", I guess).

Recapping what we know about the singleton class, in the following example we can guess where the definition of the method find_by_name goes:

... Read More (686 words)

More Recent Posts.

Last modified 04:30 Wed, 25 Feb 2009 by AmanKing. Accessed 7,151 times Children What Links Here share Share Except where expressly noted, this work is licensed under a Creative Commons License.