<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>Me Myself and Python</title>
	<atom:link href="http://maxinbjohn.blog.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://maxinbjohn.blog.com</link>
	<description></description>
	<pubDate>Fri, 31 Jul 2009 05:31:25 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Final  blog @ blog.com</title>
		<link>http://maxinbjohn.blog.com/2009/07/31/final-blog-blogcom/</link>
		<comments>http://maxinbjohn.blog.com/2009/07/31/final-blog-blogcom/#comments</comments>
		<pubDate>Fri, 31 Jul 2009 05:31:25 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://maxinbjohn.blog.com/2009/07/31/final-blog-blogcom/</guid>
		<description><![CDATA[Hi,
This is my final blog at Blog.com.  I will continue to blog at http://www.maxinbjohn.info/
A Glimpse at GNU/Linux
]]></description>
			<content:encoded><![CDATA[<p>Hi,</p>
<p>This is my final blog at Blog.com.  I will continue to blog at http://www.maxinbjohn.info/</p>
<h1><a href="http://www.maxinbjohn.info/">A Glimpse at GNU/Linux</a></h1>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2009/07/31/final-blog-blogcom/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Be smart and safe with Mozilla Firefox</title>
		<link>http://maxinbjohn.blog.com/2008/06/11/be-smart-and-safe-with-mozilla-firefox/</link>
		<comments>http://maxinbjohn.blog.com/2008/06/11/be-smart-and-safe-with-mozilla-firefox/#comments</comments>
		<pubDate>Wed, 11 Jun 2008 11:43:36 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[firefox]]></category>

		<category><![CDATA[Free Software]]></category>

		<category><![CDATA[phishing]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<br />
Today (11- June- 2008) , I got a mail from ICICI Bank &#60;admin@icicibank.com&#62;<br />
It's content goes like this..<br />
<br />
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr style="height: 77.25pt">
<td style="padding: 0in; width: 9.75pt; height: 77.25pt" width="13">&#160;</td>
<td style="padding: 0in; width: 420.75pt" valign="top" width="561">
<p class="MsoNormal"><b><font color="#D4001A"><span style="font-size: 12pt; font-family: Tahoma">Security Alert</span></font> </b></p>
<p><font style="font-size: 8pt" face="Tahoma"><b>ICICI Bank</b> has been receiving complaints from our customers of unauthorized access of the NetBanking accounts. As a result we have started reviewing our<br />
NetBanking Accounts periodically and temporarily restrict access of those accounts which we think are vulnerable.It has come to our attention that your account<br />
information needs to be updated as part of our continuing commitment to protect your account in this year 2008 and to reduce the instance of fraud on our website.<br />
If you could please take 5-10 minutes out of your online experience and update your personal records, you will not run into any future problems with our online service.<br />
Once you have updated your account records your online banking account service will not be interrupted and will continue as normal.</font></p>
<p><font style="font-size: 8pt" face="Tahoma">To update your records click the following link(s) and fill in the necessary requirements : </font></p>
<p><font style="font-size: 8pt" face="Tahoma"><font color="#D4001A"><b>Personal</b></font> Account Holders - <a href="http://www.rediffmail.com/cgi-bin/red.cgi?red=http%3A%2F%2F163%2E17%2E158%2E26%2FJoomla%2Fincludes%2Fjs%2Fdtree%2Fimg%2Fretail%2Ehtm&#38;isImage=0&#38;BlockImage=0" target="_new">https://infinity.icicibank.co.in/BANKAWAY?Action.RetUser.Init.001=Y&#38;AppSignonBankId=ICI&#38;AppType=retail&#38;abrdPrf=N</a><br />
<font color="#D4001A"><b>Business</b></font> Account Holders - <a href="http://www.rediffmail.com/cgi-bin/red.cgi?red=http%3A%2F%2F163%2E17%2E158%2E26%2FJoomla%2Fincludes%2Fjs%2Fdtree%2Fimg%2Fcorp%2Ehtm&#38;isImage=0&#38;BlockImage=0" target="_new">https://cib.icicibank.co.incorp/BANKAWAY?Action.CorpUser.Init.001=Y&#38;AppSignonBankId=ICI&#38;AppType=corporate</a></font></p>
<div class="MsoNormal" style="text-align: center">
<p style="text-align: left"><font style="font-size: 8pt" face="Tahoma">Please sign in to Online Banking after you have verified your account to ensure your account security. It is all about your security.<br />
We seek your cooperation for serving you better.</font></p>
<p style="text-align: left"><font style="font-size: 8pt" face="Tahoma">Sincerely,<br />
<br />
<b>Benoy Dasgupta</b><br />
Security Department<br />
ICICI Bank</font></p>
</div>
</td>
</tr>
</tbody>
</table>
<br />
Hmm... A really good looking work of fraud...... phishing at it's best.<br />
But I decided to give it a try at Firefox and Internet Explor(d)er. IE acted as though nothing happenned. But the Firefox actually advised me that this is an unsafe website and it is potentially dangerous for me to browse that site !! Watch it...!!<br />
<br />
<img src="http://amadeo.blog.com/repository/877100/3249574.jpg" align="middle" /><br />
<br />
<br />
<br />
&#160;I will call it people friendly technology. Long live Free Software..... and of course Firefox. I feel it is lot more safer for me and people that I know to use Firefox as their default browser.<br />
<br />
<br />
<br />
]]></description>
			<content:encoded><![CDATA[<div>
Today (11- June- 2008) , I got a mail from ICICI Bank &lt;admin@icicibank.com&gt;<br />
It&#8217;s content goes like this..</p>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody>
<tr style="height: 77.25pt">
<td style="padding: 0in; width: 9.75pt; height: 77.25pt" width="13">&#160;</td>
<td style="padding: 0in; width: 420.75pt" valign="top" width="561">
<p class="MsoNormal"><b><font color="#D4001A"><span style="font-size: 12pt; font-family: Tahoma">Security Alert</span></font> </b></p>
<p><font style="font-size: 8pt" face="Tahoma"><b>ICICI Bank</b> has been receiving complaints from our customers of unauthorized access of the NetBanking accounts. As a result we have started reviewing our<br />
NetBanking Accounts periodically and temporarily restrict access of those accounts which we think are vulnerable.It has come to our attention that your account<br />
information needs to be updated as part of our continuing commitment to protect your account in this year 2008 and to reduce the instance of fraud on our website.<br />
If you could please take 5-10 minutes out of your online experience and update your personal records, you will not run into any future problems with our online service.<br />
Once you have updated your account records your online banking account service will not be interrupted and will continue as normal.</font></p>
<p><font style="font-size: 8pt" face="Tahoma">To update your records click the following link(s) and fill in the necessary requirements : </font></p>
<p><font style="font-size: 8pt" face="Tahoma"><font color="#D4001A"><b>Personal</b></font> Account Holders - <a href="http://www.rediffmail.com/cgi-bin/red.cgi?red=http%3A%2F%2F163%2E17%2E158%2E26%2FJoomla%2Fincludes%2Fjs%2Fdtree%2Fimg%2Fretail%2Ehtm&amp;isImage=0&amp;BlockImage=0" target="_new">https://infinity.icicibank.co.in/BANKAWAY?Action.RetUser.Init.001=Y&amp;AppSignonBankId=ICI&amp;AppType=retail&amp;abrdPrf=N</a><br />
<font color="#D4001A"><b>Business</b></font> Account Holders - <a href="http://www.rediffmail.com/cgi-bin/red.cgi?red=http%3A%2F%2F163%2E17%2E158%2E26%2FJoomla%2Fincludes%2Fjs%2Fdtree%2Fimg%2Fcorp%2Ehtm&amp;isImage=0&amp;BlockImage=0" target="_new">https://cib.icicibank.co.incorp/BANKAWAY?Action.CorpUser.Init.001=Y&amp;AppSignonBankId=ICI&amp;AppType=corporate</a></font></p>
<div class="MsoNormal" style="text-align: center">
<p style="text-align: left"><font style="font-size: 8pt" face="Tahoma">Please sign in to Online Banking after you have verified your account to ensure your account security. It is all about your security.<br />
We seek your cooperation for serving you better.</font></p>
<p style="text-align: left"><font style="font-size: 8pt" face="Tahoma">Sincerely,</p>
<p><b>Benoy Dasgupta</b><br />
Security Department<br />
ICICI Bank</font></p>
</div>
</td>
</tr>
</tbody>
</table>
<p>
Hmm&#8230; A really good looking work of fraud&#8230;&#8230; phishing at it&#8217;s best.<br />
But I decided to give it a try at Firefox and Internet Explor(d)er. IE acted as though nothing happenned. But the Firefox actually advised me that this is an unsafe website and it is potentially dangerous for me to browse that site !! Watch it&#8230;!!</p>
<p><img src="http://amadeo.blog.com/repository/877100/3249574.jpg" align="middle" /></p>
<p>&#160;I will call it people friendly technology. Long live Free Software&#8230;.. and of course Firefox. I feel it is lot more safer for me and people that I know to use Firefox as their default browser.</p>
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/06/11/be-smart-and-safe-with-mozilla-firefox/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Track your thoughts with Freemind</title>
		<link>http://maxinbjohn.blog.com/2008/06/04/track-your-thoughts-with-freemind/</link>
		<comments>http://maxinbjohn.blog.com/2008/06/04/track-your-thoughts-with-freemind/#comments</comments>
		<pubDate>Wed, 04 Jun 2008 10:59:57 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[Free Mind]]></category>

		<category><![CDATA[Gnu/Linux]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Mindmap]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Freemind is the first and best mindmapper application that is known to me. Thanks to Mr. Dhanan for introducing to that software and demonstrating it's power in various arenas. Freemind is written in Java, that makes it a highly portable application.<br />
Well, a mindmapper is an application which helps you to perform mindmapping. Perplexing, right ?? Then what is mindmapping ??<br />
<br />
"A <b>mind map</b> is a diagram<a href="http://en.wikipedia.org/wiki/Diagram" title="Diagram"></a> used to represent words, ideas<a href="http://en.wikipedia.org/wiki/Idea" title="Idea"></a>, tasks, or other items linked to and arranged radially around a central key word or idea. It is used to generate<a href="http://en.wikipedia.org/wiki/Generation" title="Generation"></a>, visualize<a href="http://en.wikipedia.org/wiki/Visualization" title="Visualization"></a>, structure<a href="http://en.wikipedia.org/wiki/Structure" title="Structure"></a>, and classify<a href="http://en.wikipedia.org/wiki/Taxonomic_classification" class="mw-redirect" title="Taxonomic classification"></a> ideas, and as an aid in study<a href="http://en.wikipedia.org/wiki/Study_skills" title="Study skills"></a>, organization<a href="http://en.wikipedia.org/wiki/Organization" title="Organization"></a>, problem solving<a href="http://en.wikipedia.org/wiki/Problem_solving" title="Problem solving"></a>, decision making<a href="http://en.wikipedia.org/wiki/Decision_making" title="Decision making"></a>, and writing." -- Says wikipedia.<br />
<br />
&#160;Recent days, I have been using Freemind extensively, for the presentations ( yes, I did one "Introduction to programming in Python" presentation in Freemind for HP zone members of Ushustech).&#160; I was really able to convey the "Flow of my thought" using mindmaps in Freemind and I really enjoyed that presentation ( I hope those guys too :) ).<br />
<br />
We can use freemind for designs of applications too.&#160; I have decided to do one small Java ME application to find the Body Mass Index (BMI) . First thing I created is the mindmap of that application and then code it. That way, I can think over the application's features and drawbacks visually. My BMI mindmap goes like this..<br />
<br />
<img src="http://amadeo.blog.com/repository/877100/3229733.png" align="center" /><br />
<br />
<br />
&#160;Next time , when you are going to present something, do it in Freemind . It will be a refreshingly new experience.<br />
]]></description>
			<content:encoded><![CDATA[<div>Freemind is the first and best mindmapper application that is known to me. Thanks to Mr. Dhanan for introducing to that software and demonstrating it&#8217;s power in various arenas. Freemind is written in Java, that makes it a highly portable application.<br />
Well, a mindmapper is an application which helps you to perform mindmapping. Perplexing, right ?? Then what is mindmapping ??</p>
<p>&#8220;A <b>mind map</b> is a diagram<a href="http://en.wikipedia.org/wiki/Diagram" title="Diagram"></a> used to represent words, ideas<a href="http://en.wikipedia.org/wiki/Idea" title="Idea"></a>, tasks, or other items linked to and arranged radially around a central key word or idea. It is used to generate<a href="http://en.wikipedia.org/wiki/Generation" title="Generation"></a>, visualize<a href="http://en.wikipedia.org/wiki/Visualization" title="Visualization"></a>, structure<a href="http://en.wikipedia.org/wiki/Structure" title="Structure"></a>, and classify<a href="http://en.wikipedia.org/wiki/Taxonomic_classification" class="mw-redirect" title="Taxonomic classification"></a> ideas, and as an aid in study<a href="http://en.wikipedia.org/wiki/Study_skills" title="Study skills"></a>, organization<a href="http://en.wikipedia.org/wiki/Organization" title="Organization"></a>, problem solving<a href="http://en.wikipedia.org/wiki/Problem_solving" title="Problem solving"></a>, decision making<a href="http://en.wikipedia.org/wiki/Decision_making" title="Decision making"></a>, and writing.&#8221; &#8212; Says wikipedia.</p>
<p>&#160;Recent days, I have been using Freemind extensively, for the presentations ( yes, I did one &#8220;Introduction to programming in Python&#8221; presentation in Freemind for HP zone members of Ushustech).&#160; I was really able to convey the &#8220;Flow of my thought&#8221; using mindmaps in Freemind and I really enjoyed that presentation ( I hope those guys too <img src='http://c0404161.cdn.cloudfiles.rackspacecloud.com/16442ca129554f399ff7b46457727509' alt=':)' class='wp-smiley' /> ).</p>
<p>We can use freemind for designs of applications too.&#160; I have decided to do one small Java ME application to find the Body Mass Index (BMI) . First thing I created is the mindmap of that application and then code it. That way, I can think over the application&#8217;s features and drawbacks visually. My BMI mindmap goes like this..</p>
<p><img src="http://amadeo.blog.com/repository/877100/3229733.png" align="center" /></p>
<p>
&#160;Next time , when you are going to present something, do it in Freemind . It will be a refreshingly new experience.
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/06/04/track-your-thoughts-with-freemind/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sweet Home 3D for a beautiful home</title>
		<link>http://maxinbjohn.blog.com/2008/05/28/sweet-home-3d-for-a-beautiful-home/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/28/sweet-home-3d-for-a-beautiful-home/#comments</comments>
		<pubDate>Wed, 28 May 2008 18:10:17 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[Gnu/Linux]]></category>

		<category><![CDATA[Java]]></category>

		<category><![CDATA[Sweet Home 3D]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Want to design the interiors of your new Home in Gnu/Linux ? or you just need to modify the interiors of your' home ? ... You can do it all using the nice program called Sweet Home 3D.&#160; It is available from http://sweethome3d.sourceforge.net/index.html.<br />
<br />
Just download the software from http://prdownloads.sourceforge.net/sweethome3d/SweetHome3D-1.3-linux-x86.tgz. As it is a java based Software, make sure that you have openjdk installed in your machine.&#160; In the latest Ubuntu Hardy Heron release,&#160; the execution of Sweet Home 3D was flawless.<br />
<br />
Have a look at my experiements with SweetHome 3D :)<br />
<br />
<img src="http://amadeo.blog.com/repository/877100/3210066.png" align="bottom" /><br />
<br />
It's really cool.. You can make wonders with some sense of beauty and a mind willing to spend hours with this software.<br />
]]></description>
			<content:encoded><![CDATA[<div>Want to design the interiors of your new Home in Gnu/Linux ? or you just need to modify the interiors of your&#8217; home ? &#8230; You can do it all using the nice program called Sweet Home 3D.&#160; It is available from http://sweethome3d.sourceforge.net/index.html.</p>
<p>Just download the software from http://prdownloads.sourceforge.net/sweethome3d/SweetHome3D-1.3-linux-x86.tgz. As it is a java based Software, make sure that you have openjdk installed in your machine.&#160; In the latest Ubuntu Hardy Heron release,&#160; the execution of Sweet Home 3D was flawless.</p>
<p>Have a look at my experiements with SweetHome 3D <img src='http://c0404161.cdn.cloudfiles.rackspacecloud.com/16442ca129554f399ff7b46457727509' alt=':)' class='wp-smiley' /> </p>
<p><img src="http://amadeo.blog.com/repository/877100/3210066.png" align="bottom" /></p>
<p>It&#8217;s really cool.. You can make wonders with some sense of beauty and a mind willing to spend hours with this software.
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/28/sweet-home-3d-for-a-beautiful-home/feed/</wfw:commentRss>
		</item>
		<item>
		<title>GCompris for Unnikkuttan</title>
		<link>http://maxinbjohn.blog.com/2008/05/26/gcompris-for-unnikkuttan/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/26/gcompris-for-unnikkuttan/#comments</comments>
		<pubDate>Mon, 26 May 2008 12:44:05 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[GCompris]]></category>

		<category><![CDATA[Gnu/Linux]]></category>

		<category><![CDATA[kdeedu]]></category>

		<category><![CDATA[torcs]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Last Friday, my Uncle called me up for a particular requirement - to buy one PC for Unnikkuttan and Ponnu, my cousins.&#160; He wanted his children to use that Computer for education purposes. I agreed to go with him and help him in choosing the PC configuration.<br />
<br />
After some comparison by visiting multiple stores, we have decided to buy the Acer Aspire PC, which costs about 23000 (nowadays, I feel laptops are better than Desktops when we think about our wallet). It had a 1.6 Ghz, 1 MB L2 cache, 800 MHz FSB , Intel pentium dual core processor , 1 gb ram, Intel 945 GC motherboard, DVD writer....<br />
<br />
Well, the dealers has installed some games on the PC and just after booting the PC in Windows XP , Unnikkuttan started playing the games, mostly nothing to with education and more to do with the violence. Jose Uncle wasn't that happy with what unnikkuttan doing with the PC.<br />
<br />
Next week, I have visited Unnikkuttan's home , this time with 3DVDs of Debian Etch Gnu/Linux. I have installed the Debian on the 40 GB partition of that massive 160 GB HDD. Installed the Debian Gnu/Linux. Both Unnikkuttan and Ponnu were amused by the installation steps of Debian.&#160; The whole installation took around 30 minutes (thanks to that high speed processor with 1 GB ram ).<br />
<br />
After that it was the time for Education softwares. I have installed GCompris and Kdeedu and asked Unni and Ponnu to use it. They really liked those programs, I could guess it from their fight for playing the games. Again not willing to hurt Unnikkuttan's desire for Racing, I have installed the Torcs race game for him. He got thrilled by that game anyway..<br />
<br />
The PC boots directly into Debian and I have configured the Debian to have a "passwordless" entry to the Desktop to reduce the "password" problem for children. I know they are smart enough to remember the passwords. But unfortunately I dont' remember my passwords these days. So I have decided to not to take a chance for myself :)<br />
<br />
Nowadays Unnikkuttan and ponnu are proud owners of a Debian Linux ( I have removed the GNU to for ease of the kids) machine. They are the future, let them play with the Gnu/Linux <img src="http://editor.blog.com/javascript/tinymce/plugins/emotions/images/smiley-innocent.gif" alt="Innocent" title="Innocent" border="0" />&#160;&#160;<br />
<br />
( I wonder why people are saying Linux is hard to use while children like Unnikkuttan and ponnu , with ages 4 and 6 respectively are using it without any problem)<br />
<br />
<br />
<br />
]]></description>
			<content:encoded><![CDATA[<div>Last Friday, my Uncle called me up for a particular requirement - to buy one PC for Unnikkuttan and Ponnu, my cousins.&#160; He wanted his children to use that Computer for education purposes. I agreed to go with him and help him in choosing the PC configuration.</p>
<p>After some comparison by visiting multiple stores, we have decided to buy the Acer Aspire PC, which costs about 23000 (nowadays, I feel laptops are better than Desktops when we think about our wallet). It had a 1.6 Ghz, 1 MB L2 cache, 800 MHz FSB , Intel pentium dual core processor , 1 gb ram, Intel 945 GC motherboard, DVD writer&#8230;.</p>
<p>Well, the dealers has installed some games on the PC and just after booting the PC in Windows XP , Unnikkuttan started playing the games, mostly nothing to with education and more to do with the violence. Jose Uncle wasn&#8217;t that happy with what unnikkuttan doing with the PC.</p>
<p>Next week, I have visited Unnikkuttan&#8217;s home , this time with 3DVDs of Debian Etch Gnu/Linux. I have installed the Debian on the 40 GB partition of that massive 160 GB HDD. Installed the Debian Gnu/Linux. Both Unnikkuttan and Ponnu were amused by the installation steps of Debian.&#160; The whole installation took around 30 minutes (thanks to that high speed processor with 1 GB ram ).</p>
<p>After that it was the time for Education softwares. I have installed GCompris and Kdeedu and asked Unni and Ponnu to use it. They really liked those programs, I could guess it from their fight for playing the games. Again not willing to hurt Unnikkuttan&#8217;s desire for Racing, I have installed the Torcs race game for him. He got thrilled by that game anyway..</p>
<p>The PC boots directly into Debian and I have configured the Debian to have a &#8220;passwordless&#8221; entry to the Desktop to reduce the &#8220;password&#8221; problem for children. I know they are smart enough to remember the passwords. But unfortunately I dont&#8217; remember my passwords these days. So I have decided to not to take a chance for myself <img src='http://c0404161.cdn.cloudfiles.rackspacecloud.com/16442ca129554f399ff7b46457727509' alt=':)' class='wp-smiley' /> </p>
<p>Nowadays Unnikkuttan and ponnu are proud owners of a Debian Linux ( I have removed the GNU to for ease of the kids) machine. They are the future, let them play with the Gnu/Linux <img src="http://editor.blog.com/javascript/tinymce/plugins/emotions/images/smiley-innocent.gif" alt="Innocent" title="Innocent" border="0" />&#160;&#160;</p>
<p>( I wonder why people are saying Linux is hard to use while children like Unnikkuttan and ponnu , with ages 4 and 6 respectively are using it without any problem)</p>
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/26/gcompris-for-unnikkuttan/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Play with Cheetah : the python based templating engine</title>
		<link>http://maxinbjohn.blog.com/2008/05/22/play-with-cheetah-the-python-based-templating-engine/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/22/play-with-cheetah-the-python-based-templating-engine/#comments</comments>
		<pubDate>Thu, 22 May 2008 13:28:04 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[cheetah]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[templating]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<br />
Cheetah is a python powered&#160; Templating engine and code generation tool (Though I never tried it's code generation functionality). Its main application is in the Web Development scenario itself.<br />
<br />
To start with Cheetah, we can download the latest release of cheetah from http://sourceforge.net/project/showfiles.php?group_id=28961.<br />
Installation is done by the usual<br />
python setup.py install<br />
<br />
After this we are going to test the prime functionality of Cheetah, the Web Development scenario.<br />
<br />
The simplest template (Greeting.tmpl)<br />
###################################<br />
Hello, $firstName.<br />
<br />
Your order (#$order) has shipped:<br />
################################### &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
<br />
Compile it using Cheetah<br />
<br />
cheetah compile Greeting.tmpl<br />
Compiling Greeting.tmpl -&#62; Greeting.py<br />
<br />
Now we got a Greeting.py. So let's&#160; test that in python<br />
<br />
<br />
&#62;&#62;&#62; from Greeting import *<br />
&#62;&#62;&#62; t = Greeting()<br />
&#62;&#62;&#62; t.firstName= 'Maxin'<br />
&#62;&#62;&#62; t.order = 23342<br />
&#62;&#62;&#62; print t<br />
Hello, Maxin.<br />
<br />
Your order (#23342) has shipped:<br />
<br />
Hmm.. It works..<br />
Best reference for cheetah is available at http://www.cheetahtemplate.org/docs/users_guide_html<br />
]]></description>
			<content:encoded><![CDATA[<div>
Cheetah is a python powered&#160; Templating engine and code generation tool (Though I never tried it&#8217;s code generation functionality). Its main application is in the Web Development scenario itself.</p>
<p>To start with Cheetah, we can download the latest release of cheetah from http://sourceforge.net/project/showfiles.php?group_id=28961.<br />
Installation is done by the usual<br />
python setup.py install</p>
<p>After this we are going to test the prime functionality of Cheetah, the Web Development scenario.</p>
<p>The simplest template (Greeting.tmpl)<br />
###################################<br />
Hello, $firstName.</p>
<p>Your order (#$order) has shipped:<br />
################################### &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</p>
<p>Compile it using Cheetah</p>
<p>cheetah compile Greeting.tmpl<br />
Compiling Greeting.tmpl -&gt; Greeting.py</p>
<p>Now we got a Greeting.py. So let&#8217;s&#160; test that in python</p>
<p>
&gt;&gt;&gt; from Greeting import *<br />
&gt;&gt;&gt; t = Greeting()<br />
&gt;&gt;&gt; t.firstName= &#8216;Maxin&#8217;<br />
&gt;&gt;&gt; t.order = 23342<br />
&gt;&gt;&gt; print t<br />
Hello, Maxin.</p>
<p>Your order (#23342) has shipped:</p>
<p>Hmm.. It works..<br />
Best reference for cheetah is available at http://www.cheetahtemplate.org/docs/users_guide_html
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/22/play-with-cheetah-the-python-based-templating-engine/feed/</wfw:commentRss>
		</item>
		<item>
		<title>System Tray application for Linux using Python and GTK</title>
		<link>http://maxinbjohn.blog.com/2008/05/20/system-tray-application-for-linux-using-python-and-gtk/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/20/system-tray-application-for-linux-using-python-and-gtk/#comments</comments>
		<pubDate>Tue, 20 May 2008 11:48:19 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[gtk]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[system tray application]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Creating an application which resides in the System tray adds charms to an otherwise simple application. Pleople tend to value accessibility and userfriendliness&#160; than the quality of the program itself (pardon my friends, I am sure that you are not one of those chaps)<br />
<br />
But, again it is fun to create a simple gui which demonstrates how to create an active System tray application using pygtk. My simple app goes like this.<br />
<br />
#######################################################################################<br />
<br />
#!/usr/bin/env python<br />
<br />
import gtk<br />
<br />
class StatusIcc:<br />
<br />
&#160;&#160;&#160; # activate callback<br />
&#160;&#160;&#160; def activate( self, widget, data=None):<br />
&#160;&#160;&#160; dialog = gtk.MessageDialog(<br />
&#160;&#160;&#160; &#160;&#160;&#160; parent&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = None,<br />
&#160;&#160;&#160; &#160;&#160;&#160; flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.DIALOG_DESTROY_WITH_PARENT,<br />
&#160;&#160;&#160; &#160;&#160;&#160; type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.MESSAGE_INFO,<br />
&#160;&#160;&#160; &#160;&#160;&#160; buttons&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.BUTTONS_YES_NO,<br />
&#160;&#160;&#160; &#160;&#160;&#160; message_format = "Did you like this Activation example \n by Maxin B. John &#60;maxinbjohn@gmail.com&#62;?")<br />
&#160;&#160;&#160; dialog.set_title('Popup example')<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; dialog.connect('response', self.show_hide)<br />
&#160;&#160;&#160; dialog.show()<br />
&#160;&#160;&#160;<br />
&#160;&#160; # Show_Hide callback<br />
&#160;&#160;&#160; def&#160; show_hide(self, widget,response_id, data= None):<br />
&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160; if response_id == gtk.RESPONSE_YES:<br />
&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; widget.hide()<br />
&#160;&#160;&#160; else:<br />
&#160;&#160;&#160; &#160;&#160;&#160; widget.hide()<br />
&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
<br />
&#160;&#160;&#160; # destroyer callback<br />
&#160;&#160;&#160; def&#160; destroyer(self, widget,response_id, data= None):<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; if response_id == gtk.RESPONSE_OK:<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160; gtk.main_quit()<br />
&#160;&#160;&#160; else:<br />
&#160;&#160;&#160; &#160;&#160;&#160; widget.hide()<br />
<br />
&#160;&#160;&#160; # popup callback<br />
&#160;&#160;&#160; def popup(self, button, widget, data=None):<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; dialog = gtk.MessageDialog(<br />
&#160;&#160;&#160; &#160;&#160;&#160; parent&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = None,<br />
&#160;&#160;&#160; &#160;&#160;&#160; flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.DIALOG_DESTROY_WITH_PARENT,<br />
&#160;&#160;&#160; &#160;&#160;&#160; type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.MESSAGE_INFO,<br />
&#160;&#160;&#160; &#160;&#160;&#160; buttons&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.BUTTONS_OK_CANCEL,<br />
&#160;&#160;&#160; &#160;&#160;&#160; message_format = "Do you want to close this Status Icon program?")<br />
&#160;&#160;&#160; dialog.set_title('Popup Window')<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; dialog.connect('response', self.destroyer)<br />
&#160;&#160;&#160; dialog.show()<br />
&#160;&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br />
<br />
&#160;&#160;&#160; def __init__(self):<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; # create a new Status Icon<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon = gtk.StatusIcon()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.set_from_stock(gtk.STOCK_ABOUT)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.set_blinking(True)<br />
&#160;&#160;&#160; self.staticon.connect("activate", self.activate)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.connect("popup_menu", self.popup)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.set_visible(True)<br />
<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; # invoking the main()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; gtk.main()<br />
<br />
<br />
if __name__ == "__main__":<br />
&#160;&#160;&#160; statusicon = StatusIcc()<br />
####################################################################################<br />
<br />
<br />
Hmm , The code is pretty simple . It is using gtk.StatusIcon() for the System Tray app. The most important signal for the StatusIcon are "activate" and "poup_menu". The callbacks for those singals are also self explanatory. So not much comments on the code. Now lets see my<br />
app in action.<br />
<br />
<img src="http://amadeo.blog.com/repository/877100/3185060.png" align="center" /><br />
<br />
<br />
The Information (i) symbol in the system tray area is the running application. Right click and Left clicks will generate the "poup_menu" and "activate" signals respectively.&#160;<br />
Try the tray app for you next programming adventure :)<br />
]]></description>
			<content:encoded><![CDATA[<div>Creating an application which resides in the System tray adds charms to an otherwise simple application. Pleople tend to value accessibility and userfriendliness&#160; than the quality of the program itself (pardon my friends, I am sure that you are not one of those chaps)</p>
<p>But, again it is fun to create a simple gui which demonstrates how to create an active System tray application using pygtk. My simple app goes like this.</p>
<p>#######################################################################################</p>
<p>#!/usr/bin/env python</p>
<p>import gtk</p>
<p>class StatusIcc:</p>
<p>&#160;&#160;&#160; # activate callback<br />
&#160;&#160;&#160; def activate( self, widget, data=None):<br />
&#160;&#160;&#160; dialog = gtk.MessageDialog(<br />
&#160;&#160;&#160; &#160;&#160;&#160; parent&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = None,<br />
&#160;&#160;&#160; &#160;&#160;&#160; flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.DIALOG_DESTROY_WITH_PARENT,<br />
&#160;&#160;&#160; &#160;&#160;&#160; type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.MESSAGE_INFO,<br />
&#160;&#160;&#160; &#160;&#160;&#160; buttons&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.BUTTONS_YES_NO,<br />
&#160;&#160;&#160; &#160;&#160;&#160; message_format = &#8220;Did you like this Activation example \n by Maxin B. John &lt;maxinbjohn@gmail.com&gt;?&#8221;)<br />
&#160;&#160;&#160; dialog.set_title(&#8217;Popup example&#8217;)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; dialog.connect(&#8217;response&#8217;, self.show_hide)<br />
&#160;&#160;&#160; dialog.show()<br />
&#160;&#160;&#160;<br />
&#160;&#160; # Show_Hide callback<br />
&#160;&#160;&#160; def&#160; show_hide(self, widget,response_id, data= None):<br />
&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160; if response_id == gtk.RESPONSE_YES:<br />
&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160; &#160;&#160;&#160; widget.hide()<br />
&#160;&#160;&#160; else:<br />
&#160;&#160;&#160; &#160;&#160;&#160; widget.hide()<br />
&#160;&#160;&#160; &#160;&#160;&#160;&#160;&#160;&#160;&#160;</p>
<p>&#160;&#160;&#160; # destroyer callback<br />
&#160;&#160;&#160; def&#160; destroyer(self, widget,response_id, data= None):<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; if response_id == gtk.RESPONSE_OK:<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#160;&#160;&#160; gtk.main_quit()<br />
&#160;&#160;&#160; else:<br />
&#160;&#160;&#160; &#160;&#160;&#160; widget.hide()</p>
<p>&#160;&#160;&#160; # popup callback<br />
&#160;&#160;&#160; def popup(self, button, widget, data=None):<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; dialog = gtk.MessageDialog(<br />
&#160;&#160;&#160; &#160;&#160;&#160; parent&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = None,<br />
&#160;&#160;&#160; &#160;&#160;&#160; flags&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.DIALOG_DESTROY_WITH_PARENT,<br />
&#160;&#160;&#160; &#160;&#160;&#160; type&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.MESSAGE_INFO,<br />
&#160;&#160;&#160; &#160;&#160;&#160; buttons&#160;&#160;&#160;&#160;&#160;&#160;&#160; = gtk.BUTTONS_OK_CANCEL,<br />
&#160;&#160;&#160; &#160;&#160;&#160; message_format = &#8220;Do you want to close this Status Icon program?&#8221;)<br />
&#160;&#160;&#160; dialog.set_title(&#8217;Popup Window&#8217;)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; dialog.connect(&#8217;response&#8217;, self.destroyer)<br />
&#160;&#160;&#160; dialog.show()<br />
&#160;&#160;&#160;&#160;&#160;<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160;</p>
<p>&#160;&#160;&#160; def __init__(self):<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; # create a new Status Icon<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon = gtk.StatusIcon()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.set_from_stock(gtk.STOCK_ABOUT)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.set_blinking(True)<br />
&#160;&#160;&#160; self.staticon.connect(&#8220;activate&#8221;, self.activate)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.connect(&#8220;popup_menu&#8221;, self.popup)<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; self.staticon.set_visible(True)</p>
<p>&#160;&#160;&#160;&#160;&#160;&#160;&#160; # invoking the main()<br />
&#160;&#160;&#160;&#160;&#160;&#160;&#160; gtk.main()</p>
<p>
if __name__ == &#8220;__main__&#8221;:<br />
&#160;&#160;&#160; statusicon = StatusIcc()<br />
####################################################################################</p>
<p>
Hmm , The code is pretty simple . It is using gtk.StatusIcon() for the System Tray app. The most important signal for the StatusIcon are &#8220;activate&#8221; and &#8220;poup_menu&#8221;. The callbacks for those singals are also self explanatory. So not much comments on the code. Now lets see my<br />
app in action.</p>
<p><img src="http://amadeo.blog.com/repository/877100/3185060.png" align="center" /></p>
<p>
The Information (i) symbol in the system tray area is the running application. Right click and Left clicks will generate the &#8220;poup_menu&#8221; and &#8220;activate&#8221; signals respectively.&#160;<br />
Try the tray app for you next programming adventure <img src='http://c0404161.cdn.cloudfiles.rackspacecloud.com/16442ca129554f399ff7b46457727509' alt=':)' class='wp-smiley' /> 
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/20/system-tray-application-for-linux-using-python-and-gtk/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Twitter through python</title>
		<link>http://maxinbjohn.blog.com/2008/05/16/twitter-through-python/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/16/twitter-through-python/#comments</comments>
		<pubDate>Fri, 16 May 2008 12:34:45 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[Python]]></category>

		<category><![CDATA[python-twitter]]></category>

		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<b>Twitter</b> is a free social networking<a href="http://en.wikipedia.org/wiki/Social_networking" class="mw-redirect" title="Social networking"></a> and micro blogging<a href="http://en.wikipedia.org/wiki/Micro-blogging" title="Micro-blogging"></a> service that allows users to send "updates"&#160; up to 140 characters long to the Twitter website, via SMS or instant messaging (google chat).<br />
Updates are displayed on the user's profile page and instantly delivered to other users who have signed up to receive them. The sender can restrict delivery to those in his or her circle of friends (delivery to everyone is the default). Users can receive updates via the Twitter website, instant messaging,SMS, RSS, email or through an application.<br />
<br />
Now let's have a look at python and integrate the Twitter with Python. Python-twitter module is a python wrapper around Twitter API which is available at http://code.google.com/p/python-twitter/. The twitter module depends on simplejson module which is available from http://pypi.python.org/packages/source/s/simplejson/simplejson-1.9.1.tar.gz. As it is a pure python implementation, installation is very easy and traditional.<br />
<br />
Then download the python-twitter module from http://python-twitter.googlecode.com/files/python-twitter-0.5.tar.gz .<br />
tar zxvf python-twitter-0.5.tar.gz<br />
cd python-twitter<br />
python setup.py build<br />
python setup.py install<br />
and we are done :)<br />
<br />
Now let's write the simplest python script to post a message in twitter.<br />
<br />
###############################################################<br />
# The simplest python program to play with twitter using python-twitter<br />
#&#160; Google Code:&#160;&#160; http://code.google.com/p/python-twitter/<br />
#&#160; Google Groups: http://groups.google.com/group/python-twitter<br />
#&#160; Python twitter API can be used to send and receive twitter messages<br />
#<br />
# Thanks to DeWitt Clinton &#60;dewitt@google.com&#62; for this wonderful module<br />
#<br />
<br />
import twitter<br />
<br />
api = twitter.Api(username="my_twitter_username", password="my_secret_password", input_encoding=None)<br />
status = api.PostUpdate("example of the simplest twitter message program ")<br />
print status.text<br />
<br />
###########################################################<br />
<br />
It is very simple. Now let's run the code as<br />
python simple_twitter.py<br />
example of the simplest twitter message program<br />
<br />
Now when I visit my twitter home (http://twitter.com/maxinbjohn), I can see that message and I think it is cool <img src="http://editor.blog.com/javascript/tinymce/plugins/emotions/images/smiley-cool.gif" alt="Cool" title="Cool" border="0" /><br />
]]></description>
			<content:encoded><![CDATA[<div><b>Twitter</b> is a free social networking<a href="http://en.wikipedia.org/wiki/Social_networking" class="mw-redirect" title="Social networking"></a> and micro blogging<a href="http://en.wikipedia.org/wiki/Micro-blogging" title="Micro-blogging"></a> service that allows users to send &#8220;updates&#8221;&#160; up to 140 characters long to the Twitter website, via SMS or instant messaging (google chat).<br />
Updates are displayed on the user&#8217;s profile page and instantly delivered to other users who have signed up to receive them. The sender can restrict delivery to those in his or her circle of friends (delivery to everyone is the default). Users can receive updates via the Twitter website, instant messaging,SMS, RSS, email or through an application.</p>
<p>Now let&#8217;s have a look at python and integrate the Twitter with Python. Python-twitter module is a python wrapper around Twitter API which is available at http://code.google.com/p/python-twitter/. The twitter module depends on simplejson module which is available from http://pypi.python.org/packages/source/s/simplejson/simplejson-1.9.1.tar.gz. As it is a pure python implementation, installation is very easy and traditional.</p>
<p>Then download the python-twitter module from http://python-twitter.googlecode.com/files/python-twitter-0.5.tar.gz .<br />
tar zxvf python-twitter-0.5.tar.gz<br />
cd python-twitter<br />
python setup.py build<br />
python setup.py install<br />
and we are done <img src='http://c0404161.cdn.cloudfiles.rackspacecloud.com/16442ca129554f399ff7b46457727509' alt=':)' class='wp-smiley' /> </p>
<p>Now let&#8217;s write the simplest python script to post a message in twitter.</p>
<p>###############################################################<br />
# The simplest python program to play with twitter using python-twitter<br />
#&#160; Google Code:&#160;&#160; http://code.google.com/p/python-twitter/<br />
#&#160; Google Groups: http://groups.google.com/group/python-twitter<br />
#&#160; Python twitter API can be used to send and receive twitter messages<br />
#<br />
# Thanks to DeWitt Clinton &lt;dewitt@google.com&gt; for this wonderful module<br />
#</p>
<p>import twitter</p>
<p>api = twitter.Api(username=&#8221;my_twitter_username&#8221;, password=&#8221;my_secret_password&#8221;, input_encoding=None)<br />
status = api.PostUpdate(&#8220;example of the simplest twitter message program &#8220;)<br />
print status.text</p>
<p>###########################################################</p>
<p>It is very simple. Now let&#8217;s run the code as<br />
python simple_twitter.py<br />
example of the simplest twitter message program</p>
<p>Now when I visit my twitter home (http://twitter.com/maxinbjohn), I can see that message and I think it is cool <img src="http://editor.blog.com/javascript/tinymce/plugins/emotions/images/smiley-cool.gif" alt="Cool" title="Cool" border="0" />
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/16/twitter-through-python/feed/</wfw:commentRss>
		</item>
		<item>
		<title>QuickCam Go on Ubuntu 8.04 LTS Linux</title>
		<link>http://maxinbjohn.blog.com/2008/05/14/quickcam-go-on-ubuntu-804-lts-linux/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/14/quickcam-go-on-ubuntu-804-lts-linux/#comments</comments>
		<pubDate>Wed, 14 May 2008 17:58:21 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[Logitech QuickCam Go]]></category>

		<category><![CDATA[motion]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<category><![CDATA[Web Cam]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[One of my worst fears were whether my newly owned Webcam (Logitech QuickCam Go) will work in Ubuntu Linux or not. Though it was cheap(Rs. 730/- or roughly 19 USD) , I didn't wanted to experiment with it in M$ OS. But my fears were baseless. It worked smoothly in Ubuntu, didn't even have to wait for installing the drivers in the Ubuntu 8.04 LTS distro.<br />
<br />
Hmm.. it saved a considerable amount of time for me.<br />
uname -a<br />
Linux maxin-desktop 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux<br />
At first I have tested it in the Ekiga Phone Software. Later decided to do something interesting with that. So I have installed 'motion' in Ubuntu Linux<br />
<br />
sudo apt-get install motion<br />
<br />
About Motion: " <font size="+1">motion uses a video4linux device for detecting movement. It makes snapshots of the movement which can be converted to MPEG movies in realtime (or later for low cpu usage), making it usable as an observation or security system"<br />
<font size="4"><font face="times new roman,times"><br />
<br />
Output of motion in Ubuntu Linux using my Logitech Quickcam Go webcam<br />
<br /></font></font></font><img src="http://amadeo.blog.com/repository/877100/3168889.png" align="center" /><br />
<font size="+1"><br />
It runs a webserver on port 8081 in my machine. I will be able to monitor whether somebody is present in front of my pc (or if the 'motion' is installed in my home pc, I can check whether somebody is intruding my home or not) using an ordinary web browser.<br />
<br /></font>
]]></description>
			<content:encoded><![CDATA[<div>One of my worst fears were whether my newly owned Webcam (Logitech QuickCam Go) will work in Ubuntu Linux or not. Though it was cheap(Rs. 730/- or roughly 19 USD) , I didn&#8217;t wanted to experiment with it in M$ OS. But my fears were baseless. It worked smoothly in Ubuntu, didn&#8217;t even have to wait for installing the drivers in the Ubuntu 8.04 LTS distro.</p>
<p>Hmm.. it saved a considerable amount of time for me.<br />
uname -a<br />
Linux maxin-desktop 2.6.24-16-generic #1 SMP Thu Apr 10 13:23:42 UTC 2008 i686 GNU/Linux<br />
At first I have tested it in the Ekiga Phone Software. Later decided to do something interesting with that. So I have installed &#8216;motion&#8217; in Ubuntu Linux</p>
<p>sudo apt-get install motion</p>
<p>About Motion: &#8221; <font size="+1">motion uses a video4linux device for detecting movement. It makes snapshots of the movement which can be converted to MPEG movies in realtime (or later for low cpu usage), making it usable as an observation or security system&#8221;<br />
<font size="4"><font face="times new roman,times"></p>
<p>Output of motion in Ubuntu Linux using my Logitech Quickcam Go webcam</p>
<p></font></font></font><img src="http://amadeo.blog.com/repository/877100/3168889.png" align="center" /><br />
<font size="+1"><br />
It runs a webserver on port 8081 in my machine. I will be able to monitor whether somebody is present in front of my pc (or if the &#8216;motion&#8217; is installed in my home pc, I can check whether somebody is intruding my home or not) using an ordinary web browser.</p>
<p></font>
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/14/quickcam-go-on-ubuntu-804-lts-linux/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The simplest (python based) pre-commit hook in Subversion</title>
		<link>http://maxinbjohn.blog.com/2008/05/08/the-simplest-python-based-pre-commit-hook-in-subversion/</link>
		<comments>http://maxinbjohn.blog.com/2008/05/08/the-simplest-python-based-pre-commit-hook-in-subversion/#comments</comments>
		<pubDate>Thu, 08 May 2008 11:39:11 +0000</pubDate>
		<dc:creator>maxinbjohn</dc:creator>
		
		<category><![CDATA[hooks]]></category>

		<category><![CDATA[Python]]></category>

		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Hooks in Subversion are scripts or executables that are triggered by an event in the subversion version control life cycle. The following are the hooks supported by Subversion.<br />
<br />
In the hooks directory of a repository we can find these template files:<br />
post-commit.tmpl&#160;&#160;&#160;&#160;&#160;&#160;pre-unlock.tmpl<br />
post-lock.tmpl &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;pre-commit.tmpl<br />
start-commit.tmpl &#160;&#160;&#160;&#160;post-revprop-change.tmpl<br />
pre-lock.tmpl &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;post-unlock.tmpl&#160;&#160;&#160;&#160; pre-revprop-change.tmpl<br />
<strong><br />
start-commit</strong> Before the commit transaction starts<br />
<strong>pre-commit</strong> After the commit transaction starts but before the transaction is commited<br />
<strong>post-commit</strong> After the commit transaction completes<br />
<strong>pre-revprop-change</strong> Before a revision property is changed Repository Path,<br />
<strong>post-revprop-change:</strong> After a revision property is changed Repository Path<br />
<strong>pre-lock: &#160;</strong>Before the lock being acquired <strong><br />
post-lock: &#160;</strong>After the lock being acquired<br />
<strong><br /></strong>To test how a hook works, let's create a repository in our Gnu/Linux Box.<br />
<strong><br />
svnadmin create hello<br /></strong><strong><br /></strong>Now we have a repository called hello and it will contain files like<br />
<strong>conf dav db format hooks joke.py locks pre-commit README.txt<br /></strong>Modify the conf/svnserve.conf to include passwd file and add users to the passwd file along with their passwords.<br />
<strong><br /></strong>Then run the server as svnserve -d -r hello<br />
To checkout :<br />
<strong>svn co svn://127.0.0.1<br /></strong><strong><br /></strong>Then lets move to the real work. We need to stop anybody who is trying to commit to our repository just because we are doing some important work on the server or we just dont want anybody to help us :)<br />
<strong><br /></strong>To do that, let's create a file called pre-commit in hooks folder in the repository (hello). The content of the pre-commit should be :<br />
<strong><br /></strong>#!/usr/bin/env python<br />
# ====================================================================<br />
# The simplest pre-commit hook which prevents all the commits to the repository<br />
# This can be useful(?) when you are doing the backup of your subversion repo.<br />
# This small script will prevent the commit and will give a simple message<br />
# to the person who is commiting the changes.<br />
#<br />
# USAGE:<br />
# copy this script as pre-commit in the hooks directory of the svn server<br />
#<br />
# ====================================================================<br />
<br />
import sys<br />
<br />
MESSAGE="""<br />
Dear Sir,<br />
<br />
As we are doing some important work in the server,all those who are submitting<br />
the changes will have to wait for some time.<br />
<br />
Sorry for the inconvenience caused.<br />
<br />
Regards,<br />
<br />
Administrator.<br />
"""<br />
# Messages written to the stderr will be shown to the person who is commiting.<br />
sys.stderr.write(MESSAGE)<br />
<br />
# Need to exit with anything other than 0 to fail the commit<br />
sys.exit(2)<br />
<br />
Let's change the mode of the pre-commit to executable (chmod +x pre-commit)<br />
<strong><br /></strong>To test this setup, lets create a sandbox and then try to commit our changes to the server.<br />
<strong>svn co svn://127.0.0.1<br />
cd 127.0.0.1<br />
mkdir test<br />
svn add test<br />
svn commit -m "adding the test directory"<br />
<br /></strong>Now we will see the pre-commit hook in action:<br />
<strong><br /></strong>Adding test<br />
svn: Commit failed (details follow):<br />
svn: 'pre-commit' hook failed with error output:<br />
<br />
Dear Sir,<br />
<br />
As we are doing some important work in the server,all those who are submitting<br />
the changes will have to wait for some time.<br />
<br />
Sorry for the inconvenience caused.<br />
<br />
Regards,<br />
<br />
Administrator.<br />
<br />
<strong><br /></strong>This is the most simplest hook that can be implemented in Python. More complex hooks can be implemented in python using the svn module. More useful hooks examples are available from http://subversion.tigris.org/tools_contrib.html#hook_scripts<br />
<strong><br />
<br />
<br />
<br /></strong><br />
]]></description>
			<content:encoded><![CDATA[<div>Hooks in Subversion are scripts or executables that are triggered by an event in the subversion version control life cycle. The following are the hooks supported by Subversion.</p>
<p>In the hooks directory of a repository we can find these template files:<br />
post-commit.tmpl&#160;&#160;&#160;&#160;&#160;&#160;pre-unlock.tmpl<br />
post-lock.tmpl &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;pre-commit.tmpl<br />
start-commit.tmpl &#160;&#160;&#160;&#160;post-revprop-change.tmpl<br />
pre-lock.tmpl &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;post-unlock.tmpl&#160;&#160;&#160;&#160; pre-revprop-change.tmpl<br />
<strong><br />
start-commit</strong> Before the commit transaction starts<br />
<strong>pre-commit</strong> After the commit transaction starts but before the transaction is commited<br />
<strong>post-commit</strong> After the commit transaction completes<br />
<strong>pre-revprop-change</strong> Before a revision property is changed Repository Path,<br />
<strong>post-revprop-change:</strong> After a revision property is changed Repository Path<br />
<strong>pre-lock: &#160;</strong>Before the lock being acquired <strong><br />
post-lock: &#160;</strong>After the lock being acquired<br />
<strong><br /></strong>To test how a hook works, let&#8217;s create a repository in our Gnu/Linux Box.<br />
<strong><br />
svnadmin create hello<br /></strong><strong><br /></strong>Now we have a repository called hello and it will contain files like<br />
<strong>conf dav db format hooks joke.py locks pre-commit README.txt<br /></strong>Modify the conf/svnserve.conf to include passwd file and add users to the passwd file along with their passwords.<br />
<strong><br /></strong>Then run the server as svnserve -d -r hello<br />
To checkout :<br />
<strong>svn co svn://127.0.0.1<br /></strong><strong><br /></strong>Then lets move to the real work. We need to stop anybody who is trying to commit to our repository just because we are doing some important work on the server or we just dont want anybody to help us <img src='http://c0404161.cdn.cloudfiles.rackspacecloud.com/16442ca129554f399ff7b46457727509' alt=':)' class='wp-smiley' /> <br />
<strong><br /></strong>To do that, let&#8217;s create a file called pre-commit in hooks folder in the repository (hello). The content of the pre-commit should be :<br />
<strong><br /></strong>#!/usr/bin/env python<br />
# ====================================================================<br />
# The simplest pre-commit hook which prevents all the commits to the repository<br />
# This can be useful(?) when you are doing the backup of your subversion repo.<br />
# This small script will prevent the commit and will give a simple message<br />
# to the person who is commiting the changes.<br />
#<br />
# USAGE:<br />
# copy this script as pre-commit in the hooks directory of the svn server<br />
#<br />
# ====================================================================</p>
<p>import sys</p>
<p>MESSAGE=&#8221;"&#8221;<br />
Dear Sir,</p>
<p>As we are doing some important work in the server,all those who are submitting<br />
the changes will have to wait for some time.</p>
<p>Sorry for the inconvenience caused.</p>
<p>Regards,</p>
<p>Administrator.<br />
&#8220;&#8221;"<br />
# Messages written to the stderr will be shown to the person who is commiting.<br />
sys.stderr.write(MESSAGE)</p>
<p># Need to exit with anything other than 0 to fail the commit<br />
sys.exit(2)</p>
<p>Let&#8217;s change the mode of the pre-commit to executable (chmod +x pre-commit)<br />
<strong><br /></strong>To test this setup, lets create a sandbox and then try to commit our changes to the server.<br />
<strong>svn co svn://127.0.0.1<br />
cd 127.0.0.1<br />
mkdir test<br />
svn add test<br />
svn commit -m &#8220;adding the test directory&#8221;</p>
<p></strong>Now we will see the pre-commit hook in action:<br />
<strong><br /></strong>Adding test<br />
svn: Commit failed (details follow):<br />
svn: &#8216;pre-commit&#8217; hook failed with error output:</p>
<p>Dear Sir,</p>
<p>As we are doing some important work in the server,all those who are submitting<br />
the changes will have to wait for some time.</p>
<p>Sorry for the inconvenience caused.</p>
<p>Regards,</p>
<p>Administrator.</p>
<p><strong><br /></strong>This is the most simplest hook that can be implemented in Python. More complex hooks can be implemented in python using the svn module. More useful hooks examples are available from http://subversion.tigris.org/tools_contrib.html#hook_scripts<br />
<strong></p>
<p></strong>
</div>
<div></div>
]]></content:encoded>
			<wfw:commentRss>http://maxinbjohn.blog.com/2008/05/08/the-simplest-python-based-pre-commit-hook-in-subversion/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
