<?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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>I-Am-Bot &#187; open source</title>
	<atom:link href="http://iambot.net/tag/open-source/feed/" rel="self" type="application/rss+xml" />
	<link>http://iambot.net</link>
	<description>Code, technology and life</description>
	<lastBuildDate>Sat, 28 Aug 2010 16:00:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Why Symfony is THE PHP Framework to work with</title>
		<link>http://iambot.net/2009/07/symfony-framework/</link>
		<comments>http://iambot.net/2009/07/symfony-framework/#comments</comments>
		<pubDate>Sat, 18 Jul 2009 03:43:57 +0000</pubDate>
		<dc:creator>Srinath</dc:creator>
				<category><![CDATA[open source]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://iambot.net/?p=162</guid>
		<description><![CDATA[I've spent the last few days fruitfully, searching and comparing the most popular and promising of PHP frameworks. Before I get started, I know the automatic follow up will be PHP bashing, and hailing RoR as the savior of the world. This post isn't about a rails vs PHP comparison, though I intend to write [...]]]></description>
			<content:encoded><![CDATA[<p>I've spent the last few days fruitfully, searching and comparing the most popular and promising of PHP frameworks. Before I get started, I know the automatic follow up will be PHP bashing, and hailing RoR as <a href="http://www.prospotlight.com/pro/webdeveloper/website/ruby-on-rails-vs-php.html">the savior of the world</a>. This post isn't about a rails vs PHP comparison, though I intend to write on that shortly.</p>
<p><span id="more-162"></span></p>
<p>Anyone looking for a complete PHP framework will have definitely stumbled across these four major options</p>
<ul>
<li><a href="http://www.zend.com/en/">Zend</a> - <span style="text-decoration: line-through;">The original PHP framework that started it all</span> (Apparently CakePHP came earlier than Zend)</li>
<li><a href="http://cakephp.org/">Cake PHP</a> - Easy and light with support for both PHP 4.1+ and PHP 5+</li>
<li><a href="http://codeigniter.com">Codeigniter</a> - Relatively new lightweight framework</li>
<li><a href="http://symfony-project.org">Symfony</a> - Rails inspired, comprehensive</li>
</ul>
<p>Although there are many more frameworks out there in the wild, these are the most popular and actively developed. As you guessed, this post is about Symfony and why I think its the best. Calling something "the best" is sure to draw a lot of fire from all quarters, so I'll omit it hereon</p>
<p><strong>The Good:</strong></p>
<ul>
<li>Feature Rich - Has all the features one expects from a RAD framework - MVC design pattern, ORM tools, scaffolding, caching, authentication, internalization and localization</li>
<li>Actively Developed - The team not only works on the framework, it also incorporates suggestions/enhancements from community members</li>
<li>Extensive Plugin Repository - It has <strong>647 </strong>plugins from 283 contributors</li>
<li>Amazing Documentation - I can't stress on this enough. Documentation makes ALL the difference when you are spoilt for choice. In addition to the complete API reference, you have "The Book" which is a complete reference to learn Symfony step by step. Then there are the real world examples - Jobeet.com tutorial which guides you in making a Complete working website in 24 days (1 hour a day). And yes, you can check out the site <a href="http://jobeet.com">here<br />
</a> Then, you have the customary "Create a blog in 1 hour" tutorial, and another one that makes the admin interface</li>
<li>Flexible - There are always two ways to do something using Symfony. For ORM, you have doctrine and propel. For javascript you can use prototype(inbuilt), jQuery or Mootools. Supports XCache, eAccelerator, APC , Memcached for caching.</li>
<li>Automatic Admin Generation - Borrowed from Rails, this module makes it a breeze to generate a  optimized and fully functional CRUD interface for your applications. And yes, it does work perfectly well</li>
<li>Extensive developer tools - Symfony supports three deployment environments, along with very good developer tools that lets you configure, debug and monitor your application performance from the web page itself.</li>
<li>Integrated Testing Framework - The "Lime" toolkit allows for unit and functional tests to be written and executed with minimal fuss</li>
<li>Rails Inspired - Need I say more?</li>
</ul>
<p><strong>The Not So Good:</strong></p>
<ul>
<li>It is NOT a small and light framework. But I don't think you can consider 20 MB too large these days, comparing with RoR</li>
<li>Learning Curve - Don't use it if you want to finish your application yesterday. It takes time to learn how to use it, due to its strict adherence to coding standards and quality. If you are an experience programmer though, you will find it easier</li>
<li>Needs optimization - Even though it isn't a pain to optimize unlike RoR, it still needs some work like setting up caching, and using Memcached for database objects if you want to deploy a real world application on it. But then good documentation is available for that too</li>
<li>Its NOT for everyone - This is general to all frameworks. No framework, RoR included, is a "one-size-fits-all" deal. So before you decide to take the plunge, design your application, and put considerable time into thinking if you really need a framework. If all you need is a standard blogging engine, or a normal website with a couple of dynamic scripts, ANY framework in ANY language will be an overkill.</li>
</ul>
<p>If you can live with the above three points, then Symfony is for you. Even though I'm a complete beginner, I've started to love Symfony. I'm sure you will too, if you look at it objectively. So <a href="http://www.symfony-project.org/installation">install it</a>, <a href="http://www.symfony-project.org/doc/1_2/">learn it</a> and have fun!</p>
<p>Edit: Found another great post - <a href="http://www.mellowmorning.com/2007/08/18/ten-reasons-why-symfony-rocks-part-1/">http://www.mellowmorning.com/2007/08/18/ten-reasons-why-symfony-rocks-part-1/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iambot.net/2009/07/symfony-framework/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Sugar on a Stick</title>
		<link>http://iambot.net/2009/06/sugar-on-a-stick/</link>
		<comments>http://iambot.net/2009/06/sugar-on-a-stick/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 15:15:33 +0000</pubDate>
		<dc:creator>Srinath</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[os]]></category>

		<guid isPermaLink="false">http://iambot.net/?p=145</guid>
		<description><![CDATA[What can be sweeter than a name with Sugar in it? Does it help that its for students, its open source and is fun too? Well then I'm definitely talking about "Sugar On A Stick" - A new initiative that aims to put accessible, fun software on a pen drive that students can carry around: [...]]]></description>
			<content:encoded><![CDATA[<p>What can be sweeter than a name with Sugar in it? Does it help that its for students, its open source and is fun too? Well then I'm definitely talking about "<a href="http://http://wiki.sugarlabs.org/go/Sugar_on_a_Stick">Sugar On A Stick</a>" - A new initiative that aims to put accessible, fun software on a pen drive that students can carry around:</p>
<ul>
<li> Sugar on a Stick as 1-to-1 computing in an elementary school</li>
<li> Sugar on a Stick to empower middle- and high-school students to help test, and learn computing platforms as learning tools</li>
<li> Sugar on a Stick for learning conferences to let people try Sugar and collaborate with other conference participants</li>
</ul>
<p>Its based off Fedora 11, comes as a 380 MB ISO, and is primarily runs off your USB or CD media. The first release, tastily titled <a href="http://wiki.sugarlabs.org/go/Sugar_on_a_Stick/Strawberry">"Strawberry</a> was released on 24th of this month. So here is to a great initiative, and I'll be taking it for a spin this week and get back with my thoughts.</p>
]]></content:encoded>
			<wfw:commentRss>http://iambot.net/2009/06/sugar-on-a-stick/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The best bug report EVER!</title>
		<link>http://iambot.net/2009/05/the-best-bug-report-ever/</link>
		<comments>http://iambot.net/2009/05/the-best-bug-report-ever/#comments</comments>
		<pubDate>Wed, 27 May 2009 14:11:25 +0000</pubDate>
		<dc:creator>Srinath</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://iambot.net/?p=114</guid>
		<description><![CDATA[This guy sure knows how to file a bug report http://sources.redhat.com/ml/glibc-bugs/2009-05/msg00028.html]]></description>
			<content:encoded><![CDATA[<p>This guy sure knows how to file a bug report</p>
<p><a href="http://sources.redhat.com/ml/glibc-bugs/2009-05/msg00028.html">http://sources.redhat.com/ml/glibc-bugs/2009-05/msg00028.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://iambot.net/2009/05/the-best-bug-report-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lightweight alternatives to phpBB</title>
		<link>http://iambot.net/2009/05/lightweight-alternatives-to-phpbb/</link>
		<comments>http://iambot.net/2009/05/lightweight-alternatives-to-phpbb/#comments</comments>
		<pubDate>Wed, 27 May 2009 04:27:51 +0000</pubDate>
		<dc:creator>Srinath</dc:creator>
				<category><![CDATA[blog]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://iambot.net/?p=112</guid>
		<description><![CDATA[phpBB is the holy grail of free and open source forum/discussion board on the internet. With tons of plugins, themes and a amazing community, its probably the best too. But for those like me who don't want the bloat, and would rather use a simple and easy to manage forum, here are a few alternatives: [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.phpbb.com/">phpBB</a> is the holy grail of free and open source forum/discussion board on the internet. With tons of plugins, themes and a amazing community, its probably the best too. But for those like me who don't want the bloat, and would rather use a simple and easy to manage forum, here are a few alternatives:</p>
<p>1. <a href="http://simplemachines.org">SimpleMachines</a> - Probably the second best known free forum script. Slimmer than phpBB, and with a better, cleaner admin interface, its my personal favourie. And yes, it does have its fair share of themes/plugins and good community support.</p>
<p>2. <a href="http://fluxbb.org/">FluxBB</a> - This one is "really" light. The download comes in under 300kb, is XTML and CSS valid, and with a minimal but delightful interface is bound to loved by Mac fans.</p>
<p>3. <a href="http://bbpress.org/">bbPress</a> - Comes from the creators of WordPress, its their in house forum software. Nuff said.</p>
<p>4. <a href="http://getvanilla.com/">Vanilla</a> - Other than having a tasty name, it also offers a very small and simple forum. Great for "minimal" fans.</p>
<p>5. <a href="http://www.phorum.org/">Phorum</a> - Its an open source PHP forum. Probably not as good looking as the others, but does the job well.</p>
]]></content:encoded>
			<wfw:commentRss>http://iambot.net/2009/05/lightweight-alternatives-to-phpbb/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Javascript to generate query from form</title>
		<link>http://iambot.net/2009/05/javascript-to-generate-query-from-form/</link>
		<comments>http://iambot.net/2009/05/javascript-to-generate-query-from-form/#comments</comments>
		<pubDate>Thu, 07 May 2009 10:41:41 +0000</pubDate>
		<dc:creator>Srinath</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://iambot.net/?p=64</guid>
		<description><![CDATA[One of the most mundane tasks in web development is insertion of forms into databases. Writing a query for each form is cumbersome and isn't the best way to go about it. Now before I get started, there are "far better" ways of doing it like using datagrid, or form designers, etc. Since I don't [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most mundane tasks in web development is insertion of forms into databases. Writing a query for each form is cumbersome and isn't the best way to go about it. Now before I get started, there are "far better" ways of doing it like using datagrid, or form designers, etc. Since I don't find them suitable for my taste, I've put together a very simple javascript that can do the job.</p>
<p>My example is based on PHP/MySQL and uses jQuery</p>
<p><strong>The Problem: </strong>Generating an Insert Query for the particular form. Traditionally, if you form had say 25 fields, you'll name them, and post/get them to a server side script like php. Then you have to get each field using the $_POST or $_GET variables, and generate the query. Imagine doing this for 25 fields! Hope you get the point.</p>
<p><strong>The Solution:</strong> Automatically traverse the form, generate the query using javascript, then submit it to the server side script by Ajax POST using jQuery. The function takes 3 arguments: table name, success message, error message.</p>
<p><strong>The Limitations:</strong> As you'd imagine, there are a few serious limitations:</p>
<ul>
<li>The order of the form elements should match the order of the fields in the table. Needless to say the number of form elements should also match the number of fields in the table.</li>
<li>The database name is hard coded into the server side script. Since my work involves only a single database, I find it easier to keep things simple.</li>
</ul>
<p><strong>Steps:</strong></p>
<p>1. In your normal HTML form, arrange the input boxes in the order that they appear in your database table. In this example, we have 3 text boxes: user, email and pass.</p>
<blockquote><p>&lt;div id="container"&gt;<br />
&lt;form id="loginForm" method="POST" action="dbprocess.php"&gt;<br />
&lt;dd&gt;<br />
&lt;dl&gt;&lt;label for="user"&gt;Username&lt;/label&gt;&lt;/dl&gt;<br />
&lt;dt&gt;&lt;input type="text" name="user" maxlength="20" /&gt;&lt;/dt&gt;<br />
&lt;/dd&gt;<br />
&lt;dd&gt;<br />
&lt;dl&gt;&lt;label for="email"&gt;Email&lt;/label&gt;&lt;/dl&gt;<br />
&lt;dt&gt;&lt;input type="text" name="email" maxlength="20" /&gt;&lt;/dt&gt;<br />
&lt;/dd&gt;<br />
&lt;dd&gt;<br />
&lt;dl&gt;&lt;label for="pass"&gt;Password&lt;/label&gt;&lt;/dl&gt;<br />
&lt;dt&gt;&lt;input type="password" name="pass" maxlength="8" /&gt;&lt;/dt&gt;<br />
&lt;/dd&gt;<br />
&lt;input type="submit" value="Submit" id="submitForm" /&gt;<br />
&lt;/form&gt;<br />
&lt;/div&gt;</p></blockquote>
<p>2. Include the jQuery.js and formSubmit.js files in the header</p>
<p>3. Insert the following Javascript code that disables the submit button of the form, and calls our formSubmit function instead. The form submission is handled in the function via jQuery Ajax request.</p>
<blockquote><p>&lt;script type="text/javascript&gt;</p>
<p>$(document).ready(function(){<br />
$("#loginForm").submit(function(){<br />
return false;<br />
});<br />
$("#submitForm").click(function(){<br />
formSubmit("users","New user added successfully!","Error adding user!");<br />
});<br />
});<br />
&lt;/script&gt;</p></blockquote>
<p>4. Write your server side PHP script to connect to the database, and perform the operation</p>
<blockquote><p>&lt;?php<br />
$query = stripslashes($_POST["query"]);</p>
<p>if(!$con = mysql_connect("localhost","root",""))<br />
die("Database Connection Error");</p>
<p>if(!mysql_select_db("login"))<br />
die("Database does not exist");</p>
<p>$result = mysql_query($query,$con);<br />
if($result)<br />
echo "1";<br />
else<br />
echo mysql_error($con);<br />
mysql_close($con);<br />
?&gt;</p></blockquote>
<p>And that's it! Your form insertion should be working provided you took care of the limitations. This script is useful if you have many forms with lots of input fields in your application. Comments, suggestions and criticisms welcome!</p>
<p><a href="http://mercury.indservers.com/~iambotne/wp-content/uploads/2009/05/formsubmit.zip">Download</a> the script with example</p>
]]></content:encoded>
			<wfw:commentRss>http://iambot.net/2009/05/javascript-to-generate-query-from-form/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
