<?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>am i works? &#187; drupal</title>
	<atom:link href="http://amiworks.co.in/talk/category/drupal/feed/" rel="self" type="application/rss+xml" />
	<link>http://amiworks.co.in/talk</link>
	<description>all about my work</description>
	<lastBuildDate>Fri, 02 Dec 2011 09:49:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Round off</title>
		<link>http://amiworks.co.in/talk/round-off/</link>
		<comments>http://amiworks.co.in/talk/round-off/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 16:08:19 +0000</pubDate>
		<dc:creator>Amit Kumar Singh</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[pune tech events]]></category>

		<guid isPermaLink="false">http://amiworks.co.in/talk/?p=226</guid>
		<description><![CDATA[Their are lot&#8217;s of tech events happening in Pune. Recently Concluded was IdeaCamp 2, you can read about it on Bhavya&#8217;s blog post. Upcoming events that I know of WATBlog Wednesday Pune on 21st January, Drupal Camp Pune, it is going to happen on 31st January, On 13th &#8211; 14 Feb( yes !!!) we are [...]]]></description>
			<content:encoded><![CDATA[<p>Their are lot&#8217;s of tech events happening in Pune.</p>
<p>Recently Concluded was IdeaCamp 2, you can read about it on <a href="http://barcamp.org/IdeaCampPune2">Bhavya&#8217;s blog post</a>.</p>
<p>Upcoming events that I know of</p>
<ol>
<li><a href="http://wednesday.watblog.com/">WATBlog Wednesday Pune</a> on 21st January,</li>
<li><a title="Pune drupal camp" href="http://pune.drupalindia.in"> Drupal Camp Pune</a>, it is going to happen on 31st January,</li>
<li>On 13th &#8211; 14 Feb( yes !!!) we are having <a title="GNUnify'09.... excellence exemplified" href="http://gnunify.in/09/">Gnunify&#8217;09</a>.  and</li>
<li><a href="http://joomladay.co.in">Joomla Day India</a>, for the first time in India, we will have a day dedicated to Joomla. This will happen on 25th April.  Announcement about it should happen in a day or two.</li>
</ol>
<p>Too know about more tech events that are happening or happen in Pune, keep checking <a title="Pune Tech Calendar" href="http://upcoming.yahoo.com/group/5007/">Pune Tech Events Calendar</a>.</p>
<p>For last few week I have been doing lot of things and learned a lot, stay tuned..  till then</p>
<p>Have fun</p>
<!-- WP Boastful Plugin by WPoets Team --> <div id='boastful'><strong></strong></div><hr style="border-top:black solid 1px" /><a href="http://amiworks.co.in/talk/round-off/">Round off</a> was first posted on January 19, 2009 at 9:38 pm.<br />©2008 "<a href="http://amiworks.co.in/talk">am i works?</a>". <br />]]></content:encoded>
			<wfw:commentRss>http://amiworks.co.in/talk/round-off/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Drupal Goes Indic Using akIndicPlugin</title>
		<link>http://amiworks.co.in/talk/drupal-goes-indic-using-akindicplugin/</link>
		<comments>http://amiworks.co.in/talk/drupal-goes-indic-using-akindicplugin/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 05:09:28 +0000</pubDate>
		<dc:creator>Amit Kumar Singh</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[drupal in indian languages]]></category>
		<category><![CDATA[indic drupal]]></category>
		<category><![CDATA[tinmce for drupal]]></category>

		<guid isPermaLink="false">http://amiworks.co.in/talk/drupal-goes-indic-using-akindicplugin/</guid>
		<description><![CDATA[Abhishek has written, how you can integrate my akIndicPlugin for TinyMCE to Drupal. I have already written how you can integrate this to Joomla. Drupal Goes Indic Using akIndicPlugin was first posted on November 25, 2008 at 5:09 am.©2008 "am i works?".]]></description>
			<content:encoded><![CDATA[<p><a href="http://nagartech.blogspot.com/">Abhishek</a> has written, <a title="Indic touch to drupal" href="http://www.blog.abhisheknagar.com/?p=31">how you can integrate</a> my <a href="http://amiworks.co.in/talk/akindicplugin-transliteration-in-indian-lanuguages-for-tinymce/">akIndicPlugin for TinyMCE</a> to Drupal. I have already written how you can integrate this to <a href="http://amiworks.co.in/talk/akindicplugin-for-tinymce-and-joomla/">Joomla</a>.</p>
<!-- WP Boastful Plugin by WPoets Team --> <div id='boastful'><strong></strong></div><hr style="border-top:black solid 1px" /><a href="http://amiworks.co.in/talk/drupal-goes-indic-using-akindicplugin/">Drupal Goes Indic Using akIndicPlugin</a> was first posted on November 25, 2008 at 5:09 am.<br />©2008 "<a href="http://amiworks.co.in/talk">am i works?</a>". <br />]]></content:encoded>
			<wfw:commentRss>http://amiworks.co.in/talk/drupal-goes-indic-using-akindicplugin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>5 key skills of a successful web application developer</title>
		<link>http://amiworks.co.in/talk/5-key-skills-of-a-successful-web-application-developer/</link>
		<comments>http://amiworks.co.in/talk/5-key-skills-of-a-successful-web-application-developer/#comments</comments>
		<pubDate>Tue, 03 Jun 2008 10:33:28 +0000</pubDate>
		<dc:creator>Amit Kumar Singh</dc:creator>
				<category><![CDATA[css]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[general]]></category>
		<category><![CDATA[joomla]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[skills for web development]]></category>
		<category><![CDATA[web app]]></category>
		<category><![CDATA[web developer]]></category>

		<guid isPermaLink="false">http://amiworks.co.in/talk/5-key-skills-of-a-successful-web-application-developer/</guid>
		<description><![CDATA[Most probably you will be knowing about all these skills already, it is common sense, still I have found so many developers who just know just one server side language(usually java or .net) and then they think themselves as superman/superwoman. In web application development, that is just one thing. You need to know about lot [...]]]></description>
			<content:encoded><![CDATA[<p>Most probably you will be knowing about all these skills already, it is common sense, still I have found so many developers who just know just one server side language(usually java or .net) and then they think themselves as superman/superwoman.</p>
<p>In web application development, that is just one thing. You need to know about lot more things before you can consider yourself successful.</p>
<p>So, if you know them already that&#8217;s good, you don&#8217;t need to read any further otherwise continue reading to know why each of these skills are important for you(the web developer).</p>
<p>Here are the skills</p>
<ol>
<li>the structure : HTML</li>
<li>the presentation: CSS</li>
<li>the behavior: JavaScript</li>
</ol>
<p>With these three skill you have ability to become the super cool static website developer or a front end developer</p>
<ol>
<li>the database: SQL</li>
<li>the server-side language : PHP( other options are JSP/ASP/PERL/RUBY choice is yours, as all the fight for best happens here)</li>
</ol>
<p>These two skill will make you a web developer.</p>
<p>All five of these skills will make you a most prized web developer, in your organization.</p>
<p><span id="more-102"></span></p>
<h3>HTML</h3>
<p>You think you know HTML, think again. I have been interviewing lot of people, they have all rated themselves nearing 7-8 out of 10, whenever I asked them to rate their knowledge of html. Every time I tried to verify their claim, they came down to 2-3, reason is simple, HTML is very simple and everyone thinks they can bluff their way through, After all what is HTML, just tables and forms isn&#8217;t?</p>
<p>Well you are wrong, HTML is the one of the most important skill that you should have, you should know HTML better then you know your server side language, why?</p>
<p>Simply because your server side language is optional, but HTML is must, even when you dream about a web page. It gives your website a structure and layout. This is what an end user see&#8217;s and care about. You don&#8217;t know HTML, you can&#8217;t fix the strange behaviors that you see in you website.</p>
<p>Without proper layout, you site/application is nothing.  With proper use of HTML you can not only create most accessible websites, you can also create a website which will look good in absence of css and will work without javascript.</p>
<p>So go and revise you HTML again, and remember just know is not enough, you have to understand where to use what.</p>
<h3>CSS</h3>
<p>CSS is used to give the look and feel to your website. You as a web developer need to know and understand how it works, and how you can simplify the html layout&#8217;s so that it becomes manageable. Design is what your users/client sees.</p>
<p>On the basis of your sites design, your ability is judged initially.</p>
<p>CSS is easy to learn, but it&#8217;s application is another story, all thanks to browser incompatibilities.  So to make your website look good in all the browser you need CSS. Just knowing CSS is not enough, you have to understand it&#8217;s application also.</p>
<h3>JavaScript</h3>
<p>JavaScript is not just for validations as many of you think, it is what gives you ability to do some nifty things with your webpage(like lightbox, rating&#8217;s , ajax).</p>
<p>It adds behavior to  your website, makes it interesting and improves the users experience. If you have still not chosen any framework, do it now. jQuery, prototype, YUI, Dojo are some of the interesting frameworks that make developers life easier.</p>
<p>If have master all the three skills above you can already consider your self above average web developer even if that person has 10 years of experience. Remember we are in IT industry. IT is Information Technology, where Information aka Knowledge is important.</p>
<h3>SQL</h3>
<p>The most neglected in the bunch, when this is the second most important skill that a web developer should have.</p>
<p>Why? what a question, we are building web applications that almost always relay on database, If you don&#8217;t understand the SQL how do you propose to get the data fast enough from your database? Almost all the websites can be distilled down to simple SELECT,INSERT, UPDATE operations. If you can master them, you can dictate your terms.</p>
<p>When I say SQL I don&#8217;t just mean queries but also the database schema and intricacies of database itself.</p>
<h3>PHP</h3>
<p>Before you get up in arms against me for suggesting PHP and not your favorite language, understand this, I am talking about web applications only, and their is no other scripting language which is so easy to learn and program with. At the same time, it provides functions for everything you can think off that is required in a web application development environment.</p>
<p>Please spare me the talk about java and .net they are platforms and/or programming language. If you understand  &#8220;you should not use sword to do the job of needle and vice versa&#8221; then you know what I mean.</p>
<p>Their are many frameworks that you can use. Also their are many ready to use open source packages that you can use and adapt to your needs, you don&#8217;t need to start from scratch all the time.</p>
<p>If you have read till here, then I would love to know your views on these skills and others that you think are important for a successful web development career.</p>
<!-- WP Boastful Plugin by WPoets Team --> <div id='boastful'><strong></strong></div><hr style="border-top:black solid 1px" /><a href="http://amiworks.co.in/talk/5-key-skills-of-a-successful-web-application-developer/">5 key skills of a successful web application developer</a> was first posted on June 3, 2008 at 10:33 am.<br />©2008 "<a href="http://amiworks.co.in/talk">am i works?</a>". <br />]]></content:encoded>
			<wfw:commentRss>http://amiworks.co.in/talk/5-key-skills-of-a-successful-web-application-developer/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Drupal Form API : An Introduction</title>
		<link>http://amiworks.co.in/talk/drupal-form-api-an-intrdouction/</link>
		<comments>http://amiworks.co.in/talk/drupal-form-api-an-intrdouction/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 13:50:20 +0000</pubDate>
		<dc:creator>Amit Kumar Singh</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://amiworks.co.in/talk/drupal-form-api-an-intrdouction/</guid>
		<description><![CDATA[Update : this article is only relevant to Drupal 5.x, with coming of Drupal 7 this is completely out dated. I am guessing you must have created lot&#8217;s of html forms before, now you have started using Drupal and wondering how to create forms in Drupal and process them. If this is so then read on&#8230;. What [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Update</strong> : this article is only relevant to Drupal 5.x, with coming of Drupal 7 this is completely out dated.</p>
<p>I am guessing you must have created lot&#8217;s of html forms before, now you have started using <a title="an open source content management platform" href="http://drupal.org" target="_blank">Drupal</a> and wondering how to create forms in Drupal and process them. If this is so then read on&#8230;.</p>
<p><strong>What is Drupal Form API?</strong></p>
<p>Drupal form api, is nothing but a set of functions(off-course, that&#8217;s what api means) provided by Drupal as part of core functionality, since version 4.7, for us Drupal developers to create, validate and process our html forms, in a secure manner. When i say secure, i mean that you form data is almost free from injection attacks, but you do need to validate this data as per your own application requirements.</p>
<p>It essentially means we will be creating arrays with relevant data and Drupal&#8217;s form generation engine will generate the html form for us.</p>
<p><strong>Ok, so what?</strong></p>
<p>I can create my own forms using html, why should i care about Drupal&#8217;s form api?</p>
<p>Simple, if you want to extend the forms provided by other Drupal modules or Drupal itself(which you will have too, most of the time), with out actually modifying their code, then use Drupal&#8217;s form api.</p>
<p>See if we want to use the benefits of modularity Drupal provides we should be able to modify the forms created by others to suit our needs.</p>
<p>Well you must be wondering, this can be done by editing the code provided by the module. Sure you can do that, but in the process you loose the ability to upgrade that module when a new version comes along, because upgrading means porting all those changes again, now you are stuck.</p>
<p>On the other hand if you have your own module, using form api, then all you need to it is just modify in you source files, while you can simple upgrade the module without worrying about loosing your changes.</p>
<p>This also means you can split you form in many usable components and the piece them together for end user. This will give you reusability benefits that we programmers strive for.</p>
<p><strong>Not yet convinced&#8230; </strong></p>
<p>Let me see what i can do about that.. Ok let&#8217;s try this line of thought, when you used to create html forms of similar types, one after other from one project to other did you ever thought their should be a form generator, where you specify the parameter and it automatically generates the form for you. If yes then, consider your wish granted as Drupal&#8217;s Form API is one such thing that makes form creation an easy task.</p>
<p>Ok, now i am assuming that you understood the importance of form api, then next thing to do is to understand how Drupal process the forms. When you understand the flow, you can control it. So let&#8217;s get on to it.</p>
<p><strong>Drupal Form process flow</strong></p>
<p><a title="Drupal Form Api" href="http://www.flickr.com/photos/thecancerus/2394730671"><img src="http://farm4.static.flickr.com/3006/2394730671_06bd191e5c.jpg" border="0" alt="Drupal Form Api" /></a></p>
<p><span id="more-48"></span></p>
<p>This whole process starts when we call the <em>drupal_get_form()</em> function. It starts by creating <em>$form_values</em> to an empty array and <em>$form_submitted</em> to false. <em>$form_values</em> variable holds the submitted data.</p>
<p>Next step is to set the unique token  based on <em>drupal_private_key</em>, it is used only for logged in users, next important step is to set a <em>form ID</em> which is inserted with form as hidden field.</p>
<p><img src="http://amiworks.co.in/talk/wp-content/4.jpg" alt="Drupal Form API: Initalization" /></p>
<p>Now, form generation engine collects the information about  form elements by calling <em>element_info()</em> function. This in turn calls <em>hook_element()</em>, which might be implemented by other modules. We can use this hook to create our own specialized element types, eg textbox which only takes numeric input.</p>
<p>Now engine know the definition of all element type, so it next it will look for form validation function. The form validation function to use can be specified in any of the forms <em>#validate</em>, or <em>formID_validate() </em>or <em>#base _validate()</em>. <em>#base</em> is the value that you specify with the form array.</p>
<p>Engine will look for submit function to which the form will be submitted. They can be specified as value <em>#submit </em> for key, or <em>formID_submit()</em> function or <em>#base_submit()</em> function. Once it gets the submit function for the form it calls <em>hook_form_alter()</em> to give any module which wants to change the form. Basically it&#8217;s our time to modify someone else&#8217;s form to add or remove the input fields and/or descriptions.</p>
<p><img src="http://amiworks.co.in/talk/wp-content/3.jpg" alt="Drupal Form API: Creation and Modification" /></p>
<p>Now it will build the form, when whole form is build it will call any function specified in the <em>#after_build</em>. Then it will look for theming options for the form, by calling <em>#theme</em> value if specified or <em>theme_get_function()</em> to get the theme. Now engine is ready for rendering the form, so it gives us one last chance to alter the form by calling #pre_render value that we set.</p>
<p>It is convert the data array to html form by calling the <em>drupal_render()</em> function, the generated html will be returned. That&#8217;s it engine is done, and a form is shown to user.</p>
<p><img src="http://amiworks.co.in/talk/wp-content/1.jpg" alt="Drupal Form API: Rendering" /></p>
<p>Once form is submitted, Drupal form engine comes back to live again and validates it by checking  <em>$_POST</em> is not empty and <em>$_POST['form_id'] </em> has a sting value that matches with the Drupal form ID or <em>#base</em> value. It also checks if the form uses the Drupal&#8217;s token mechanism, it check for valid token, if token mechanism is used. It checks to ensure the presence of all required fields and also that the value of radio buttons, check boxes and selects are actually from what was send to the form. Once this is done it call the validate function that user defined for his form.</p>
<p><img src="http://amiworks.co.in/talk/wp-content/2.jpg" alt="Drupal Form API : Validation and Processing" /></p>
<p>If validation fails then, form is sent back to user with appropriate error message. If the validation passes then form engine passes the form values to the submit function defined by <em>#submit</em> property. This is where you can do whatever you need to do with the form data.</p>
<p>Finally user will be redirected to the path specified by <em>#redirect</em> property, in absence of this property user will be redirected to the form again.</p>
<p>Now, check out the presentation given by my colleague Payel, on Drupal form api for more information. She once commented that after using Forms API, she almost forgot how to use html forms.</p>
<iframe src="http://www.slideshare.net/slideshow/embed_code/151375" width="425" height="356" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
<p>Now the time has come to head back to Drupal&#8217;s website and read following articles.</p>
<ol>
<li> <a title="Drupal Form API quick start guide" href="http://api.drupal.org/api/file/developer/topics/forms_api.html/5">Forms API QuickStart guide</a>.</li>
<li><a title="Drupal Forms API Reference" href="http://api.drupal.org/api/file/developer/topics/forms_api_reference.html/5">Forms API Reference</a>.</li>
</ol>
<p>Finally download or take a print of <a title="Drupal % Forms API cheatsheet" href="http://www.edocr.com/doc/4/drupal-5-forms-api-cheat-sheet">Forms API cheatsheet from edocr</a>.</p>
<!-- WP Boastful Plugin by WPoets Team --> <div id='boastful'><strong></strong></div><hr style="border-top:black solid 1px" /><a href="http://amiworks.co.in/talk/drupal-form-api-an-intrdouction/">Drupal Form API : An Introduction</a> was first posted on April 7, 2008 at 1:50 pm.<br />©2008 "<a href="http://amiworks.co.in/talk">am i works?</a>". <br />]]></content:encoded>
			<wfw:commentRss>http://amiworks.co.in/talk/drupal-form-api-an-intrdouction/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>

