<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Montana Programmer</title>
	
	<link>http://www.montanaprogrammer.com</link>
	<description>View articles on PHP programming, WordPress how-to, blogging tips and how to work smarter. Your comments would be appreciated!</description>
	<lastBuildDate>Wed, 04 Apr 2012 13:20:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/montanaprogrammer" /><feedburner:info uri="montanaprogrammer" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><creativeCommons:license>http://creativecommons.org/licenses/by-nc/3.0/</creativeCommons:license><feedburner:emailServiceId>montanaprogrammer</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/montanaprogrammer" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fmontanaprogrammer" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><item>
		<title>Drupal 8: A Look Ahead</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/maNpM_SGlGU/</link>
		<comments>http://www.montanaprogrammer.com/drupal/drupal-8-a-look-ahead/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 00:00:35 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[Drupal Tips & Tutorials]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1725</guid>
		<description><![CDATA[Since the release of Drupal 7, there has been much talk about what to expect for the next major release of Drupal. Drupal’s founder Dries Buytaert has outlined some of the goals for Drupal 8. These goals provide some insights into what we are likely to see in the next Drupal version. A few of [...]]]></description>
			<content:encoded><![CDATA[<p>Since the release of Drupal 7, there has been much talk about what to expect for the next major release of Drupal. Drupal’s founder Dries Buytaert has outlined some of the goals for Drupal 8. These goals provide some insights into what we are likely to see in the next Drupal version.<span id="more-1725"></span></p>
<p>A few of the goals Dries has outlined includes the following: to integrate web services, optimize for HTML5, improve configuration management, improve design and usability, and to become mobile and tablet friendly.</p>
<h2>Web Services</h2>
<p>Web Services are one of the central features for Drupal 8. The goal for Drupal is to use the Representational State Transfer architecture (REST) for its integrated services functionality. Drupal 8 will aim to have the ability to produce data in different formats, such as JSON, XML as well as other formats.</p>
<p>The reason for this is that data for a website can no longer be assumed to mostly be full html pages. These days AJAX combined with communicating via web services is becoming more of a priority. It is good to see Drupal recognize this.</p>
<h2>HTML 5</h2>
<p>HTML 5 is another major initiative for the next Drupal release. All indications have shown that HTML 5 is a major milestone in the evolution of the internet and is now supported on the latest browsers. Drupal 8 is setting a goal to use HTML 5 as its default doctype.</p>
<h2>Configuration Management</h2>
<p>This initiative aims to create more control over configuration changes.  It allows configurations such as rollbacks, which can return the settings back to a particular time. It also allows the saving of a configuration change, such that changes made to one site, can be automatically applied to another site. To make these types of updates to Drupal, there are  a few changes that need to be made to the Drupal core and will result in much more control for Drupal developers.</p>
<h2>Design</h2>
<p>One of the main goals of Drupal 7 was to improve design and Drupal will aim to push this even further. Ideally the focus here will be to attract designers, which was not achieved in in the past. There will be a new core theme, which will not only be a beautifully designed theme, but it will path the way for an improved theme development process.</p>
<h2>Mobile Devices</h2>
<p>The previously mentioned initiatives of web services, html5 and design are directly contributing to improving the Drupal mobile experience (including tablets). A mobile initiative has been created to make Drupal the foremost mobile platform. There is a major shift predicted from desktops to tablets and mobile phones, and Drupal aims to be ready for this shift. It will be important that the backend is usable and accessible on mobile devices. </p>
<h2>Usability</h2>
<p>As with Design, usability was a strong focus for Drupal 7. For Drupal 8, usability will continue to be further emphasized. Formal usability tests are being conducted to see what can be improved. This will make Drupal easier to learn, quicker to perform tasks, easier to remember tasks, reduce errors, easier to recover from errors and overall make Drupal more pleasant to use. Drupal has sometimes been criticized for not being intuitive and quick to learn, so these improvements will be one of the most important of all the initiatives.</p>
<h2>Drupal 8 Progress</h2>
<p>You are able to keep track of the progress of these initiatives by following the <a href="http://groups.drupal.org/drupal-initiatives" target="_blank">Drupal 8 Initiatives</a> group. This group provides updates and announcements and is the best group to join if you are interested in keeping up to date with Drupal 8 news. </p>
<h2>Overview</h2>
<p>Drupal 8 promises some exciting changes to bring it in line with some of the latest trends. It will also improve aspects that have put people off by Drupal in the past, especially usability and design. </p>
<p><em>This article was written by Mitchel Xavier. He is a <a href="http://www.infinitytechnologies.com.au/webdesign/drupal-cms.html" target="_blank">Drupal Developer</a> in Sydney Australia</em></p>

<p><a href="http://feedads.g.doubleclick.net/~a/c0NcgZgKlhnUs1mp5l7OP-AH7a8/0/da"><img src="http://feedads.g.doubleclick.net/~a/c0NcgZgKlhnUs1mp5l7OP-AH7a8/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/c0NcgZgKlhnUs1mp5l7OP-AH7a8/1/da"><img src="http://feedads.g.doubleclick.net/~a/c0NcgZgKlhnUs1mp5l7OP-AH7a8/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=maNpM_SGlGU:ajEpGgH303w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=maNpM_SGlGU:ajEpGgH303w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=maNpM_SGlGU:ajEpGgH303w:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=maNpM_SGlGU:ajEpGgH303w:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/maNpM_SGlGU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/drupal/drupal-8-a-look-ahead/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/drupal/drupal-8-a-look-ahead/</feedburner:origLink></item>
		<item>
		<title>Drupal 7: Reflecting on my Experience</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/m3mqkIIxXys/</link>
		<comments>http://www.montanaprogrammer.com/drupal/drupal-7-reflection/#comments</comments>
		<pubDate>Tue, 01 Nov 2011 01:00:33 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[Drupal Tips & Tutorials]]></category>
		<category><![CDATA[Drupal]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1708</guid>
		<description><![CDATA[Over the last few years I started working extensively with Drupal. I first started with Drupal 6 and late last year got into Drupal 7. Drupal has seen widespread growth and I only see the system improving going forward. This isn&#8217;t to say that Drupal is the only system you should use. But when looking [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few years I started working extensively with Drupal. I first started with Drupal 6 and late last year got into Drupal 7. Drupal has seen widespread growth and I only see the system improving going forward.<span id="more-1708"></span></p>
<p>This isn&#8217;t to say that Drupal is the only system you should use. But when looking at the system objectively, I think there are some advantages and disadvantages in choosing Drupal 7.</p>
<h2>Drupal 7 Advantages</h2>
<ul>
<li><strong>Admin Power</strong>: If you have experience creating PHP programming websites from scratch, than you know how much work it can take in programming a website. Drupal 7 takes care of 90% of what most people need in a website and provides the ability in having the website content updated through an easy to use admin interface. In fact, the UI interface from Drupal 6 to Drupal 7 has become much more user friendly. What took 20 hours to implement via a totally custom solution, now takes 30 minutes. This is probably the biggest advantage in using Drupal 7.</li>
<li><strong>Contributed Modules</strong>: When Drupal 7 first came out, most of the major contributed modules were still in beta. However, it finally seems like the modules are in stable releases and more contributed modules are upgraded more frequently now.</li>
<li><strong>Theme Layer</strong>: The default theme layer uses PHPTemplate, but other engines can be used. It provides a flexible way for non programmers to create and modify the design of the site without requiring PHP knowledge (even though some helps).</li>
<li><strong>Active Community</strong>: With this type of system, you want people actively working on the system and modules so that bugs and security flaws are ironed out quickly. With Drupal 7, we&#8217;ve seen updates to core come out every 1-2 months since the stable version has launched.</li>
<li><strong>Custom Programming</strong>: Drupal 7 has added many hooks that allows a PHP programmer to tap into the system and contributed modules to modify behavior. This allows for extreme flexibility. In the case where you need to create a custom module from the ground up, the Drupal form API becomes a very useful and secure tool at your disposal.</li>
<li><strong>Fields</strong>: With Drupal 7, fields became widespread across the system. You now can add fields to pretty much everything: nodes, users, comments, custom entities, etc&#8230; This allows for easy customization throughout the system and is a very handy feature.</li>
</ul>
<h2>Disadvantages of Drupal 7</h2>
<ul>
<li><strong>Learning Curve</strong>: Once you get familiar with the basic mechanics of the system, it becomes second nature in how to do the most common things via programming. However, getting to that point requires referencing the documentation a lot in the beginning. The curve has steepened with Drupal 7, with the introduction of entities&#8230;but in most cases you won&#8217;t need to create a custom entity. Also learning how to best use the theme layer can take time in figuring out.</li>
<li><strong>Security Concerns</strong> Just like any other shared code, the risk of someone taking advantage of a security flaw is greater than it is with a totally custom system. You can minimize this risk by keeping the code up to date with security updates. With this said, I have not come across a drupal site that has been kept relatively up to date.</li>
<li><strong>Updating</strong>: Updating the core code is not difficult. But when compared to WordPress, it is a little more time consuming&#8230;especially when you do it via FTP. There are ways in speeding up this process. But most people won&#8217;t know how to take advantage of these techniques.</li>
<li><strong>Lack of Documentation</strong>: When Drupal 7 first became stable, there was very little as far as completed documentation. This made the learning curve even more difficult. Be prepared to have to do multiple Google searches in finding sample code that helps you along. Hopefully in the next year this will not be an issue.</li>
<li><strong>Speed</strong>: There is a performance hit when using a system like this with all of the moving parts of the system. The cache does help things, but it still is not the fastest system out there. I do see this improving, up through Drupal 8.</li>
</ul>
<h2>Summary</h2>
<p>All in all, I believe Drupal 7 is a great option for most websites. It is flexible enough to handle complicated websites with a huge user base and combined with the contributed modules, most things can be handled without needing any PHP programming. The user interface has become much more user friendly since Drupal 6.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/vm9vypXoTKI0PSzP95qZroemL8Q/0/da"><img src="http://feedads.g.doubleclick.net/~a/vm9vypXoTKI0PSzP95qZroemL8Q/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/vm9vypXoTKI0PSzP95qZroemL8Q/1/da"><img src="http://feedads.g.doubleclick.net/~a/vm9vypXoTKI0PSzP95qZroemL8Q/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=m3mqkIIxXys:UyBp35vzF9s:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=m3mqkIIxXys:UyBp35vzF9s:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=m3mqkIIxXys:UyBp35vzF9s:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=m3mqkIIxXys:UyBp35vzF9s:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/m3mqkIIxXys" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/drupal/drupal-7-reflection/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/drupal/drupal-7-reflection/</feedburner:origLink></item>
		<item>
		<title>What does it mean to be an Advanced PHP Programmer?</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/g3H02S6BcTA/</link>
		<comments>http://www.montanaprogrammer.com/work-smarter/what-does-it-mean-to-be-an-advanced-php-programmer/#comments</comments>
		<pubDate>Fri, 03 Jun 2011 23:00:46 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[Learn How to Work Smarter]]></category>
		<category><![CDATA[Learn PHP with Sample PHP Code]]></category>
		<category><![CDATA[PHP Tips and Tricks]]></category>
		<category><![CDATA[PHP Programmer Tips]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1687</guid>
		<description><![CDATA[On a previous post I had someone comment that they did not agree that the code implementation that was presented in the article was advanced (which was described in the title). They also claimed that I was not an advanced PHP programmer. This made me think. Not because my programming skill or knowledge was challenged. [...]]]></description>
			<content:encoded><![CDATA[<p>On a previous post I had someone comment that they did not agree that the code implementation that was presented in the article was advanced (which was described in the title). They also claimed that I was not an advanced PHP programmer.</p>
<p>This made me think. Not because my programming skill or knowledge was challenged. But because I&#8217;m not sure what makes code or a programmer &#8220;advanced&#8221;. This article is meant to take a look at this from an analytical perspective. I&#8217;m less concerned about general labels, and more concerned in how to improve going things going forward.<span id="more-1687"></span></p>
<h2>What makes a PHP programmer advanced?</h2>
<ol>
<li>Is it the programming concepts they understand? If so, which concepts do they need to understand in order to be considered advanced?</li>
<li>Is it the amount of experience they have or the size of the websites they&#8217;ve worked on? If so, how long do they need to have programmed or how large of a website do they need to have worked on to be considered advanced?</li>
<li>Is it how fast or efficient they program? If so how fast do they need to be?</li>
<li>Or maybe it is dependent on how modular their code is?</li>
<li>Does it depend on how much they makes?</li>
<li>Does it depend on whether the PHP programmer went to college or not, and which college they went to?</li>
<li>Or does it depend on the conferences the programmer has been to?</li>
</ol>
<p>The point I&#8217;m trying to make is that the term &#8220;advanced&#8221; is a relative term and is subjective to the person using it. A person may define a PHP programmer as advanced if they understand object oriented concepts. Or they may consider a PHP programmer advanced if they make a six figure income. But the fact of the matter is that you can use whatever labels you want, but that doesn&#8217;t define your value as a PHP programmer. Outside of general programming knowledge and concepts, there are many other factors to consider when analyzing the value of a PHP programmer. On top of that, the term &#8220;advanced&#8221; does not always equal &#8220;best&#8221; or &#8220;most valuable&#8221;. I wrote an article last year that goes through <a href"/php-web-programming/analyzing-php-programmers/" target="_blank">Analyzing the Value of a PHP Programmer</a>.</p>
<h2>What makes PHP code advanced?</h2>
<p>Similar to the previous section, I think this question is very subjective&#8230;and honestly I think it is irrelevant. You can have the most &#8220;advanced&#8221; PHP code in the world for a system, but it could also be the most worthless code because it is impractical in most situations. I also think it misses the point.</p>
<p>In any given scenario, the best solution is sometimes a simpler solution than a more advanced implementation. A real world example of this that I&#8217;ve experience is the use of object oriented PHP code. In a framework system such as Zend Framework, using object oriented code makes a lot of sense. But for a simple site with only a few pages and one simple form, using objected oriented code may be overkill and take much more time to implement. At one point in my career I had built a custom object oriented framework that I used with all of the custom sites I worked on. This worked okay at the time, but looking back I now realize that I had spent a lot of time that I didn&#8217;t need to spend creating a framework system when I could have used countless other systems that were already created. On top of that, there were some websites where I had used this system where it would have been faster to just put together a more simplified solution.</p>
<h2>Summary</h2>
<p>Instead of throwing around general terms in labeling code or other programmers, let&#8217;s come together and figure out ways in improving code together. Practical applications. Questions such as, when does it make sense to use OOP? Or how can we make this code more modular in a site that needs to re-use the code? These are the questions that are worth pursuing. This is how we can help others improve their code (without caring how &#8220;advanced&#8221; they are) and this is how we can improve our own code and increase our value as a PHP programmer!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/mjyz8vrkQWC74h1u6NBlLTmmufI/0/da"><img src="http://feedads.g.doubleclick.net/~a/mjyz8vrkQWC74h1u6NBlLTmmufI/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mjyz8vrkQWC74h1u6NBlLTmmufI/1/da"><img src="http://feedads.g.doubleclick.net/~a/mjyz8vrkQWC74h1u6NBlLTmmufI/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=g3H02S6BcTA:yoq5j8FuMoQ:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=g3H02S6BcTA:yoq5j8FuMoQ:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=g3H02S6BcTA:yoq5j8FuMoQ:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=g3H02S6BcTA:yoq5j8FuMoQ:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/g3H02S6BcTA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/work-smarter/what-does-it-mean-to-be-an-advanced-php-programmer/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/work-smarter/what-does-it-mean-to-be-an-advanced-php-programmer/</feedburner:origLink></item>
		<item>
		<title>Advanced PHP Form Validation</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/2jiAqDGkN9M/</link>
		<comments>http://www.montanaprogrammer.com/learn-php/advanced-php-form-validation/#comments</comments>
		<pubDate>Tue, 03 May 2011 23:00:17 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[Learn PHP with Sample PHP Code]]></category>
		<category><![CDATA[Sample PHP Code]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1663</guid>
		<description><![CDATA[Last year I wrote an article in how to implement basic validation for a form with PHP. I decided to re-look at this and improve what I did in that article. This time we are going to make a more advanced PHP form that is more responsive and effective. This PHP sample code has many [...]]]></description>
			<content:encoded><![CDATA[<p>Last year I wrote an article in how to implement basic validation for a form with PHP. I decided to re-look at this and improve what I did in that article. This time we are going to make a more <em>advanced PHP form</em> that is more responsive and effective.</p>
<p>This PHP sample code has many advantages over the previous article. Not only that, but for the most part it is easier to implement with more complexed forms where you need more than basic validation.<span id="more-1663"></span></p>
<h2>Requirements</h2>
<p>Below are the requirements for the code included in this PHP form tutorial:</p>
<ul>
<li>PHP 5</li>
<li><a href="http://www.jquery.com/" target="_blank">jQuery</a></li>
<li><a href="http://docs.jquery.com/Plugins/validation" target="_blank">jQuery Validate Plugin</a></li>
</ul>
<p>JavaScript has become standard in browsers, which makes client side form validation user friendly before submitting the form. In fact, in most cases, it is the standard for form validation on the web.</p>
<p>With that said, I do not recommend depending on client side validation for your forms&#8230;mainly in defending against hackers and bots. But most people who use your form should have JavaScript enabled.</p>
<p>You can <a href="/uploadedfiles/phpform/" target="_blank">view a demo of the PHP form in action</a>. You will not only see the standard validation (email, phone, and required fields), but we also take it a step further by validating check boxes. If the visitor checks the newsletter option, they must then check two topics before the form can be submitted (in the same way, you can do something like this with radio buttons). If there are errors in the form, and those errors are corrected, they will immediately disappear.</p>
<p>I took an example from the jQuery validation documentation and tweaked it a little bit to fit the form, for this PHP tutorial.</p>
<h2>Form HTML Page</h2>
<p>Below is the html for the page where the form will sit.</p>
<pre class="brush: php;">
&lt;html>
&lt;head>
&lt;script type="text/javascript" src="js/jquery-1.5.2.min.js">&lt;/script>
&lt;script type="text/javascript" src="js/jquery.validate.min.js">&lt;/script>
&lt;script type="text/javascript" src="js/additional-methods.min.js">&lt;/script>

&lt;style type="text/css">
label {
	float: left;
	padding-right:10px;
}
label.error {
	float: none;
	color: red;
	padding-left: .5em;
	vertical-align: top;
}
p {
	clear: both;
}
.gray {
	/*color: gray;*/
	display: none;
}
#newsletter_topics label.error {
	display: none;
	padding-left: 0px;
}
&lt;/style>

&lt;script type="text/javascript">
$(document).ready(function(){
	// validate signup form on keyup and submit
	$("#signupForm").validate({
		rules: {
			firstname: "required",
			lastname: "required",
			email: {
				required: true,
				email: true
			},
			phone: {
				required: true,
				phoneUS: true
			},
			agree: "required",
			'topic[]': {
				required: "#newsletter:checked",
				minlength: 2
			}
		},
		messages: {
			firstname: "Please enter your firstname.",
			lastname: "Please enter your lastname.",
			email: "Please enter a valid email address.",
			phone: "Please specify a valid phone number.",
			agree: "Please accept our policy."
		}
	});

	//code to hide topic selection, disable for demo
	var newsletter = $("#newsletter");

	// newsletter topics are optional, hide at first
	var inital = newsletter.is(":checked");
	var topics = $("#newsletter_topics")[inital ? "removeClass" : "addClass"]("gray");
	var topicInputs = topics.find("input").attr("disabled", !inital);

	// show when newsletter is checked
	newsletter.click(function() {
		topics[this.checked ? "removeClass" : "addClass"]("gray");
		topicInputs.attr("disabled", !this.checked);
	});
});
&lt;/script> 

&lt;/head>
&lt;body>

&lt;form id="signupForm" method="POST" action="processform.php">
	&lt;fieldset>
		&lt;legend>Signup Form&lt;/legend>
		&lt;p>
			&lt;label for="firstname">*Firstname:&lt;/label>
			&lt;input id="firstname" name="firstname" />
		&lt;/p>
		&lt;p>
			&lt;label for="lastname">*Lastname:&lt;/label>
			&lt;input id="lastname" name="lastname" />
		&lt;/p>
		&lt;p>
			&lt;label for="email">*Email:&lt;/label>
			&lt;input id="email" name="email" />
		&lt;/p>
		&lt;p>
			&lt;label for="phone">*Phone Number:&lt;/label>
			&lt;input id="phone" name="phone" />
		&lt;/p> 

		&lt;p>[ENTER POLICY HERE]&lt;/p>
		&lt;p>
			&lt;label for="agree">*Do you agree to our policy?&lt;/label>
			&lt;input type="checkbox" class="checkbox" id="agree" name="agree" />
		&lt;/p>

		&lt;p>
			&lt;label for="newsletter">Would you like to receive our newsletter?&lt;/label>
			&lt;input type="checkbox" class="checkbox" id="newsletter" name="newsletter" />
		&lt;/p>
		&lt;fieldset id="newsletter_topics">
			&lt;legend>Topics (select at least two) - note: would be hidden when newsletter isn't selected, but is visible here for the demo&lt;/legend>
			&lt;label for="topic_marketflash">
				&lt;input type="checkbox" id="topic_marketflash" value="marketflash" name="topic[]" />
				Marketflash
			&lt;/label>
			&lt;label for="topic_fuzz">
				&lt;input type="checkbox" id="topic_fuzz" value="fuzz" name="topic[]" />
				Latest fuzz
			&lt;/label>
			&lt;label for="topic_digester">
				&lt;input type="checkbox" id="topic_digester" value="digester" name="topic[]" />
				Mailing list digester
			&lt;/label>
			&lt;label for="topic[]" class="error">&lt;br />&lt;br />Please select at least two topics you'd like to receive.&lt;/label>
		&lt;/fieldset>
		&lt;p>
			&lt;input class="submit" type="submit" value="Submit"/>
		&lt;/p>
	&lt;/fieldset>
&lt;/form> 

&lt;/body>
&lt;/html>
</pre>
<p>One thing you will notice is that there is no PHP code on this page. You will also notice that jQuery is used heavily. In the head tag we define which fields are required and the error messages to display if the field is not entered correctly. This is the largest improvement over the last form example, since the client side error handling is immediate and it displays the errors without posting the form. There was no client side validation in the previous <a href="/php-web-programming/php-form-validation/" target="_blank">PHP form article</a>.</p>
<p>If you are not familiar in working with jQuery, I highly recommend going through some basic jQuery examples. The bundled code I provide at the end of this PHP tutorial includes the jQuery files necessary in making this example work.</p>
<h2>PHP: Process the Form</h2>
<p>Since jQuery is JavaScript, if the visitor has JavaScript disabled, the validation on this page will not work and the form will be posted. With this in mind, we still need to do server side validation. I took the code that was used in the previous tutorial, and improved it for this example.</p>
<pre class="brush: php;">
&lt;?php
/*
 * BEGIN CONFIG
 */

// The page you want the user to be redirected if there are no errors.
$thankYouPage = 'thanks.html';

// Define which values we are to accept from the form. If you add additional
// fields to the form, make sure to add the form name values here.
$allowedFields = array(
	'firstname',
	'lastname',
	'email',
	'phone',
	'agree',
	'newsletter',
	'topic',
);

// Specify the required form fields. The key is the field name and the value
// is the error message to display.
$requiredFields = array(
	'firstname' => 'First name is required.',
	'lastname' => 'Last name is required.',
	'email' => 'Email address is required.',
	'phone' => 'Phone number is required.',
	'agree' => 'You must agree with our policy.',
);

// Note: Since we are requiring two topics to be checked if they want to receive
// our newsletter, we need to implement custom code.

/*
 * END CONFIG
 */

/*
 * Since we are doing javascript error checking on the form before the form gets submitted,
 * the server side check is only a backup if the user has javascript disabled. Since this
 * is unlikely, we are displaying the server side errors on a separate page of the form.
 *
 * The more practical purpose of server side checking (in this case) is to prevent hackers from exploiting
 * your PHP processing code.
 */

/*
 * BEGIN FORM VALIDATION
 */

$errors = array();

// We need to loop through the required variables to make sure they were posted with the form.
foreach($requiredFields as $fieldname => $errorMsg)
{
	if(empty($_POST[$fieldname]))
	{
		$errors[] = $errorMsg;
	}
}

// Loop through the $_POST array, to create the PHP variables from our form.
foreach($_POST AS $key => $value)
{
    // Is this an allowed field? This is a security measure.
    if(in_array($key, $allowedFields))
    {
        ${$key} = $value;
    }
}

// Code to validate the newsletter topic checkboxes
if(!empty($_POST['newsletter']))
{
	// They checked the newsletter checkbox...make sure they
	// checked at least two topics.
	if(count($_POST['topic']) &lt; 2)
	{
		$errors[] = "In order to receive our newsletter, you must check at least two topics.";
	}
}

/*
 * END FORM VALIDATION
 */

// Were there any errors?
if(count($errors) > 0)
{
    $errorString .= '&lt;ul>';
    foreach($errors as $error)
    {
        $errorString .= "&lt;li>$error&lt;/li>";
    }
    $errorString .= '&lt;/ul>';

    // display the errors on the page
    ?>
    &lt;html>
    &lt;head>
    &lt;title>Error Processing Form&lt;/title>
    &lt;/head>
    &lt;body>
    &lt;h2>Error Processing Form&lt;/h2>
    &lt;p>There was an error processing the form.&lt;/p>
    &lt;?php echo $errorString; ?>
    &lt;p>&lt;a href="index.php">Go Back to the Form&lt;/a>&lt;/p>
    &lt;/body>
    &lt;/html>
    &lt;?php
}
else
{
    // At this point you can send out an email or do whatever you want
    // with the data...

    // each allowed form field name is now a php variable that you can access

    // display the thank you page
    header("Location: $thankYouPage");
}
?>
</pre>
<p>A configuration area was added to the beginning of the file. Notice that in this code, if there is are no errors processing the form, we display the errors on this page instead of the previous form. This does several things:</p>
<p>1. Since the majority of people will have JavaScript enabled, the server side form validation is only meant as a backup and to prevent hackers from trying to exploit the form. So displaying errors on a blank page should suffice in this case. With that said, there may be times were going back to the form and pre-populating the fields makes sense.</p>
<p>2. This simplifies things. We don&#8217;t have to use PHP on the form html page at all.</p>
<p>I also do not use the short tag version of calling PHP for compatibility.</p>
<p>You can download all of the <a href="/uploadedfiles/phpform.zip">PHP Form Code</a>, which includes the required JavaScript files.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/yeDKK92EXwrg7XWzlYe93v9W1ZM/0/da"><img src="http://feedads.g.doubleclick.net/~a/yeDKK92EXwrg7XWzlYe93v9W1ZM/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/yeDKK92EXwrg7XWzlYe93v9W1ZM/1/da"><img src="http://feedads.g.doubleclick.net/~a/yeDKK92EXwrg7XWzlYe93v9W1ZM/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=2jiAqDGkN9M:XLSvnvWLy44:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=2jiAqDGkN9M:XLSvnvWLy44:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=2jiAqDGkN9M:XLSvnvWLy44:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=2jiAqDGkN9M:XLSvnvWLy44:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/2jiAqDGkN9M" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/learn-php/advanced-php-form-validation/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/learn-php/advanced-php-form-validation/</feedburner:origLink></item>
		<item>
		<title>The Last Few Years: What a PHP Programmer Has Learned</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/qNYenOBHQTI/</link>
		<comments>http://www.montanaprogrammer.com/php-web-programming/reflection-of-a-php-programmer/#comments</comments>
		<pubDate>Fri, 22 Apr 2011 23:00:12 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[PHP Tips and Tricks]]></category>
		<category><![CDATA[PHP Programmer Tips]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1603</guid>
		<description><![CDATA[Over the last few years I&#8217;ve become more familiar with multiple systems. I go over a few things that I&#8217;ve learned and the areas that I hope to improve upon over the next year. Linux Terminal Previously, I used the terminal through SSH when I needed to. But these times were limited to basic functionality. [...]]]></description>
			<content:encoded><![CDATA[<p>Over the last few years I&#8217;ve become more familiar with multiple systems. I go over a few things that I&#8217;ve learned and the areas that I hope to improve upon over the next year.<span id="more-1603"></span></p>
<h2>Linux Terminal</h2>
<p>Previously, I used the terminal through SSH when I needed to. But these times were limited to basic functionality. Recently I became more familiar in working with MySQL over the command line and creating PHP shell scripts. The advantages of running PHP through the shell are that you can use a program like Screen to run a PHP daemon script. This allows the PHP script to run infinitely, which is useful in some applications when you want to check for updates every xx seconds or minutes (in a sense, it is an upgrade in using cron jobs). You also are no longer limited to the PHP memory config or time limits that are set by the php.ini file, so you have more freedom. I was able to put this to use when creating <a href="http://www.slurp140.com" target="_blank">Slurp140</a>, among several other projects.</p>
<h2>SVN Repository</h2>
<p>I&#8217;ve always heard of SVN, but I hadn&#8217;t used it very much prior to moving to Helena, MT. You can look at revision history, export previous revisions, see who did what revision and when, among many other useful features. For managers, they can see exactly the new code a programmer wrote in emails that are sent when the code is committed to the repository&#8230;.instead of having to figure out what they did. In fact, it seems that every medium to large size company I have worked for in the last 2.5 years uses this system.</p>
<p>More recently I started using Git in Drupal contributions.</p>
<h2>Drupal</h2>
<p>I&#8217;ve been aware of Drupal for a long time, but it wasn&#8217;t until 2009 when I started using the system quite often. In fact, I&#8217;ve grown to love Drupal. It has a huge community with modules that cover most everything that you need. In fact, unless you need a very custom solution, there usually is a module that exists for what you are looking for.</p>
<p>I was able to create many custom modules for projects that needed custom interfaces. I was pleasantly surprised by how well thought out their module system is laid out, and how easy it is to tap into Drupal core functionality.</p>
<p>More recently I started working with Drupal 7. I found this version a little more difficult to pickup than Drupal 6, but it is more powerful.</p>
<h2>WordPress</h2>
<p>Most of my experience with WordPress has been through this site, but I also worked on several projects that used this system. I don&#8217;t like it as much as Drupal, but for a simple blog&#8230;.Wordpress is hard to beat. </p>
<h2>CiviCRM</h2>
<p>This technically is a module for Drupal (and Joomla), but it is such a huge system that it is worth mentioning. Unfortunately, I don&#8217;t agree with how some elements have been put together for this system&#8230;.but it has a ton of features and I&#8217;ve seen it used with millions of contacts for projects that I&#8217;ve worked on. It was good to get some experience with CRM a system.</p>
<h2>Mailing Lists</h2>
<p>I&#8217;ve worked with mailing list systems in the past, but over the last year I&#8217;ve worked with many more. Lyris, Mail Chimp, and Constant Contact&#8230;just to name a few. All of them have different API&#8217;s that are very different from each other. I personally find Mail Chimp to be the easiest to use out of all of them, and Lyris to be the most difficult (but it does have a lot more features).</p>
<h2>Going Forward</h2>
<p>I feel very good with the diversity in different systems I&#8217;ve learned how to use. I&#8217;ve become a better programmer because of it. But I do feel like I can improve on my command line knowledge.</p>
<p>Knowing what I know now five years ago, I probably would have spent more time understanding how servers work on a basic level, and how to edit code and work with a database using only the command line. With that said, I don&#8217;t think that knowing these things makes you a great programmer. In my experiences, reliability and organization are a lot more valuable to the PHP programmer!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ru-JKWyNesoT3z1yt8w1YwTpmWU/0/da"><img src="http://feedads.g.doubleclick.net/~a/ru-JKWyNesoT3z1yt8w1YwTpmWU/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ru-JKWyNesoT3z1yt8w1YwTpmWU/1/da"><img src="http://feedads.g.doubleclick.net/~a/ru-JKWyNesoT3z1yt8w1YwTpmWU/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=qNYenOBHQTI:F1K_xY-8RZk:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=qNYenOBHQTI:F1K_xY-8RZk:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=qNYenOBHQTI:F1K_xY-8RZk:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=qNYenOBHQTI:F1K_xY-8RZk:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/qNYenOBHQTI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/php-web-programming/reflection-of-a-php-programmer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/php-web-programming/reflection-of-a-php-programmer/</feedburner:origLink></item>
		<item>
		<title>PHP Content Management System of Choice</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/0GW7r31abyM/</link>
		<comments>http://www.montanaprogrammer.com/php-web-programming/php-cm/#comments</comments>
		<pubDate>Sun, 06 Feb 2011 00:00:29 +0000</pubDate>
		<dc:creator>Carrie Donalds</dc:creator>
				<category><![CDATA[PHP Tips and Tricks]]></category>
		<category><![CDATA[Drupal]]></category>
		<category><![CDATA[Wordpress]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1630</guid>
		<description><![CDATA[Guest author Carrie Donalds goes through her perspective on WordPress, while I give you my take on this subject. There are many PHP content management systems out there, and we go through a few different perspectives. If you want to write a guest post on a specific PHP or project management related topic, please contact [...]]]></description>
			<content:encoded><![CDATA[<p>Guest author Carrie Donalds goes through her perspective on WordPress, while I give you my take on this subject.  There are many PHP content management systems out there, and we go through a few different perspectives.</p>
<p>If you want to write a guest post on a specific PHP or project management related topic, please <a href="/contact/">contact me</a>.<span id="more-1630"></span></p>
<p>WordPress is a popular publishing platform that was primarily used for blogging purposes. Part of the widespread popularity of WordPress was due to the ease of use and quick setup. Users didn&#8217;t have to have a background in website programming in order to create and install an online platform to share their thoughts with the world. The downside to this popular platform in the beginning was the limited template designs and plugins that were available. The user could post blog entries or write articles, but were unable to customize the look and add other features to their WordPress site very easily.</p>
<p>Compared to other scripting languages, <a href="/learn-php/beginning-php-part1/" target="_blank">learning PHP</a> is fairly easy, which makes getting down and dirty with with WordPress even easier. Over time, web designers and website programmers began using custom PHP programming in conjunction with WordPress to build websites. This allowed designers to use a readymade platform while having the ability to customize the look of their website, without PHP programming knowledge. This technique made it fast and profitable to build a website that was completely customizable according to the client&#8217;s preferences, without having to hand code everything. Another thing that is nice about using WordPress as a content management system is the availability of plugins. Plugins are like miniature programs that can be easily added to a website to enhance its use or functionality. For example, there are plenty of readymade plugins that can do just about anything from posting the current date and time, to allowing your site visitors to sign up for a newsletter. These can be installed quickly and most of them are simple to customize. </p>
<p>Not only is <a href="http://www.webhostingsearch.com/php-web-hosting.php" target="_blank">PHP hosting</a> required for building a site with WordPress, but it is a good idea because it gives you access to other systems that also use PHP and MySQL. PHP has a great open source community that provides plenty of support to help with technical issues or other custom programming projects. All of the plug and play extras, such as forums and chat rooms are a piece of cake to install. </p>
<h2>Chris Roane’s Perspective</h2>
<p>I agree that WordPress is a powerful platform for building simple websites, like a blog. However, in the last few years, I’ve determined that Drupal is a more programmer friendly option when you really need to do a lot of customizations or implement advanced features. The module system in Drupal is much more integrated, and you can more easily modify deeper aspects of Drupal than you can in WordPress.</p>
<p>With that said, WordPress is more easily picked up by none PHP programmers (mainly due to the complexity of the Drupal API). Also, the admin interface for WordPress is more user friendly than Drupal, but now that is debatable since Drupal 7 launched (early last month). Both systems have active and large communities that provide tons of open source code to customize your website through plugins and modules. There are other options, but I would put Drupal and WordPress at the top of my go to list for the best PHP CMS systems out there.</p>
<blockquote><p><strong>About Carrie:</strong></p>
<p>This article is contributed by Carrie Donalds, a senior writer for <a href="http://www.webhostingsearch.com" target="_blank">WebHostingSearch.com</a>. She has been writing since her school days&#8211;from academic writing to blogging. Aside from writing, Carrie is also into creating home-cooked meals.</p></blockquote>
<p><em>What is your favorite PHP content management system, and why?</em></p>

<p><a href="http://feedads.g.doubleclick.net/~a/mDeJN3GF13idBucTlCB9ZefCAQg/0/da"><img src="http://feedads.g.doubleclick.net/~a/mDeJN3GF13idBucTlCB9ZefCAQg/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/mDeJN3GF13idBucTlCB9ZefCAQg/1/da"><img src="http://feedads.g.doubleclick.net/~a/mDeJN3GF13idBucTlCB9ZefCAQg/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=0GW7r31abyM:8DlzM6KXee4:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=0GW7r31abyM:8DlzM6KXee4:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=0GW7r31abyM:8DlzM6KXee4:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=0GW7r31abyM:8DlzM6KXee4:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/0GW7r31abyM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/php-web-programming/php-cm/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/php-web-programming/php-cm/</feedburner:origLink></item>
		<item>
		<title>PHP Programming With Leadership</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/FHiyZWFJc_4/</link>
		<comments>http://www.montanaprogrammer.com/php-web-programming/php-programming-with-leadership/#comments</comments>
		<pubDate>Sat, 01 Jan 2011 20:51:29 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[PHP Tips and Tricks]]></category>
		<category><![CDATA[PHP Programmer Tips]]></category>
		<category><![CDATA[Programming Advice]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1616</guid>
		<description><![CDATA[Until recently, I thought leadership was a gift that you either had or did not have. I still believe it is something you can learn and get better at, but I&#8217;m now realizing that leadership is something we all have to some capacity. In fact, to be a successful PHP programmer, you have to be [...]]]></description>
			<content:encoded><![CDATA[<p>Until recently, I thought leadership was a gift that you either had or did not have. I still believe it is something you can learn and get better at, but I&#8217;m now realizing that leadership is something we all have to some capacity. <em>In fact, to be a successful PHP programmer, you have to be a good leader.</em><span id="more-1616"></span></p>
<p>When I think of leadership, I typically think of someone leading a group of people through a project or a task. But when you look at a good leader, their ability not only lies in how they manage others&#8230;.but also how they manage their own time and productivity. An <strong>excellent PHP programmer</strong> is not only intelligent, but they also have a good understanding in how to make a project successful and refuse to make any promises or commitments that are not realistic.</p>
<p>Whatever you do, you are responsible for leading your own life. This includes at work and at home&#8230;even if you are not in what is considered a &#8220;leadership position&#8221;. How you interact with people, what you do with your time, how you handle problems, etc&#8230;all deal with choices that you make every day. You are the master/commander/chief/president of your own life.</p>
<p>Let&#8217;s take a look at how this principle relates to the web programming industry. We have a PHP programmer who works at a company we will call Cool Ass Websites. A project comes in that they want a cost estimate on. Management sends the information to the programmer and asks for a time estimate.</p>
<p>Now a programmer with good leadership skills will first determine if they can create an accurate time estimate based on the provided specification (see my <a href="/web-project-management/website-specification-how-to/" target="_blank">Website Specification How To Guide</a>). If they cannot, the programmer will request more information. If they can accurately determine a time estimate for the project, the next question they will ask themselves is if they can get the project done in the specified time line (if this was included), based on what is currently on their plate. They will not promise to complete a project in a time line that does not fit in with their work load&#8230;.without either adjusting the current work load or pushing back deadlines.</p>
<p>Not only that, but the time estimates this programmer provides for their time is fairly accurate. In most cases they are able to get the project done in less time than they anticipate, which makes project cost estimates and project time lines go smoothly.</p>
<p>If you have any upper management experience in this industry, you realize that what this programmer is doing is not different than what a good project manager or team leader would be doing for multiple people. It shows signs of initiative and responsibility&#8230;traits that we all can learn.</p>
<p>This type of PHP programmer is valuable because they do not need someone constantly babysitting them. They can be trusted and people can depend on them confidently. If you are a manager, these are the people you want to manage because they will make you look good. </p>
<p>If you are in a programming related field, show people that when things get tough, you are the last one they should consider firing!</p>
<p>Also, if you are looking to expand your leadership role in the programming field, look into what an <a href="http://www.creighton-online.com/programs/online-masters-degree-in-information-technology-management.asp">online Information Technology degree</a> has to offer.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/ijrnk_wRcus9NTWMSR79AQ6TPU4/0/da"><img src="http://feedads.g.doubleclick.net/~a/ijrnk_wRcus9NTWMSR79AQ6TPU4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ijrnk_wRcus9NTWMSR79AQ6TPU4/1/da"><img src="http://feedads.g.doubleclick.net/~a/ijrnk_wRcus9NTWMSR79AQ6TPU4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=FHiyZWFJc_4:YiYANuwe11g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=FHiyZWFJc_4:YiYANuwe11g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=FHiyZWFJc_4:YiYANuwe11g:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=FHiyZWFJc_4:YiYANuwe11g:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/FHiyZWFJc_4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/php-web-programming/php-programming-with-leadership/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/php-web-programming/php-programming-with-leadership/</feedburner:origLink></item>
		<item>
		<title>Awesome T-Shirt and Interview</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/1hBn3h0bUvs/</link>
		<comments>http://www.montanaprogrammer.com/other-topics/site-updates/awesome-tshirt/#comments</comments>
		<pubDate>Thu, 23 Dec 2010 18:36:00 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[Site Announcements]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1608</guid>
		<description><![CDATA[I review a t-shirt and talk about an interview and the future. I received a shirt from Crazy Like That. I came across this site a while ago, and I liked the &#8220;geek&#8221; humor that is on these shirts. It is funny to see how much people know about the geek world, in how they [...]]]></description>
			<content:encoded><![CDATA[<p>I review a t-shirt and talk about an interview and the future.<span id="more-1608"></span></p>
<p>I received a shirt from <a href="http://www.crazylikethat.com/" target="_blank">Crazy Like That</a>. I came across this site a while ago, and I liked the &#8220;geek&#8221; humor that is on these shirts. It is funny to see how much people know about the geek world, in how they respond to these shirts.</p>
<p>They sent me the <a href="http://www.crazylikethat.com/geek-t-shirts/binary-t-shirt.html" target="_blank">Binary Geek T-Shirt</a>. The quality is great, and the lettering is crisp. If you want a good quality, geek humor t-shirt&#8230;.you need to take a look at their site.</p>
<p>They also did an email interview of me, which I really enjoyed. <a href="http://www.crazylikethat.com/blog/2010/11/interview-with-chris-roane-the-montanna-programmer/" target="_blank">Check out the interview</a> on their site. If you want to see a different side of me that is not shown very much on this website, take a ponder at the article.</p>
<p>Things have been very busy over the last month&#8230;.but fear not! I have not forgot about this site or given up on it. I plan on getting back to a more regular writing schedule soon. On an interesting note, even through my writing silence, I have been bringing in more traffic through search engines. So stay tuned!</p>

<p><a href="http://feedads.g.doubleclick.net/~a/hTzEcLJUaIiELZog1KiNZAh4RSY/0/da"><img src="http://feedads.g.doubleclick.net/~a/hTzEcLJUaIiELZog1KiNZAh4RSY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/hTzEcLJUaIiELZog1KiNZAh4RSY/1/da"><img src="http://feedads.g.doubleclick.net/~a/hTzEcLJUaIiELZog1KiNZAh4RSY/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=1hBn3h0bUvs:LrvOind4HVY:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=1hBn3h0bUvs:LrvOind4HVY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=1hBn3h0bUvs:LrvOind4HVY:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=1hBn3h0bUvs:LrvOind4HVY:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/1hBn3h0bUvs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/other-topics/site-updates/awesome-tshirt/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/other-topics/site-updates/awesome-tshirt/</feedburner:origLink></item>
		<item>
		<title>Should PHP web programmers go to college?</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/nE1aMaFtXy4/</link>
		<comments>http://www.montanaprogrammer.com/php-web-programming/should-php-web-programmers-go-to-college/#comments</comments>
		<pubDate>Fri, 03 Sep 2010 18:00:37 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[PHP Tips and Tricks]]></category>
		<category><![CDATA[PHP Programmer Tips]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1577</guid>
		<description><![CDATA[A common debate in our field is whether or not a college education is worth it when becoming a PHP programmer. People will throw statistics in how much more money you can make with a college degree. But is the cost of college (time + tuition) for a four year degree better than the benefits [...]]]></description>
			<content:encoded><![CDATA[<p>A common debate in our field is whether or not a college education is worth it when becoming a <em>PHP programmer</em>. People will throw statistics in how much more money you can make with a college degree. But is the cost of college (time + tuition) for a four year degree better than the benefits of having four years of experience in the web programming field?<span id="more-1577"></span></p>
<p><strong>Note: If you like this article, please vote for it on <a href="http://www.dzone.com/links/should_php_web_programmers_go_to_college.html" target="_blank">DZone</a>.</strong></p>
<p>When doing this comparison from a logical perspective, we have to acknowledge that not all college degrees and curriculums are created equal. We also have to acknowledge that whichever option you decide to pursue carries risk. If you don&#8217;t go to college, you may not get a job when compared to someone who has gone to college. If you do go to college, you may have to start making as much as someone who just graduated from high school. In both cases there are no 100% guarantees and you cannot depend on a degree to provide you with a job or at least a job that brings in a certain amount of money.</p>
<p>In fact, there are no clear answers as to what is the best choice in your case. Part of it depends on personality and intelligence. One other important determining factor is how skillful you are at learning new things on your own without someone there to help you.</p>
<p>Let&#8217;s go through some positive and negative comparisons. Some of these items are repeated using different wording to illustrate a point. </p>
<h2>PHP Programming: The Benefits of Going to College</h2>
<ul>
<li>You get a strong foundation in understanding core programming practices with multiple languages, along with more advanced programming concepts (object oriented programming, etc..)</li>
<li>You can learn other useful skills that don&#8217;t directly relate to programming&#8230;such as: teaching, communicating clearly with others and how to research effectively.</li>
<li>Often times you learn what is the best way in solving certain programming problems, instead of having to learn through experience.</li>
<li>The broad range of education that you receive will help you pick up new programming languages and systems more quickly.</li>
<li>You might make more money when you get a job after graduating. You also have the potential of applying for higher level corporate positions that only consider candidates with college degrees.</li>
<li>You might beat out other programmers without a degree for higher profile programming jobs.</li>
</ul>
<h2>PHP Programming: The Cost of Going to College</h2>
<ul>
<li>You need to pay for tuition, unless you get this covered through a scholarship or your parents.</li>
<li>In most cases, it takes four years to get a bachelor degree, which is a cost of time.</li>
<li>You may not have time to work for a web company while you go to school. This might make it difficult in making more than an entry level web programmer after graduating.</li>
<li>100% of what you will learn in college will not be useful for your career.</li>
<li>Depending on the college you go to, what you learn may not be applicable when you enter the job market. This could be because the college does not keep up with the latest web technologies, or the way they teach the material is not practical for the work environment.</li>
</ul>
<h2>The Benefits of a PHP Programmer Not Going to College</h2>
<ul>
<li>You do not need to pay for tuition.</li>
<li>You do not have student loans to pay for, so it might be acceptable to start working at a lower income level. This allows you to work your way up a company and allows you to possibly consider more positions.</li>
<li>Instead of a four year degree, you can end up with four years of job experience&#8230;which might be more valuable in certain circumstances and at certain companies. In fact, some employers believe four years of experience in this field is more valuable than a four year degree (opinions vary on this).</li>
<li>What you learn on the job is immediately applicable to your career.</li>
</ul>
<h2>The Negative Aspects of a PHP Programmer Skipping College</h2>
<ul>
<li>Especially right after high school, your resume will not look as good as someone who graduated from college. You also may find it difficult to get corporate level programming positions without a degree. If the market in this field gets saturated (which it is not, currently), it might be difficult to find a job compared to candidates who have a degree.</li>
<li>It can be more difficult to get a strong grasp of more complex programming principles.</li>
<li>Bad programming habits or programming misconceptions can be more common if the person is not constantly learning and reading. Collaborating with other programmers can help with this.</li>
<li>The main methods for a programmer to learn without a degree are: online research (articles, tutorials, etc&#8230;), books and peers. So in other words, how much you know and what you know is determined by how much energy you put into learning and who you go to for advice.</li>
</ul>
<p>In the field of <strong>PHP web programming</strong>, ultimately experience is king. General programming knowledge and how-to is valuable, but if you are in a production web shop and can&#8217;t get projects done in a profitable timeline, than this resume point is worthless. Because systems and languages are changing all the time, having multiple years of experience is invaluable. So in either case, experience is the best way in getting a better job and making more money.</p>
<p>Based on my experience, I benefited the most by not going to college. This could be different if I was in a more populated location that saw more competition in this field. This is not meant to condemn college, but merely to challenge you in articulating whether college will be valuable in your case. Sometimes I think I would have benefited going to college, but I don&#8217;t think I would be where I am at now if I did take this path.</p>
<p><strong>Has going to college benefited you as a web programmer or a graphic designer? Would you do anything differently?</strong></p>

<p><a href="http://feedads.g.doubleclick.net/~a/-PF3ZOAz8QHi7X0WcyDnM1ALnX4/0/da"><img src="http://feedads.g.doubleclick.net/~a/-PF3ZOAz8QHi7X0WcyDnM1ALnX4/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/-PF3ZOAz8QHi7X0WcyDnM1ALnX4/1/da"><img src="http://feedads.g.doubleclick.net/~a/-PF3ZOAz8QHi7X0WcyDnM1ALnX4/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=nE1aMaFtXy4:xxpGGO9arcw:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=nE1aMaFtXy4:xxpGGO9arcw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=nE1aMaFtXy4:xxpGGO9arcw:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=nE1aMaFtXy4:xxpGGO9arcw:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/nE1aMaFtXy4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/php-web-programming/should-php-web-programmers-go-to-college/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/php-web-programming/should-php-web-programmers-go-to-college/</feedburner:origLink></item>
		<item>
		<title>When is VPS Hosting a good option?</title>
		<link>http://feedproxy.google.com/~r/montanaprogrammer/~3/CI77-J83Lp8/</link>
		<comments>http://www.montanaprogrammer.com/other-topics/hosting/vps-website-hosting/#comments</comments>
		<pubDate>Tue, 24 Aug 2010 16:00:34 +0000</pubDate>
		<dc:creator>Chris Roane</dc:creator>
				<category><![CDATA[Hosting]]></category>

		<guid isPermaLink="false">http://www.montanaprogrammer.com/?p=1561</guid>
		<description><![CDATA[When building a website, there are many different hosting options. One option that is less expensive than a dedicated server is VPS hosting. Many website developers have found VPS to be the preferred hosting option for their websites. I&#8217;ve worked with shared hosting environments, VPS and dedicated servers. Virtual private servers are a unique option [...]]]></description>
			<content:encoded><![CDATA[<p>When building a website, there are many different hosting options. One option that is less expensive than a dedicated server is VPS hosting.  Many website developers have found VPS to be the preferred hosting option for their websites.<span id="more-1561"></span> I&#8217;ve worked with shared hosting environments, <a href="http://www.inmotionhosting.com/vps_hosting.html" target="_blank">VPS</a> and dedicated servers. Virtual private servers are a unique option that have become more affordable over the years, and are especially attractive to people looking for more customizable options.</p>
<h2>VPS Hosting vs Shared Hosting</h2>
<p>Like shared hosting, VPS hosting is not on a dedicated server. What you get with VPS hosting is a solution where you have unlimited options and capabilities in customizing the server environment for your websites&#8230;.without effecting other accounts.</p>
<h2>What can you do with VPS Hosting</h2>
<p>Some options depend on which company you go with, but most offer the following:</p>
<ul>
<li>You can choose the control panel. Two common options are CPanel and Plesk. This makes managing your server much more simple.</li>
<li>Server level customization. Modifying the php.ini file directly, is one example.</li>
<li>Burstable Memory: You get access to memory when you need it. If you do happen to get hit by Digg (for example), the server is usually able to handle the spike in resources.</li>
<li>Scalable: You can start small and grow as necessary&#8230;without having to move to a different server or upgrade hardware.</li>
</ul>
<h2>Who would benefit from VPS hosting?</h2>
<p>If you have a low traffic website, and simply need an environment that is easy to work with, a VPS is probably not what you want to go with. If you want an option that is easily scalable and envision growing multiple high traffic websites, you may want to consider going with a VPS hosting account.</p>
<p>In other words, <a href="http://www.inmotionhosting.com/vps_hosting.html" target="_blank">Virtual Private Servers</a> are a great middle ground between shared hosting and a dedicated server. On top of that it sometimes doesn&#8217;t cost much more to go with a VPS environment over a shared hosting setup. Choosing a hosting solution is important, because it takes energy to switch hosting environments.</p>

<p><a href="http://feedads.g.doubleclick.net/~a/lzxE-QXVGflZ9gBrfMUP2Ol5D9c/0/da"><img src="http://feedads.g.doubleclick.net/~a/lzxE-QXVGflZ9gBrfMUP2Ol5D9c/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/lzxE-QXVGflZ9gBrfMUP2Ol5D9c/1/da"><img src="http://feedads.g.doubleclick.net/~a/lzxE-QXVGflZ9gBrfMUP2Ol5D9c/1/di" border="0" ismap="true"></img></a></p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=CI77-J83Lp8:pFwEPADFWEE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=CI77-J83Lp8:pFwEPADFWEE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:gIN9vFwOqvQ"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?i=CI77-J83Lp8:pFwEPADFWEE:gIN9vFwOqvQ" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:l6gmwiTKsz0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=l6gmwiTKsz0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:TzevzKxY174"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=TzevzKxY174" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/montanaprogrammer?a=CI77-J83Lp8:pFwEPADFWEE:YwkR-u9nhCs"><img src="http://feeds.feedburner.com/~ff/montanaprogrammer?d=YwkR-u9nhCs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/montanaprogrammer/~4/CI77-J83Lp8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.montanaprogrammer.com/other-topics/hosting/vps-website-hosting/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		<feedburner:origLink>http://www.montanaprogrammer.com/other-topics/hosting/vps-website-hosting/</feedburner:origLink></item>
	</channel>
</rss><!-- Dynamic page generated in 1.247 seconds. --><!-- Cached page generated by WP-Super-Cache on 2012-05-17 20:41:29 -->

