<?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>Reality Me &#187; Programming</title>
	<atom:link href="http://realityme.net/category/technology/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://realityme.net</link>
	<description>A juggling technophile shares personal stories, challenges, humor and perhaps some political commentary.</description>
	<lastBuildDate>Thu, 18 Mar 2010 11:25:15 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='realityme.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
		<item>
		<title>Magento &#8211; Not currently favorite color</title>
		<link>http://realityme.net/2010/01/28/magento-not-currently-favorite-color/</link>
		<comments>http://realityme.net/2010/01/28/magento-not-currently-favorite-color/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 12:54:41 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12347</guid>
		<description><![CDATA[Why is debugging and troubleshooting in Magento so difficult? Because of error messages like this:
Notice: Undefined variable: rootNode  in C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Eav\Model\Entity\Attribute\Source\Config.php on line 53
Trace:
#0 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Eav\Model\Entity\Attribute\Source\Config.php(53): mageCoreErrorHandler(8, &#8216;Undefined varia&#8230;&#8217;, &#8216;C:\Domains\exam&#8230;&#8217;, 53, Array)
#1 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Widget\Form.php(196): Mage_Eav_Model_Entity_Attribute_Source_Config->getAllOptions(true, true)
#2 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Customer\Edit\Tab\Account.php(54): Mage_Adminhtml_Block_Widget_Form->_setFieldset(Array, Object(Varien_Data_Form_Element_Fieldset))
#3 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Customer\Edit\Tabs.php(58): Mage_Adminhtml_Block_Customer_Edit_Tab_Account->initForm()
#4 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(642): Mage_Adminhtml_Block_Customer_Edit_Tabs->_beforeToHtml()
#5 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Text\List.php(43): Mage_Core_Block_Abstract->toHtml()
#6 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(643): Mage_Core_Block_Text_List->_toHtml()
#7 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(503): Mage_Core_Block_Abstract->toHtml()
#8 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(454): Mage_Core_Block_Abstract->_getChildHtml(&#8216;left&#8217;, true)
#9 C:\Domains\example.com\wwwroot\magento\app\design\adminhtml\default\default\template\page.phtml(58): Mage_Core_Block_Abstract->getChildHtml(&#8216;left&#8217;)
#10 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Template.php(144): include(&#8216;C:\Domains\leoa&#8230;&#8217;)
#11 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Template.php(176): [...]]]></description>
			<content:encoded><![CDATA[<p>Why is debugging and troubleshooting in Magento so difficult? Because of error messages like this:</p>
<blockquote><p>Notice: Undefined variable: rootNode  in C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Eav\Model\Entity\Attribute\Source\Config.php on line 53<br />
Trace:<br />
#0 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Eav\Model\Entity\Attribute\Source\Config.php(53): mageCoreErrorHandler(8, &#8216;Undefined varia&#8230;&#8217;, &#8216;C:\Domains\exam&#8230;&#8217;, 53, Array)<br />
#1 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Widget\Form.php(196): Mage_Eav_Model_Entity_Attribute_Source_Config->getAllOptions(true, true)<br />
#2 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Customer\Edit\Tab\Account.php(54): Mage_Adminhtml_Block_Widget_Form->_setFieldset(Array, Object(Varien_Data_Form_Element_Fieldset))<br />
#3 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Customer\Edit\Tabs.php(58): Mage_Adminhtml_Block_Customer_Edit_Tab_Account->initForm()<br />
#4 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(642): Mage_Adminhtml_Block_Customer_Edit_Tabs->_beforeToHtml()<br />
#5 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Text\List.php(43): Mage_Core_Block_Abstract->toHtml()<br />
#6 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(643): Mage_Core_Block_Text_List->_toHtml()<br />
#7 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(503): Mage_Core_Block_Abstract->toHtml()<br />
#8 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(454): Mage_Core_Block_Abstract->_getChildHtml(&#8216;left&#8217;, true)<br />
#9 C:\Domains\example.com\wwwroot\magento\app\design\adminhtml\default\default\template\page.phtml(58): Mage_Core_Block_Abstract->getChildHtml(&#8216;left&#8217;)<br />
#10 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Template.php(144): include(&#8216;C:\Domains\leoa&#8230;&#8217;)<br />
#11 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Template.php(176): Mage_Core_Block_Template->fetchView(&#8216;adminhtml\defau&#8230;&#8217;)<br />
#12 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Template.php(193): Mage_Core_Block_Template->renderView()<br />
#13 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\Block\Template.php(81): Mage_Core_Block_Template->_toHtml()<br />
#14 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Block\Abstract.php(643): Mage_Adminhtml_Block_Template->_toHtml()<br />
#15 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Model\Layout.php(526): Mage_Core_Block_Abstract->toHtml()<br />
#16 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Controller\Varien\Action.php(347): Mage_Core_Model_Layout->getOutput()<br />
#17 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Adminhtml\controllers\CustomerController.php(117): Mage_Core_Controller_Varien_Action->renderLayout()<br />
#18 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Controller\Varien\Action.php(376): Mage_Adminhtml_CustomerController->editAction()<br />
#19 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Controller\Varien\Router\Standard.php(248): Mage_Core_Controller_Varien_Action->dispatch(&#8216;edit&#8217;)<br />
#20 C:\Domains\example.com\wwwroot\magento\app\code\core\Mage\Core\Controller\Varien\Front.php(158): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))<br />
#21 C:\Domains\example.com\wwwroot\magento\app\Mage.php(459): Mage_Core_Controller_Varien_Front->dispatch()<br />
#22 C:\Domains\example.com\wwwroot\magento\index.php(65): Mage::run()<br />
#23 {main} </p></blockquote>
<p>Yes, it screams &quot;undefined variable&quot; which is rootNode but through Magento&#8217;s excellent use of object oriented spaghetti, the error does not in anyway reveal what is truly causing rootNode to be undefined nor where to even begin looking.</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/28/magento-not-currently-favorite-color/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IRC Support for Zend Framework is on Freenode</title>
		<link>http://realityme.net/2010/01/24/irc-support-for-zend-framework-is-on-freenode/</link>
		<comments>http://realityme.net/2010/01/24/irc-support-for-zend-framework-is-on-freenode/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 11:23:50 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zendframework]]></category>
		<category><![CDATA[zf]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12340</guid>
		<description><![CDATA[The unofficial IRC support channel for Zend Framework is on Freenode at #zftalk.
]]></description>
			<content:encoded><![CDATA[<p>The unofficial <acronym title="Internet Relay Chat">IRC</acronym> support channel for Zend Framework is on Freenode at #zftalk.</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/24/irc-support-for-zend-framework-is-on-freenode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Current Magento Questions &#8211; getCustomerFormData</title>
		<link>http://realityme.net/2010/01/21/current-magento-questions-getcustomerformdata/</link>
		<comments>http://realityme.net/2010/01/21/current-magento-questions-getcustomerformdata/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 03:18:17 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12332</guid>
		<description><![CDATA[The Magento ecommerce question I am trying to answer right now is what does getCustomerFormData() do?
In AccountController.php and Register.php there is this reference $data = $this->_getSession()->getCustomerFormData(true); and this reference $data = new Varien_Object(Mage::getSingleton(&#8216;customer/session&#8217;)->getCustomerFormData(true)); respectively. I&#8217;ve searched using grep and within eclipse&#8217;s file search but can find no other reference to getCustomerFormData.
I can find no reference [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://magentoecommerce.com/">Magento ecommerce</a> question I am trying to answer right now is what does getCustomerFormData() do?</p>
<blockquote><p>In AccountController.php and Register.php there is this reference $data = $this->_getSession()->getCustomerFormData(true); and this reference $data = new Varien_Object(Mage::getSingleton(&#8216;customer/session&#8217;)->getCustomerFormData(true)); respectively. I&#8217;ve searched using grep and within eclipse&#8217;s file search but can find no other reference to getCustomerFormData.</p></blockquote>
<p>I can find no reference to getCustomerFormData other than these two lines of code. So what is this supposed to be accomplishing?</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/21/current-magento-questions-getcustomerformdata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento &#8211; Developer Killer</title>
		<link>http://realityme.net/2010/01/21/magento-developer-killer/</link>
		<comments>http://realityme.net/2010/01/21/magento-developer-killer/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:09:11 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ecommerce]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12318</guid>
		<description><![CDATA[While trying to add some functionality to my client&#8217;s Magento ecommerce store, I came across an article that summed up my Magento experience quite well:
Most of us in ecommerce application development have already heard of Magento. Some would call it new ecommerce killer app. I myself stand with that statement for many of reasons. However [...]]]></description>
			<content:encoded><![CDATA[<p>While trying to add some functionality to my client&#8217;s <a href="http://magentoecommerce.com/">Magento ecommerce</a> store, I came across an article that summed up my Magento experience quite well:</p>
<blockquote><p>Most of us in ecommerce application development have already heard of Magento. Some would call it new ecommerce killer app. I myself stand with that statement for many of reasons. However <strong>I would like to call it with one more name, developer killer app</strong>. This developer killer is what I literally had in mind. <strong>Magento is currently one of the most difficult PHP systems out there a developer could learn and master</strong>. [<a href="http://activecodeline.com/what-makes-magento-so-hard-to-learn">Source, {}activecodeline, <em>What makes Magento so hard to learn</em></a> (emphasis added)]</p></blockquote>
<p>I have put so much effort into learning this system that I both never want to touch it again AND must do more Magento development so that this exercise of gaining knowledge does not go to waste.</p>
<p>Today&#8217;s links for Magento success:</p>
<ul>
<li><a href="http://netbeans.org/">Netbeans</a></li>
<li><a href="http://www.eclipse.org/">Eclipse</a></li>
<li><a href="http://framework.zend.com/">ZendFramework</a></li>
<li><a href="http://www.magentocommerce.com/?ACT=25&amp;fid=40&amp;aid=9563_38jYypduC0XKiAfzF4Zi&amp;board_id=1">MAGENTO_v1.3.2.4&#8212;Database_Diagram.pdf</a> by <a href="http://www.magentocommerce.com/boards/viewthread/7359/">ggoodwin</a></li>
<li><a href="http://framework.zend.com/docs/quickstart">ZendFramework Quikstart</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/21/magento-developer-killer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Magento References</title>
		<link>http://realityme.net/2010/01/19/magento-references/</link>
		<comments>http://realityme.net/2010/01/19/magento-references/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 02:23:56 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12305</guid>
		<description><![CDATA[Relevant to my life right now:

Class Mage_Eav_Model_Entity_Setup
Installing Custom Attributes with Your Module
Magento Architecture
ERDs and other diagrams
database diagrams
Question about adding selects, radio buttons, and checkboxes to registration form.
Designing for Magento
Themeing Magento
Categories, Products, and Attributes &#8211; part 1
Categories and Attributes in Magento: Part 2

]]></description>
			<content:encoded><![CDATA[<p>Relevant to my life right now:</p>
<ul>
<li><a href="http://docs.magentocommerce.com/Mage_Eav/Mage_Eav_Model_Entity_Setup.html">Class Mage_Eav_Model_Entity_Setup</a></li>
<li><a href="http://www.magentocommerce.com/wiki/doc/installing_custom_attributes_with_your_module">Installing Custom Attributes with Your Module</a></li>
<li><a href="http://www.magentocommerce.com/wiki/doc/magento-architecture">Magento Architecture</a></li>
<li><a href="http://www.magentocommerce.com/boards/viewthread/3512/">ERDs and other diagrams</a></li>
<li><a href="http://www.magentocommerce.com/boards/viewthread/7359/#top">database diagrams</a></li>
<li><a href="http://www.magentocommerce.com/boards/viewthread/73362/">Question about adding selects, radio buttons, and checkboxes to registration form.</a></li>
<li><a href="http://www.magentocommerce.com/wiki/how-to/designing/designing-for-magento">Designing for Magento</a></li>
<li><a href="http://www.themeswiki.org/Theming_Magento">Themeing Magento</a></li>
<li><a href="http://www.packtpub.com/article/categories-and-attributes-in-magento-part1">Categories, Products, and Attributes &#8211; part 1</a></li>
<li><a href="http://www.packtpub.com/article/categories-and-attributes-in-magento-part2">Categories and Attributes in Magento: Part 2</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/19/magento-references/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Magento Actions</title>
		<link>http://realityme.net/2010/01/17/magento-actions/</link>
		<comments>http://realityme.net/2010/01/17/magento-actions/#comments</comments>
		<pubDate>Sun, 17 Jan 2010 16:26:50 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12291</guid>
		<description><![CDATA[The Magento E-commerce system is an exciting open source alternative to systems like OS Commerce. The learning curve isn&#8217;t really a curve at all. The learning curve is more like a sheer, glassy. polished mountain face shooting straight up into the heavens. However, plenty of documentation exists, Google overfloweth with links to blog post, and [...]]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://magentoecommerce.com/">Magento E-commerce</a> system is an exciting open source alternative to systems like <a href="http://www.oscommerce.com/">OS Commerce</a>. The learning curve isn&#8217;t really a curve at all. The learning curve is more like a sheer, glassy. polished mountain face shooting straight up into the heavens. However, plenty of documentation exists, Google overfloweth with links to blog post, and IRC support is available on Freenode #magento (although I believe most questions go to /dev/null so expect to feel a little like you are talking to yourself but like your $200/hr psychologist will explain, sometimes that&#8217;s all we need).</p>
<p>As I work through understanding how Magento handles layouts, I struggle to find a simple list of actions and perhaps I&#8217;m trying to hard. So far the is this:</p>
<dl>
<dt>addJs</dt>
<dd></dd>
<dt>addCss</dt>
<dd></dd>
<dt>addLink</dt>
<dd></dd>
<dt>addItemRender</dt>
<dd></dd>
<dt>unsetChild</dt>
<dd></dd>
<dt>setHeaderTitle</dt>
<dd></dd>
<dt>setTemplate</dt>
<dd></dd>
</dl>
<p>Ah! I found a reference! See <a href="http://www.scribd.com/doc/20939945/Magento-Layout-Files-Reference">page 7 of Magento Layout Files Reference</a> (see also <a href="http://magsvento.se/magento-references/magento-layout-files-reference">same document, different format</a>).</p>
<p><strong>Update</strong>: The Magento wiki has this defined under <a href="http://www.magentocommerce.com/wiki/how-to/designing/designing-for-magento">Designing for Magento</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/17/magento-actions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Today&#8217;s Magento Ecommerce Quotes</title>
		<link>http://realityme.net/2010/01/14/todays-magento-ecommerce-quotes/</link>
		<comments>http://realityme.net/2010/01/14/todays-magento-ecommerce-quotes/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 20:53:24 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[zendframework]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12283</guid>
		<description><![CDATA[Read here:
I&#8217;ve been wrestling with Magento for the last month or so and I&#8217;m still trying to figure it out.
The general architecture is so mind-numbingly complex, that even if I completely understood it, I&#8217;d need to write a book to cover it.
]]></description>
			<content:encoded><![CDATA[<p>Read <a href="http://stackoverflow.com/questions/576908/how-does-magento-code-work">here</a>:</p>
<blockquote><p>I&#8217;ve been wrestling with Magento for the last month or so and I&#8217;m still trying to figure it out.</p></blockquote>
<blockquote><p>The general architecture is so mind-numbingly complex, that even if I completely understood it, I&#8217;d need to write a book to cover it.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2010/01/14/todays-magento-ecommerce-quotes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ultimate Unsubscribe Page</title>
		<link>http://realityme.net/2009/12/18/ultimate-unsubscribe-page/</link>
		<comments>http://realityme.net/2009/12/18/ultimate-unsubscribe-page/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 18:35:48 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Communications]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12223</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p><object classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,115,0' width='560' height='345'><param name='movie' value='http://screenr.com/Content/assets/screenr_1116090935.swf' ></param><param name='flashvars' value='i=34759' ></param><param name='allowFullScreen' value='true' ></param><embed src='http://screenr.com/Content/assets/screenr_1116090935.swf' flashvars='i=34759' allowFullScreen='true' width='560' height='345' pluginspage='http://www.macromedia.com/go/getflashplayer' ></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/12/18/ultimate-unsubscribe-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maximum length of an email address is 254 characters, not 320</title>
		<link>http://realityme.net/2009/12/16/maximum-length-of-an-email-address-is-254-characters-not-320/</link>
		<comments>http://realityme.net/2009/12/16/maximum-length-of-an-email-address-is-254-characters-not-320/#comments</comments>
		<pubDate>Wed, 16 Dec 2009 22:07:23 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Communications]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[rfc]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12198</guid>
		<description><![CDATA[I work in a business of constant learning. Technology is continually evolving and being revised. Somethings are rather constant but, being human, weI tend to develop habits occasionally rooted in wrong assumptions. Perhaps a deadline forced a decision without having time to look up the specification and over time, our mind took that unresearched decision [...]]]></description>
			<content:encoded><![CDATA[<p>I work in a business of constant learning. Technology is continually evolving and being revised. Somethings are rather constant but, being human, <strike>we</strike>I tend to develop habits occasionally rooted in wrong assumptions. Perhaps a deadline forced a decision without having time to look up the specification and over time, our mind took that unresearched decision as fact. I&#8217;ve made numerous databases over the years based upon just such a wrong assumption. My error has been in the acceptable maximum length of an email address. My number is irrelevant but I am in good company with being incorrect on the length of an email address as many people mistakenly believe it to be 320 characters.</p>
<p>An RFC is a request for comments which &quot;<em>is a memorandum published by the Internet Engineering Task Force (IETF) describing methods, behaviors, research, or innovations applicable to the working of the Internet and Internet-connected systems.</em>&quot; (<a href="http://en.wikipedia.org/wiki/Request_for_Comments">Wikipedia</a>) RFCs set the standards that define how the Internet works. RFC3696 and RFC5321 explain that <strong>the maximum length of an email address is 254 characters.</strong></p>
<blockquote><p>There appears to be some confusion over the maximum valid email address size. Most people believe it to be 320 characters (64 characters for the username + 255 characters for the domain + 1 character for the @ symbol). Other sources suggest 129 (64 + 1 + 64) or 384 (128+1+255, assuming the username doubles in length in the future).</p>
<p>This confusion means you should heed the &#8216;robustness principle&#8217; (&quot;developers should carefully write software that adheres closely to extant RFCs but accept and parse input from peers that might not be consistent with those RFCs.&quot; &#8211; <a href="http://en.wikipedia.org/wiki/Robustness_Principle">Wikipedia</a>) when writing software that deals with email addresses. Furthermore, some software may be crippled by naive assumptions, e.g. thinking that 50 characters is adequate (<a href="http://www.eph.co.uk/resources/email-address-length-faq/#emaillengthallocated">examples</a>). Your 200 character email address may be technically valid but that will not help you if most websites or applications reject it.</p>
<p>The actual maximum email length is currently 254 characters:</p>
<p>&quot;The original version of RFC 3696 did indeed say 320 was the maximum length, but <a href="http://www.icann.org/en/biog/klensin.htm">John Klensin (ICANN)</a> subsequently accepted this was wrong.&quot;</p>
<p>&quot;This arises from the simple arithmetic of maximum length of a domain (255 characters) + maximum length of a mailbox (64 characters) + the @ symbol = 320 characters. Wrong. This canard is actually documented in the original version of RFC3696. It was corrected in the errata. There&#8217;s actually a restriction from RFC5321 on the path element of an SMTP transaction of 256 characters. But this includes angled brackets around the email address, so the maximum length of an email address is 254 characters.&quot; &#8211; <a href="http://www.dominicsayers.com/isemail/">Dominic Sayers</a></p>
<p>[<a href="http://www.eph.co.uk/resources/email-address-length-faq/">Source, EPH, <em>Email Address Length FAQ</em></a>]</p>
</blockquote>
<p>Every day I learn something new! (even when I should have known it for a couple of decades)</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/12/16/maximum-length-of-an-email-address-is-254-characters-not-320/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Project Done</title>
		<link>http://realityme.net/2009/11/30/project-done-2/</link>
		<comments>http://realityme.net/2009/11/30/project-done-2/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 06:40:49 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12067</guid>
		<description><![CDATA[I just put the wraps on one of my projects. This one was a site scrapper and a site rebuild. Scraping means the site which controls the data did not provide an API or other means to get the data so using PHP, cURL, and AJAX (in this case, jQuery), I retrieved the data, used [...]]]></description>
			<content:encoded><![CDATA[<p>I just put the wraps on one of my projects. This one was a site scrapper and a site rebuild. Scraping means the site which controls the data did not provide an <acronym title="application programming interface">API</acronym> or other means to get the data so using PHP, cURL, and AJAX (in this case, jQuery), I retrieved the data, used PHP and regular expressions to parse the data to use only the parts I needed, and CSS to present it correctly. The rebuild was applying a new design, furnished by the client, to the rest of the site. Overall fun, albeit with some speed bumps and hiccups.</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/11/30/project-done-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Today&#8217;s Work Related Links</title>
		<link>http://realityme.net/2009/11/30/todays-work-related-links/</link>
		<comments>http://realityme.net/2009/11/30/todays-work-related-links/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 06:33:32 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Daily Life]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[research]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=12059</guid>
		<description><![CDATA[I work in an ever changing industry. New techniques, new standards, new languages, new buzzwords are always developing. These changes are why programmers must be constant learners. I learn principles. Specifics of a language simply require a decent reference. I rely heavily upon Delicious as my own personal search engine and reference tool. To date, [...]]]></description>
			<content:encoded><![CDATA[<p>I work in an ever changing industry. New techniques, new standards, new languages, new buzzwords are always developing. These changes are why programmers must be constant learners. I learn <a href="http://realityme.net/2006/11/15/principle-30-follow-the-lemmings-with-care/">principles</a>. Specifics of a language simply require a decent reference. I rely heavily upon <a href="http://delicious.com/djuggler">Delicious</a> as my own personal search engine and reference tool. To date, I have bookmarked 10024 websites. I can spent hours researching a problem and clicking through search engine results to read misinformation or bad links but when I find the resource I need, I bookmark it at <a href="http://delicious.com/djuggler">Delicious</a> with keywords which will help me find the information easily. The next time I need that info, I can find it in seconds.</p>
<p>Links I have used in my work today:</p>
<ul>
<li><a href="http://style.cleverchimp.com/font_size_intervals/altintervals.html">Font Size Intervals</a></li>
<li><a href="http://blog.themeforest.net/tutorials/vertical-centering-with-css/">Vertical</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/11/30/todays-work-related-links/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Clients Now Get P3P Privacy Policies</title>
		<link>http://realityme.net/2009/11/17/my-clients-now-get-p3p-privacy-policies/</link>
		<comments>http://realityme.net/2009/11/17/my-clients-now-get-p3p-privacy-policies/#comments</comments>
		<pubDate>Tue, 17 Nov 2009 15:15:04 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Privacy]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Touchy Subjects]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=11982</guid>
		<description><![CDATA[Does your website collect identifying information on your visitors? If you think because you do not sell anything, ie. no shopping cart, and have no subscription services that you are not collecting identifying information on your site&#8217;s visitors then you are probably wrong. Most web servers log IP addresses along with the time of the [...]]]></description>
			<content:encoded><![CDATA[<p>Does your website collect identifying information on your visitors? If you think because you do not sell anything, ie. no shopping cart, and have no subscription services that you are not collecting identifying information on your site&#8217;s visitors then you are probably wrong. Most web servers log <acronym title="Internet Protocol">IP</acronym> addresses along with the time of the visit and what that IP address read. <acronym title="Internet Service Provider">ISP</acronym>s keep logs showing which IP addresses were allocated to what users at particular times. Your logs can be correlated to their logs to identify a person. If your site as a comment form then you are definitely collecting information but more importantly that form gives you a name of a person to associate with the IP address without having to involve the ISP.</p>
<p>So now that we are clear that you are probably collecting identifying information about the visitors to your site, <strong>do you have a privacy policy?</strong> A privacy policy states how you will use that identifying information. For instance, perhaps you sell it to mailing lists. Or perhaps you specifically do NOT sell it to mailing lists but aggregate it to be able to explain to your potential advertisers that 70% of your site&#8217;s visitors are women between the ages of 22 and 35.</p>
<p>If you have a privacy policy, as a human, I can follow the link to that policy, read it, and try to interpret it. But why should I do that when I may not even understand what I&#8217;m reading? Shouldn&#8217;t the browser or other software handle the privacy policy for me? Yes! And on April 16, 2002 the <acronym title="World Wide Web Consortium">W3C</acronym> recommended the <a href="http://en.wikipedia.org/wiki/P3p">Platform for Privacy Preferences Project or P3P</a> which is &quot;a machine-readable language that helps to express a website’s data management practices.&quot; What this comes down to is that you can set your privacy preferences in your browser and if the website&#8217;s policy does not match, the browser blocks cookies from that site. Certainly there is a bit more to it than that but for most users, it boils down to blocking cookies.</p>
<p><a href="http://www.p3ptoolbox.org/">P3P</a> is a bit of a pain in the neck but every website (and that means your blogs) should have a privacy policy. This is definitely something I will encourage of each of my clients.</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/11/17/my-clients-now-get-p3p-privacy-policies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Incense Means Intense</title>
		<link>http://realityme.net/2009/11/10/incense-means-intense/</link>
		<comments>http://realityme.net/2009/11/10/incense-means-intense/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 02:10:28 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Daily Life]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=11943</guid>
		<description><![CDATA[uh oh. I&#8217;ve pulled out the candles and incense. That can only mean one thing! Coding is getting serious! Bits and bytes are flying now.
]]></description>
			<content:encoded><![CDATA[<p>uh oh. I&#8217;ve pulled out the candles and incense. That can only mean one thing! Coding is getting serious! Bits and bytes are flying now.</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/11/10/incense-means-intense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On programming &#8211; how to read other people&#8217;s code and why</title>
		<link>http://realityme.net/2009/10/23/on-programming-how-to-read-other-peoples-code-and-why/</link>
		<comments>http://realityme.net/2009/10/23/on-programming-how-to-read-other-peoples-code-and-why/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 15:15:29 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[freelancing]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=11841</guid>
		<description><![CDATA[Programming is an art. I [You] do a lot of business that starts off with &#34;&#8230;and my developer just isn&#8217;t around anymore&#8230;&#34; Dozens of statements could come before or after that but no of those statements change the meaning. Quite simply, you are [I am] about to look at someone else&#8217;s code and that person [...]]]></description>
			<content:encoded><![CDATA[<p>Programming is an art. I [You] do a lot of business that starts off with &quot;&#8230;<em>and my developer just isn&#8217;t around anymore</em>&#8230;&quot; Dozens of statements could come before or after that but no of those statements change the meaning. Quite simply, you are [I am] about to look at someone else&#8217;s code and that person may be an expert programmer or a newbie borrowing snippets from other people&#8217;s examples. The code may be documented correct or incorrectly or not at all. Regardless, you [I] have to work with that code no matter its state or quality.</p>
<blockquote><p>If you are a professional software developer, or aspire to be one, you will need to know a lot of of things. Various maths, stats, languages, frameworks, methodologies, tools, etc. Fads and buzzwords will come and go, all during your career. You’ll master some, ignore some, laugh at some. &#8230; <strong>You have got to be able to read other people’s code.</strong> [<a href="http://designbygravity.wordpress.com/2009/10/23/how-to-read-other-peoples-code-and-why/">Source, Design by Gravity, <em>How to Read Other People’s Code — and Why</em></a>]</p></blockquote>
<p>Worthwhile read by <a href="http://designbygravity.wordpress.com/about/">Christopher Schanck</a></p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/10/23/on-programming-how-to-read-other-peoples-code-and-why/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Love and care of your web developer &#8211; For artists</title>
		<link>http://realityme.net/2009/10/13/love-and-care-of-your-web-developer-for-artists/</link>
		<comments>http://realityme.net/2009/10/13/love-and-care-of-your-web-developer-for-artists/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 01:03:32 +0000</pubDate>
		<dc:creator>Doug McCaughan</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://realityme.net/?p=11768</guid>
		<description><![CDATA[Dear Graphic Designers,
I understand that you are artists and by definition probably a little prone to inconsistencies for the sake of artistic license and creativity. I&#8217;m a little artsy fartsy myself so I can appreciate the desire to freehand a stroke rather than pull out a straight edge and right angle; after all this is [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Graphic Designers,<br />
I understand that you are artists and by definition probably a little prone to inconsistencies for the sake of artistic license and creativity. I&#8217;m a little artsy fartsy myself so I can appreciate the desire to freehand a stroke rather than pull out a straight edge and right angle; after all this is art, not drafting&#8230;or is it. See, a web developer craves and desires regularity. Consistency, predictability, repeatability are programmable. That is, I can write something once and use it over and over with forecastable results. In odd cases, I can program exceptions. Exceptions to rules, much like the real world, are ripe for abuse and unpredictable results.</p>
<p>Consider the job of a doorman at a nightclub. He has been given a procedure. When <strong>someone enters the club, he increases the number on a counter</strong> in his hand. When <strong>someone leaves the club, he decreases the number on a counter</strong> in his hand. He is now given a rule which is <strong>as long as the number of people in the club is less than a particular number, let&#8217;s say 740, then he should let the person in the front of the line in</strong>. Once the counter hits 740, he doesn&#8217;t let people in. Nice and simple. Now let&#8217;s say the manager has a <em>thing</em> for a certain type of woman so he makes an exception to the rule. <strong>Any pretty blond woman under the age of 30 wearing a tank top and skirt above the knees immediate gets in without standing in line.</strong> We have introduced several opportunities for error but let&#8217;s focus on the most obvious one. If 740 people are in the club and a pretty blond 23 year old in a mini-skirt and tank top walks up, does the doorman let her in or send her to the back of the line?</p>
<p><strong>Back to our graphic artists.</strong> When you are designing a layout for a website, the layout is typically created as a single image then sliced into smaller images. If you are designing a horizontal navigation bar, when slicing it up do not make two images 41 pixels tall, one image 42 pixels tall, one image 43 pixels tall, and the creme de la creme, the final image 44 pixels tall, and expect me to easily line up the text below the images. Especially don&#8217;t do this when the extraneous pixel height is all white space! Thank you. That is all.</p>
<p>/rant</p>
]]></content:encoded>
			<wfw:commentRss>http://realityme.net/2009/10/13/love-and-care-of-your-web-developer-for-artists/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
