Saturday, January 21, 2012

Weird coincidences

There are a few instances of weird coincidences that I vividly remember which I wanted to record in the blog for past few months. Following are two such instances:

Catalytic Converter

It was during my school days when we started studying organic chemistry and about catalysts. Few of the reactions involved, conversion of hydrocarbons into carbon monoxide carbon dioxide and water etc.

At the same time we were introduced pollutants, carbon monoxide, NOx etc. I used to correlate and think that if we could convert CO to CO2 and NOx to N2 and water, we could reduce pollution. If they could be done in the exhaust of the cars we could eliminate air pollution in vehicles. Applying what we read, this may need catalysts.

I discussed this at length with my cousin during a week end. The Hindu used to carry a supplement on Thurdays for Science and Technology. The Thursday after that weekend, there was an article in that about catalytic converters. It discussed about beehive shaped compartments which would have catalysts to convert CO to CO2 etc. to reduce pollution.

I did not realize it then, but, it is such a weird coincidence looking back now.

Vertical Farming

This is more recent and happened in the last year or so. I kept thinking about the reducing agricultural lands in India and thought that if we could do farming in multi-stories, then potentially we could produce more in limited space. Each locality could have one such building. This would supply a part of the needs for the locality. It should not be a glass house so that it could be maintained easily, but instead lighting could be through mirrors sending the sunlight into the building or optical fibers running from the terrace. Neither of these might be economically feasible, but just a thought. I thought this could be called vertical farming.

The day after that there was an article in The Times of India, that discussed about an expert who was working on agriculture in increasingly urban set up and he mentioned about multi-storey agriculture and called it Vertical Farming. This is second weird coincidence and made me think about recording these in a blog.

Saturday, May 7, 2011

I have a dream ...

கவலைகள் இல்லா உறக்கம் - அதில்
இன்பங்கள் நிறைந்த கனவு
பசுமைகள் நிறைந்த நிலங்கள் - அதில்
சில்லென ஓடும் ஓடை
மரங்கள் நிறைந்த வனம் - அதில்
நிற்காதிசைக்கும் குயில்கள்
வேட்டை ஆடா புலிகள் - அதனால்
பயமின்றி உலவும் மான்கள்
மாசற்ற தென்றல் காற்று - அதில்
இனிமை நிறைந்த கீதம்
கைக்கெட்டும் உயரம் பழங்கள் - அதில்
தின்னத் தெவிட்டா சுவைகள்
பாய்ந்து சிதறும் அருவிகள் - அவை
பிறந்து வந்த முகடுகள்
அமைதியாக ஓடும் நதி - அதில்
பாய்ந்து நீந்தும் மீன்கள்
பனி படர்ந்த புல்வெளி - அதில்
மேய்கின்ற ஆடு மாடு
தேங்கி நிற்கும் தண்ணீர் - அதில்
குட்டியோடு குளிக்கும் யானை
தேவை யுத்தங்கள் அற்ற பூமி
மனிதர்கள் அற்ற தீவு - அதில்
தனிமையில் நான்

Conversation with God

கடவுள்

என் மீது என்னடா கோபம் உனக்கு?
சொல்லாமல் வாய் அடைத்து போனாய் எதற்கு?
கோபமா? தாபமா? வேகமா? சந்தேகமா?
நீ செய்த தவறுக்கு தண்டனை எனக்கு

மாற்றானோடு நீ பேசிச் சிரித்து குலாவுகையில்
என் மனம் பதைக்குதே என்னென்று நான் சொல்வேன்?
நாள் தோறும் குற்ற உணர்ச்சியிலே வெந்து நான் மடிகின்றேன்
இத்தண்டனயை எனக்களித்து
என்ன நீ கண்டாயோ சொல்?
-இது மனிதன்

சினம் கொண்டு சீறுவதும் மனிதப் பண்பே!
வாய் ஓயாமல் பேசுவதும் மனிதப் பண்பே!
கோபமும் தாபமும் மனிதப் பண்பே!
சந்தேகப் பேய் அதுவும் மனிதப் பண்பே!

உன்னை படைத்ததை தவறென்றாய் மனிதா!
படைக்கப் பட்டதின் சுகமறிவாயா?
வாழ்க்கையை தண்டனை என்றே சொன்ன நீ
அழகான ரோஜாவின் முள்ளறிவாயா?
மாற்றானோடு குலாவுகிறேன் என்ற நீ
இக்கரைக்கு அக்கரை பச்சை என்றறிவாயா?
குற்ற உணர்ச்சியிலே மடிகிறேன் என்ற நீ - அது
குற்றம் புரிந்தோரின் உடைமை என்றறிவாயா?
வாழ்கை ஒரு ரோஜா - அதை
இரசிக்கக் கற்றுகொள்.
புலம்பி என்னிடம் வந்து அழுது பயனில்லை
வாழ்கையிலே என்றும் நீ கடினமாய் உழைத்திட்டால் உன்
கடின உழைப்பினிலே பெரும் பகுதி நான் சுமப்பேன்
வாழ்கை ஒரு பஞ்சு மெத்தை
அதை சுகிக்க கற்றுக்கொள்.
அதில் துன்பங்கள் சிறு கற்கள்
அதை அகற்றக் கற்றுக்கொள்.


வாழ்க்கை ஒரு தென்றல்
அதை சுவாசிக்கக் கற்றுக்கொள்!
அதில் துன்பங்கள் சிறு தூசு
அதை சகிக்கக் கற்றுக்கொள்

வாழ்க்கையை வாழ்வதொரு பாடம் - அதை
வாழும் காலம் மட்டும் வழுவாமல் கற்றுக்கொள்

வாழ்க்கை ஒரு பாற்கடல் -அதன்
விடத்தை நீ சகித்தால்
அமுதமும் உனதுடைமை
இவ்வாறு வாழ்ந்து விட்டு
என்ன துன்பம் எனக்கூறு
துடைப்பதற்கு நான் உண்டு - துடைக்கப்
படுவதற்கு ஏதுண்டு?
- என்றார் கடவுள்

AS LONG AS YOU LIVE KEEP LEARNING HOW TO LIVE

My Early Attempts In Poem Writing

Like many of my friends and acquaintances, about a decade ago I used to write poems (or at least in my view) both in English and Tamil. I used to enjoy writing them and usually they reflect a theme that suddenly comes to mind causing an urge to write a poem on that theme.

I would be posting them in my blog starting from this one:

மின் வெட்டு
இயந்திர மயமான வாழ்க்கை
இயந்திரங்களான மனிதர்கள்
அன்புக்கு நேரமற்ற - ஆறு
அறிவுக்கு வேலையற்ற
அவலமான ஓட்டம் - இதில்
அறியாமல் வீழ்ந்துவிட்ட நாம்
வெளிவர என்ன வழி
யோசிக்க நேரமில்லை.

அன்று இரவு
அலுத்து சலித்து வீட்டை
அடைந்த அரை மணியில்
அழையா விருந்தாளியாய் வந்து
அடைந்தது மின் வெட்டு.

அலுத்த மனம் அலறியது - உள்ளே
அறைந்தது அரசாங்கத்தை - சபித்தது
மின் வாரியத்தை - நகர்ந்தது நேரம்
அமைதி அடைந்தது மனம்
பார்வை மாறியது:

எரியும் மெழுகு வர்த்தி
அதை சுற்றி வரும் விட்டில்
சுற்றி அமர்ந்திருக்கும் குடும்பத்தார்
சிறு நிறுத்தம் .... இயந்திர சுழற்சியில்
சிறு ஓய்வு ... இயந்திர மனிதனுக்கு
சிந்தனையில் தூங்கும் சிறு மனிதன் விழித்தான்
தொலைக்காட்சித் தொல்லை இல்லா
மடை திறந்த பேச்சு - தினமும்
அவசரமாய் உணவை அரைத்த மனிதனுக்கு
அவசரமற்ற உணவு
அசை போட பழங்கதை
இயற்கையின் சிறு தீண்டலையும்
இரக்கமின்றிப் பறித்து விட்ட
இயந்திரங்களை விட்டு மொட்டை
மாடியில் நித்திரை
எண்ணற்ற வின் மீன்
நடு நாயகமாய் நிலவு
சில்லென்ற தென்றல்
ஓடும் மேகங்கள்
ஓலைகளின் ஓசை
தூரத்து இடி முழக்கம்
இரசித்த படி உறக்கம்.

இது போல மேலும் தேவை
இன்னும் சில மின் வெட்டு - மனித
இயந்திரத்தை மனிதனாக்க.

Thursday, May 27, 2010

OJT vs. Traditional Training

1.1 OJT

Definition for this purpose:

Make a just-out-of-college or almost-so new employee to work on a problem in an ongoing project and let him come through it.

Action:

The employee should be handed a problem that has enough complexity. The employee has to setup his or her environment based on the choices made for the project. The employee could solve the problem in parallel with the team. This will prevent him from being a bottleneck, but at the same time allows enough room and an actual problem to think.

Additionally he can also be made to troubleshoot some issues. These issues could be current issues or issues that have been solved but have educational value.

The employee can be presented with a list of training courses, which he can attend to accomplish the task and should be encouraged to ask for one if he is stuck.

Result:

Employee learns to solve some of the problems that may crop up, which will help in production projects. The training becomes a pull model rather than a push model. This results in better take away from training. Since the training correlates with the knowledge required to solve the problem at hand, the information gets registered better.

But, it may also turn out that the employees don’t ask for training as most of the problem might have been solved by one-off discussions.

1.2 Traditional Training

The usual training models involve pushing the information to the employee. The information contains mainly of overview of technologies, which could be easily obtained from the Net and information on standards and conventions. Most of these are not registered in the minds of the employees, as they could not match this with a real need.

1.3 Hybrid Model

A better approach will be a hybrid of the above two. Let the employee go through OJT for a month or so until enough curiosity is awakened and then put him through the training. The training should involve general, but critical information on fundamentals (e.g. fundamentals of webapps – Web server, app server, ports, request, response etc. along with show and tell with a request analyzer), specific technologies (with emphasis on practical application), unit testing. Ideally, an employee could be trained in multiple technologies and then he may align into one or many of them.

1.4 Things that have not worked

Some approaches have not worked very well in an OJT:

  • Working on an internal project

Typically, this internal project will consist only of trainees/new employees. The whole team has an air that it is an unimportant one. Most of the times the project is not utilized.

  • Involving in a live project, but without any real problem to solve i.e. left to handle routine activities
  • Giving a problem from a real project but not attaching any importance to the results or worse not expecting any result at all

Better approach will be:

  • If it is a critical internal project, create a real team for it with proper team lead and some senior developers. If not, scrap the project. If it is not important enough it is not worth developing.
  • Utilizing an employee effectively only when forced does not add any value to the team. Prepare the employee for tomorrow’s requirement. Automate routine activities and share/cycle non-automated ones amongst the team.
  • Push for the results. Use parts of the results where it could be. Expect something that could be used. Give the employee a sandbox branch in the source control for the project and let him commit his changes there.

Tuesday, March 9, 2010

Using JTestcase for unit testing - Part I

Test Driven Development (TDD) has become a very critical element in today's development with systems being more complex and time-lines and budget as tight as if not more tighter than ever. This has caused more and more unit testing frameworks and support libraries to be released. JTestcase is one such library that helps in separating test data from test cases.

While almost everyone appreciates the benefit of unit testing, when it comes to actually developing the test cases, there are various deterring factors that quickly make us lose interest in writing unit tests. One those factors is the test data. While test data for simple computations may be very easy to build, things become tough when we are dealing with domain objects that are huge and consist of complex fields within them. The mere size of them and the code that gets interspersed into the unit test code to create them adds a lot of clutter to the unit test code, making the code tedious to follow and maintain.

JTestcase helps us to separate the data from the unit test code into XML. It helps create simple domain objects easily and uses a part of JICE framework for building complex object trees. JTestcase has facilities to represent assertions in addition to test input and output data. JTestcase XML structure is as follows:

Class to be tested 1
......Method to be tested 1
...........Test case 1:
......................Param 1
......................Param 2
......................Assertion 1
......................Assertion 2
............Test Case 2
.
.
......Method to be tested 2
.
.
.

While JTestcase has support for this structure, I have found that another way of organizing test data using JTestcase seemed to work well and seemed to be in line with the expectations of various teams that I have worked with. In the subsequent parts I intend to blog the conventions that we followed when depicting data using JTestcase (along with examples),which worked very well for us.

In the meanwhile, following are the links to this framework and JICE:

JTestCase
JICE Engine

Sunday, February 28, 2010

First inspiration to blog comes from unexpected direction


I never thought I would find anything interesting to blog. But, today something inspired me to start blogging. But, the thing that inspired me was nothing amazing. It was a simple train travel. I have always liked travel and especially train travel. During my college days I used to travel back to my home town with friends and every time I used to look forward for the vacation and excited by the travel itself in addition to the excitement of meeting your dear ones again.

But, this travel that inspired me to blog is unique. I usually don't open my computer while I travel. I like to look out the window and enjoy the passing scenary. But today I thought of using my laptop aboard the train from Edinburgh to Peterborough. The first thing that struck me was, sitting by the window, it was like a corner office - with one difference though - The view out your window keeps changing. Especially in this route with scenic farmlands of Edinburgh and other places en route, small streams, river et-al in the time of the year of receding winter, welcoming spring.

This train is an east coast train and it has a decent free WiFi connection. I am writing this blog aboard that. Interesting. Thanks to technology and thanks to nature - the mix of which caused this inspiration.