No Mind

It's the mind that makes you miss the shot
December 17th, 2008 by Vivek Khurana

Saturday code jam details

So we seem to be all set for saturday code jam on 20th Dec. 2008. What you need to join the code jam

  1. You should have a laptop with python installed.
  2. You should know some python programming (read “hello world”)
  3. You should be ready to work on completely new software.
  4. You should be willing to opensource your code.
  5. If you are proficient with python, come with cherrypy, dejavu, simplejson and jquery installed.
  6. If you dont know python but know databases, still you can join, we will need good db guys.
  7. You should know how to use git.
  8. You should be willing to code without internet, though python manual will be available.

So see you at code jam..

December 16th, 2008 by Vivek Khurana

Saturday code jam

Inspired by workouts, I am arranging a small hack session in my office this Saturday, 20th Dec 2008.  We plan to hack some core features for stipend platform to get the basic application running. Already 3 people have confirmed and I have space left for 3 more. Sorry cant accommodate more than 6 people due to space restriction.

Oh yes… we are trying this hack session without wifi… Lets see how far we go… and if you are interested ping me… hurry…

December 15th, 2008 by Vivek Khurana


Recently I started playing with dejavu ORM by Robert Brewer. For first time I found a python ORM which can be a  replacement for my over used data layer. Dejavu allows you to interface with more than one data source and this is a blessing when you are building application that have to fetch data from legacy or proprietary database along with  SQL based database(s).

Dejavu has done lot of things correctly in the design itself. Dejavu uses data mapper architecture, which creates loose coupling between the database and in-memory objects. This separation is achieved with help of a data mapper for translating in-memory objects to database tables. As in-memory objects do not have any responsibility of database operations, the domain layer can focus on one thing that it is meant for ‘domain logic’. As in-memory objects talk to database through a data mapper, they can talk to more than one data mapper and connect to multiple data source, plus the data source need not be a database. It can be anything for which a data mapper exists, thus allowing you to build business objects which can be composed of multiple data sources.

Normally organizations have multiple data sources and applications have to either replicate data or create multiple access layers to accommodate every data source. In such scenarios the loose coupling in dejavu is nothing short of a blessing. With an ORM capable of connecting to multiple data sources, you can expect reduction in development time and number of bugs.

Second good feature of dejavu are the triggers, behaviours that fire when value is changed. It is not uncommon for developers to write logic in the code which is fired on value change, for example update the value of A by 10 if the value of B is more than 20. We do this by writing tons of if-else statements, which becomes  hard to maintain as the code size grows. With dejavu, you can delegate the responsibility to ORM, resulting in easy to maintain code.

I also liked the way dejavu has separated the deployment from development. The official guide comes with a neat example of the config file to explain the deployment. No more complicated XML syntax when all I want to specify is  the database driver and connection string…

I can continue praising dejavu but I think I have done enough.. I think its time now to search the shortcomings of dejavu as by now I am not been able to find any. I am going to play with dejavu more and post about shortcomings as I come across, along with few examples of how to use dejavu…

December 15th, 2008 by Vivek Khurana

Lets get rolling…

So I was thinking of restarting writing on the web and I thought hard for the topic of the first post. After spending some time I relaized the first post need to have nothing… let me not set any kind of trend.. let things roll on there own…