<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8166433559929166270</id><updated>2011-11-27T19:56:03.183-08:00</updated><category term='share'/><category term='http_proxy'/><category term='linux'/><category term='apache'/><category term='facebook'/><category term='msysgit'/><category term='proxy'/><category term='lankanewspapers'/><category term='git-core'/><category term='ssh-keygen'/><category term='gitosis-admin'/><category term='store'/><category term='ssh keys'/><category term='tortoise'/><category term='tomcat'/><category term='repo'/><category term='web services'/><category term='Java'/><category term='select all friends'/><category term='gui'/><category term='linux version control'/><category term='netbeans'/><category term='log4j'/><category term='synchronize'/><category term='gitosis.conf'/><category term='Tortoisegit'/><category term='.ssh'/><category term='Backup'/><category term='git'/><category term='plugin'/><category term='llogging'/><category term='Local news'/><category term='log'/><category term='proxy settings'/><category term='RollingFileAppender'/><category term='Sony Ericsson'/><category term='version control'/><category term='git ubuntu'/><category term='axis2'/><category term='News'/><category term='repository'/><category term='gitosis windows'/><category term='gitosis'/><category term='svn'/><category term='deploy'/><title type='text'>Janaka's Blog</title><subtitle type='html'>Share knowledge... Share latest news... Share New Technologies... Some of my own tutorials as well... Enjoy it</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-3292774532230039134</id><published>2010-09-29T19:59:00.000-07:00</published><updated>2010-10-02T09:40:00.497-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='axis2'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='netbeans'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>Axis2 Java Web Services with NetBeans deployed on Tomcat</title><content type='html'>As we discussed &lt;a href="http://theswarmintelligence.blogspot.com/2010/09/java-web-services-on-axis2-and-tomcat.html"&gt;earlier (previous post)&lt;/a&gt; you should set axis2 in to your tomcat web server.&lt;br /&gt;&lt;h4&gt;Apply axis2 plugin&lt;/h4&gt;First you need to install "Axis2 Support" plugin to the net beans. Open the netbeans IDE and navigate to Tools -&gt; Plugins. The plugins list will be displayed. If "Axis2 Support" is not showing there, please update the list.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/TKc8Z90QZBI/AAAAAAAAAFQ/y_gn1hhMyB0/s1600/blog1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/TKc8Z90QZBI/AAAAAAAAAFQ/y_gn1hhMyB0/s320/blog1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523449884781339666" /&gt;&lt;/a&gt;Then click the install button below and continue with installing...&lt;br /&gt;&lt;h4&gt;Add apache web server to IDE&lt;/h4&gt;Ok, now our next task is to add apache to the netbeans IDE. To do that, go to the Services tab (or Window -&gt; Services). Right click on servers and click "Add Server". It will popup following window.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/TKc-_JHZr4I/AAAAAAAAAFY/rklu0T4lUqg/s1600/blog1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 222px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/TKc-_JHZr4I/AAAAAAAAAFY/rklu0T4lUqg/s320/blog1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523452722492845954" /&gt;&lt;/a&gt; Select Tomcat 6.0 (according to your sever version) and continue. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/TKc_z0J0tDI/AAAAAAAAAFg/MYWNZ-05-Fo/s1600/blog1.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 274px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/TKc_z0J0tDI/AAAAAAAAAFg/MYWNZ-05-Fo/s400/blog1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523453627398927410" /&gt;&lt;/a&gt;&lt;br /&gt;You should navigate the folder which you have been placed Tomcat server. Add username and password (in my case I just used admin/admin). Then you will appear new server like this, &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AkhOthbg-aU/TKdC-oLqpZI/AAAAAAAAAFo/fufj_A-_1FQ/s1600/blog2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:right;cursor:pointer; cursor:hand;width: 169px; height: 145px;" src="http://2.bp.blogspot.com/_AkhOthbg-aU/TKdC-oLqpZI/AAAAAAAAAFo/fufj_A-_1FQ/s400/blog2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523457111698875794" /&gt;&lt;/a&gt; You can simply start server by right click on tomcat and selecting start option.&lt;br /&gt;&lt;h4&gt;Setup .aar file creating directory&lt;/h4&gt;Go to Tools -&gt; Options. And now you will be able to see an separate tab for Axis2 with its logo. Click on that.&lt;br /&gt;Now browse to your axis2.war file for "Target Location for axis2 .aar files:" field. And tick on use tomcat manager for deployment, enter username and password which you set earlier (in my case admin/admin). Then click ok. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/TKdMLJ7FjjI/AAAAAAAAAGA/U971CuB04qY/s1600/blog2.png"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 400px; height: 340px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/TKdMLJ7FjjI/AAAAAAAAAGA/U971CuB04qY/s400/blog2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523467222519221810" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h4&gt;Creating Web Services&lt;/h4&gt;Open a new project (File -&gt; New Project). Select Java and Java Application. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/TKdEChJ7L4I/AAAAAAAAAFw/rPtP6X98nv4/s1600/blog2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/TKdEChJ7L4I/AAAAAAAAAFw/rPtP6X98nv4/s400/blog2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523458278043627394" /&gt;&lt;/a&gt; Add a desired project name (I used "CardValidator") and complete creating project. Then right click on newly created project and select New -&gt; Axis2 Service From Java... &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/TKdN8NFJgSI/AAAAAAAAAGI/IQC4M1HuKhw/s1600/blog3.png"&gt;&lt;img style="float:right; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/TKdN8NFJgSI/AAAAAAAAAGI/IQC4M1HuKhw/s320/blog3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523469164691947810" /&gt;&lt;/a&gt;&lt;br /&gt;Then you will get popup window. There is nothing to change, in this case lets take this as Create Empty Web Service and click next. Then following step will visible. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AkhOthbg-aU/TKdOe7ltmeI/AAAAAAAAAGY/E-bbOObGTBY/s1600/blog3.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 275px;" src="http://2.bp.blogspot.com/_AkhOthbg-aU/TKdOe7ltmeI/AAAAAAAAAGY/E-bbOObGTBY/s400/blog3.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523469761292114402" /&gt;&lt;/a&gt; Give any name you wish as class name (in my case "MyClassValidator") and select package from list (in my case "cardvalidator"). And Finish it. Now its done. You will find a sample service call hello:String.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AkhOthbg-aU/TKdP0ITiBDI/AAAAAAAAAGg/v44jG6iAlXk/s1600/blog4.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 187px; height: 154px;" src="http://4.bp.blogspot.com/_AkhOthbg-aU/TKdP0ITiBDI/AAAAAAAAAGg/v44jG6iAlXk/s320/blog4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523471224994399282" /&gt;&lt;/a&gt;&lt;br /&gt;Important:You should right click on Axis2 Web Services and Deploy to Server, before test the sample program.&lt;br /&gt;After that you can right click on hello:String and Test operation in browser. It will give following browser opening for your request. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/TKdTCRbiN9I/AAAAAAAAAGo/7nQ2Ydv6MKI/s1600/blog4.png"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 100px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/TKdTCRbiN9I/AAAAAAAAAGo/7nQ2Ydv6MKI/s320/blog4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523474766496937938" /&gt;&lt;/a&gt;&lt;br /&gt;Writing new methods is not a big deal.&lt;br /&gt;Let's write a method to accept a card number and check whether it is valid one or not. If its starts with "1111" then its a valid card and should return true. Else should return false. &lt;br /&gt;Simply write following java method on MyCardValidator class (which contains method hello as well)&lt;pre&gt;public boolean validateCard(String cardNumber){&lt;br /&gt;&lt;br /&gt;        if(cardNumber.startsWith("1111")){&lt;br /&gt;            return true;&lt;br /&gt;        }else{&lt;br /&gt;            return false;&lt;br /&gt;        }&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;And now right click on MyCardValidator and deploy to server.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AkhOthbg-aU/TKdVIVNH-MI/AAAAAAAAAGw/6PttFn7VnaQ/s1600/blog4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 223px;" src="http://2.bp.blogspot.com/_AkhOthbg-aU/TKdVIVNH-MI/AAAAAAAAAGw/6PttFn7VnaQ/s400/blog4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523477069612710082" /&gt;&lt;/a&gt; Then your new service method will appear as a service. You can right click on it and test it.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AkhOthbg-aU/TKdVntC8ZyI/AAAAAAAAAG4/aR3nwUVE--A/s1600/blog4.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 108px;" src="http://4.bp.blogspot.com/_AkhOthbg-aU/TKdVntC8ZyI/AAAAAAAAAG4/aR3nwUVE--A/s320/blog4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523477608588404514" /&gt;&lt;/a&gt;&lt;br /&gt;Then your browser will open with link like this "http://localhost:8080/axis2/services/MyCardValidator/validateCard?cardNumber=&lt;span style="font-style:italic;"&gt;XYZ&lt;/span&gt;". By changing XYZ you can check whether your service works properly.&lt;br /&gt;Note: If your default browser is IE or Firefox, then the output will looks like a XML message. If you used chrome, the output will just be text values.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/TKdX4450Q7I/AAAAAAAAAHA/t1_eY3kzIis/s1600/blog5.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/TKdX4450Q7I/AAAAAAAAAHA/t1_eY3kzIis/s400/blog5.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5523480102852379570" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;By placing the axis2.war file in any tomcat server after you creating it you can access to the web services in above manner.&lt;br /&gt;Hope you got it correctly. If you got any problems pleas feel free to contact me by mailing or commenting here. &lt;br /&gt;Your comments will be very useful for further writings.... :)&lt;br /&gt;Thank you for visiting. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-3292774532230039134?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/3292774532230039134/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/09/axis2-java-web-services-with-netbeans.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/3292774532230039134'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/3292774532230039134'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/09/axis2-java-web-services-with-netbeans.html' title='Axis2 Java Web Services with NetBeans deployed on Tomcat'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AkhOthbg-aU/TKc8Z90QZBI/AAAAAAAAAFQ/y_gn1hhMyB0/s72-c/blog1.png' height='72' width='72'/><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-6661350016266821002</id><published>2010-09-29T18:42:00.000-07:00</published><updated>2010-10-02T09:41:11.263-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='deploy'/><category scheme='http://www.blogger.com/atom/ns#' term='axis2'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='tomcat'/><title type='text'>Setup tomcat and deploy axis2</title><content type='html'>First you better download the Apache Tomcat server from &lt;a href="http://apache.multihomed.net//tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.zip"&gt;here(direct download)&lt;/a&gt;. &lt;br /&gt;Extract the zip file where ever you want. Then set an environment variable named JAVA_HOME. Right click computer -&gt; Properties -&gt; Advanced System Settings -&gt; Environment Variables. Select New on "system variables" part. Then give JAVA_HOME as variable name and give the jdk directory (e.g. C:\Program Files\Java\jdk1.6.0_01) for variable value.&lt;br /&gt;Now Tomcat is set properly. &lt;br /&gt;Then you can download Axis2.war file containing zip from &lt;a href="http://newverhost.com/pub//axis/axis2/java/core/1.5.2/axis2-1.5.2-war.zip"&gt;here(direct download)&lt;/a&gt;. Extract the zip and place the .war file in apache/webapps folder(e.g. C:\apache-tomcat-6.0.29\webapps\axis2.war). Now you can start up the tomcat server and see whether axis2 has been deployed successfully. Run startup.bat file in apache-tomcat-6.0.29\bin folder. Then tomcat will start, then type "http://localhost:8080/axis2/" on your web browser and check whether following web page display to you.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/TKP5wQdU4zI/AAAAAAAAAFI/6JkZc7XZRes/s1600/axis2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 172px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/TKP5wQdU4zI/AAAAAAAAAFI/6JkZc7XZRes/s320/axis2.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5522532175533368114" /&gt;&lt;/a&gt;&lt;br /&gt;Run shutdown.bat in apache-tomcat-6.0.29\bin folder and server will be shutdown. &lt;br /&gt;So now lets move to write web services, in this case I ll be using netbeans IDE and the server settings and all that will be done on it. Everything will be described step by step on &lt;a href="http://theswarmintelligence.blogspot.com/2010/09/axis2-java-web-services-with-netbeans.html"&gt;next post&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-6661350016266821002?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/6661350016266821002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/09/java-web-services-on-axis2-and-tomcat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6661350016266821002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6661350016266821002'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/09/java-web-services-on-axis2-and-tomcat.html' title='Setup tomcat and deploy axis2'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AkhOthbg-aU/TKP5wQdU4zI/AAAAAAAAAFI/6JkZc7XZRes/s72-c/axis2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-4088357348115605870</id><published>2010-09-22T00:27:00.000-07:00</published><updated>2010-10-02T09:41:46.703-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='select all friends'/><title type='text'>Select all friends to send facebook inivtations</title><content type='html'>When you wanted to invite your all friends to a group or a event you just have to do a simple thing.&lt;br /&gt;Just select Invite button and wait for loading the friends list....&lt;br /&gt;After loading that, go to the address bar and type following and press enter.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    javascript:fs.select_all();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Then all of your friends will be selected and you can invite all of them at once.... :)&lt;br /&gt;Enjoy it... &lt;br /&gt;Cheers..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-4088357348115605870?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/4088357348115605870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/09/select-all-friends-to-send-facebook.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/4088357348115605870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/4088357348115605870'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/09/select-all-friends-to-send-facebook.html' title='Select all friends to send facebook inivtations'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-812673219383863448</id><published>2010-07-28T11:59:00.000-07:00</published><updated>2010-07-28T11:59:08.912-07:00</updated><title type='text'>Proof that Muttiah Muralitharan does not chuck</title><content type='html'>&lt;object style="background-image:url(http://i3.ytimg.com/vi/BDxRhcpBZio/hqdefault.jpg)"  width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/BDxRhcpBZio&amp;amp;hl=en_US&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/BDxRhcpBZio&amp;amp;hl=en_US&amp;amp;fs=1" width="425" height="344" allowScriptAccess="never" allowFullScreen="true" wmode="transparent" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-812673219383863448?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/812673219383863448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/07/proof-that-muttiah-muralitharan-does.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/812673219383863448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/812673219383863448'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/07/proof-that-muttiah-muralitharan-does.html' title='Proof that Muttiah Muralitharan does not chuck'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-6695202720007868111</id><published>2010-02-03T03:28:00.000-08:00</published><updated>2010-02-03T03:50:54.762-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Local news'/><category scheme='http://www.blogger.com/atom/ns#' term='News'/><category scheme='http://www.blogger.com/atom/ns#' term='lankanewspapers'/><title type='text'>Live news feeds on your web site (Local news at Sri Lanka)</title><content type='html'>Lanka News papers website &lt;a href="http://www.lankanewspapers.com"&gt; http://www.lankanewspapers.com&lt;/a&gt; provides a simple and nice tool to publish news on your website. Add the following piece of code on your website to add this feature.&lt;br /&gt;&lt;pre style="overflow-x:auto; overflow-y:auto;"&gt; &amp;lt;script language="javascript" src="http://www.lankanewspapers.com/news/RSS_Java.jsp"&amp;gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;script language='JavaScript'&amp;gt;&lt;br /&gt;SL_News_Display(&lt;br /&gt;                '10',        // Number of headlines to show (Max 20)&lt;br /&gt;                '200',       // Width of the news table &lt;br /&gt;                'font-family: helvetica, impact, sans-serif;font-size: 10pt;',  // Font&lt;br /&gt;                '#FFFFFF',   // Background color of news table&lt;br /&gt;                '1'          // Border width&lt;br /&gt;               );&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Reference:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.lankanewspapers.com/news/RSSFaq.jsp"&gt;lankanewspaper website&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Heshan&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-6695202720007868111?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/6695202720007868111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/02/live-news-feeds-on-your-web-site-local.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6695202720007868111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6695202720007868111'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/02/live-news-feeds-on-your-web-site-local.html' title='Live news feeds on your web site (Local news at Sri Lanka)'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-978045754700004895</id><published>2010-01-01T19:05:00.000-08:00</published><updated>2010-01-01T22:54:48.390-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='synchronize'/><category scheme='http://www.blogger.com/atom/ns#' term='share'/><category scheme='http://www.blogger.com/atom/ns#' term='Sony Ericsson'/><category scheme='http://www.blogger.com/atom/ns#' term='store'/><category scheme='http://www.blogger.com/atom/ns#' term='Backup'/><title type='text'>Sony Ericsson Information Web Synchronize (Store, Edit, share your mobile life)</title><content type='html'>Hi all....&lt;br /&gt;This will be really helpful you guyz for save your valuable information on you phone. For instance if you lost your phone all the information on your phone will be lost with this. But Sony Ericsson has introduce nice web synchronizing tool which creates a clone of the information on your phone with them. It will help you to get back your information. &lt;br /&gt;It keeps, &lt;ul&gt;&lt;li&gt;Contacts&lt;/li&gt;&lt;li&gt;Calendar&lt;/li&gt;&lt;li&gt;Bookmarks&lt;/li&gt;&lt;li&gt;Notes&lt;/li&gt;&lt;li&gt;Tasks&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/Sz6-ZTWHugI/AAAAAAAAAE0/IoBfc0yqLpo/s1600-h/SonyErr.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 260px; height: 251px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/Sz6-ZTWHugI/AAAAAAAAAE0/IoBfc0yqLpo/s320/SonyErr.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5421980343299717634" /&gt;&lt;/a&gt;&lt;br /&gt;What you have to do is visit &lt;a href=http://www.sonyericsson.com/wportal/uss/promotion?cc=lk&amp;lc=en&gt;http://www.sonyericsson.com/wportal/uss/promotion?cc=lk&amp;lc=en&lt;/a&gt; and create your own account. And according to the instructions giving by the application setup your synchronizing account of your mobile phone. To that, go in your phone, Menu &gt; Settings &gt;Connectivity &gt;Synchronization. Create new account and add settings For example synchronizing server will be http://sync.sonyericsson.com/sync/server. Like wise set your settings according to the instructions giving. &lt;br /&gt;Then go to the created profile and start synchronizing.&lt;br /&gt;It's still on Beta version. But it is working properly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-978045754700004895?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/978045754700004895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/01/sony-ericsson-information-web.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/978045754700004895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/978045754700004895'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2010/01/sony-ericsson-information-web.html' title='Sony Ericsson Information Web Synchronize (Store, Edit, share your mobile life)'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_AkhOthbg-aU/Sz6-ZTWHugI/AAAAAAAAAE0/IoBfc0yqLpo/s72-c/SonyErr.JPG' height='72' width='72'/><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-6464622127016339240</id><published>2009-12-24T19:05:00.000-08:00</published><updated>2009-12-27T21:16:59.233-08:00</updated><title type='text'>Snow fall on your website</title><content type='html'>You can add snow storm for your web site easily.....&lt;br /&gt;Copy the following code to a new javascript file....&lt;br /&gt;&lt;pre style="Width:100%; height:700px; overflow-x:auto; overflow-y:auto;"&gt;&lt;br /&gt;var snowStorm = null;&lt;br /&gt;&lt;br /&gt;function SnowStorm() {&lt;br /&gt;&lt;br /&gt;  // --- PROPERTIES ---&lt;br /&gt;&lt;br /&gt;  this.flakesMax = 128;           // Limit total amount of snow made (falling + sticking)&lt;br /&gt;  this.flakesMaxActive = 64;      // Limit amount of snow falling at once (less = lower CPU use)&lt;br /&gt;  this.animationInterval = 35;    // Theoretical "miliseconds per frame" measurement. 20 = fast + smooth, but high CPU use. 50 = more conservative, but slower&lt;br /&gt;  this.flakeBottom = null;        // Integer for Y axis snow limit, 0 or null for "full-screen" snow effect&lt;br /&gt;  this.targetElement = null;      // element which snow will be appended to (document body if null/undefined) - can be an element ID string, or a DOM node reference&lt;br /&gt;  this.followMouse = true;        // Snow will change movement with the user's mouse&lt;br /&gt;  this.snowColor = '#fff';        // Don't eat (or use?) yellow snow.&lt;br /&gt;  this.snowCharacter = '&lt;b&gt;*&lt;/b&gt;';  // &amp;bull; = bullet, &amp;middot; is square on some systems etc.&lt;br /&gt;  this.snowStick = false;          // Whether or not snow should "stick" at the bottom. When off, will never collect.&lt;br /&gt;  this.useMeltEffect = true;      // When recycling fallen snow (or rarely, when falling), have it "melt" and fade out if browser supports it&lt;br /&gt;  this.useTwinkleEffect = false;  // Allow snow to randomly "flicker" in and out of view while falling&lt;br /&gt;  this.usePositionFixed = false;  // true = snow not affected by window scroll. may increase CPU load, disabled by default - if enabled, used only where supported&lt;br /&gt;&lt;br /&gt;  // --- less-used bits ---&lt;br /&gt;&lt;br /&gt;  this.flakeLeftOffset = 0;       // amount to subtract from edges of container&lt;br /&gt;  this.flakeRightOffset = 0;      // amount to subtract from edges of container&lt;br /&gt;  this.flakeWidth = 8;            // max pixel width for snow element&lt;br /&gt;  this.flakeHeight = 8;           // max pixel height for snow element&lt;br /&gt;  this.vMaxX = 5;                 // Maximum X velocity range for snow&lt;br /&gt;  this.vMaxY = 4;                 // Maximum Y velocity range&lt;br /&gt;  this.zIndex = 0;                // CSS stacking order applied to each snowflake&lt;br /&gt;&lt;br /&gt;  // --- End of user section ---&lt;br /&gt;&lt;br /&gt;  // jslint global declarations&lt;br /&gt;  /*global window, document, navigator, clearInterval, setInterval */&lt;br /&gt;&lt;br /&gt;  var addEvent = (typeof(window.attachEvent)=='undefined'?function(o,evtName,evtHandler) {&lt;br /&gt;	return o.addEventListener(evtName,evtHandler,false);&lt;br /&gt;  }:function(o,evtName,evtHandler) {&lt;br /&gt;	return o.attachEvent('on'+evtName,evtHandler);&lt;br /&gt;  });&lt;br /&gt;&lt;br /&gt;  var removeEvent = (typeof(window.attachEvent)=='undefined'?function(o,evtName,evtHandler) {&lt;br /&gt;    return o.removeEventListener(evtName,evtHandler,false);&lt;br /&gt;  }:function(o,evtName,evtHandler) {&lt;br /&gt;	return o.detachEvent('on'+evtName,evtHandler);&lt;br /&gt;  });&lt;br /&gt;&lt;br /&gt;  function rnd(n,min) {&lt;br /&gt;    if (isNaN(min)) {&lt;br /&gt;	  min = 0;&lt;br /&gt;	}&lt;br /&gt;    return (Math.random()*n)+min;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  function plusMinus(n) {&lt;br /&gt;    return (parseInt(rnd(2),10)==1?n*-1:n);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  var s = this;&lt;br /&gt;  var storm = this;&lt;br /&gt;  this.timers = [];&lt;br /&gt;  this.flakes = [];&lt;br /&gt;  this.disabled = false;&lt;br /&gt;  this.active = false;&lt;br /&gt;&lt;br /&gt;  var isIE = navigator.userAgent.match(/msie/i);&lt;br /&gt;  var isIE6 = navigator.userAgent.match(/msie 6/i);&lt;br /&gt;  var isOldIE = (isIE &amp;&amp; (isIE6 || navigator.userAgent.match(/msie 5/i)));&lt;br /&gt;  var isWin9X = navigator.appVersion.match(/windows 98/i);&lt;br /&gt;  var isiPhone = navigator.userAgent.match(/iphone/i);&lt;br /&gt;  var isBackCompatIE = (isIE &amp;&amp; document.compatMode == 'BackCompat');&lt;br /&gt;  var noFixed = ((isBackCompatIE || isIE6 || isiPhone)?true:false);&lt;br /&gt;  var screenX = null;&lt;br /&gt;  var screenX2 = null;&lt;br /&gt;  var screenY = null;&lt;br /&gt;  var scrollY = null;&lt;br /&gt;  var vRndX = null;&lt;br /&gt;  var vRndY = null;&lt;br /&gt;  var windOffset = 1;&lt;br /&gt;  var windMultiplier = 2;&lt;br /&gt;  var flakeTypes = 6;&lt;br /&gt;  var fixedForEverything = false;&lt;br /&gt;  var opacitySupported = (function(){&lt;br /&gt;    try {&lt;br /&gt;	  document.createElement('div').style.opacity = '0.5';&lt;br /&gt;    } catch (e) {&lt;br /&gt;	  return false;&lt;br /&gt;    }&lt;br /&gt;    return true;&lt;br /&gt;  })();&lt;br /&gt;  var docFrag = document.createDocumentFragment();&lt;br /&gt;  if (s.flakeLeftOffset === null) {&lt;br /&gt;	s.flakeLeftOffset = 0;&lt;br /&gt;  }&lt;br /&gt;  if (s.flakeRightOffset === null) {&lt;br /&gt;	s.flakeRightOffset = 0;&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  this.meltFrameCount = 20;&lt;br /&gt;  this.meltFrames = [];&lt;br /&gt;  for (var i=0; i&lt;this.meltFrameCount; i++) {&lt;br /&gt;	this.meltFrames.push(1-(i/this.meltFrameCount));&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  this.randomizeWind = function() {&lt;br /&gt;    vRndX = plusMinus(rnd(s.vMaxX,0.2));&lt;br /&gt;    vRndY = rnd(s.vMaxY,0.2);&lt;br /&gt;    if (this.flakes) {&lt;br /&gt;      for (var i=0; i&lt;this.flakes.length; i++) {&lt;br /&gt;        if (this.flakes[i].active) {&lt;br /&gt;          this.flakes[i].setVelocities();&lt;br /&gt;		}&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.scrollHandler = function() {&lt;br /&gt;    // "attach" snowflakes to bottom of window if no absolute bottom value was given&lt;br /&gt;    scrollY = (s.flakeBottom?0:parseInt(window.scrollY||document.documentElement.scrollTop||document.body.scrollTop,10));&lt;br /&gt;    if (isNaN(scrollY)) {&lt;br /&gt;	  scrollY = 0; // Netscape 6 scroll fix&lt;br /&gt;	}&lt;br /&gt;    if (!fixedForEverything &amp;&amp; !s.flakeBottom &amp;&amp; s.flakes) {&lt;br /&gt;      for (var i=s.flakes.length; i--;) {&lt;br /&gt;        if (s.flakes[i].active === 0) {&lt;br /&gt;	      s.flakes[i].stick();&lt;br /&gt;		}&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.resizeHandler = function() {&lt;br /&gt;    if (window.innerWidth || window.innerHeight) {&lt;br /&gt;      screenX = window.innerWidth-(!isIE?16:2)-s.flakeRightOffset;&lt;br /&gt;      screenY = (s.flakeBottom?s.flakeBottom:window.innerHeight);&lt;br /&gt;    } else {&lt;br /&gt;      screenX = (document.documentElement.clientWidth||document.body.clientWidth||document.body.scrollWidth)-(!isIE?8:0)-s.flakeRightOffset;&lt;br /&gt;      screenY = s.flakeBottom?s.flakeBottom:(document.documentElement.clientHeight||document.body.clientHeight||document.body.scrollHeight);&lt;br /&gt;    }&lt;br /&gt;    screenX2 = parseInt(screenX/2,10);&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.resizeHandlerAlt = function() {&lt;br /&gt;    screenX = s.targetElement.offsetLeft+s.targetElement.offsetWidth-s.flakeRightOffset;&lt;br /&gt;    screenY = s.flakeBottom?s.flakeBottom:s.targetElement.offsetTop+s.targetElement.offsetHeight;&lt;br /&gt;    screenX2 = parseInt(screenX/2,10);&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.freeze = function() {&lt;br /&gt;    // pause animation&lt;br /&gt;    if (!s.disabled) {&lt;br /&gt;      s.disabled = 1;&lt;br /&gt;    } else {&lt;br /&gt;      return false;&lt;br /&gt;    }&lt;br /&gt;    for (var i=s.timers.length; i--;) {&lt;br /&gt;      clearInterval(s.timers[i]);&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.resume = function() {&lt;br /&gt;    if (s.disabled) {&lt;br /&gt;       s.disabled = 0;&lt;br /&gt;    } else {&lt;br /&gt;      return false;&lt;br /&gt;    }&lt;br /&gt;    s.timerInit();&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.toggleSnow = function() {&lt;br /&gt;    if (!s.flakes.length) {&lt;br /&gt;      // first run&lt;br /&gt;      s.start();&lt;br /&gt;    } else {&lt;br /&gt;      s.active = !s.active;&lt;br /&gt;      if (s.active) {&lt;br /&gt;        s.show();&lt;br /&gt;        s.resume();&lt;br /&gt;      } else {&lt;br /&gt;        s.stop();&lt;br /&gt;        s.freeze();&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.stop = function() {&lt;br /&gt;    this.freeze();&lt;br /&gt;    for (var i=this.flakes.length; i--;) {&lt;br /&gt;      this.flakes[i].o.style.display = 'none';&lt;br /&gt;    }&lt;br /&gt;    removeEvent(window,'scroll',s.scrollHandler);&lt;br /&gt;    removeEvent(window,'resize',s.resizeHandler);&lt;br /&gt;    if (!isOldIE) {&lt;br /&gt;      removeEvent(window,'blur',s.freeze);&lt;br /&gt;      removeEvent(window,'focus',s.resume);&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.show = function() {&lt;br /&gt;    for (var i=this.flakes.length; i--;) {&lt;br /&gt;      this.flakes[i].o.style.display = 'block';&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.SnowFlake = function(parent,type,x,y) {&lt;br /&gt;    var s = this;&lt;br /&gt;    var storm = parent;&lt;br /&gt;    this.type = type;&lt;br /&gt;    this.x = x||parseInt(rnd(screenX-20),10);&lt;br /&gt;    this.y = (!isNaN(y)?y:-rnd(screenY)-12);&lt;br /&gt;    this.vX = null;&lt;br /&gt;    this.vY = null;&lt;br /&gt;    this.vAmpTypes = [1,1.2,1.4,1.6,1.8]; // "amplification" for vX/vY (based on flake size/type)&lt;br /&gt;    this.vAmp = this.vAmpTypes[this.type];&lt;br /&gt;    this.melting = false;&lt;br /&gt;    this.meltFrameCount = storm.meltFrameCount;&lt;br /&gt;    this.meltFrames = storm.meltFrames;&lt;br /&gt;    this.meltFrame = 0;&lt;br /&gt;    this.twinkleFrame = 0;&lt;br /&gt;    this.active = 1;&lt;br /&gt;    this.fontSize = (10+(this.type/5)*10);&lt;br /&gt;    this.o = document.createElement('div');&lt;br /&gt;    this.o.innerHTML = storm.snowCharacter;&lt;br /&gt;    this.o.style.color = storm.snowColor;&lt;br /&gt;    this.o.style.position = (fixedForEverything?'fixed':'absolute');&lt;br /&gt;    this.o.style.width = storm.flakeWidth+'px';&lt;br /&gt;    this.o.style.height = storm.flakeHeight+'px';&lt;br /&gt;    this.o.style.fontFamily = 'arial,verdana';&lt;br /&gt;    this.o.style.overflow = 'hidden';&lt;br /&gt;    this.o.style.fontWeight = 'normal';&lt;br /&gt;    this.o.style.zIndex = storm.zIndex;&lt;br /&gt;    docFrag.appendChild(this.o);&lt;br /&gt;&lt;br /&gt;    this.refresh = function() {&lt;br /&gt;	  if (isNaN(s.x) || isNaN(s.y)) {&lt;br /&gt;		// safety check&lt;br /&gt;		return false;&lt;br /&gt;	  }&lt;br /&gt;      s.o.style.left = s.x+'px';&lt;br /&gt;      s.o.style.top = s.y+'px';&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.stick = function() {&lt;br /&gt;      if (noFixed || (storm.targetElement != document.documentElement &amp;&amp; storm.targetElement != document.body)) {&lt;br /&gt;        s.o.style.top = (screenY+scrollY-storm.flakeHeight)+'px';&lt;br /&gt;      } else if (storm.flakeBottom) {&lt;br /&gt;	    s.o.style.top = storm.flakeBottom+'px';&lt;br /&gt;	  } else {&lt;br /&gt;        s.o.style.display = 'none';&lt;br /&gt;	    s.o.style.top = 'auto';&lt;br /&gt;        s.o.style.bottom = '0px';&lt;br /&gt;	    s.o.style.position = 'fixed';&lt;br /&gt;        s.o.style.display = 'block';&lt;br /&gt;      }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.vCheck = function() {&lt;br /&gt;      if (s.vX&gt;=0 &amp;&amp; s.vX&lt;0.2) {&lt;br /&gt;        s.vX = 0.2;&lt;br /&gt;      } else if (s.vX&lt;0 &amp;&amp; s.vX&gt;-0.2) {&lt;br /&gt;        s.vX = -0.2;&lt;br /&gt;      }&lt;br /&gt;      if (s.vY&gt;=0 &amp;&amp; s.vY&lt;0.2) {&lt;br /&gt;        s.vY = 0.2;&lt;br /&gt;      }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.move = function() {&lt;br /&gt;      var vX = s.vX*windOffset;&lt;br /&gt;      s.x += vX;&lt;br /&gt;      s.y += (s.vY*s.vAmp);&lt;br /&gt;      if (s.x &gt;= screenX || screenX-s.x &lt; storm.flakeWidth) { // X-axis scroll check&lt;br /&gt;        s.x = 0;&lt;br /&gt;      } else if (vX &lt; 0 &amp;&amp; s.x-storm.flakeLeftOffset&lt;0-storm.flakeWidth) {&lt;br /&gt;        s.x = screenX-storm.flakeWidth-1; // flakeWidth;&lt;br /&gt;      }&lt;br /&gt;      s.refresh();&lt;br /&gt;      var yDiff = screenY+scrollY-s.y;&lt;br /&gt;      if (yDiff&lt;storm.flakeHeight) {&lt;br /&gt;        s.active = 0;&lt;br /&gt;	    if (storm.snowStick) {&lt;br /&gt;          s.stick();&lt;br /&gt;	    } else {&lt;br /&gt;	      s.recycle();&lt;br /&gt;	    }&lt;br /&gt;      } else {&lt;br /&gt;	    if (storm.useMeltEffect &amp;&amp; s.active &amp;&amp; s.type &lt; 3 &amp;&amp; !s.melting &amp;&amp; Math.random()&gt;0.998) {&lt;br /&gt;	      // ~1/1000 chance of melting mid-air, with each frame&lt;br /&gt;	      s.melting = true;&lt;br /&gt;	      s.melt();&lt;br /&gt;	      // only incrementally melt one frame&lt;br /&gt;	      // s.melting = false;&lt;br /&gt;	    }&lt;br /&gt;	    if (storm.useTwinkleEffect) {&lt;br /&gt;		  if (!s.twinkleFrame) {&lt;br /&gt;			if (Math.random()&gt;0.9) {&lt;br /&gt;		      s.twinkleFrame = parseInt(Math.random()*20,10);&lt;br /&gt;		    }&lt;br /&gt;		  } else {&lt;br /&gt;			s.twinkleFrame--;&lt;br /&gt;			s.o.style.visibility = (s.twinkleFrame &amp;&amp; s.twinkleFrame%2===0?'hidden':'visible');&lt;br /&gt;		  }&lt;br /&gt;	    }&lt;br /&gt;      }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.animate = function() {&lt;br /&gt;      // main animation loop&lt;br /&gt;      // move, check status, die etc.&lt;br /&gt;      s.move();&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.setVelocities = function() {&lt;br /&gt;      s.vX = vRndX+rnd(storm.vMaxX*0.12,0.1);&lt;br /&gt;      s.vY = vRndY+rnd(storm.vMaxY*0.12,0.1);&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;	this.setOpacity = function(o,opacity) {&lt;br /&gt;	  if (!opacitySupported) {&lt;br /&gt;		return false;&lt;br /&gt;	  }&lt;br /&gt;	  o.style.opacity = opacity;&lt;br /&gt;	};&lt;br /&gt;&lt;br /&gt;    this.melt = function() {&lt;br /&gt;	  if (!storm.useMeltEffect || !s.melting) {&lt;br /&gt;		s.recycle();&lt;br /&gt;	  } else {&lt;br /&gt;		if (s.meltFrame &lt; s.meltFrameCount) {&lt;br /&gt;		  s.meltFrame++;&lt;br /&gt;		  s.setOpacity(s.o,s.meltFrames[s.meltFrame]);&lt;br /&gt;		  s.o.style.fontSize = s.fontSize-(s.fontSize*(s.meltFrame/s.meltFrameCount))+'px';&lt;br /&gt;		  s.o.style.lineHeight = storm.flakeHeight+2+(storm.flakeHeight*0.75*(s.meltFrame/s.meltFrameCount))+'px';&lt;br /&gt;		} else {&lt;br /&gt;		  s.recycle();&lt;br /&gt;		}&lt;br /&gt;	  }&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.recycle = function() {&lt;br /&gt;      s.o.style.display = 'none';&lt;br /&gt;      s.o.style.position = (fixedForEverything?'fixed':'absolute');&lt;br /&gt;      s.o.style.bottom = 'auto';&lt;br /&gt;      s.setVelocities();&lt;br /&gt;      s.vCheck();&lt;br /&gt;	  s.meltFrame = 0;&lt;br /&gt;	  s.melting = false;&lt;br /&gt;	  s.setOpacity(s.o,1);&lt;br /&gt;	  s.o.style.padding = '0px';&lt;br /&gt;	  s.o.style.margin = '0px';&lt;br /&gt;	  s.o.style.fontSize = s.fontSize+'px';&lt;br /&gt;	  s.o.style.lineHeight = (storm.flakeHeight+2)+'px';&lt;br /&gt;	  s.o.style.textAlign = 'center';&lt;br /&gt;	  s.o.style.verticalAlign = 'baseline';&lt;br /&gt;      s.x = parseInt(rnd(screenX-storm.flakeWidth-20),10);&lt;br /&gt;      s.y = parseInt(rnd(screenY)*-1,10)-storm.flakeHeight;&lt;br /&gt;      s.refresh();&lt;br /&gt;      s.o.style.display = 'block';&lt;br /&gt;      s.active = 1;&lt;br /&gt;    };&lt;br /&gt;&lt;br /&gt;    this.recycle(); // set up x/y coords etc.&lt;br /&gt;    this.refresh();&lt;br /&gt;&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.snow = function() {&lt;br /&gt;    var active = 0;&lt;br /&gt;    var used = 0;&lt;br /&gt;    var waiting = 0;&lt;br /&gt;    var flake = null;&lt;br /&gt;    for (var i=s.flakes.length; i--;) {&lt;br /&gt;      if (s.flakes[i].active == 1) {&lt;br /&gt;        s.flakes[i].move();&lt;br /&gt;        active++;&lt;br /&gt;      } else if (s.flakes[i].active === 0) {&lt;br /&gt;        used++;&lt;br /&gt;      } else {&lt;br /&gt;        waiting++;&lt;br /&gt;      }&lt;br /&gt;      if (s.flakes[i].melting) {&lt;br /&gt;	    s.flakes[i].melt();&lt;br /&gt;	  }&lt;br /&gt;    }&lt;br /&gt;    if (active&lt;s.flakesMaxActive) {&lt;br /&gt;      flake = s.flakes[parseInt(rnd(s.flakes.length),10)];&lt;br /&gt;      if (flake.active === 0) {&lt;br /&gt;        flake.melting = true;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.mouseMove = function(e) {&lt;br /&gt;    if (!s.followMouse) {&lt;br /&gt;	  return true;&lt;br /&gt;	}&lt;br /&gt;    var x = parseInt(e.clientX,10);&lt;br /&gt;    if (x&lt;screenX2) {&lt;br /&gt;      windOffset = -windMultiplier+(x/screenX2*windMultiplier);&lt;br /&gt;    } else {&lt;br /&gt;      x -= screenX2;&lt;br /&gt;      windOffset = (x/screenX2)*windMultiplier;&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.createSnow = function(limit,allowInactive) {&lt;br /&gt;    for (var i=0; i&lt;limit; i++) {&lt;br /&gt;      s.flakes[s.flakes.length] = new s.SnowFlake(s,parseInt(rnd(flakeTypes),10));&lt;br /&gt;      if (allowInactive || i&gt;s.flakesMaxActive) {&lt;br /&gt;	    s.flakes[s.flakes.length-1].active = -1;&lt;br /&gt;	  }&lt;br /&gt;    }&lt;br /&gt;    storm.targetElement.appendChild(docFrag);&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.timerInit = function() {&lt;br /&gt;    s.timers = (!isWin9X?[setInterval(s.snow,s.animationInterval)]:[setInterval(s.snow,s.animationInterval*3),setInterval(s.snow,s.animationInterval)]);&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  this.init = function() {&lt;br /&gt;    s.randomizeWind();&lt;br /&gt;    s.createSnow(s.flakesMax); // create initial batch&lt;br /&gt;    addEvent(window,'resize',s.resizeHandler);&lt;br /&gt;    addEvent(window,'scroll',s.scrollHandler);&lt;br /&gt;    if (!isOldIE) {&lt;br /&gt;      addEvent(window,'blur',s.freeze);&lt;br /&gt;      addEvent(window,'focus',s.resume);&lt;br /&gt;    }&lt;br /&gt;    s.resizeHandler();&lt;br /&gt;    s.scrollHandler();&lt;br /&gt;    if (s.followMouse) {&lt;br /&gt;      addEvent(document,'mousemove',s.mouseMove);&lt;br /&gt;    }&lt;br /&gt;    s.animationInterval = Math.max(20,s.animationInterval);&lt;br /&gt;    s.timerInit();&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  var didInit = false;&lt;br /&gt;&lt;br /&gt;  this.start = function(bFromOnLoad) {&lt;br /&gt;	if (!didInit) {&lt;br /&gt;	  didInit = true;&lt;br /&gt;	} else if (bFromOnLoad) {&lt;br /&gt;	  // already loaded and running&lt;br /&gt;	  return true;&lt;br /&gt;	}&lt;br /&gt;    if (typeof s.targetElement == 'string') {&lt;br /&gt;	  var targetID = s.targetElement;&lt;br /&gt;      s.targetElement = document.getElementById(targetID);&lt;br /&gt;      if (!s.targetElement) {&lt;br /&gt;	    throw new Error('Snowstorm: Unable to get targetElement "'+targetID+'"');&lt;br /&gt;	  }&lt;br /&gt;    }&lt;br /&gt;	if (!s.targetElement) {&lt;br /&gt;	  s.targetElement = (!isIE?(document.documentElement?document.documentElement:document.body):document.body);&lt;br /&gt;	}&lt;br /&gt;    if (s.targetElement != document.documentElement &amp;&amp; s.targetElement != document.body) {&lt;br /&gt;	  s.resizeHandler = s.resizeHandlerAlt; // re-map handler to get element instead of screen dimensions&lt;br /&gt;	}&lt;br /&gt;    s.resizeHandler(); // get bounding box elements&lt;br /&gt;    s.usePositionFixed = (s.usePositionFixed &amp;&amp; !noFixed); // whether or not position:fixed is supported&lt;br /&gt;    fixedForEverything = s.usePositionFixed;&lt;br /&gt;    if (screenX &amp;&amp; screenY &amp;&amp; !s.disabled) {&lt;br /&gt;      s.init();&lt;br /&gt;      s.active = true;&lt;br /&gt;    }&lt;br /&gt;  };&lt;br /&gt;&lt;br /&gt;  function doStart() {&lt;br /&gt;	  s.start(true);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;  if (document.addEventListener) {&lt;br /&gt;    // safari 3.0.4 doesn't do DOMContentLoaded, maybe others - use a fallback to be safe.&lt;br /&gt;    document.addEventListener('DOMContentLoaded',doStart,false);&lt;br /&gt;    window.addEventListener('load',doStart,false);&lt;br /&gt;  } else {&lt;br /&gt;    addEvent(window,'load',doStart);&lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;snowStorm = new SnowStorm();&lt;/pre&gt;Assume that we saved this code in a javascript file called snow.js.... &lt;br /&gt;Then import that file on your master page.&lt;pre&gt; &amp;lt;script type="text/javascript" src="snow.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-6464622127016339240?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/6464622127016339240/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/12/snow-fall-on-your-website.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6464622127016339240'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6464622127016339240'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/12/snow-fall-on-your-website.html' title='Snow fall on your website'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-5304985815722501125</id><published>2009-11-23T06:42:00.000-08:00</published><updated>2009-11-23T17:15:04.325-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='http_proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy settings'/><category scheme='http://www.blogger.com/atom/ns#' term='proxy'/><title type='text'>Change Proxy Settings on linux using shell commands</title><content type='html'>You can change the proxy settings for current session by executing following command. Which changes the environment variable "http_proxy". If you want, you can do it for ftp as well (ftp_proxy).&lt;br /&gt;&lt;pre&gt;export http_proxy="http://NewProxy_address:Port"&lt;/pre&gt;&lt;br /&gt;Assume my proxy run on 192.168.0.1 machine on port 808, then this settings will be&lt;br /&gt;&lt;pre&gt;export http_proxy="http://192.168.0.1:808"&lt;/pre&gt;&lt;br /&gt;&lt;h4&gt;Personal Experience&lt;/h4&gt;&lt;br /&gt;Recently, I installed Ubuntu server 8.04 and while the installation I set proxy settings wrong manner. In that case, installation guide give the format of "http://[[[user]:[passowrd]@serverIP]:[port]]" to enter proxy settings. Since I was using my proxy server in a windows machine, I had problem of giving username@server:port format. I gave it http://janaka@192.168.0.1:808, but it is only necessary to give http://192.168.0.1:808. So I needed to permanently change it. If you only used above command, it will not be there when you reboot the linux os. Because it is just changing the current environmental variable "http_proxy".&lt;br /&gt;Using following changes you could permanently change the settings.&lt;br /&gt;If you wanted to add it for any user add &lt;b&gt;export http_proxy="http://192.168.0.1:808" &lt;/b&gt; on ~/.bashrc file.&lt;pre&gt; vi ~/.bashrc&lt;/pre&gt; &lt;br /&gt;If you want to do it for current user, add &lt;b&gt;export http_proxy="http://192.168.0.1:808"&lt;/b&gt; on /etc/rc.local. &lt;pre&gt;vi /etc/rc.local&lt;/pre&gt; The File will look like below. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AkhOthbg-aU/SwqlLtkPzKI/AAAAAAAAAEo/45YXDhv1AGs/s1600/permanent+proxy+change.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 165px;" src="http://2.bp.blogspot.com/_AkhOthbg-aU/SwqlLtkPzKI/AAAAAAAAAEo/45YXDhv1AGs/s320/permanent+proxy+change.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5407315923240471714" /&gt;&lt;/a&gt;&lt;br /&gt;And then change the execution bit to execute this script while loading.&lt;br /&gt;&lt;pre&gt;chmod u+x /etc/rc.local&lt;/pre&gt;&lt;br /&gt;Now it should be working.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-5304985815722501125?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/5304985815722501125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/change-proxy-settings-on-linux-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/5304985815722501125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/5304985815722501125'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/change-proxy-settings-on-linux-using.html' title='Change Proxy Settings on linux using shell commands'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AkhOthbg-aU/SwqlLtkPzKI/AAAAAAAAAEo/45YXDhv1AGs/s72-c/permanent+proxy+change.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-8047366546417939455</id><published>2009-11-22T23:12:00.000-08:00</published><updated>2009-11-23T06:00:53.883-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='log'/><category scheme='http://www.blogger.com/atom/ns#' term='log4j'/><category scheme='http://www.blogger.com/atom/ns#' term='RollingFileAppender'/><category scheme='http://www.blogger.com/atom/ns#' term='llogging'/><title type='text'>Log4j - Logging package</title><content type='html'>Log4j is a package which supports to do logging very easily. This logging outputs can be taken in many ways. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/ConsoleAppender.html"&gt;ConsoleAppender&lt;/a&gt; - Append to the console&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/FileAppender.html"&gt;FileAppender&lt;/a&gt; - Append to the log file&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/net/SMTPAppender.html"&gt;SMTPAppender&lt;/a&gt; - Logs through emails&lt;/li&gt;&lt;li&gt;&lt;a href="http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/RollingFileAppender.html"&gt;RollingFileAppender&lt;/a&gt; - Logs to files, when it comes to defined limit go for a new file.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;There are many more types can be used, &lt;br /&gt;AsyncAppender, JDBCAppender, JMSAppender, LF5Appender, NTEventLogAppender,&lt;br /&gt;NullAppender, NullAppender, SMTPAppender, SocketAppender, SocketHubAppender,&lt;br /&gt;SyslogAppender, TelnetAppender, DailyRollingFileAppender, RollingFileAppender.&lt;br /&gt;To begin with log4j, you should first download the log4j package. Here is a sample &lt;a href="http://www.findjar.com/jar/log4j/jars/log4j-1.2.11.jar.html"&gt;link&lt;/a&gt; to &lt;a href="http://www.findjar.com/jar/log4j/jars/log4j-1.2.11.jar.html"&gt;download&lt;/a&gt; it.&lt;br /&gt;&lt;h3&gt;Log Levels &lt;/h3&gt;There are some log levels defined in log4j.&lt;br /&gt;&lt;ol&gt; &lt;li&gt;all - All levels including custom levels&lt;/li&gt; &lt;li&gt;trace (since log4j 1.2.12) - Developing only, can be used to follow the program execution.&lt;/li&gt; &lt;li&gt;debug - Developing only, for debugging purpose&lt;/li&gt; &lt;li&gt;info - Production optionally, Course grained (rarely written information), I use it to print that a configuration is initialized, a long running import job is starting and ending.&lt;/li&gt; &lt;li&gt;warn - Production, simple application error or unexpected behaviour. Application can continue. I warn for example in case of bad logging attempts, unexpected data during import jobs&lt;/li&gt; &lt;li&gt;error - Production, application error/exception but&lt;br /&gt;application can continue. Part of the application is probably not working&lt;/li&gt; &lt;li&gt;fatal - Production, fatal application error/exception, application cannot continue, for example database is down.&lt;/li&gt; &lt;li&gt;no - Do not log at all.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;h3&gt; A simple example &lt;/h3&gt; First you better add downloaded jar package to the project using your IDE. Then you have to setup the log4j properties through property file or, xml file.... In this case, let's check with log4j.properties file. In your IDE, as other property files add your log4j properties file. For example create new file called "log4j.properties" It should be look like this. &lt;pre&gt;log4j.rootLogger=debug, file&lt;br /&gt;log4j.appender.file=org.apache.log4j.RollingFileAppender   #logging Type&lt;br /&gt;log4j.appender.file.maxFileSize=100KB   #Max file size of a log file&lt;br /&gt;log4j.appender.file.maxBackupIndex=5    #keeping backups of&lt;br /&gt;log4j.appender.file.File=C://myprogram_logs/test.log     #Location which saving log file&lt;br /&gt;log4j.appender.file.threshold=debug          #Log Level&lt;br /&gt;log4j.appender.file.layout=org.apache.log4j.PatternLayout   #Layout of the log file&lt;br /&gt;log4j.appender.file.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n    #Layout of the log file&lt;/pre&gt; I am using RollingFileAppender here. Max file size is 100KB, kind of all the properties related to Log4j is stated here. &lt;br /&gt;At your java file, load the property file and put it into the PropertyConfigurator on log4j package. Example code snipped here,&lt;br /&gt;Improte packages&lt;pre&gt;&lt;br /&gt;import org.apache.log4j.PropertyConfigurator;&lt;br /&gt;import org.apache.log4j.Logger;&lt;br /&gt;import java.util.Properties;&lt;/pre&gt; On the relevant class, define the Logger type global variable(in my case "logger").&lt;pre&gt;private static Logger logger = Logger.getLogger(MyProgram.class);&lt;/pre&gt; On main method,&lt;pre&gt;   public static void main(String[] args){&lt;br /&gt;        Properties properties = new Properties();&lt;br /&gt;        InputStream inputStream = MyProgram.class.getClassLoader().getResourceAsStream("log4j.properties");&lt;br /&gt;        properties.load(inputStream);&lt;br /&gt;        PropertyConfigurator.configure(properties);&lt;br /&gt;        logger.info("My program Begins");&lt;br /&gt;        }&lt;/pre&gt; When you catch an exception, write it on log as follows&lt;pre&gt;     try {&lt;br /&gt;             //Your code here&lt;br /&gt;            } catch (Exception e) {&lt;br /&gt;                logger.error("Found the exception here");&lt;br /&gt;            }&lt;/pre&gt;&lt;br /&gt;Now you will find logs on C://myprogram_logs/test.log location file. &lt;br /&gt;When you need to use it in ubuntu, you just have to change the file location only from the properties file (i.e. /var/myprogram_logs/test.log).&lt;br /&gt;See how easy logging you programming status with Log4j........&lt;br /&gt;&lt;a href="http://www.pfarrell.com/misc/The_Complete_log4j_Manual.pdf"&gt;Here is a nice pdf to follow.&lt;/a&gt;&lt;br /&gt;Cheers......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-8047366546417939455?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/8047366546417939455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/log4j-logging-package.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/8047366546417939455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/8047366546417939455'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/log4j-logging-package.html' title='Log4j - Logging package'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-6884093479305551485</id><published>2009-11-17T23:30:00.000-08:00</published><updated>2009-11-18T22:06:38.112-08:00</updated><title type='text'>"The Twilight Saga: New Moon" for Sri Lankans...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_AkhOthbg-aU/SwOmU0wZsQI/AAAAAAAAAEQ/W7y6Hc3IG00/s1600/twilight_new_moon-13018.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://2.bp.blogspot.com/_AkhOthbg-aU/SwOmU0wZsQI/AAAAAAAAAEQ/W7y6Hc3IG00/s320/twilight_new_moon-13018.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5405346854463975682" /&gt;&lt;/a&gt;&lt;br /&gt;Hay sri lankan Twilight fans, you all will be able to watch Twilight at MC soon...............&lt;br /&gt;Yaaahooooooooooooo..........&lt;br /&gt;You can buy tickets from &lt;a href="http://ticketslk.com/movies/21/show_movie?upcoming_movies=true"&gt;TicketsLK.&lt;/a&gt; &lt;br /&gt;Frnz itz movie time.....&lt;br /&gt;&lt;object width="560" height="340"&gt;&lt;param name="movie" value="http://www.youtube.com/v/kSFMmkMfQ5Q&amp;hl=en_US&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/kSFMmkMfQ5Q&amp;hl=en_US&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="560" height="340"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/SwOnQvJp-7I/AAAAAAAAAEY/Rfdm4RjHAvo/s1600/10001825.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 198px; height: 320px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/SwOnQvJp-7I/AAAAAAAAAEY/Rfdm4RjHAvo/s320/10001825.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5405347883751439282" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/SwOneB_NEYI/AAAAAAAAAEg/67xLNw5NmFo/s1600/new-moon-new-moon-movie-4909367-510-755.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 216px; height: 320px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/SwOneB_NEYI/AAAAAAAAAEg/67xLNw5NmFo/s320/new-moon-new-moon-movie-4909367-510-755.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5405348112146174338" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-6884093479305551485?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/6884093479305551485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/twilight-saga-new-moon-will-come-to-mc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6884093479305551485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6884093479305551485'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/twilight-saga-new-moon-will-come-to-mc.html' title='&quot;The Twilight Saga: New Moon&quot; for Sri Lankans...'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_AkhOthbg-aU/SwOmU0wZsQI/AAAAAAAAAEQ/W7y6Hc3IG00/s72-c/twilight_new_moon-13018.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-9208679761725090272</id><published>2009-11-15T05:27:00.000-08:00</published><updated>2009-11-15T06:32:13.207-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='Tortoisegit'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh-keygen'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='gui'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis windows'/><category scheme='http://www.blogger.com/atom/ns#' term='.ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='tortoise'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Windows TortoiseGit client for a linux Gitosis server</title><content type='html'>Tortoise git is really nice Graphical tool to handle git repository. You need to download TortoiseGit from &lt;a href="http://code.google.com/p/tortoisegit/downloads/detail?name=TortoiseGit-0.2.0.0-preview.msi&amp;can=2&amp;q="&gt;&lt;b&gt;here&lt;/b&gt;&lt;/a&gt;. First of all as we discussed &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html"&gt;&lt;b&gt;earlier&lt;/b&gt;&lt;/a&gt; you need to&lt;a href="http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html"&gt;&lt;b&gt; install msysgit &lt;/b&gt;&lt;/a&gt;first. Then install the Tortoisegit and install it. While installing it Select open ssh client option for authentication method.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AkhOthbg-aU/SwAHOYMQCOI/AAAAAAAAADo/5fVtEl8DZjU/s1600-h/1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 251px;" src="http://4.bp.blogspot.com/_AkhOthbg-aU/SwAHOYMQCOI/AAAAAAAAADo/5fVtEl8DZjU/s320/1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404327496437991650" /&gt;&lt;/a&gt;&lt;br /&gt;And completely install it and restart your computer. First of all you should add the msysgit path for this system. Tortoisegit gets the git options from msysgit. Right click on your desktop and go to settings,&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/SwAI69_rKjI/AAAAAAAAADw/kHOOqeZMq8A/s1600-h/Tortoisegit1.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 317px; height: 271px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/SwAI69_rKjI/AAAAAAAAADw/kHOOqeZMq8A/s320/Tortoisegit1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404329362011662898" /&gt;&lt;/a&gt;Set the path to the bin of the msysgit.&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_AkhOthbg-aU/SwAJ1UcsE0I/AAAAAAAAAD4/y21hxqSW5fA/s1600-h/Tortoisegit2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 214px;" src="http://4.bp.blogspot.com/_AkhOthbg-aU/SwAJ1UcsE0I/AAAAAAAAAD4/y21hxqSW5fA/s320/Tortoisegit2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404330364471350082" /&gt;&lt;/a&gt; Now setting your authentication on the server should be set. For that TortoiseGit has shipped &lt;b&gt;putty Keygen&lt;/b&gt; for generate keys. But in this case, since we are connecting with a linux server the private keys which generate by putty key gen won't be recognize by the server. Since that you will not recognized correctly at the server end. To avoid this inconvenience you can create ssh keys through ssh-keygen. On your command prompt. &lt;p style="color:red"&gt;Do not use puttyGen in this case to create key pairs. &lt;/p&gt; Go to your account on the windows os(i.e. C:\Documents and Settings\Janaka), check whether there is a folder called ".ssh" if not, create it &lt;b&gt;using command prompts "mkdir .ssh"&lt;/b&gt; command. This is the place we keep your key pairs. keys you generated (id_rsa.pub, id_rsa) copy to this folder. Now follow the usual users adding mechanism on git server.&lt;a href="http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html"&gt;Click here for more info.&lt;/a&gt;&lt;br /&gt;Now you can go to any location on your computer and &lt;b&gt;right click select option git clone... or git zync &lt;/b&gt; you will receive following screen. Put the remote URL as to your git repository. &lt;b&gt;git@192.168.4.90:my_first_repo&lt;/b&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/SwAP0gnk2dI/AAAAAAAAAEA/cBWpcdBoavc/s1600-h/Tortoisegit3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 224px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/SwAP0gnk2dI/AAAAAAAAAEA/cBWpcdBoavc/s320/Tortoisegit3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404336947628136914" /&gt;&lt;/a&gt; It will import the repository to your local folder. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/SwAQZ5LrQGI/AAAAAAAAAEI/LSfZmOIl6nw/s1600-h/Tortoisegit4.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 216px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/SwAQZ5LrQGI/AAAAAAAAAEI/LSfZmOIl6nw/s320/Tortoisegit4.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404337589877162082" /&gt;&lt;/a&gt; Like wise all the operations can be done through GUI. You don't have to type git commands on doing this.&lt;br /&gt;Any comments........???&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-9208679761725090272?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/9208679761725090272/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/windows-tortoisegit-client-for-linux.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/9208679761725090272'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/9208679761725090272'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/windows-tortoisegit-client-for-linux.html' title='Windows TortoiseGit client for a linux Gitosis server'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_AkhOthbg-aU/SwAHOYMQCOI/AAAAAAAAADo/5fVtEl8DZjU/s72-c/1.JPG' height='72' width='72'/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-6170650602103482028</id><published>2009-11-15T04:36:00.000-08:00</published><updated>2009-12-10T23:18:19.350-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='version control'/><category scheme='http://www.blogger.com/atom/ns#' term='Tortoisegit'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh-keygen'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis windows'/><category scheme='http://www.blogger.com/atom/ns#' term='repo'/><category scheme='http://www.blogger.com/atom/ns#' term='.ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis-admin'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis.conf'/><title type='text'>Creating gitosis repository and adding users to projects</title><content type='html'>Cont from, &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html"&gt;&lt;b&gt; Previous post &lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3 style="color:green"&gt;Adding new repo(gitosis.conf)&lt;/h3&gt;&lt;br /&gt;Administrator is the only authenticated user for this (In according to previous posts in my case it's janaka). First administrator can log to the server which runs git.First it is better to add the repository on the conf file. And you can add users for this repository.&lt;pre&gt;janaka@versioncontrol~/gitosis-admin $ vi gitosis.conf&lt;/pre&gt;&lt;br /&gt;Your conf file look like this,&lt;br /&gt;&lt;pre&gt;[gitosis]                  &lt;br /&gt;&lt;br /&gt;[group gitosis-admin]&lt;br /&gt;writable = gitosis-admin&lt;br /&gt;members = janaka@versioncontrol &lt;/pre&gt;&lt;br /&gt;Edit it and add new repo, Now it will looks like,&lt;br /&gt;&lt;pre&gt;[gitosis]                  &lt;br /&gt;&lt;br /&gt;[group gitosis-admin]&lt;br /&gt;writable = gitosis-admin&lt;br /&gt;members = janaka@versioncontrol&lt;br /&gt; &lt;br /&gt;[repo my_first_repo]&lt;br /&gt;gitweb = no&lt;br /&gt;description = This could be my first repo&lt;br /&gt;owner = No one else thats me,&lt;br /&gt;daemon = no&lt;/pre&gt;&lt;br /&gt;&lt;h3 style="color:green"&gt;Creating a user group&lt;/h3&gt;&lt;br /&gt;Your conf file look like this,&lt;br /&gt;&lt;pre&gt;[gitosis]                  &lt;br /&gt;&lt;br /&gt;[group gitosis-admin]&lt;br /&gt;writable = gitosis-admin&lt;br /&gt;members = janaka@versioncontrol &lt;br /&gt;&lt;br /&gt;[repo my_first_repo]&lt;br /&gt;gitweb = no&lt;br /&gt;description = This could be my first repo&lt;br /&gt;owner = No one else thats me,&lt;br /&gt;daemon = no&lt;/pre&gt;&lt;br /&gt;Edit this file and add new group,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[gitosis]                  &lt;br /&gt;&lt;br /&gt;[group gitosis-admin]&lt;br /&gt;writable = gitosis-admin&lt;br /&gt;members = janaka@versioncontrol&lt;br /&gt;&lt;br /&gt;[group my_users]&lt;br /&gt;writable = my_first_repo&lt;br /&gt;members = janaka@versioncontrol &lt;span style="font-style:italic;"&gt;gituser1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[repo my_first_repo]&lt;br /&gt;gitweb = no&lt;br /&gt;description = This could be my first repo&lt;br /&gt;owner = No one else thats me,&lt;br /&gt;daemon = no&lt;/pre&gt;&lt;br /&gt;gituser1 is the newly added user, his key is named as gituser1.pub on keydir/ directory.&lt;br /&gt;Now you should add this changed gitosis.conf file and update gitosis-admin repository. You can do it by executing following commands.&lt;pre&gt;janaka@versioncontrol~/gitosis-admin$ git add gitosis.conf&lt;br /&gt;janaka@versioncontrol~/gitosis-admin$ git commit -m "Added new repo on conf file"&lt;br /&gt;janaka@versioncontrol~/gitosis-admin$ git push&lt;/pre&gt;&lt;br /&gt;Then you can create the directory you want and create physical repository.&lt;br /&gt;&lt;h3 style="color:green"&gt;Creating new repository&lt;/h3&gt;&lt;br /&gt; Create a directory with naming it on your wish.&lt;pre&gt;janaka@versioncontrol~$ mkdir my_first_repo&lt;/pre&gt; Now go into it, &lt;dev style="color:red"&gt;Don't forget to add some files before initialize this repo. Otherwise it will not be added as a repository, &lt;/dev&gt;&lt;pre&gt;janaka@versioncontrol/my_first_repo~$ touch readme&lt;/pre&gt; then follow the given commands to initialize the repository,&lt;pre&gt;cd my_first_repo&lt;br /&gt;git init&lt;br /&gt;git remote add origin git@192.168.4.90:my_first_repo.git&lt;br /&gt;git add .&lt;br /&gt;git commit -m "Hai buddies, we added my_first_repo"&lt;br /&gt;git push origin master:refs/heads/master&lt;/pre&gt; 192.168.4.90-is the server which runs git on it. Now the new repository is created.&lt;br /&gt;This is it, now gituser1 can use the my_first_repo repository. You can check on client machine, &lt;pre&gt;git clone git@192.168.4.90:my_first_repo&lt;/pre&gt;&lt;br /&gt;On windows client side, If you'r only using command prompt, why don't you go for TortoiseGit to make life easier. TortoiseGit is a graphical tool to access git repository. Follow &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/windows-tortoisegit-client-for-linux.html"&gt;&lt;h3&gt;"Graphical controls for Git windows clients" &lt;/h3&gt;&lt;/a&gt; link and study it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-6170650602103482028?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/6170650602103482028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/creating-gitosis-repository-and-adding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6170650602103482028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6170650602103482028'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/creating-gitosis-repository-and-adding.html' title='Creating gitosis repository and adding users to projects'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-548688402754022516</id><published>2009-11-14T22:06:00.001-08:00</published><updated>2010-03-11T15:08:04.694-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh keys'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis'/><category scheme='http://www.blogger.com/atom/ns#' term='git ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='repository'/><category scheme='http://www.blogger.com/atom/ns#' term='repo'/><category scheme='http://www.blogger.com/atom/ns#' term='.ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis-admin'/><category scheme='http://www.blogger.com/atom/ns#' term='msysgit'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis.conf'/><title type='text'>(Tortoisegit + Gitosis + msysgit) configuring - Adding windows users and creating repo</title><content type='html'>Cont. from &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/setting-up-gitosisversion-control.html"&gt; previous post &lt;/a&gt;&lt;br /&gt;Now you are ready to add users to the server. &lt;br /&gt;It is not that much hard to add ubuntu users.&lt;br /&gt;You just have to install git-core and by adding keys to the key directory. You can add users. If you are a windows user you have to do some installations. There are few ways to access repositories as windows user. &lt;br /&gt;&lt;h3 style="color:green"&gt;Clients using who use command prompt&lt;/h3&gt;&lt;br /&gt;First you should download msysgit from&lt;a href="http://code.google.com/p/msysgit/downloads/list"&gt; here&lt;/a&gt; and run the exe. Assume you downloaded the full version.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/Sv-gWDRpB7I/AAAAAAAAADA/67dDFvzgDC4/s1600-h/msysgit1.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 172px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/Sv-gWDRpB7I/AAAAAAAAADA/67dDFvzgDC4/s320/msysgit1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404214378564749234" /&gt;&lt;/a&gt; &lt;br /&gt;Give the path as your wish.&lt;br /&gt;To run git commands at anywhere from your command prompt, define a path variable on environment variables &lt;b&gt;Right Click on My Computer =&gt; Properties =&gt; Advanced =&gt; Environemnt Variables =&gt; Edit or New &lt;/b&gt; give the variable name as "PATH", and variable value "C:\msysgit\msysgit\bin", the bin folder of the msysgit installed. And add the "C:\msysgit\msysgit\mingw\bin" path also, that means, variable value will looks like, "C:\msysgit\msysgit\bin;C:\msysgit\msysgit\mingw\bin" &lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_AkhOthbg-aU/Sv-miRL8yXI/AAAAAAAAADY/H-qMBhjOCFQ/s1600-h/msysgit2.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 306px; height: 320px;" src="http://3.bp.blogspot.com/_AkhOthbg-aU/Sv-miRL8yXI/AAAAAAAAADY/H-qMBhjOCFQ/s320/msysgit2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404221185527171442" /&gt;&lt;/a&gt;&lt;br /&gt;Then go to &lt;b&gt;start =&gt; run =&gt; cmd &lt;/b&gt; type git and press enter. You will get result like,&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_AkhOthbg-aU/Sv-nNP3XnBI/AAAAAAAAADg/Bm9-xngK-tA/s1600-h/msysgit3.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 275px;" src="http://1.bp.blogspot.com/_AkhOthbg-aU/Sv-nNP3XnBI/AAAAAAAAADg/Bm9-xngK-tA/s320/msysgit3.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5404221923906788370" /&gt;&lt;/a&gt;&lt;br /&gt;Now you are ready to use git.&lt;br /&gt;&lt;h3 style="color:green"&gt;Adding user &lt;/h3&gt;&lt;br /&gt;First of all you have to create a key pair for your self. Get the command prompt and navigate to the msysgit folder to create .ssh directory. &lt;br /&gt;&lt;pre&gt;C:\msysgit\msysgit\&amp;gt; mkdir .ssh&lt;/pre&gt;&lt;p style="color:red"&gt; You are not allowed to create folders beginning with "." by right click =&gt; New =&gt; folder. So that it should be created this way.&lt;/p&gt;Now navigate into the .ssh folder. We are going to create key pair.&lt;br /&gt;&lt;pre&gt;C:\msysgit\msysgit\.ssh&amp;gt; ssh-keygen &lt;/pre&gt; give id_rsa for the key name.&lt;br /&gt;Following result will be shown.&lt;br /&gt;&lt;pre&gt;C:\msysgit\msysgit\.ssh&amp;gt;ssh-keygen&lt;br /&gt;Generating public/private rsa key pair.&lt;br /&gt;Enter file in which to save the key (//.ssh/id_rsa): id_rsa&lt;br /&gt;Enter passphrase (empty for no passphrase):&lt;br /&gt;Enter same passphrase again:&lt;br /&gt;Your identification has been saved in id_rsa.&lt;br /&gt;Your public key has been saved in id_rsa.pub.&lt;br /&gt;The key fingerprint is:&lt;br /&gt;92:0c:83:16:16:14:04:51:30:42:da:5d:df:fd:fb:15 Janaka@XPWINDOWS7&lt;/pre&gt;&lt;br /&gt;Now you need to transfer the public key to the server where your gitosis administrator belongs. With previous posts, you might remember my username at version control is janaka. Following command will carry your key to that server's keydir directory.On  my command prompt,&lt;br /&gt;&lt;pre&gt;C:\msysgit\msysgit\.ssh&amp;gt;scp id_rsa.pub janaka@192.168.4.90:gitosis-admin/keydir/gituser1.pub&lt;/pre&gt; (Assume 192.168.4.90 is the server that installed gitosis) using this command or anyhow you can copy your key to keydir/ directory. &lt;br /&gt;Don't change the names of the public and private keys of the(id_rsa,id_rsa.pub) on your local machine. Keep it as it is on .ssh folder.&lt;br /&gt;Now the administrators part,&lt;br /&gt;  Admin should allow this key to copy to server and rename it. When renaming, keep remember to give the same name that you are planing to add in .conf file. If new user is gituser1, then public key should be renamed to gituser1.pub on server. &lt;br /&gt;On the server, admin should enter the this user into a user list of gitosis.conf file. You can see how to create new repository and work groups in &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/creating-gitosis-repository-and-adding.html"&gt;&lt;b&gt; this link. &lt;/b&gt;&lt;/a&gt;&lt;br /&gt;On gitosis.conf,&lt;br /&gt;&lt;pre&gt;[group myteam]&lt;br /&gt;members = gituser1&lt;br /&gt;writable = my_current_project&lt;/pre&gt; member should be the name of the added public key(without .pub) and writable is the repository which are writable by this team. Group name is myteam.&lt;br /&gt;Now administrator should add these key file and changed gitosis.conf file and push it to git user. Actually administrator just cloning the gitosis-admin part from the "git" user and after changes pushing it back. Here are the commands for admin,&lt;br /&gt;&lt;pre&gt;janaka@versioncontrol~$ git clone git@192.168.4.90:gitosis-admin&lt;br /&gt;janaka@versioncontrol~$ cd gitosis-admin&lt;br /&gt;janaka@versioncontrol~/gitosis-admin $ git add keydir/gituser1.pub&lt;br /&gt;janaka@versioncontrol~/gitosis-admin $ git add gitosis.conf&lt;br /&gt;janaka@versioncontrol~/gitosis-admin $ git commit -a -m "Added gituser1 as a new user"&lt;br /&gt;janaka@versioncontrol~/gitosis-admin $ git push&lt;/pre&gt;Now on the client side (gituser1) can check whether he had successfully added. On command prompt he can try to add a clone.&lt;pre&gt; &lt;br /&gt;C:\MyFolder&amp;gt; git clone git@192.168.4.90:my_current_project&lt;/pre&gt;&lt;br /&gt;If it imported my_current_project folder without asking any password for git user it is successfully worked. Issued can be occured,&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ask a password for git user- your keys are not matching recreate the key pairs and install keys accurately.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Giving no permissions error- You have not been added successfully for that group on gitosis.conf file. Reedit the conf file.&lt;/li&gt; &lt;/ul&gt;&lt;br /&gt;&lt;a href="http://theswarmintelligence.blogspot.com/2009/11/windows-tortoisegit-client-for-linux.html"&gt;&lt;h3 style="color:green"&gt;Widows clients using Gitosis&lt;/h3&gt;&lt;/a&gt;&lt;a href="http://theswarmintelligence.blogspot.com/2009/11/windows-tortoisegit-client-for-linux.html"&gt;&lt;b&gt;You can find post regarding this from here&lt;/a&gt;&lt;/b&gt;&lt;br/&gt;&lt;br /&gt;&lt;a href="http://theswarmintelligence.blogspot.com/2009/11/creating-gitosis-repository-and-adding.html"&gt;&lt;h3&gt;Creating new repository and adding permission groups &lt;/h3&gt;&lt;/a&gt; will be discussed &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/creating-gitosis-repository-and-adding.html"&gt;here &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-548688402754022516?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/548688402754022516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/548688402754022516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/548688402754022516'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html' title='(Tortoisegit + Gitosis + msysgit) configuring - Adding windows users and creating repo'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_AkhOthbg-aU/Sv-gWDRpB7I/AAAAAAAAADA/67dDFvzgDC4/s72-c/msysgit1.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-3507482718595221161</id><published>2009-11-14T18:30:00.000-08:00</published><updated>2009-11-15T06:39:03.926-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux version control'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh-keygen'/><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis'/><category scheme='http://www.blogger.com/atom/ns#' term='gitosis windows'/><category scheme='http://www.blogger.com/atom/ns#' term='git-core'/><category scheme='http://www.blogger.com/atom/ns#' term='git ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='tortoise'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><title type='text'>Setting up Gitosis(version control system) on Linux server and adding windows clients</title><content type='html'>Git is a kind of a version control system which allows users to keep their project information safely in repositories. In this case, I will be using Gitosis for this setup, Gitosis is a tool written for Git that helps in the setup of secure access controlled repositories. It will manage multiple repositories under one user account on the host machine. Using SSH keys to identify users, your repositories will be securely accessed and controlled. One large advantage to Gitosis is that your users will not need shell accounts on the machine to access repositories, they will however speak to a singular account what will not allow arbitrary commands. Now let's see how gitosis can install in to your Ubuntu server.&lt;br /&gt;&lt;h3 style="color:green"&gt; Installing Gitosis &lt;/h3&gt;&lt;br /&gt;First of all you should have installed Git.&lt;br /&gt;&lt;pre&gt;sudo apt-get install git-core&lt;/pre&gt;&lt;br /&gt;By cloning the gitosis directory from "eagain.net" you will get the gitosis directory on your home page. Follow these lines to do it,&lt;br /&gt;&lt;pre&gt;   cd ~/&lt;br /&gt;   git clone git://eagain.net/gitosis.git&lt;/pre&gt;&lt;br /&gt;Now you better move that folder to /usr/local&lt;br /&gt;&lt;pre&gt;   sudo mv gitosis/ /usr/local&lt;/pre&gt;&lt;br /&gt;Now go to Gitosis folder.&lt;br /&gt;&lt;pre&gt;   cd /usr/local/gitosis/&lt;/pre&gt;&lt;br /&gt;If you haven't installed python in your computer get it installed.&lt;br /&gt;&lt;pre&gt;   sudo apt-get install python-setuptools&lt;/pre&gt;&lt;br /&gt;Then, you can run the setup.py file which is in this directory.&lt;br /&gt;&lt;pre&gt;   sudo python setup.py install&lt;/pre&gt;&lt;br /&gt;Now you are successfully installed Gitosis on your Linux server.&lt;br /&gt;Next, you have to create user called "git". "git" is the repositories holding real user. It creates in a way that users to identify through ssh-keys. Anyone can't login through entering password.&lt;br /&gt; &lt;pre&gt; sudo adduser \&lt;br /&gt;    --system \&lt;br /&gt;    --shell /bin/sh \&lt;br /&gt;    --gecos 'git version control' \&lt;br /&gt;    --group \&lt;br /&gt;    --disabled-password \&lt;br /&gt;    --home /home/git \&lt;br /&gt;    git  &lt;/pre&gt;&lt;br /&gt;&lt;h3 style="color:green"&gt;gitosis-admin&lt;/h3&gt;&lt;br /&gt;Now let's initialize the gitosis and begin with adding an administrator to git repository. As a convention we used to create administrator account on the same server/computer. Because administrator has the super power of creating new repository, users and so on.&lt;br /&gt;To identify administrator, you need to create create ssh key and initialize gitosis with that key. So you will add as the administrator.(janaka is the user, versioncontrol is the name of the linux server)&lt;br /&gt;&lt;pre&gt;janaka@versioncontrol~$ ssh-keygen -t rsa&lt;/pre&gt;&lt;br /&gt;Keep blank for the parse phrase of the key. Found this generated key pair at /home/janaka/.ssh/ as id_rsa(private key) and id_rsa.pub(public key). &lt;br /&gt;Since janaka@versioncontrol wants to the admin and versioncontrol is the git server itself. You can directly initialize with this key.&lt;br /&gt;&lt;pre&gt;sudo -H -u git gitosis-init &lt; /home/janaka/.ssh/id_rsa.pub &lt;/pre&gt;&lt;br /&gt;If your admin wants to be another user, generate this kind of key pair and copy it some where at versioncontrol(i.e. /tmp/id_rsa.pub). In this case,&lt;br /&gt;&lt;pre&gt;sudo -H -u git gitosis-init &lt; /tmp/id_rsa.pub &lt;/pre&gt;&lt;br /&gt;If you are success then it will give,&lt;br /&gt;&lt;pre&gt;Initialized empty Git repository in ./&lt;br /&gt;Initialized empty Git repository in ./&lt;/pre&gt;&lt;br /&gt;Congratz, Now you are the gitosis-admin....!!!!&lt;br /&gt;Now you need to make executable the post-update hook. Run following command.&lt;br /&gt;&lt;pre&gt;sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update&lt;/pre&gt;&lt;br /&gt;Its ready to take your admin clone..............&lt;br /&gt;&lt;pre&gt;git clone git@YOUR_SERVER_HOSTNAME:gitosis-admin.git&lt;/pre&gt;&lt;br /&gt;In my case YOUR_SERVER_NAME is "localhost". If you (admin) from another host, give the ip of the linux server/machine(versioncontrol).&lt;br /&gt;Now have go to cloned gitosis-admin directory.&lt;br /&gt;&lt;pre&gt;janaka@versioncontrol~$ cd gitosis-admin &lt;/pre&gt;&lt;br /&gt;Have a look at the list,&lt;br /&gt;You will found "gitosis.conf" file and "keydir" directory.&lt;br /&gt;Have a look at the gitosis.conf file, &lt;pre&gt;vi gitosis.conf&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt; [gitosis]                  &lt;br /&gt;&lt;br /&gt;[group gitosis-admin]&lt;br /&gt;writable = gitosis-admin&lt;br /&gt;members = janaka@versioncontrol&lt;/pre&gt;&lt;br /&gt;Now lets see how to add users and creating new repositories.&lt;br /&gt;Since this post getting longer, Follow Next post. &lt;a href="http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html"&gt;click here&lt;/a&gt;&lt;br /&gt;&lt;a href="http://theswarmintelligence.blogspot.com/2009/11/gitosis-configuring-adding-windows.html"&gt;&lt;h3&gt;Adding Windows users to the gitosis and Many more&lt;/h3&gt;&lt;/a&gt;&lt;span style="font-style:italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-3507482718595221161?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/3507482718595221161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/setting-up-gitosisversion-control.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/3507482718595221161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/3507482718595221161'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/setting-up-gitosisversion-control.html' title='Setting up Gitosis(version control system) on Linux server and adding windows clients'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-6326773935013871701</id><published>2009-11-12T17:17:00.001-08:00</published><updated>2009-11-12T17:17:57.284-08:00</updated><title type='text'>Change Locale ubuntu server UTF-8 to ISO-8859-1</title><content type='html'>I was trying to get some sinhala words from database using java. It was nicely working at on windows. When I moved java program to ubuntu server, it returned some unexpected characters. &lt;br /&gt;That happened because of ubuntu using itz default Locale as UTF-8. But some characters at UTF-8 doesn't support for it. Since that it can't give the real output. Since that you should update your Locale for "ISO-8859-1".&lt;br /&gt;To do that you can update your Locale using&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    locale-gen en_GB&lt;br /&gt;    update-locale LANG=en_GB.ISO-8859-1&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then it you won't be getting any bad character expect you entered ones.&lt;br /&gt;Have fun on developing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-6326773935013871701?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/6326773935013871701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/change-locale-ubuntu-server-utf-8-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6326773935013871701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/6326773935013871701'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/change-locale-ubuntu-server-utf-8-to.html' title='Change Locale ubuntu server UTF-8 to ISO-8859-1'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-4837596610245104856</id><published>2009-11-12T17:16:00.002-08:00</published><updated>2009-11-12T17:17:26.752-08:00</updated><title type='text'>Have fun with jQuery - Tutorial 2</title><content type='html'>As we discussed earlier, jQuery is a powerful javascript API on developing web applications. Here lets consider, how jQuery actions can be applied on specified elements.&lt;br /&gt;&lt;br /&gt;Suppose you have got two buttons which we call ButtonA and ButtonB, &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script type="text/javascript" src="jquery-1.3.1.min.js"&amp;gt; &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;script type="text/javascript"&amp;gt;&lt;br /&gt;   $(document).ready(function(){&lt;br /&gt;     $("#btnA").click(function(event){       &lt;br /&gt;      alert("Clicked ButtonA...!!!");     &lt;br /&gt;     });     &lt;br /&gt;     $("#btnB").click(function(event){      &lt;br /&gt;      alert("Clicked ButtonB...!!!")     &lt;br /&gt;     });  &lt;br /&gt;   });&lt;br /&gt;   &lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;lt;p&amp;gt;&lt;br /&gt;   &amp;lt;input id="btnA" value="ButtonA" type="button"&amp;gt;&lt;br /&gt;   &amp;lt;input id="btnB" value="ButtonB" type="button"&amp;gt;&lt;br /&gt; &amp;lt;/p&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;When you click on Buttons, it will pop up two different alert boxes as we defined in script.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hTeRLvFXp-A/SvYxnhnIleI/AAAAAAAAABw/nsh6r0BMjV8/s1600-h/Click1.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 280px; height: 210px;" src="http://3.bp.blogspot.com/_hTeRLvFXp-A/SvYxnhnIleI/AAAAAAAAABw/nsh6r0BMjV8/s320/Click1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5401559358184658402" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_hTeRLvFXp-A/SvYwylU_gjI/AAAAAAAAABo/vACGdII4zyI/s1600-h/Click2.JPG"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 280px; height: 210px;" src="http://2.bp.blogspot.com/_hTeRLvFXp-A/SvYwylU_gjI/AAAAAAAAABo/vACGdII4zyI/s320/Click2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5401558448649241138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That is how we define actions for a given element. To make it easy to understand, I displayed just popping up an alert box. It is useful in various applications.&lt;br /&gt;&lt;br /&gt;Now lets see, how jQuery can be used with styling elements. First you better create some style classes like I have mentioned below.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;  &amp;lt;style type="text/css"&amp;gt;&lt;br /&gt;    label.test { font-style: italic; }&lt;br /&gt;    label.test2 { color:#FF0033; }&lt;br /&gt;  &amp;lt;/style&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Very easily you can apply your style class to an element using ELEMENT.addClass("CLASSNAME") function. If you want to remove it, you can call ELEMENT.removeClass("CLASSNAME") funciton. jQuery call for applying or removing class will receive the priority.&lt;br /&gt;Example,&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     &amp;lt;script type="text/javascript" src="jquery.js"&amp;gt; &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"&amp;gt;    &lt;br /&gt;  $(document).ready(function(){&lt;br /&gt;   $("#myLabel").addClass("test"); &lt;br /&gt;  });&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;  &lt;br /&gt;    &amp;lt;h1&amp;gt;&lt;br /&gt;   &amp;lt;label id="myLabel"&amp;gt;&lt;br /&gt;       Testing jQuery&lt;br /&gt;      &amp;lt;/label&amp;gt;&lt;br /&gt;    &amp;lt;/h1&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will Present,&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hTeRLvFXp-A/SvZANg_8DTI/AAAAAAAAAB4/QDcEU3ZLhFc/s1600-h/TestJQ.JPG"&gt;&lt;img style="float:center; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 262px; height: 102px;" src="http://3.bp.blogspot.com/_hTeRLvFXp-A/SvZANg_8DTI/AAAAAAAAAB4/QDcEU3ZLhFc/s320/TestJQ.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5401575404018076978" /&gt;&lt;/a&gt;&lt;br /&gt;Now Lets remove an applied class and add another class,&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;     &amp;lt;script type="text/javascript" src="jquery.js"&amp;gt; &amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;script type="text/javascript"&amp;gt;    &lt;br /&gt;  $(document).ready(function(){&lt;br /&gt;   $("#myLabel").removeClass("test"); &lt;br /&gt;                        $("#myLabel").addClass("test2"); &lt;br /&gt;  });&lt;br /&gt; &amp;lt;/script&amp;gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;br /&gt;    &amp;lt;body&amp;gt;  &lt;br /&gt;    &amp;lt;h1&amp;gt;&lt;br /&gt;   &amp;lt;label class="test" id="myLabel"&amp;gt;&lt;br /&gt;       Testing jQuery&lt;br /&gt;      &amp;lt;/label&amp;gt;&lt;br /&gt;    &amp;lt;/h1&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now it will present,&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_hTeRLvFXp-A/SvZBcun_nwI/AAAAAAAAACA/Gcy0lzkXcXY/s1600-h/TestJQ2.JPG"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 261px; height: 89px;" src="http://2.bp.blogspot.com/_hTeRLvFXp-A/SvZBcun_nwI/AAAAAAAAACA/Gcy0lzkXcXY/s320/TestJQ2.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5401576764885409538" /&gt;&lt;/a&gt;&lt;br /&gt;Many more interesting things are coming.....&lt;br /&gt;KIT.....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-4837596610245104856?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/4837596610245104856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/have-fun-with-jquery-tutorial-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/4837596610245104856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/4837596610245104856'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/have-fun-with-jquery-tutorial-2.html' title='Have fun with jQuery - Tutorial 2'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hTeRLvFXp-A/SvYxnhnIleI/AAAAAAAAABw/nsh6r0BMjV8/s72-c/Click1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-4801252033692893507</id><published>2009-11-12T17:16:00.001-08:00</published><updated>2009-11-12T17:16:53.758-08:00</updated><title type='text'>Have fun with jQuery  - Tutorial 1</title><content type='html'>jQuery is a simple javascript API which can be used in many ways to improve your web application or Web site.&lt;br /&gt;First of all you have to download the jQuery javascript file from &lt;a href="http://jqueryjs.googlecode.com/files/jquery-1.3.1.min.js"&gt; here (jquery-1.3.1.min.js).&lt;/a&gt; Then you can add it to your project like this way,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt; &amp;lt;script type="text/javascript" src="jquery-1.3.1.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Else you can use refer this link "http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js" on development.&lt;br /&gt;Then you will import js file this manner, &lt;br /&gt;&lt;pre&gt; &amp;lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now your are ready to start develop with jQuery.&lt;br /&gt;Let's begin with a simple example. &lt;br /&gt;Create a simple html file which is having a html component. You can use any component. In this case, Let's get a &amp;lt;a&amp;gt; tag. It can be a button, submit, label or any thing.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;  &amp;lt;head&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;jquery.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;      &lt;br /&gt;    &amp;lt;/script&amp;gt;&lt;br /&gt;  &amp;lt;/head&amp;gt;&lt;br /&gt;&lt;br /&gt;  &amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;a href=&amp;quot;http://www.google.com/&amp;quot;&amp;gt;My test link&amp;lt;/a&amp;gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;We are going to use ready status of the page loading. Since that, we used to write as following simple code,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt; $(document).ready(function(){&lt;br /&gt;   // Your code content here&lt;br /&gt; });&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;Assume you want to give a pop up when you clicked on the "My test link". It is very simple.&lt;br /&gt;&lt;pre&gt; $(document).ready(function(){&lt;br /&gt;   $("a").click(function(event){&lt;br /&gt;     alert("We are going to visit google....!!!");&lt;br /&gt;   });&lt;br /&gt; });&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;It will give you a popup and will direct to google.com.&lt;br /&gt;&lt;br /&gt;Let's assume that you don't need to visit to google.com. Then there is a jQuery functionality for disable default functions of the element. What you have to do is add preventDefault() method to onclick function event. It can be achieved easily following way.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt; $(document).ready(function(){&lt;br /&gt;   $("a").click(function(event){&lt;br /&gt;     alert("We are going to visit google....!!!");&lt;br /&gt;     event.preventDefault();&lt;br /&gt;   });&lt;br /&gt; });&lt;br /&gt;&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now you will receive the popup, but you will not forward to google.com.&lt;br /&gt;According to above code, it will be applied for all places where &amp;lt;a&amp;gt; tags are available. It is possible to write this kind of event handling and many more things using jQuery. Let's meet on next tutorial to see how the things can be applied for specified (specified by the id) elements.&lt;br /&gt;Thank you.&lt;br /&gt;See you soon...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-4801252033692893507?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/4801252033692893507/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/have-fun-with-jquery-tutorial-1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/4801252033692893507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/4801252033692893507'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/have-fun-with-jquery-tutorial-1.html' title='Have fun with jQuery  - Tutorial 1'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-2151055945227626461</id><published>2009-11-12T17:15:00.002-08:00</published><updated>2009-11-12T17:16:14.474-08:00</updated><title type='text'>Closure Tools</title><content type='html'>&lt;div class='post-header-line-1'&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class='post-body'&gt;&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s1600-h/closure.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 72px; height: 72px; border:0" src="http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s200/closure.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5400432335439902754" /&gt;&lt;/a&gt;Millions of Google users worldwide use JavaScript-intensive applications such as &lt;a href="http://mail.google.com/" id="nlv9" title="Gmail"&gt;Gmail&lt;/a&gt;, &lt;a href="http://docs.google.com/" id="zq_3" title="Google Docs"&gt;Google Docs&lt;/a&gt;, and &lt;a href="http://maps.google.com/" id="lh23" title="Google Maps"&gt;Google Maps&lt;/a&gt;. Like developers everywhere, Googlers want great web apps to be easier to create, so we've built many tools to help us develop these (and many other) apps. We're happy to announce the open sourcing of these tools, and proud to make them available to the web development community.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Compiler&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/closure/compiler" title="Closure Compiler"&gt;Closure Compiler&lt;/a&gt; is a JavaScript optimizer that compiles web apps down into compact, high-performance JavaScript code. The compiler removes dead code, then rewrites and minimizes what's left so that it will run fast on browsers' JavaScript engines. The compiler also checks syntax, variable references, and types, and warns about other common JavaScript pitfalls. These checks and optimizations help you write apps that are less buggy and easier to maintain. You can use the compiler with &lt;a href="http://code.google.com/closure/compiler/docs/inspector.html" title="Closure Inspector"&gt;Closure Inspector&lt;/a&gt;, a Firebug extension that makes debugging the obfuscated code almost as easy as debugging the human-readable source. &lt;br /&gt;&lt;br /&gt;Because JavaScript developers are a diverse bunch, we've set up a number of ways to run the Closure Compiler. We've open-sourced a&amp;nbsp;&lt;a href="http://code.google.com/p/closure-compiler/downloads/list" title="command-line tool"&gt;command-line tool&lt;/a&gt;. We've created a&amp;nbsp;&lt;a href="http://closure-compiler.appspot.com/" title="web application"&gt;web application&lt;/a&gt;&amp;nbsp;that accepts your code for compilation through a text box or a RESTful API. We are also offering a Firefox extension that you can use with &lt;a href="http://code.google.com/speed/page-speed/download.html" title="Page Speed"&gt;Page Speed&lt;/a&gt; to conveniently see the performance benefits for your web pages.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Library&lt;/b&gt;&lt;br /&gt;&lt;a href="http://code.google.com/closure/library" id="qnzg" title="Closure Library"&gt;Closure Library&lt;/a&gt;&amp;nbsp;is a broad, well-tested, modular, and cross-browser JavaScript library. Web developers can pull just what they need from a wide set of reusable UI widgets and controls, as well as lower-level utilities for the DOM, server communication, animation, data structures, unit testing, rich-text editing, and much, much more. (Seriously. Check&amp;nbsp;&lt;a href="http://closure-library.googlecode.com/svn/trunk/closure/goog/docs/index.html" id="q11v" title="the docs"&gt;the docs&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;JavaScript lacks a standard class library like the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Standard_Template_Library" id="novt" title="STL"&gt;STL&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Java_Development_Kit" id="lrab" title="JDK"&gt;JDK&lt;/a&gt;. At Google, Closure Library serves as our "standard JavaScript library" for creating large, complex web applications. It's purposely server-agnostic and intended for use with the Closure Compiler. You can make your project big and complex (with namespacing and type checking), yet small and fast over the wire (with compilation). The Closure Library provides clean utilities for common tasks so that you spend your time writing your app rather than writing utilities and browser abstractions.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Closure Templates&lt;/b&gt; &lt;br /&gt;&lt;a href="http://code.google.com/closure/templates" id="j_2h" title="Closure Templates"&gt;Closure Templates&lt;/a&gt;&amp;nbsp;grew out of a desire for web templates that are precompiled to efficient JavaScript. &amp;nbsp;Closure Templates have a simple syntax that is natural for programmers. &amp;nbsp;Unlike traditional templating systems, you can think of Closure Templates as small components that you compose to form your user interface, instead of having to create one big template per page.&lt;br /&gt;&lt;br /&gt;Closure Templates are implemented for both JavaScript and Java, so you can use the same templates both on the server and client side.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Closure Compiler, Closure Library, Closure Templates, and Closure Inspector all started as &lt;a href="http://googleblog.blogspot.com/2006/05/googles-20-percent-time-in-action.html" id="ghae" title="20% projects"&gt;20% projects&lt;/a&gt;&amp;nbsp;and hundreds of Googlers have contributed thousands of patches. Today, each Closure Tool has grown to be a key part of the JavaScript infrastructure behind web apps at Google. &amp;nbsp;That's why we're particularly excited (and humbled) to open source them to encourage and support web development outside Google. We want to hear what you think, but more importantly, we want to see what you make. So have at it and have fun!&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;bold&gt;&lt;br /&gt;Reference: &lt;a href="http://googlecode.blogspot.com/2009/11/introducing-closure-tools.html"&gt; Introducing Closure Tools&lt;/a&gt;&lt;/bold&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-2151055945227626461?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/2151055945227626461/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/closure-tools.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/2151055945227626461'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/2151055945227626461'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/closure-tools.html' title='Closure Tools'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_EuCTzLdp3vE/SvIwmKttuCI/AAAAAAAAC1U/h9AdUMdkEO4/s72-c/closure.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-8734291997222528990</id><published>2009-11-12T17:15:00.001-08:00</published><updated>2009-11-12T17:15:43.520-08:00</updated><title type='text'>Speed up your web browsing</title><content type='html'>Google has introduced an application called PAGE SPEED which increase your browsing speed. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Best Practices&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/speed/page-speed/docs/caching.html"&gt;Optimize caching&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/speed/page-speed/docs/rtt.html"&gt;Minimize round trip times&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/speed/page-speed/docs/request.html"&gt;Minimize request size&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/speed/page-speed/docs/payload.html"&gt;Minimize payload size&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://code.google.com/speed/page-speed/docs/rendering.html"&gt;Optimize browser rendering&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;If you have got installed &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1843"&gt; firebug &lt;/a&gt; with your firefox browser, you can directly downloaded and installed &lt;a href="http://code.google.com/speed/page-speed/download.html"&gt; Page &lt;/a&gt;Speed with this &lt;a href="http://code.google.com/speed/page-speed/download.html"&gt;link&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://code.google.com/speed/page-speed/download.html"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 203px;" src="http://4.bp.blogspot.com/_hTeRLvFXp-A/SvOfwADGwXI/AAAAAAAAABQ/71eSAL5Mz-w/s320/page+speed.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5400836025142919538" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-8734291997222528990?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/8734291997222528990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/speed-up-your-web-browsing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/8734291997222528990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/8734291997222528990'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/speed-up-your-web-browsing.html' title='Speed up your web browsing'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hTeRLvFXp-A/SvOfwADGwXI/AAAAAAAAABQ/71eSAL5Mz-w/s72-c/page+speed.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-5982267393461205225</id><published>2009-11-12T17:12:00.000-08:00</published><updated>2009-11-12T17:15:14.029-08:00</updated><title type='text'>Microcontrollers...............</title><content type='html'>History..........&lt;br /&gt;&lt;br /&gt;The first microcontroller was the Intel 8048, released in 1976.&lt;br /&gt;&lt;br /&gt;The popularity of microcontrollers increased when EEPROM memory was incorporated to replace one time programmable PROM memory. With EEPROM, the development cycle of programming, testing and erasing a part could be repeated many times with the same part until the firmware was debugged and ready for production use.&lt;br /&gt;&lt;br /&gt;Nowadays microcontrollers are low cost and readily available for hobbyists.&lt;br /&gt;&lt;br /&gt;Brief for Microcontrollers..............&lt;br /&gt;A microcontroller (also MCU or µC) is a computer-on-a-chip. It is a type of microprocessor emphasizing high integration, low power consumption, self-sufficiency and cost-effectiveness, in contrast to a general-purpose microprocessor (the kind used in a PC). In addition to the usual arithmetic and logic elements of a general purpose microprocessor, the microcontroller typically integrates additional elements such as read-write memory for data storage, read-only memory, such as flash for code storage, EEPROM for permanent data storage, peripheral devices, and input/output interfaces. At clock speeds of as little as a few MHz or even lower, microcontrollers often operate at very low speed compared to modern day microprocessors, but this is adequate for typical applications. They consume relatively little power (milliwatts), and will generally have the ability to sleep while waiting for an interesting peripheral event such as a button press to wake them up again to do something. Power consumption while sleeping may be just nanowatts, making them ideal for low power and long lasting battery applications.&lt;br /&gt;&lt;br /&gt;Microcontrollers are frequently used in automatically controlled products and devices, such as automobile engine control systems, remote controls, office machines, appliances, power tools, and toys. By reducing the size, cost, and power consumption compared to a design using a separate microprocessor, memory, and input/output devices, microcontrollers make it economical to electronically control many more processes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Secure.....&lt;br /&gt;Maxim's secure microcontrollers encrypt program and data memory, thus preventing unauthorized system access. This memory encryption makes them ideal for applications requiring absolute protection of code and data, such as passwords and PINs.&lt;br /&gt;Battery-Backed Technology "Zeroizes" Internal SRAM Upon Tamper Event&lt;br /&gt;DES/3DES Encryption Prevents External Bus Eavesdropping&lt;br /&gt;&lt;br /&gt;Reference: &lt;a href="http://micro-janaka.blogspot.com/"&gt;My Previous Blog &lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-5982267393461205225?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/5982267393461205225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/microcontrollers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/5982267393461205225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/5982267393461205225'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/11/microcontrollers.html' title='Microcontrollers...............'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-1179198024147224189</id><published>2009-04-16T20:49:00.000-07:00</published><updated>2009-04-16T20:52:54.766-07:00</updated><title type='text'>Problems addressed by using SI</title><content type='html'>Swarm intelligence use to solve lot of problems in the current context. We use Ant colony like context and study them well to apply for problematic situations at the real world.&lt;br /&gt;When the scientists going through the researches on they have came across some useful behaviors to apply solve problems. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;1. Foraging and Optimization&lt;/span&gt;&lt;br /&gt;Usually ants goes to the nearest and most promising food source. They use mechanism to find the shortest and most promising food source by using their own methods. One of them is, two ants go in two ways to find the food sources. The ant which came first is come back to the colony with leaving some pheromone (essence) on its way. Because of that, the ant which is coming next (3rd ant) goes on 1st ants way. When the 2nd ant come back to the colony the 1st ant’s way has laid more pheromone s. Since that other ants go on the path of 1st ant went. So that, it becomes the optimize way to find food.&lt;br /&gt;In computer context we use the above intelligence to create network optimization. Swarm intelligence based network optimization is a very important concept to optimize the networks depends on the feed backs of the messages. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;2. Routing&lt;span style="font-weight:bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Routing is the mechanism to handle the message on switching station. In this case “AntNet” is a developed model of Routing for communication systems using swarm intelligence. There are few more algorithms which developed by using swarm intelligence. But “AntNet” is the most favorite one. &lt;br /&gt;When a colony trying to forage, the pheromone laid by another colony repel to add pheromone. So, that route will not allow foraging this colony. This kind of architecture helps to load balance of a network system. That’s only a one solution to decide routing. Likewise, lots of applications are there to implement efficient Routing systems.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;3. Clustering and Sorting, Larvae and data&lt;/span&gt;&lt;br /&gt;There are lots of optimization methods using Swarm Intelligence. Mainly it has been used Ant Colony Optimization (ACO) and Practical Swarm Optimization (PSO) methods to develop them. &lt;br /&gt;If we take an example on Ant Colony, they use to collect and group their dead bodies in order to keep the colony clean. The scientists studied this and developed clustering methods to apply in real world context.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;4. Division of Labor&lt;/span&gt;&lt;br /&gt;Usually swarm systems are doing their works by Dividing among them to achieve. For example in a honeybee colony, each of the have specialized certain task for each bee. Basically it depends on the age of a bee. But if a particular bee wants to do more tasks, they can do it too.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;5. Cooperative Transport&lt;/span&gt;&lt;br /&gt;This is a very general characteristic of having with all Swarm Systems. For example a single ant can’t bring a little bit bigger food part to the colony. There should be many ants to carry it. All of them get together and bring it to their place. &lt;br /&gt; This technique is uses to create some robots, which are having some huge tasks to do. They make the system, which is a collection of a small part to carry much larger weight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-1179198024147224189?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/1179198024147224189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/04/problems-addressed-by-using-si.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/1179198024147224189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/1179198024147224189'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/04/problems-addressed-by-using-si.html' title='Problems addressed by using SI'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8166433559929166270.post-3308702378124351205</id><published>2009-04-16T20:27:00.000-07:00</published><updated>2009-04-16T21:00:51.061-07:00</updated><title type='text'>What is swarm intelligence?????</title><content type='html'>&lt;meta equiv="Content-Type" content="text/html; charset=utf-8"&gt;&lt;meta name="ProgId" content="Word.Document"&gt;&lt;meta name="Generator" content="Microsoft Word 12"&gt;&lt;meta name="Originator" content="Microsoft Word 12"&gt;&lt;link rel="File-List" href="file:///C:%5CDOCUME%7E1%5CJanaka%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml"&gt;&lt;link rel="themeData" href="file:///C:%5CDOCUME%7E1%5CJanaka%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx"&gt;&lt;link rel="colorSchemeMapping" href="file:///C:%5CDOCUME%7E1%5CJanaka%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:worddocument&gt;   &lt;w:view&gt;Normal&lt;/w:View&gt;   &lt;w:zoom&gt;0&lt;/w:Zoom&gt;   &lt;w:trackmoves/&gt;   &lt;w:trackformatting/&gt;   &lt;w:punctuationkerning/&gt;   &lt;w:validateagainstschemas/&gt;   &lt;w:saveifxmlinvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;   &lt;w:ignoremixedcontent&gt;false&lt;/w:IgnoreMixedContent&gt;   &lt;w:alwaysshowplaceholdertext&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;   &lt;w:donotpromoteqf/&gt;   &lt;w:lidthemeother&gt;EN-US&lt;/w:LidThemeOther&gt;   &lt;w:lidthemeasian&gt;X-NONE&lt;/w:LidThemeAsian&gt;   &lt;w:lidthemecomplexscript&gt;TA&lt;/w:LidThemeComplexScript&gt;   &lt;w:compatibility&gt;    &lt;w:breakwrappedtables/&gt;    &lt;w:snaptogridincell/&gt;    &lt;w:wraptextwithpunct/&gt;    &lt;w:useasianbreakrules/&gt;    &lt;w:dontgrowautofit/&gt;    &lt;w:splitpgbreakandparamark/&gt;    &lt;w:dontvertaligncellwithsp/&gt;    &lt;w:dontbreakconstrainedforcedtables/&gt;    &lt;w:dontvertalignintxbx/&gt;    &lt;w:word11kerningpairs/&gt;    &lt;w:cachedcolbalance/&gt;   &lt;/w:Compatibility&gt;   &lt;w:browserlevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;   &lt;m:mathpr&gt;    &lt;m:mathfont val="Cambria Math"&gt;    &lt;m:brkbin val="before"&gt;    &lt;m:brkbinsub val="--"&gt;    &lt;m:smallfrac val="off"&gt;    &lt;m:dispdef/&gt;    &lt;m:lmargin val="0"&gt;    &lt;m:rmargin val="0"&gt;    &lt;m:defjc val="centerGroup"&gt;    &lt;m:wrapindent val="1440"&gt;    &lt;m:intlim val="subSup"&gt;    &lt;m:narylim val="undOvr"&gt;   &lt;/m:mathPr&gt;&lt;/w:WordDocument&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;  &lt;w:latentstyles deflockedstate="false" defunhidewhenused="true" defsemihidden="true" defqformat="false" defpriority="99" latentstylecount="267"&gt;   &lt;w:lsdexception locked="false" priority="0" semihidden="false" unhidewhenused="false" qformat="true" name="Normal"&gt;   &lt;w:lsdexception locked="false" priority="9" semihidden="false" unhidewhenused="false" qformat="true" name="heading 1"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 2"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 3"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 4"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 5"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 6"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 7"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 8"&gt;   &lt;w:lsdexception locked="false" priority="9" qformat="true" name="heading 9"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 1"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 2"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 3"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 4"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 5"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 6"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 7"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 8"&gt;   &lt;w:lsdexception locked="false" priority="39" name="toc 9"&gt;   &lt;w:lsdexception locked="false" priority="35" qformat="true" name="caption"&gt;   &lt;w:lsdexception locked="false" priority="10" semihidden="false" unhidewhenused="false" qformat="true" name="Title"&gt;   &lt;w:lsdexception locked="false" priority="1" name="Default Paragraph Font"&gt;   &lt;w:lsdexception locked="false" priority="11" semihidden="false" unhidewhenused="false" qformat="true" name="Subtitle"&gt;   &lt;w:lsdexception locked="false" priority="22" semihidden="false" unhidewhenused="false" qformat="true" name="Strong"&gt;   &lt;w:lsdexception locked="false" priority="20" semihidden="false" unhidewhenused="false" qformat="true" name="Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="59" semihidden="false" unhidewhenused="false" name="Table Grid"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Placeholder Text"&gt;   &lt;w:lsdexception locked="false" priority="1" semihidden="false" unhidewhenused="false" qformat="true" name="No Spacing"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" unhidewhenused="false" name="Revision"&gt;   &lt;w:lsdexception locked="false" priority="34" semihidden="false" unhidewhenused="false" qformat="true" name="List Paragraph"&gt;   &lt;w:lsdexception locked="false" priority="29" semihidden="false" unhidewhenused="false" qformat="true" name="Quote"&gt;   &lt;w:lsdexception locked="false" priority="30" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Quote"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 1"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 2"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 3"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 4"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 5"&gt;   &lt;w:lsdexception locked="false" priority="60" semihidden="false" unhidewhenused="false" name="Light Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="61" semihidden="false" unhidewhenused="false" name="Light List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="62" semihidden="false" unhidewhenused="false" name="Light Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="63" semihidden="false" unhidewhenused="false" name="Medium Shading 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="64" semihidden="false" unhidewhenused="false" name="Medium Shading 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="65" semihidden="false" unhidewhenused="false" name="Medium List 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="66" semihidden="false" unhidewhenused="false" name="Medium List 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="67" semihidden="false" unhidewhenused="false" name="Medium Grid 1 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="68" semihidden="false" unhidewhenused="false" name="Medium Grid 2 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="69" semihidden="false" unhidewhenused="false" name="Medium Grid 3 Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="70" semihidden="false" unhidewhenused="false" name="Dark List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="71" semihidden="false" unhidewhenused="false" name="Colorful Shading Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="72" semihidden="false" unhidewhenused="false" name="Colorful List Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="73" semihidden="false" unhidewhenused="false" name="Colorful Grid Accent 6"&gt;   &lt;w:lsdexception locked="false" priority="19" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="21" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Emphasis"&gt;   &lt;w:lsdexception locked="false" priority="31" semihidden="false" unhidewhenused="false" qformat="true" name="Subtle Reference"&gt;   &lt;w:lsdexception locked="false" priority="32" semihidden="false" unhidewhenused="false" qformat="true" name="Intense Reference"&gt;   &lt;w:lsdexception locked="false" priority="33" semihidden="false" unhidewhenused="false" qformat="true" name="Book Title"&gt;   &lt;w:lsdexception locked="false" priority="37" name="Bibliography"&gt;   &lt;w:lsdexception locked="false" priority="39" qformat="true" name="TOC Heading"&gt;  &lt;/w:LatentStyles&gt; &lt;/xml&gt;&lt;![endif]--&gt;&lt;style&gt; &lt;!--  /* Font Definitions */  @font-face 	{font-family:Latha; 	panose-1:2 11 6 4 2 2 2 2 2 4; 	mso-font-alt:Arial; 	mso-font-charset:1; 	mso-generic-font-family:roman; 	mso-font-format:other; 	mso-font-pitch:variable; 	mso-font-signature:262144 0 0 0 0 0;} @font-face 	{font-family:"Cambria Math"; 	panose-1:2 4 5 3 5 4 6 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:roman; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1107304683 0 0 159 0;} @font-face 	{font-family:Calibri; 	panose-1:2 15 5 2 2 2 4 3 2 4; 	mso-font-charset:0; 	mso-generic-font-family:swiss; 	mso-font-pitch:variable; 	mso-font-signature:-1610611985 1073750139 0 0 159 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-unhide:no; 	mso-style-qformat:yes; 	mso-style-parent:""; 	margin-top:0in; 	margin-right:0in; 	margin-bottom:10.0pt; 	margin-left:0in; 	line-height:115%; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-fareast-font-family:"Times New Roman"; 	mso-bidi-font-family:Latha;} .MsoChpDefault 	{mso-style-type:export-only; 	mso-default-props:yes; 	font-size:10.0pt; 	mso-ansi-font-size:10.0pt; 	mso-bidi-font-size:10.0pt; 	mso-ascii-font-family:Calibri; 	mso-hansi-font-family:Calibri; 	mso-bidi-font-family:Latha;} @page Section1 	{size:8.5in 11.0in; 	margin:1.0in 1.0in 1.0in 1.0in; 	mso-header-margin:.5in; 	mso-footer-margin:.5in; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --&gt; &lt;/style&gt;&lt;!--[if gte mso 10]&gt; &lt;style&gt;  /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-priority:99; 	mso-style-qformat:yes; 	mso-style-parent:""; 	mso-padding-alt:0in 5.4pt 0in 5.4pt; 	mso-para-margin:0in; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:11.0pt; 	font-family:"Calibri","sans-serif"; 	mso-ascii-font-family:Calibri; 	mso-ascii-theme-font:minor-latin; 	mso-fareast-font-family:"Times New Roman"; 	mso-fareast-theme-font:minor-fareast; 	mso-hansi-font-family:Calibri; 	mso-hansi-theme-font:minor-latin; 	mso-bidi-font-family:Latha; 	mso-bidi-theme-font:minor-bidi;} &lt;/style&gt; &lt;![endif]--&gt;  &lt;p class="MsoNormal" style="text-align: justify; text-indent: 0.5in; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;Basically, Swarm intelligence is a great nature of live world on the earth. “Swarm Intelligence is a type of Artificial Intelligence, based on the collective behavior of decentralized, self organized system”, Which was defined by Gerardo Beni and Jing Wang in 1989 regarding the Cellular Robotic System. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; text-indent: 0.5in; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;According to this definition, we come across with few new words like “Collective behavior”, “Decentralized” and “Self Organized”.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; text-indent: 0.5in; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;“Collective behavior” refers to social processes and events which go beyond current structure and execute them with their own willingness.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; text-indent: 0.5in; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;“Decentralized” refers to the ruling governance or the administration is more spread and more closure to the community (Ants, bees, birds, humans, etc). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; text-indent: 0.5in; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;“Self-Organized ” refers that manage or guided the system by self without interaction of outside source.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify; text-indent: 0.5in; line-height: normal;"&gt;&lt;span style=";font-family:&amp;quot;;font-size:100%;"  &gt;Since that we can justify the definition in such a way that, “Swarm Intelligence is a type of artificial intelligence which is computerizing the nature of a society which is having distributed administration and independent”. So that, basically this is talking about societies which is having groups and concepts like unity of them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8166433559929166270-3308702378124351205?l=theswarmintelligence.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://theswarmintelligence.blogspot.com/feeds/3308702378124351205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/04/what-is-swarm-intelligence.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/3308702378124351205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8166433559929166270/posts/default/3308702378124351205'/><link rel='alternate' type='text/html' href='http://theswarmintelligence.blogspot.com/2009/04/what-is-swarm-intelligence.html' title='What is swarm intelligence?????'/><author><name>Janaka Vishwajith</name><uri>http://www.blogger.com/profile/01226034905881826484</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_AkhOthbg-aU/SvyyWpcX8EI/AAAAAAAAACc/vYL_S6Tthpk/S220/6415_117599234254_749604254_2211918_351885_n.jpg'/></author><thr:total>3</thr:total></entry></feed>
