<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://www.mikesmullin.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>posts on &quot;Learning&quot;</title>
 <link>http://www.mikesmullin.com/blog/tag/Learning</link>
 <description>A list of blog post tags for the current user.</description>
 <language>en</language>
<item>
 <title>Coding standards are critical</title>
 <link>http://www.mikesmullin.com/coding-standards-are-critical</link>
 <description>&lt;p&gt;&lt;img alt=&quot;Programming on the World Wide Web&quot; class=&quot;alignright&quot; id=&quot;image27&quot; name=&quot;image27&quot; src=&quot;/files/2006/04/c0ding.png&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Odds are, if term &lt;em&gt;coding standards&lt;/em&gt; is new to you, you are wasting time on a daily basis arguing over the syntax semantics of your programming language. (e.g. tabs or spaces? 4 spaces or 2? print or echo? etc.)&lt;/p&gt;
&lt;p&gt;Programmers are required to make hundreds to thousands of micro-decisions like this every day, and especially when there is no standard, this costs time and time is money. If you were to benchmark the programmer&#039;s brain, you could begin to see exactly just how much time is wasted asking, answering, remembering, and changing each answer.&lt;/p&gt;
&lt;p&gt;This form of unorganization has many more side effects than one, however.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;!--break--&gt;Good code works; better code is also easy to read, maintain, and debug.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;According to Sun Microsystems, 80% of the lifetime cost of a piece of software goes to maintenance, and hardly any software is maintained for its whole life by its original author.&lt;/p&gt;
&lt;p&gt;There&#039;s nothing worse than inheriting a project that requires a lot of your time to decipher. It should not require the original author to translate. What if that author were to die or simply become uncooperative? Frequently, this is the sort of coercive survival technique novice programmers resort to when their job is threatened. Even more frequently, it becomes the primary cause of frustration for new programmers. The novice instinct is to throw everything out and start over from scratch--&lt;em&gt;do not do it!&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Good programmers rewrite; better programmers reuse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The real problem is the lack of coding standards. Insist on them with every project.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What can coding standards do for me?&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Standardized code is easy to document. (e.g. &lt;a href=&quot;http://www.stack.nl/~dimitri/doxygen/&quot;&gt;Doxygen&lt;/a&gt;, &lt;a href=&quot;http://java.sun.com/j2se/javadoc/&quot;&gt;JavaDoc&lt;/a&gt;, &lt;a href=&quot;http://www.phpdoc.org/&quot;&gt;PHPDoc&lt;/a&gt;, etc.)&lt;/li&gt;
&lt;li&gt;Standardized code takes care of easy decisions for you, leaving you free to concentrate on the real work.&lt;/li&gt;
&lt;li&gt;Standardized code reduces friction in collaborative group development.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;So what do you recommend?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The set of standards can vary by language and by project. It doesn&#039;t matter what they are, as long as they are there. In PHP I recommend the &lt;a href=&quot;http://pear.php.net/manual/en/standards.php&quot;&gt;PEAR Coding Standards&lt;/a&gt;. These are the same set of standards used by many large open source projects, such as &lt;a href=&quot;http://drupal.org/coding-standards&quot;&gt;Drupal&lt;/a&gt;. Examples include:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Indent with 4 spaces; no tabs.&lt;/li&gt;
&lt;li&gt;Always use &amp;lt;?php ?&amp;gt; to delimit PHP code, not the &amp;lt;? ?&amp;gt; shorthand.&lt;/li&gt;
&lt;li&gt;Class names should always begin with an Uppercase letter.&lt;/li&gt;
&lt;li&gt;Constants should always be all UPPERCASE.&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Of course, every programmer starts out with their own quirky way of writing code. In high school, my C++ teacher used to pride himself on being able to detect cheaters (i.e. plagiarism) in class... He knew when I was helping my friends because he could recognize my work. Even though the program looked the same on the outside, on the inside the code was unique and personal--like poetry. I find it interesting now, when working with teams of developers, that now two of us can write code to accomplish the same goal--and the resulting code is nearly identical.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Great minds think alike.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Thanks to coding standards!&lt;/p&gt;

</description>
 <comments>http://www.mikesmullin.com/coding-standards-are-critical#comments</comments>
 <category domain="http://www.mikesmullin.com/category/development">Development</category>
 <category domain="http://www.mikesmullin.com/category/learning">Learning</category>
 <pubDate>Sat, 19 Jan 2008 17:25:36 -0700</pubDate>
 <dc:creator>mikesmullin</dc:creator>
 <guid isPermaLink="false">8 at http://www.mikesmullin.com</guid>
</item>
<item>
 <title>Learn Ruby on Rails on Windows!</title>
 <link>http://www.mikesmullin.com/2006/07/23/learn-ruby-on-rails-on-windows</link>
 <description>&lt;p&gt;If you are interested in learning Ruby on a Windows machine I recommend spending a weekend to read the free online book &lt;a href=&quot;http://www.rubycentral.com/book/&quot;&gt;Programming Ruby&lt;/a&gt; and downloading &lt;a href=&quot;http://instantrails.rubyforge.org/wiki/wiki.pl&quot;&gt;InstantRails&lt;/a&gt; and &lt;a href=&quot;http://www.radrails.org/&quot;&gt;RadRails&lt;/a&gt; to begin testing the Ruby code snippets it will show you.&lt;/p&gt;

&lt;p&gt;After that, I recommend &lt;a href=&quot;http://www.amazon.com/gp/product/097669400X/104-2763119-5135960?v=glance&amp;n=283155&quot;&gt;Agile Web Developent with Rails&lt;/a&gt; by the-one-and-only &lt;a href=&quot;http://www.loudthinking.com/&quot;&gt;David Heinemeier Hansson&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For support while learning hop on freenode.net and join #ruby-lang and #rubyonrails. The crowd is very enthusiastic and willing to answer your questions.&lt;/p&gt;</description>
 <comments>http://www.mikesmullin.com/2006/07/23/learn-ruby-on-rails-on-windows#comments</comments>
 <category domain="http://www.mikesmullin.com/category/learning">Learning</category>
 <category domain="http://www.mikesmullin.com/category/ruby">Ruby</category>
 <pubDate>Mon, 24 Jul 2006 04:10:24 -0600</pubDate>
 <dc:creator>mikesmullin</dc:creator>
 <guid isPermaLink="false">27 at http://www.mikesmullin.com</guid>
</item>
<item>
 <title>Banners vs Contextual Ads</title>
 <link>http://www.mikesmullin.com/2006/05/03/banners-vs-contextual-ads</link>
 <description>&lt;p&gt;This is something I&#039;ve been trying to say for a long time now.&lt;/p&gt;
&lt;p&gt;From &lt;a href=&quot;http://www.seobook.com/&quot;&gt;Aaron Wall&#039;s SEO Book&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;&lt;p&gt;Banners vs Contextual Ads:&lt;/p&gt;
  &lt;p&gt;Many web surfers have become banner blind and ignore the top part of a page. Banners have horrible conversion rates.&lt;/p&gt;
	&lt;p&gt;I do not usually use the default banner size unless I feel it fits well with the site design. The best revenue options are usually link rentals or context-based text ads.&lt;/p&gt;
	&lt;p&gt;Good advertising does not look like advertising.&lt;/p&gt;
	&lt;p&gt;One site that I work with sells links for over $500 a month per link and only made about $30 a month off AdSense. Other times AdSense can make far greater profits. Depending on the market, it may be best to use one or the other or a combination of both.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is especially true for me because I use Firefox with the AdBlock
extension and Filterset.G extension installed. I haven&#039;t seen a banner
ad in almost a year.&lt;/p&gt;</description>
 <comments>http://www.mikesmullin.com/2006/05/03/banners-vs-contextual-ads#comments</comments>
 <category domain="http://www.mikesmullin.com/category/learning">Learning</category>
 <pubDate>Thu, 04 May 2006 01:44:17 -0600</pubDate>
 <dc:creator>mikesmullin</dc:creator>
 <guid isPermaLink="false">17 at http://www.mikesmullin.com</guid>
</item>
<item>
 <title>Whats with Web 2.0?</title>
 <link>http://www.mikesmullin.com/2006/03/21/whats-with-web20</link>
 <description>&lt;p&gt;&lt;img alt=&quot;Web 2.0 Mind Map&quot; class=&quot;border alignright&quot; id=&quot;image15&quot; src=&quot;/files/2006/03/web2.0mindmap.jpg&quot; name=&quot;image15&quot; /&gt;&lt;strong&gt;In case you haven&#039;t heard&lt;/strong&gt;, &lt;a href=&quot;http://en.wikipedia.org/wiki/Web_2.0&quot;&gt;&quot;Web 2.0&quot;&lt;/a&gt; is a concept primarily advocated by &lt;a href=&quot;http://en.wikipedia.org/wiki/O%27Reilly_Media&quot;&gt;O&#039;Reilly Media&lt;/a&gt; during their periodic &lt;a href=&quot;http://www.web2con.com/&quot;&gt;Web 2.0 Conference&lt;/a&gt; in downtown San Francisco.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html&quot;&gt;Tim O&#039;Reilly&lt;/a&gt; officially defines it as, &lt;a href=&quot;http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html&quot;&gt;&quot;design patterns and business models for the next generation of software.&quot;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To illustrate, Markus Angermeier was kind enough to design a &lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/2/21/Web20_en.png&quot;&gt;visual mindmap summing up the memes of Web 2.0&lt;/a&gt;. There are even some example sites and services listed. Check it out!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Real-world examples?&lt;/strong&gt; Don&#039;t tell me you haven&#039;t seen:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;clouding/tagging (folksonomy; like &lt;a href=&quot;http://www.flickr.com/&quot;&gt;Flickr&lt;/a&gt;, &lt;a href=&quot;http://www.tagcloud.com/&quot;&gt;TagCloud&lt;/a&gt;, &lt;a href=&quot;http://www.technorati.com/&quot;&gt;Technorati&lt;/a&gt;, &lt;a href=&quot;http://swicki.eurekster.com/&quot;&gt;Eurekster&lt;/a&gt;),&lt;/li&gt;
&lt;li&gt;RSS/Atom/OPML (syndication; like &lt;a href=&quot;http://www.bloglines.com/&quot;&gt;Bloglines&lt;/a&gt;, &lt;a href=&quot;http://www.feedburner.com/&quot;&gt;FeedBurner&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;XML/XHTML/CSS (web standards; like &lt;a href=&quot;http://www.csszengarden.com/&quot;&gt;CSS Zen Garden&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;commenting/trackback/voting (participation; like &lt;a href=&quot;http://www.digg.com/&quot;&gt;Digg&lt;/a&gt;, &lt;a href=&quot;http://www.newsvine.com/&quot;&gt;Newsvine&lt;/a&gt;, &lt;a href=&quot;http://myweb.yahoo.com/&quot;&gt;Yahoo! My Web&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;And that is just the beginning!&lt;/strong&gt; Most likely you have seen and love all these sites but had no idea how it related to Web 2.0.&lt;/p&gt;
&lt;p&gt;It is up to us as web developers to break out of our &lt;a href=&quot;http://www.cs.umaine.edu/%7Elarry/latour/ECAI/paper-sent/node3.html&quot;&gt;functional fixedness&lt;/a&gt; and find practical ways to apply these concepts in our own projects, possibly even in ways that haven&#039;t been thought of before. People just can&#039;t get enough!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;How?&lt;/strong&gt; &lt;a href=&quot;http://mikesmullin.com/freelance/?page_id=6&quot;&gt;I recommend these great books&lt;/a&gt;.&lt;/p&gt;

</description>
 <comments>http://www.mikesmullin.com/2006/03/21/whats-with-web20#comments</comments>
 <category domain="http://www.mikesmullin.com/category/learning">Learning</category>
 <pubDate>Tue, 21 Mar 2006 18:49:32 -0700</pubDate>
 <dc:creator>mikesmullin</dc:creator>
 <guid isPermaLink="false">5 at http://www.mikesmullin.com</guid>
</item>
<item>
 <title>Amazing JavaScript Libraries</title>
 <link>http://www.mikesmullin.com/2006/03/15/amazing-javascript-libraries</link>
 <description>&lt;p&gt;&lt;img alt=&quot;JavaScript Libraries&quot; class=&quot;alignright&quot; id=&quot;image13&quot; src=&quot;/files/2006/03/js_libraries.jpg&quot; name=&quot;image13&quot; /&gt;It has been a year since &lt;a href=&quot;http://en.wikipedia.org/wiki/Jesse_James_Garrett&quot;&gt;Jesse James Garret&lt;/a&gt; first coined the term &lt;a href=&quot;http://adaptivepath.com/publications/essays/archives/000385.php&quot;&gt;AJAX&lt;/a&gt; and based on his observations of &lt;a href=&quot;http://www.google.com/&quot;&gt;Google&lt;/a&gt;&#039;s &lt;a href=&quot;http://gmail.google.com/&quot;&gt;Gmail&lt;/a&gt;, &lt;a href=&quot;http://maps.google.com/&quot;&gt;Maps&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/webhp?complete=1&amp;amp;hl=en&quot;&gt;Suggest&lt;/a&gt;, etc. and it&#039;s now officially annoying to use web apps that haven&#039;t replaced clunky html functionality with peppy &lt;a href=&quot;http://blogs.zdnet.com/web2explorer/?p=127&quot;&gt;AJAX&lt;/a&gt; &lt;a href=&quot;http://blogs.zdnet.com/web2explorer/?p=127&quot;&gt;goodness&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you aren&#039;t using it, maybe it would help to know that there are now open-source JavaScript libraries available for download. &lt;a href=&quot;http://prototype.conio.net/&quot;&gt;Prototype&lt;/a&gt; seems to be the most popular but there&#039;s also &lt;a href=&quot;http://dojotoolkit.org/&quot;&gt;Dojo&lt;/a&gt;, &lt;a href=&quot;http://advajax.anakin.us/index-en.htm&quot;&gt;Advanced AJAX&lt;/a&gt;, and &lt;a href=&quot;http://www.modernmethod.com/sajax/&quot;&gt;SAJAX&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Assuming you&#039;ve already seen some &lt;a href=&quot;http://blogs.zdnet.com/web2explorer/?p=127&quot;&gt;great AJAX in action&lt;/a&gt;, check out this &lt;a href=&quot;http://www.sergiopereira.com/articles/prototype.js.html&quot;&gt;excellent introduction to the prototype.js library&lt;/a&gt; and a &lt;a href=&quot;http://www.maxkiesler.com/index.php/weblog/comments/round_up_of_30_ajax_tutorials/&quot;&gt;round-up of 30 AJAX tutorials&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;On top of all that, since &lt;a href=&quot;http://www.37signals.com/&quot;&gt;37Signals&lt;/a&gt; released &lt;a href=&quot;http://www.basecamphq.com/&quot;&gt;Basecamp&lt;/a&gt;, along with an open-source version of their &lt;a href=&quot;http://wiki.script.aculo.us/scriptaculous/show/Demos&quot;&gt;visual effects&lt;/a&gt; javascript libraries (now &lt;a href=&quot;http://script.aculo.us/&quot;&gt;script.aculo.us&lt;/a&gt;) which made &lt;a href=&quot;http://www.ruby-lang.org/en/&quot;&gt;Ruby&lt;/a&gt; popular (now &lt;a href=&quot;http://www.rubyonrails.org/&quot;&gt;Ruby w/ Rails&lt;/a&gt;), a few more combinations have appeared: &lt;a href=&quot;http://moofx.mad4milk.net/&quot;&gt;moo.fx&lt;/a&gt;, &lt;a href=&quot;http://openrico.org/rico/demos.page&quot;&gt;Rico&lt;/a&gt;, &lt;a href=&quot;http://www.clearnova.com/&quot;&gt;ThinkCap JX&lt;/a&gt;, and &lt;a href=&quot;#dev/download/comm.xml[5]&quot;&gt;Backbase&lt;/a&gt; which are all pretty cool and mostly depend on the latest version of Prototype.&lt;/p&gt;
&lt;p&gt;Some people think the combination of AJAX and JavaScript effects are so cool they will replace the need for &lt;a href=&quot;http://www.macromedia.com/&quot;&gt;Macromedi&lt;/a&gt;&lt;a href=&quot;http://www.macromedia.com/&quot;&gt;a&lt;/a&gt; (now &lt;a href=&quot;http://www.adobe.com/&quot;&gt;Adobe&lt;/a&gt;) &lt;a href=&quot;http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash&quot;&gt;Flash&lt;/a&gt; but I disagree. You have to know &lt;a href=&quot;http://www.sourcelabs.com/blogs/ajb/2005/12/10_places_you_must_use_ajax.html&quot;&gt;how to use AJAX appropriately&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Want more? Check out this comprehensive &lt;a href=&quot;http://edevil.wordpress.com/2005/11/14/javascript-libraries-roundup/&quot;&gt;JavaScript Library Roundup&lt;/a&gt;.&lt;/p&gt;

</description>
 <comments>http://www.mikesmullin.com/2006/03/15/amazing-javascript-libraries#comments</comments>
 <category domain="http://www.mikesmullin.com/category/learning">Learning</category>
 <pubDate>Thu, 16 Mar 2006 03:24:18 -0700</pubDate>
 <dc:creator>mikesmullin</dc:creator>
 <guid isPermaLink="false">4 at http://www.mikesmullin.com</guid>
</item>
<item>
 <title>Join the fight for Web Standards!</title>
 <link>http://www.mikesmullin.com/2006/03/14/why-web-standards-are-a-good-thing</link>
 <description>&lt;p&gt;&lt;img alt=&quot;WaSP Logo&quot; class=&quot;border alignright&quot; id=&quot;image12&quot; src=&quot;/files/2006/03/wasp_logo.jpg&quot; name=&quot;image12&quot; /&gt;In light of ongoing discussion regarding &lt;a href=&quot;http://www.molly.com/2005/11/14/web-standards-and-the-new-professionalism/&quot;&gt;a new professionalism for Web designers and developers&lt;/a&gt;, it’s clear that some people still don&#039;t get it: &lt;a href=&quot;http://www.webstandards.org/learn/faq/#p2132&quot;&gt;XML&lt;/a&gt;, &lt;a href=&quot;http://www.webstandards.org/learn/faq/#p2133&quot;&gt;XHTML&lt;/a&gt;, &lt;a href=&quot;http://www.webstandards.org/learn/faq/#p2134&quot;&gt;CSS&lt;/a&gt;, &lt;a href=&quot;http://www.webstandards.org/learn/faq/#p2231&quot;&gt;ECMAScript&lt;/a&gt;, &lt;a href=&quot;http://www.webstandards.org/learn/faq/#p31&quot;&gt;Accessibility&lt;/a&gt;, &lt;a href=&quot;http://www.webstandards.org/about/mission/&quot;&gt;WaSP&lt;/a&gt;, &lt;a href=&quot;http://www.webstandards.org/learn/faq/#p211&quot;&gt;W3C&lt;/a&gt; -- what do they all have in common?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://www.webstandards.org/learn/faq/#p213&quot;&gt;Web standards&lt;/a&gt; that reduce the cost and complexity of development and increase the usability and lifespan of sites published on the Web. &lt;em&gt;That&#039;s what!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;In an interview with Accessify’s Ian Lloyd, &lt;a href=&quot;http://accessify.com/2005/11/interview-with-andy-clarke-aka.php&quot;&gt;Accessibility: The gloves come off&lt;/a&gt;, Andy Clarke delivers a strong message that truly needs to be heard:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Those people still delivering nested table layout, spacer gifs or ignoring accessibility can no longer call themselves web professionals.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In 2006 we have &lt;a href=&quot;http://mikesmullin.com/freelance/?page_id=6&quot;&gt;books&lt;/a&gt;, blogs, wikis, &lt;a href=&quot;http://www.utahtechjobs.com/index.php/category/utah-living/communitiesuser-groups/devutah/utahgeekdinners/&quot;&gt;geek dinners&lt;/a&gt;, and &lt;a href=&quot;http://2006.sxsw.com/&quot;&gt;SXSW conferences&lt;/a&gt; and there is absolutely no excuse to remain neutral.&lt;/p&gt;
&lt;p&gt;Resistance is futile!&lt;/p&gt;

</description>
 <comments>http://www.mikesmullin.com/2006/03/14/why-web-standards-are-a-good-thing#comments</comments>
 <category domain="http://www.mikesmullin.com/category/learning">Learning</category>
 <pubDate>Wed, 15 Mar 2006 03:27:45 -0700</pubDate>
 <dc:creator>mikesmullin</dc:creator>
 <guid isPermaLink="false">3 at http://www.mikesmullin.com</guid>
</item>
</channel>
</rss>
