<?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>Meta Beta Geek</title>
	<atom:link href="http://metabetageek.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://metabetageek.com</link>
	<description>Where the Head Meets the Body</description>
	<lastBuildDate>Wed, 25 Apr 2012 01:19:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>MGB Scaffolder Version 2.1.3 Released</title>
		<link>http://metabetageek.com/2011/09/22/mgb-scaffolder-version-2-1-3-released/</link>
		<comments>http://metabetageek.com/2011/09/22/mgb-scaffolder-version-2-1-3-released/#comments</comments>
		<pubDate>Fri, 23 Sep 2011 00:19:33 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=188</guid>
		<description><![CDATA[It&#8217;s been a few months since the last release of MBG Scaffolder as I&#8217;ve had other ongoing projects and distractions. There have been several more updates behind the scenes in this latest release to include a few bug fixes as well. One of the biggest additions to the 2.1.3 release is that internal linking between [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a few months since the last release of MBG Scaffolder as I&#8217;ve had other ongoing projects and distractions. There have been several more updates behind the scenes in this latest release to include a few bug fixes as well. One of the biggest additions to the 2.1.3 release is that internal linking between tables is now supported. This means that a record id that references a value from a separate look-up table will now show up as a link if auto-joining is enabled. This allows you to easily jump into a reference record to make changes if required. The addition of this feature caused a temporary sorting bug that has also now been fixed in this version. As usual, you can download the latest release using the link below.</p>
<p><a href="http://www.metabetageek.com/software/" target="_self">Download the latest release here!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2011/09/22/mgb-scaffolder-version-2-1-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MBG Scaffolder 2.1.0 Now Available</title>
		<link>http://metabetageek.com/2010/11/26/mbg-scaffolder-2-1-0-now-available/</link>
		<comments>http://metabetageek.com/2010/11/26/mbg-scaffolder-2-1-0-now-available/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 00:58:16 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=178</guid>
		<description><![CDATA[Even though the last release was less than a week ago, I&#8217;ve been using MBG Scaffolder recently on another project and I discovered a few things that were lacking. The Insert Plus feature allows users to duplicate data from a record insertion and use that data to repopulate a new set of form fields. This [...]]]></description>
			<content:encoded><![CDATA[<p>Even though the last release was less than a week ago, I&#8217;ve been using MBG Scaffolder recently on another project and I discovered a few things that were lacking. The Insert Plus feature allows users to duplicate data from a record insertion and use that data to repopulate a new set of form fields. This is a very handy feature if you want to insert multiple records where the majority of the fields have the same value. But I recently found that this wasn&#8217;t enough.</p>
<p>My current project had me wanting the option to duplicate data for an existing record (vs. a new record). So the 2.1.0 release now includes a Record Duplication feature that makes this possible. Just click the pencil icon to modify the record you wish to duplicate and click the &#8220;copy&#8221; button at the bottom of the form. This will automatically generate a new record creation form with all the fields pre-populated with the previous record&#8217;s data.</p>
<p>There were also a few minor bugs that I discovered from several releases ago that have now been fixed in this latest release.</p>
<ul>
<li>Fixed a bug where users were returned to page one of the results, regardless of where the original record was listed (page two or higher)</li>
<li>Fixed a bug that wouldn&#8217;t allow users to deselect all options under Advanced &gt; SQL Field Select in order to show all fields again</li>
<li>Fixed a bug where multi-select form fields were not pre-populated after an Insert Plus or a Record Copy</li>
</ul>
<p>Also, SQL queries are no longer displayed by default. I found this to be a bit annoying when using the utility for longer sessions since some of the queries were long and I was forced to scroll down after after update. So I set this option to disabled by default so it doesn&#8217;t display after a session reset. It can easily be re-enabled under the Options tab though if you prefer.</p>
<p><a href="http://metabetageek.com/software/" target="_self">Download the latest release here!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2010/11/26/mbg-scaffolder-2-1-0-now-available/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>MBG Scaffolder 2.0.9 Released</title>
		<link>http://metabetageek.com/2010/11/23/mbg-scaffolder-2-0-9-released/</link>
		<comments>http://metabetageek.com/2010/11/23/mbg-scaffolder-2-0-9-released/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 04:19:05 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=174</guid>
		<description><![CDATA[This is just a quick update to let everyone know that a new version of MBG Scaffolder is available for download. There are no major feature updates in this release, but there were a few languishing bugs that I felt the need to address. Some of the changes included: End Users: Datetime fields no longer [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick update to let everyone know that a new version of MBG Scaffolder is available for download. There are no major feature updates in this release, but there were a few languishing bugs that I felt the need to address. Some of the changes included:</p>
<p>End Users:</p>
<ul>
<li>Datetime fields no longer auto-populate with today&#8217;s date if set to allow nulls in the database</li>
<li>Datetime fields that do not allow nulls will still auto-populate with existing data or today&#8217;s date</li>
<li>Datetime fields that do not allow nulls will require a valid date prior to form submission</li>
<li>Calendar pop-up for datetime fields now has a &#8220;clear&#8221; button so that existing dates can be removed from a field</li>
<li>Empty datetime fields that allow nulls will automatically insert a null in that field when the form is submitted</li>
<li>Read-only table parameter is now set to blank in downloadable version.</li>
<li>Prior versions contained multiple table names that may have resulted in access denied errors if local table names were the same.</li>
</ul>
<p>Developers Only:</p>
<ul>
<li>Updated build file to include help documentation and procedural guidance.</li>
<li>Updated call status file so end users will be properly notified when a new release is available.</li>
<li>Moved the features list, blocked files list and general help docs from flat files into database for speedier retrieval during builds.</li>
<li>Compiled multiple classes into a single bundled class file to help reduce file count and locate individual classes more quickly.</li>
<li>Began work on minimized code base for release that just contains just the bare essential PHP classes with no HTML added.</li>
<li>Added a function to maxify existing minified releases if end users need to make changes (not yet released).</li>
</ul>
<p>Well that&#8217;s about it for now. Check out the <a href="http://metabetageek.com/software/" target="_self">latest version here</a>. As always, please let me know if you notice any new bugs or problems with the code.</p>
<p>Happy CRUDding!</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2010/11/23/mbg-scaffolder-2-0-9-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Password Meter Version 2.0 Now Available</title>
		<link>http://metabetageek.com/2010/05/19/password-meter-version-2-0-now-available/</link>
		<comments>http://metabetageek.com/2010/05/19/password-meter-version-2-0-now-available/#comments</comments>
		<pubDate>Wed, 19 May 2010 11:27:37 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[password algorithm]]></category>
		<category><![CDATA[password calculator]]></category>
		<category><![CDATA[password checker]]></category>
		<category><![CDATA[password meter]]></category>
		<category><![CDATA[password strength]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=164</guid>
		<description><![CDATA[For those of you who might have missed my previous entry and the history behind passwordmeter.com, feel free to read about it here. For the rest of you, you&#8217;ll be happy to know that I finally got around to adjusting the algorithms in the Password Meter script. My original update was to be a single [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://metabetageek.com/wp-content/uploads/2009/12/password_meter.jpg" rel="lightbox[164]"><img class="alignleft size-thumbnail wp-image-71" title="Password Meter" src="http://metabetageek.com/wp-content/uploads/2009/12/password_meter-150x150.jpg" alt="Password Meter" width="150" height="150" /></a>For those of you who might have missed my previous entry and the history behind <a href="http://www.passwordmeter.com" target="_blank">passwordmeter.com</a>, feel free to <a href="http://metabetageek.com/2009/12/25/password-meter-a-weekend-project-revised/" target="_self">read about it here</a>. For the rest of you, you&#8217;ll be happy to know that I finally got around to adjusting the algorithms in the Password Meter script. My original update was to be a single html page with javascript, css and even images embedded. This would have made it really easy to download and deploy in virtually any environment. However, due to a lack of support for base64 image conversion in earlier versions of Internet Explorer, I was forced to include a separate directory for images. Since I had to create a separate directory for images, I opted to extract the Javascript and CSS code as well, and place each into its own respective directory. So the final download is actually a zip file that contains the main page and all supporting scripts, images and stylesheets, plus a copy of the GPL license.</p>
<p>In addition to generally cleaning up the code a bit and adding penalties for repeat symbols, the main update to the script was done to alter the method used to calculate deductions for repeat characters. This has been an issue since version 1.03 was deployed and was never addressed until now. I originally used an exponential formula to penalize users for adding the same character more than once to their password. As the number of identical characters increased, the penalty became more and more severe &#8211; to the point where users would end up with a score of zero, despite having a reasonably difficult password. I realized the flaw shortly after I deployed it but never got around to fixing it due to other projects getting in the way.</p>
<p>In the latest version, repeat characters are still penalized. But the formula is now based on proximity to other identical characters where further distance means less deduction. I also accounted for the total number of unique characters and weighed that number into the calculation as well. So if you have a 12 character password that consists entirely of unique alpha-numerics and symbols, then add a string of 14 &#8220;x&#8221;s to the end, the deduction penalty for the repeat characters is significantly reduced. Being that the password meter utility is run entirely on the client side, I&#8217;m still limited to the tools that Javascript can provide, so it&#8217;s still not quite as accurate as I&#8217;d like it to be. But this new version should be a lot more accurate than the previous releases in terms of applied penalties and total score calculation.</p>
<p>I am planning to rebuild the passwordmeter.com site some time in the next week or so. Nothing major is planned but I need to revamp it a bit to support the new code base as well as the ability to add new blog entries that are specific to the password meter code. The download link will also be changed so that it points back to the software repository here at Meta Beta Geek. In the mean time, while you&#8217;re waiting for the passwordmeter.com site to be updated, you can either <a href="http://metabetageek.com/lib/js/pwdmeter/2.0/pwdmeter.htm" target="_self">play with the demo site</a>, or <a href="http://metabetageek.com/software/" target="_self">download the code directly</a>. For downloading, just select the &#8220;MBG PWDMeter Package&#8221; from the software list. Please let me know if you notice any glaring bugs or issues with the new 2.0 release.</p>
<p><strong>UPDATE:</strong></p>
<p>The scripts and links at passwordmeter.com have now been updated.</p>
<p>Cheers,</p>
<p>Jeff @ Meta Beta Geek</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2010/05/19/password-meter-version-2-0-now-available/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>Learning MySQL: Find In Set and Bulk Insert Options</title>
		<link>http://metabetageek.com/2010/02/04/learning-mysql-find-in-set-and-bulk-insert-options/</link>
		<comments>http://metabetageek.com/2010/02/04/learning-mysql-find-in-set-and-bulk-insert-options/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 13:29:13 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[bulk insert]]></category>
		<category><![CDATA[find in set]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=149</guid>
		<description><![CDATA[With a number of different data-driven projects on my plate both at home and at work, I find myself ever more impressed with the built-in abilities of MySQL.  Like many open source software products, it&#8217;s available at no cost as long as it&#8217;s used under the guidelines of the provided OS license.  But MySQL has [...]]]></description>
			<content:encoded><![CDATA[<p>With a number of different data-driven projects on my plate both at home and at work, I find myself ever more impressed with the built-in abilities of MySQL.  Like many open source software products, it&#8217;s available at no cost as long as it&#8217;s used under the guidelines of the provided OS license.  But MySQL has proven again and again that it&#8217;s no ordinary piece of OS software.  Where other database software companies are charging hundreds or thousands of dollars for licensing fees, MySQL continues to offer enterprise-level features and performance without the typically-associated costs.</p>
<p>I&#8217;m a bit of a newcomer to MySQL, I&#8217;ll admit.  I only jumped aboard the PHP-MySQL ship some three years back.  Since that time, the speed and depth of my learning has varied from day to day.  Much of what I learn is based on the particular requirements of the project at hand.  The more demanding and intricate the project, the more digging I&#8217;m forced to do.  Not to sound to &#8220;self-help-ish&#8221;, but the end result of this process is typically a better, more knowledgeable me.  Some of the oddest requests in the past have actually turned out to be some of the coolest features in an app.  And I&#8217;m learning more in the process so it&#8217;s really a win-win.</p>
<p>In a never-ending effort to improve the &#8220;product&#8221;, I am always seeking new knowledge.  From a purely logical standpoint, the more I know, the better the application should, in turn, operate and perform.  As an example, recent changes to my <a href="http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/" target="_self">Scaffolder utility</a> resulted in a highly-improved product and some cool new tools for my coding arsenal.  A coworker of mine recently pointed out the possibility of performing multiple record inserts using a single SQL statement.  Although the concept seemed like a good one, I&#8217;d always assumed this was not possible.  As it turns out, MySQL has built-in support for this very feature.  Some brief testing resulted in a startling revelation: the performance difference between inserting 1000 records as separate queries versus a single query string was absolutely amazing!</p>
<p>For those of you who are unfamiliar with this built-in capability, I highly recommend reading up on it and then immediately converting any of your bulk insert queries to use this new format.  The basic gist from the MySQL site is as follows:</p>
<blockquote><p><code>INSERT</code> statements that use <code>VALUES</code> syntax can insert multiple rows. To do this, include multiple lists of column values, each enclosed within parentheses and separated by commas. The values list for each row must be enclosed within parentheses.  Example:</p>
<pre>INSERT INTO <em><code>tbl_name</code></em> (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9)</pre>
</blockquote>
<p>Another little tip I recently picked up was the <code>FIND_IN_SET</code> option.  This built-in function allows you to search and match a comma-separated string of values (saved within a database field) for one particular value.  Up &#8217;til now, I had relied on the following alternative, but much more complicated, syntax:</p>
<blockquote>
<pre><code><em>field</em> REGEXP CONCAT('(^|,)(',REPLACE(<em>value</em>,',','|'),')($|,)')</code></pre>
</blockquote>
<p><code>FIND_IN_SET</code> accomplishes the exact same thing without the overly-bloated syntax and unnecessary conversions/operations. The above statement can easily be converted to use <code>FIND_IN_SET</code> in the following manner:</p>
<blockquote><p><code>FIND_IN_SET(<em>value</em>,<em>field</em>)</code></p></blockquote>
<p>I don&#8217;t have the tools required to determine whether there is a significant difference in performance between these two methods. But based on what I&#8217;ve heard about MySQL&#8217;s <code>REGEXP</code> capabilities, combined with the reduction in syntax and operations, I&#8217;m assuming the latter option will result in a speedier delivery.  I did test the difference between multiple individual insert statements and a single bulk insert statement and the performance difference was night and day.  Where a large amount of inserts are required, the single, bulk insert statement will reduce performance overhead tremendously, saving developers and end users a lot of time.</p>
<p>There&#8217;s not a whole lot more detail on either of these two options but if you&#8217;re interested in viewing the documentation direct from the source you can read about these options using the following links:</p>
<blockquote><p><a href="http://dev.mysql.com/doc/refman/5.1/en/insert.html" target="_blank">MySQL&#8217;s BULK INSERT</a><br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set" target="_blank">MySQL&#8217;s FIND_IN_SET</a></p></blockquote>
<p>Since learning of these new options, the <a href="http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/" target="_self">Scaffolder project</a> has been updated accordingly, incorporating both of these options into its source code.  The performance of the Bulk Insert option within Scaffolder is now significantly improved. Testing showed that 10,000 random and data-type specific records could be inserted in roughly 40 seconds flat. And those tests were run on a development desktop platform. Server performance would undoubtedly be even better.</p>
<p>I guess my lesson here is that there&#8217;s never a point where we stop learning. My projects provide me with a guide and driver that takes me to new places each and every day. And I sincerely hope the newness never goes away. I love a challenge and constantly learning something new. I&#8217;ve given up on the idea of &#8220;catching up&#8221; with the existing development community. I realize now that this process is constantly evolving and will never really reach a stopping point.  I guess that&#8217;s what makes it so much fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2010/02/04/learning-mysql-find-in-set-and-bulk-insert-options/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MBG Scaffolder: Now Offering Thumbnail Generation On-The-Fly</title>
		<link>http://metabetageek.com/2010/01/04/mbg-scaffolder-now-offering-thumbnail-generation-on-the-fly/</link>
		<comments>http://metabetageek.com/2010/01/04/mbg-scaffolder-now-offering-thumbnail-generation-on-the-fly/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 15:37:51 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[thumb]]></category>
		<category><![CDATA[thumbnail]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=143</guid>
		<description><![CDATA[This is just a quick note for all the MBG Scaffolder users.  Version 2.0.6 has just been released with a variety of bug fixes and updates.  But the most prominent feature now available is the option of generating image thumbnails during file uploads.  I had planned to add this option in at some distant point [...]]]></description>
			<content:encoded><![CDATA[<p>This is just a quick note for all the MBG Scaffolder users.  Version 2.0.6 has just been released with a variety of bug fixes and updates.  But the most prominent feature now available is the option of generating image thumbnails during file uploads.  I had planned to add this option in at some distant point in the future.  But the upgrade happened sooner than later because I required this feature for another project I&#8217;m working on at the moment.  So as users, you can just sit back and reap the rewards!</p>
<p>I still have to update the help documentation and the feature list but using the thumbnail generator is pretty simple.  There&#8217;s a new option available under the Files tab now with a list of image sizes from which to select.  Currently, you can choose up to 12 different options ranging from 75&#215;75 pixels to 1600&#215;1200 pixels.  I guess the larger images are technically not thumbnails but you get the idea.  If nothing is selected from this list, no thumbnails are created.  Removing an uploaded file from an existing record will automatically remove any related thumbnails too, making it super simple to use this feature.</p>
<p>If you still don&#8217;t know what MBG Scaffolder is all about, check out the <a href="http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/" target="_blank">introductory post</a> for all the details.  If you just want the latest version available, you can <a href="http://metabetageek.com/software/" target="_blank">download it here</a>.  Again thanks for testing and all the constructive feedback.  Every bit helps me to improve the end product.</p>
<p>Cheers,</p>
<p>Jeff @ Meta Beta Geek</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2010/01/04/mbg-scaffolder-now-offering-thumbnail-generation-on-the-fly/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>PHP Best Practices: Resources for Coding Standards</title>
		<link>http://metabetageek.com/2010/01/01/php-best-practices-resources-for-coding-standards/</link>
		<comments>http://metabetageek.com/2010/01/01/php-best-practices-resources-for-coding-standards/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 17:12:27 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[commenting]]></category>
		<category><![CDATA[javadocs]]></category>
		<category><![CDATA[phpdocumentor]]></category>
		<category><![CDATA[standards]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=126</guid>
		<description><![CDATA[Having worked within a variety of different programming languages, I realize that there are obvious syntactic differences from one language to the next.  By the variance is not just with syntax.  Standards for variable and function declaration differ quite a bit as well.  Even within a single language, opinions vary as to which standards are [...]]]></description>
			<content:encoded><![CDATA[<p>Having worked within a variety of different programming languages, I realize that there are obvious syntactic differences from one language to the next.  By the variance is not just with syntax.  Standards for variable and function declaration differ quite a bit as well.  Even within a single language, opinions vary as to which standards are considered best practice.  Since I have every intention of releasing my code to the open source community, I&#8217;d like to develop a standard coding format that conforms as much to the normal standards as possible.</p>
<p>My second official release is a PHP-MySQL scaffolding utility known as <a href="http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/" target="_blank">MBG Scaffolder</a>.  The <a href="http://metabetageek.com/2009/12/28/mbg-scaffolder-open-source-now-available-for-download/" target="_blank">downloadable version</a> of this software consists of a single file where all comments and excess white space have been removed.  This assists end-users because the download size is smaller and the utility takes less time to load when in use.  The obvious disadvantage to this format is that it&#8217;s not entirely user-friendly and certainly doesn&#8217;t lend itself to future development by outside programmers.  So the next step in this process is to release a non-minified version of the code with white space and full comments intact.</p>
<p>The current MBG Scaffolder package does include end-user help documentation.  These docs are designed to assist users with learning the ins and outs of the web interface only.  End users are typically not concerned with how back-end code works, only that it does so without errors.  But the current release of this package is decidedly lacking in useable developer documentation.  I hope to remedy this in future releases to make it easier for other developers to utilize this package and even recommend changes to help grow and improve the code base.</p>
<p>With that in mind, I&#8217;m interested to know if there&#8217;s a single resource available (hard copy or online), that outlines universal coding standards for PHP developers.  I&#8217;m putting this out to the rest of the development community in hopes of getting some useful feedback.  My specific focus at the moment is on comments within my code since I&#8217;m trying to assist developers as much as possible.  From my brief research, it seems that many developers follow the JavaDocs example for commenting.  But is the norm for the majority of developers?  If not, what are some other recommended styles for commenting within PHP?</p>
<p><strong>UPDATE:</strong></p>
<p>In my brief research I came across several good resources that may assist other PHP developers out there.  On the PHP.net site, under the Pear Manual, there is a great <a href="http://pear.php.net/manual/en/standards.sample.php" target="_blank">document that outlines sample comments</a> that they recommend for all PHP code.  As I noted previously, these standards are based on JavaDocs standards with only a few exceptions.  I discovered <a href="http://www.dagbladet.no/development/phpcodingstandard/" target="_blank">another well-versed set of standards</a> written by Fredrik Kristiansen of DB MediaLab in Norway.  His version appears to be a PHP-based translation of standards based on Todd Hoff&#8217;s C++ coding standards.  Another possible resource for developers is the <a href="http://framework.zend.com/wiki/display/ZFDEV/PHP+Coding+Standard+(draft)" target="_blank">standards written for working within the Zend PHP framework</a>.  However, these docs appear to be somewhat Zend-specific and are a bit more stringent in what is and is not considered acceptable.  But as a loose guide it might prove useful.</p>
<p>Sticking with the first resource under the Pear manual, PHP offers a piece of software that will automatically parse your source code and effectively output a working manual based on the comments within the code.  The format for comments must comply with pre-established standards though so this won&#8217;t work with just any code.  The software is known as <a href="http://www.phpdoc.org/" target="_blank">phpDocumentor</a> and is available for free to any developers who wish to use it.  There are probably other good resources for coding practices to be found.  These are just a few of the ones I discovered that seemed to conform to the standards I&#8217;ve seen in the past.  Feel free to leave feedback on other good resources if you know of any others.</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2010/01/01/php-best-practices-resources-for-coding-standards/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MBG Scaffolder: Open Source Now Available For Download</title>
		<link>http://metabetageek.com/2009/12/28/mbg-scaffolder-open-source-now-available-for-download/</link>
		<comments>http://metabetageek.com/2009/12/28/mbg-scaffolder-open-source-now-available-for-download/#comments</comments>
		<pubDate>Tue, 29 Dec 2009 04:28:30 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=101</guid>
		<description><![CDATA[If you haven&#8217;t already heard, I finally got around to tweaking the MBG Scaffolder code enough that I felt it was ready for beta release.  The MBG Scaffolder package has now been officially released under GNU&#8217;s general public license.  For those unfamiliar with the MBG Scaffolder project, please check out my previous post for download [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://metabetageek.com/wp-content/uploads/2009/12/open_source.jpg" rel="lightbox[101]"><img class="alignleft size-thumbnail wp-image-105" title="Open Source" src="http://metabetageek.com/wp-content/uploads/2009/12/open_source-150x150.jpg" alt="Open Source" width="150" height="150" /></a>If you haven&#8217;t already heard, I finally got around to tweaking the MBG Scaffolder code enough that I felt it was ready for beta release.  The MBG Scaffolder package has now been officially released under GNU&#8217;s general public license.  For those unfamiliar with the MBG Scaffolder project, please check out my <a href="http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/" target="_blank">previous post</a> for download and demo links, as well as a complete list of features available.</p>
<p>For this particular project, I opted to make the code available under open source licenses because I&#8217;m a big believer in open source software and I really feel this project has something to offer.  Hopefully the latter becomes reality and someone else can finally benefit from my efforts, like I have from others all these years.  With the exception of <a href="http://metabetageek.com/2009/12/25/password-meter-a-weekend-project-revised/" target="_blank">Password Meter</a>, the MBG Scaffolder package is the first major piece of code I&#8217;ve released under the GPL.  But I certainly don&#8217;t plan for it to be the last.  I have several other PHP classes, as well as a Javascript or two that I hope to make available under GPL as well.</p>
<p>In my opinion, open source projects are a huge benefit to developers because they get the code out there for others to use and review.  This process lends itself quite nicely to project expansion through other developers and community feedback.  Typically, the more popular a project is, the better the code and feature-set because there&#8217;s a genuine interest in maintaining and maturing the final product.  I realize that most people these days are looking to make money whenever possible, but I honestly wish more companies would look into releasing their code under OS licensing.  To me, it seems like a win-win situation.</p>
<p>To answer a lingering questions, some of you may be wondering why I&#8217;ve built yet another PHP-MySQL scaffolding tool.  I found a few other scaffolding utilities out there that did some of what I needed, but most of these other apps weren&#8217;t very intuitive and required a lot of modifications to the back-end database to make them work correctly.  The MBG Scaffolder was designed with minimal requirements in mind.</p>
<p>With few exceptions, the MBG Scaffolder utility is fully configured and ready to go.  Drop it in a web-accessible directory and using the proper credentials, you can easily access any MySQL database server using a fully qualified domain name.  It&#8217;s just that easy.  The only real requirements come in the form of PHP and MySQL version support and some minor table comments to support advanced joining options.  The following is a rough gist of MBG Scaffolder&#8217;s abilities:</p>
<div style="margin-left: 40px;"><em>&#8220;MBG Scaffolder is a robust and intuitive PHP-MySQL database scaffolding utility with virtually zero database requirements. It offers auto-joining for referential look-up tables as well as enum, set, and boolean field types, and even supports referential look-ups on fields that contain comma-separated values. This package features insert plus one for similar records, bulk record inserts up to 1000 records at a time as well as a built-in query-based data exporting utility, server- and client-side validation, error and warning reports, and unlimited file uploads. Building queries is a snap thanks to a custom query generator with individual field selection and unlimited where clauses, as well as SQL syntax highlighting, data-type matching, paging, sorting and much, much more.&#8221;</em></div>
<p>It&#8217;s pretty easy to talk up my own product though, so I&#8217;m looking for testers and feedback to make the MBG Scaffolder even better.  My testing has been pretty limited so far so I&#8217;m looking for more worldly feedback based on database parameters outside of my own controlled environment.  Quite a few updates were included in the last push so there&#8217;s still a possibility of some bugs.  But I did my best to eliminate any issues I came across.</p>
<p>Please feel free <a href="http://metabetageek.com/software/">download the package</a> and give it a try and let me know what you think.  If you don&#8217;t have access to a PHP-enabled web server, check out the <a href="http://metabetageek.com/lib/php/scaffolder/2.0/">demo site</a> to get a feel for MBG Scaffolder&#8217;s abilities.  The only feature that&#8217;s missing on the demo is the file uploading.  I&#8217;ve blocked this for security reasons.  But file uploads are fully enabled in the download-able release.  Don&#8217;t forget to pass this on to anyone you know that may have need for a PHP-MySQL scaffolding utility.</p>
<p>Thanks in advance and have fun!</p>
<p>Jeff @ Meta Beta Geek</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2009/12/28/mbg-scaffolder-open-source-now-available-for-download/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Password Meter: A Weekend Project Revised</title>
		<link>http://metabetageek.com/2009/12/25/password-meter-a-weekend-project-revised/</link>
		<comments>http://metabetageek.com/2009/12/25/password-meter-a-weekend-project-revised/#comments</comments>
		<pubDate>Fri, 25 Dec 2009 17:20:13 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[password]]></category>
		<category><![CDATA[password algorithm]]></category>
		<category><![CDATA[password calculator]]></category>
		<category><![CDATA[password checker]]></category>
		<category><![CDATA[password meter]]></category>
		<category><![CDATA[password strength]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=67</guid>
		<description><![CDATA[The latest revision of MBG Scaffolder (v2.0.5) has now been pushed to production and for the moment I have no plans for any additional major updates.  So while I&#8217;m sorting out licensing issues and preparing the MBG Scaffolder code for public release, I&#8217;m reviewing some of my other projects to determine what&#8217;s next on my [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://metabetageek.com/wp-content/uploads/2009/12/password_meter.jpg" rel="lightbox[67]"><img class="size-thumbnail wp-image-71 alignleft" title="Password Meter" src="http://metabetageek.com/wp-content/uploads/2009/12/password_meter-150x150.jpg" alt="Password Meter" width="150" height="150" /></a>The latest revision of <a href="http://metabetageek.com/lib/php/scaffolder/2.0/" target="_self">MBG Scaffolder</a> (v2.0.5) has now been pushed to production and for the moment I have no plans for any additional major updates.  So while I&#8217;m sorting out licensing issues and preparing the MBG Scaffolder code for public release, I&#8217;m reviewing some of my other projects to determine what&#8217;s next on my list of priorities.  There are a number of PHP and Javascript pieces in particular that come to mind, but most of these are fairly recent and don&#8217;t require a huge amount of changes prior to release.  So I started digging through my code archives to see if any older pieces were due for a review.</p>
<p>One of my earlier works, a piece of code written over two years ago, still manages to generate quite a lot of Internet traffic.  <a href="http://www.passwordmeter.com/" target="_blank">Password Meter</a> is a Javascript project that I literally sat down and wrote in a single weekend.  At that time, it was designed as nothing more than a fun piece of code for users to play with and explore.  I never imagined that it would become as popular a resource as it has, achieving over a thousand hits per day at its current location, <a href="http://www.passwordmeter.com/" target="_blank">www.passwordmeter.com</a>.  The program was designed to rate a user&#8217;s password and provide instantaneous visual feedback related to the password&#8217;s strength in terms of crackability.</p>
<p>Since the Password Meter code was initially released under general public license (GPL), I have received quite a lot of feedback related to the internal algorithms used to calculate password strength.  I&#8217;ve been aware for quite some time now that this portion of the code is in need of a revamp.  I simply haven&#8217;t had the time or energy to deal with it.  So the code has remained largely unchanged since its initial release, an issue I hope to remedy in the near future.</p>
<p>In terms of project scope, the Password Meter script itself is not terribly long, so I don&#8217;t expect the re-write to take an overly long time.  But I also tend to get rather entrenched in projects like this, so the end result may be quite a bit more complicated than the first release.  For the sake of keeping things simple though, my current plan is to fix the major issues and re-release the code as a new revision. For the time being, even though Meta Beta Geek was intended to track all my coding projects, the source code for Password Meter will remain at its current location.  Any future revisions or modifications to the code will most likely be referenced and tracked here at Meta Beta Geek.</p>
<p>That&#8217;s it for updates at the moment.  Stay tuned for a new release of Password Meter very soon, and don&#8217;t forget to leave a comment or two if you have suggestions for code or site improvements.  Happy Holidays to you and yours!</p>
<p><strong>UPDATE: </strong></p>
<p>Password Meter version 2.0 is <a href="http://metabetageek.com/2010/05/19/password-meter-version-2-0-now-available/" target="_self">now available for demo or download</a>.<a href="http://metabetageek.com/2010/05/19/password-meter-version-2-0-now-available/" target="_self"><br />
</a></p>
<p>Cheers,</p>
<p>Jeff @ Meta Beta Geek</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2009/12/25/password-meter-a-weekend-project-revised/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MBG Scaffolder: Everything You&#8217;ve Ever Wanted in a PHP Scaffolding Package</title>
		<link>http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/</link>
		<comments>http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 13:29:56 +0000</pubDate>
		<dc:creator>Jeff</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://metabetageek.com/?p=26</guid>
		<description><![CDATA[The MBG Scaffolder package is an open source PHP scaffolding utility designed and modeled (loosely) after the Ruby On Rails scaffolding concept.  Born out of necessity, MBG Scaffolder provided a front-end web interface for quickly manipulating data within MySQL databases.  The first iteration covered the basics, allowing record creation, retrieval, updating and deletion.  It also [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-thumbnail wp-image-42 alignleft" title="stag-scaffolding" src="http://metabetageek.com/wp-content/uploads/2009/12/stag-scaffolding-150x150.jpg" alt="stag-scaffolding" width="150" height="150" />The <a href="http://metabetageek.com/lib/php/scaffolder/2.0/" target="_blank">MBG Scaffolder</a> package is an open source PHP scaffolding utility designed and modeled (loosely) after the Ruby On Rails scaffolding concept.  Born out of necessity, MBG Scaffolder provided a front-end web interface for quickly manipulating data within MySQL databases.  The first iteration covered the basics, allowing record creation, retrieval, updating and deletion.  It also allowed for automatic table joins using referential rules within the database.  But it was still pretty limited.</p>
<p>About a month ago, MBG Scaffolder underwent a major revamp, gaining a whole lot of additional features in the process.  Effectively reborn, the second iteration of this package exists entirely in a single, mini-fied file of less than 200 kilobytes.  Using MBG Scaffolder is as easy as placing the file in any web-accessible directory and loading the page from a web browser.  The package is written using PHP and Javascript so the web server must have built-in support for PHP (version 5.x or higher) and the client must have Javascript enabled.  Other than that, there are virtually no other dependencies.</p>
<p>For those who are new to the MBG Scaffolder package, consider the following:</p>
<p>Have you ever wanted to join a field containing comma-separated values (record ids) to the records that correspond to those values in a lookup table?  Known as a <a href="../lib/php/scaffolder/2.0/?pid=help#ajc" target="_blank">CSV field type</a>, the option to join lookup tables with comma-separated values is now available, but only using MBG Scaffolder.  Want the ability to control input based on a pre-established list of values from an Enum field type?   New drop list options for all <a href="../lib/php/scaffolder/2.0/?pid=help#ajl" target="_blank">lookup tables</a>, as well as <a href="../lib/php/scaffolder/2.0/?pid=help#aje" target="_blank">Enum</a> and <a href="../lib/php/scaffolder/2.0/?pid=help#ajs" target="_blank">Set</a> field types are now available, providing users with a friendly list of pre-validated options.  Need to test database performance on a large scale but lack the necessary data?  The new <a href="../lib/php/scaffolder/2.0/?pid=help#bin" target="_blank">Bulk Insert feature</a> gives developers the ability to insert anywhere from 5 to 10,000 random and data-type specific records in mere seconds.  Tired of filling out the same form field information for dozens of records?  Using the MBG Scaffolder&#8217;s <a href="../lib/php/scaffolder/2.0/?pid=help#inp" target="_blank">Insert Plus One</a> option means you only fill the form out one time for as many records as you need.  Check out the complete list of new features (below) for more details.</p>
<p>In case you missed it, the MBG Scaffolder package also includes built-in <a href="http://metabetageek.com/lib/php/scaffolder/2.0/?pid=help" target="_blank">help documentation</a>.  I tried to make using the class as intuitive as possible, but I also realize that there may be questions regarding specific features.  If you run into any problems, feel free to leave me feedback using the Comment form, or check for answers within the help docs themselves.  And don&#8217;t forget that a good number of the front-end features, such as field labels, buttons, and even some of the more commonly seen errors, offer built-in help links to assist users in getting started.  So if you&#8217;re dumbstruck by a particular feature, try looking for a helpful link nearby.</p>
<p>The MBG Scaffolder package is now fully <a href="http://metabetageek.com/software/">available for download here</a>.  You can also <a href="http://metabetageek.com/lib/php/scaffolder/2.0/" target="_blank">test out a live demo</a> of the most recent version using the credentials that follow.  Tables without a primary or unique key are now fully accessible in a read-only format.  The Blogs and Comments tables are fully modifiable so feel free to add, update and remove records.  The Bulk Insert feature makes it really easy to add records back in for testing.  The remaining tables are locked down since they are the referential tables used to feed the primary tables.  Also, just for the record, I&#8217;m not trying to recreate PHPMyAdmin so there are currently no plans for database structure (tables, fields, etc) manipulation at the moment.  This tool is designed strictly with CRUD in mind.</p>
<p>The demo requires the following info:</p>
<div style="margin-left: 40px;"><strong>Server:</strong> <em>scaffold</em><br />
<strong>Username:</strong> <em>scaffold</em><br />
<strong>Password:</strong> <em>scaffold</em></div>
<p>The server name field supports fully-qualified domain names, so you can conceivably connect up with any DNS-registered MySQL server and play around.  Just be aware that there is no SSL or SSH option yet.  So it works similar to PHPMyAdmin in that respect (credentials are passed unencrypted).  I hope to add an option for SSH some time in the future but this will increase the file footprint dramatically so it&#8217;s on hold for now.  Also, the regular expression matching for SQL terms in both queries and records is still in need of tweaking but I&#8217;m getting there.  Most everything else should be relatively bug-free.  Please let me know if you come across any issues or have any suggestions for features, etc.<br />
<!-- Content included by AmberPanther WP Include File --> 
<table class="tableFeatures"><tbody>
	<tr>
		<th>Active Record Highlighting</th>
		<td>Visually identifies the last record modified by a user</td>
	<tr>
	<tr>
		<th>API Interface</th>
		<td>Easy class instantiation makes for quick access to all public variables and functions</td>
	<tr>
	<tr>
		<th>Auto-Generated Form Fields</th>
		<td>Builds complete entry forms based on database specifications and field types</td>
	<tr>
	<tr>
		<th>Auto-Generated Select Lists</th>
		<td>Converts all reference tables, enums, sets, and boolean field types to user-friendly drop lists</td>
	<tr>
	<tr>
		<th>Auto-Join Disabler</th>
		<td>Provides users with the ability to enable / disable individual auto-join policies based on field type</td>
	<tr>
	<tr>
		<th>Bulk-Insert Option</th>
		<td>Allows developers to test database or front-end performance using randomly generated type-consistent values</td>
	<tr>
	<tr>
		<th>Client-Side Validation</th>
		<td>Enforces data type matching and non-null field types - alerts and highlights any form fields with errors</td>
	<tr>
	<tr>
		<th>Controlled Access</th>
		<td>Uses built-in MySQL permissions to control access to databases and tables</td>
	<tr>
	<tr>
		<th>CSV Field Type Support</th>
		<td>Provides users with the ability to automatically join a character field with comma-separated-values to corresponding records within a lookup table</td>
	<tr>
	<tr>
		<th>Data Exporting</th>
		<td>Capture all records from a table based on specific query criteria and save them to a Microsoft Excel spreadsheet for further analysis.</td>
	<tr>
	<tr>
		<th>Data Type Matching</th>
		<td>Ensures that values entered are correct based on the field type selected</td>
	<tr>
	<tr>
		<th>Date Time Calendar</th>
		<td>Eliminates formatting errors during date time field insertion and modification </td>
	<tr>
	<tr>
		<th>Error Reporting</th>
		<td>Tracks and reports on any internal object errors as well as MySQL errors and warnings</td>
	<tr>
	<tr>
		<th>Extensive Field Types</th>
		<td>Supports bigint, bit, bool, boolean, char,  datetime, decimal, double, enum, float, int, longtext, mediumint,  numeric, set, smallint, text, timestamp, tinyint, tinytext, and varchar</td>
	<tr>
	<tr>
		<th>File Upload Support</th>
		<td>Allows users to upload one or more files within a single database table while capturing all the standard file data such as path, name, type, size, and file extension.</td>
	<tr>
	<tr>
		<th>Flexible and Intuitive</th>
		<td>Works "auto-magically" out-of-the-box with most standard MySQL configurations.</td>
	<tr>
	<tr>
		<th>Friendly GUI</th>
		<td>Simple 3-tab interface makes option selection quick and easy</td>
	<tr>
	<tr>
		<th>Full Paging and Sorting</th>
		<td>Allows users to more easily work within larger tables and find the records they need</td>
	<tr>
	<tr>
		<th>Help Docs</th>
		<td>Helpful documentation is automatically compiled into the tool to help acclimate new users</td>
	<tr>
	<tr>
		<th>HTML Tag Stripper</th>
		<td>Allows or denies HTML tag support within field values during record inserts and updates</td>
	<tr>
	<tr>
		<th>Individual Field Selection</th>
		<td>Gives users the ability to individually select one or more specific fields from a table</td>
	<tr>
	<tr>
		<th>Javascript Independent</th>
		<td>Minimal Javascript requirements means no dependency on additional Javascript frameworks or libraries</td>
	<tr>
	<tr>
		<th>Location Independent</th>
		<td>Capable of accessing any local MySQL server with "localhost" or any remote server with a fully qualified domain name</td>
	<tr>
	<tr>
		<th>Minimized Data Option</th>
		<td>Enforces min/max row height in record display to assist users in accessing individual records and data</td>
	<tr>
	<tr>
		<th>Multi-Referential Lookup Support</th>
		<td>Allows multiple fields within a primary table to point to the same lookup table </td>
	<tr>
	<tr>
		<th>No AJAX Complications</th>
		<td>Relies on standard HTML form submissions to reduce complexity and file footprint required</td>
	<tr>
	<tr>
		<th>Query Generator</th>
		<td>Dynamic SQL queries based on user selections</td>
	<tr>
	<tr>
		<th>Query Viewer</th>
		<td>Allows users to view the final SQL output</td>
	<tr>
	<tr>
		<th>Record Duplication</th>
		<td>Duplicate an existing record in mere seconds using this feature.</td>
	<tr>
	<tr>
		<th>Record Row Resizer</th>
		<td>Allows users to expand or contract records displayed through the web interface to more easily view the data within.</td>
	<tr>
	<tr>
		<th>Records Per Page Option</th>
		<td>Allows users to select anywhere from 10 to 100 records at a time</td>
	<tr>
	<tr>
		<th>Server-Side Validation</th>
		<td>Provides a fall-back with default null, blank or numeric values, in the event of client-side validation failure</td>
	<tr>
	<tr>
		<th>Single File Format</th>
		<td>Releasable version is compiled and minified to reduce file size and make for easy deployment</td>
	<tr>
	<tr>
		<th>Small Footprint</th>
		<td>Total disk space usage of less than 150 kilobytes</td>
	<tr>
	<tr>
		<th>Software Update Notification</th>
		<td>Automatically checks for the latest version of the software and notifies developers when a newer version is available</td>
	<tr>
	<tr>
		<th>Syntax Highlighting</th>
		<td>Color-coded SQL syntax makes it easier to distinguish reserved words within queries and field data</td>
	<tr>
	<tr>
		<th>Table and Field List Generator</th>
		<td>Automatically provides users with a list of available resources on the server based on database permissions</td>
	<tr>
	<tr>
		<th>User-Friendly Labels</th>
		<td>Converts upper case, lower case, camel case and underscores to human readable headers and select options</td>
	<tr>
	<tr>
		<th>Where Clause Generator</th>
		<td>Allows users to specify an unlimited number of SQL query conditions using pre-validated values for all lookup tables, enum, set and datetime field types</td>
	<tr>
</tbody></table>
<!-- End of included content -->
</p>
]]></content:encoded>
			<wfw:commentRss>http://metabetageek.com/2009/12/18/mbg-scaffolder-everything-youve-ever-wanted-in-a-php-scaffolding-package/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 1.785 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-05-19 20:38:17 -->

