<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.3.3" -->
<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/"
	>

<channel>
	<title>Refactored</title>
	<link>http://refactored.siradrian.com</link>
	<description>refactoring the development process</description>
	<pubDate>Wed, 26 Mar 2008 16:28:46 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
	<language>en</language>
			<item>
		<title>Framework Update</title>
		<link>http://refactored.siradrian.com/2008/03/26/framework-update/</link>
		<comments>http://refactored.siradrian.com/2008/03/26/framework-update/#comments</comments>
		<pubDate>Wed, 26 Mar 2008 16:28:46 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<category><![CDATA[vBulletin Development]]></category>

		<category><![CDATA[code generators]]></category>

		<category><![CDATA[mvc]]></category>

		<category><![CDATA[propel]]></category>

		<category><![CDATA[rapid application development]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/2008/03/26/framework-update/</guid>
		<description><![CDATA[Over the past few months I&#8217;ve been working on a large application powered by my vBulletin MVC framework which required me to make several improvements.  One of the models I was working with had about 40 fields, and that caused me to generate all the forms dynamically from model variables dedicated to defining forms. [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past few months I&#8217;ve been working on a large application powered by my vBulletin MVC framework which required me to make several improvements.  One of the models I was working with had about 40 fields, and that caused me to generate all the forms dynamically from model variables dedicated to defining forms.  600 lines of configuration per model later, I grew pretty fed up.</p>
<p>After looking around at other frameworks for fun, I stumbled upon Symfony&#8217;s use of Propel, which is a code generator for database access.  That got me thinking&#8230; At least for initial development, 80% of the work is setting up the initial models, controllers and database tables.   Making changes to these are also very tedious, so that inspired me to dig a little deeper and see what I could automate.</p>
<p> <a href="http://refactored.siradrian.com/2008/03/26/framework-update/#more-22" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/03/26/framework-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CodeIgniter Integration!</title>
		<link>http://refactored.siradrian.com/2008/02/21/codeigniter-integration/</link>
		<comments>http://refactored.siradrian.com/2008/02/21/codeigniter-integration/#comments</comments>
		<pubDate>Fri, 22 Feb 2008 02:50:56 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/2008/02/21/codeigniter-integration/</guid>
		<description><![CDATA[I have uploaded the latest and greatest copy of the CodeIgniter - vBulletin user integration.  You can find it in SVN, or download it from SourceForge.
]]></description>
			<content:encoded><![CDATA[<p>I have uploaded the latest and greatest copy of the CodeIgniter - vBulletin user integration.  You can find it in SVN, or <a href="http://sourceforge.net/project/showfiles.php?group_id=208230">download it from SourceForge</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/21/codeigniter-integration/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Public Development Tools</title>
		<link>http://refactored.siradrian.com/2008/02/20/public-development-tools/</link>
		<comments>http://refactored.siradrian.com/2008/02/20/public-development-tools/#comments</comments>
		<pubDate>Wed, 20 Feb 2008 22:53:15 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[PHP Development]]></category>

		<category><![CDATA[Tools]]></category>

		<category><![CDATA[sourceforge]]></category>

		<category><![CDATA[svn]]></category>

		<category><![CDATA[vbdevtools]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/2008/02/20/public-development-tools/</guid>
		<description><![CDATA[My development tools are now being made public!  I am moving it all into one project at SourceForge where there will be guest downloads, and SVN access.  Only myself and a few other developers will have write access.  I am hoping that pushing it all into open source (MIT license) will help [...]]]></description>
			<content:encoded><![CDATA[<p>My development tools are now being made public!  I am moving it all into one project at SourceForge where there will be guest downloads, and SVN access.  Only myself and a few other developers will have write access.  I am hoping that pushing it all into open source (MIT license) will help it grow and make development easier with vBulletin.</p>
<p><strong>Project Page</strong>: <a href="http://sourceforge.net/projects/vbdevtools/">http://sourceforge.net/projects/vbdevtools/</a><br />
<strong>SVN Repository</strong>: <a href="https://vbdevtools.svn.sourceforge.net/svnroot/vbdevtools">https://vbdevtools.svn.sourceforge.net/svnroot/vbdevtools</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/20/public-development-tools/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Unit Testing Introduction</title>
		<link>http://refactored.siradrian.com/2008/02/19/unit-testing-introduction/</link>
		<comments>http://refactored.siradrian.com/2008/02/19/unit-testing-introduction/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 20:36:04 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[Debugging and Testing]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/2008/02/19/unit-testing-introduction/</guid>
		<description><![CDATA[Unit testing is a very powerful form of debugging which many developers don&#8217;t know about.  Once your applications get bigger, it is daunting to make any changes in fear of breaking the entire application.  Re-testing the entire application as a whole is both silly and time consuming.  Even having to test various [...]]]></description>
			<content:encoded><![CDATA[<p>Unit testing is a very powerful form of debugging which many developers don&#8217;t know about.  Once your applications get bigger, it is daunting to make any changes in fear of breaking the entire application.  Re-testing the entire application as a whole is both silly and time consuming.  Even having to test various components of the application as a user is silly.  If all the pieces work, the application will work!</p>
<p>Code should be broken down into small enough chunks (well written OOP) that it can all be executed separately.  The idea behind unit testing is programmatically testing all the pieces of your application individually and independently of the next.</p>
<p> <a href="http://refactored.siradrian.com/2008/02/19/unit-testing-introduction/#more-15" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/19/unit-testing-introduction/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Unit Testing Private Code</title>
		<link>http://refactored.siradrian.com/2008/02/17/unit-testing-private-code/</link>
		<comments>http://refactored.siradrian.com/2008/02/17/unit-testing-private-code/#comments</comments>
		<pubDate>Mon, 18 Feb 2008 00:20:24 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[Debugging and Testing]]></category>

		<category><![CDATA[unit testing]]></category>

		<category><![CDATA[vbulletin]]></category>

		<category><![CDATA[vde]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/?p=9</guid>
		<description><![CDATA[After doing various unit testing for VDE, I&#8217;ve encountered a quite annoying flaw with PHP unit testing in general.  You can&#8217;t test private or protected functions, since they are being called publicly from the test function.
Since in most cases you are testing a class file with only classes in it, I decided to try [...]]]></description>
			<content:encoded><![CDATA[<p>After doing various unit testing for <a href="http://refactored.siradrian.com/2008/02/16/vbulletin-development-environment/">VDE</a>, I&#8217;ve encountered a quite annoying flaw with PHP unit testing in general.  You can&#8217;t test private or protected functions, since they are being called publicly from the test function.</p>
<p>Since in most cases you are testing a class file with only classes in it, I decided to try a few ways to modify the script to remove the visibility&#8230;</p>
<p> <a href="http://refactored.siradrian.com/2008/02/17/unit-testing-private-code/#more-9" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/17/unit-testing-private-code/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visibility</title>
		<link>http://refactored.siradrian.com/2008/02/17/visibility/</link>
		<comments>http://refactored.siradrian.com/2008/02/17/visibility/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 11:19:33 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[PHP Development]]></category>

		<category><![CDATA[application design]]></category>

		<category><![CDATA[visibility]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/?p=8</guid>
		<description><![CDATA[A few of my friends have asked me about this recently, so I&#8217;ll document it here for others as well.
Visibility refers to  how an object property or method can be seen or called.  The simplest type, and the default (making it the most common) is public.
A public visibility means there are no restrictions [...]]]></description>
			<content:encoded><![CDATA[<p>A few of my friends have asked me about this recently, so I&#8217;ll document it here for others as well.</p>
<p>Visibility refers to  how an object property or method can be seen or called.  The simplest type, and the default (making it the most common) is <em>public</em>.</p>
<p>A public visibility means there are no restrictions to where the variable or function can be called or modified from.</p>
<p>The next one is <em>protected</em>.  A protected visibility only allows it to be seen within the class (OR parent/child class) that it is defined in.</p>
<p>Finally, there is <em>private</em>.  A private visibility means only the defining class (not a parent/child) can access it.</p>
<p> <a href="http://refactored.siradrian.com/2008/02/17/visibility/#more-8" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/17/visibility/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Futureproofing Long Term Projects</title>
		<link>http://refactored.siradrian.com/2008/02/16/futureproofing-long-term-projects/</link>
		<comments>http://refactored.siradrian.com/2008/02/16/futureproofing-long-term-projects/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 07:00:39 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[vBulletin Development]]></category>

		<category><![CDATA[cakephp]]></category>

		<category><![CDATA[codeigniter]]></category>

		<category><![CDATA[frameworks]]></category>

		<category><![CDATA[jelsoft]]></category>

		<category><![CDATA[mvc]]></category>

		<category><![CDATA[vbulletin]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/?p=7</guid>
		<description><![CDATA[With vBulletin 4.0 blindly around the corner, where does that leave developers?  If we start something big, by the time it is ready, it&#8217;ll be about time to rewrite the whole thing.  Or, if we&#8217;re lucky, it will work for a short while, but we&#8217;ll have to recode it all shortly after.
The major [...]]]></description>
			<content:encoded><![CDATA[<p>With vBulletin 4.0 blindly around the corner, where does that leave developers?  If we start something big, by the time it is ready, it&#8217;ll be about time to rewrite the whole thing.  Or, if we&#8217;re lucky, it will work for a short while, but we&#8217;ll have to recode it all shortly after.</p>
<p>The major problem here is the dependency on vBulletin.  Since we&#8217;re making things <em>for</em> vBulletin, it doesn&#8217;t seem like much of a dependency, but it is.  One minor change can render a program useless.  Having the fate of our work rely in someone else&#8217;s hands isn&#8217;t the most reassuring thought.  Then there&#8217;s the whole template editing nightmare.</p>
<p>The other night I was thinking about this, and the idea was to u<strong>se other frameworks, and only integrate the user authenticate system</strong>.</p>
<p> <a href="http://refactored.siradrian.com/2008/02/16/futureproofing-long-term-projects/#more-7" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/16/futureproofing-long-term-projects/feed/</wfw:commentRss>
		</item>
		<item>
		<title>vBulletin MVC Framework</title>
		<link>http://refactored.siradrian.com/2008/02/16/vbulletin-mvc-framework/</link>
		<comments>http://refactored.siradrian.com/2008/02/16/vbulletin-mvc-framework/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 21:24:44 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[vBulletin Development]]></category>

		<category><![CDATA[11]]></category>

		<category><![CDATA[13]]></category>

		<category><![CDATA[17]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/?p=6</guid>
		<description><![CDATA[Over the past 6 to 12 months I&#8217;ve also been creating a MVC framework for vBulletin.  I originally based it off the structure of cakePHP, but slowly altered it to suit my needs more, and also to match how vBulletin works more.
If you are new to MVC, the general idea is this: you have [...]]]></description>
			<content:encoded><![CDATA[<p>Over the past 6 to 12 months I&#8217;ve also been creating a MVC framework for vBulletin.  I originally based it off the structure of cakePHP, but slowly altered it to suit my needs more, and also to match how vBulletin works more.</p>
<p>If you are new to MVC, the general idea is this: you have models, controllers, and views.  A model works with the database, the views are templates, and the controller is like your front-end script which decides what to do.  Logic from each section should not fall into other sections &#8212; the goal here is to create more reusable code and less code soup.</p>
<p> <a href="http://refactored.siradrian.com/2008/02/16/vbulletin-mvc-framework/#more-6" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/16/vbulletin-mvc-framework/feed/</wfw:commentRss>
		</item>
		<item>
		<title>vBulletin Development Environment</title>
		<link>http://refactored.siradrian.com/2008/02/16/vbulletin-development-environment/</link>
		<comments>http://refactored.siradrian.com/2008/02/16/vbulletin-development-environment/#comments</comments>
		<pubDate>Sat, 16 Feb 2008 20:35:50 +0000</pubDate>
		<dc:creator>Adrian</dc:creator>
		
		<category><![CDATA[Tools]]></category>

		<category><![CDATA[10]]></category>

		<category><![CDATA[15]]></category>

		<category><![CDATA[17]]></category>

		<guid isPermaLink="false">http://refactored.siradrian.com/?p=5</guid>
		<description><![CDATA[The biggest time waster with writing vBulletin mods is working with the product system. To save templates you have to copy-paste and go between several windows. To do anything you have to use their awkward web interfaces.
Last year I toyed with the idea of importing all the product data from the database into the file [...]]]></description>
			<content:encoded><![CDATA[<p>The biggest time waster with writing vBulletin mods is working with the product system. To save templates you have to copy-paste and go between several windows. To do <i>anything</i> you have to use their awkward web interfaces.</p>
<p>Last year I toyed with the idea of importing all the product data from the database into the file system, and then wrote a tool that generates the export XML based on the files, rather than the data. It still had a few flaws: you had to run my own script in order to save any changes (to preview or activate them), but at least the data was in the file system. The main benefit here was being able to share the product across SVN or easily back it up.</p>
<p> <a href="http://refactored.siradrian.com/2008/02/16/vbulletin-development-environment/#more-5" class="more-link">(more&#8230;)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://refactored.siradrian.com/2008/02/16/vbulletin-development-environment/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
