<?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>Nodesman</title>
	<atom:link href="http://nodesman.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://nodesman.com</link>
	<description>WordPress Consultant</description>
	<lastBuildDate>Fri, 18 May 2012 15:38:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Break It Before You Make It</title>
		<link>http://nodesman.com/break-it-before-you-make-it/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=break-it-before-you-make-it</link>
		<comments>http://nodesman.com/break-it-before-you-make-it/#comments</comments>
		<pubDate>Thu, 17 May 2012 19:49:51 +0000</pubDate>
		<dc:creator>root</dc:creator>
				<category><![CDATA[Post Series]]></category>
		<category><![CDATA[Software Testing Series]]></category>

		<guid isPermaLink="false">http://nodesman.com/?p=62</guid>
		<description><![CDATA[Whether you work on your own idea or on a project for a client, it is essential to internalize the idea into your mind. It is important to visualize the end product. To be able to see in your mind&#8217;s eye what the interface will look like is extremely crucial. I have found that I [...]]]></description>
			<content:encoded><![CDATA[<p>Whether you work on your own idea or on a project for a client, it is essential to internalize the idea into your mind. It is important to visualize the end product. To be able to see in your mind&#8217;s eye what the interface will look like is extremely crucial. I have found that I am able to work with far less stress and am able to make much more progress in far less time when I have a clear internal structural understanding of how my application is going to work.</p>
<h3>Write Test Cases First!</h3>
<p>Whether or not you have the luxury of having your work tested by a tester it is essential to write test cases for the code you are about to write before starting to write it. Writing tests first yourself dramatically changes the way a implementation approached.</p>
<p>When I say tests, I <strong>do not mean unit tests</strong>. Unit tests define the API interfaces that will be defined and the expected results from each programming construct. Tests are clear definitions of what is expected for a range of inputs, what behavior should not happen, and what should happen if the application is used in invalid ways. An example test case for a registration form:</p>
<address><strong>Action:</strong> The user does not fill out the password twice in the password fields. The user then clicks on the Register button <strong>Result:  </strong>The registration form field loads again  with a error message indicating that the password field should be filled in twice. All the other fields are pre-populated with their original data with the exception of the CAPTCHA field.</address>
<p>Unit tests are not enough for defining the outcome of an application. Unit tests are limited in their ability to test actual functionality as they will be used by the end-user.</p>
<h3>Defining Tests First Avoids Cognitive Bias</h3>
<p>After you have spent dozens of hours building an application a programmer is usually blinded to the inputs and possible usages of his application which can cause it to break.</p>
<p>This is not a character flaw in people. By design us humans cannot effectively attempt to break what we just created because we have a tendency to fall in love with our creation. We will end up owning the code personally in a subconscious level. It is psychologically impossible to want to break something you put a great deal of effort in making. You are naturally inclined to take the routes that are likely to show that the application you built is working. You are cognitively blinded from finding ways to break the software you made.</p>
<h3>Defining Tests First Saves Time and Money</h3>
<p>When you start writing an application without the full understanding of the application you tend to design as you code. This is a very bad practice and should be avoided. You may even get more ideas on implementation of that tiny little feature. This scope creep is a addictive test-develop viscious loop that is going to cost a lot of time.</p>
]]></content:encoded>
			<wfw:commentRss>http://nodesman.com/break-it-before-you-make-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Cut, Copy, Paste In Emacs</title>
		<link>http://nodesman.com/how-to-copypaste-in-emacs/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-to-copypaste-in-emacs</link>
		<comments>http://nodesman.com/how-to-copypaste-in-emacs/#comments</comments>
		<pubDate>Wed, 09 May 2012 05:58:05 +0000</pubDate>
		<dc:creator>root</dc:creator>
				<category><![CDATA[Emacs]]></category>

		<guid isPermaLink="false">http://nodesman.com/?p=268</guid>
		<description><![CDATA[The most basic text editing task in emacs is copying and pasting text. Emacs existed in days prior to the concept of &#8220;copy&#8221; and &#8220;paste&#8221; came into being. Back in the day the task of making a copy and reproducing it elsewhere was called kill and yank. Highlighting Text To highlight text take the cursor [...]]]></description>
			<content:encoded><![CDATA[<p>The most basic text editing task in emacs is copying and pasting text. Emacs existed in days prior to the concept of &#8220;copy&#8221; and &#8220;paste&#8221; came into being. Back in the day the task of making a copy and reproducing it elsewhere was called kill and yank.</p>
<h2>Highlighting Text</h2>
<p>To highlight text take the cursor to the start or end of the text where you want to start highlighting and then press Ctrl+Space. Release the keys then move the cursor around to cover the text that should be copied or cut.</p>
<figure class="full-width-mobile " style="width: 506px;"><a href="http://nodesman.com/wp-content/uploads/2012/05/Screenshot-1.png" class="fancybox" title=""><img alt="" class="responsive wp-image-269" src="/" data-src="wp-content/uploads/2012/05/Screenshot-1-e1336543015784.png" /></a></figure>
<h2>Operations on highlighted text</h2>
<table cellspacing="10" cellpadding="10">
<tbody>
<tr>
<td><strong>Copy:</strong></td>
<td>Alt+W</td>
</tr>
<tr>
<td><strong>Cut:</strong></td>
<td>Ctrl+W</td>
</tr>
<tr>
<td><strong>Paste:</strong></td>
<td>Ctrl+y</td>
</tr>
</tbody>
</table>
]]></content:encoded>
			<wfw:commentRss>http://nodesman.com/how-to-copypaste-in-emacs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emacs: Text Editor of the Giants</title>
		<link>http://nodesman.com/emacs-text-editor-of-the-giants/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=emacs-text-editor-of-the-giants</link>
		<comments>http://nodesman.com/emacs-text-editor-of-the-giants/#comments</comments>
		<pubDate>Fri, 06 Apr 2012 06:37:54 +0000</pubDate>
		<dc:creator>root</dc:creator>
				<category><![CDATA[Emacs]]></category>
		<category><![CDATA[Programmers]]></category>

		<guid isPermaLink="false">http://nodesman.com/?p=260</guid>
		<description><![CDATA[Most of us who make software fail to realize how significant an effect the text editor we use to write the code has on our productivity and the quality of work we do. Most of us are in general resignation to the fact that there is only cut, copy, paste and probably some auto-completion available [...]]]></description>
			<content:encoded><![CDATA[<p>Most of us who make software fail to realize how significant an effect the text editor we use to write the code has on our productivity and the quality of work we do. Most of us are in general resignation to the fact that there is only cut, copy, paste and probably some auto-completion available in the code editing software that we use.</p>
<p>Your productivty and the quality of your code and even your ability to think in a higher level of abstraction can be aided or hindered by the text editor you use.</p>
<h2>Emacs: Extension of Your Hand</h2>
<p>Emacs is extensible. Power users have customized it so much that they&#8217;ve turned the editor into an extension of their own hands. Some have extended it so well as to run email clients, a browser, chat clients, IRC clients all within emacs.</p>
<p>Emacs is famous for being the hacker&#8217;s text editor &#8211; the one that is used by the most technically savvy, most productive programmers.</p>
<h2>Learning Emacs</h2>
<p>I am a beginner to using Emacs myself.  You don&#8217;t sit and learn emacs. Emacs is NOT intuitive. You can&#8217;t get how to do even the most fundamental tasks like copying, pasting, cutting just by looking at the interface. You won&#8217;t even know how to exit the program when you start it! Most people just give up completely when encountering such problems. I did too when I first opened emacs to find out what that old dude with a beard who came to my college  said he created.</p>
<p>The most authoritative resource on the topic at the time of this writing seems to be EmacsWiki. It is a very very badly organized and written website that is barely understandable for a beginner. I instead <a href="https://peepcode.com/products/meet-emacs">opted to purchase Peepcode&#8217;s screencast on emacs</a>. Anything that saves me hours of time later is damn good investment. I highly recommend buying it.</p>
<p>The video is around 50 minutes or so long and it is jam packed with tips and tricks. I was only able to get upto 20 minutes before needing to stop and jot down everything that was said. I&#8217;m planning on revisiting the screencast, learn another 10 minutes of tips and tricks and then apply them the following month.</p>
<h2>Conclusion</h2>
<p>Emacs is a text editor that you gradually mold to your preference. There are few hard and fast rules like in other text editor where EVERYTHING is pre-defined.</p>
]]></content:encoded>
			<wfw:commentRss>http://nodesman.com/emacs-text-editor-of-the-giants/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How I Learned To Code For WordPress</title>
		<link>http://nodesman.com/how-i-learned-to-code-for-wordpress/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=how-i-learned-to-code-for-wordpress</link>
		<comments>http://nodesman.com/how-i-learned-to-code-for-wordpress/#comments</comments>
		<pubDate>Sat, 10 Mar 2012 01:41:27 +0000</pubDate>
		<dc:creator>root</dc:creator>
				<category><![CDATA[WordPress Plugin Development]]></category>

		<guid isPermaLink="false">http://nodesman.com/?p=244</guid>
		<description><![CDATA[My interest to learn WordPress came from wanting to  be more than just a PHP developer. Sure I knew this language pretty well. But hadn&#8217;t made anything of mention. Straight out of college I could not idle away for 6 months. So I started learning WordPress. I have been making WordPress themes and plugins for [...]]]></description>
			<content:encoded><![CDATA[<p>My interest to learn WordPress came from wanting to  be more than just a PHP developer. Sure I knew this language pretty well. But hadn&#8217;t made anything of mention. Straight out of college I could not idle away for 6 months. So I started learning WordPress.</p>
<p>I have been making WordPress themes and plugins for over 2 years now. I feel like I have reached a stage where there is absolutely nothing in WordPress I cannot figure out on my own and cannot handle on my own. I am not yet there where I can generate complex plugins in a matter of minutes.</p>
<h2>WordPress Theme Development: My First Theme</h2>
<p>I started out by creating a simple WordPress theme. It wasn&#8217;t a very good one. It was just decent enough. I tried to submit it to the WordPress.org repository. I kept getting error messages saying the theme is missing this, that, this and that. I eventually gave up on distributing the theme. It wasn&#8217;t a very good one but it was very very minimal. Didn&#8217;t think lot of people would have downloaded and used it.</p>
<p>I called the theme &#8220;Simple News&#8221;.</p>
<h2>WordPress Plugin Development: WP Autoresponder</h2>
<p>Creating WP Autoresponder taught me a lot about WordPress. The development of the plugin touched upon a good huge chunk of the WordPress plugin API &#8211; categories, posts, cron jobs, widgets, user access limitation and so on. During the course of developing the plugin I was able to muddle through and figure out where to look for answers.</p>
<p>I was under the impression that the core of WordPress was some voodoo that nobody touched. It is only worked upon by the most daring souls. But then I soon realized that whenever I asked a question the developers at wp-hackers simply read the source code in the relevant file. And it wasn&#8217;t voodoo magic like I thought it will be. The code was pretty well commented, no scary identifiers like EventModelAdaptermMarshallInterface or something.  From that day forward, I completely stopped posting in all major mailing lists and forums.</p>
<p>After that I moved to Ubuntu. Now I just grep -r the source code for what I want. Almost in all cases I find what I want.</p>
]]></content:encoded>
			<wfw:commentRss>http://nodesman.com/how-i-learned-to-code-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

