<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Justin Carmony &#187; Web Design</title>
	<atom:link href="http://www.justincarmony.com/blog/category/web-design/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.justincarmony.com/blog</link>
	<description>Web Designer &#38; Software Engineer</description>
	<lastBuildDate>Wed, 01 Feb 2012 04:30:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Videos &amp; Slides on Usibility &amp; Persuasive Design by Andy Budd</title>
		<link>http://www.justincarmony.com/blog/2010/09/28/videos-slides-on-usibility-persuasive-design-by-andy-budd/</link>
		<comments>http://www.justincarmony.com/blog/2010/09/28/videos-slides-on-usibility-persuasive-design-by-andy-budd/#comments</comments>
		<pubDate>Tue, 28 Sep 2010 19:00:12 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Videos]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Andy Budd]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=638</guid>
		<description><![CDATA[For a long time I&#8217;ve been a fan of Andy Budd because of his book CSS Mastery. It basically was one of the core reasons I was able to switch to to 100% CSS standards and compliance. I talk a lot more about his book and CSS in general in a previous post. He is ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/' rel='bookmark' title='Web Design &amp; The Cookie Jar: When Dealing with Clients'>Web Design &#038; The Cookie Jar: When Dealing with Clients</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/02/20/new-blog-design/' rel='bookmark' title='New Blog Design'>New Blog Design</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/25/php-design-biggest-database-oversights/' rel='bookmark' title='PHP Design &#8211; Biggest Database Oversights'>PHP Design &#8211; Biggest Database Oversights</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2010/09/andy_budd.jpg"><img src="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2010/09/andy_budd.jpg" alt="" title="andy_budd" width="144" height="144" class="alignright size-full wp-image-645" /></a>For a long time I&#8217;ve been a fan of <a href="http://andybudd.com/" target="_blank">Andy Budd</a> because of his book <a href="http://www.cssmastery.com/" target="_blank">CSS Mastery</a>. It basically was one of the core reasons I was able to switch to to 100% CSS standards and compliance. I talk a lot more about his <a href="http://www.justincarmony.com/blog/2009/01/08/css-im-100-converted/" target="_blank">book and CSS in general in a previous post</a>. He is one of the key people over at the company <a href="http://clearleft.com/">Clearleft</a> in London, and is a popular speaker any many conferences. He specializes in usability and persuasive web designs, helping companies making their websites and user experiences better.</p>
<p>Unfortunately, I haven&#8217;t been able to attend a conference where he is speaking at. However, thanks to the wonders of the internet, there are several videos and slides available from previous presentations. I highly recommend them for any web designer or developer, because we all deal with usability in one form or another. I&#8217;ve gone ahead and gathered a handful of these videos and slides into one article so I can easy reference them for others to watch. You&#8217;ll notice a lot of the themes and ideas in these videos will overlap, but each one has some very good content and advice.</p>
<h2>Designing the User Experience Curve</h2>
<p>This is the first video I watched of one of his presentations, and it has stuck with me for the last year or two. Warning, after watching this video you will no longer look at interacting with others the same, whether on the web or just day to day encounters. You&#8217;ll know what I mean after watching this video.</p>
<p><strong>Slides</strong></p>
<div style="width:425px" id="__ss_463128"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/webdirections/designing-the-user-experience-curve" title="Designing The User Experience Curve">Designing The User Experience Curve</a></strong><object id="__sse463128" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=designingtheuserexperiencecurve-1213243442163420-8&#038;stripped_title=designing-the-user-experience-curve&#038;userName=webdirections" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse463128" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=designingtheuserexperiencecurve-1213243442163420-8&#038;stripped_title=designing-the-user-experience-curve&#038;userName=webdirections" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/webdirections">webdirections</a>.</div>
</div>
<p><strong>Video</strong><br />
<iframe src="http://player.vimeo.com/video/935747" width="601" height="339" frameborder="0"></iframe>
<p><a href="http://vimeo.com/935747">Andy Budd &#8211; FOWD London 2008</a> from <a href="http://vimeo.com/fowd">Future of Web Design</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<h2>Persuasive Design: Encouraging Your Users To Do What You Want Them To!</h2>
<p>This is a more recent presentation, and while I couldn&#8217;t find a full start to finish video, I have pieced together a collection of videos that covers most of it. There are quite a few &#8220;aha!&#8221; moments that make you realize different things, and rather fun to listen to.</p>
<p><span id="more-638"></span><strong>Slides</strong></p>
<div style="width:425px" id="__ss_3430914"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/andybudd/persuasivedesign-encouragingyouruserstodowhatyouwantthemto" title="Persuasive Design:  Encouraging Your Users To Do What You Want Them To!">Persuasive Design:  Encouraging Your Users To Do What You Want Them To!</a></strong><object id="__sse3430914" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=persuasion-100314172428-phpapp02&#038;stripped_title=persuasivedesign-encouragingyouruserstodowhatyouwantthemto&#038;userName=andybudd" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse3430914" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=persuasion-100314172428-phpapp02&#038;stripped_title=persuasivedesign-encouragingyouruserstodowhatyouwantthemto&#038;userName=andybudd" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/andybudd">Andy Budd</a>.</div>
</div>
<p><strong>Videos</strong></p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/-amgI4G9DXY?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/-amgI4G9DXY?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/9__Qu5JkifA?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/9__Qu5JkifA?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/Sw-yy8mcBiE?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Sw-yy8mcBiE?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/gvfkJYjWt2w?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/gvfkJYjWt2w?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<p><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/zWyRWYMCXHU?fs=1&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/zWyRWYMCXHU?fs=1&amp;hl=en_US" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></p>
<h2>Seductive Design</h2>
<p>This one is very similar to the first video, but there are some differences once you delve into more of the content. There are some very good ideas in here. Now, this isn&#8217;t so much about seductive marketing as it is creating appealing designs.</p>
<p><strong>Slides</strong></p>
<div style="width:425px" id="__ss_2444627"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/andybudd/seductive-design" title="Seductive Design">Seductive Design</a></strong><object id="__sse2444627" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=seductivedesign-091107082134-phpapp02&#038;stripped_title=seductive-design&#038;userName=andybudd" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse2444627" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=seductivedesign-091107082134-phpapp02&#038;stripped_title=seductive-design&#038;userName=andybudd" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/andybudd">Andy Budd</a>.</div>
</div>
<p><strong>Video</strong></p>
<p><iframe src="http://player.vimeo.com/video/7730620" width="600" height="338" frameborder="0"></iframe>
<p><a href="http://vimeo.com/7730620">Andy Budd &#8211; Seductive Design</a> from <a href="http://vimeo.com/build">Build</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<h2>Want more?</h2>
<p>There are a <a href="http://www.slideshare.net/andybudd">few more slides</a> of his presentations on slideshare. I would also recommend subscribing to his <a href="http://andybudd.com/">blog</a>. Hopefully you enjoyed these videos and much as I did.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/' rel='bookmark' title='Web Design &amp; The Cookie Jar: When Dealing with Clients'>Web Design &#038; The Cookie Jar: When Dealing with Clients</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/02/20/new-blog-design/' rel='bookmark' title='New Blog Design'>New Blog Design</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/25/php-design-biggest-database-oversights/' rel='bookmark' title='PHP Design &#8211; Biggest Database Oversights'>PHP Design &#8211; Biggest Database Oversights</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2010/09/28/videos-slides-on-usibility-persuasive-design-by-andy-budd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery UI &#8211; Disable Title On Dialog</title>
		<link>http://www.justincarmony.com/blog/2010/09/15/jquery-ui-disable-title-on-dialog/</link>
		<comments>http://www.justincarmony.com/blog/2010/09/15/jquery-ui-disable-title-on-dialog/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 05:56:35 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[jQuery UI]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=580</guid>
		<description><![CDATA[For some reason, this was turning out to be kind of hard to accomplish, and everyone on the internet wanted to do it with JavaScript hacks. My issue was if the JavaScript hack didn&#8217;t execute fast enough, causing the title to flash for just a second, so I&#8217;d much rather do it with CSS. Unfortunately, ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/09/15/jquery-tip-better-toggle/' rel='bookmark' title='jQuery Tip: Better Toggle'>jQuery Tip: Better Toggle</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/24/empowering-javascript-through-jquery/' rel='bookmark' title='Empowering JavaScript Through jQuery'>Empowering JavaScript Through jQuery</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/03/css-id-vs-class/' rel='bookmark' title='CSS – ID vs Class'>CSS – ID vs Class</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2010/09/jquery-ui-logo.png"><img src="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2010/09/jquery-ui-logo.png" alt="" title="jquery-ui-logo" width="200" height="200" class="alignright size-full wp-image-583" /></a>For some reason, this was turning out to be kind of hard to accomplish, and everyone on the internet wanted to do it with JavaScript hacks. My issue was if the JavaScript hack didn&#8217;t execute fast enough, causing the title to flash for just a second, so I&#8217;d much rather do it with CSS. Unfortunately, there are no built in ways to hide it in jQuery. However, there is an option you can pass in the <strong>.dialog()</strong> method: <strong>dialogClass</strong>. This places a custom class in the main div element, allowing you to do something like this:</p>
<pre class="brush: jscript; title: ; notranslate">
function selectLocation()
{
	$('#modalSelectLocation').dialog({
			modal: true,
			dialogClass: 'modalSelectLocation'
			,buttons: {
				Cancel: function(){
					$(this).dialog('close');
				}
				,Continue: function() {
					alert('goto-buy');
				}

			}
		});
}
</pre>
<p>with the css of:</p>
<pre class="brush: css; title: ; notranslate">
.modalSelectLocation .ui-dialog-titlebar { display:none; }
</pre>
<p>Tada! No more Title Bar. However, make sure to have some form of cancel button.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/09/15/jquery-tip-better-toggle/' rel='bookmark' title='jQuery Tip: Better Toggle'>jQuery Tip: Better Toggle</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/24/empowering-javascript-through-jquery/' rel='bookmark' title='Empowering JavaScript Through jQuery'>Empowering JavaScript Through jQuery</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/03/css-id-vs-class/' rel='bookmark' title='CSS – ID vs Class'>CSS – ID vs Class</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2010/09/15/jquery-ui-disable-title-on-dialog/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My 2009 Technology Recap</title>
		<link>http://www.justincarmony.com/blog/2009/12/23/my-2009-technology-recap/</link>
		<comments>http://www.justincarmony.com/blog/2009/12/23/my-2009-technology-recap/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 18:55:31 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[Databases]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[Goals]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[scaling]]></category>
		<category><![CDATA[UPHPU]]></category>
		<category><![CDATA[utah]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/2009/12/23/my-2009-technology-recap/</guid>
		<description><![CDATA[Its been two years now that I&#8217;ve been a more or less &#8220;serious blogger.&#8221; I had using the term blogger, since when people hear about blogs, they think of people either detailing their entire lives, or pumping some angel. For me, blogging has just been a way to share information with people I know locally, ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/09/16/speaking-utah-open-source-conference-2009/' rel='bookmark' title='Speaking: Utah Open Source Conference 2009'>Speaking: Utah Open Source Conference 2009</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/09/14/so-you-want-to-be-a-web-developer/' rel='bookmark' title='So You Want To Be A Web Developer?'>So You Want To Be A Web Developer?</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/10/11/presentation-real-life-scaling/' rel='bookmark' title='Presentation: Real Life Scaling'>Presentation: Real Life Scaling</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Its been two years now that I&#8217;ve been a more or less &#8220;serious blogger.&#8221; I had using the term blogger, since when people hear about blogs, they think of people either detailing their entire lives, or pumping some angel. For me, blogging has just been a way to share information with people I know locally, and those I don&#8217;t even know who find my blog via searching. I&#8217;ve had a few spurts where I blogged quite frequently, but for the most part it was just here and there.</p>
<p>I&#8217;ve gone back and looked at this year of 2009, and the things I&#8217;ve blogged about, and I thought I&#8217;d give a little recap.</p>
<p><b>My CSS Conversion</b></p>
<p>At the beginning of the year I realized I had <a href="http://www.justincarmony.com/blog/2009/01/08/css-im-100-converted/">100% percent to using CSS</a>. I&#8217;m still a little in awe that being such a table junkie I finally did it. There were a few key things that I did to help me learn all the difficult things with CSS. I hope I can help some poor web developer out there understand their CSS a little better.</p>
<p><b>A Year of PHP IDEs</b></p>
<p>I really invested some time in trying out and experimenting with <a href="http://www.justincarmony.com/blog/2009/02/06/aptana-studio-php-ide-alternative-to-pdt-zend-studio/">several PHP Integrated Development Environments (IDEs)</a>. I had been using Zend Studio for several years, however more and more I found myself frustrated with it&#8217;s quirks. However, I haven&#8217;t had time yet to blog about the new IDE I am using, <a href="http://netbeans.org/">NetBeans</a>. I&#8217;ve made the switch from Zend Studio to NetBeans, and while I&#8217;m not completely sold, I&#8217;m still giving it some time. Maybe over christmas break I&#8217;ll blog some about it.</p>
<p><b>Interesting Challenges w/ MySQL</b></p>
<p>While I haven&#8217;t blogged about most of them, I have had some interesting challenges w/ MySQL over the last year. One was converting <a href="http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/">40 Million rows from a MyISAM engine to an InnoDB Engine</a>. I&#8217;ve been having some serious heart-to-heart conversations with MySQL (metaphorically of course) on how I&#8217;m going to scale it to millions and billions of rows. I think I&#8217;ve mapped out in my head how we&#8217;re going to handle it for <a href="http://www.datingdna.com/">Dating DNA</a>. That will be one challenge I&#8217;ll be addressing in 2010.</p>
<p><b>New Blog Design</b></p>
<p>This year I got around to <a href="http://www.justincarmony.com/blog/2009/02/20/new-blog-design/">re-designing my blog using the Carrington Theme as a base</a>. I kinda like it, but it still could use a little more polish. One day I&#8217;ll find time to give it that extra polish.</p>
<p><b>Memcached</b></p>
<p>This year I really got into the theory on how to <a href="http://www.justincarmony.com/blog/2009/05/20/memcached-simple-effective-and-powerful/">design an application with Memcached</a>. I&#8217;ve decreased the load on several websites by using it, and wrote an <a href="http://www.justincarmony.com/blog/2009/06/24/writing-effictive-php-caches-with-memcached/">in-depth article on the theory of caching, and how to implement it effectively</a>. I&#8217;ve been amazed at how well it works, and that I hadn&#8217;t used it before.</p>
<p><b>A Year of Presentations</b></p>
<p>I&#8217;ve given two presentations this year, my <a href="http://www.justincarmony.com/blog/2009/06/24/writing-effictive-php-caches-with-memcached/">Memcached</a> presentation at UPHPU, and my &#8220;<a href="http://www.justincarmony.com/blog/2009/10/11/presentation-real-life-scaling/">Real Life Scaling</a>&#8221; presentation at the Utah Open Source Conference. I got great feedback from both presentations, and I look forward to what I&#8217;ll present on this upcoming year. I&#8217;m thinking about putting together a presentation called &#8220;Being a Web Ninja with jQuery,&#8221; and showing of the dozen of awesome applications I&#8217;ve built using jQuery.</p>
<p><b>Utah Open Source Conference 2009</b></p>
<p>This year I helped organize and throw together the Utah Open Source Conference. I was made the Sponsorship Manager, and it was interesting trying to talk to companies in a recession about donating to a non-profit conference. I haven&#8217;t had a chance to blog about different techniques on how to professional ask for money for something like this, but hopefully in 2010 I&#8217;ll be able to share some insights.</p>
<h2>Things I Didn&#8217;t Blog About</h2>
<p>There were a lot of things I didn&#8217;t get around to blogging about this year. I&#8217;ll quickly touch on them here, and hopefully in 2010 I&#8217;ll be able to blog about them more.</p>
<p><strong>Web Services</strong> &#8211; I&#8217;ve done a LOT of web service work. Web services provide a unique challenge, since many times its hard to debug them. At my old job, one of the biggest challenges is we really couldn&#8217;t debug our web services until all of the other pieces of the puzzle were done. Then we spent long hours with trial and error, debugging via dumping logs. I&#8217;ve learned a lot of tricks with PHP and web services. Hopefully I&#8217;ll be blog more about those soon.</p>
<p><b>Performance Tuning LAMP</b> &#8211; I&#8217;ve had to do a lot of tuning to keep the Dating DNA website afloat. Because of the awesomeness of our iPhone apps, we&#8217;ve had a lot of load on our web servers. There are a lot of things you can do to get the LAMP stack to run well.</p>
<p><b>Alienware Arena</b> &#8211; Here was a fun little project I was able to crank out for probably the largest client I&#8217;ve done work for: Dell. We made them a website for their Alienware brand called &#8220;<a href="http://www.alienwarearena.com/">Alienware Arena</a>.&#8221;</p>
<p>
<a href="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2009/12/AlienwareArena.png"><img src="http://c747925.r25.cf2.rackcdn.com/blog/wp-content/uploads/2009/12/AlienwareArena-tm.jpg" width="400" height="352" alt="AlienwareArena.png" /></a></p>
<p>There were a lot of challenges to this website, mainly timeline and budget. But we were able to walk away happy with our work, and the Dell / Alienware team were really happy. It was interesting going through and trying to copy / mimic the look and feel of the Alienware website. I&#8217;m really proud of what we made.</p>
<p><b>Never Ending iPhone App Store Saga</b> &#8211; Anyone who knows me has heard of the bloody wars that my current employer has had with Apple, their iPhone, and the App Store. The ridiculous approval process, the extremely long wait periods, and Apple&#8217;s OCD when it comes to their phone. I won&#8217;t say much anything else on the topic, but boy it has been frustrating.</p>
<h2>What to Expect with 2010</h2>
<p>Boy, 2010 will be interesting. What to expect? I&#8217;ll be doing some pretty sick programming in jQuery, as I&#8217;ll be adding integrating chat to the Dating DNA website. What else? A <b><i>lot</i> <span style="font-weight: normal;">more when it comes to integrating websites into other social network platforms.</span></b></p>
<p><b><span style="font-weight: normal;">From a business platform, 2010 will be a lot of work spent on taking some great ideas and trying to monetize them. While working on awesome stuff is great, its important to pay the bills with them. I will have an entire year to sign up Sponsors for the 2010 UTOS Conference instead of 2 short months.</span></b></p>
<p>Hopefully I&#8217;ll get in a better habit of documenting my discoveries and solutions here in my blog. Sharing information is the best way to help everyone out.</p>
<p>I hope everyone has a happy holiday and good luck in the new year! 2010, here we come!</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/09/16/speaking-utah-open-source-conference-2009/' rel='bookmark' title='Speaking: Utah Open Source Conference 2009'>Speaking: Utah Open Source Conference 2009</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/09/14/so-you-want-to-be-a-web-developer/' rel='bookmark' title='So You Want To Be A Web Developer?'>So You Want To Be A Web Developer?</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/10/11/presentation-real-life-scaling/' rel='bookmark' title='Presentation: Real Life Scaling'>Presentation: Real Life Scaling</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/12/23/my-2009-technology-recap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Article: 5 Things Your Clients Should Know</title>
		<link>http://www.justincarmony.com/blog/2009/09/22/article-5-things-your-clients-should-know/</link>
		<comments>http://www.justincarmony.com/blog/2009/09/22/article-5-things-your-clients-should-know/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 18:45:13 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[articles]]></category>
		<category><![CDATA[Clients]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=474</guid>
		<description><![CDATA[I read an interesting article on teaching your clients about web design. It brings up some great points on helping your client understanding their role in their website&#8217;s development. While its not in inclusive list, it brings up some good points. I&#8217;ll share a few quotes: This is not a criticism of clients, however. There ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/' rel='bookmark' title='Software Development With Clients In Mind'>Software Development With Clients In Mind</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/25/great-php-article-leadership-in-software-development/' rel='bookmark' title='Great PHP Article: Leadership in Software Development'>Great PHP Article: Leadership in Software Development</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/' rel='bookmark' title='Web Design &amp; The Cookie Jar: When Dealing with Clients'>Web Design &#038; The Cookie Jar: When Dealing with Clients</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I read an <a href="http://www.webdesignerdepot.com/2009/03/5-things-your-clients-should-know/" target="_blank">interesting article on teaching your clients about web design</a>. It brings up some great points on helping your client understanding their role in their website&#8217;s development. While its not in inclusive list, it brings up some good points. I&#8217;ll share a few quotes:</p>
<blockquote><p>This is not a criticism of clients, however. There is so little information that clearly defines their role. Sure, there is no shortage of material on usability, accessibility, online marketing and copywriting, but who has the time to read all of it?</p>
<p>&#8230;</p>
<p><strong>One of the biggest problems in most web projects is that the client starts making the decisions that are best left to the web designer</strong>. Not only does this lead to bad decisions, but also inevitably leaves the web designer feeling undervalued and frustrated.</p>
<p>This problem can manifest in a variety of ways, however ultimately it comes down to a single issue – <strong>the client is trying to find solutions to their problems instead of relying on the web designer</strong>.</p>
<p>&#8230;</p>
<p>The most obvious occurs at the design stage. After seeing your design the client comes back with comments such as <em>‘make the logo bigger’</em>. This is their solution to a problem that they have with the prominence of the branding. If they had expressed the problem instead of the solution, it would have enabled you to suggest alternate approaches. Instead of making the logo bigger, you could have possibly added more whitespace or changed its position.</p></blockquote>
<p>I highly recommend the read. It also looks like the blog post author wrote a book called &#8220;<a href="http://boagworld.com/websiteownersmanual/" target="_blank">The Website Owner&#8217;s Manual</a>&#8220;. Maybe I&#8217;ll have to get a copy and see if it is any good.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/' rel='bookmark' title='Software Development With Clients In Mind'>Software Development With Clients In Mind</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/25/great-php-article-leadership-in-software-development/' rel='bookmark' title='Great PHP Article: Leadership in Software Development'>Great PHP Article: Leadership in Software Development</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/09/16/web-design-the-cookie-jar-when-dealing-with-clients/' rel='bookmark' title='Web Design &amp; The Cookie Jar: When Dealing with Clients'>Web Design &#038; The Cookie Jar: When Dealing with Clients</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/09/22/article-5-things-your-clients-should-know/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;Nerfing&#8221; a PHP Object</title>
		<link>http://www.justincarmony.com/blog/2009/09/20/nerfing-a-php-object/</link>
		<comments>http://www.justincarmony.com/blog/2009/09/20/nerfing-a-php-object/#comments</comments>
		<pubDate>Sun, 20 Sep 2009 18:26:35 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[examples]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[reflection]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=470</guid>
		<description><![CDATA[I was trying to think of something with PHP I could blog about that would be short and sweet. Then I thought of something that a good friend of my taught me: nerfing objects. The Problem Many times while working with PHP and bigger frameworks, you&#8217;ll have classes that extend classes that extand classes. We ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/' rel='bookmark' title='PHP Singletons, Sub-Classing, and HAS-A Relationships'>PHP Singletons, Sub-Classing, and HAS-A Relationships</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/02/06/aptana-studio-php-ide-alternative-to-pdt-zend-studio/' rel='bookmark' title='Aptana Studio – PHP IDE Alternative to PDT, Zend Studio'>Aptana Studio – PHP IDE Alternative to PDT, Zend Studio</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/21/list-of-50-php-tools/' rel='bookmark' title='List of 50 PHP Tools'>List of 50 PHP Tools</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I was trying to think of something with PHP I could blog about that would be short and sweet. Then I thought of something that a good friend of my taught me: <strong>nerfing objects</strong>.</p>
<p><strong>The Problem</strong></p>
<p>Many times while working with PHP and bigger frameworks, you&#8217;ll have classes that extend classes that extand classes. We have an <a href="http://en.wikipedia.org/wiki/Object-relational_mapping" target="_blank">ORM system</a> that interfaces our Database with PHP classes. This makes accessing and updating information easy for us. So lets say we have a class called &#8220;Post&#8221; that stores a blog post. Our ORM class just takes a few lines of code to hook up our &#8220;Post&#8221; class to the &#8220;posts&#8221; database tables. We just extend our base DataObject, which contains all sorts of references to other class isntances. Long story short, this PHP code is awesome, but there is one issue.</p>
<p>Lets say I have an AJAX call that gets some post data, so I want to pass my &#8220;Post&#8221; class through a JSON parser to send back a JSON version of the PHP class. The problem was that the JSON parser was picking up on the extended classes&#8217;s private members and such, so it was spitting back a whole lot of stuff we didn&#8217;t want it to that belonged to the ORM classes.</p>
<p><strong>The Solution</strong></p>
<p>So what do we do? We &#8220;nerf&#8221; the class. Nerfing is a term used by gamers about video games. It means &#8220;[to make] a change to a game that reduces the desirability or effectiveness of a particular game element. The term is also used as a verb for the act of making such a change. The term is used as a reference to the NERF brand of toys which are soft and less likely to cause serious injury.&#8221; (<a href="http://en.wikipedia.org/wiki/Nerf_(computer_gaming)" target="_blank">Wikipedia</a>)</p>
<p>So we make a &#8220;Nerfed&#8221; version of the class, with no functions, or extended protected members, just the data. We do this by using two parts of PHP:</p>
<ul>
<li>stdClass PHP Class</li>
<li>PHP&#8217;s Reflection Class</li>
</ul>
<p>Just attach this function to your class and you&#8217;ll be able to &#8220;nerf&#8221; it.</p>
<pre class="brush: php; title: ; notranslate">

&lt;?php

class ExampleClass extends ComplexClass
{

  // .. Some PHP Class code ..
  public function GetNerf()
  {
    $nerf = new stdClass();

    // Save the values of the fields
    $dbFields = $this-&gt;dbFields;

    foreach ($dbFields as $n =&gt; $v)
    {
      $nerf-&gt;$n = $v;
    }
    //var_dump($nerf);

    $me_ref = new ReflectionClass(get_class($this));
    $me_properties = $me_ref-&gt;getProperties();
    foreach($me_properties as $m)
    {
      if($m-&gt;isPublic())
      {
        $name = $m-&gt;getName();
        $nerf-&gt;$name = $this-&gt;$name;
      }
    }

    return $nerf;
  }

}

?&gt;
</pre>
<p>Hopefully that makes sense, but the Reflection capabilities of PHP are pretty simple and powerful. Hopefully over the next few weeks I&#8217;ll be posting some more tricks with PHP Reflection.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/' rel='bookmark' title='PHP Singletons, Sub-Classing, and HAS-A Relationships'>PHP Singletons, Sub-Classing, and HAS-A Relationships</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/02/06/aptana-studio-php-ide-alternative-to-pdt-zend-studio/' rel='bookmark' title='Aptana Studio – PHP IDE Alternative to PDT, Zend Studio'>Aptana Studio – PHP IDE Alternative to PDT, Zend Studio</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/21/list-of-50-php-tools/' rel='bookmark' title='List of 50 PHP Tools'>List of 50 PHP Tools</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/09/20/nerfing-a-php-object/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>jQuery Tip: Better Toggle</title>
		<link>http://www.justincarmony.com/blog/2009/09/15/jquery-tip-better-toggle/</link>
		<comments>http://www.justincarmony.com/blog/2009/09/15/jquery-tip-better-toggle/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 18:28:05 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[Tutorials]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=453</guid>
		<description><![CDATA[For many web developers, jQuery is the most awesome JavaScript library out there. For me, it has turned JavaScript from being a nightmare into a power tool. I love JavaScript now, where as before I truely hated it. Takes all the hassel out of most compatibility issues across browsers. I spend less time debuging it ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/10/24/empowering-javascript-through-jquery/' rel='bookmark' title='Empowering JavaScript Through jQuery'>Empowering JavaScript Through jQuery</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/01/07/asp-net-20-gridviews-hyperlinkfield-and-javascript/' rel='bookmark' title='ASP .NET 2.0, GridViews, HyperLinkField, and JavaScript'>ASP .NET 2.0, GridViews, HyperLinkField, and JavaScript</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/' rel='bookmark' title='PHP Singletons, Sub-Classing, and HAS-A Relationships'>PHP Singletons, Sub-Classing, and HAS-A Relationships</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>For many web developers, <a title="jQuery JavaScript " href="http://jquery.com/" target="_blank">jQuery</a> is the most awesome JavaScript library out there. For me, it has turned JavaScript from being a nightmare into a power tool. I love JavaScript now, where as before I truely hated it. Takes all the hassel out of <em>most</em> compatibility issues across browsers. I spend less time debuging it and more time writing it. While I&#8217;m on my goal to write more blog posts, I&#8217;m going to share a few jQuery tricks.</p>
<p>Today&#8217;s trick is using a better toggle method than the standard <a href="http://docs.jquery.com/Events/toggle" target="_self">toggle function</a>. Don&#8217;t get me wrong, it works great, but only if it is the only method for &#8220;toggling&#8221; the given element. Traditionally you pass is several functions, typically two. Function #1 that executes the first time that the event is fired, and a second function that fires the second time you click on it.</p>
<p>The problem arrises if you want to have more control over who, what, and where executes the toggles. Lets say you have a hidden div that is rather large, and a link above it that says &#8220;More Information.&#8221; You click the link, it fires Function A and it slides down the div. Since it is so big, at the bottom you of the div you put a link that says &#8220;Close.&#8221; The user clicks this link, and it hides the div again. The problem is the toggle function isn&#8217;t away that another part of the website hid the div. So if the user clicks &#8220;More Information&#8221;, it will still call Function #2, which will re-display the hiding annimation.</p>
<p>How do we solve this problem? Instead of using the toggle function, we write our own like so:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;h2&gt;Better Toggle Method&lt;/h2&gt;
&lt;div id=&quot;new&quot;&gt;
  &lt;a href=&quot;#&quot; class=&quot;toggle&quot;&gt;Toggle More&lt;/a&gt;
  &lt;div class=&quot;more&quot; style=&quot;display:none;&quot;&gt;
    &lt;p&gt;More Text Here&lt;/p&gt;
    &lt;p&gt;&lt;a href=&quot;#&quot; class=&quot;close&quot;&gt;Close&lt;/a&gt;&lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
  // Assign Events on Page Ready
  $(document).ready(function(){
    // Create Toggle Function
    $('#new .toggle').click(function(){
      // If display is none, that means it is hidden
      if($('#new .more').css('display') == 'none')
      {
        $('#new .more').slideDown();
      }
      // Second Click
      else
      {
        $('#new .more').slideUp();
      }
    });

    // Create Close Function
    $('#new .close').click(function(){
      $('#new .more').slideUp();
    });
  });
&lt;/script&gt;
</pre>
<p>If you want to see an example of the old method, as well as the new method in action, you can see them <a href="/jquery/better-toggle.html" target="_blank">here</a>. Hopefully this can help you out. </p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/10/24/empowering-javascript-through-jquery/' rel='bookmark' title='Empowering JavaScript Through jQuery'>Empowering JavaScript Through jQuery</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/01/07/asp-net-20-gridviews-hyperlinkfield-and-javascript/' rel='bookmark' title='ASP .NET 2.0, GridViews, HyperLinkField, and JavaScript'>ASP .NET 2.0, GridViews, HyperLinkField, and JavaScript</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/' rel='bookmark' title='PHP Singletons, Sub-Classing, and HAS-A Relationships'>PHP Singletons, Sub-Classing, and HAS-A Relationships</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/09/15/jquery-tip-better-toggle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>So You Want To Be A Web Developer?</title>
		<link>http://www.justincarmony.com/blog/2009/09/14/so-you-want-to-be-a-web-developer/</link>
		<comments>http://www.justincarmony.com/blog/2009/09/14/so-you-want-to-be-a-web-developer/#comments</comments>
		<pubDate>Mon, 14 Sep 2009 14:54:35 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[advice]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[programing]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=451</guid>
		<description><![CDATA[&#60;tangent&#62; This last week I&#8217;ve been talking with my brother Brack, who to say the least, absolutely abhors his job. Well, maybe abhor is a little strong, but he is extremely frustrated and unsatisfied. He works at a air force base in the human resource department and he basically helps provide statistical data for departments ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/' rel='bookmark' title='Software Development With Clients In Mind'>Software Development With Clients In Mind</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/07/15/web-development-10-years-ago-now/' rel='bookmark' title='Web Development 10-Years Ago &amp; Now'>Web Development 10-Years Ago &#038; Now</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/11/characteristics-of-good-php-code/' rel='bookmark' title='Characteristics of Good PHP Code'>Characteristics of Good PHP Code</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><strong>&lt;tangent&gt;</strong></p>
<p>This last week I&#8217;ve been talking with my brother Brack, who to say the least, absolutely abhors his job. Well, maybe abhor is a little strong, but he is extremely frustrated and unsatisfied. He works at a air force base in the human resource department and he basically helps provide statistical data for departments on who, what, and where to hire new help. Since he is a &#8220;wiz&#8221; at solving problems, computers, and making this more efficient, he has streamlined his work process with several nifty Excel spreadsheets and Java programs. He can now take a weeks worth of work and do it in one morning.</p>
<p>Needless to say, he is now doing all sorts weird things that aren&#8217;t in his job description. Worse, if he isn&#8217;t &#8220;staying busy&#8221; he gets reprimanded by his superiors, since he needs to be &#8220;working.&#8221; Even though he has done triple the amount of work that his job really entails. His immediate boss and co-workers really enjoy his work, because he helps them out a lot and they see all that he does. Its those hirer than that who don&#8217;t both about quality or quantity of work, and just see &#8220;if you don&#8217;t look busy, you must be slacking off.&#8221;</p>
<p>Anyway, he has been exploring other options of employment, and he has decided to experiment with Web Development to see if he would enjoy that line of work. So we&#8217;ve been talking about possibilities of teaching him how to do web development, in the hopes that he will pick up on it quickly, and we could soon throw some basic work his way.</p>
<p><strong>&lt;/tangent&gt;</strong></p>
<p>So over the last days I&#8217;ve been thinking about advice to give aspiring web developers, or those who are looking to improve on their skills. Here is my list of advice (or at least just a few items) to help you out.</p>
<p><strong>Prepare to be a &#8220;Self Learner&#8221;</strong></p>
<p>If the concept of &#8220;learning stuff on your own&#8221; doesn&#8217;t sound appealing, I&#8217;d like to share one crucial piece of information: <em><strong>The majority of your learning will be on your own, doing your own research.</strong></em> Yes, there are classes that can help you learn. Yes, you can get help from other developers. However, 90% of the stuff I&#8217;ve learned has been through my own research, study, and experimentation with technologies. The other 10% has been working with others to improve on my 90% I&#8217;ve already done. No one is going to take your hand and walk you through each and every lesson you need to learn. No one is going to spoon feed you your answers. You have to be willing to &#8220;figure stuff out on your own.&#8221;</p>
<p>If this doesn&#8217;t sound appealing, I&#8217;d highly recommend you re-evaluate your future as a web developer. Its not because you wouldn&#8217;t necessarily be good at it, but that the shear volume of new information, techniques and technologies is so vastly great that it would be impossible to have someone else teach you everything.</p>
<p><strong>Web Development is Creativity &amp; Problem Solving </strong></p>
<p>Weh development requires a LOT more problem solving and creativity than people think. The best way to describe it is for most people think web developers are like construction workers. People hand you instructions, and you use your skill set to accomplish the task. Also, many people think each website is basically he same, and so it is like building houses. While they all might look different, the challenges they provide are all the same.</p>
<p>Web development is nothing like that. The best description is it is more like you are the architect, contractor, and construction worker all together. Unless you work for a giant firm, most of the time you&#8217;ll be planning how to execute just as must as you do the actual building. If you don&#8217;t enjoy this concept, once again you might want to re-evaluate. However, if you love challenges, then web development is for you. It seems every new site has something to bring to the table to make your brain really work.</p>
<p><strong>Don&#8217;t Overdose On Information</strong></p>
<p>There is a <em><strong>lot</strong></em> of information out there on web development. While I was explaining it to my brother, I realized that the average LAMP developer had to deal with a lot of technology. Linux, Apache, PHP, MySQL, HTML, CSS, JavaScript, Ajax, and many other things. Each one could give you hours upon hours of information to study. You&#8217;d never be done.</p>
<p>Start small and worry about just one topic at a time. If you rush to learn it all, you&#8217;ll be overcome with the vast amounts of knowledge you can learn, get overwhelmed, and lose all desire to learn more.</p>
<p><strong>Be Aware Of Many Technologies, Focus On A Few</strong></p>
<p>This can go hand in hand with the previous idea, but learning about a technology is much different than learning how to use one. An example would be Memcached for me. While for years I&#8217;ve known about it, I haven&#8217;t had a real need to implement it. However, I knew exactly what it was used for: lightening load on databases and improving website performance. So when the time came when I needed what Memcached provided, I knew where to look.</p>
<p>There are many other technologies like this that I haven&#8217;t used yet (Comet, Advanced MySQL Replication, Amazon Web Services, etc) but <strong>I know <em>of</em>.</strong> That way, when I do need them, I know where to look.</p>
<p><strong>Find People, Groups, and Communities to Ask Questions</strong></p>
<p>Find someone you know who can help you answer questions you will have. It is important to have this resource of experience the benefit from, <strong>but not abuse.</strong> Do your homework and research so you can go to these people with well defined questions, not &#8220;I don&#8217;t get this, show me.&#8221; There isn&#8217;t a quicker way to lose the attention of others than wanting them to do your homework for you. While many web developers are willing to share knowledge, we&#8217;re not willing to do your research for you.</p>
<p>I recommend finding a local user group, like the <a href="http://uphpu.org/" target="_blank">Utah PHP Usergroup</a> that you can find people who can help answer questions. There are also national and international groups of people who can help you out. Just remember, be nice and kind to these people. You won&#8217;t get anywhere if you&#8217;re a jerk.</p>
<p><strong>Don&#8217;t Get Discouraged</strong></p>
<p>It can seem like there is a lot of information out there. There always will seem like there are things you should know, but don&#8217;t. Keep at it. If you find that you really do enjoy it, keep working hard at it. If you honestly try, and put for hard work, you will get better.</p>
<p><strong>Always Think: <em>How Can I Do This Better?</em></strong></p>
<p>I think this is severly overlooked by many web developers, and yet it is crucial to their growth as skillful developers. There are always ways to improve, and if you actively seek them, you&#8217;re work will get better. Why is this so bloody important? You will spend 80-90% of your time <em><strong>maintaining</strong></em> code and projects rather than writing new code and websites. So if you can write a website that is easy to maintain and has very few bugs, you&#8217;ll be loving life. If you continuously spew out garbage, and don&#8217;t activately seek more efficient ways to code, you&#8217;ll be miserable.</p>
<p><strong>Good Luck</strong></p>
<p>Web development is awesome. I love it, and I believe it can offer a very rewarding career for people who enjoy challenges and use their creative side. I don&#8217;t want to discourage anyone from following their dreams, I just believe it is important to have realistic expectations going into it. The last thing you want to do is spend five years learning how to be a web developer, only to find out you do not have a passion for it.</p>
<p>If you ever have any questions, please feel free to leave a comment or contact me. While I don&#8217;t know everything, hopefully I can point you in the right direction.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2009/01/31/software-development-with-clients-in-mind/' rel='bookmark' title='Software Development With Clients In Mind'>Software Development With Clients In Mind</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/07/15/web-development-10-years-ago-now/' rel='bookmark' title='Web Development 10-Years Ago &amp; Now'>Web Development 10-Years Ago &#038; Now</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/11/characteristics-of-good-php-code/' rel='bookmark' title='Characteristics of Good PHP Code'>Characteristics of Good PHP Code</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/09/14/so-you-want-to-be-a-web-developer/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Steamlined Web Development Presentation Video</title>
		<link>http://www.justincarmony.com/blog/2009/05/27/steamlined-web-development-presentation-video/</link>
		<comments>http://www.justincarmony.com/blog/2009/05/27/steamlined-web-development-presentation-video/#comments</comments>
		<pubDate>Wed, 27 May 2009 14:41:26 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Presentations]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Presentation]]></category>
		<category><![CDATA[svn]]></category>
		<category><![CDATA[trac]]></category>
		<category><![CDATA[UPHPU]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=422</guid>
		<description><![CDATA[Alright, it looks like the Victor at UPHPU has gotten my presentation up on Steamlining your web development. Since it was the first night Victor had tried to capture video &#38; audio to mesh them together, the video on the presentation is a little bit further ahead than the audio.  However, I think the presentation ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/' rel='bookmark' title='Speaking: Utah PHP Usergroup – Streamlined Web Development'>Speaking: Utah PHP Usergroup – Streamlined Web Development</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/14/php-video-tutorial-getting-started-installing-xampp/' rel='bookmark' title='PHP Video Tutorial – Getting Started – Installing XAMPP'>PHP Video Tutorial – Getting Started – Installing XAMPP</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/11/20/streamlined-web-development-in-depth/' rel='bookmark' title='Streamlined Web Development: In-Depth'>Streamlined Web Development: In-Depth</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Alright, it looks like the Victor at UPHPU has gotten my presentation up on Steamlining your web development. Since it was the first night Victor had tried to capture video &amp; audio to mesh them together, the video on the presentation is a little bit further ahead than the audio.  However, I think the presentation went quite well. You can view all the UPHPU meeting videos <a title="PHP Video Tutorials" href="http://uphpu.org/meetinglibrary/" target="_blank">here</a>. Here is the presentation I gave:</p>
<p><object width="530" height="398" data="http://podcast.utos.org/meetings/resources/player.swf" type="application/x-shockwave-flash"><param name="id" value="mpl" /><param name="name" value="mpl" /><param name="flashvars" value="&amp;file=http://podcast.utos.org/upload/08_11_uphpu.mp4" /><param name="src" value="http://podcast.utos.org/meetings/resources/player.swf" /><param name="allowfullscreen" value="true" /><param name="quality" value="high" /></object></p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/11/13/speaking-utah-php-usergroup-streamlined-web-development/' rel='bookmark' title='Speaking: Utah PHP Usergroup – Streamlined Web Development'>Speaking: Utah PHP Usergroup – Streamlined Web Development</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/10/14/php-video-tutorial-getting-started-installing-xampp/' rel='bookmark' title='PHP Video Tutorial – Getting Started – Installing XAMPP'>PHP Video Tutorial – Getting Started – Installing XAMPP</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/11/20/streamlined-web-development-in-depth/' rel='bookmark' title='Streamlined Web Development: In-Depth'>Streamlined Web Development: In-Depth</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/05/27/steamlined-web-development-presentation-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
<enclosure url="http://podcast.utos.org/upload/08_11_uphpu.mp4" length="56348817" type="video/mp4" />
		</item>
		<item>
		<title>Memcached: Simple, Effective, and Powerful</title>
		<link>http://www.justincarmony.com/blog/2009/05/20/memcached-simple-effective-and-powerful/</link>
		<comments>http://www.justincarmony.com/blog/2009/05/20/memcached-simple-effective-and-powerful/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:12:01 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips and Tricks]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=420</guid>
		<description><![CDATA[Realizing once again I haven&#8217;t written a blog post for quite some time, I thought I would just write a few smaller posts on things I&#8217;ve learned these last few months. Hopefully I can get back into the habit of blogging regularly again. This last month I finally broke down and learned how to use ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/06/30/soapui-a-simple-and-raw-java-soap-client/' rel='bookmark' title='SoapUI &#8211; a simple and raw Java SOAP Client'>SoapUI &#8211; a simple and raw Java SOAP Client</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/02/11/asp-net-ajax-straight-forward-and-simple-the-way-it-should-be/' rel='bookmark' title='ASP .NET Ajax &#8211; Straight forward and simple, the way it should be.'>ASP .NET Ajax &#8211; Straight forward and simple, the way it should be.</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/' rel='bookmark' title='PHP Singletons, Sub-Classing, and HAS-A Relationships'>PHP Singletons, Sub-Classing, and HAS-A Relationships</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Realizing once again I haven&#8217;t written a blog post for quite some time, I thought I would just write a few smaller posts on things I&#8217;ve learned these last few months. Hopefully I can get back into the habit of blogging regularly again.</p>
<p>This last month I finally broke down and learned how to use <a href="http://www.danga.com/memcached/" target="_blank">memcached</a>.  While I have known about memcached for a very long time, I just never got around to using it. While I heard it was beyond easy to implement, I still assumed it would take a few days to get the hang of it and figure out its quirks. However, when the forces of high load on a webserver and the file-based caching system that I have previously used were found to be too I/O intensive, I had no choice but to take the plunge.</p>
<p>It took me about 4 hours to add memcached support to my caching class and to be up and running at blazing speeds. That was from the very start to finish. That included reading the documentation and installing memcached on our Ubuntu server. Not only was is very easy and straight forward, but it was extremely effective.</p>
<p>There have been technologies that once I&#8217;ve learned I never want to go back to the &#8220;old way.&#8221; <a href="http://subversion.tigris.org/">Subversion</a>, <a href="http://jquery.com/">jQuery</a>, <a href="http://www.apachefriends.org/en/xampp.html">XAMPP</a>, and <a href="http://www.xdebug.org/">xDebug</a> are a few of these. I am now adding memcached to that list. It is so simple and straight forward. There are no complex configuration files or loads of manuals to read. You basically pass it the parameters of the size of the cache, what IP to listen on, and what port to use. That is it, nothing more. Then, in your PHP code, you just pass the memcache class the server&#8217;s info and you&#8217;re done.</p>
<p>One useful script I found was for a <a href="http://livebookmark.net/journal/2008/05/21/memcachephp-stats-like-apcphp/" target="_blank">memcached monitor</a>. It allows for you to view the stats and easily flush your memcache instance. Here is a snap shot from this script on our memcached instance:</p>
<p><a href="http://content.screencast.com/users/JustinCarmony/folders/Jing/media/f1548e28-f674-42ef-98bb-f1bafcde5f38/2009-05-20_0945.png"><img class="alignnone" title="Memcached Stats" src="http://content.screencast.com/users/JustinCarmony/folders/Jing/media/f1548e28-f674-42ef-98bb-f1bafcde5f38/2009-05-20_0945.png" alt="" width="412" height="370" /></a></p>
<p>It gets up to 900 requests per second during peak times. It was amazing to this that before we had about 900 requests a second trying to read from our hard drive. This is so much more efficient.</p>
<p>If you&#8217;ve hesitated working with memcached, don&#8217;t! It is an amazing simple yet powerful tool. It can help any website. Maybe my next blog post will be on how we&#8217;ve made such an effective cache at 99.9%.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/06/30/soapui-a-simple-and-raw-java-soap-client/' rel='bookmark' title='SoapUI &#8211; a simple and raw Java SOAP Client'>SoapUI &#8211; a simple and raw Java SOAP Client</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/02/11/asp-net-ajax-straight-forward-and-simple-the-way-it-should-be/' rel='bookmark' title='ASP .NET Ajax &#8211; Straight forward and simple, the way it should be.'>ASP .NET Ajax &#8211; Straight forward and simple, the way it should be.</a></li>
<li><a href='http://www.justincarmony.com/blog/2008/12/03/php-singletons-sub-classing-and-has-a-relationships/' rel='bookmark' title='PHP Singletons, Sub-Classing, and HAS-A Relationships'>PHP Singletons, Sub-Classing, and HAS-A Relationships</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/05/20/memcached-simple-effective-and-powerful/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data Backups &#8211; There Are No Excuses</title>
		<link>http://www.justincarmony.com/blog/2009/04/18/data-backups-there-are-no-excuses/</link>
		<comments>http://www.justincarmony.com/blog/2009/04/18/data-backups-there-are-no-excuses/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 00:04:48 +0000</pubDate>
		<dc:creator>Justin Carmony</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Backups]]></category>
		<category><![CDATA[Data Loss]]></category>
		<category><![CDATA[Horror Storries]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.justincarmony.com/blog/?p=408</guid>
		<description><![CDATA[Today I just had the terrible experience of having a database lose data, need to restore, only to not have a recent backup. If you haven&#8217;t had this experience before, please, take this serious. My wife was home for lunch as it happened, and she watched as the blood drained from my face. It only ...


Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/01/22/asp-net-gridview-access-to-data-in-code/' rel='bookmark' title='ASP .NET GridView Access to Data In Code'>ASP .NET GridView Access to Data In Code</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/08/the-dangers-of-twitter/' rel='bookmark' title='The Dangers of Twitter!'>The Dangers of Twitter!</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/' rel='bookmark' title='MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes'>MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Today I just had the terrible experience of having a database lose data, need to restore, only to not have a recent backup. If you haven&#8217;t had this experience before, please, take this serious. My wife was home for lunch as it happened, and she watched as the blood drained from my face. It only took a few seconds for the loss to happen, and immediately I knew exactly what the repercussions where. The immediate second thought that passes through your brain is &#8220;Where are my backups?&#8221; That is when I realized I didn&#8217;t have my nightly backups set up on this server. I quickly checked the file date on the last known backup I had.</p>
<p><strong>13 Days</strong>.</p>
<p>It could have been a lot worse, but it was still extremely bad. Those last thirteen days had been record setting days. Emails each day were going around about record new signups, records internal messages sent, etc. Those thirteen had been the best 13 days by far.</p>
<p>If some of you are wondering what had happened, and know me to be very diligent in my backups, I did the one wrong, terrible thing: I made an assumption. I&#8217;ve <a href="http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/" target="_blank">blogged before on how backups have saved me in the past</a>, and how I am almost a fanatic about them. So what the heck happened?</p>
<p>This website was on some hardware that was starting to get overburdened.  Then, out of the blue, our traffic exploded and our web server and database server started to grind to a halt. I spent long hours and sleepless nights migrating from these old servers from a terrible host to some new virtual machines. We then discovered our MySQL Database was so intense that the virtual server couldn&#8217;t handle the CPU and I/O requirements. Finally, in a last attempt of desperation I moved the Database to a spare box of another company who gave me permission to use it temporarily. That finally worked and allowed us to handle the load on our Database. By the time I finished this, it was about 8 AM in the morning and I went to bed.</p>
<p>I assumed we&#8217;d only be on this box for a day or two, so I didn&#8217;t setup the backup scripts. However, it gave us more breathing room than we expected, and other issues came up non-db related. The company lending the us the server said we could take our time, so the urgency on ordering our new hardware was pushed off more and more. I had completely forgotten about setting up backups scripts, and we ended up where we are now.</p>
<h2>What I&#8217;m Changing Personally</h2>
<p>I&#8217;ve decided to make two changes personally after this experience.</p>
<p>First, there are zero excuses for not having automated backups. Zero, zilch, nada! If a backup should have occurred, there is no excuse for it not to happen.</p>
<p>Secondly, I&#8217;m going to pick a day of the month where before I do anything else, I verify that all the backups are working. My father-in-law on the first business day of the month has the habit of doing his business&#8217;s billing and other accounting activities. He lets just about nothing stand in the way, and all ways checks his bank accounts and records to make sure everything is in order. I&#8217;m going to adopt this same idea, only with servers and data. The first business day of the month I&#8217;m going to go through all the servers under my care, verify the backups are working, check error logs, etc. I want to catch the problem before anyone else does.</p>
<h2>How To Prevent Data Loss</h2>
<p>Here are a few guidelines to make sure you don&#8217;t fall victim to data loss.</p>
<ol>
<li><strong>Select a Backup Schedule &amp; Follow It 100% </strong>- I suggest for most websites, a daily backup will work out pretty well. If you have a lot of data that would really stink to lose that changes frequently through the day, you could backup several of the tables hourly.</li>
<li><strong>Back Up To Several Locations</strong> &#8211; I like my servers to have two hard drives. One for the live data and another for backups. Then, after a backup has been created, I like to sync that backed up data to another server. It is important that if a meteor fell from the sky and hit your data center (or a flood, fire, earthquake), you would have a very recent backup somewhere else.</li>
<li><strong>Verify Your Backups</strong> &#8211; I can&#8217;t stress this enough. After this terrible accident of not having a recent backup, I went and checked all my other website database backups. I found out that one critical database&#8217;s backups were broken and not running nightly. You never want to find out this information after you have to restore from a backup. Regularly verify that your backups are being created, and that you can restore from them.</li>
</ol>
<p>Hopefully this will motivate at least one person in our profession to evaluate their backup strategy and make it better. You don&#8217;t ever want to tell a client that you just lost 13 days of their record setting work.</p>


<p>Related posts:<ol><li><a href='http://www.justincarmony.com/blog/2008/01/22/asp-net-gridview-access-to-data-in-code/' rel='bookmark' title='ASP .NET GridView Access to Data In Code'>ASP .NET GridView Access to Data In Code</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/08/the-dangers-of-twitter/' rel='bookmark' title='The Dangers of Twitter!'>The Dangers of Twitter!</a></li>
<li><a href='http://www.justincarmony.com/blog/2009/01/12/mysql-40-million-rows-myisam-innodb/' rel='bookmark' title='MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes'>MySQL, 40 Million Rows, MyISAM to InnoDB, 45 Minutes</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.justincarmony.com/blog/2009/04/18/data-backups-there-are-no-excuses/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using memcached
Database Caching 41/134 queries in 0.057 seconds using memcached
Content Delivery Network via Rackspace Cloud Files: c747925.r25.cf2.rackcdn.com

Served from: www.justincarmony.com @ 2012-02-07 23:45:55 -->
