<?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>The Weber Report &#187; Other</title>
	<atom:link href="http://www.dustinweber.com/category/web-development/other/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dustinweber.com</link>
	<description>Dustin Weber's Take On Web Development &#038; Other Random Diversions.</description>
	<lastBuildDate>Thu, 07 Aug 2008 21:41:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Apps Premier Edition: Is Google Changing The World Again?</title>
		<link>http://www.dustinweber.com/main-page/google-apps-premier-edition-is-google-changing-the-world-again/</link>
		<comments>http://www.dustinweber.com/main-page/google-apps-premier-edition-is-google-changing-the-world-again/#comments</comments>
		<pubDate>Sun, 18 Mar 2007 02:31:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1259</guid>
		<description><![CDATA[So what&#8217;s with this new-fangled Google Apps thing?
To me, it initially just seemed like a fancy version of Gmail.  However, as I really started delving into it, I was thoroughly impressed.
Here&#8217;s the general description from Google:
Communicate&#8230;
Give your users Gmail, Google Calendar and Google Talk accounts that
use your own custom domain, helping them to stay [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/google-apps.gif" title="google-apps.gif" alt="google-apps.gif" align="left" />So what&#8217;s with this new-fangled <a href="http://www.google.com/a/" target="_blank">Google Apps</a> thing?</p>
<p>To me, it initially just seemed like a fancy version of <a href="http://www.gmail.com" target="_blank">Gmail</a>.  However, as I really started delving into it, I was thoroughly impressed.</p>
<p>Here&#8217;s the general description from <a href="http://www.google.com" target="_blank">Google</a>:</p>
<p style="margin-left: 40px"><span style="font-weight: bold" class="style1">Communicate&#8230;</span><br />
Give your users Gmail, <a href="http://calendar.google.com" target="_blank">Google Calendar</a> and <a href="http://www.google.com/talk" target="_blank">Google Talk</a> accounts that<br />
use your own custom domain, helping them to stay connected and work<br />
together more effectively.</p>
<p style="padding-right: 10px; margin-left: 40px"><span style="font-weight: bold" class="style1">Collaborate and publish&#8230;</span><br />
Docs &amp; Spreadsheets lets users share files and collaborate in<br />
real-time. The Start Page is the first place your users will look to<br />
preview their inboxes and calendars, access your essential content, and<br />
search the web.</p>
<p style="padding-right: 10px; margin-left: 40px"><span style="font-weight: bold" class="style1">&#8230;and get on with business.</span><br />
It&#8217;s all hosted by Google, so there&#8217;s no hardware or software to<br />
install or download, and minimal setup and maintenance. You can get up<br />
and running quickly, even if you don&#8217;t have technical resources.</p>
<p>To try it out for myself, I moved all the email accounts for <a href="http://www.weber-productions.com" target="_blank">my web development business</a> to Google Apps Standard Edition.  I have to admit, the changeover worked flawlessly.  All I had to do was verify my domain by uploading a file to my server.  Once verified, I was able to get the email moving to Google&#8217;s servers with a few simple <a href="http://en.wikipedia.org/wiki/Mx_record" target="_blank">MX record</a> changes (and as far as I know didn&#8217;t miss one single email in the process).  Soon after, I created some additional <a href="http://en.wikipedia.org/wiki/Cname#Types_of_DNS_records" target="_blank">CNAME&#8217;s</a> so I could access the calendar, document, and start page functionalities a little easier.  Once those few things were done, I tinkered around with some of the admin controls in Google Apps, but for the most part, the process was complete.  It all worked amazingly well.</p>
<p>I am totally sold on this system.  I think this new offering will change the way many small, medium, and large businesses handle their communication infrastructures.  The real advantages come with the Premier Edition of the service.  The most important additions are as follows:</p>
<p style="margin-left: 40px">- 99.9% uptime guarantee for email<br />
- 10 GB of space (and I suspect that will grow in the future)<br />
- No ads in emails<br />
- Conference room and resource scheduling<br />
- A very poweful API system (including custom sign-on, authentication, user provisioning &amp; management, and support for email gateways allowing backups of data).<br />
- Email migration tools (in the works)<br />
- 24/7 support via phone/email<br />
- A variety of 3rd party applications and services to enhance the system<br />
- Extremely low-cost ($50/user/year)</p>
<p>Yes, the amazing email client is incredible with it&#8217;s spam filtering, organizational &#8216;labeling&#8217;, and search functions, but the other tools included are the pieces that will create an evolution in how businesses operate (in my humble opinion):</p>
<p>- Imagine having the ability to have incredibly powerful calendar/scheduling tools without the hassle and complexity of expensive <a href="http://en.wikipedia.org/wiki/Exchange_Server" target="_blank">Exchange servers</a>.</p>
<p>- Imagine being able to only allow certain groups of people (or individuals) to see certain calendars and events in real time, with just a few simple clicks.</p>
<p>- Imagine having a chat client integrated with your system that allows quick and effortless communications instead of picking up the phone or waiting on email responses.  What if this client was embedded throughout the system and all communication could be archived and saved for security/legal purposes?  What if that chat client also allowed voice calls to be made for free over the internet?</p>
<p>- Imagine being able to collaborate on documents or spreadsheets with teams of users all in real time over the web.  What if you could publish these documents for only certain members of your organization to see?  What if they could be saved in popular document and spreadsheet formats for desktop editing?</p>
<p>- What about a very powerful, yet simple &amp; easy to use corporate start page that has important information customized for each particular employees&#8217; job functions and can be easily branded?</p>
<p>- What if your users could access this data anywhere in the world with just a browser?  No more need for <a href="http://en.wikipedia.org/wiki/Vpn" target="_blank">VPN&#8217;s</a> (to access email securely), <a href="http://en.wikipedia.org/wiki/Microsoft_Office_Outlook" target="_blank">Outlook clients</a>, software updates, et cetera.</p>
<p>- What if the majority of these systems integrated with wireless/portable devices like <a href="http://en.wikipedia.org/wiki/BlackBerry" target="_blank">BlackBerry phones</a> with little-to-no effort?</p>
<p>- What if this entire system was simple to administrate for even the largest of companies?  You would hardly need one employee (at most) to manage the system.  No exchange server experts needed ever again (sorry guys)!</p>
<p>- What if this amazing system was hosted in some of the most secure and reliable data centers in the world (Google&#8217;s) and optimized for world-wide use?  No more worrying about expensive hardware, licensing, storage, bandwidth, replication, or down-time concerns.</p>
<p>- What if there were a plethora of 3rd party and advanced packages allowing custom email gateway services, archiving, security, authentication, et cetera?</p>
<p>It&#8217;s all available right now!</p>
<p>So go and check out <a href="http://www.google.com/a/enterprise/" target="_blank">Google Apps Enterprise Edition</a>&#8230; no matter what your company size, it has the potential to save your company time, effort, and vast quantities of money while increasing productivity and profit.  Seems like a no-brainer to me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/google-apps-premier-edition-is-google-changing-the-world-again/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
	<!-- google ad injected by adsense-optimizer http://wordpress.losmuchachos.at/adsenseoptimizer -->
			<div  style="padding:5px; display: block; margin-left: auto; margin-right: auto; text-align: center;"><script type="text/javascript"><!-- 
    	google_ad_client = "pub-3337807343833598"; google_alternate_color = "FFFFFF";
		google_ad_width = 468; google_ad_height = 60;
		google_ad_format = "468x60_as"; google_ad_type = "image";
		google_ad_channel ="6452455159"; google_color_border = "336699";
		google_color_link = "0000FF"; google_color_bg = "FFFFFF";
		google_color_text = "000000"; google_color_url = "008000";
		google_ui_features = "rc:6"; //--></script>
		<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script></div>	<item>
		<title>Optimizing Page Load Time: Fixing Your HTTP Pipeline Problem</title>
		<link>http://www.dustinweber.com/main-page/optimizing-page-load-time-fixing-your-http-pipeline-problem/</link>
		<comments>http://www.dustinweber.com/main-page/optimizing-page-load-time-fixing-your-http-pipeline-problem/#comments</comments>
		<pubDate>Thu, 08 Mar 2007 17:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1257</guid>
		<description><![CDATA[Defined here by Wikipedia.org, &#8220;HTTP pipelining is a technique in which multiple HTTP requests are written out to a single socket without waiting for the corresponding responses.&#8221;
Mozilla talks a bit more about the topic: &#8220;Normally, HTTP requests are issued sequentially, with the next request being issued only after the response to the current request has [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/http-pipeline.gif" title="http-pipeline.gif" alt="http-pipeline.gif" align="left" />Defined <a href="http://en.wikipedia.org/wiki/HTTP_pipelining" target="_blank">here</a> by <a href="http://www.wikipedia.org" target="_blank">Wikipedia.org</a>, &#8220;<span style="font-style: italic">HTTP pipelining is a technique in which multiple HTTP requests are written out to a single socket without waiting for the corresponding responses.</span>&#8221;</p>
<p><a href="http://www.mozilla.org/projects/netlib/http/pipelining-faq.html" target="_blank">Mozilla talks a bit more about the topic</a>: &#8220;<span style="font-style: italic">Normally, HTTP requests are issued sequentially, with the next request being issued only after the response to the current request has been completely received. Depending on network latencies and bandwidth limitations, this can result in a significant delay before the next request is seen by the server.</span>&#8221;</p>
<p>I have accepted the fact that HTTP pipelining is pretty much disabled in all modern browsers, but that doesn&#8217;t mean I have to like it!</p>
<p>I have a widget in Firefox that allow me to bypass this missing &#8220;feature&#8221; and it sure seems to speed up my browsing quite a bit.  However, why can&#8217;t everyone get together and work this problem out so we don&#8217;t need extensions/widgets/hacks to get around the limitations?</p>
<p>I attempted to harass <a href="http://www.microsoft.com" target="_blank">Microsoft</a> about it and never received an answer (I didn&#8217;t really harass them per say).  <a href="http://www.mozilla.com/en-US/" target="_blank">Firefox </a>isn&#8217;t mum on the subject (<a href="http://www.mozilla.org/projects/netlib/http/pipelining-faq.html" target="_blank">here</a>), but it seems to come down to compatibility issues with certain servers, routers, et cetera in some specific cases (even if the HTTP/1.1 spec allows it).</p>
<p><font size="5"><span style="font-weight: bold">So what does a web developer do (programmatically)?</span></font></p>
<p>Do we just accept the fact and move on or is there something we can do about it?  How can we speed up our page loads to a world that can&#8217;t use pipelining?</p>
<p>It turns out there is a relatively simple way to &#8220;fake HTTP pipelining&#8221;.  When I read through the article &#8220;<a href="http://www.die.net/musings/page_load_time/" target="_blank">Optimizing Page Load Time</a>&#8220;, I had a very revealing moment of self-inflicted-disrespect.  The solution is so obvious, but it never dawned on me previously.  Why not simply source content on the page from different locations?  It doesn&#8217;t even have to be different servers, just different domains.  Pretty simple right?</p>
<p>For example, we could do something like this for a single web page:</p>
<p style="margin-left: 40px">- <span style="font-weight: bold">Static Images:</span> images.dustinweber.com<br />
- <span style="font-weight: bold">Javascript Includes:</span> includes.dustinweber.com<br />
- <span style="font-weight: bold">CSS:</span> css.dustinweber.com<br />
- <span style="font-weight: bold">Static Content:</span> static.dustinweber.com<br />
- <span style="font-weight: bold">Dynamic Content:</span> dynamic.dustinweber.com</p>
<p>Now this is a pretty extreme example that I wouldn&#8217;t recommend for production (except in very specific cases), but let me explain what happens in simple terms.  Instead of your browser making a request to one domain for all the content, data, files, and everything for a page; it splits up the requests amongst the various sub domains (of which could be hosted separately or together).<br />
<font size="5"><br style="font-weight: bold" /><span style="font-weight: bold">What does splitting up the content get us? </span></font></p>
<p>The advantage is that the browser isn&#8217;t sitting around waiting on previous requests to complete before moving on to the next item.  It really only makes sense for larger pages.  In fact there is a drawback, according to <a href="http://www.die.net/musings/page_load_time/" target="_blank">Aaron</a>, &#8220;Beware that each additional hostname adds the overhead of an extra DNS lookup and an extra TCP three-way handshake. If your users have pipelining enabled or a given page loads fewer than around a dozen objects, they will see no benefit from the increased concurrency and the site may actually load more slowly. The benefits only become apparent on pages with larger numbers of objects. Be sure to measure the difference seen by your users if you implement this.&#8221;</p>
<p>Perhaps now you can consider playing around with this idea a bit on your own.  Given plenty of tinkering time and careful examination, it could help decrease page load times noticeably.</p>
<p>If you&#8217;d like some more tips on this subject, check out <a href="http://www.die.net/musings/page_load_time/" style="font-style: italic" target="_blank">Optimizing Page Load Time</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/optimizing-page-load-time-fixing-your-http-pipeline-problem/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Consumer Testing Labs: Ensuring Quality Products For The World</title>
		<link>http://www.dustinweber.com/main-page/consumer-testing-labs-ensuring-quality-products-for-the-world/</link>
		<comments>http://www.dustinweber.com/main-page/consumer-testing-labs-ensuring-quality-products-for-the-world/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 06:11:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1255</guid>
		<description><![CDATA[I realized the other day that I haven&#8217;t really talked about my employer, Consumer Testing Labs, all that much.
So, what is it that we do?
Let me quote from our web site so I get it correct: &#8220;Since 1952, we have been helping quality conscious retailers and manufacturers ensure the quality of the products they sell [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/consumer-testing-labs.gif" title="consumer-testing-labs.gif" alt="consumer-testing-labs.gif" align="left" />I realized the other day that I haven&#8217;t really talked about my employer, <a href="http://www.consumertesting.com/" target="_blank">Consumer Testing Labs</a>, all that much.</p>
<p>So, what is it that we do?</p>
<p>Let me quote from our <a href="http://www.consumertesting.com/" target="_blank">web site</a> so I get it correct: &#8220;Since 1952, we have been helping quality conscious retailers and manufacturers ensure the quality of the products they sell and by doing so protect their business and their most important asset&#8211;their customers&#8217; continued patronage.&#8221;</p>
<p>Basically, we help out the consumer by ensuring quality products are on the shelves and the retailer by ensuring they don&#8217;t sell products that will be returned frequently or are hazardous to the health/safety of their customers.  Not only that, but we do it faster, better, and cheaper than the competition!</p>
<p>With all that being said, let me explain why it&#8217;s a cool company.  I have to openly admit that our testing laboratories are really hypnotic (interesting) places to visit.</p>
<p>We have a world-wide presence in three major categories of testing:</p>
<p style="margin-left: 40px"><span style="font-weight: bold">1)</span> Food &#8212; essentially anything edible<br />
<span style="font-weight: bold">2)</span> Softlines &#8212; essentially anything you wear<br />
<span style="font-weight: bold">3)</span> Hardlines &#8212; everything else (yes, a massive category)</p>
<p>On my initial interview with the company, I received a first-class tour of the Food Labs located in <a href="http://en.wikipedia.org/wiki/Bentonville,_Arkansas" target="_blank">Bentonville, Arkansas</a>.  I can truly say that the food testing process is awe-inspiring.  The employees who test these food products are highly skilled and the testing procedures they go through are rigorous, complicated, and highly accurate.  They use machinery and test equipment in the lab that I swear I&#8217;ve only seen in Star Trek episodes.  But outside of the cool equipment, even the simple taste-testing area is neat.</p>
<p>Truthfully though, the Hardlines lab is my real favorite.  Can you imagine how fun it is to test the break strength of steel cable?  Or to see how many tons it takes to cause an industrial shelving unit to collapse?  How bout checking the electrical bleed tendencies of high power air conditioners?  You can imagine the fun when it comes time to test barbecue grills!  It&#8217;s a really fascinating place that is always buzzing with activity, huge machines, and strange noises.  Every time I go there, at least one test-in-progress captivates my attention for a lengthy time (usually only as long as I&#8217;m allowed to stand there gawking).  I&#8217;m just skimming the top here, but I think you get the picture; it&#8217;s a cool place.</p>
<p>But even the Softlines Lab has neat stuff going on.  Fiber analysis, color accuracy testing, &amp; children&#8217;s sleepwear flammability testing just barely touches on all the interesting testing that occurs there.</p>
<p>So yeah, basically, it&#8217;s a pretty unique place to work.</p>
<p>As a <a href="http://en.wikipedia.org/wiki/Web_developer" target="_blank">web developer</a>, I don&#8217;t get to see all the testing that occurs every day, but my job is to enable the testers and the company itself to achieve goals more accurately, efficiently, and faster by leveraging existing technology and creating new technology where it fits.</p>
<p>The employees at <a href="http://www.consumertesting.com/" target="_blank">Consumer Testing Labs</a> have a lot of pride in their work and although I don&#8217;t get to blow stuff up on a daily basis, I really enjoy the fact that my efforts enable our employees&#8217; hard work to pay off even more for themselves and the company as a whole.</p>
<p>If you have any interest in working for us, please check out our <a href="http://www.consumertesting.com/job.php" target="_blank">job openings</a> (and tell em&#8217; I sent ya).  We always seem to have new jobs available as the company keeps growing and growing.</p>
<p>In the mean time, just remember that we might&#8217;ve tested that chain saw you use every weekend or that piece of cheese you ate last night; so feel free to silently thank us that neither one killed you!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/consumer-testing-labs-ensuring-quality-products-for-the-world/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>5 New Jobs Of The Web 2.0 Generation</title>
		<link>http://www.dustinweber.com/main-page/5-new-jobs-of-the-web-20-generation/</link>
		<comments>http://www.dustinweber.com/main-page/5-new-jobs-of-the-web-20-generation/#comments</comments>
		<pubDate>Fri, 02 Mar 2007 10:20:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1254</guid>
		<description><![CDATA[Courtesy of Web Worker Daily, here are some really interesting jobs that seem to be a good fit for someone working in a Web 2.0 job.
Likely most interesting to someone with some extra time on their hands (outside of their regular job).  Still, pretty interesting stuff.
1) New Media Producer
- Essentially video blogging and similar [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/web-worker-daily.gif" title="web-worker-daily.gif" alt="web-worker-daily.gif" align="left" />Courtesy of Web Worker Daily, <a href="http://webworkerdaily.com/2007/03/01/5-web-based-entrepreneurship-experiments/" target="_blank">here</a> are some really interesting jobs that seem to be a good fit for someone working in a Web 2.0 job.</p>
<p>Likely most interesting to someone with some extra time on their hands (outside of their regular job).  Still, pretty interesting stuff.</p>
<p style="margin-left: 40px"><span style="font-weight: bold">1) New Media Producer</span><br />
- Essentially video blogging and similar forms of media production.<span style="font-weight: bold">2) Clothing Label Crafter</span><br />
- Basically creating t-shirts that say something like &#8220;Pedro For President&#8221;.<br />
<br style="font-weight: bold" /><span style="font-weight: bold">3) Micro Investor</span><br />
- Offering loans person to person.. eliminating banks and lending companies.</p>
<p><span style="font-weight: bold">4) Publisher</span><br />
- A standard run-of-the-mill author (who prints on paper).</p>
<p><span style="font-weight: bold">5) Community Curator</span><br />
- Creating your own social network (like Facebook).</p>
<p><a href="http://webworkerdaily.com/2007/03/01/5-web-based-entrepreneurship-experiments/" target="_blank">Go see the original article</a> to learn more about the jobs themselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/5-new-jobs-of-the-web-20-generation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting Started With CakePHP: No Frustration Permitted!</title>
		<link>http://www.dustinweber.com/main-page/getting-started-with-cakephp-no-frustration-permitted/</link>
		<comments>http://www.dustinweber.com/main-page/getting-started-with-cakephp-no-frustration-permitted/#comments</comments>
		<pubDate>Fri, 23 Feb 2007 09:42:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1252</guid>
		<description><![CDATA[After literally weeks of tenuous back and forth rhetoric with myself (internally) and my fellow co-workers, I have finally, humbly, and assuredly concluded that  CakePHP is the best PHP Web Framework in the world!
I could argue the benefits of Cake vs. other Frameworks again, but I&#8217;ve already done that, twice (though I originally decided [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/cakephp.gif" title="cakephp.gif" alt="cakephp.gif" align="left" height="125" width="135" />After literally weeks of tenuous back and forth rhetoric with myself (internally) and my fellow co-workers, I have finally, humbly, and assuredly concluded that  <a href="http://cakephp.org/" target="_blank">CakePHP</a> is the best PHP Web <a href="http://en.wikipedia.org/wiki/Framework" target="_blank">Framework</a> in the world!</p>
<p>I could argue the benefits of Cake vs. other Frameworks again, but <a href="http://www.dustinweber.com/blog/_archives/2007/2/8/2720812.html">I&#8217;ve already done that</a>, <a href="http://www.dustinweber.com/blog/_archives/2007/1/28/2691830.html">twice</a> (though I <a href="http://www.dustinweber.com/blog/_archives/2007/1/17/2674501.html">originally decided differently</a>).</p>
<p>Instead I&#8217;m hoping to help the Cake community a bit today.  I&#8217;m not a &#8220;Cake expert&#8221; yet, but I think I can contribute a few things that can possibly ease some of the few frustrations that might occur when getting started with Cake.</p>
<p><font size="6">Dustin&#8217;s CakePHP Beginner&#8217;s Guide!</font></p>
<p>I&#8217;m gonna try and keep it simple (<a href="http://en.wikipedia.org/wiki/Keep_it_simple_stupid" target="_blank">K.I.S.S.</a>) for ya&#8217;ll  and do my best to actually offer any Cake newbies out there some advice that can help get the ball rolling quicker.</p>
<p>After showing it off to my co-workers and going through the manual a few times, here&#8217;s my</p>
<p>reccommended approach to the learning process:</p>
<p><span style="font-weight: bold">First, Some Installation Tips:</span></p>
<p style="margin-left: 40px">- Use <a href="http://www.apache.org/" target="_blank">Apache</a>&#8230; it&#8217;s just easier than <a href="http://www.microsoft.com/windowsserver2003/iis/default.mspx" target="_blank">IIS</a> and it&#8217;s time to make the switch if you haven&#8217;t yet.  Make sure <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html" target="_blank">mod_rewrite</a> is enabled; again to make things easier.<br />
- If you must use IIS, check out <a href="http://www.dustinweber.com/blog/_archives/2007/4/12/2876128.html">my writeup</a> to help you get the ball rolling.<br />
- &#8220;Make sure that an .htaccess override is allowed in your<br />
httpd.conf (Apache), you should have a section that defines a section for<br />
each Directory on your server. Make sure the<br />
<strong>AllowOverride</strong> is set to <strong>All</strong> for the<br />
correct Directory.&#8221;<br />
- Don&#8217;t mess with the production install of Cake yet; just do a development setup.</p>
<p><br style="font-weight: bold" /><span style="font-weight: bold">Second, do the </span><a href="http://manual.cakephp.org/appendix/blog_tutorial" style="font-weight: bold" target="_blank">basic blog tutorial</a><span style="font-weight: bold">:</span></p>
<p style="margin-left: 40px">- Prepare for the inner excitement that will soon come.<br />
- I know it&#8217;s not the recommended order of learning, but I think it works better to give a real-world example right off the bat before anything else.</p>
<p><span style="font-weight: bold">Third, save that blog code and start working your way through the <a href="http://manual.cakephp.org/appendix/blog_tutorial" target="_blank">manual</a>:</span></p>
<p style="margin-left: 40px">- Start at the very beginning, don&#8217;t skip any sections, and read every word.<br />
- When you get confused (which you probably won&#8217;t much), re-read!<br />
- It&#8217;s not a big manual, you&#8217;ll be done in an hour or two.</p>
<p><br style="font-weight: bold" /><span style="font-weight: bold">Fourth, go watch a few of the <a href="http://www.cakephp.org/screencasts" target="_blank">screencasts</a>:</span></p>
<p style="margin-left: 40px">- Especially:  <a href="http://www.cakephp.org/screencasts/view/1" target="_blank">Building The Bakery</a> &amp; <a href="http://www.cakephp.org/screencasts/view/5" target="_blank">Admin Routing</a></p>
<p><span style="font-weight: bold">Last, start your own basic project and see where you get.</span></p>
<p>Here&#8217;s a few more helpful tips:</p>
<p style="margin-left: 40px">- Explore the <a href="http://bakery.cakephp.org/" target="_blank">Bakery</a> for cool stuff.<br />
- Get the &#8216;<a href="http://cakephp.org/files/cakesheet.pdf" target="_blank">Cakesheet</a>&#8216;, it can save some serious searching time.<br />
- Use the <a href="http://groups.google.com/group/cake-php">Cake Google Group</a>, en excellent option for help.<br />
- Remember to search through the <a href="http://manual.cakephp.org/" target="_blank">User Manual</a>, <a href="http://api.cakephp.org/" target="_blank">API</a>, the web (2.1 million results for Cakephp on <a href="http://www.google.com/" target="_blank">Google</a>), and the entire <a href="http://groups.google.com/group/cake-php" target="_blank">Google Group</a> BEFORE asking a question.  You&#8217;d be surprised how often I see thread&#8217;s on the group posted that look something like: &#8220;Cake N3wbie &#8211; How do I connect to a database&#8221;.  I know it&#8217;s easy to just ask and be lazy, but trust me, there&#8217;s a really good chance it&#8217;s already been answered.  Don&#8217;t wear out the Cake experts prematurely with the simple stuff.</p>
<p>Ok, now you have enough to get started, so why are you still here reading this?</p>
<p><font size="2"><span style="font-weight: bold">By the way: </span> Let me know how Cake works out for you!</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/getting-started-with-cakephp-no-frustration-permitted/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>PageRank Prediction: A Crystal Ball Into Your SEO Future?</title>
		<link>http://www.dustinweber.com/main-page/pagerank-prediction-a-crystal-ball-into-your-seo-future/</link>
		<comments>http://www.dustinweber.com/main-page/pagerank-prediction-a-crystal-ball-into-your-seo-future/#comments</comments>
		<pubDate>Tue, 20 Feb 2007 08:30:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1251</guid>
		<description><![CDATA[I promise I&#8217;m not not trying to brag, but I&#8217;ve recently noticed that my rankings in the ole&#8217; search engines have been near the top for almost every topic I post (especially on Google).
Now, normally I haven&#8217;t had trouble showing up near the top for most topics, but lately (in the last six months) I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/upward-trend.gif" title="upward-trend.gif" alt="upward-trend.gif" align="left" />I promise I&#8217;m not not trying to brag, but I&#8217;ve recently noticed that my rankings in the ole&#8217; search engines have been near the top for almost every topic I post (especially on <a href="http://www.google.com" target="_blank">Google</a>).</p>
<p>Now, normally I haven&#8217;t had trouble showing up near the top for most topics, but lately (in the last six months) I&#8217;ve seen my rankings doing better than they ever have before (overall).  I know it&#8217;s only a portion of the true reason, but I also just noticed my <a href="http://www.google.com/technology/" target="_blank">PageRank</a> is now 5 and that seems to be a contributing factor.</p>
<p>After a little celebration, I checked out the <a href="http://www.iwebtool.com/pagerank_prediction" target="_blank">PageRank Prediction Tool</a> to see where I was headed.  This thing, however inaccurate it&#8217;s predictions may be, is fun to play around with.   It&#8217;s fun to see what the big domains are doing and I really like to check out the competition and see how they are &#8220;really doing&#8221;.</p>
<p>I&#8217;d recommend taking a second to play around with the <a href="http://www.iwebtool.com/pagerank_prediction" target="_blank">Page Rank Prediction Tool</a> if you get a chance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/pagerank-prediction-a-crystal-ball-into-your-seo-future/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Ultimate Algorithms/Data Structures Resource</title>
		<link>http://www.dustinweber.com/main-page/the-ultimate-algorithmsdata-structures-resource/</link>
		<comments>http://www.dustinweber.com/main-page/the-ultimate-algorithmsdata-structures-resource/#comments</comments>
		<pubDate>Fri, 16 Feb 2007 09:02:18 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1249</guid>
		<description><![CDATA[Courtesy of The National Institute of Standards and Technology (NIST), I have discovered this incredible collection of algorithms, algorithmic techniques,
data structures, archetypal problems, and related definitions.
You might ask yourself: &#8220;What&#8217;s so special about a few algorithms&#8221;?  Well, I don&#8217;t care who you are, if you are a programmer of ANY type, this stuff is [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/nist-logo.gif" title="nist-logo.gif" alt="nist-logo.gif" align="left" />Courtesy of <a href="http://www.nist.gov/" target="_blank">The National Institute of Standards and Technology</a> (NIST), I have discovered <a href="http://www.nist.gov/dads/index.html" target="_blank">this</a> incredible collection of algorithms, algorithmic techniques,<br />
data structures, archetypal problems, and related definitions.</p>
<p>You might ask yourself: &#8220;What&#8217;s so special about a few algorithms&#8221;?  Well, I don&#8217;t care who you are, if you are a programmer of ANY type, this stuff is good for you to know and use!</p>
<p>I actually enjoyed going back and looking at some of the problems I worked on back in college.  Truthfully, these bad boys can make your job (as a programmer) a whole lot easier and your code a whole lot more efficient.</p>
<p>So come on, check out <a href="http://www.nist.gov/dads/index.html" target="_blank">The Dictionary of Algorithms and Data Structures</a>.</p>
<p><font size="2"><span style="font-weight: bold">Note: </span>The <a href="http://www.nist.gov/dads/HTML/byzantine.html" target="_blank">Byzantine Generals Problem</a> is still my favorite.</font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/the-ultimate-algorithmsdata-structures-resource/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CakePHP: Is It Truly The Best PHP Web Framework?</title>
		<link>http://www.dustinweber.com/main-page/cakephp-is-it-truly-the-best-php-web-framework/</link>
		<comments>http://www.dustinweber.com/main-page/cakephp-is-it-truly-the-best-php-web-framework/#comments</comments>
		<pubDate>Fri, 09 Feb 2007 09:28:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1244</guid>
		<description><![CDATA[Lately, I&#8217;ve been taking some serious time out of my schedule to sit down and really examine a few of the top PHP Web frameworks (CakePHP, Symfony, &#38; Zend) even more than I had previously.  After a bunch of reading, tinkering, and playing around, I can now officially declare:  &#8220;I think CakePHP is [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/cakephp.gif" title="cakephp.gif" alt="cakephp.gif" align="left" height="145" width="156" />Lately, I&#8217;ve been taking some serious time out of my schedule to sit down and really examine a few of the top PHP Web frameworks (<a href="http://cakephp.org/" target="_blank">CakePHP</a>, <a href="http://www.symfony-project.com/" target="_blank">Symfony</a>, &amp; <a href="http://framework.zend.com/" target="_blank">Zend</a>) even more than I had previously.  After a bunch of reading, tinkering, and playing around, I can now officially declare:  &#8220;I think CakePHP is the best&#8221;.  There I said it, I hope I won&#8217;t regret it&#8230; heh.</p>
<p>In fact, after actually sitting down and expanding on the <a href="http://manual.cakephp.org/appendix/blog_tutorial" target="_blank">basic blog tutorial offered in the manual</a>, I am tepidly excited about the prospects of implementing something cool and truly useful in Cake (I may even switch The Weber Report over to my new, fancy, Cake-Powered,  conglomeration that I created during the learning process) and really start taking advantage of the <a href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank">MVC Design Pattern</a>.</p>
<p>Now that I have read through <a href="http://manual.cakephp.org/" target="_blank">the manual</a> a few times, I can humbly offer some of my favorite parts of the Cake experience:</p>
<p><font size="5"><span style="font-weight: bold">Powerful Associations Between Models</span></font></p>
<p style="margin-left: 40px"><span style="font-style: italic">&#8220;One of the most powerful features of CakePHP is the relational<br />
mapping provided by the model. In CakePHP, the links between tables are<br />
handled through associations. Associations are the glue between related<br />
logical units.  </span></p>
<p style="margin-left: 40px; font-style: italic">There are four types of associations in CakePHP:</p>
<p style="margin-left: 40px; font-style: italic">- hasOne<br />
- hasMany<br />
- belongsTo<br />
- hasAndBelongsToMany</p>
<p style="margin-left: 40px; font-style: italic">When associations between models have been defined, Cake will<br />
automagically fetch models related to the model you are working with.<br />
For example, if a Post model is related to an Author model using a<br />
hasMany association, making a call to $this-&gt;Post-&gt;findAll() in a<br />
controller will fetch Post records, as well as all the Author records<br />
they are related to.&#8221;<br />
<font size="5"><span style="font-weight: bold">Powerfully Flexible Data Validation Features</span></font></p>
<p style="margin-left: 40px; font-style: italic">&#8220;Validations are defined using Perl-compatibile regular expressions,<br />
some of which are pre-defined in /libs/validators.php. These are:</p>
<p style="margin-left: 40px; font-style: italic">- VALID_NOT_EMPTY<br />
- VALID_NUMBER<br />
- VALID_EMAIL<br />
- VALID_YEAR</p>
<p style="margin-left: 40px; font-style: italic">But custom validation (outside of regular expressions) is also extremely easy. If you&#8217;d like to perform some custom validation apart from the<br />
regex based Cake validation, you can use the invalidate() function of<br />
your model to flag a field as erroneous. Imagine that you wanted to show<br />
an error on a form when a user tries to create a username that already<br />
exists in the system. Because you can&#8217;t just ask Cake to find that out<br />
using regex, you&#8217;ll need to do your own validation, and flag the field<br />
as invalid to invoke Cake&#8217;s normal form invalidation process.&#8221;</p>
<p><font size="5"><br />
<span style="font-weight: bold">Stringent Security Component</span></font></p>
<p style="margin-left: 40px"><span style="font-style: italic">&#8220;The Security component is used to secure your controller actions<br />
against malicious or errant requests. It allows you to set up the<br />
conditions under which an action can be requested, and optionally<br />
specify how to deal with requests that don&#8217;t meet those requirements.</span><br style="font-style: italic" /></p>
<p style="font-style: italic; margin-left: 40px">So if a request doesn&#8217;t meet the security requirements that we<br />
define, what happens to it? By default, the request is black-holed,<br />
which means that the client is sent a 404 header, and the application<br />
immediately exits. However, the Security component has a<br />
$blackHoleCallback property, which you can set to the name of a custom<br />
callback function defined in your controller.  Rather than simply give a 404 header and then nothing, this<br />
property allows you to perform some additional checking on the request,<br />
redirect the request to another location, or even log the IP address of<br />
the offending client.</p>
<p style="font-style: italic; margin-left: 40px">Every time the Security component is loaded, even if it is not<br />
being used to protect an action, it does the following things: First, it<br />
generates an authentication key using the core Security class. Then, it<br />
writes this key to the session, along with an expiration date and some<br />
additional information (the expiration date is determined by your configuration file).<br />
Next, it sets the key in your controller, to be referenced later.</p>
<p style="font-style: italic; margin-left: 40px">Then in your view files, any form tag you generate using<br />
$html-&gt;formTag() will also contain a hidden input field with the<br />
authentication key. That way, when the form is POSTed, the Security<br />
component can compare that value to the value in the session on the<br />
receiving end of the request. After that, the authentication key is<br />
regenerated, and the session is updated for the next request.&#8221;</p>
<p><font size="5"><span style="font-weight: bold">Cool Scaffolding (Similar to Rails)</span></font></p>
<p style="margin-left: 40px; font-style: italic">&#8220;So cool that you&#8217;ll want to use it in production apps. Now, we<br />
think its cool, too, but please realize that scaffolding is&#8230; well&#8230;<br />
just scaffolding. It&#8217;s a bunch of stuff you throw up real quick during<br />
the beginning of a project in order to get started. It isn&#8217;t meant to be<br />
completely flexible. So, if you find yourself really wanting to<br />
customize your logic and your views, its time to pull your scaffolding<br />
down in order to write some code.</p>
<p style="margin-left: 40px"><span style="font-style: italic">Scaffolding is a great way of getting the early parts of<br />
developing a web application started. Early database schemas are<br />
volatile and subject to change, which is perfectly normal in the early<br />
part of the design process. This has a downside: a web developer hates<br />
creating forms that never will see real use. To reduce the strain on the<br />
developer, scaffolding has been included in Cake. Scaffolding analyzes<br />
your database tables and creates standard lists with add, delete and<br />
edit buttons, standard forms for editing and standard views for<br />
inspecting a single item in the database.&#8221;</span></p>
<p>Remember, these are just some of the highlights.  There is a LOT more in <a href="http://manual.cakephp.org/" target="_blank">the manual</a> to get you excited. In the near future, I&#8217;d really like to contribute a bit to the <a href="http://bakery.cakephp.org/" target="_blank">Bakery</a> and really begin discovering the power of Cake in ways I can&#8217;t yet foresee.</p>
<p>You know you want to check <a href="http://cakephp.org/" target="_blank">Cake</a> out, so stop wasting time&#8230; take the leap!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/cakephp-is-it-truly-the-best-php-web-framework/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>PHP Web Frameworks: CakePHP Versus Symfony</title>
		<link>http://www.dustinweber.com/main-page/php-web-frameworks-cakephp-versus-symfony/</link>
		<comments>http://www.dustinweber.com/main-page/php-web-frameworks-cakephp-versus-symfony/#comments</comments>
		<pubDate>Thu, 25 Jan 2007 06:26:00 +0000</pubDate>
		<dc:creator>Dustin Weber</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1240</guid>
		<description><![CDATA[Over the last few weeks, I have been attempting to learn two major PHP frameworks: Symfony &#38; CakePHP.
Originally, I had decided (in a bit of short-sighted wisdom) that Symfony was the obvious champion.  I think I may have been wrong.  I spent nearly a week tinkering with Symfony off and on.  I [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/cakephp.gif" title="cakephp.gif" alt="cakephp.gif" align="left" height="136" width="147" />Over the last few weeks, I have been attempting to learn two major PHP frameworks: <a href="http://www.symfony-project.com/" target="_blank">Symfony</a> &amp; <a href="http://www.cakephp.org/" target="_blank">CakePHP</a>.</p>
<p>Originally, I had decided (in a bit of short-sighted wisdom) that Symfony was the obvious champion.  I think I may have been wrong.  I spent nearly a week tinkering with Symfony off and on.  I came to a simple conclusion: I&#8217;m confused.</p>
<p>The Symfony framework is so huge and poorly supported that it confused the heck out of me.  Their basic &#8220;<a href="http://www.symfony-project.com/get/sf_sandbox-1.0.0-beta4.tgz" target="_blank">sandbox</a>&#8221; tutorial doesn&#8217;t work in any way close to what the documentation states.  And the documentation, oh the documentation; what could be the best part of this huge framework fails because of one fatal flaw: no one updates it for the new each new revision that (sarcastically) seems to come out every other day.</p>
<p>After seeing my co-worker struggle with the installation process for days and my own copy just barely functional (with hardly a thing to show from it), I called it quits.  At least until I read <a href="http://www.symfony-project.com/weblog/2007/01/17/book-preview-read-the-unit-tests-chapter.html" target="_blank">this</a> (from <a href="http://www.symfony-project.com/weblog.html" target="_blank">The Symfony Blog</a>):</p>
<p style="margin-left: 40px"><span style="font-style: italic">&#8220;You know that we spent the last months writing a complete guide for<br />
symfony that will be released in bookshops on January 29th. We also<br />
mentioned the fact that the content of this book would become the<br />
official symfony online documentation and be published in HTML on the<br />
same date.&#8221;</span></p>
<p>So, it looks like I&#8217;ll put Symfony off until this new-fangled documentation goes live, then I&#8217;ll give it another swing.</p>
<p>In the mean time, I&#8217;ve been working with CakePHP and genuinely lovin&#8217; it.  After tinkering around with it for a while, here are my thoughts about the two frameworks:</p>
<p><font style="font-weight: bold" size="5">Documentation</font><br />
<span style="font-weight: bold">- CakePHP</span>: Up to date, but not totally complete and somewhat difficult to search through.  They also have an extremely helpful <a href="http://groups.google.co.uk/group/cake-php" target="_blank">CakePHP Google Group</a> that helped most problems I ran into quickly (almost instantaneously during normal business hours) and efficiently.  You can&#8217;t beat live support that&#8217;s free.<br />
<span style="font-weight: bold">- Symfony</span>: Until the new release, not all that helpful because much of the content is dated.  However, what is there is easily searchable and they have an active forum that seems to be full of knowleable (yet somewhat arrogant) people.</p>
<p><font size="5"><span style="font-weight: bold">Installation</span></font><br />
<span style="font-weight: bold">- CakePHP</span>: Very easy to install.  For the most part, just copy it into your web root and you are good to go (provided you have <a href="http://www.apache.org/" target="_blank">Apache</a> and <a href="http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html" target="_blank">mod re-write</a> previously enabled).  Once it&#8217;s in there, all you really have to do is setup the DB connection and you can be off and running.</p>
<p><span style="font-weight: bold">- Symfony</span>: Ouch&#8230; this is my major sticking point here.  I know people that would say, &#8220;If it&#8217;s not hard, it&#8217;s not worth doing&#8221;.  I agree with that idea, but this is one tough cookie to crack.  There are so many little tricks, files, variables, and directory permissions to set-up&#8230; it&#8217;s a wonder I even got to the point I did.  Their basic tutorial, &#8220;<a href="http://www.symfony-project.com/tutorial/my_first_project.html" target="_blank">my first project</a>&#8220;,  wouldn&#8217;t work by following the given instructions&#8230; no matter what I did.  They also rely on Pear to deliver the goods, which is inherently fraught with little tricks to keep it all running smoothly.</p>
<p><font size="5"><span style="font-weight: bold">Directory Structure</span></font><br />
<span style="font-weight: bold">- CakePHP</span>: It makes sense and it&#8217;s extremely logical for almost anyone.  You don&#8217;t have to be the creator of the framework to understand what each directory is used for.  The framework code is in a separate directory totally away from all of your own code.  Props to these guys, it works well.</p>
<p><span style="font-weight: bold">- Symfony</span>: File and directory overload.  We&#8217;re talking a huge amalgamation of directories buried within directories and files scattered all over the place.  When I started really digging, it left me dazed.  Truthfully, after spending countless hours working with Symfony, I still haven&#8217;t figured out what all the directories are there for (which could be because the framework kinda mixes it&#8217;s own libraries in with the programmer&#8217;s code).</p>
<p>I could go on for hours, but I think you get the picture.  For the time being, I have revised my opinion on the matter of PHP web frameworks.  In my somewhat humble opinion, I think <a href="http://www.cakephp.org/" target="_blank">CakePHP</a> is the current champion.  However, <a href="http://www.symfony-project.com/" target="_blank">Symfony</a> may present some good competition just as soon as their new release comes out on the January 27th, 2007.  Only time will tell I suppose.  Rest assured, I&#8217;ll be choosing one or the other.</p>
<p style="text-align: center"><span style="font-weight: bold">UPDATE: My mind is made up &#8211; CakePHP wins!  Please read</span><span style="font-weight: bold"> </span><a href="http://www.dustinweber.com/blog/_archives/2007/2/8/2720812.html" style="font-weight: bold">this</a><span style="font-weight: bold">, and </span><a href="http://www.dustinweber.com/blog/_archives/2007/2/22/2757853.html" style="font-weight: bold">this</a><span style="font-weight: bold">.</span><br style="font-size: 24px" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/php-web-frameworks-cakephp-versus-symfony/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>The Best PHP Framework: Is Symfony Really It?</title>
		<link>http://www.dustinweber.com/main-page/the-best-php-framework-is-symfony-really-it/</link>
		<comments>http://www.dustinweber.com/main-page/the-best-php-framework-is-symfony-really-it/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 07:43:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1238</guid>
		<description><![CDATA[Thanks to a great mentor (Greg) in my starting days of web development and a strong background in Computer Science from several excellent professors in college, I had a good start at web development a few years back.  My original skills for PHP featured an Object oriented approach, secure validation &#38; error reporting, some [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/symfony-logo.gif" title="symfony-logo.gif" alt="symfony-logo.gif" align="left" />Thanks to a great mentor (Greg) in my starting days of web development and a strong background in <a href="http://en.wikipedia.org/wiki/Computer_science" target="_blank">Computer Science</a> from several excellent professors in college, I had a good start at web development a few years back.  My original skills for <a href="http://en.wikipedia.org/wiki/Php" target="_blank">PHP</a> featured an Object oriented approach, secure validation &amp; error reporting, some nice <a href="http://pear.php.net/package/DB" target="_blank">Pear DB</a> functionality (with <a href="http://www.mysql.com/" target="_blank">MYSQL</a>), and the <a href="http://smarty.php.net/" target="_blank">Smarty Templating Engine</a>.  My skills and knowledge regarding PHP have continued to grow each day (especially regarding efficiency and security).</p>
<p>Recently though, I  began playing with the big new talk of the town: <a href="http://www.rubyonrails.org/" target="_blank">Ruby on Rails</a>.  I have to admit, the process hasn&#8217;t been as easy as I thought.  Most of the slowdown revolves around the fact that I don&#8217;t know <a href="http://en.wikipedia.org/wiki/Ruby_programming_language" target="_blank">Ruby</a> all that well.  Combining a totally new realm of development (<a href="http://en.wikipedia.org/wiki/Ruby_on_Rails" target="_blank">the Rails framework</a>) with a new language makes the switchover difficult for me.  Regardless of the difficulties, I certainly see the power of Rails and understand how it&#8217;s framework can make the development process amazingly more agile and efficient.</p>
<p>With that being said, at <a href="http://www.consumertesting.com/" target="_blank">Consumer Testing Labs</a> we&#8217;ve been talking extensively of doing some major changes to how we code.  We thought it would be a great idea to implement a standard templating system (like <a href="http://en.wikipedia.org/wiki/Smarty" target="_blank">Smarty</a>) for everyone to use, develop some internal libraries that all the developers could agree on and use frequently, and even strong rules on everything from coding practices to directory structures to design patterns.  I think we all sorta hit a no duh moment when considering how to implement all these ideas effectively: a PHP <a href="http://en.wikipedia.org/wiki/Model-view-controller" target="_blank">MVC</a> framework!</p>
<p>The discussions at work piqued my interests enough to send me on a quest of nightly rituals  over the last week or two discovering, testing, and playing around with the nearly fifty frameworks that currently exist for PHP.  Ok, I didn&#8217;t try them all out, but I did try out the best of the best according to my reading (and the ones that seemed to fit into  the MVC layout).  After tinkering around with <a href="http://www.cakephp.org/" target="_blank">CakePHP</a>, <a href="http://framework.zend.com/" target="_blank">Zend Framework</a>, and <a href="http://www.symfony-project.com/" target="_blank">Symfony</a>, I did a lot more reading on these types of agile development packages.<br />
<br style="font-weight: bold" /><font style="font-weight: bold" size="4">Here are my conclusions on things at this point in time (01-17-2007):</font><br style="font-size: 24px" /><br style="font-size: 24px" /><span style="font-weight: bold; font-size: 24px">CakePHP</span>:  Had a great basic install and easy to implement first run of things.  I really liked being told what to do from the <a href="http://www.cakephp.org/" target="_blank">Cake</a> code itself.  Sorta like a wizard.  Getting into more advanced coding had me pulling my hair out though.  Mostly, the documentation was at fault &#8211; but not that it was all lacking.   I just thought it was sorta scattered and hard to follow.  Some tutorials I found helped a bit, but I was still left confused much of the time.<br style="font-size: 24px" /><br style="font-size: 24px" /><span style="font-weight: bold; font-size: 24px">Zend Framework</span>:  Where do I begin?  I had an icky feeling from the get-go with this thing.  First, I&#8217;ve been a little off put by <a href="http://www.zend.com/" target="_blank">Zend</a> for trying to commercialize something that has for so long been open-source&#8230; at least for the most part (PHP).  In my opinion, the problem with the <a href="http://framework.zend.com/" target="_blank">Zend Framework</a> is that it appears to be a half-hearted attempt at a framework.  It seems like it&#8217;s more like a collection of libraries than a true framework.  When I compare it to Cake and Symfony or even Ruby on Rails, it just doesn&#8217;t feel quite right.  There are lot&#8217;s of specific reasons I feel this way, but anyone&#8217;s attempt to convince me otherwise would simply be futile, heh.  I don&#8217;t think Zend would ever be the type of framework I would want to use on a daily basis (at least until they make some major revisions or enhance it a bit more).  <br style="font-size: 24px" /><br style="font-size: 24px" /><span style="font-weight: bold; font-size: 24px">Symfony</span>: If you hadn&#8217;t guessed it yet, <a href="http://www.symfony-project.com/" target="_blank">Symfony</a> was the winner in my book.  I saw a lot of true similarities here between it and my reference: Ruby on Rails.  Now, don&#8217;t get me wrong; it isn&#8217;t a straight-up clone of Rails, but the good parts are all there.  So what does this mean to me?  It means I get to use all the power of the Rails framework (albeit a tad different) without having to learn an entire new language (Ruby).  It&#8217;s the best of both worlds!<br style="font-size: 24px" /><br style="font-size: 24px" />So, if you are out there looking for a well-rounded and properly executed PHP web framework, be sure to check out <a href="http://www.symfony-project.com/" target="_blank">Symfony</a>.</p>
<p style="text-align: center"><span style="font-weight: bold">UPDATE: I have actually changed my mind!  Please read </span><a href="http://www.dustinweber.com/blog/_archives/2007/1/28/2691830.html" style="font-weight: bold">this</a><span style="font-weight: bold">, </span><a href="http://www.dustinweber.com/blog/_archives/2007/2/8/2720812.html" style="font-weight: bold">this</a><span style="font-weight: bold">, and </span><a href="http://www.dustinweber.com/blog/_archives/2007/2/22/2757853.html" style="font-weight: bold">this</a><span style="font-weight: bold">.</span><br style="font-size: 24px" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/the-best-php-framework-is-symfony-really-it/feed/</wfw:commentRss>
		<slash:comments>73</slash:comments>
		</item>
		<item>
		<title>Gmail Storage Capacity: Has It Stopped?</title>
		<link>http://www.dustinweber.com/main-page/gmail-storage-capacity-has-it-stopped/</link>
		<comments>http://www.dustinweber.com/main-page/gmail-storage-capacity-has-it-stopped/#comments</comments>
		<pubDate>Wed, 27 Dec 2006 01:53:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1229</guid>
		<description><![CDATA[According to Google Operating System:
&#8220;If you sign out of Gmail, you&#8217;ll notice that the storage doesn&#8217;t
increase. It used to increase with about 0.33 MB a day, but the Gmail
team forgot to add the code that manages the quota increase after 31st
December 2006.On April 1st 2005, Gmail space increased from 1
GB to 2 GB and started [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://dustinweber.com/wp-content/uploads/2007/06/google-gmail.gif" title="google-gmail.gif" alt="google-gmail.gif" align="left" />According to <a href="http://googlesystem.blogspot.com/2007/01/gmails-storage-capacity-stops.html" target="_blank">Google Operating System</a>:</p>
<p style="margin-left: 40px"><span style="font-style: italic">&#8220;If you sign out of Gmail, you&#8217;ll notice that the storage doesn&#8217;t<br />
increase. It used to increase with about 0.33 MB a day, but the Gmail<br />
team forgot to add the code that manages the quota increase after 31st<br />
December 2006.</span><br style="font-style: italic" /><br style="font-style: italic" /><span style="font-style: italic">On April 1st 2005, Gmail space increased from 1<br />
GB to 2 GB and started to grow every day. They called this: &#8220;Infinity+1<br />
storage plan&#8221;.</span><br style="font-style: italic" /><br style="font-style: italic" /><span style="font-style: italic">&#8216;Storage is an important part of email, but that<br />
doesn&#8217;t mean you should have to worry about it. To celebrate our<br />
one-year birthday, we&#8217;re giving everyone one more gigabyte. But why<br />
stop the party there? Our plan is to continue growing your storage<br />
beyond 2GBs by giving you more space as we are able.&#8217;&#8221;</span></p>
<p>Hmmm.  I always love that little counter sitting there counting on into the the future no matter what.  Sigh.  I hope it makes it back.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/gmail-storage-capacity-has-it-stopped/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ajax on Rails</title>
		<link>http://www.dustinweber.com/main-page/ajax-on-rails/</link>
		<comments>http://www.dustinweber.com/main-page/ajax-on-rails/#comments</comments>
		<pubDate>Sun, 03 Dec 2006 04:37:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1219</guid>
		<description><![CDATA[My &#39;good buddy&#39; Jim has been preaching to me about the benefits of Ruby on Rails for what seems like decades now.&#160; 
About a month ago, I finally broke down and really started plugging away with my &#8220;Agile Web Development With Rails&#8221; book (that I bought a few months ago).
I had skimmed through the book [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.rubyonrails.org/" target="_blank"><img style="width: 117px; height: 148px;" src="http://www.dustinweber.com/_photos/ruby-on-rails.jpg" align="left"></a>My &#39;good buddy&#39; <a href="http://jim.eponym.com" target="_blank">Jim</a> has been preaching to me about the benefits of <a href="http://www.rubyonrails.org/" target="_blank">Ruby on Rails</a> for what seems like decades now.&nbsp; </p>
<p>About a month ago, I finally broke down and really started plugging away with my &#8220;<a href="http://www.amazon.com/Agile-Development-Rails-Dave-Thomas/dp/0977616630/sr=8-1/qid=1165459639/ref=pd_bbs_sr_1/104-3293069-9668715?ie=UTF8&amp;s=books" target="_blank">Agile Web Development With Rails</a>&#8221; book (that I bought a few months ago).</p>
<p>I had skimmed through the book and created a few test projects prior to this, but this time I&#39;ve been really trying to take time and attempt to understand Rails in-depth.</p>
<p>I can say this thus far: WOW!&nbsp; It&#39;s pretty amazing and a bit of a change from my <a href="http://www.php.net" target="_blank">PHP</a> experience thus far.&nbsp; I especially like the powerfully tight integration of Ruby and <a href="http://en.wikipedia.org/wiki/Ajax" target="_blank">AJAX</a>.&nbsp; </p>
<p>If you are interested in Rails, I&#39;d pick up the book I mentioned earlier, it&#39;s worth it.&nbsp; If you&#39;d like to know a bit more about the tight integration and power of AJAX &amp; Rails, check out <a href="http://www-128.ibm.com/developerworks/java/library/j-cb12056/" target="_blank">this article</a> I stumbled across earlier today.</p>
<p>Excerpt: 
<div style="margin-left: 40px; font-style: italic;">The hype for Ajax, a technique for making Web pages more interactive,<br />
is in overdrive. The Ruby on Rails framework is also flourishing,<br />
partly on the strength of its excellent Ajax integration. Find out what<br />
makes Ajax on Rails such a powerful combination. &#8211;&gt; <a href="http://www-128.ibm.com/developerworks/java/library/j-cb12056/" target="_blank">Link</a></div>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/ajax-on-rails/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>This Weeks &quot;Struggle&quot;</title>
		<link>http://www.dustinweber.com/main-page/this-weeks-struggle/</link>
		<comments>http://www.dustinweber.com/main-page/this-weeks-struggle/#comments</comments>
		<pubDate>Mon, 06 Nov 2006 23:13:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS & HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1200</guid>
		<description><![CDATA[This week at work I&#39;ve been struggling with a relatively simple problem that is disturbingly difficult to solve (at least as a humble web developer like myself).
Basically, I need to generate a dynamic, database-driven, menu system that will allow me to make some highly complex (tree-like) decisions based on user decisions.&#160; Ok, stated out like [...]]]></description>
			<content:encoded><![CDATA[<p><img style="width: 136px; height: 96px;" src="http://www.dustinweber.com/_photos/question-mark15161.jpg" align="left">This week at work I&#39;ve been struggling with a relatively simple problem that is disturbingly difficult to solve (at least as a humble web developer like myself).</p>
<p>Basically, I need to generate a dynamic, database-driven, menu system that will allow me to make some highly complex (tree-like) decisions based on user decisions.&nbsp; Ok, stated out like that, it may seem to be a complex problem.. but it&#39;s not, I promise.</p>
<p>In more simple terms, I need a drop-down menu system that will allow a user to &#8220;drill-down&#8221; to the proper final output without having to click on twelve submit buttons and having a lot of constraints on what they can pick depending on what was chosen in the last drop-down.&nbsp;&nbsp; I&#39;m attempting to mix some <a href="http://Script.aculo.us" target="_blank">Script.aculo.us</a>, <a href="http://en.wikipedia.org/wiki/Ajax" target="_blank">AJAX</a>, and a <a href="http://pear.php.net/package/Tree" target="_blank">Pear tree</a> (a PHP plugin which was last updated on 3/17/03 as a beta).&nbsp; </p>
<p>Let me give a real world example of what I&#39;m trying to do.&nbsp; You can imagine my problem by thinking about how you would implement a car repair web site.&nbsp; If you wanted information about your 2002 Ford Mustang&#39;s automatic transmission: you would first pick &#8220;2002&#8243;, which would then fade in a new drop-down with all the valid 2002 car models&#8230; so then you pick &#8220;Ford&#8221;&#8230; which would then fade in another new drop-down with all of the valid 2002&nbsp;Ford models&#8230; now you pick Mustang&#8230; we get a new drop-down with the different 2002 Ford Mustang models&#8230; I think you get the idea.</p>
<p>The real problem is in doing this efficiently, elegantly, and enhancing the experience with a touch of <a href="http://script.aculo.us" target="_blank">Scriptaculous</a>.&nbsp; It&#39;s tougher than you might guess.&nbsp; I&#39;ll let you know how it ends up!</p>
<p><span style="font-style: italic;">A special note to <a href="http://jim.eponym.com" target="_blank">Jim</a>:</span> Yes, I know this problem might be easier solved in <a href="http://en.wikipedia.org/wiki/Ruby_on_rails" target="_blank">Rails</a>, but who says a challenge isn&#39;t fun?</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/this-weeks-struggle/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Weird Net Neutrality Video</title>
		<link>http://www.dustinweber.com/main-page/the-weird-net-neutrality-video/</link>
		<comments>http://www.dustinweber.com/main-page/the-weird-net-neutrality-video/#comments</comments>
		<pubDate>Fri, 18 Aug 2006 22:56:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Other Stuff]]></category>
		<category><![CDATA[Random Diversions]]></category>
		<category><![CDATA[Videos]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=1170</guid>
		<description><![CDATA[My mouth hung open for a bit after I watched this video (courtesy of wearetheweb.org)&#160; I mean, it&#39;s so honkin&#39; strange, that I was sorta caught off-guard.&#160; It takes quite a bit to surprise me lately, but this thing did.&#160; 
The issue at hand is net neutrality: &#8220;Net neutrality is the principle that Internet users
should [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.dustinweber.com/blog/_WebPages/FightingforNetNeutralityandInternetFreedom.html"><img style="width: 308px; height: 150px;" src="http://www.dustinweber.com/_photos/net-neutrality.JPG" align="left"></a>My mouth hung open for a bit after I watched <a href="http://www.dustinweber.com/blog/_WebPages/FightingforNetNeutralityandInternetFreedom.html">this video</a> (courtesy of <a href="http://www.wearetheweb.org" target="_blank">wearetheweb.org</a>)&nbsp; I mean, it&#39;s so honkin&#39; strange, that I was sorta caught off-guard.&nbsp; It takes quite a bit to surprise me lately, but this thing did.&nbsp; </p>
<p>The issue at hand is net neutrality: &#8220;Net neutrality is the principle that Internet users<br />
should be in control of what content they view and what applications<br />
they use on the Internet.&#8221;&nbsp; </p>
<p>It has the potential to seriously disrupt how the Internet operates and change the way the world views the web.</p>
<p><span style="font-style: italic;">So what&#39;s the purpose of the video?</span>&nbsp; You are the Internet.&nbsp; So are your friends.&nbsp; Show your support for Internet neutrality by passing along the link to this video here (or anywhere you see it).&nbsp; The more exposure this issue get&#39;s, the better.&nbsp; Remember, taking action can make a difference!&nbsp; Plus, the video is oddly entertaining.</p>
<p><span style="font-weight: bold;">It&#39;s a serious issue, so if you have a second, check it out by </span><a style="font-weight: bold;" href="http://www.dustinweber.com/blog/_WebPages/FightingforNetNeutralityandInternetFreedom.html">Clicking Here</a><span style="font-weight: bold;">.</span></p>
<p><font size="1">Tagged: <a href="http://technorati.com/tag/net+neutrality" rel="tag" class="techtag" target="_blank">Net Neutrality</a>, <a href="http://technorati.com/tag/wearetheweb.org" rel="tag" class="techtag" target="_blank">wearetheweb.org</a>, <a href="http://technorati.com/tag/internet+neutrality" rel="tag" class="techtag" target="_blank">Internet Neautrality</a>, <a href="http://technorati.com/tag/internet+freedom" rel="tag" class="techtag" target="_blank">Internet Freedom</a></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/the-weird-net-neutrality-video/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Web Site of the Week: Savetoby.com</title>
		<link>http://www.dustinweber.com/main-page/web-site-of-the-week-savetobycom/</link>
		<comments>http://www.dustinweber.com/main-page/web-site-of-the-week-savetobycom/#comments</comments>
		<pubDate>Tue, 21 Mar 2006 16:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Cool Stuff]]></category>
		<category><![CDATA[Main Page]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Random Diversions]]></category>

		<guid isPermaLink="false">http://dustinweber.com/?p=753</guid>
		<description><![CDATA[Now for an interlude of a delicously depraved, possibly disturbed, and creative man named James Mceahly.&#160; Savetoby.com is one product of this aspiring author.&#160; Essentially, James has put a somewhat cute bunny up for ransom.&#160; If he sells 100,000 copies of his book, Save Toby: Only you have the power to save toby, he will [...]]]></description>
			<content:encoded><![CDATA[<p>Now for an interlude of a delicously depraved, possibly disturbed, and creative man named<a href="http://savetoby.com" target="_blank"><img src="http://dustin.eponym.com/_photos/Savetoby.com%20-%20Only%20YOU%20have%20the%20power%20to%20Save%20Toby%211142472063421.thumb.png" align="left"></a> James Mceahly.&nbsp; <a href="http://savetoby.com" target="_blank">Savetoby.com</a> is one product of this aspiring author.&nbsp; Essentially, James has put a somewhat cute bunny up for ransom.&nbsp; If he sells 100,000 copies of his book, <a href="http://www.amazon.com/gp/product/0806527617/qid=1118020058/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-6932608-1481753?n=507846&amp;s=books&amp;v=glance" target="_blank"><span style="font-style: italic;">Save Toby: Only you have the power to save toby</span></a>, he will opt out of <span style="font-weight: bold;">eating</span> this cute bunny.&nbsp;&nbsp; I told you he was a little disturbed.</p>
<p>Personally, I think it&#39;s a hilarious scheme despite the outrage by many.&nbsp; My favorite part of the site is his <a href="http://savetoby.com/gallery/" target="_blank">Gallery</a> and <a href="http://savetoby.com/recipes/" target="_blank">Recipes</a> section placed precariously close to each other.&nbsp; The <a href="http://savetoby.com/gallery/" target="_blank">Gallery</a> section holds cute pictures of the rescued bunny while the <a href="http://savetoby.com/recipes/" target="_blank">Recipes</a> section has pictures of the bunny in cookware and a few delicous rabbit recipes.</p>
<p>Keep an open mind and laugh, <a href="http://savetoby.com/" target="_blank">Click Here</a> to see the site!</p>
<p><font size="1">Tagged: <a href="http://technorati.com/tag/savetoby" rel="tag" target="_blank">savetoby</a></font></p>
]]></content:encoded>
			<wfw:commentRss>http://www.dustinweber.com/main-page/web-site-of-the-week-savetobycom/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
