We all are familiar with the SDLC process and the role reviews play in helping ensure that the final product is of good quality and is able to meet the system requirements. Reviews are of many kinds ranging from code reviews, test plan reviews, design reviews to performance reviews, audit reviews etc. Let us focus for the moment on design reviews. Typically in the software design phase, the design team receives the requirements in the form of the BRD, the FS or whatever name your organization has chosed to call the inputs. They then proceed to model the application using the tools available like Rational Rose, visio etc. The end result is a set of diagrams and maybe some code which is handed over to the development team for coding. One of the important artifacts that the quality team insists on is the traceability matrix which helps them to verify if all the requirements mentioned in the BRD, FS etc have been covered. But how to we ensure coverage throughout the SDLC process. Did the design team cover everything. If they did, then did the development team leave out something. Did the test cases cover every part of the system and was every functionality tested thoroughly. Thus it becomes essential that the coverage report exists for the design and development phases atleast. The traceability matrix is generally used for checking coverage after the development phase and before the release of the product. There is no real template to document the design coverage other than a set of checklists. You might have come across checklists that contain questions like:
1. Have all mandatory diagrams (Use Case, Class, Collaboration, Sequence, Deployment and Component diagrams) been included?
2. Have symbols and notations been used consistently?
3. Have all assumptions and dependencies been explicitly stated? Are these realistic and reasonable?
Use Cases – Every user interaction with the system must be documented as an Use Case and should be supplemented by an Use Case Diagram.
4. Define the use cases for all the possible interactions of actors with the system.
Activity diagrams - It must address all the requirements specified by the use case. (Activity diagram ensure that the data flow is as per the use case.
5. Describe the internal behavior of an operation pictorially
6. Depict activities that can occur in parallel. The discovery of activities that can occur in parallel will help us to build processes that are more efficient.
7. Help to identify activities whose responsibility belongs elsewhere
8. Allow the discovery of common functionality within a system
9. Show the dependencies, which can be easily identified during the behavior change of the system.
10. Define appropriate relationships between classes. Appropriate design patterns should be used while designing the system. The performance parameters should be taken into account during this process.
and so on
But how do we evaluate a design from an architecture perspective. How do we know that the present design would meet the peak maximum load of a 100,000 concurrent users. Would the system use the same resources irrespective of whether there are 50 users or 500 users. Would the system be able to withstand a DoS attack. Would it allow other applications running on the machine access to some resources or hog all the resources itself. How do you answer such questions by looking at a set of diagrams. Well looks like this others have thought of this before and arrived at some mechanisms to solve this problem.
The methodology is called the Software Architecture Analysis method (SAAM) and relies on a scenario based approach to evaluating software architecture against a set of quality attributes. Some of the main quality attributes include scalability, reliability, security, interoperability etc. In an SAAM evaluation, scenarios representing the quality attributes of the system are developed, prioritized,
and analyzed against the architectural approaches chosen for the system. The results of the analysis are then expressed as risks, sensitivity points, and tradeoffs.
After the scenario generation meeting(s), the refined scenarios are converted
into architectural test cases that the architecture team analyzes against the system architecture. This analysis The architectural test case development and analysis often takes place over an extended period of time (perhaps months) before the architecture team presents the results of the analysis to the stakeholders. This way the software architecture/design can be arrived at as a set of metrics that reveal how the architecture/design measures up against a set of quality attributes.
For more details regarding SAAM and software architecure evaluation can be found at
http://www.sei.cmu.edu/architecture/pub_by_topic.html#evaluation
Saturday, October 06, 2007
Thursday, October 04, 2007
Twenty-20に 世界 コ-フお 勝利 した いんと゛の 選手に おめて゛とう こさ゛います
わたしは 来週の さいこ゛に エゲレスへ しゅっちょうに
行きます.
しゅっちょうの し゛かんは に週間く゛らい あるそて゛す
わたしは この 前に エゲレスへ いった ことか゛ ありません
エゲレスは たへん きれいそ て゛す エゲレスは この こ゛ろ たへん さむらし て゛す
そして 冬服は たくさん 持って いかわなけれは゛ なりません. チヤンナイは たへん
あついのて゛ 冬服は 要ないた ます゛ エゲレスの いろいろな ところお
旅行する つもり て゛したか゛て゛も し゛かんか゛ ないから いくのお やめます
この しゅっちょうは エゲレスに ある 有名な 銀行 LTSBの コルフ゜レト ヘ゛ンキンク フルマウレクお (CBF) 分解
するのためて゛す わたしは LTSBの セステマの テクニカル イスヘ゜クトは 分解 します
コル ヘ゛ンキンに ついて 知て いないと この 仕事は て゛きません
わたしは 来週の さいこ゛に エゲレスへ しゅっちょうに
行きます.
しゅっちょうの し゛かんは に週間く゛らい あるそて゛す
わたしは この 前に エゲレスへ いった ことか゛ ありません
エゲレスは たへん きれいそ て゛す エゲレスは この こ゛ろ たへん さむらし て゛す
そして 冬服は たくさん 持って いかわなけれは゛ なりません. チヤンナイは たへん
あついのて゛ 冬服は 要ないた ます゛ エゲレスの いろいろな ところお
旅行する つもり て゛したか゛て゛も し゛かんか゛ ないから いくのお やめます
この しゅっちょうは エゲレスに ある 有名な 銀行 LTSBの コルフ゜レト ヘ゛ンキンク フルマウレクお (CBF) 分解
するのためて゛す わたしは LTSBの セステマの テクニカル イスヘ゜クトは 分解 します
コル ヘ゛ンキンに ついて 知て いないと この 仕事は て゛きません
In a spineless display of courage, the Indian government is silent on the pro-democracy movement in neighbouring Burma. By their silence they have proven that they do not care for human rigts, democracy etc which they themselves claim to uphold so often. They have failed to practice what they preached and have thoroughly let down a neighboring country that desperately needs its help to free itself from a military junta that has ruled dictatorially for over 40 years. Its sad to hear external affairs minister saying that sanctions should be the last resort when national and international expectations are that India would do much more than that. If sanctions are the last resort, then what's the first, invite the leader of the junta for a state dinner with the president. India has by its silence expressed its solidarity with the wrong side of the struggle and not where it should rightly be, with the peace loving people of Myanmar. It is imperative that India stirs out of its lethargy and do its utmost to free the burmese people from the clutches of the dictators and let the burmese people choose the person that they want to lead them. The freeing of activist leader Aug suu kyee would be the first step to take towards achieving that end.
Tuesday, September 11, 2007
It is a day after the 6th anniversary of the sep 11 terror attacks on the WTC. Six years ago, on this day, me and my friend stood watching the towers collapse just a few hundred metres away from ground zero. We were on our way to work when we saw the fire in the first tower and were told that we could not go to work. The first plane had already struck but the magnitude of the attack was not yet known. To me it looked like a small plane had maybe crashed due to pilot error. Then a little while later the second plane struck amidst a thunderous noise and the second tower was engulfed in a ball of flame. The first tower came down in a heap and the second one followed soon after resulting in a cloud of smoke and dust several storeys high.
The smoke cloud hung over the financial district for the next 2 days not dispersing and serving as a constant reminder of the events the previous day. It was hard to believe that in the place where the twin towers stood earlier, there now was a void. Our workplace was in the World Financial center which was just over 18 storeys tall. A part of the tunnel under the river had collapsed rendering commuting difficult. The impact from the collapsing towers was believed to have compromised the integrity of other structures around it such as Goldman Sachs, WFC etc. We learnt that it was a terrorist attack from the clerk at the hotel we were staying at.
I was at the time working with the Repo trading desk of Merrill Lynch, New York. While the emergency response teams were involved in relief and rescue work, the repo support team was frantically trying to restore the trading platform back into operation. The newyork stock exchange was temporarily out of operation (for a day or 2, if I remember right) after the disaster but trading soon began. The repo desk too was back in operation although with a few days old data. In fact, they would have been back up much earlier had not they been prevented from entering their offices to fetch some backup tapes for fear that the WFC building might collapse. The repo desk operated out of their office on the new jersey side in the immediate aftermath. The repo support team worked day and night to restore systems to operating state. Not an easy task by any standard. The same was the case wherever systems had shutdown or gone offline owing to the terror strikes and it was the triumph of human spirit that could be seen all around in the few weeks following that eventful day.
The smoke cloud hung over the financial district for the next 2 days not dispersing and serving as a constant reminder of the events the previous day. It was hard to believe that in the place where the twin towers stood earlier, there now was a void. Our workplace was in the World Financial center which was just over 18 storeys tall. A part of the tunnel under the river had collapsed rendering commuting difficult. The impact from the collapsing towers was believed to have compromised the integrity of other structures around it such as Goldman Sachs, WFC etc. We learnt that it was a terrorist attack from the clerk at the hotel we were staying at.
I was at the time working with the Repo trading desk of Merrill Lynch, New York. While the emergency response teams were involved in relief and rescue work, the repo support team was frantically trying to restore the trading platform back into operation. The newyork stock exchange was temporarily out of operation (for a day or 2, if I remember right) after the disaster but trading soon began. The repo desk too was back in operation although with a few days old data. In fact, they would have been back up much earlier had not they been prevented from entering their offices to fetch some backup tapes for fear that the WFC building might collapse. The repo desk operated out of their office on the new jersey side in the immediate aftermath. The repo support team worked day and night to restore systems to operating state. Not an easy task by any standard. The same was the case wherever systems had shutdown or gone offline owing to the terror strikes and it was the triumph of human spirit that could be seen all around in the few weeks following that eventful day.
Thursday, September 06, 2007
Some time ago, I had blogged about a stite that allowed you to clip portions of webpages. Well looks like that was not the only one website that allowed you to do that. Here's another one and this guy goes far beyond just clipping and has a range of products in the area of social annotation, bookmarking etc. The link is here.
There's tons of social networking sites. Well, here's another one. perfspot. Make sure you check out the perfNights section. It's hot.
There's tons of social networking sites. Well, here's another one. perfspot. Make sure you check out the perfNights section. It's hot.
Labels:
social bookmarking,
social networking,
web 2.0
Wednesday, September 05, 2007
I finally installed ubuntu on my desktop. I got the Ubuntu 7.04 Feisty Fawn CD and installed it on one partition. First impression - "great". I don't have the complete software but the desktop itself looks good. Ubuntu imports your windows profiles while installing under a userid you provide (defaults to windows id). The files should be available if you login with that id, I think though I haven't checked myself.
Tuesday, September 04, 2007
One of the things that are part of my plans for preparing for the JLPT test is to watch japanese movies. Last week, I brought home the movie "The hidden fortress" directed by Akiro kurosawa. I was hoping to be able to follow the japanese in the movie but after a few minutes it became clear that was not going to be possible. The movie was made in 1958 and following present day japanese is hard enough.
The movie itself was quite interesting and had me tied to the TV set for the entire duration of the movie. The plot is very simple one, that of taking a displaced princess to safety across enemy territory. The person given this responsibility is the commander who does a brilliant job of it. In this he is aided by 2 peasants and another girl they see on the way. Finally when they are caught and to be executed, they are saved by another samurai whose life the commander spared earlier. The first half is full of suspense and the latter half has a bit of action as the commander takes on the enemy. The peasants serve as the comic relief. Quiet a well-made movie. Not much grandeur even though a princess is involved. The hidden fortress is a secluded fortress in a valley and hidden from view where the princess stays temporarily till she leaves for safer territory. When they are caught and about to be executed, the princess says that she's ready to die since she's seen the world now and talks about the folk song she heard enroute. She then launches into a rendering of the song herself. A nice poignant touch from the director.
The movie itself was quite interesting and had me tied to the TV set for the entire duration of the movie. The plot is very simple one, that of taking a displaced princess to safety across enemy territory. The person given this responsibility is the commander who does a brilliant job of it. In this he is aided by 2 peasants and another girl they see on the way. Finally when they are caught and to be executed, they are saved by another samurai whose life the commander spared earlier. The first half is full of suspense and the latter half has a bit of action as the commander takes on the enemy. The peasants serve as the comic relief. Quiet a well-made movie. Not much grandeur even though a princess is involved. The hidden fortress is a secluded fortress in a valley and hidden from view where the princess stays temporarily till she leaves for safer territory. When they are caught and about to be executed, the princess says that she's ready to die since she's seen the world now and talks about the folk song she heard enroute. She then launches into a rendering of the song herself. A nice poignant touch from the director.
Here's something for cricket lovers. At present, there's not much support for cricket in Joomla CMS. It is possible to embed a widget inside a joomla component quite easily and see the scores etc. However that would mean leaving what you are doing and visiting the component with the widget every once in a while. Joomla supports modules which are floating areas that can be displayed along the sides of other components. So even if you are writing a blog, contributing to a forum or browing the classifieds, you can still know what the score is.
I created a small module that displays the current score and the teams playing. The module fetches the rss feed from http://www.cricinfo.org and displays in a module. The cricinfo site only gives the total score and does not provide individual scores as part of the feed. For that matter, none of the sites do. If you know of a site that does provide such a feed, please let me know. The feed should refresh frequently enough, at least once every minute. Anything more is a plus.
I created a small module that displays the current score and the teams playing. The module fetches the rss feed from http://www.cricinfo.org and displays in a module. The cricinfo site only gives the total score and does not provide individual scores as part of the feed. For that matter, none of the sites do. If you know of a site that does provide such a feed, please let me know. The feed should refresh frequently enough, at least once every minute. Anything more is a plus.
Back from Mumbai, I decided to go in for the level 2 of JLPT (japanese Language Proficiency Test). I had completed level 3 2 years ago and had forgotten most of what I studied including how to speak. Little did I realize that Level 2 was an altogether different proposition than Level 3 at that time. Since it was august already, most japanese language tutors have refused to coach me for the test. Here's a small prelude so you could know what is involves. Level 2 requires that you know over 5000 words vocabulary and are able to read over 500 kanji apart from the level 3 Kanjis. A real tall order indeed. Gotta go. It's cram time.
I took a deep interest in php based CMS and I was hoping to build a web 2.0 site. My search led me to Joomla, a php based CMS. My earlier experience to CMS was with 'PostNuke', another PHP based CMS and quite mature with a lot of features. What PostNuke didn't have or I didn't see was that the look and feel was not that good. Joomla comes with a lot of cool templates to make your site look like a web 2.0 site and giving you the benefits of a CMS at the same time. Joomla was so good that I got quite involved in it and started developing components, templates and such. For an example of a component that I developed (in fact it is an enhancement of an already existing component) you can visit http://www.omkaragifts.info/joomla/download.php
The component is a EventList component that allows you to add upcoming Events to your site. The problem with the current EventList component was that the venue of the event had to be added first by the site administrator before an event can be added. I wanted a way where users could add events themselves. Also there was no way to feature the events and there was a chance good events would be missed in the crowd. So I added a mechanism to feature events at the top of other events. As always, the component is free and open source and is available at the above link. There's also some templates that I developed that I have made available. Though not free, they are nominally priced and available at the above link.
The component is a EventList component that allows you to add upcoming Events to your site. The problem with the current EventList component was that the venue of the event had to be added first by the site administrator before an event can be added. I wanted a way where users could add events themselves. Also there was no way to feature the events and there was a chance good events would be missed in the crowd. So I added a mechanism to feature events at the top of other events. As always, the component is free and open source and is available at the above link. There's also some templates that I developed that I have made available. Though not free, they are nominally priced and available at the above link.
Thursday, August 23, 2007
I was at the mall and I didn't know "The Transformers" had been released. So when someone offered me a ticket, I grabbed it and went inside. I had no idea what "The transformers" meant or who they were. All I knew was that it was a video game that had been made into a movie, just like 'Tomb raider and resident evil'. It wasn't until the chopper started morphing into a robot that I realized what "transformers" meant. The movie is directed by 'Michael Bay', the director of other movies like The rock and The island. A director known for making action packed films, you can look forward to some rollicking action. Since the movie is about robots and there are almost 7 or 8, they raise quite a racket and the visuals become hard to follow. The sequence in the character Sam's residence with the robots outside requires special mention though. The climax is another riot and you are glad its over when the movie ends.
Sunday, August 19, 2007
Iam just back from a 2-week trip to Mumbai to help one of our projects, the phase 1 of which was scheduled to go live shortly. My services were specifically requested as the people there felt that my expertise and experience might come in handy. I however had my reservations because the phase 1 of the project involved only minor development which they could have handled themselves. It was only after I was told that I could use my time to work on phase 2 did I agree to visiting Mumbai. Little did I realize what an unforgettable experience I was about to have. I was hoping the team there would be friendly and great to work with. They were friendly alright, about as friendly as a room full of rattlesnakes. They somehow saw my presence there as a threat and were unwilling to treat me as one amongst them. No matter how hard I tried to make friends, they were unwilling to reach out. So in the end I had to cut short my trip and return much earlier than earlier planned. It was only the time I spent outside of office and away from the cut-throat corporate world that made the trip somewhat worthwhile.
Thursday, August 02, 2007
I have just finished reading the book "The Google story" by David A. Vise and boy what a fascinating read it was. I certainly didn't expect the story of 2 stanford graduates who made it big to be this good a literary work. Kudos to the author for crafting this work and providing an insight into the birth and maturing of the world's best search engine.
The journey starts with the characters being introduced and the meeting of Larry and Sergey at Stanford and the sequence of events that followed. Larry is the first to come up with the idea of building a search engine and Sergey helps refine it with his mathematical prowess. The two then seek funding for their project, get the necessary funding, drop out of Stanford and are on their way. Who would not provide funding for such a project if they had the money especially in the peak of the dot com bubble. o much is being said about there not being money involved in search. Yahoo and microsoft think of search as not being primary areas of focus for them. For a large part of the nineties, internet users had to be content with the likes of Altavista, Excite, Looksmart, Lycos, yahoo and a host of other search engines none of which were good. Altavista in fact is mentioned by Bill Gates in his book "The road ahead". Altavista and to an extent yahoo were in fact undermining the usefulness of search by offering paid placements in their search results. Yahoos method of indexing sites by category was not liked by many, me being one of them that disliked it. All this was brought to an end with Google's amazing 'PageRank' algorithm that ranks search results on their importance.
E-commerce had already laid its roots and it was only obvious that merchants would have flocked to have their sites advertised on Google. If google did not have an advertising mechanism in place, they needn't have feared since Altavista already had one notwithstanding their eye always being on the cash register. The cinderella story continues as the company's IPO is a money spinner and their advertising picks up momentum so much so that they have begun to be seen as a big threat by the likes of Microsoft. Nearly all of google's revenue comes from the ads they display alongside the search results. In that respect, they are a 'one trick pony' in the words of the author himself. Any disruption in this ad displaying would result in immediate losses to Google which the author does not fail to highlight. All somebody has to do is launch a slew of search websites, all of which use the same search engine, possibly even google's, and provide the facility to advertisers to advertise their products alongside search results just like Google. This way, Google would no longer have the monopoly that it now enjoys. Having said that, it would really take some serious work to beat google at their own game especially since by now they would have refined their search engine and know all the tricks of the search engine trade and thus have a headstart over anyone else. But still, thats something Microsoft would consider worth exploring. There's no mention of Google maps in the book but that's probably because it was still on the drawing board then.
On the down side, the book is infectious and reading about all that money rubs on you a little bit. Especially if you are a wannabe entrepreneur like me. Beware or you could end up losing your friends because you are always talking of IPOs, scaling up and branding. As for the future, I for one don't see Microsoft or anyone else beating Google at their own game. Sure they would get close. But if the people at Google are on their toes, then they could really win hearts across the globe.
The journey starts with the characters being introduced and the meeting of Larry and Sergey at Stanford and the sequence of events that followed. Larry is the first to come up with the idea of building a search engine and Sergey helps refine it with his mathematical prowess. The two then seek funding for their project, get the necessary funding, drop out of Stanford and are on their way. Who would not provide funding for such a project if they had the money especially in the peak of the dot com bubble. o much is being said about there not being money involved in search. Yahoo and microsoft think of search as not being primary areas of focus for them. For a large part of the nineties, internet users had to be content with the likes of Altavista, Excite, Looksmart, Lycos, yahoo and a host of other search engines none of which were good. Altavista in fact is mentioned by Bill Gates in his book "The road ahead". Altavista and to an extent yahoo were in fact undermining the usefulness of search by offering paid placements in their search results. Yahoos method of indexing sites by category was not liked by many, me being one of them that disliked it. All this was brought to an end with Google's amazing 'PageRank' algorithm that ranks search results on their importance.
E-commerce had already laid its roots and it was only obvious that merchants would have flocked to have their sites advertised on Google. If google did not have an advertising mechanism in place, they needn't have feared since Altavista already had one notwithstanding their eye always being on the cash register. The cinderella story continues as the company's IPO is a money spinner and their advertising picks up momentum so much so that they have begun to be seen as a big threat by the likes of Microsoft. Nearly all of google's revenue comes from the ads they display alongside the search results. In that respect, they are a 'one trick pony' in the words of the author himself. Any disruption in this ad displaying would result in immediate losses to Google which the author does not fail to highlight. All somebody has to do is launch a slew of search websites, all of which use the same search engine, possibly even google's, and provide the facility to advertisers to advertise their products alongside search results just like Google. This way, Google would no longer have the monopoly that it now enjoys. Having said that, it would really take some serious work to beat google at their own game especially since by now they would have refined their search engine and know all the tricks of the search engine trade and thus have a headstart over anyone else. But still, thats something Microsoft would consider worth exploring. There's no mention of Google maps in the book but that's probably because it was still on the drawing board then.
On the down side, the book is infectious and reading about all that money rubs on you a little bit. Especially if you are a wannabe entrepreneur like me. Beware or you could end up losing your friends because you are always talking of IPOs, scaling up and branding. As for the future, I for one don't see Microsoft or anyone else beating Google at their own game. Sure they would get close. But if the people at Google are on their toes, then they could really win hearts across the globe.
Tuesday, July 24, 2007
Grabbing frame from video
This is in continuation of my earlier post where I wanted to pick a color from an Image. Only this time, I wanted to grab a frame from a mpeg2 video and save it as a file so I could submit it to a photo contest. I got a couple of software none of which worked. I then decided to take matters in my own hand and use the Screenshot program in java that I had to take a snapshot of the video while it was paused. There's usually a slight blurring and I was okay with that.
To my amazement, the results were astounding like straight out of a Stephen King novel. First I played my video using Windows media player. Then I paused it at the frame I wanted. Then I ran my Screenshot program to save the frame to a PNG file. So far so good. Now that I had saved the frame I wanted, I let the video play till the end. Then when I checked the saved image guess what I found. The image stored was the last frame from the video and not the frame I wanted to save. It was as if the image got updated by itself after the java program had saved it and exited. How could this possibly be.
I wasn't ready to give up just yet. The last frame got saved to the file since the video kept running till the end. What if I didn't run the video after the file was saved and left it in pause mode. So I tried this out and I got my frame in a image. The picture was still inside of the WMP in the image which I planned to correct using the 'crop' tool of my image editing tool. Again, when I loaded the image into the ImageEditor, the results were frustrating to say the least. The 'crop' function wouldn't work. It was as if the image had a mind of its own and wouldn't respond to my effort to scroll the image. The picture inside the WMP itself would remain stationary while the rest of the picture scrolled. In the end, I decided to make the best use of what I had and just cropped the portion of the image I wanted AND was visible, and saved as a new image. So I had the picture I wanted or so I thought. I closed my ImageEditor and also WMP which was still paused. I was ready to upload the image I had saved to my website. I wanted to check the image before I uploaded it and when I opened it, I was amazed at what I found.
"The image was pitch dark and there was nothing but a black rectangle where earlier there was the picture of a marble structure."
Is there a scientific explanation that has to do with codecs and proprietary video formats or should I treat this as something out of a Stephen King novel.
This is in continuation of my earlier post where I wanted to pick a color from an Image. Only this time, I wanted to grab a frame from a mpeg2 video and save it as a file so I could submit it to a photo contest. I got a couple of software none of which worked. I then decided to take matters in my own hand and use the Screenshot program in java that I had to take a snapshot of the video while it was paused. There's usually a slight blurring and I was okay with that.
To my amazement, the results were astounding like straight out of a Stephen King novel. First I played my video using Windows media player. Then I paused it at the frame I wanted. Then I ran my Screenshot program to save the frame to a PNG file. So far so good. Now that I had saved the frame I wanted, I let the video play till the end. Then when I checked the saved image guess what I found. The image stored was the last frame from the video and not the frame I wanted to save. It was as if the image got updated by itself after the java program had saved it and exited. How could this possibly be.
I wasn't ready to give up just yet. The last frame got saved to the file since the video kept running till the end. What if I didn't run the video after the file was saved and left it in pause mode. So I tried this out and I got my frame in a image. The picture was still inside of the WMP in the image which I planned to correct using the 'crop' tool of my image editing tool. Again, when I loaded the image into the ImageEditor, the results were frustrating to say the least. The 'crop' function wouldn't work. It was as if the image had a mind of its own and wouldn't respond to my effort to scroll the image. The picture inside the WMP itself would remain stationary while the rest of the picture scrolled. In the end, I decided to make the best use of what I had and just cropped the portion of the image I wanted AND was visible, and saved as a new image. So I had the picture I wanted or so I thought. I closed my ImageEditor and also WMP which was still paused. I was ready to upload the image I had saved to my website. I wanted to check the image before I uploaded it and when I opened it, I was amazed at what I found.
"The image was pitch dark and there was nothing but a black rectangle where earlier there was the picture of a marble structure."
Is there a scientific explanation that has to do with codecs and proprietary video formats or should I treat this as something out of a Stephen King novel.
Sunday, July 22, 2007
Friday, July 13, 2007
Recently, I got interested in plugins (extensions?) for the firefox browser and the feature I was looking for this. "Being able to capture the content of a portion of a webpage and store it somewhere with the possibility to transform it later into a different format. The search led me to this site which fit my need to a T. It is a web 2.0 site which allows uses to clip contents of web pages and store it on their site. Cool, isn't it.
The link.
The link.
Sunday, July 08, 2007
The Taj has found a place among the seven wonders once again. It took an intense SMS campaign towards the end to get the Taj among the elite list. The other monuments that have found a place include
>The great wall of china
>Rome's Colosseum
>Jordan's Petra
>Peru's Machu Picchu
>Brazil's Christ the Redeemer statue
>Mexico's ancient city Chichen Itza
The number of votes received by SMS seems to bethe basis for the selection of the final list. A more accurate criteria would have included a number of factors such as
the novelty of the concept, the awe inspiring nature of the monument (subjective) and more measurable factors like the number of visitors to the monument, the difficulty of execution etc. The monuments that made it to the list all deserve to be among the top wonders of the world irrespective of the number of votes they received.
Federer beat Nadal in a marathon 5-setter on sunday. The match was different from the games of the past when players like Becker, Edberg and Sampras were around when the point usually consisted of a serve, a return and a volley. This time around there were powerful groundstrokes from both players and both players played some great tennis. It was only in the very end that Federer could assert his dominance on grass to win his 5th Wimbledon title. So it is still "Federer on Grass and Nadal on clay". How long that will that stand good is anybody's guess.
In the women's segment, France's Marion bartoli fought valiantly against Venus Williams and it was only some powerful serving and raising of her game that saw Venus retain her title. With a better serve and volley game, Marion could be a force on grass court tennis.
>The great wall of china
>Rome's Colosseum
>Jordan's Petra
>Peru's Machu Picchu
>Brazil's Christ the Redeemer statue
>Mexico's ancient city Chichen Itza
The number of votes received by SMS seems to bethe basis for the selection of the final list. A more accurate criteria would have included a number of factors such as
the novelty of the concept, the awe inspiring nature of the monument (subjective) and more measurable factors like the number of visitors to the monument, the difficulty of execution etc. The monuments that made it to the list all deserve to be among the top wonders of the world irrespective of the number of votes they received.
Federer beat Nadal in a marathon 5-setter on sunday. The match was different from the games of the past when players like Becker, Edberg and Sampras were around when the point usually consisted of a serve, a return and a volley. This time around there were powerful groundstrokes from both players and both players played some great tennis. It was only in the very end that Federer could assert his dominance on grass to win his 5th Wimbledon title. So it is still "Federer on Grass and Nadal on clay". How long that will that stand good is anybody's guess.
In the women's segment, France's Marion bartoli fought valiantly against Venus Williams and it was only some powerful serving and raising of her game that saw Venus retain her title. With a better serve and volley game, Marion could be a force on grass court tennis.
Friday, July 06, 2007
I had mentioned earlier that I had cleared my mind of the wicket related stuff I was working on. I had kept the files intact and today I had the opportunity to tinker with it a little bit. I started tomcat and browsed to the link and it worked like a charm. I might be onto something here. A treetable component capable of editing XML in your browser could have many uses in these web 2.0 crazy times. RSS comes to mind immediately but any XML could be edited. Here's a screenshot of my editable XML treetable showing a ruleML file.
Thursday, July 05, 2007
The other day I was listening to the track "Stuck in a moment you can't get out of" from U2's album 'How to dismantle an a*****c b**b'. By their standards, it looks quite ordinary though that might change as I get to hear it more. I am great fan of U2 and feel that their album "Joshua Tree" is in my opinion the one of the greatest albums ever made and the song 'with or without you' quite simply the best song in the album. I have seen people rating 'Achtung baby' in the Top ten rock albums and Iam ready to agree with that too. One thing I noticed and Iam sure many would have also is why the long names. Their last album title and the song I mentioned above both have more than 5 words.
Their work in eradicating poverty is admirable and they deserve to be the highest paid Rock stars for their music and commended for their charitable work.
Their work in eradicating poverty is admirable and they deserve to be the highest paid Rock stars for their music and commended for their charitable work.
Thursday, June 28, 2007
Added a new features to my blog. You can now see daily top ten list along the right side of this blog. You can also express your opinion by voting on the items in the list. If it is a media item, you can also click on the link next to the item to visit the item listing on amazon.com. I hope this feature will add more interactivity to my blog and make things more fun.
Two products from internet innovators that are for limited number of users are the EC2 from Amazon and Google's Mashup editor. Both are radically different products and have nothing in common but that they are for limited trial offers. Amazon EC2 is a business model thought up by Amazon founder Jeff Bezos and relies on making available servers and hardware on a as needed basis. This means that you don't have to pay for computing resources you don't need right now. The exact nature of the program is still not clear as the offer was limited to only 10000 users and was taken up in no time at all. In fact, the story goes that one would-be participant who missed out was ready to offer $20000 for a seat to another who was successful but his offer was turned down. Such was the attraction that the Ec2 program had on the internet community.
Google Mashup editor is a relatively new offering from Google. It is amied at making building mashups easy and should pave the way for better mashups in less time. It isn't appear to be in the same league as EC2 in business terms. Google nevertheless is testing the water before making it available for public consumption. A couple I have tried myself include
1. A wiki based product from IBM alphaworks
2. A great product from openkapow
Would have loved to get my hands on Google's mashup editor though.
Google Mashup editor is a relatively new offering from Google. It is amied at making building mashups easy and should pave the way for better mashups in less time. It isn't appear to be in the same league as EC2 in business terms. Google nevertheless is testing the water before making it available for public consumption. A couple I have tried myself include
1. A wiki based product from IBM alphaworks
2. A great product from openkapow
Would have loved to get my hands on Google's mashup editor though.
Wednesday, June 27, 2007
I had this requirement to pick the pixel color from an image. I usually use a image editor program that I have to select the color. Iam aware that programs like photoshop would do this kind of thing quite easily. But it didn't make sense to start photoshop if it wasn't already running just for this small requirement. As usually the case with free programs, the image editor software started acting strange and would not tell me the color. So I began searching the net for ColorPicker programs. Most of the results were for html websites that allow you to select web safe colors. There was a flash based one which I couldn't use because I didn't have flash installed. Another was a COM based google gadget which I couldn't test because I didn't have google desktop installed. So I went to the usually reliable Java for a solution. Only in this case it didn't prove so reliable after all. I call it usually reliable because there's always some java code out there that does what you want. A small example would be when I had to capture a screenshot and the print screen function was not working. A java code I found on the net did just what I wanted. I was hoping for something similar to happen with the color picker as well. But no luck. To select a color from an image, you would have to be able to manipulate the image at the pixel level. Java 2D allowed you to do that. But life is never simple, is it? I was working with a jpg file and to obtain a BufferedImage from a jpg file, you need a jpeg decoder. The sample code said that this could be done using something like below:
Only the jai-imageio project which contained JPEGImageDecoder did not have any JPEGDecoder in it. So it was back to search for JPEGDecoder and there were very few hits. The GNU classpath project had a JPEGDecoder and after getting all the files, it became evident that it wasn't quite the same as the decoder I wanted. The documentation was also scarce and by then I was able to get the color I wanted by running the image editor on my laptop.
Moral of the story: Don't go on a wild goose chase
InputStream in = ClipImage.class.getResourceAsStream(imgFile);
JPEGImageDecoder decoder = JPEGDecoder.createJPEGDecoder(in);
final BufferedImage bufferedImage = decoder.decodeAsBufferedImage();
in.close();
Only the jai-imageio project which contained JPEGImageDecoder did not have any JPEGDecoder in it. So it was back to search for JPEGDecoder and there were very few hits. The GNU classpath project had a JPEGDecoder and after getting all the files, it became evident that it wasn't quite the same as the decoder I wanted. The documentation was also scarce and by then I was able to get the color I wanted by running the image editor on my laptop.
Moral of the story: Don't go on a wild goose chase
Tuesday, June 05, 2007
This year's javaone a 'damp squib'? It sure does appear like it. Considering all the hype that was generated before the conference, this years' javaone definitely was pretty ordinary compared to previous years conferences. After thge keynotes and the announcement about JavaFX, it was as if they all had into a deep slumber only to wake up once the conference was over. Or maybe a Maoist regime had taken over the moscone center and imposed a blanket ban on any news getting out. Whatever be the reason, if the powers behind javaone think that 1 solitary announcement maketh a conference, they better think again. With the likes of Microsoft and Adobe coming out with new platforms for computing, java would have to buck up and get going if it does not want to get left behind.
Wednesday, May 09, 2007
Babel is a movie with intersting sub-plots that are full of emotion and the actors have given full support to the script. That they have given their best is evident as this movie is definitely oscar material. Brad Pitt is a different person in this film and a welcome change from the usual slam bang stuff he is known for. The story revolves around a american couple who are traveling in Morocco when the american woman is shot accidentally by 2 Moroccan sheperd boys. The movie traces the lives of 4 different people, that of the american couple, the nanny who looks after their kids, the moroccon boys family and surprisingly a japanese connection in the form of a hunter who happens to gift his rifle to the boys who end up shooting the american tourist. The last connection is so far-fetched that it could have been left out or atleast treated with a bit more sensitivenes. What does the japanese gifting the rifle to a Moroccan have anything to do with the problems faced by his deaf daughter.
Especially considering that most of the nidity in the film is centered around this Japanese girl.
The editing does lend to keeping the interest in the story alive but only ends up confusing the viewer about whats happening. A case in point is the telephone conversation that Brad has with the mexican nanny. Does he have it before or after the ordeal his kids go through. Could have been avoided. The director makes sure that the viewer is not bored with some clever screenplay and delivered a good movie containing elements of human interest. rating: 3 stars over 5
Especially considering that most of the nidity in the film is centered around this Japanese girl.
The editing does lend to keeping the interest in the story alive but only ends up confusing the viewer about whats happening. A case in point is the telephone conversation that Brad has with the mexican nanny. Does he have it before or after the ordeal his kids go through. Could have been avoided. The director makes sure that the viewer is not bored with some clever screenplay and delivered a good movie containing elements of human interest. rating: 3 stars over 5
Monday, May 07, 2007
It's been a while since my last blog mainly because of some stuff I got involved in. Our company is getting into other businesses away from developing the XML editor product. That has been put on the back burner temporarily to see if could strengthen our bottomline before contiuning development on that front.
Come May-June and the summer is at its peak here in Chennai. The showers expected from the depression that formed off the coast disappointed last week. The power situation isn't all that good either. Its important to drink plenty of water to avoid dehydration from the heat. It was another hot and humid afternnon this saturday when I went to the juice shop for a cool drink. I had a slight pain in my right ear for which I was taking medication and which hurt if I had anything cold. So I ordered a fresh juice with no ice and waited. There was this man by himself, 40-45ish and dressed in a pant and shirt. But it was only after watching him for a while that it dawned on me that he had quite a big sweet tooth. He sat there by himself surrounded by plates filled with fruits. He ate them after sprinking sugar on them. He then went on to order an icecream which he ate after adding sugar. Icecream with sugar, imagine. All this time I was enjoying my drink with an occassional look at him. I was getting ready to leave when I heard him asking the waiter for a banana milkshake with dry fruits. I couldn't help but think that the poor man must have been finding it difficult to get his family to serve him enough sweet stuff to satisfy his craving.
Come May-June and the summer is at its peak here in Chennai. The showers expected from the depression that formed off the coast disappointed last week. The power situation isn't all that good either. Its important to drink plenty of water to avoid dehydration from the heat. It was another hot and humid afternnon this saturday when I went to the juice shop for a cool drink. I had a slight pain in my right ear for which I was taking medication and which hurt if I had anything cold. So I ordered a fresh juice with no ice and waited. There was this man by himself, 40-45ish and dressed in a pant and shirt. But it was only after watching him for a while that it dawned on me that he had quite a big sweet tooth. He sat there by himself surrounded by plates filled with fruits. He ate them after sprinking sugar on them. He then went on to order an icecream which he ate after adding sugar. Icecream with sugar, imagine. All this time I was enjoying my drink with an occassional look at him. I was getting ready to leave when I heard him asking the waiter for a banana milkshake with dry fruits. I couldn't help but think that the poor man must have been finding it difficult to get his family to serve him enough sweet stuff to satisfy his craving.
Sunday, April 22, 2007
I have blogged about this so many times before that by now half the people using the internet probably know that Iam speaking at Jazoon'2007. However, I have the Jazoon logo which I thought would be nice to add to my blog. So Iam including the logo of Jazoon together with a link to their site below. Just follow the image link and scroll down to session no.660 to read more about the paper Iam presenting at the conference.
Thursday, April 19, 2007
Finally the super-8 rounds are over and the teams that will be facing off in the semi-finals has been decided. It will be Aus vs S.Africa and N.zealand vs S.Lanka.
There is some talk whether what S.Lanka did was right. i.e resting key players against a tough opponent like Australia. They probably felt that this way they would qualify second and meet N.zealand in the semis instead of Australia. They were well within their rights to rest their players at any stage of the tournament irrespective of whethey they had qualified or not. The motto should always be play to win though the Australians seem to carry that a bit far at times. But sometimes caution is the better part of valour.
The competitive spirit still is present in this world cup also. In 2003, the semifinals was far more interesting than the finals where the ozzies drubbed India. Even in the football world-cup, the semi-finals were more interesting than the finals atleast until the materazzi incident livened things up. In Tennis, you often see Federer facing off with Roddick in the semis to pick up a facile win over an unseeded finalist in the final round. So don't underestimate the power and intensity of the semis.
Someone was grumbling the world wasn't the same without India and Pakistan. Both their campaigns if narrated would put a greek tragedy to shame. The world cup has still had its fare share of moments both on and off the field I would say. W.Indies approach and performance makes you think if they were serious contenders at all. They manage to qualify by the skin of their teeth and their batsmen took you back to the days of test cricket whem run-rates of 2.5 runs per over was the norm. Brian Lara didn't help his teams cause by taking the powerplay from the 45-49th overs either. Of late, some merit is being seen in holding back the powerplays until a set batsman has gone back. But to hold it back till the 45th over is stretching things a bit. What difference does it make if the runs are scored in the 39th over when they opponent is only 2 down and have 7 more players to whack the ball around near the end.
There is some talk whether what S.Lanka did was right. i.e resting key players against a tough opponent like Australia. They probably felt that this way they would qualify second and meet N.zealand in the semis instead of Australia. They were well within their rights to rest their players at any stage of the tournament irrespective of whethey they had qualified or not. The motto should always be play to win though the Australians seem to carry that a bit far at times. But sometimes caution is the better part of valour.
The competitive spirit still is present in this world cup also. In 2003, the semifinals was far more interesting than the finals where the ozzies drubbed India. Even in the football world-cup, the semi-finals were more interesting than the finals atleast until the materazzi incident livened things up. In Tennis, you often see Federer facing off with Roddick in the semis to pick up a facile win over an unseeded finalist in the final round. So don't underestimate the power and intensity of the semis.
Someone was grumbling the world wasn't the same without India and Pakistan. Both their campaigns if narrated would put a greek tragedy to shame. The world cup has still had its fare share of moments both on and off the field I would say. W.Indies approach and performance makes you think if they were serious contenders at all. They manage to qualify by the skin of their teeth and their batsmen took you back to the days of test cricket whem run-rates of 2.5 runs per over was the norm. Brian Lara didn't help his teams cause by taking the powerplay from the 45-49th overs either. Of late, some merit is being seen in holding back the powerplays until a set batsman has gone back. But to hold it back till the 45th over is stretching things a bit. What difference does it make if the runs are scored in the 39th over when they opponent is only 2 down and have 7 more players to whack the ball around near the end.
Tuesday, April 17, 2007
Does a rehash count as a sequel?
I am referring to the film 102 dalmations from walt disney pictures. I had seen 101 dalmations before and found it great. Hoping to have a similar viewing experience, I went and rented out the 102 dalmations. Guess what? 102 Dalmations is a rehash of 101 Dalmations with a few minor changes here and there. In fact, it was like watching 101 dalmations all over again. And the reason struck me only later. Most of the scenes were the same as well. The disney company had used footage from the original in this movie also shooting only a few extra scenes to make the movie look different. Does this count as a sequel. Especially when you consider the large sums being spent on the batman and pirates of the caribbean movies. Imagine the plight of those who purchased tickets to watch this so called sequel and rented out the DVD. If someone did a video diff betwen the original and the sequel, I am sure the difference would be not more than 10 or 15%. Such is the amount of reuse. Seriously Disney folks ought to consider refunding my money back.
I am referring to the film 102 dalmations from walt disney pictures. I had seen 101 dalmations before and found it great. Hoping to have a similar viewing experience, I went and rented out the 102 dalmations. Guess what? 102 Dalmations is a rehash of 101 Dalmations with a few minor changes here and there. In fact, it was like watching 101 dalmations all over again. And the reason struck me only later. Most of the scenes were the same as well. The disney company had used footage from the original in this movie also shooting only a few extra scenes to make the movie look different. Does this count as a sequel. Especially when you consider the large sums being spent on the batman and pirates of the caribbean movies. Imagine the plight of those who purchased tickets to watch this so called sequel and rented out the DVD. If someone did a video diff betwen the original and the sequel, I am sure the difference would be not more than 10 or 15%. Such is the amount of reuse. Seriously Disney folks ought to consider refunding my money back.
Sunday, April 08, 2007
Is Ruby designed to run only on Linux?
Iam forced to ask this question because of what I have seen from the little I have worked with Ruby. The Ruby core itself installs and runs fine on windows. Its only when you want to install some gems that the problem arises. The command to install the gem is
c:\>ruby gem install
This failed with the message that 'NMake' was not found. I checked on the net and found a link at Microsoft.com where I could download 'NMake'. After I downloaded and copied 'NMake' to 'c:\ruby\bin', the error I got was 'cl' was not found. If I remember correctly 'cl' is the microsoft C compiler. I tried to replace 'nmake' with make and cl with gcc by downloading cygwin. But I couldn't figure out the place where I would change 'nmake' to 'make' since most of the files seem to be generated files. So the gem install process overwrites my changes. This is what has caused me to pose the question above which is
"Is ruby designed to run only on linux?"
Iam forced to ask this question because of what I have seen from the little I have worked with Ruby. The Ruby core itself installs and runs fine on windows. Its only when you want to install some gems that the problem arises. The command to install the gem is
c:\>ruby gem install
This failed with the message that 'NMake' was not found. I checked on the net and found a link at Microsoft.com where I could download 'NMake'. After I downloaded and copied 'NMake' to 'c:\ruby\bin', the error I got was 'cl' was not found. If I remember correctly 'cl' is the microsoft C compiler. I tried to replace 'nmake' with make and cl with gcc by downloading cygwin. But I couldn't figure out the place where I would change 'nmake' to 'make' since most of the files seem to be generated files. So the gem install process overwrites my changes. This is what has caused me to pose the question above which is
"Is ruby designed to run only on linux?"
Tuesday, April 03, 2007
What's the good framework for developing a web 2.0 application?
This is a question that I have been asking myself for sometime now. First of all, I wasn't sure whether a web application was such a good idea since I had spent most of last year working with thick clients. So for the moment, Iam setting aside this question, to be able to objectively decide which framework would be the best for data oriented projects. I am saying data oriented because if it were a text editor or had lots of charts, graphs etc, a thick client would win hands down. So the project has to be such that both a thick client as well as a web application can handle. With RIAs the gap between thick and thin clients has definitely narrowed down. This should only aid us in our evaluation.
Let's take a sample project for our evaluation. Since there are a number of web component frameworks available, let's assume we will be using one such component. The Tree component would be a good component to use. The data for the tree itself could be something hierarchical like an organization hierarchy. A requirement of 'Shenandoah corp' could be to get each employee to fill in a questionnaire. So for each employee, a form has to be presented and their inputs taken and then stored in the database. Soem fields in the form might require interfacing with the company's databse in DB2 which might require a web service call to be made. Since the budget for this project is low, the entire development has to be completed in 1 man month. The company also has plans to showcase the application to their customers which would imply that the application be web 2.0. It wuld therefore have to use Ajax and provide the same experience as visiting a site like digg, flickr etc. With the above in mind, let's proceed to narrow down the tool/api/frameork to use to implement this. To begin with, the available frameworks are as follows:
1. Flex 2
2. Wicket
3. Ruby on rails
4. GWT
5. J2EE
6. Seam
7. Struts
Since Ajax is needed, no 5 and no 7 are eliminated right away unless some means of Ajaxifying j2ee and struts is available. The rest are all even contenders which leaves us with nos:
1. Flex2
2. Wicket
3. Ruby on Rails
4. GWT
6 Seam
the eighth ofcourse being the Swing based thick client.
Who won the race and which framework was finally chosen to build the application. Watch this space to know the ending.
This is a question that I have been asking myself for sometime now. First of all, I wasn't sure whether a web application was such a good idea since I had spent most of last year working with thick clients. So for the moment, Iam setting aside this question, to be able to objectively decide which framework would be the best for data oriented projects. I am saying data oriented because if it were a text editor or had lots of charts, graphs etc, a thick client would win hands down. So the project has to be such that both a thick client as well as a web application can handle. With RIAs the gap between thick and thin clients has definitely narrowed down. This should only aid us in our evaluation.
Let's take a sample project for our evaluation. Since there are a number of web component frameworks available, let's assume we will be using one such component. The Tree component would be a good component to use. The data for the tree itself could be something hierarchical like an organization hierarchy. A requirement of 'Shenandoah corp' could be to get each employee to fill in a questionnaire. So for each employee, a form has to be presented and their inputs taken and then stored in the database. Soem fields in the form might require interfacing with the company's databse in DB2 which might require a web service call to be made. Since the budget for this project is low, the entire development has to be completed in 1 man month. The company also has plans to showcase the application to their customers which would imply that the application be web 2.0. It wuld therefore have to use Ajax and provide the same experience as visiting a site like digg, flickr etc. With the above in mind, let's proceed to narrow down the tool/api/frameork to use to implement this. To begin with, the available frameworks are as follows:
1. Flex 2
2. Wicket
3. Ruby on rails
4. GWT
5. J2EE
6. Seam
7. Struts
Since Ajax is needed, no 5 and no 7 are eliminated right away unless some means of Ajaxifying j2ee and struts is available. The rest are all even contenders which leaves us with nos:
1. Flex2
2. Wicket
3. Ruby on Rails
4. GWT
6 Seam
the eighth ofcourse being the Swing based thick client.
Who won the race and which framework was finally chosen to build the application. Watch this space to know the ending.
Monday, April 02, 2007
Modern day ten commandments:
1. Thou shall not download movies/music on to DVDs/CDs
2. Thou shall not jump the line at ticket counters
3. Thou shall not run the red signal at every opportunity
4. Thou shall not check your email 20 times every hour
5. Thou shall know the difference between a blog, a wiki and a podcast
6. Thou shall not talk on your mobile while driving
7. Thou shall not party for days without a break
8. Thou shall embrace open source at some level
9. Thou shall learn to live without your blackberry
10. Thou shall not go to bed with your ipod
1. Thou shall not download movies/music on to DVDs/CDs
2. Thou shall not jump the line at ticket counters
3. Thou shall not run the red signal at every opportunity
4. Thou shall not check your email 20 times every hour
5. Thou shall know the difference between a blog, a wiki and a podcast
6. Thou shall not talk on your mobile while driving
7. Thou shall not party for days without a break
8. Thou shall embrace open source at some level
9. Thou shall learn to live without your blackberry
10. Thou shall not go to bed with your ipod
Wednesday, March 28, 2007
This might be old news but India is officially out of the world cup. They lost to a vastly improved Bangladesh in the first game and then found Sri Lanka too hot to handle in a must win situation. There are various theories being attributed to the teams poor performance. These range from factionalism to seniors being worried about their position to too much experimenting. After seeing players being kept in the side even when they were woefully out of form, a bunch of players not doing too well in the domestic circuit have demanded a stint with the national team.
Anand Jon, a fashion designer of Indian origin based out of New York, has been accused of raping women by promising them prospects. Soon others joined in with similar claims. While it isn't uncommon for people to join in in such cases, the number in this particluar case has grown quite rapidly. So much so that they are thinking of filing a class action against jon.
Looks like Angelina jolie has adopted another child, this time from Vietnam. Brad Pitt apparently made her to take a flight back to LA lest she adopt a child from India if she traveled around in Asia. Shakira performed in Mumbai this month.
The hotel where she stayed left no stone unturned to please her arranging for things she liked such as books, music, fruits and flowers. They were however caught unawares when Shakira ordered for 'nimbu (lemon) and mirchi (chilly)' to ward off the evil eye. Next time, they plan to hire a 'tantrik' (A kind of priest who recites mantras and ties a band around your hand to rid you off all evil) to perform specially for her.
Disclaimer: This is meant to be fun and not intended at hurting anyone.
Anand Jon, a fashion designer of Indian origin based out of New York, has been accused of raping women by promising them prospects. Soon others joined in with similar claims. While it isn't uncommon for people to join in in such cases, the number in this particluar case has grown quite rapidly. So much so that they are thinking of filing a class action against jon.
Looks like Angelina jolie has adopted another child, this time from Vietnam. Brad Pitt apparently made her to take a flight back to LA lest she adopt a child from India if she traveled around in Asia. Shakira performed in Mumbai this month.
The hotel where she stayed left no stone unturned to please her arranging for things she liked such as books, music, fruits and flowers. They were however caught unawares when Shakira ordered for 'nimbu (lemon) and mirchi (chilly)' to ward off the evil eye. Next time, they plan to hire a 'tantrik' (A kind of priest who recites mantras and ties a band around your hand to rid you off all evil) to perform specially for her.
Disclaimer: This is meant to be fun and not intended at hurting anyone.
Monday, March 19, 2007
In the last couple of week amongst other things, one thing I have been frantically trying is to package my java application for deployment. I have a webstart version
for my app which I have made available from java.net. But, I want a exe version ready for my product which is in beta. So I tried various installers but Iam yet to find one that suits my needs. And Iam not just looking for the free ones which I know may not have all the necessary features. I haven't been able to get the evaluation download of even the paid ones to fulfill my needs. The installers I have tried include:
1. advanced installer - $199
2. launch4j - free
3. jshrink - $67
4. native4j - $45
5. lzpack - free
6. macrovision installshield - $449
Let me explain my requirements clearly which I think would be the same as anyone else in my position. You have built something putting in your hard effort and would like to guard yourself against unauthorized copying. So I would like to obfuscate my application. I have tried jshrink, porguard and recently allatori obfuscators. Next I would like to package my application classes in one jar file and specify the Main-class in the manifest file. The layout of my application is as follows:
com ----> root of application classes
resources --- used by application and contains icons, resource bundles
themepacks.zip - for my look and feel
META-INF - contains manifest file
lib ----> contains jar files used by my application
What I would like to do is package everything in one exe file for distribution. Is that too much to ask. Many of the installers I tried like native4j, launch4j cannot do this directly. They expect me to put all my classes and jar files in one big jar file and present it to them as input so they can do the packaging. This is easier said than done. There's more than 1 approach to do this none of which is satisfactory.
1. unjar all the jar files in a temporary directory and jar them al back into 1 big jar file. This doesn't work as many jar files' manifest contains signature information which prevent this approach from working
2. package everything as one jar file retaining the library jars as is. The problem here is the Class-path entry in your application jar's manigest only scans the filesystem. It does not check the jar file itself to see if the jars are in the classpath.
3. Find an installer that hides the details and packages everything nicely for you - Again very difficult unless you have the big bucks to buy a license for commercial installers like zeroG or exe4j.
The best promise is approach 2 and 3 but comes with the problems I have mentioned above. The packaging everything into 1 jar problem is addressed by the one-jar project hosted on sourceforge. But it doesn't seem to work either. Looks like there's a plugin for eclipse which I have downloaded but haven't tried. Iam hoping that this will do the trick. The other options include:
1. look more into izpack which seems to do everything I want albeit in a not so very starightforward manner
2. Try again with the installers that offer some promise atleast
3. Find some vendor who offers support and helps sort out all my troubles.
The cost is also a factor and I would like to get this done for as little as possible. Comments are welcome from people who know of a solution to this problem. I promise to give them a free license to my product if they help me sort this out.
Update: Since posting this blog, I went back to further tinker with Advanced Installer as I distinctly remembered having configured it correctly once. As luck would have it, I was able to get it working again. Looks like AI has a problem with jar files. When I supplied it with my folders expanded, AI was able to generate the setup file. But then AI costs $199 whereas there are cheaper alternatives around. Depending on available time and other factors, I may explore these alternatives someday.
for my app which I have made available from java.net. But, I want a exe version ready for my product which is in beta. So I tried various installers but Iam yet to find one that suits my needs. And Iam not just looking for the free ones which I know may not have all the necessary features. I haven't been able to get the evaluation download of even the paid ones to fulfill my needs. The installers I have tried include:
1. advanced installer - $199
2. launch4j - free
3. jshrink - $67
4. native4j - $45
5. lzpack - free
6. macrovision installshield - $449
Let me explain my requirements clearly which I think would be the same as anyone else in my position. You have built something putting in your hard effort and would like to guard yourself against unauthorized copying. So I would like to obfuscate my application. I have tried jshrink, porguard and recently allatori obfuscators. Next I would like to package my application classes in one jar file and specify the Main-class in the manifest file. The layout of my application is as follows:
com ----> root of application classes
resources --- used by application and contains icons, resource bundles
themepacks.zip - for my look and feel
META-INF - contains manifest file
lib ----> contains jar files used by my application
What I would like to do is package everything in one exe file for distribution. Is that too much to ask. Many of the installers I tried like native4j, launch4j cannot do this directly. They expect me to put all my classes and jar files in one big jar file and present it to them as input so they can do the packaging. This is easier said than done. There's more than 1 approach to do this none of which is satisfactory.
1. unjar all the jar files in a temporary directory and jar them al back into 1 big jar file. This doesn't work as many jar files' manifest contains signature information which prevent this approach from working
2. package everything as one jar file retaining the library jars as is. The problem here is the Class-path entry in your application jar's manigest only scans the filesystem. It does not check the jar file itself to see if the jars are in the classpath.
3. Find an installer that hides the details and packages everything nicely for you - Again very difficult unless you have the big bucks to buy a license for commercial installers like zeroG or exe4j.
The best promise is approach 2 and 3 but comes with the problems I have mentioned above. The packaging everything into 1 jar problem is addressed by the one-jar project hosted on sourceforge. But it doesn't seem to work either. Looks like there's a plugin for eclipse which I have downloaded but haven't tried. Iam hoping that this will do the trick. The other options include:
1. look more into izpack which seems to do everything I want albeit in a not so very starightforward manner
2. Try again with the installers that offer some promise atleast
3. Find some vendor who offers support and helps sort out all my troubles.
The cost is also a factor and I would like to get this done for as little as possible. Comments are welcome from people who know of a solution to this problem. I promise to give them a free license to my product if they help me sort this out.
Update: Since posting this blog, I went back to further tinker with Advanced Installer as I distinctly remembered having configured it correctly once. As luck would have it, I was able to get it working again. Looks like AI has a problem with jar files. When I supplied it with my folders expanded, AI was able to generate the setup file. But then AI costs $199 whereas there are cheaper alternatives around. Depending on available time and other factors, I may explore these alternatives someday.
Monday, March 12, 2007
Iam in Mumbai again this week and next for another round of meetings with a customer of ours. This time I made sure I packed everything including my sneakers, my swimming gear and a pair of shorts. Let's see if I get around to using them on this trip. There's a nice pool in front of the place where Iam staying but Iam not sure if I can use it. Yes, Iam not at a hotel this time and staying at the customer's guest house. Last week I managed to fit in 1 session at the gym and 2 hours of swimming into my schedule. Seems like I may be overdoing it a bit. But I had to to lose the calories I may have gained over the last month. In mumbai, I may take up jogging but that will have to wait till the weekend.
Nothing more on the jazoon front. Haven't heard from them. Probably it may take some more time before they send the details about the conference. I may also be writing an article for java.net and the process has already begun and I will be exchanging drafts of my article with java.net editor Chris Adamson shortly. I didn't know that they paid for writing articles. You are paid $500 for every article and there's no limit on the number articles you may write. You can however only write one article a month to give a chance to everyone. I have at least 3 articles in mind and plan to send them in over the next 3 months.
Nothing more on the jazoon front. Haven't heard from them. Probably it may take some more time before they send the details about the conference. I may also be writing an article for java.net and the process has already begun and I will be exchanging drafts of my article with java.net editor Chris Adamson shortly. I didn't know that they paid for writing articles. You are paid $500 for every article and there's no limit on the number articles you may write. You can however only write one article a month to give a chance to everyone. I have at least 3 articles in mind and plan to send them in over the next 3 months.
Friday, March 09, 2007
I have created a new java user group for the place where I live. I live in Chennai and the jug has been formed to bring together users of java in Chennai. The jug is called 'chugs' and caters to Greater chennai and the greater is there to mark the growing of chennai as an IT and automobile hub besides other sectors. So far, Iam the only member but I have a few tricks up my sleeve to get people to sign up. These include creating handouts which can pinned in public places. This blog is another means to invite people to join. I hope to keep the jug a friendly place where people can come and discuss their interests related to java. Iam still looking for a place to hold the meetings and someone to sponsor the coffee, snacks etc. It would be great if some corporates could sponsor books, t-shirts, tickets to java events etc. Sure would go a long way in getting people to attend and take active interest. The jug is located at http://chugs.dev.java.net and you can join by visiting the site and clicking 'join this project' link. Depending on the number of people and the funds available, inviting someone to speak at one of the meetings is also an option.
Tuesday, March 06, 2007
There's one place people visiting Chennai must see and that is Dakshina chitra. Dakshina chitra is a tranquil place situated about half hour drive from chennai city on the east coast road. It is a treasure tove of Indian culture especially south Indian. There is a small entry fee and after that you are on your own. You just follow the cobblestoned walkway and explore the place by yourself. Of course there will be a person milling about here and there. So you start exploring the place and the walkway takes you to rows of houses each built in a different style and you may be led to wonder initially. Then you notice the placards that tell you the style in which the house has been built. The sheer diversity of styles and the novelty of the concept will amaze you. Who would have thought that a place for preserving culture would exist right in the middle of resorts, hotels etc started out only with the interest of making money. The different kinds of styles of houses that exist include the chettinad houses, the tanjore houses, houses built in tirunelveli style, kerala houses including those belonging to hindus but also syrian christians, muslims and other houses. And the houses are not there just to serve as architectural examples. Each house is fully furnished with period furniture and other artifacts down to the minuscule detail. You would find the swing that the people used to sit on and rock themselves, the postle and mortar that old people used to powder betel nut, tobacco etc, complete utensils used in the kitchen, chairs, wall and house decorations etc. Once through with the houses, you can go to the restaurant and eat to your heart's content at the restaurant where you can find both vegetarian and non-vegetarian delicacies from the south. There's also a small souvenir shop where you can buy various art works, handicrafts and items of cultural significance.
Sunday, March 04, 2007
It's almost 3 months since I bought my Hitachi dvd camcorder. I thought I'll sum up my experience with the same for the benefit of others. The Hitachi DVD-CAM GX3200 comes with a 1.5 pixel resolution for video and 4MP reso for still images. For finer details, you can refer to the product specs available at the bottom of this blog. The best part I liked and had to shell out extra was for the infra red. This allows me to use my dvd-cam even in the dark and saved my $600 for the lights which I would otherwise have had to buy. The camcorder features Hitachi lenses and not the Carl Zeiss lenses which many would have heard of. Hitachi makes the world's best lenses atleast according to the sales guy. The Hitachi GX3200 features automatic stabilisation to correct errors induced by movement in the hands of inexperienced cameramen like myself which is another feature I liked. The sales guy was also kind enough to add a wide angle lens and a 6 hrs battery to the total package. The battery was another $200 extra but definitely worth it. The wide angle only adds marginal ability to shoot wide angle shots but is good nevertheless. The camcorder can use DVD-RAM or DVD-RW or DVD-R as the media. Again, I got 3 discs free along with the camera. These are mini discs and of 1/2 hour duration each. Iam not sure if there's longer duration discs of same size. So far I have used my camcorder to shoot the Chennai Open tennis, the music festival held during december and a few personal events. A really nice buy in my opinion and has sine become one of my prized possessions.
The camera specs:
Features
The camera specs:
Features
- USB Connection Yes
- Recording Format DVD+RW (8cm), DVD-RAM (8cm), AVCHD to DVD,
- Optical Zoom Factor 15x
- Digital Zoom Factor 800x
- Image Stabiliser Yes
- Colour Viewfinder Yes
- LCD Screen Yes
- LCD Screen Size 2.7 inch
- Webcam Function No
- Built-In Flash No
- Photo Mode Yes
- Photo Mode Resolution 1280 x 960
- Media Card SD Card
- Sound Stereo
- Audio Dubbing No
- Battery Type Lithium Ion
- Manual Focus Yes
- Manual Exposure Yes
- Manual White Balance Yes
- Backlight Compensation Yes
- Built-in Light No
- Built-in Editor Yes
- 3 CCD No
- Minimum Light (Lux) 0.3 lux in Low Light mode
- Remote Control Yes
- Accessory Shoe Yes
- Analogue Inputs No
- External Microphone Socket Yes
- Filter Thread 30.5mm
- Dimensions (WxHxD) mm 48 x 86 x 121mm
- Weight 420g without Battery
Saturday, March 03, 2007
The grammys is an eagerly awaited event every year. This year too it came and there were awards won. I hear John Mayer has scored again with 'continuum' though Iam yet to hear it. Since I don't listen to much of english music, I cannot tell really say who the other awardees were. Iam sure they richly deserved it whoever they were. I did listen to 'come away with me' by Norah Jones and found it absolutely enchanting. A great singer good at the art of composing lilting tunes. No wonder the album was well received and fetched her a number of grammys. The title song was good but the song I liked was 'Don't know why'. The other songs like 'painter song', 'cold cold heart' were also good. I don't know why I bought this particuar album because when I bought it her album 'feels like home' had already been released. Further, I had no idea what her music sounded like. To be honest, I did find the music a little slow at first but soon was immersed in it jilted by Norah's voice and her music. It wasn't all moonlight and candlight dinner with Norah's music though. In the pack I bought, there was another album by creedence clearater revival, the great rockers from the eighties. They do rock and soon they had me jamming to their music. I especially like to karaoke the 'I see a bad moon rising' song as I find it to my liking.
Wednesday, February 28, 2007
The Indian team left for the windies last night amidst much fanfare. On their shoulders rests the hopes and aspirations of a billion people. We have a well-balanced side this time with the return of the likes of sourav and zaheer to the team. The only area where the team may be found wanting is fielding. In my opinion, even that too may not matter much as there's still youngsters like Yuvraj, robin and karthick in the side. That doesn't mean that sehwag, sourav, dravid and sachin are bad fielders. So we can all expect a good world cup once we get past the preliminary stages where big teams play against teams like Ireland, canada etc. India is in the same pool as srilanka, bangladesh and Bermuda are the other teams in pool B. India would do well to remain wary of B'desh as they can spring a surprise or two. But Iam sure India would do well and reach the later stages with ease.
The budget has been announced though I haven't had a chance to check it out fully yet. From the little I have seen, there doesn't appear to be anything worth writing home about in the budget. For the emplloyed, it will be the same as last year. There appears to be extra cess for education and the farming sector has received some funds. Agriculture has received quite a bit of attention though Iam not sure if veterinary, an allied field till some time ago, has received some of the benefits.
Better infrastructure is an absolute must. The roads leading to and from the IT corridor are in a sorry state and taking too long to build. On the bright side, Chennai is becoming the next detroit and should strive to make a mark on the global economy.
The budget has been announced though I haven't had a chance to check it out fully yet. From the little I have seen, there doesn't appear to be anything worth writing home about in the budget. For the emplloyed, it will be the same as last year. There appears to be extra cess for education and the farming sector has received some funds. Agriculture has received quite a bit of attention though Iam not sure if veterinary, an allied field till some time ago, has received some of the benefits.
Better infrastructure is an absolute must. The roads leading to and from the IT corridor are in a sorry state and taking too long to build. On the bright side, Chennai is becoming the next detroit and should strive to make a mark on the global economy.
Just yesterday there was a post about a java expression evaluator called JEval going open source. This brought back memories of early part of last year when I had wanted the software for a rule engine I was developing. I am not sure what I hoped to achieve by doing this because in my case the rules were in java syntax. Some products I tested were
1. jep
2. jeplite
3. jformula
None of these would suit my need and I decided to write my own using javacc. I wanted a parser that would parse the expression and return me an AST. The parsers were in fact capable of evaluating the AST. But I didn't want that and just wanted only the AST. I found that while JavaCC would compile the expression and tell me if it was correct, I couldn't get a handle to the AST. The AST is used in a parser as an intermediate between a parse tree and a data structure
and differs from a parse tree by omitting nodes and edges for syntax rules that do not affect the semantics of the program. For example, grouping parentheses are omitted in an AST as the grouping of operands is explicit in the tree structure. In the end, I tried AST and the Calculator sample program was what fit my need to a T and I could get the AST that I wanted. I was a little
sad in the end because once I came to know of JavaCC, I had come to the conclusion that JavaCC would solve all my parsing needs. Only this time, javaCC proved inadequate and had to use ANTLR.
1. jep
2. jeplite
3. jformula
None of these would suit my need and I decided to write my own using javacc. I wanted a parser that would parse the expression and return me an AST. The parsers were in fact capable of evaluating the AST. But I didn't want that and just wanted only the AST. I found that while JavaCC would compile the expression and tell me if it was correct, I couldn't get a handle to the AST. The AST is used in a parser as an intermediate between a parse tree and a data structure
and differs from a parse tree by omitting nodes and edges for syntax rules that do not affect the semantics of the program. For example, grouping parentheses are omitted in an AST as the grouping of operands is explicit in the tree structure. In the end, I tried AST and the Calculator sample program was what fit my need to a T and I could get the AST that I wanted. I was a little
sad in the end because once I came to know of JavaCC, I had come to the conclusion that JavaCC would solve all my parsing needs. Only this time, javaCC proved inadequate and had to use ANTLR.
Tuesday, February 27, 2007
Just got an email. My paper has been selected for presenting at the Jazoon'2007 conference to be held in Zurich in June 2007. I had submitted my paper titled 'Adapting swingx JXTreeTable component to display XML" to both Java One and Jazoon. The Java One folks didn't see any merit in my paper whereas the jazoon folks did. I had written this paper based on the work I had done with the JXTreeTable for the XML grid component I was developing. Iam still waiting to hear more from the Jazoon people and if all goes well, I might go to Zurich in June. It was really good that Jazoon had a track for desktop java as I have been doing mostly desktop related work the past few months. It is only recently that I have taken interest in web 2.0, RIAs and such that I would have been hard pressed for a topic in which to present on had there not been a desktop java track. The next step would be for me to get ready a camera ready presentation. I will update this space frequently on what transpires. Switzerland has one of the prettiest landscapes on earth and what's more, I haven't been there yet. So Iam hoping it will be a great experience for me if I do make it. The kind of good work Bonanzasoft is doing in the open source space is starting to get recognized by the technological community at last. Iam sure only good things awaits the hard working people at Bonanzasoft from now on.
Monday, February 26, 2007
After nearly a month (3 weeks to be precise) my trip to Mumbai is finally coming to an end. It's been an interesting 3 weeks but also a somewhat exasperating one. The trip itself started on a sour note with me getting conned by a taxi driver, through a sleight of hand, made me pay the fare twice. Then my trip gets extended and I find that I haven't packed enough clothes. I hadn't even packed the mandatory night suit I would need for the first night only. Must have been dreaming while I packed. However, there was this big store called 'Big Bazaar' near my hotel where I could get the stuff I wanted. It is these stores that 'walmart' would be pitting against should it enter the retail segment. I knew beforehand that there was a possibility of the trip getting extended as the client I was meeting needed more convincing. The hotel room was booked for only 3 days and I had to extend that as well and also change rooms once. I hadn't even bothered to note down the client's name and phone number when I started. Thankfully, I remembered the company name and was able to get the number eventually and contact the client thereafter. I had to go outside to access the internet as my hotel didn't have wi-fi. I searched for a list of wi-fi zones in Mumbai from the client's place and made note of several. The first weekend on saturday, I spent visiting churchgate, Gateway of India and the Elephanta caves. The boat ride to elepanta was an hour long each way and the ride was really thrilling. I saw an internet cafe sign in Colaba, where GoI is located, and checked my email. Nothing of interest other than that a CD I had ordered had been dispatched. I then dropped into a Barista nearby and was told they had wi-fi and charged Rs 113 per hr. Not bad but I was too hosed to stop there.
My second attempt at finding a Wi-fi came when I went to the Inorbit mall in Malad West which is not far from where I stayed. But on going there I found that the connection wasn't going through even though it said "signal strength - strong 11 Mbps" in the taskbar. Don't know if it was the wi-fi or my laptop. But I had to settle for checking out the movie 'Blood diamond' instead. A couple of things I missed sorely were my sneakers and my trunks. I couldn't get any exercises during my three weeks of stay. The hotel didn't allow you into the pool unless you had proper swimming costume and I was averse to running barefeet on the road.
The meals in Mumbai are different from the one's Iam used to down south. There's less of rice and more roti which was good. The hotel where I stayed served rice and I couldn't help myself from ordering a sizeable portion each time I sat down to eat. I plan to embark on a strict regimen of diet and exercise upon my return. On a philosophical note, as I write this blog, a song comes to mind though I forget the album or the singer's name "The sad part is living without love".
My second attempt at finding a Wi-fi came when I went to the Inorbit mall in Malad West which is not far from where I stayed. But on going there I found that the connection wasn't going through even though it said "signal strength - strong 11 Mbps" in the taskbar. Don't know if it was the wi-fi or my laptop. But I had to settle for checking out the movie 'Blood diamond' instead. A couple of things I missed sorely were my sneakers and my trunks. I couldn't get any exercises during my three weeks of stay. The hotel didn't allow you into the pool unless you had proper swimming costume and I was averse to running barefeet on the road.
The meals in Mumbai are different from the one's Iam used to down south. There's less of rice and more roti which was good. The hotel where I stayed served rice and I couldn't help myself from ordering a sizeable portion each time I sat down to eat. I plan to embark on a strict regimen of diet and exercise upon my return. On a philosophical note, as I write this blog, a song comes to mind though I forget the album or the singer's name "The sad part is living without love".
Thursday, February 22, 2007
This thought occurs to me every time I see an application using Eclipse RCP. Have I made a mistake by spending so much time building my application from scratch. So many other vendors are leveraging the power of RCPs to build their applications. Here's a few examples.
1. Oracle uses Eclipse RCP for their BPEL product
2. Active BPEL uses Eclipse RCP
3. FlexBuilder uses Eclipse ECP
and many others. This allows them to focus on the business logic rather than worrying about such things as CloseableTabbedPanes, Dockable panels syntax highlighting, context-sensitive content assist etc to name a few. Never mind the end result gives the same effect as looking at a brand new urban citybuilt with lots of minarets and spires just because it was faster to build. That is only a small price to pay for other benefits realized such as faster time to market, smaller development cost, tested GUI layer etc.
Am I bothered by this thought. Not really. First of all, when I started developing my app a few years ago, I had no idea that such a thing existed. AFAICT, the RCP movement began quite recently. Further, Iam proud of my achievement and people just have to look at my product to see that Iam right. I'd like to believe that I have achieved something big, built a masterpiece as opposed to riding on the work done by others. Mind you, that this is not another instance of 'not developed here' syndrome. Its just that due to a twist of fate, I have come to become the owner of a cool looking product that I have developed myself without relying on anyone else.
1. Oracle uses Eclipse RCP for their BPEL product
2. Active BPEL uses Eclipse RCP
3. FlexBuilder uses Eclipse ECP
and many others. This allows them to focus on the business logic rather than worrying about such things as CloseableTabbedPanes, Dockable panels syntax highlighting, context-sensitive content assist etc to name a few. Never mind the end result gives the same effect as looking at a brand new urban citybuilt with lots of minarets and spires just because it was faster to build. That is only a small price to pay for other benefits realized such as faster time to market, smaller development cost, tested GUI layer etc.
Am I bothered by this thought. Not really. First of all, when I started developing my app a few years ago, I had no idea that such a thing existed. AFAICT, the RCP movement began quite recently. Further, Iam proud of my achievement and people just have to look at my product to see that Iam right. I'd like to believe that I have achieved something big, built a masterpiece as opposed to riding on the work done by others. Mind you, that this is not another instance of 'not developed here' syndrome. Its just that due to a twist of fate, I have come to become the owner of a cool looking product that I have developed myself without relying on anyone else.
Wednesday, February 21, 2007
Wicked wicket framework
---------------------------
I had earlier blogged about my foray into web 2.o and how I ended up trying wicket. I still am quite impressed with Wicket though I no longer work with it. Wicket interested me because it had a TreeTable component which I wanted to adapt to display XML. The exisiting TreeTable in Wicket displayed static, hierarchical data that could display only 5 columns. This was because the Wicket used a model bean which is a plain old java bean that looked like this:
public class ModelBean {
public ModelBean() {
}
public String getColumn_1_Value() {
}
public String getColumn_2_Value() {
}
:
:
:
}
What I envisaged would solve the problem was:
public class MyModelBean {
public MyModelBean() {...
public String getColumnValue(int columnNumber) {
if(columnNumber == 0)
return name;
else if(columnNumber == 1)
return size;
else if(columnNumber == 2)
return type;
else if(columnNumber == 3)
return lastModified;
}
This way the treetable would be able to display any kind of hierarchical data. However, in the end it proved to be easier said than done. Wicket uses PropertyResolver to resolve a compound expression of the form
userObject.value
which then got evaluated to
getUserObject().getValue()
}
using reflection. i.e 2 calls were being made on the PropertyResolver. The first one would ofcource return the userObject associated with the ModelBean and the getValue would then be called on the userObject. My new version would then pass the columnNumber as the argument to getValue. Further, key classes and methods inside wiket were marked private which hindered direct subclassing and workarounds had to be devised. Further there were so many execution paths since Wicket supports indexing of arrays, hashmaps besides javabean types that finding the places that needed changing was difficult to say the least. But as they say, Alls well that ends well and the code is now in the Apache incubator as Wicket has formally been inducted into Apache.
The work is by no means complete. The treetable editing functionality is not complete as yet. The treenodes are not editable. The swing version that I have developed is able to edit the treenodes. If time permits I would like to take that up as well. The only thing that is stopping me is the stack up inside my head has been cleared to make room for other stuff. Restarting work would mean once again going back and starting from the beginning
At times I did end up comparing wicket's syntax with that of JSF. JSF uses EL (expression language) for their expression support. JSF too uses PRopertyResolvers and with JSF our job is made slightly more difficult by ther being 2 different EL syntaxes, the JSTL syntax and JSF syntax which ofcourse is the topic of another blog altogether
---------------------------
I had earlier blogged about my foray into web 2.o and how I ended up trying wicket. I still am quite impressed with Wicket though I no longer work with it. Wicket interested me because it had a TreeTable component which I wanted to adapt to display XML. The exisiting TreeTable in Wicket displayed static, hierarchical data that could display only 5 columns. This was because the Wicket used a model bean which is a plain old java bean that looked like this:
public class ModelBean {
public ModelBean() {
}
public String getColumn_1_Value() {
}
public String getColumn_2_Value() {
}
:
:
:
}
What I envisaged would solve the problem was:
public class MyModelBean {
public MyModelBean() {...
public String getColumnValue(int columnNumber) {
if(columnNumber == 0)
return name;
else if(columnNumber == 1)
return size;
else if(columnNumber == 2)
return type;
else if(columnNumber == 3)
return lastModified;
}
This way the treetable would be able to display any kind of hierarchical data. However, in the end it proved to be easier said than done. Wicket uses PropertyResolver to resolve a compound expression of the form
userObject.value
which then got evaluated to
getUserObject().getValue()
}
using reflection. i.e 2 calls were being made on the PropertyResolver. The first one would ofcource return the userObject associated with the ModelBean and the getValue would then be called on the userObject. My new version would then pass the columnNumber as the argument to getValue. Further, key classes and methods inside wiket were marked private which hindered direct subclassing and workarounds had to be devised. Further there were so many execution paths since Wicket supports indexing of arrays, hashmaps besides javabean types that finding the places that needed changing was difficult to say the least. But as they say, Alls well that ends well and the code is now in the Apache incubator as Wicket has formally been inducted into Apache.
The work is by no means complete. The treetable editing functionality is not complete as yet. The treenodes are not editable. The swing version that I have developed is able to edit the treenodes. If time permits I would like to take that up as well. The only thing that is stopping me is the stack up inside my head has been cleared to make room for other stuff. Restarting work would mean once again going back and starting from the beginning
At times I did end up comparing wicket's syntax with that of JSF. JSF uses EL (expression language) for their expression support. JSF too uses PRopertyResolvers and with JSF our job is made slightly more difficult by ther being 2 different EL syntaxes, the JSTL syntax and JSF syntax which ofcourse is the topic of another blog altogether
Labels:
ajax,
open source,
web 2.0,
web framework,
wicket
Tuesday, February 20, 2007
Mumbai Dairy
This is my take on recent events and what's in store for the next month or so. Unlike last year, this year's superbowl went almost unnoticed. I didn't know about it until I heard of it from my sister. It was the bears vs the colts was what she told me. Don't know who won it too. On the homefront, the men in blue are preparing for the world cup of cricket to be held in the w.indies. Down under, Australia is coming under fire for recent flurry of losses. England, India and S.Africa and New zealand are the teams on a high after recent victories but the cup could be anybodys.
The oscars are also much awaited. Iam not sure who the contenders are this year. It's probably volver vs water in the best foreign film category. Brad pitt's babel too could be in contention. Clint Eastwood's 'letters from Iwo Jima' cannot be taken lightly either.
The tabloid's don't lose no time bringing us news about Hollywood celebrities. It was however, digg that first brought the news of Britney spears shaving her head. Aishwarya's engagement to Abhishek too is big news around these parts. Shilpa shetty might permanently settle in UK I guess the way the English have taken a liking to her. Or it could be that they want to compensate for the treatment they handed out to her in the Big Brother show. Roger waters performed in Mumbai on sunday. But I skipped it because he was before my time. I was prepped up on pink floyd in grad school and my first cd purchased was Pink floyd's 'The division bell'. By then Roger waters had retired and David Gilmour taken over. Still I remeber being transported to another dimension by "Shine on you crazy diamond" and the album "The wall" the last time I heard it. Life in Mumbai is going on and my work here should soon get over. I can't wait to get back to my desk as there's tons of things I have in my mind. Still there's a few good reasons why I might want to stay here a little longer. But that's a secret which I may share some other day.
This is my take on recent events and what's in store for the next month or so. Unlike last year, this year's superbowl went almost unnoticed. I didn't know about it until I heard of it from my sister. It was the bears vs the colts was what she told me. Don't know who won it too. On the homefront, the men in blue are preparing for the world cup of cricket to be held in the w.indies. Down under, Australia is coming under fire for recent flurry of losses. England, India and S.Africa and New zealand are the teams on a high after recent victories but the cup could be anybodys.
The oscars are also much awaited. Iam not sure who the contenders are this year. It's probably volver vs water in the best foreign film category. Brad pitt's babel too could be in contention. Clint Eastwood's 'letters from Iwo Jima' cannot be taken lightly either.
The tabloid's don't lose no time bringing us news about Hollywood celebrities. It was however, digg that first brought the news of Britney spears shaving her head. Aishwarya's engagement to Abhishek too is big news around these parts. Shilpa shetty might permanently settle in UK I guess the way the English have taken a liking to her. Or it could be that they want to compensate for the treatment they handed out to her in the Big Brother show. Roger waters performed in Mumbai on sunday. But I skipped it because he was before my time. I was prepped up on pink floyd in grad school and my first cd purchased was Pink floyd's 'The division bell'. By then Roger waters had retired and David Gilmour taken over. Still I remeber being transported to another dimension by "Shine on you crazy diamond" and the album "The wall" the last time I heard it. Life in Mumbai is going on and my work here should soon get over. I can't wait to get back to my desk as there's tons of things I have in my mind. Still there's a few good reasons why I might want to stay here a little longer. But that's a secret which I may share some other day.
Monday, February 19, 2007
Many rule engines compile the rules to achieve better performance. Drools uses Janino to compile the rules dynamically. Other rules engines use proprietary approaches. With code for javac being made public, rules in java syntax can also be compiled. Since the advent of Mustang, there's been a lot of talk about scripting support in java and I thought why not try something with a scripting language for instance. A benchmark I saw on the net revealed that groovy was by far the fastest next only to Rhino. My inherent suspicion of javascript made me to advise my team to use Groovy and this blog contains the results of our findings. I asked my team to to beat the timings of a fictitious evaluator that would evaluate the rules in 30ms or so.
To be honest, they were circumspect from the beginning but put up a brave front to me anyways. Later they told me it was the time taken to initialize the scripting engine, the binding of the params etc that worried them. So I asked them to try a lot of techniques like pre-cooking (a term I coined for initializing everything beforehand and leaving only the binding and evaluation for the last minute) for achieving better performance.
Now for some Groovy lessons. Groovy can be integrated in your java program in multiple ways.
1. GroovyShell approach
You could use the Groovy shell which wouldn't be much unlike a call to system in c or Runtime.exec in java. This is by far the slowest and I gave up this approach soon as I tried it.
2. GroovyClassLoader approach
The second approach was using the GroovyClassLoader. The groovy class is loaded into the ‘GroovyClassLoader’ and the ‘evaluate’ method invoked using reflection. The ‘GroovyClassLoader’ provides a ‘loadClass’ method for this purpose. However, this method only accepts a source file of a groovy script as input which it then compiles and returns a ‘GroovyClass’ object. The code for this approach is given below:
ClassLoader parent = ScriptRunnerLoader.class.getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
Object [] ps = vect.toArray(); // parameters to the method
File groovyFile = new File(ruleDir + File.separator + rname + ".groovy");
// Get an groovyClass object
Class groovyClass = loader.parseClass(groovyFile);
//create instance of class
groovyObject = (GroovyObject) groovyClass.newInstance();
//call method
Object obj = groovyObject.invokeMethod("evaluate", ps);
3. Groovy class approach
The last approach was using compiled groovy class. This is the most straightforward way of calling the groovy class and therefore the most efficient. The groovy class is directly imported into the application and the ‘evaluate’ method is called, similar to function calls made on other java objects in the application. This approach yields drastic improvement in performance, as there is no overhead of classloading or from interpreting the rules. The code for this is as below:
Vector vc = (Vector) vec.get(s);
String rname = (String) vc.get(0);
int rno = Integer.parseInt(rname.substring(4));
if(skipListContains(rno))
continue;
Vector vect = (Vector) vc.get(2);
String cond = (String) vc.get(1);
Object [] ps = vect.toArray();
Class groovyClass = Class.forName("rules." + rname);
groovyObject = (GroovyObject) groovyClass.newInstance();
Object res = groovyObject.invokeMethod("evaluate", ps);
Moral:
Don't expect some benefit when the real benefit lies elsewhere. In this case, the benefit of groovy was in its rich syntax and closure support and not in terms of cpu cycles.
Conclusion:
Groovy is great. But it is yet another java syntax. For someone who works with java day in and day out and looking for something new, give Ruby, beanshell, python and F3 a test drive. Forget such things as benchmarks for the time being and do what your heart tells you.
To be honest, they were circumspect from the beginning but put up a brave front to me anyways. Later they told me it was the time taken to initialize the scripting engine, the binding of the params etc that worried them. So I asked them to try a lot of techniques like pre-cooking (a term I coined for initializing everything beforehand and leaving only the binding and evaluation for the last minute) for achieving better performance.
Now for some Groovy lessons. Groovy can be integrated in your java program in multiple ways.
1. GroovyShell approach
You could use the Groovy shell which wouldn't be much unlike a call to system in c or Runtime.exec in java. This is by far the slowest and I gave up this approach soon as I tried it.
2. GroovyClassLoader approach
The second approach was using the GroovyClassLoader. The groovy class is loaded into the ‘GroovyClassLoader’ and the ‘evaluate’ method invoked using reflection. The ‘GroovyClassLoader’ provides a ‘loadClass’ method for this purpose. However, this method only accepts a source file of a groovy script as input which it then compiles and returns a ‘GroovyClass’ object. The code for this approach is given below:
ClassLoader parent = ScriptRunnerLoader.class.getClassLoader();
GroovyClassLoader loader = new GroovyClassLoader(parent);
Object [] ps = vect.toArray(); // parameters to the method
File groovyFile = new File(ruleDir + File.separator + rname + ".groovy");
// Get an groovyClass object
Class groovyClass = loader.parseClass(groovyFile);
//create instance of class
groovyObject = (GroovyObject) groovyClass.newInstance();
//call method
Object obj = groovyObject.invokeMethod("evaluate", ps);
3. Groovy class approach
The last approach was using compiled groovy class. This is the most straightforward way of calling the groovy class and therefore the most efficient. The groovy class is directly imported into the application and the ‘evaluate’ method is called, similar to function calls made on other java objects in the application. This approach yields drastic improvement in performance, as there is no overhead of classloading or from interpreting the rules. The code for this is as below:
Vector vc = (Vector) vec.get(s);
String rname = (String) vc.get(0);
int rno = Integer.parseInt(rname.substring(4));
if(skipListContains(rno))
continue;
Vector vect = (Vector) vc.get(2);
String cond = (String) vc.get(1);
Object [] ps = vect.toArray();
Class groovyClass = Class.forName("rules." + rname);
groovyObject = (GroovyObject) groovyClass.newInstance();
Object res = groovyObject.invokeMethod("evaluate", ps);
Moral:
Don't expect some benefit when the real benefit lies elsewhere. In this case, the benefit of groovy was in its rich syntax and closure support and not in terms of cpu cycles.
Conclusion:
Groovy is great. But it is yet another java syntax. For someone who works with java day in and day out and looking for something new, give Ruby, beanshell, python and F3 a test drive. Forget such things as benchmarks for the time being and do what your heart tells you.
Sunday, February 18, 2007
This is a review of the book "The Last Juror" by John Grisham. I bought this book to keep me company on my current visit to Mumbai for some discussions with some business prospects. I was glad that I had this book with me as there was lots of spare time and I had this good book to keep me company. This book features Grisham's usual style that captivates you and amazes you on the amount of knowledge he author has in his field. Through this book, the author takes us into what life was like in the days of segregation in rural Mississippi. The epilogue says that this book is Grisham's second book after "A time to kill" to be set in Ford county, MS. I have read the book and watched the movie as well of that one and find that this time the author has surpassed his earlier work.
The book is about the life of one Willie Traynor, an average student from syracuse who makes a mark on the lives of the people of Ford county. The bond that Willie establishes with a black family from lowtown ( a segregated area) is astonishing. He revives Ford county's local newspaper when it falls on bad times and increases the circulation. Willie comes to Ford county to work as an intern under Wilson caudle, the owner of the Times. He then goes on to take over the paper itself with a small loan from his well-to-do Grandma. From there on it's by Willie's hard work and his firm commitment to maintaining the high standards of reporting that gets him to the top. The slow, uneventful life of Ford county residents is disturbed by the rape and violent murder of a yound widow by a member of the county's padgitt clan. The Padgitts are feared and loathed by the Ford county residents for their involvement in various nefarious activities. The Padgitts are also a reclusive lot never leaving their home in the Padgitt island. They island is an impenetrable fortress and any attempt to penetrate the island has been met with force and people getting killed. The tentacles of the Padgitt's has spread far and wide and even the town's sheriff is under their payroll.The Sheriff's and the defense attorney's efforts to first gain bail for Daniel Padgitt (The accused) and then to prove him innocent goes in vain as the prosecution builds a strong case against him. They are only successful in saving their client from the noose. Danny does not help himself by threating to kill the jurors if they found him guilty. The Jurors go ahead and find him guilty anyways and surprisingly do not award the death sentence.
Meanwhile Willie goes about his business of covering the trial and at personal risk to his life and his newspaper brings to light the severity of the crime which plays a major part in making the Ford county residents becoming less tolerant of the Padgitt clans activities if not the result of the trial itself.
Willie's black friend is Ms.Callie who has raised seven children six of whom are Ph.Ds and working as Professor's across the U.S. No mean achievement since segregation was in effect. Willie pays scant heed to the color difference and makes friends with Callie. Callie also has italian blood as she is brought up by an Italian. The author needs to be congratulated for bringing this piece of history to us i.e if what he says is true. He goes further by becoming a member of their family and visits their home every thursday for lunch with Ms.Callie. He even invites them to his mansion and plays host to some 30+ Ruffins over a weekend. He helps protect Ms.Callie from Dannie's threat and also saves her last son Sam from another threat from another white man. Willie, being white himself, never sees a black as different from himself and takes on such issues as segregation in schools, churches and politics using his newspaper editorials. When a black gets killed in the Vietnam war, he actively takes up the cause of the young blood by calling for an end to the war. He dreams of buying fancy gifts for his friend Ms.Callie out of the wealth he earns by selling his newspaper. All this and a lot more takes the reader to the days of segregation itself.
True to Danny's threat, jurors start getting killed once he is out on Parole. First it is a helpless kid in a wheelchair and then a mechanic. The story revolves around the threat that exists to the remaining jurors and the unknown identity of the perpetrator of the shootings widely believed to be Danny Padgitt.
There's a few dry sections to the book as well. For example, the author's description of the laws and rules of 1970 Missippi and about the ways elections are held is rather boring. There's even an authors note at the end which says how he has misused the laws sometimes in the book.
All in all an enjoyable read.
The book is about the life of one Willie Traynor, an average student from syracuse who makes a mark on the lives of the people of Ford county. The bond that Willie establishes with a black family from lowtown ( a segregated area) is astonishing. He revives Ford county's local newspaper when it falls on bad times and increases the circulation. Willie comes to Ford county to work as an intern under Wilson caudle, the owner of the Times. He then goes on to take over the paper itself with a small loan from his well-to-do Grandma. From there on it's by Willie's hard work and his firm commitment to maintaining the high standards of reporting that gets him to the top. The slow, uneventful life of Ford county residents is disturbed by the rape and violent murder of a yound widow by a member of the county's padgitt clan. The Padgitts are feared and loathed by the Ford county residents for their involvement in various nefarious activities. The Padgitts are also a reclusive lot never leaving their home in the Padgitt island. They island is an impenetrable fortress and any attempt to penetrate the island has been met with force and people getting killed. The tentacles of the Padgitt's has spread far and wide and even the town's sheriff is under their payroll.The Sheriff's and the defense attorney's efforts to first gain bail for Daniel Padgitt (The accused) and then to prove him innocent goes in vain as the prosecution builds a strong case against him. They are only successful in saving their client from the noose. Danny does not help himself by threating to kill the jurors if they found him guilty. The Jurors go ahead and find him guilty anyways and surprisingly do not award the death sentence.
Meanwhile Willie goes about his business of covering the trial and at personal risk to his life and his newspaper brings to light the severity of the crime which plays a major part in making the Ford county residents becoming less tolerant of the Padgitt clans activities if not the result of the trial itself.
Willie's black friend is Ms.Callie who has raised seven children six of whom are Ph.Ds and working as Professor's across the U.S. No mean achievement since segregation was in effect. Willie pays scant heed to the color difference and makes friends with Callie. Callie also has italian blood as she is brought up by an Italian. The author needs to be congratulated for bringing this piece of history to us i.e if what he says is true. He goes further by becoming a member of their family and visits their home every thursday for lunch with Ms.Callie. He even invites them to his mansion and plays host to some 30+ Ruffins over a weekend. He helps protect Ms.Callie from Dannie's threat and also saves her last son Sam from another threat from another white man. Willie, being white himself, never sees a black as different from himself and takes on such issues as segregation in schools, churches and politics using his newspaper editorials. When a black gets killed in the Vietnam war, he actively takes up the cause of the young blood by calling for an end to the war. He dreams of buying fancy gifts for his friend Ms.Callie out of the wealth he earns by selling his newspaper. All this and a lot more takes the reader to the days of segregation itself.
True to Danny's threat, jurors start getting killed once he is out on Parole. First it is a helpless kid in a wheelchair and then a mechanic. The story revolves around the threat that exists to the remaining jurors and the unknown identity of the perpetrator of the shootings widely believed to be Danny Padgitt.
There's a few dry sections to the book as well. For example, the author's description of the laws and rules of 1970 Missippi and about the ways elections are held is rather boring. There's even an authors note at the end which says how he has misused the laws sometimes in the book.
All in all an enjoyable read.
Thursday, February 15, 2007
Is this what Maven was intended for
My company has installed a firewall so that the staff do not download software to their computers. We use a software that tracks the sites from which the files are being downloaded and also the filetypes. Typically downloading of exe files, zip files etc are prevented for obvious reasons. I also head the company's R&D team which means I have to download software frequently and evaluate them. Since the person heading the IT team is often involved in attending to some issue or other, I have to wait several hours before he downloads the files and gives it to me. I have found a better way to get around this problem. Since the arrival of Maven, most software gets published to the Maven repository as jar files. Interestingly, the jar format isn't one that is blocked by our corporate firewall and I can download it quite easily. There is a repository of open source projects and their jar files in the maven repository at http://www.ibiblio.org/maven. The softwares I have so far downloaded and installed include
1. asm
2. axis
3. batik
4. commons-*
5. dom4j
6. drools
7. groovy
8. izpack
9. jaxen
10. myfaces
11. wicket
12. wsdl4j
and many others.
I can download the binaries of the recent as well as older versions of all the products and the sources too for some of them. This kind of benefit that Maven is providing together with the continued use of Ant by many make me wonder if this was the main intended use of Maven or would Maven end up as the software that resulted in providing us with a steady stream of downloadable jar files without quite being put to its intended use which is as a build system.
My company has installed a firewall so that the staff do not download software to their computers. We use a software that tracks the sites from which the files are being downloaded and also the filetypes. Typically downloading of exe files, zip files etc are prevented for obvious reasons. I also head the company's R&D team which means I have to download software frequently and evaluate them. Since the person heading the IT team is often involved in attending to some issue or other, I have to wait several hours before he downloads the files and gives it to me. I have found a better way to get around this problem. Since the arrival of Maven, most software gets published to the Maven repository as jar files. Interestingly, the jar format isn't one that is blocked by our corporate firewall and I can download it quite easily. There is a repository of open source projects and their jar files in the maven repository at http://www.ibiblio.org/maven. The softwares I have so far downloaded and installed include
1. asm
2. axis
3. batik
4. commons-*
5. dom4j
6. drools
7. groovy
8. izpack
9. jaxen
10. myfaces
11. wicket
12. wsdl4j
and many others.
I can download the binaries of the recent as well as older versions of all the products and the sources too for some of them. This kind of benefit that Maven is providing together with the continued use of Ant by many make me wonder if this was the main intended use of Maven or would Maven end up as the software that resulted in providing us with a steady stream of downloadable jar files without quite being put to its intended use which is as a build system.
Saturday, January 06, 2007
I have just finished reading 'The monk who sold his Ferrari' by Robin sharma, an Indian writer of U.S origin and a highly sought after speaker on Motivation. The book is a easy-to-read and pinpoints exactly what the problem lies as far as most of our lifestyle goes. We immerse ourselves in our work completely oblivious to our suroundings, our family etc intent only in the pursuit of money hoping that that will pave the way for a happy retirement. This book is a wake-up call to all those people who like Julian Mantle, the person this book talks about, spend every moment of their waking hour chasing the elusive pot of gold at the end of the rainbow which in the author's opinion turns out empty in the end.
The author has opted to get his point across in the form of a fable which helps to keep the reader glued to the book. The fable isn't a fable in the real sense but a series of metaphors that the protagonist has created to help him remember the seven steps to attain enlightenment. The points raised by the author are thought-provoking and highly relevant in today's fast paced world where you find so many broken marriages, burn-out and a high percentage of stress related ailments even amongst young people. Many of the advices, we have already heard. Things like "Take time to spend time with family", "Take the time to enjoy your surroundings etc" are not new to many of us and we have heard people say these things already. However, this book puts these points acrosss in a way that makes even the non-believers pause and listen so as correct themselves in case they haven't done so already. Of course there's some new stuff as well including noble ones like "Live a life of purpose" rather than asking what the world has done for you. The author asserts that there is joy in "giving to others" and dedicate oneself to the service of manking. The author also assures us periodically that this needn't necessarily mean that we let go of our present lives and become an ascetic though the protagonist has become one more out of necessity borne by his physical condition than by choice. Another aspect that the author would like to consider is to stop living for others and do what appeals to one's inner self. For example, somebody with artistic talents would be miserable if he were made to do clerical duty. This ofcourse means that risks have to be taken as someone with a family to feed would hardly let go of his lucrative career for personal satisfaction.
The book however much the author tried to disguise it, does at some point begin to look like taking a pill. Also the metaphors chosen by the author are debatable in some cases. The author has done the right thing by choosing the foothills of the himalayas as the backdrop for his narration. However the presence of a sumo wrestler and the mentioning of 'kaizen', a concept of japanese origin, makes one wonder if the author is himself convinced in the first place. The book overall is a good read and a must for anyone who places work above everything else.
The author has opted to get his point across in the form of a fable which helps to keep the reader glued to the book. The fable isn't a fable in the real sense but a series of metaphors that the protagonist has created to help him remember the seven steps to attain enlightenment. The points raised by the author are thought-provoking and highly relevant in today's fast paced world where you find so many broken marriages, burn-out and a high percentage of stress related ailments even amongst young people. Many of the advices, we have already heard. Things like "Take time to spend time with family", "Take the time to enjoy your surroundings etc" are not new to many of us and we have heard people say these things already. However, this book puts these points acrosss in a way that makes even the non-believers pause and listen so as correct themselves in case they haven't done so already. Of course there's some new stuff as well including noble ones like "Live a life of purpose" rather than asking what the world has done for you. The author asserts that there is joy in "giving to others" and dedicate oneself to the service of manking. The author also assures us periodically that this needn't necessarily mean that we let go of our present lives and become an ascetic though the protagonist has become one more out of necessity borne by his physical condition than by choice. Another aspect that the author would like to consider is to stop living for others and do what appeals to one's inner self. For example, somebody with artistic talents would be miserable if he were made to do clerical duty. This ofcourse means that risks have to be taken as someone with a family to feed would hardly let go of his lucrative career for personal satisfaction.
The book however much the author tried to disguise it, does at some point begin to look like taking a pill. Also the metaphors chosen by the author are debatable in some cases. The author has done the right thing by choosing the foothills of the himalayas as the backdrop for his narration. However the presence of a sumo wrestler and the mentioning of 'kaizen', a concept of japanese origin, makes one wonder if the author is himself convinced in the first place. The book overall is a good read and a must for anyone who places work above everything else.
Subscribe to:
Posts (Atom)