tag:blogger.com,1999:blog-71913482561783600262024-03-05T01:04:14.956-08:00Kiran Thakkar's BlogKiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.comBlogger26125tag:blogger.com,1999:blog-7191348256178360026.post-73448335337610874962008-03-22T16:29:00.000-07:002008-03-22T16:46:56.358-07:00Bura na mano Holi hai......You know what, I got to play holi in US. It was really a fun.<br />I got to know from one of my friend on 21st that Holi celebration will be held at Hindu Sunnyvale temple and I was like so happy.<br />Here is a snap after playing holi.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYPnCffrDDWetxajlm_0nV9oc9YAPI6b2uXatHnnme65-RZbDaVhKaaiqBpj_sAr11wUHWY7_ttKzHXU4Evrrr2vSszsO4SoNoo3pdSCNmY456mRxJq05eZCgtIaXYEJxTXOxKwDK_hlk-/s1600-h/Image160.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYPnCffrDDWetxajlm_0nV9oc9YAPI6b2uXatHnnme65-RZbDaVhKaaiqBpj_sAr11wUHWY7_ttKzHXU4Evrrr2vSszsO4SoNoo3pdSCNmY456mRxJq05eZCgtIaXYEJxTXOxKwDK_hlk-/s320/Image160.jpg" alt="" id="BLOGGER_PHOTO_ID_5180713622470377266" border="0" /></a><br />There were so many Indians around who had also come to play holi. There were many americans and chinese also. It was really fun to dance on Rang Barse sung by Amitabh Bacchan in movie Silsiley.<br /><br />There was also bhang being served but I was unlucky to reach late and it was over. :-(<br />There was also lunch program after playing holi but as my hands were not good I choose to go home and then eat something instead of having lunch there.<br /><br />It took about an hour for me to get well after playing with colors but it was worth after having so much of the fun dancing with colors.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com31tag:blogger.com,1999:blog-7191348256178360026.post-20028989586466052632008-03-11T21:08:00.000-07:002008-03-11T21:25:03.155-07:00BarCamp in Silicon VallyI am in US since last three weeks but BarCamp fever is still on.<br />I got to know about <a href="https://barcamp.pbwiki.com/PcampSiliconValley">BarCamp</a> which will be on the coming Saturday (15th March) at Yahoo, Mountain View.<br /><br />Its a Product Management Unconference as Organizers quote it. There will be talks on Agile Product Management, Extreme Usability, Marketing the product and so many such interesting technical and non technical stuff. Ohhhh God. It will be great time to attend this and this is the kind of BarCamp we have been dreaming for even in Pune. Hope attending this BarCamp will give me some experience which will help me to make Pune BarCamps better.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com6tag:blogger.com,1999:blog-7191348256178360026.post-50359589117391220942008-02-18T17:02:00.000-08:002008-02-18T17:22:33.227-08:00My first visit to USThe first line in most of my blogs would be, I am here after a long tim. I should stop writing that from now I guess because that should be by default understood by now. :-)<br /><br />This was the first time I was traveling international. I was supposed to leave from Pune 1t 3.00 PM. But as always I am always late and that too when <a href="http://kiranthakkar.blogspot.com/2007_01_21_archive.html">I have to reach to Bombay</a>, It always is the case. My sister had to come to Pune and my one more friend was supposed to travel with us to Mumbai. My parents had directly come to Mumbai to see me off. We started at 3.30 and we were at the first food plaza on Pune-Mumbai express way at 6.30. Our cab was not in a good condition and stopped three times in between Pune to the food plaza.<br /><br />Then we decided to change the car. I called one of my friend. He sent a Tavera car for us. That left us to Mumbai airport at 10.30 which because there was so much traffic on the way. When you are in Mumbai, You don't have to say there was traffic. It is by default understood.<br /><br />Then I introduced my friend Sarika and her brother to my parents and uncle. It was the time for me to get into the airport. I said "Bye Bye" to my parents and to all who had to come to see me off at the airport.<br /><br />Initially I was confused as to where should I go which I think happens with all the first timers. It was over all a good experience in the flight and on the way to the Sunnyvale. I had a stop over of 3 hrs at the New York airport.<br /><br />Weel my experience of US is, There are lots of cultural differences. Its difficult to digest many of the differences but you have to bare with them At the same time there are so many good changes that you will find here that you won't loke to go back to India after some time. I am on a mid way. I don't want to go back to India which means I am out of cultural shock at the same time I don't want to stay here for too long a period.<br /><br />Will keep you updated about my different experiences in US. Stay tuned.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com1tag:blogger.com,1999:blog-7191348256178360026.post-60478808535169228352007-12-31T21:21:00.001-08:002008-01-08T00:47:23.381-08:00BarCamp with a differenceIts a very well known fact, more you grow or more you perform, expectations also grow. This is not only true for a living entity, its also true for an events like <span class="blsp-spelling-error" id="SPELLING_ERROR_0"><span class="blsp-spelling-error" id="SPELLING_ERROR_0">BarCamp</span></span> or any other for that matter.<br /><br />This is the fourth <span class="blsp-spelling-error" id="SPELLING_ERROR_1"><span class="blsp-spelling-error" id="SPELLING_ERROR_1">BarCamp</span></span> we are heading towards in <span class="blsp-spelling-error" id="SPELLING_ERROR_2"><span class="blsp-spelling-error" id="SPELLING_ERROR_2">pune</span></span>. And same above theory applies to this. People expect much more from a <span class="blsp-spelling-error" id="SPELLING_ERROR_3"><span class="blsp-spelling-error" id="SPELLING_ERROR_3">BarCamp</span></span> and we have been brain storming from quite a bit of time to make this <span class="blsp-spelling-error" id="SPELLING_ERROR_4"><span class="blsp-spelling-error" id="SPELLING_ERROR_4">BarCamp</span></span> "A <span class="blsp-spelling-error" id="SPELLING_ERROR_5"><span class="blsp-spelling-error" id="SPELLING_ERROR_5">BarCamp</span></span> with a difference". We are still in the process of defining "differences" though.<br /><br />The first question we had while we were discussing was "What makes a <span class="blsp-spelling-error" id="SPELLING_ERROR_6"><span class="blsp-spelling-error" id="SPELLING_ERROR_6">BarCamp</span></span> successful?"<br />Is it more number of people attending it or Is it quality of speakers or Is it better food, better <span class="blsp-spelling-error" id="SPELLING_ERROR_7"><span class="blsp-spelling-error" id="SPELLING_ERROR_7">tshirts</span></span>, better stationary or Is it coverage by media and question list just goes on and on.<br /><br />After a long discussion we made a list of few crucial points to make a <span class="blsp-spelling-error" id="SPELLING_ERROR_8"><span class="blsp-spelling-error" id="SPELLING_ERROR_8">BarCamp</span></span> successful.<br /><ol><li>Getting good quality talks (Does <span class="blsp-spelling-error" id="SPELLING_ERROR_9"><span class="blsp-spelling-error" id="SPELLING_ERROR_9">BarCamp</span></span> concept allow us to lay down such criteria? I think NO but we will try our best going beyond conventions)</li><li>Getting interested people attending the event (No offenses meant, but it has been observed that after lunch many people disappear. Can we say they had come for <span class="blsp-spelling-error" id="SPELLING_ERROR_10"><span class="blsp-spelling-error" id="SPELLING_ERROR_10">tshirt</span></span> and lunch? <span class="blsp-spelling-error" id="SPELLING_ERROR_11"><span class="blsp-spelling-error" id="SPELLING_ERROR_11">Hmmmm</span></span> may be, but quality of few initial talks can also be the reason.)</li><li>Media (Does media really play a role there? Well, I don't think so, but if they come, attendees may feel good if they are shot or interviewed and that may become "The factor" for the success of a <span class="blsp-spelling-error" id="SPELLING_ERROR_12"><span class="blsp-spelling-error" id="SPELLING_ERROR_12">BarCamp</span></span>. But are <span class="blsp-spelling-error" id="SPELLING_ERROR_13"><span class="blsp-spelling-error" id="SPELLING_ERROR_13">BarCamp</span></span> organized to make people feel good???)</li><li>Plenty of take aways (Well, I don't think that really matters for the success of a <span class="blsp-spelling-error" id="SPELLING_ERROR_14"><span class="blsp-spelling-error" id="SPELLING_ERROR_14">BarCamp</span></span>)</li><li>Plenty of discussions and open space for networking (Ya it does matter. Finally that what people come to <span class="blsp-spelling-error" id="SPELLING_ERROR_15"><span class="blsp-spelling-error" id="SPELLING_ERROR_15">BarCamp</span></span> for. I remember few people creeping at last <span class="blsp-spelling-error" id="SPELLING_ERROR_16"><span class="blsp-spelling-error" id="SPELLING_ERROR_16">BarCamp</span></span>; there is no enough space for networking or to hang around but believe me that was intentional. We wanted more and more people to attend the sessions.)<br /></li></ol>All of the above play some (Though it may be very small) role in making a <span class="blsp-spelling-error" id="SPELLING_ERROR_17"><span class="blsp-spelling-error" id="SPELLING_ERROR_17">BarCamp</span></span> successful.<br />Well we are working towards all of them. Here are few things that we have thought of.<br /><ol><li>We went to the venue and believe me there is plenty of space for networking.</li><li>We are planning to organize a workshop which will be full of practicals and coding unlike sessions where knowledge is shared and discussed.<br /></li><li>There will be plenty of discussions going on and we will make sure that all the infrastructure is provided to the discussions.<br /></li><li><span class="blsp-spelling-error" id="SPELLING_ERROR_18"><span class="blsp-spelling-error" id="SPELLING_ERROR_18">Wifi</span></span> is available at the venue and there won't be any problem of <span class="blsp-spelling-error" id="SPELLING_ERROR_19"><span class="blsp-spelling-error" id="SPELLING_ERROR_19">wifi</span></span> as well.</li><li>We have asked speakers to give brief description of their talks on wiki. We may filter out few talks. We will also make sure that diversity of topics will be there. And most important not more that one talk from one person. And not more than three talks from one company be it a sponsor or not</li><li>There will also be media persons covering the event.</li><li>We can't really do anything about quality of attendees. We can do extensive marketing to make sure that we reach to all enthusiastic and interested people but that will also attract few <span class="blsp-spelling-error" id="SPELLING_ERROR_20"><span class="blsp-spelling-error" id="SPELLING_ERROR_20">tshirt</span></span> interested ones. Again no offenses meant.</li></ol>We need all of yours support to achieve this and actually making this <span class="blsp-spelling-error" id="SPELLING_ERROR_21"><span class="blsp-spelling-error" id="SPELLING_ERROR_21">BarCamp</span></span> "A <span class="blsp-spelling-error" id="SPELLING_ERROR_22"><span class="blsp-spelling-error" id="SPELLING_ERROR_22">BarCamp</span></span> with a difference".Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com7tag:blogger.com,1999:blog-7191348256178360026.post-74124427263744801012007-12-20T22:07:00.000-08:002007-12-21T02:11:24.472-08:00Disaster management at my officeIt was 21st December 11.00 AM and fire alarm goes on at my work place. All the colleagues stood on their feet and were looking at each other to find out what has actually happened. Finally one of us realized that its a fire alarm and the whole 7 floor building needs to be evacuated.<br /><br />What I could see around were faces with shock and carrying questions "What should we do now?".<br />There starts disaster management plan. Fire quadrant on my floor asked everybody to get out of the work halls and stand near the stairs but not to start getting down. I could see few youngsters running fast to the ground floor through stairs to make sure that there is no hurdle in the way down to the ground floor. There were few youngsters running around on the floor and making sure that no one is left out, checking in all the conference rooms and discussion rooms, Helping paralyzed and pregnant women to get out of the work halls.<br /><br />Have you ever been into such a situation? Please never wish to be in. Its not at all fun.<br /><br />Then we were asked to start walking down to the ground floor to the rescue area in a queue. There were so much panic that even before the fire quadrant completed that instruction, people started running down to the rescue area.<br /><br />Then there was a head count to make sure that all the people have been evacuated. And here I can see smile on a face of fire quadrant "All have been evacuated safely without any damage".<br /><br />Here comes the announcement which made everybody smiling and taking breath of relief. It was fire drill. Big big claps for fire quadrants who did fantastic job by evacuating the whole 7 floors of building in less than 7 minutes.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com0tag:blogger.com,1999:blog-7191348256178360026.post-77852071354224570582007-12-18T02:11:00.000-08:002007-12-18T04:13:01.616-08:00Sponsoring at BarCamp Pune4In my previous post I described circumstances in which I had started of planning for next Pune BarCamp. On the very next of ClubHack We announced BarCamp Pune to a small group of proplr. First I sent a mail to <a href="http://www.thoughtworks.co.in/">ThoughtWorks</a> to sponsor. And as I expected they are ready to sponsor not only venue but lunch and tshirts as well. <a href="http://rohit11.com/">Rohit</a> The man behind <a href="http://www.clubhack.com/index.html">ClubHack</a> is sponsoring posters under the banner of ClubHack.<br /><br />Many Many Thanks to ThoughtWorks and ClubHack.<br /><br />We are still looking for sponsors for other logistics like pens, pads. You can get in touch with me thakkar.kiran@gmail.com (09850975679) or drop a mail to barcamp-pune@yahoogroups.com to sponsor at BarCamp Pune.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com1tag:blogger.com,1999:blog-7191348256178360026.post-23119908030975833342007-12-17T22:25:00.000-08:002007-12-18T23:06:51.829-08:00BarCampPune4Hey Its time for one more <span class="blsp-spelling-error" id="SPELLING_ERROR_0">BarCamp</span> in <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Pune</span>.<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_2">BarCamp</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_3">Pune</span> happens twice in a year. One in June-July and the other in November-December.<br /><br />This time there was <a href="http://www.clubhack.com/index.html"><span class="blsp-spelling-error" id="SPELLING_ERROR_4">CLUBHACK</span></a> event happening in December so <span class="blsp-spelling-error" id="SPELLING_ERROR_5">BarCamp</span> is delayed by two months or so.<br /><br />When I was attending <span class="blsp-spelling-error" id="SPELLING_ERROR_6">Clubhack</span>, I met many <span class="blsp-spelling-error" id="SPELLING_ERROR_7">BarCamp</span> people and all had same question, When is next <span class="blsp-spelling-error" id="SPELLING_ERROR_8">BarCamp</span>. :-)<br /><br />So here it is. It will be on 16<span class="blsp-spelling-error" id="SPELLING_ERROR_9">th</span> February. I was planning in January only, But <a href="http://www.tarunchandel.blogspot.com/"><span class="blsp-spelling-error" id="SPELLING_ERROR_10">Tarun</span></a> is planning for <span class="blsp-spelling-error" id="SPELLING_ERROR_11">BlogCamp</span> in <span class="blsp-spelling-error" id="SPELLING_ERROR_12">Mumbai</span> in January.<br /><br /><a href="http://barcamp.org/BarCampPune4">Wiki</a> is up and registrations have started.<br /><br />So what are you waiting for. Do register yourself.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com4tag:blogger.com,1999:blog-7191348256178360026.post-38296797821360365452007-12-04T23:55:00.001-08:002007-12-05T00:19:23.522-08:00Clubhack-Hackers own convention (First time in India)Hi<br /><br />After a long time I am back at my blogs' create new post area.<br />Unfortunately Blogger site is blocked at my work place. :-(<br /><br />Due to that, I was not able to introduce you all with the next event to be held in pune. (<a href="http://www.clubhack.com/index.html"><span style="font-weight: 400;"><span style="font-family:Imprint MT Shadow;"><span style="color: rgb(118, 148, 247);">Club</span><span style="color: rgb(249, 90, 4);">Hack</span></span></span></a>)<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjftT0gvmcEGOucT64OGKmQtfU-VTs0NbeerkHIUvguF26Gyrn_wTMYTizFAo10SyYW9KIYg-mfAjsl1zEBCNWKR0hE9fEcPDTfFlLkINM69FTe0s6kthMFdYY9UcVtTBKTwZ9dERlkJ6lb/s1600-h/hc_guy_left.gif"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjftT0gvmcEGOucT64OGKmQtfU-VTs0NbeerkHIUvguF26Gyrn_wTMYTizFAo10SyYW9KIYg-mfAjsl1zEBCNWKR0hE9fEcPDTfFlLkINM69FTe0s6kthMFdYY9UcVtTBKTwZ9dERlkJ6lb/s320/hc_guy_left.gif" alt="" id="BLOGGER_PHOTO_ID_5140398639692455442" border="0" /></a><br /></div><br /><table class="d-body-normal" style="border-collapse: collapse; color: rgb(17, 17, 17);" id="AutoNumber4" border="0" cellpadding="0" cellspacing="0" width="98%"><tbody><tr><td height="22" width="100%"><span style="font-weight: 400;"> It <span style="font-family:Imprint MT Shadow;"><span style="color: rgb(249, 90, 4);"></span></span></span>is one of its kind hackers' convention in India which serves as a meeting place for hackers, security professionals, law enforcement agencies and all other security enthusiasts.</td> </tr> <tr> <td height="22" width="100%"><br /></td> </tr> <tr> <td height="22" width="100%">It's a 1 day convention on 9th of December in a upcoming IT hub "Pune", also known as oxford of the east. A city full of hard core coders who hack their days out to build the world's best software.</td> </tr> <tr> <td height="22" width="100%"><br /></td> </tr> <tr> <td height="21" width="100%">I am really sorry to say that registration is closed. But you can drop at the venue and if registered enthus don't come, then we will be more than happy to accommodate you.<br /><br />For further information about the event, You can visit http://www.clubhack.com/index.html.<br /></td></tr></tbody></table>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com1tag:blogger.com,1999:blog-7191348256178360026.post-63353940941653894262007-08-07T06:53:00.001-07:002007-08-07T07:06:50.895-07:00Thread pool implementation in Java 1.5<p>Most of the application in J2EE these days require multi threading programming. And i was wondering why has java not provided implementation of Thread pool. And I found one with Java 1.5.</p><p>Java 1.5 has introduced a new package java.util.concurrent. That package deals with so many synchronization related things. Read <a href="http://www.jdocs.com/tab/131/java/util/concurrent/package-summary.html">this</a>.<br /></p><p> One of them is implementation of Thread pool.</p><p>I wanted to implement thread pooling to ping all the machine in the given IP range. I was exploring java.util.concurrent package and found Thread Pool implementation is so easy to use.</p><p> This is the code that i had to write and i was done with Thread pool implementation which required at least 2-3 classes to be written with earlier version of Java.<br /></p><p>import java.io.BufferedReader;<br />import java.io.IOException;<br />import java.io.InputStreamReader;<br />import java.util.concurrent.LinkedBlockingQueue;<br />import java.util.concurrent.ThreadPoolExecutor;<br />import java.util.concurrent.TimeUnit;<br /><br />public class MultiThreadedPing {<br /></p><p> public static void main(String[] args){<br /></p><p> String networkAddress = "10.88.68.";<br /> int tpSize = 10; <br /> String ipAddress = null;<br /> ThreadPoolExecutor tpe = new ThreadPoolExecutor(tpSize,tpSize,50000L,TimeUnit.MILLISECONDS,new LinkedBlockingQueue<runnable>());</runnable></p><p><runnable> for(int i=2;i<20;i++){</runnable></p><p><runnable> ipAddress = networkAddress + String.valueOf(i);<br /> PingThread pt = new PingThread(ipAddress);<br /> tpe.execute(pt);</runnable></p><p><runnable> }</runnable></p><p><runnable> tpe.shutdown();<br /></runnable></p><p><runnable> }<br /></runnable></p><p><runnable>}</runnable></p><p><runnable> class PingThread implements Runnable{<br /></runnable></p><p><runnable> private String ipAddress;<br /></runnable></p><p><runnable> public PingThread(String ipAddress){<br /> this.ipAddress = ipAddress;<br /> }</runnable></p><p><runnable> public void run(){<br /></runnable></p><p><runnable> String pingResult = "";<br /> String pingCmd = "ping -n 1 -w 100 " + this.ipAddress;<br /></runnable></p><p><runnable> try {<br /></runnable></p><p><runnable> Runtime r = Runtime.getRuntime();<br /> Process p = r.exec(pingCmd);<br /> BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));<br /> String inputLine;<br /> System.out.println("Pinging " + ipAddress);<br /></runnable></p><p><runnable> while ((inputLine = in.readLine()) != null) {<br /></runnable></p><p><runnable> if(inputLine.contains("Reply from".subSequence(0,10))){<br /></runnable></p><p><runnable> System.out.println("Got response from " + ipAddress);<br /> AvailableIps.ipAddresses += this.ipAddress;<br /> break;<br /></runnable></p><p><runnable> }<br /></runnable></p><p><runnable> else if(inputLine.contains("Request timed out.".subSequence(0,18))){ <br /></runnable></p><p><runnable> System.out.println("No response from " + ipAddress);<br /> NotAvailableIps.ipAddresses += this.ipAddress;<br /> break;<br /></runnable></p><p><runnable> }<br /></runnable></p><p><runnable> }</runnable></p><p><runnable> in.close();</runnable></p><p><runnable> }<br /> catch (IOException e) {<br /></runnable></p><p><runnable> System.out.println(e);</runnable></p><p><runnable> }</runnable></p><p><runnable> }</runnable></p><p><runnable>}</runnable></p><p><runnable> class AvailableIps{ public static String ipAddresses = ""; }<br /></runnable></p><p><runnable>class NotAvailableIps{ public static String ipAddresses = ""; }</runnable></p><p>So Thread pooling is just understanding a class away now. :-)<br /></p>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com353tag:blogger.com,1999:blog-7191348256178360026.post-2423161255652397352007-08-03T01:35:00.000-07:002007-08-03T01:54:20.307-07:00Fair of skillsEnough of BarCamps, Enough of Open source camps, Enough of Mobile Mondays, And Enough of BlogCamps. Now its a time for a real technical event, where people will only be talking about pure technical "HowTos" and technical skills.<br /><br /><div style="text-align: center;"><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDJktczos8NZzgQgWH_UKEhUwty9Bnf1O4IjVch69qqBGxGpJUKkMPYSyWTUXKbPTgWRw-f33_ja5jNYertgHtxVByUtyFDzRcDkXwYk2QRA4IMfBrzC6tJqXgjgmiW8Fons_O314WWc4N/s1600-h/skillscamp-medium.png"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDJktczos8NZzgQgWH_UKEhUwty9Bnf1O4IjVch69qqBGxGpJUKkMPYSyWTUXKbPTgWRw-f33_ja5jNYertgHtxVByUtyFDzRcDkXwYk2QRA4IMfBrzC6tJqXgjgmiW8Fons_O314WWc4N/s320/skillscamp-medium.png" alt="" id="BLOGGER_PHOTO_ID_5094393654279480242" border="0" /></a><br /></div><br />This will be the first event of its kind in India and and and Its going to be PUNE to witness it.<br /><br />Registrations are already started. Please visit <a href="http://barcamp.org/SkillsCampPune">wiki</a> to register yourself.<br /><br />Event is going to be on 18th of August in Symbiosis distance learning campus, Pune.<br /><br />Idea of Skillscamp was coined by <a href="http://wheresfreeman.blogspot.com/">Freeman</a> long time back. And He had a good presentation on the idea at <a href="http://barcamp.org/BarCampPune3">BarCampPune3.</a><br /><br />I with few of my other friends got interested in it and talked to Freeman to have such an event which will really help industry and will improve skills of the industry.<br /><br />So be there and grow your skills.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com0tag:blogger.com,1999:blog-7191348256178360026.post-44349443220064411492007-08-03T01:29:00.000-07:002007-08-03T01:35:03.089-07:00Question to Linux lovers"NO OFFENSES MEANT"<br /><br />I have seen many people commenting on Microsoft strategy. They say, "MS copy things", like I heard people saying that MS has copied look and feel of MAC OS in MS Vista. I agree with all of them. But but but I have one question for all of them.<br /><br />Every new Linux distributions i see, They try to make things more and more similar to MS OS to attract people to switch to Linux. <span style="font-weight: bold;">"Isn't it copying MS OS?"</span>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com2tag:blogger.com,1999:blog-7191348256178360026.post-79005846202921229502007-06-16T22:38:00.000-07:002007-06-16T22:48:37.404-07:00pune will witness one more barcampIts a pleasure for me to announce that we (so called organizers) of BarCamp Pune are ready to rock with BarCampPune-III.<br /> <br /> <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcBsdddGhD5ESz6MVtMUv_rKxY9k7wpmZb1_Oz8duwQ5AA15kXOLSNDTi5ydEIq823z3GurHBvWTuMECVf3tdS_ORDK_9mxwR2MFe4JHeLvDT5RKQbNBA7zCBySJvY5yI9XuWeg_DPNygH/s1600-h/534673667_7ca348b9fe.jpg"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgcBsdddGhD5ESz6MVtMUv_rKxY9k7wpmZb1_Oz8duwQ5AA15kXOLSNDTi5ydEIq823z3GurHBvWTuMECVf3tdS_ORDK_9mxwR2MFe4JHeLvDT5RKQbNBA7zCBySJvY5yI9XuWeg_DPNygH/s320/534673667_7ca348b9fe.jpg" alt="" id="BLOGGER_PHOTO_ID_5076904951712875474" border="0" /></a><br /><br />Pune has witnessed two barcamp earlier with no marketting for sponsors and only technical talks by so called geeks.<br /><br /><a href="http://barcamp.org/BarCampPune3">Wiki</a> is already up where you can register and get other details.<br /><br />Hope to see you all there.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com0tag:blogger.com,1999:blog-7191348256178360026.post-56898992830714875672007-06-16T21:44:00.000-07:002007-06-16T22:37:56.701-07:00blogcamppune, Event for BloggersLast Saturday, 16th June 2007, Pune was rocking with Bloggers from all over India at BlogCampPune (Thanks to Traun Chandel).<br /><br />Event started with an introduction session which i had never seen in any unconference before; But it was cool to get introduced with a guy who takes photograph of his neighbours and blogs them on his photo blog, meeting a big fan of Salman Khan and RAKHI SAWANT.<br /><br />Then started so called technical talks (which people expect in every barcamp) where sponsors had a great time marketing their products and media people covering them. Then lunch (very good delicious lunch with ice cream:-)) was served. I had a great time after lunch where there were two sessions of group discussions. One was "Traditional media v/s. New media" and the other was on "Usage of blogs in learning". Both the discussion were very healthy and people put across their ideas, showed disagree on few of others ideas. All and all it was a great time at group discussions.<br /><br />At the end of the day there was a kick end session where people expressed their views on how the whole event went. What went wrong, what was really cool and all. People also said what they expect from next BlogCamp. And ya there was also an announcement of next barcamp pune which is on 9th of July.<br /><br />To sum up; It was a great day for me where i met so many new people. Got to know lot more things.<br /><br />Hip hip hurray for BarCampPune. :)Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com2tag:blogger.com,1999:blog-7191348256178360026.post-26457724162728738752007-06-07T00:58:00.000-07:002007-06-07T01:33:07.085-07:00IT industry moving towards standard pay packages<p class="MsoNormal">I was looking for a change these days. I applied in many companies and got offers from few of them.<br /></p><p class="MsoNormal">In this process, I found that, IT industry is now moving towards a standard pay packages; depending on your experience and your education, Company decides on a range from x to y. Anyone who is excellent will get package y and average will get package x. Earlier people had observed at least 35 to 40% of rise in their pay packages when they change the company, irrespective of what they were drawing, which is changing now. </p> <p class="MsoNormal"><o:p></o:p>In my view this will make the industry stable and attrition which is headache for any IT firm will be under control. Some people might complaint to it to claim their excellence but overall it will benefit industry in coming times.</p>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com1tag:blogger.com,1999:blog-7191348256178360026.post-26473864396591363402007-05-11T23:06:00.000-07:002007-06-06T00:37:46.026-07:00Method Overloading with new features of Java 1.5I was playing with <span class="blsp-spelling-error" id="SPELLING_ERROR_0">Autoboxing</span> and <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Ver</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_2">args</span> features of Java 1.5 and found interesting results with method overloading.<br /><br />If you have a class which has a method void hello(Integer x) and you call hello(5) then <span class="blsp-spelling-error" id="SPELLING_ERROR_3">Autoboxing</span> will come into play may and method hello will be called.<br /><br />Another case is, If you have a method void hello(long x) and you call<br />hello(5) then primitive integer 5 will be widened to long and method hello will be called.<br /><br />Now suppose you have hello method overloaded in your class. Lets look at this example in detail.<br /><br />public class <span class="blsp-spelling-error" id="SPELLING_ERROR_4">methodOverloading</span>{<br /> public static void hello(Integer x){System.out.println("Integer");}<br /> public static void hello(long x){System.out.println("long");}<br /> public static void main(String[] <span class="blsp-spelling-error" id="SPELLING_ERROR_5">args</span>){<br /> int i = 5;<br /> hello(i);<br /> }<br />}<br /><br />Guess what would be output when we execute this java program. One can imagine of two answers. If you think <strong><span class="blsp-spelling-error" id="SPELLING_ERROR_6">Autoboxing</span></strong> will be done then "Integer" would be printed. But if you think <strong>widening</strong> of integer will take place then "long" would be printed. The only reason is, Sun did not want already existing programs to get different results, when they switch to Java 1.5. With earlier Java versions, widening would have taken place and long would have been printed, so is happening with Java 1.5 as well.<br /><br />The question is, given that both methods exist, which one will be used? In other words, which one compiler think more desirable, <span class="blsp-spelling-error" id="SPELLING_ERROR_7">Autoboxing</span> or widening? The answer is that the compiler will choose <span style="font-weight: bold;">widening over boxing</span>, so the output would be "long".<br /><br />Compiler can choose to perform following three operations<br /><ul><li>Widening</li><li><span class="blsp-spelling-error" id="SPELLING_ERROR_8">Autoboxing</span></li><li>Var-<span class="blsp-spelling-error" id="SPELLING_ERROR_9">args</span></li></ul><p>At any point in time there are two possible options like in above example then compiler would choose; "Widening over <span class="blsp-spelling-error" id="SPELLING_ERROR_10">Autoboxing</span>", "Widening over Var-<span class="blsp-spelling-error" id="SPELLING_ERROR_11">args</span>", "<span class="blsp-spelling-error" id="SPELLING_ERROR_12">Autoboxing</span> over Var-<span class="blsp-spelling-error" id="SPELLING_ERROR_13">args</span>". </p><p>Now the question is, what if there is a combination of these operations required? To get an answer of this question one needs to understand how widening works with objects. Widening in objects only in IS-A relation. If class Horse extends Animal then Horse can be widened to Animal for that reason any class can be widened to Object. Can Integer be widened to Long? Answer is NO because there is no IS-A relation there.</p><p>When there is a combination of operations required compiler will perform <span class="blsp-spelling-error" id="SPELLING_ERROR_14">BoxingAndWidening</span> but it will not perform <span class="blsp-spelling-error" id="SPELLING_ERROR_15">WideningAndBoxing</span>. It is just too much work for the compiler.</p>class <span class="blsp-spelling-error" id="SPELLING_ERROR_16">WidenAndBox</span>{<br />static void go(Long x){<br />System.out.println("This is from long");<br />}<br />public static void main(String[] <span class="blsp-spelling-error" id="SPELLING_ERROR_17">args</span>){<br />byte b = 5;<br />go(b);<br />}<br />}<br /><br />Here Compiler needs to Widen byte to long first and then It can be boxed to Long which is not allowed (Searching for reason, Any references are welcome).<br /><br />class <span class="blsp-spelling-error" id="SPELLING_ERROR_18">BoxAndWiden</span>{<br />static void go(Object x){<br />System.out.println("This is from object");<br />}<br />public static void main(String[] <span class="blsp-spelling-error" id="SPELLING_ERROR_19">args</span>){<br />byte = 5;<br />go(b);<br />}<br />}<br /><br />Here compiler needs to be boxed into Byte first and then can be widen to Object because it follows IS-A relation.<br /><br />This is it from my side. Feel free to share your ideas on this.<p> </p>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com34tag:blogger.com,1999:blog-7191348256178360026.post-73997658161889454012007-04-14T02:21:00.000-07:002007-05-16T06:26:46.834-07:00My visit to Choukhi DhaniWe (office friends) were planning to go to choukhi dhani (Marvadi village rest.) since a long time. But yesterday (13th April 2007) was the day we actually went there. My friend Kanishka asked me to go to Choukhi dhani and i agreed and then we asked to few other friends and 9 of us were ready to come and we had 2 cars which were required as Choukhi dhani is about 30+ KMs from office.<br /><br />We were to leave by 6.00. But one of my friends Yatin was stuck in a meeting and we managed to leave at 6.45 and reached there at 7.30. We did not know the exact way to the place but were going looking at the boards of choukhy dhani. Finally we were there, There was a board to choukhy dhani but we were in speed and had to have short break. And that resulted in an accident. Luckily we were not the victims but a truck behind us had a short break and a qualis behind that truck had an accident to that truck.<br /><br />There was an entry fees of 299 per head which we found more but we had no alternative but to pay those money as we had come to a long distance of 30+ KMs. We were welcomed by sweet Ram Ram of people at the gate. As we went in, There was orange juice being served. And next was tea and Vada as starter.<br /><br />Then we had a camel ride. There was also jyotish speaking future of people. We all went there with curiosity but found that guy was just faking things. He said one of my friends that he will marry at 26; But he is already 28 and single. :)<br /><br />Then there was Bhakri of Bajri served with Chatni of lasun and makhan and gud. We all had a couple of bhakri each. Then we moved towards Kath putli. It was a nice entertainment. Then the one i liked most; We all had dance on Rajasthani songs and it was really a good fun.<br /><br />And there was also magician who showed us so many magics and he also offered to teach those tricks in 300 bucks per trick. But we denied. Then few of us went to eat gola and rest were resting at a place. We had gola and went to those people and they were playing snacks and ladder and Ashish won even though he was about 20-40 steps behind Abhishek who wanted just one step to complete game but lost it finally.<br /><br />Then we all rested for about 15-20 minutes and it was 10-15 out dinner time. We all went to a dinner hall and had a sit, waiters started serving and Abhishek (Who is rajasthani) was looking so happy to have Rajasthani food after a long time and was teaching names of items to all of us and was shouting that i know how to cook this. We all had a nice dinner and lastly we asked waiters to serve sweet jalebi to all of us.<br /><br />Finally with Ram Ram of waiters our visit to Choukhy Dhani ended. And we came back home at about 12.30.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com1tag:blogger.com,1999:blog-7191348256178360026.post-91770302352563036822007-04-02T01:14:00.000-07:002007-05-16T06:33:33.381-07:00Dummny certificate authentication implementationCertificates is one of the way of Authorization/Authentication while implementing <span class="blsp-spelling-error" id="SPELLING_ERROR_0">SSL</span> based authentication. When browser accesses any web based application which has certificates implemented to authenticate user, browser is asked to validate certificate if it has, or accept certificate for a session or temporary. Browser knows this behavior and knows how to respond or deal with it.<br /><br />When we access web based system through program program looks at a fixed set of locations (depends on language that you are using) for certificates; and if it does not find it throws an exception. This all happens while creating a socket connection with web application.<br /><br />In case of Java, It uses javax.net.ssl.SSLSocketFactory to create socket connection. That class asks to javax.net.ssl.X509TrustManager instance for certificate validation.<br />X509<span class="blsp-spelling-error" id="SPELLING_ERROR_1">TrustManager</span> searches for certificate into JAVA_HOME/<span class="blsp-spelling-error" id="SPELLING_ERROR_2">jre</span>/lib/security/certs file which is collection of certificates. If it does not find it then it throws an exception.<br /><br />One option to deal with this is, Find out which all web applications will your program use and using <span class="blsp-spelling-error" id="SPELLING_ERROR_3">keytool</span> add certificates for those web applications into JAVA_HOME/<span class="blsp-spelling-error" id="SPELLING_ERROR_4">jre</span>/lib/security/certs file. But that is hard coding in some sense. If you want your application to use some other web application which also has certificate authentication, then administrator will have to do that for you. You can also write a java code for that but which again is lots of coding that programmer has to do.<br /><br />There is one more approach which will make programmers work easy. It is <span class="blsp-spelling-error" id="SPELLING_ERROR_5">DummyCertificate</span> approach. In this case we will create dummy certificate <span class="blsp-spelling-corrected" id="SPELLING_ERROR_6">validate</span> which will validate all certificates. To implement it in Java programmer will have to write two <span class="blsp-spelling-error" id="SPELLING_ERROR_7">classesDummySSLSocketFactory</span> and <span class="blsp-spelling-error" id="SPELLING_ERROR_8">DummyTrustManager</span>.<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_9">DummySSLSocketFactory</span> will be used for creating sockets and <span class="blsp-spelling-error" id="SPELLING_ERROR_10">DummyTrustManager</span><br />will be used for certificate validation which will return true for any<br />certificate it is asked to validate.<br /><br />We will need to ask java to use <span class="blsp-spelling-error" id="SPELLING_ERROR_11">DummySSLSocketFactory</span> to create sockets which will ask <span class="blsp-spelling-error" id="SPELLING_ERROR_12">DummyTrustManager</span> to validate certificate. There are two ways one can do so. One is to edit JAVA_HOME\jre\lib\security\java.security.Security file. Find ssl.ServerSocketFactory.provider in that file and specify there fully classified class name of <span class="blsp-spelling-error" id="SPELLING_ERROR_13">DummySSLSocketFactory</span>. One can also do this <span class="blsp-spelling-error" id="SPELLING_ERROR_14">programmatically</span>. java.security.Security class has a static method <span class="blsp-spelling-error" id="SPELLING_ERROR_15">setProperty</span>. using that you can ask java to use <span class="blsp-spelling-error" id="SPELLING_ERROR_16">DummySSLSocketFactory</span> to create sockets.<br />Ex: Security.<span class="blsp-spelling-error" id="SPELLING_ERROR_17">setProperty</span>("ssl.SocketFactory.provider", com.persistent.DummySSLSocketFactory);<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_18">DummySSLSocketFactory</span> implementation asks <span class="blsp-spelling-error" id="SPELLING_ERROR_19">DummyTrustManager</span> to validate certificates which will validate all certificates and will return true for all certificates.<br /><br />So this is how one can deal with certificate validation issue through programs.<br /><br />Code for <span class="blsp-spelling-error" id="SPELLING_ERROR_20">DummySSLSocketFactory</span> and <span class="blsp-spelling-error" id="SPELLING_ERROR_21">DummyTrustManager</span>. These code are tested against <span class="blsp-spelling-error" id="SPELLING_ERROR_22">JavaMail</span> 1.4 and <span class="blsp-spelling-error" id="SPELLING_ERROR_23">JDK</span> 1.5.<br /><br /><span style="color: rgb(51, 255, 255);"></span><blockquote style="color: rgb(51, 51, 255);"><span style="color: rgb(51, 255, 255);"></span></blockquote><blockquote><span style="color: rgb(51, 51, 255);"><span>import java.io.IOException;<br />import java.net.InetAddress;<br />import java.net.Socket;<br />import java.security.Security;<br />import javax.net.SocketFactory;<br />import javax.net.ssl.*;<br /><br />public class <span class="blsp-spelling-error" id="SPELLING_ERROR_24">DummySSLSocketFactory</span> extends <span class="blsp-spelling-error" id="SPELLING_ERROR_25">SSLSocketFactory</span> {<br />private <span class="blsp-spelling-error" id="SPELLING_ERROR_26">SSLSocketFactory</span> factory;<br /><br />public <span class="blsp-spelling-error" id="SPELLING_ERROR_27">DummySSLSocketFactory</span>() {<br />try {<br /> <span class="blsp-spelling-error" id="SPELLING_ERROR_28">SSLContext</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_29">sslcontext</span> = <span class="blsp-spelling-error" id="SPELLING_ERROR_30">SSLContext</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_31">getInstance</span>("<span class="blsp-spelling-error" id="SPELLING_ERROR_32">TLS</span>");<br /> <span class="blsp-spelling-error" id="SPELLING_ERROR_33">sslcontext</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_34">init</span>(null,<br /> new <span class="blsp-spelling-error" id="SPELLING_ERROR_35">TrustManager</span>[] { new <span class="blsp-spelling-error" id="SPELLING_ERROR_36">DummyTrustManager</span>()},<br /> null);<br /> factory = (<span class="blsp-spelling-error" id="SPELLING_ERROR_37">SSLSocketFactory</span>)<span class="blsp-spelling-error" id="SPELLING_ERROR_38">sslcontext</span>.<span class="blsp-spelling-error" id="SPELLING_ERROR_39">getSocketFactory</span>();<br />} catch(Exception ex) {<br /> // ignore<br />}<br />}<br /><br />public static <span class="blsp-spelling-error" id="SPELLING_ERROR_40">SocketFactory</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_41">getDefault</span>() {<br />return new <span class="blsp-spelling-error" id="SPELLING_ERROR_42">DummySSLSocketFactory</span>();<br />}<br /><br />public Socket <span class="blsp-spelling-error" id="SPELLING_ERROR_43">createSocket</span>(Socket socket, String s, int i, <span class="blsp-spelling-error" id="SPELLING_ERROR_44">boolean</span> flag)<br /> throws <span class="blsp-spelling-error" id="SPELLING_ERROR_45">IOException</span> {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_46">createSocket</span>(socket, s, i, flag);<br />}<br /><br />public Socket <span class="blsp-spelling-error" id="SPELLING_ERROR_47">createSocket</span>(<span class="blsp-spelling-error" id="SPELLING_ERROR_48">InetAddress</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_49">inaddr</span>, int i,<br /> <span class="blsp-spelling-error" id="SPELLING_ERROR_50">InetAddress</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_51">inaddr</span>1, int j) throws <span class="blsp-spelling-error" id="SPELLING_ERROR_52">IOException</span> {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_53">createSocket</span>(<span class="blsp-spelling-error" id="SPELLING_ERROR_54">inaddr</span>, i, <span class="blsp-spelling-error" id="SPELLING_ERROR_55">inaddr</span>1, j);<br />}<br /><br />public Socket <span class="blsp-spelling-error" id="SPELLING_ERROR_56">createSocket</span>(<span class="blsp-spelling-error" id="SPELLING_ERROR_57">InetAddress</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_58">inaddr</span>, int i)<br /> throws <span class="blsp-spelling-error" id="SPELLING_ERROR_59">IOException</span> {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_60">createSocket</span>(<span class="blsp-spelling-error" id="SPELLING_ERROR_61">inaddr</span>, i);<br />}<br /><br />public Socket <span class="blsp-spelling-error" id="SPELLING_ERROR_62">createSocket</span>(String s, int i, <span class="blsp-spelling-error" id="SPELLING_ERROR_63">InetAddress</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_64">inaddr</span>, int j)<br /> throws <span class="blsp-spelling-error" id="SPELLING_ERROR_65">IOException</span> {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_66">createSocket</span>(s, i, <span class="blsp-spelling-error" id="SPELLING_ERROR_67">inaddr</span>, j);<br />}<br /><br />public Socket <span class="blsp-spelling-error" id="SPELLING_ERROR_68">createSocket</span>(String s, int i) throws <span class="blsp-spelling-error" id="SPELLING_ERROR_69">IOException</span> {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_70">createSocket</span>(s, i);<br />}<br /><br />public String[] <span class="blsp-spelling-error" id="SPELLING_ERROR_71">getDefaultCipherSuites</span>() {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_72">getDefaultCipherSuites</span>();<br />}<br />public Socket <span class="blsp-spelling-error" id="SPELLING_ERROR_73">createSocket</span>() throws <span class="blsp-spelling-error" id="SPELLING_ERROR_74">IOException</span> {<br /> System.out.println( "<span class="blsp-spelling-error" id="SPELLING_ERROR_75">createSocket</span> 0");<br /> return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_76">createSocket</span>();<br />}<br />public String[] <span class="blsp-spelling-error" id="SPELLING_ERROR_77">getSupportedCipherSuites</span>() {<br />return factory.<span class="blsp-spelling-error" id="SPELLING_ERROR_78">getSupportedCipherSuites</span>();<br />}<br />}<br /><br />import javax.net.ssl.X509TrustManager;<br />import java.security.cert.X509Certificate;<br /><br />public class <span class="blsp-spelling-error" id="SPELLING_ERROR_79">DummyTrustManager</span> implements X509<span class="blsp-spelling-error" id="SPELLING_ERROR_80">TrustManager</span> {<br /><br />public void <span class="blsp-spelling-error" id="SPELLING_ERROR_81">checkClientTrusted</span>(X509Certificate[] cert, String <span class="blsp-spelling-error" id="SPELLING_ERROR_82">authType</span>) {<br />}<br /><br />public void <span class="blsp-spelling-error" id="SPELLING_ERROR_83">checkServerTrusted</span>(X509Certificate[] cert, String <span class="blsp-spelling-error" id="SPELLING_ERROR_84">authType</span>) {<br />}<br /><br />public X509Certificate[] <span class="blsp-spelling-error" id="SPELLING_ERROR_85">getAcceptedIssuers</span>() {<br /> return new X509Certificate[0];<br />}<br />}</span></span><span></span></blockquote><blockquote></blockquote>If you find any issues please feel free to ping on thakkar.kiran@gmail.comKiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com74tag:blogger.com,1999:blog-7191348256178360026.post-13881979971882782462007-03-30T23:05:00.000-07:002007-05-16T06:34:06.663-07:00Why Spring framework???Spring is a lightweight open source framework written by Rod Johnson in 2000 while he was working as an independent consultant for customers in the financial industry in London. It has been widely accepted in industry.<br /><br />There are many java frameworks available in market; widely accepted ones are struts as MVC framework, Hibernate as ORM framework, EJB and frameworks like velocity and tiles at a view layer. Each of these frameworks serves specific purpose and also requires a container. And integrating them in one application is a pain for programmer. Spring unlike those frameworks is a container as well as a framework and supports integration with all other frameworks by means of some configuration. It is framework because it has its own implementation of MVC and container because it can manage your implementation of ORM and MVC as well as it also integrates well with EJBs and in that case you don't require EJB container. Spring becomes container of EJBs there.<br /><br />On top of this spring gives some unique features like IoC and AOP.<br /><br />Inversion of Control:<br /><br />Spring is an IoC container," Jeff explained. "That stands for Inversion of Control, which enables you to inject dependencies by declaring them in an XML file."<br /><br />Just to give you an example, I have an application which accepts payment from end users, I have to calculate tax while calculating payment. Here Payment and TaxCalculator are two beans. Every time i instantiate Payment, i need TaxCalculator which is dependency. One option is to whenever i create Payment, i can create TaxCalculator and can give a reference of it to Payment. Instead if you use spring, you just need to define in configuration that Payment has a dependency on TaxCalculator. So whenever Payment is instantiated, it will get TaxCalculator instance from session. I won't have to code anything for that.<br />Note: This can only be used for dependency of service classes.<br /><br />Another example of IoC is, You have a TaxCalculator which calculates tax, but its implementation will change country by country. So while deploying application, you specify which country you are deploying it for, And it will automatically pick up TaxCalculator of that country by simple means of configuration, which reduces programmers overhead of writing factory implementation or any other implementation to have this capability.<br /><br />Exception Handling<br /><br />Spring wraps all checked exceptions into run time exceptions. So you don't have to unnecessarily catch them when you are sure they won't occur. In fact new versions of EJB, struts and Hibernate also does this.<br /><br />Aspect Oriented Programming<br /><br />Easy integration of AOP is unique feature that spring cones with. AOP enables you to do lots of interesting things.<br /><br /><ol><li>You can add member variables or member methods to any class without actually modifying definition of that class.</li><li>You can introduce Aspects into your application. Aspect is a behavior that applies to many of your classes and implementation of that behavior is same for all those classes. You just have to create Aspect and introduce it to set of classes to which that behavior applies. Ex: Logging behavior</li><li>You can handle your exceptions in a better way. You can create Aspects for all exceptions and handle them at one place. Then by configuration apply those Aspects to all classes. Doing this you don't have to handle exceptions separately in all classes which saves lots of programming effort.<br /></li></ol><br />Access Control<br /><br />Spring has a nice way of managing access control. Once you have Authentication and Authorization modules in place, AccessDecisionManager provided by spring lets you define access control per bean through configuration. So if you want to change access control for any information in future, you just have to change configuration and you are done.<br /><br />Scheduled job or crone job<br /><br />Spring has a mechanism by which you can create crone job or scheduled job. It uses Java Time APIs. It also supports quartz to create scheduled job.<br /><br />Managing Configuration:<br /><br />When you use hibernate and struts, and do not use any features of spring as such, Spring becomes a container for you which integrates both of them via configuration. Spring makes everything as just configuration in which case your configuration file can become too large to manage. To address this, Spring allows you to have array of configuration files, list them all in one file and supply that file as a configuration file. Spring will do rest for you.<br /><br />Spring also lets you expose any service you have written as a web service or Remote Method by means of configuration.<br /><br />Spring divides whole web application into different tier. And handles each tier separately. So that you can integrate any component at any layer and can also replace a component at any layer without affecting other layers or other components. That is the only reason of ease of integration of struts or hibernate or any other framework with spring.<img src="file:///C:/DOCUME%7E1/KIRAN_%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg" alt="" /><br /><br />So if you know struts, hibernate, EJB, RMI technologies and want to use one of them or all of them or some of them in your application then integration of those technologies is just a matter of configuration using spring. otherwise you will run into writing whole lot of code which is pain and difficult too. Also there is huge community built around spring that helps a lot in figuring out or solving problems that you may face while development.<br /><br />For detailed information on spring framework visit <a href="http://springframework.org/">springframework.org.</a>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.comtag:blogger.com,1999:blog-7191348256178360026.post-89322443429230904002007-03-14T06:10:00.000-07:002007-05-16T06:34:39.502-07:00Article on AJAX<span style="font-weight: bold;">Introduction to AJAX</span><br /><br />AJAX (Asynchronous Java-script Ans XML) is a widely accepted technology for web based applications. If you have many forms in your web page and you want user to send data to server — once they have filled out one of the forms, They normally have to submit the form and then wait as the entire page is refreshed including all other forms. Similarly, if you want to refresh a portion of your web page, you have no choice but to reload the whole page.<br /><br />This is inefficient, time-consuming, and particularly frustrating if there’s only a small amount of data needs to be sent back and forth. In this Article, you’ll be introduced to AJAX, a technology that allows you to send these requests through small !JavaScript calls, and a !JavaScript then refreshes only an area of a page rather than whole page.<br /><br />AJAX is not only about refreshing an area of web page, But it is also about user experience. It offers almost same user experience, in web applications, as desktop based applications offer.<br /><br />Looking at the history of AJAX, The term AJAX was first coined by <a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">Jesse James Garrett</a> in a blog entry on February 18, 2005. Microsoft is the first to introduce a way of making calls to server using JavaScript in IE 5.5. Microsoft's Exchange 2000's web based Outlook is the first well known application to use AJAX. But strength of technology was overlooked that time. Extensive use of AJAX by Google in GMail, Orkut and GoogleMap brought AJAX into attention. It then became so famous that all others also started using AJAX into their web applications. Read <a href="http://www.aaronsw.com/weblog/ajaxhistory">A brief history of AJAX</a> for further information.<br /><br /><span style="font-weight: bold;">Working of AJAX<br /><br /></span>Ajax is not a technology, but it is a combinations of technology working together. Those technologies include,<br /><br />HTML and CSS for presenting.<br />JavaScript to make a call to server, Getting a response and modifying HTML DOM.<br />The XMLHttpRequest class to send or receive data back and forth to server.<br /><br />Traditional web application model works like this: Most user actions in the web page trigger an HTTP request back to the server. The server does some processing — and then returns an HTML page to the client. This approach seems nice, but it does not give a great user experience. While the server is doing its thing, Why should user be waiting?<br /><br />AJAX eliminates the start-stop-start-stop nature of interaction of web application. It introduces one layer between client and server called AJAX engine which makes calls to server asynchronous.<br /><br />Comparison between classic web application approach and Ajax web application approach:<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.adaptivepath.com/images/publications/essays/ajax-fig1.png"><img style="cursor: pointer; width: 320px;" src="http://www.adaptivepath.com/images/publications/essays/ajax-fig1.png" alt="" border="0" /></a><br /><br />Image taken from blog post of Jesse James Garrett<br /><br />AJAX engine is responsible for both rendering the interface the user sees and communicating with the server on the user’s behalf. The Ajax engine allows the user’s interaction with the application to happen asynchronously — independent of communication with the server. So that user does not have to wait for the response of one action and can keep working on page continuously.<br /><br />Difference between Synchronous and Asynchronous approach:<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.adaptivepath.com/images/publications/essays/ajax-fig2.png"><img style="cursor: pointer; width: 320px;" src="http://www.adaptivepath.com/images/publications/essays/ajax-fig2.png" alt="" border="0" /></a><br /><br />Image taken from blog post of Jesse James Garrett<br /><br /><span style="font-weight: bold;">pros and cons of AJAX</span><br /><br />Pros of using AJAX<br /><ul><li>User Experience</li><li>Bandwidth usage</li><li>Separation of data, format, style and function</li></ul>Cons of using AJAX<br /><ul><li>Browser support</li><ul><li>Browser integration</li><li>Back button problem</li></ul><li>Bookmark problem</li><li>Search engine optimization</li><li>JavaScript reliability</li></ul>I have taken this from wikipedia. I will be writing on these pros and cons in detail with examples. For further information on pros and cons of AJAX read <a href="http://www.interaktonline.com/Support/Articles/Details/AJAX:+Asynchronously+Moving+Forward-Why+use+AJAX%3F.html?id_art=36&id_asc=309">Why use AJAX</a><br /><br /><span style="font-weight: bold;">What is AJAX framework?</span><br /><br />AJAX framework hides, the complexity involved with AJAX from programmers and makes their life easy. Any AJAX framework consists of two parts. One is client side part which involves sending request to server, getting the response, and processing response. And the other is server side part which involves processing the requests, searching for the data, and sending response back to client.<br /><br /><span style="font-weight: bold;">Different AJAX frameworks and comparison between them</span><br /><br />There are many AJAX frameworks available. <a href="http://wiki.osafoundation.org/bin/view/Projects/AjaxLibraries">This</a> gives you good overall comparison between those available frameworks.<br /><br /><span style="font-weight: bold;">Other References</span><br /><br /><ol><li><a href="http://www-128.ibm.com/developerworks/web/library/wa-ajaxintro1.html">Mastering AJAX</a></li><li><a href="http://web2.wsj2.com/seven_things_every_software_project_needs_to_know_about_ajax.htm">Seven Things to know for AJAX</a></li><li><a href="http://www.xul.fr/en-xml-ajax.html">AJAX tutorial</a></li><li><a href="http://demo.wikiring.com/twiki/bin/view/TWiki/WebHome">AJAX based TWiki</a></li><li><a href="http://developer.mozilla.org/en/docs/AJAX:Getting_Started">Learn step by step AJAX</a></li></ol>This is it for AJAX as of now. Be tuned to get more on AJAX. Feel free to write your views and feedback. Let me know if i can even help you solve any problems in AJAX.<br /><br />Signing Off<br />Kiran ThakkarKiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.comtag:blogger.com,1999:blog-7191348256178360026.post-62193979829952629932007-03-10T22:53:00.000-08:002007-05-16T06:35:52.738-07:00BarCamp MumbaiHi all<br /><br />After a long time i am back on my blog.<br />Actually was a bit more busy with work.<br />So after a month's break, BarCamp is back in india and this time its Mumbai people who are organizing it.<br /><br />To go with the spirit of BarCamp please do participate in some way. Don't be just attendees.<br />This time theme of BarCamp is open source technology and so many people are going to speak in mysql.<br /><br />To register, Add your name on <a href="http://barcamp.org/OssBarCampMumbai">http://barcamp.org/OssBarCampMumbai</a> wiki.<br /><br />See you all at BarCamp Mumbai then.<br />Till then Good bye and have a nice day!Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com0tag:blogger.com,1999:blog-7191348256178360026.post-3250623612658189692007-01-25T04:15:00.000-08:002007-05-16T06:25:24.055-07:00My trip to kerala<p class="MsoNormal">I don't have snaps yet. Once i will have them, I will upload here, Then this read will be exciting and live for you.<br /></p><p class="MsoNormal">Why do good things come to an end is what I was thinking on 21<sup>st</sup> (Sunday) night. I was in the train on the way to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_0">pune</span> (My work place). It was great week on a trip to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_1">kerala</span> (God’s own state) last week with my college friends <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_2">Janak</span> (working in <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_3">LoadStone</span>, <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_4">Ahmedabad</span>), <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_5">Vishal</span> (working in e-<span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_6">infochips</span>, <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_7">Ahmedabad</span>), Ricky (studying in symbiosis) and <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_8">Rohit</span> (studying in B.K. <st1:place st="on"><st1:placetype st="on">institute</st1:placetype> of <st1:placename st="on">Management</st1:placename></st1:place>).</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">It was way back in 2<sup><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_9">ND</span></sup> year of engineering, when we all went to <st1:city st="on">Bombay</st1:city> for <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_10">Tech fest</span> and enjoyed a lot and thought of making a trip to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_11">kerala</span> or <st1:place st="on">Kashmir</st1:place> for a week. But years after years we <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_12">did</span> not get time to go. One or the other guy had few other engagements. And finally in December 2005 we all waked up and ended up planning a trip from 12<sup><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_14">Th</span></sup> of Jan to 20<sup><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_15">Th</span></sup> of Jan. We knew that we would miss <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_16">Utrayan</span> but for us being together was a festival not the occasion or a place. </p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">I called few of my friends who had a trip to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_17">kerala</span> in 2<sup><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_18">ND</span></sup> week of December and contacted the same guy who offered them a package. We also booked hotels and a quails from the same guy.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">It was 12<sup><span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_19">Th</span></sup> of January. I was very excited. As I was to start off for the trip that day. Ricky and I were to get the train from <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_20">panvel</span>. We had a bus from <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_21">pune</span> to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_22">panvel</span> at 6.00 PM. I was to catch the bus from a place near to my house and Ricky was to catch bus from waked <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_23">chokdy</span>. It was 6.00 I was there with my luggage and was waiting for the bus to arrive. "Bus was late." It was 7.00 still bus had not arrived. I got few calls from <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_24">ricky</span> to ask where the bus is. We were getting late and time seemed moving fast. It was already 7.30 and but was still not there. Finally at 7.45 bus came and I got into the bus. It took around an hour to get out of the city and bus reached at waked <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_25">chokdy</span> at around 9.00.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">We were on the high way and saw few 2-wheelers over taking our bus and realized that bus was moving slowly. I went to the driver and asked why was the bus going slowly; He said there is a problem with the bus and it would be <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_26">at least</span> 11.30 to reach to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_27">panvel</span>. My friend had told me in the morning that train was 45 minutes late. So we still had some hope. Then I called my friend who was in the train and he said train reached <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_28">vasai</span> road 30 minutes earlier. Then my ass started burning and excitement started. I called two of my friends to see if there were any flights from <st1:city st="on">Bombay</st1:city> to <st1:state st="on"><st1:place st="on">Cochin</st1:place></st1:state> next day. It was 9.30 and we called a guy to send a taxi to drop us at <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_29">panvel</span> but he denied. Then we called a friend to go to a taxi stand and send a taxi for us. He talked to a guy having <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_30">tavera</span> for 1800 + toll. We agreed with that and asked him to overtake our Volvo and stand in front of it, we will identify that and will come out of Volvo. But he denied for that and said what if he <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-corrected" id="SPELLING_ERROR_31">did no</span>t find Volvo. It was 9.50 and we reached a patrol pump. We got out from the bus and asked <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_32">tavera</span> guy that we are waiting for him at patrol pump. <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_33">Tavers</span> guy then started and reached to us at 10.05. It was just 25 minutes to go and we had around 50+ <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_34">KMs</span> to go. <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_35">Tavera</span> was going with the speed of 140-150. And that time we really felt car makers should really make still high speed cars. It was 10.15 and we felt we won’t be able to reach on time. So I called my friend <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_36">rohit</span> and asked him to pull the chain so that train would stop for 10-15 minutes and by that time we would reach there. First they denied but then he collected his ass and finally pulled the chain. But train <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_37">didn</span>’t wait for more than 5 minutes. It was 10.35 and I got a call that train had reached station. We still had 5-6 more <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_38">KMs</span> to go to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_39">panvel</span> station. And we <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_40">didn</span>’t even know the way to <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_41">panvel</span> station. We asked few guys and it was 10.40 and I really had a feel that train will have left. Then it was 10.43 that I reached station. I was to give driver 1920 bucks but I gave him 2000 bucks and <span onclick="BLOG_clickHandler(this)" class="blsp-spelling-error" id="SPELLING_ERROR_42">didn</span>’t wait to get the change back and simply rushed towards the station. And there was my train on platform no.1. We got into that train and Hugged three of our friends who helped us by pulling chain and just had a sense of relief and train started at 10.45. </p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal">That was just the start of the trip. There was lot more to come.</p> <p class="MsoNormal"><o:p> </o:p></p> <p class="MsoNormal"> </p><p class="MsoNormal">We friends met after a long time and had a talk since 2.00 in the night. Then we had a sleep.</p> <p class="MsoNormal"><o:p> </o:p>13<sup>th</sup> of January:</p> <p class="MsoNormal"><o:p></o:p>We all wake up in the morning had a tea with some snacks that we had. It was too hot in the noon. Vishal and I went to AC coach to charge our mobiles. Well, It was just the reason to get into AC coach. We reached Cochin at 11.00 instead of 10.30, Half an hour late, may be because of us only but we didn’t have complaints for that. <span style="font-family:Wingdings;"><span style=""></span></span>There are so many Gujarati Dharam shalas at <st1:state st="on"><st1:place st="on">Cochin</st1:place></st1:state>. We were to go to one of them. But it was 15 KMs from the station. And auto guy was asking for 300 bucks for 2 autos to go there. One local guy helped us to find a cheap hotel near station and we preferred to stay there rather than going 15 KMs spending 300 bucks.</p>14<sup>th</sup> January: <p class="MsoNormal">It’s the day when we actually started our trip to kerala. Aljo (our quails driver) arrived on time 7.30 dot to pick up from the hotel. We started for Munnar. (Our first destination at kerala) We stopped at a water fall on the way. There was a difficult track to reach to water fall. Rohit and I started for that and others followed us. It was too cool place. We enjoyed there for more than an hour and started on our way to Munnar. We reached Munnar at 12.30 or so and checked into the hotel. Everyone was just amazed to see the hotel. We paid 40k (8k per head) for all the hotels and quails so deserved such a good hotel. All of us slept for some time and then we had lunch at 3.00 PM. Then we went to visit tea farms which Munnar is known for. Then we visited to a lake there and had a row boating. Except me no one really had an experience of it. Even I was also not very good at rowing. Still we went into the direction which boat guy denied us to go for. We changed our positions also while boating which was really dangerous. But adventure and excitement was the theme of the trip starting from train incident. We ended up boating for more time then what was given to us. Then there was a garden full of flowers. There was also a swing there. My friends Ricky and Vishal started showing there guts. Vishal was sitting on swing and ricky was standing on that and both started the swinging. In some time ricky fell down which really was a great scene for us to watch. <span style="font-family:Wingdings;"><span style="">J</span></span> Then we went to the hotel and had our dinner. Then my friends who are staying on rent in ahmedabad and don’t have TVs at home started TV. And that too started F TV. We were five in numbers and we had two rooms booked. Janak and Ricky (Sas-Bahu always fighting with each other)) stayed in one room. And we three others stayed in the other room. It was till very long we were watching TV and at last all of us slept.</p> <p class="MsoNormal"><o:p> </o:p>15<sup>th</sup> January:</p> <p class="MsoNormal"><o:p> </o:p>We decided to move at 9.00 on 15<sup>th</sup> and latest by 9.30. But no one of us woke up early and we started at 10.30. Before that we had a heavy break fast. In every hotel that we stayed at kerala, break fast was complementary from the hotel. And in almost all the hotels we had heavy break fast so that we don’t need to have lunch. To start with we went to a place which has beautiful scenery. We had so many snaps there. And then we moved to echo center. But we didn’t hear echo. It was just the name of the place. There we had chocolates. One of the chocolates was with rum and tested also very well. From there we moved to a place which is the highest point in kerala. One has to go there by bus. Rout to that place was so risky. Roads were such that only one bus can go at a time and there were so many turns in between.<span style=""> </span>At every turns roads were large enough to allow two busses to go. So on a normal road if two busses have to cross each other, one of the busses had to take reverse till it finds a turn so that they can cross each other. It was a bit cold there so we had tomato soup there. And then we came back to our hotel “Hill View”. We had a dinner at the hotel’s rest. Only even though it was costly as no one was in the mood to go to city. It was a candle light dinner for us and we had snaps of ours looking into each others eyes. In the night we all went for a long walk. We reached hotel at around 11 and then everybody slept. That was the end of our journey to Munnar. The best places of all.</p> <p class="MsoNormal"><o:p> </o:p>16<sup>th</sup> January:</p> <p class="MsoNormal"><o:p> </o:p>All of us wake up at 7.00 in the morning. And we left Munnar at 8.30 in the morning. We went to a tea factory first. But “BAD LUCK”. Factory was closed and was to start after 10 only. And we didn’t really have that much time to wait for. So we had few snaps there and left for Thekady. It’s the place known for <st1:place st="on"><st1:placename st="on">Periyar</st1:placename> <st1:placetype st="on">Lake</st1:placetype></st1:place>, Its dark forests, spice plantation, Elephant ride, and jungle safari. We reached there at 12.30. Hotel that we booked for was really nice one. We had a milk shake when we reached there. Then we all had sleep for some time. All of us wake up at 2.30 and we started at around 3.00 to enquire about places around thekady. We found bumboo rafting and jungle safari a bit costly; not only in terms of money but also in terms of time. It takes whole of your day starting at 8.00 in the morning to 6.00 in the evening. So we didn’t opt for that. We then booked our tickets for Dar tracking and Periyar lake visit in boat. Then we went to spices plantation at thekady. We got to know about so many different spices plantation, how they grow and all. Then we went for body massage which we were really excited for. It was a nice body massage but not as nice as we all were expecting. We had dinner after that and as we had massage all of us slept early. </p> <p class="MsoNormal"><o:p> </o:p>17<sup>th</sup> January:</p> <p class="MsoNormal"><o:p> </o:p>From Janak’s point of view it was a great start of the day. We all went for day trekking starting from 7.00. <span style="font-family:Wingdings;"><span style="">L</span></span> It was 3 hours of walk into jungle and we got to see only two dears nothing else. <span style="font-family:Wingdings;"><span style="">L</span></span> All of us were really so tired. Then we went to hotel and had our break fast. There was some problem in our booking in the hotel so we had to move to the other hotel and guess what??? It was a 4 star hotel. My God!!! It was first time I was even entering into 4 start hotel. It has swimming pool, Gym, Snooker, TT table and so many other stuffs. We all had some rest at the new hotel and then at 2.00 we had to go for a visit to <st1:place st="on"><st1:placename st="on">Periyar</st1:placename> <st1:placetype st="on">Lake</st1:placetype></st1:place> in a boat. It was two hours visit and we really got to see everything except lion that we were expecting to see in our trekking but from distance. <span style="font-family:Wingdings;"><span style="">L</span></span> Then we all went to hotel and played TT. It was 5.30 and we all went for swimming then. Then we went for dinner in a rest. Near to our hotel. And then came the best part after tiresome day, sleeping <span style="font-family:Wingdings;"><span style="">J</span></span></p> <p class="MsoNormal"><o:p> </o:p>18<sup>th</sup> January:</p> <p class="MsoNormal"><o:p> </o:p>It was the day we had longest of traveling and may be the worst day of our trip. Reason may be our high expectations. We were to go to Allepy that day which is known for back waters. It was 200+ KMs from thekady and we started at around 7.30 in the morning. We reached there at around 11.30. We had a house booked for us. We went into the house boat. Initially it was a great feeling. There was a world space radio which was our only source of entertainment in the boat. It is longest lake in the <st1:place st="on">Asia</st1:place> according to the boat guy. And we could see that. We even saw a board which said <st1:state st="on"><st1:place st="on">Cochin</st1:place></st1:state> is 65 KMs away and so lake was at least 65 KMs long. Then suddenly one of us gave an idea of having vodka to drink which can help us in shortening the day. And three of us (Kiran, Ricky and Rohit) agreed in it and we had vodka in the house boat. It was first time for me so I was a bit cautious while taking it. And that vodka made us sleeps early; don’t know about other two.</p> <p class="MsoNormal"><o:p> </o:p>19<sup>th</sup> January:</p> <p class="MsoNormal"><o:p> </o:p>It was the day of white gories. We started from allepy at 9.30 and reached Kovallam which is known for its beautiful beach. It is one of the best beaches in the world. And we found so many foreigners sleeping with small small clothes on their body. <span style="font-family:Wingdings;"><span style="">J</span></span> My friends Vishal and Rohit spent their whole time in taking photos only. While we others went into water and enjoyed a lot. We also visited a light house there. At about 7.30 we went to hotel. All of us had a bath and then we went to rest. for dinner. It was sea facing rest. But food was too bad. You feel sleepy after playing with water so we all went to hotel and went to sleep. </p> <p class="MsoNormal"><o:p> </o:p>20<sup>th</sup> January</p> <p class="MsoNormal"><o:p> </o:p>It was the last day of trip and we were to leave kerala that day. All wake late in the morning as it was AC hotel. But my friends Rohit and Vishal didn’t miss a chance to watch white foreigners. At around 10.30 we left for Trivendram. We went to a 1000 years old temple there. One is supposed to go inside the temple by wearing dhoti. <span style="font-family:Wingdings;"><span style="">J</span></span> Then we went to a zoo. It was very hot there so we didn’t really enjoyed watching animals. Then we had good lunch there and left for our train. We caught train at 3.00 in the noon and all slept till 6.00 in the evening. Had some snacks and again slept and wake up late on the next day morning. I reached Panvel at around 9.00. Train was half an hour late. Then I took a bus to pune and reached home at about 1.30. That was the complete end of my lifetime memory “A Trip to kerala”.</p>Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com2tag:blogger.com,1999:blog-7191348256178360026.post-57921759245183011512007-01-10T02:09:00.001-08:002007-05-16T06:24:44.283-07:00Things to come in mailsEmails have become so popular that people now a days get hundreds of mails a day. That number can go even higher in case of executives. In most of the cases it has been observed that people are not interested in consuming all the mails they receive. Users will be really happy if they get their mails auto-classified into different folders.<br /><br /><a href="http://joseph.randomnetworks.com/archives/2005/08/22/email-tags/">Tagging</a> can help solving this problem.<br /><br />If we can have a middleware which sits between mail client and mail server and tags mails and makes them available. At the same time use can also add or remove tags from system. Having middleware can enable users to share specific tagges mails with others which industry is awaiting for.<br /><br />Tagging can also assist to refine search query for mails.<br /><br />Example:<br />There are five mails and five tags.<br /><br />Example:<br />There are 5 mails and 5 tags (Movies, Bollywood, Hollywood, Mails, Persistent)<br />5 Mails are given following tags.<br /><br />1. Movies, Hollywood<br />2. Movies, Bollywood<br />3. Movies, Bollywood, Hollywood<br />4. Persistent<br />5. Mails, Persistent<br /><br />Now if i search for movies, System picks first three mails and looks for all other tags those three mails have. Those tags are Hollywood and Bollywood. So system makes me available those two tags as my probable strings to refine search result. This way it assists you to refine your search query.<br /><br />The way user consumes mails is also very important. Users are so much used of using mail clients and as a general tendency people are not willing to learn new things, So we should actually make folders available into outlook window onlyin that case each tag referes to a folder i your outlook window.<br /><br />One more thing seems like coming up in mailing domain is generating RSS feeds of your mails and making them available through RSS aggregators. <a href="http://mail.google.com/support/bin/answer.py?answer=13474">Google</a> has already been there in this space.<br /><br />Interesting is to see how both the concepts can integrate with each other and can really it be a killer Application? According to me we can have RSS feeds for folders and those folders represent mails of a particular tag.<br /><br />Eager to see that happening :-)Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com0tag:blogger.com,1999:blog-7191348256178360026.post-55977889713340890902006-12-28T21:50:00.000-08:002007-05-16T06:24:07.105-07:00My new yearHi all<br /><br />After a long time i am here at my blog.<br />I will tell you how have been these Christmas days for me.<br /><br />One great thing, i have become uncle. My bhabhi (Cousin brother's wife) is blessed with a baby girl. :-)<br /><br />I saw bhagam bhag movie didn't find it that great though. OK sort of movie. Not worth spending 150 bucks. I also went to singhgadh with one of my friend. His brother had come to pune and they wanted to visit singhgadh and i just accompanied them. Was a good time for me too. And i also went to Ambrosia one of the very good rests. at pune. Was my second time there but last time i didn't find time to see the place from around. I did it this time and found the place really very beautiful.<br /><br />Persistent (My employer) celebrates December month with all sports and dance events. I participated in chess. Didn't win any game but so sad :-( We (Kanishka and Abhishek my colleges at office) organized a PPT event and we guys put up a great show there. Got a t-shirt for doing that :-)<br /><br />I am leaving for home today. :-) Will have a great time there. 25Th was a birthday of my cousin (Jigisha) And one of my friend (Mittal). Going to have party from both. :-) And hey my bhabhi is blessed with a baby girl on 25th only so will have a party from her also. Man i will have a busy schedule there with parties.<br /><br />Some career related initiatives:<br /><br />I have planned to give SCJP. Had planned for first weekend of January. But it doesn't seem possible that day so will postpone it on may be 27Th January.<br />Also i have started taking English class. 8.00 to 10.00 Everyday and that too in the morning. Will be difficult but will manage it some how.<br /><br />This is it from my side. My last month of 2006.<br /><br />Marry Christmas and happy new year. See you soon with my first month of 2007 :-)Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com2tag:blogger.com,1999:blog-7191348256178360026.post-419771983333864092006-12-21T22:36:00.001-08:002007-05-16T06:23:44.857-07:00Bar Camp PuneHey guys last saturday 16-12-2006 i was there at <a href="http://barcamp.org/BarCampPune2">BarCampPune</a>. Was a great event. So many techy spoke there and had a very good dinner in the end.<br /><br />Look for <a href="http://www.flickr.com/photos/90596567@N00/">photoes</a><br /><br />Its my first blog post and will keep doing it.<br />Keep reading :)Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com0tag:blogger.com,1999:blog-7191348256178360026.post-40946656512624562502006-12-21T22:33:00.000-08:002007-05-16T06:23:22.237-07:00My experience of pune cityIt has been around 1.5 Years in pune and i think it's enough time to comment on a place so i am writing about pune.<br /><br />For a person coming from ahmedabad there are lots of good thing in pune. Good crowd, always pleasent atmosphere, speed and worst part of pune bad roads. My first impression of pune was a big village then a city.<br /><br />I first visited pune long back in January 2005 when i was here to take an interview at persistent and that didn't last for even 24 hours but it gave me what i wanted, "MY FIRST JOB". That time i passed through original city part of pune laxmi road, a few peths and all which doesn't look much developed.<br /><br />Then i came back to pune on 2nd july. There was a lot of rain those days and i had to come in flight till bombay and then i took a volvo to reach to pune there it started "my journey of pune".<br /><br />First few months were a bit difficult for me coming in bus to office and going back in bus that too after changing two buses. That time i realized importance of <span style="font-weight: bold;">good</span> public transport in one's life. At home i had a vehicle so didn't ever need to go by bus. Really its far more better then what we had in ahmedabad or may be i never tested ahmedabad's public transport system so i feel so. But i hear people saying its worse but i don't argue with them because sometime back it was my lifeline.<br /><br />Then i got a bike. Wow i thought "great time starts now"<br />Soon i realized <span style="font-weight: bold;">WORST PUNE ROADS</span>. And my home was also about 13 KMs from office which was a far more. Then i shifted to kothrud only 4 KMs away :-)<br /><br />Then i actually started good time at pune. I visited so many places to give you few names Singhgadh, Mulshi dam, Parvati, Mahabaleshwar .......... List is too long :-)<br /><br />Description of few places:<br /><br /><ul><li>Singagadh a very good place to pass your time. Specially for lovers. Luckily i am not :-(</li><li>Chatushrungi, Parvati and kateraj few temples to visit at.....</li><li>Manas lake, Katraj lake, Mulshi dam, Khadakvasla dam few places where you can enjoy even if you don't have GF. :-) Places for me such people.</li><li>Pune central, Pyramid, Shoppers stop malls if you want to go for branded. Very costly man but don't have options :-(<br /></li><li>Fashion street if you want to go for time pass cloths. Quality is bad so forget it!!!</li><li>Ohhh i forgot the most happening place of pune koregaon park. Don't forget to visit Osho Ashram and German bakery there. You will find foreigners there. And there are also discos and pubs but i don't go to either of the places :-(</li></ul>The only thing that i don't like of pune is <span style="font-weight: bold;">"bad roads and traffic man ohhpppsss"</span>. I feel like having a driver and AC car here but i am still poor man :-(<br /><br />This is it my experience in pune.<br /><br />Over all i like being in pune (cooler place) away from hot ahmedabad but really i miss a llllllllllloooooooooooooootttttttt to my college friends and the heaven like home. Only office friends and one more thing (not a right place to write) have kept me alive here away from my heaven.Kiran Thakkarhttp://www.blogger.com/profile/06230583140441194599noreply@blogger.com5