<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="wordpress/2.0.4" -->
<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>theTopian</title>
	<link>http://www.thetopian.com/blog</link>
	<description>Two Guys Building a Web App</description>
	<pubDate>Tue, 24 Jun 2008 14:18:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.0.4</generator>
	<language>en</language>
			<item>
		<title>Integrated Feedback</title>
		<link>http://www.thetopian.com/blog/2006/11/09/integrated-feedback/</link>
		<comments>http://www.thetopian.com/blog/2006/11/09/integrated-feedback/#comments</comments>
		<pubDate>Thu, 09 Nov 2006 09:34:47 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
		
	<category>Choices</category>
		<guid isPermaLink="false">http://www.thetopian.com/blog/2006/11/09/integrated-feedback/</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[
]]></content:encoded>
			<wfw:commentRSS>http://www.thetopian.com/blog/2006/11/09/integrated-feedback/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Version Control on OS X</title>
		<link>http://www.thetopian.com/blog/2006/10/19/version-control-on-os-x/</link>
		<comments>http://www.thetopian.com/blog/2006/10/19/version-control-on-os-x/#comments</comments>
		<pubDate>Thu, 19 Oct 2006 00:59:27 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
		
	<category>Code</category>
	<category>Choices</category>
		<guid isPermaLink="false">http://www.thetopian.com/blog/2006/10/19/version-control-on-os-x/</guid>
		<description><![CDATA[Version control is essential for application development when more than one person will be involved with the project if you want to avoid the nightmare of over writing each others files, and just plain useful even if you are developing on your own. Subversion is one of the best version control systems around right now. [...]]]></description>
			<content:encoded><![CDATA[<p>Version control is essential for application development when more than one person will be involved with the project if you want to avoid the nightmare of over writing each others files, and just plain useful even if you are developing on your own. <a href="http://subversion.tigris.org/">Subversion</a> is one of the best version control systems around right now. The great thing about it is that you can both work on the same file at the same time and integrate your changes when you commit them, unlike other version control systems that lock a file when someone is working on it which can be a total pain if someone forgets to check in a file and is not available.</p>
<p>I&#8217;ve been using subversion for some time now as coding takes up a large portion of my time, where as Chris, being primarily a designer, has had little experience with it. I wanted to find the best GUI for using subversion so that I could introduce Chris to the wonders of subversion. Both Chris and I run <a href="http://www.apple.com">Apple</a> computers so that narrows down the search some what. Here is a quick round up of subversion GUI&#8217;s I have tested (or tried to test):</p>
<ul>
<li><a href="http://svnx.lachoseinteractive.net/trac/">svnX</a> - This is the software I have been using for the last few months. Its been relatively stable and provides a good feature set with a nice looking GUI. My only real complaints are that some of the more advanced functions are not that easy to work out how to do without reading the help files and there are too many windows.</li>
<li><a href="http://rapidsvn.tigris.org/">RapidSVN</a> - Many people use this GUI, personally I find it a little slow on osx as its not a native application, I also find the interface a little clunky. In terms of how this works I have not come across any real issues.</li>
<li><a href="http://zigversion.com/">ZigVersion</a> - The new kid on the block, its a little unstable at times and lacks support for some of the more advanced features but its early days yet. Looks very promising and could very well become the best GUI if all goes well for this app.</li>
<li><a href="http://scplugin.tigris.org/">SCPlugin</a> - An OS X clone of TortoiseSVN, the website for this hasn&#8217;t been updated since 2004 so it looks like development of this has ceased. When I used it I found that it slowed down the finder to an annoying level so eventually had to remove it.</li>
<li><a href="http://subcommander.tigris.org/">Subcommander</a> - This program might be good but I couldn&#8217;t test it as it crashed every time I issued a subversion command!</li>
<li><a href="http://www.versiontracker.com/dyn/moreinfo/macosx/27001">eSVN</a> - This program requires you to install additional software to enable it to run, once installed the window management on this application is so bad it makes it unusable. I gave up without even being able to add a repository!</li>
<li><a href="http://macromates.com/">TextMate</a> - Not a subversion GUI as such, but this has built in subversion support that works pretty well, it lacks support for some of the more advanced commands and I wish they had a menu for executing subversion commands. For quick commits while working on files this is great.</li>
</ul>
<p>We are going to stick with svnX as its the easiest to use, fast, and there is a 1.0 update coming at some point which looks like it will be rather good. A word or warning though, if you upgrade to <a href="http://subversion.tigris.org/svn_1.4_releasenotes.html">subversion 1.4</a> you will find that svnX is no longer able to work with your repositories. The 1.4 update has made quite a few changes to that way in which subversion stores it files, thes changes are not backwards compatible with 1.3 repositories. Subversion 1.3 and 1.4 server/clients will talk to each other just fine though.</p>
<p>Maybe Chris will post his thoughts subversion as a newcomer once he has had a chance to get to grips with it.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.thetopian.com/blog/2006/10/19/version-control-on-os-x/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Post Production</title>
		<link>http://www.thetopian.com/blog/2006/10/16/post-production/</link>
		<comments>http://www.thetopian.com/blog/2006/10/16/post-production/#comments</comments>
		<pubDate>Mon, 16 Oct 2006 06:08:24 +0000</pubDate>
		<dc:creator>Jamie</dc:creator>
		
	<category>Details</category>
	<category>Code</category>
	<category>Planning</category>
	<category>Choices</category>
		<guid isPermaLink="false">http://www.thetopian.com/blog/2006/10/16/post-production/</guid>
		<description><![CDATA[One of the first considerations for the application is what language to use and which platforms we should support. As this is going to be a &#8220;download and install on your own website&#8221; application rather than a hosted service, platform support is a key issue. Some of these choices were very easy, others decisions were [...]]]></description>
			<content:encoded><![CDATA[<p>One of the first considerations for <a href="/blog/about/">the application</a> is what language to use and which platforms we should support. As this is going to be a &#8220;download and install on your own website&#8221; application rather than a hosted service, platform support is a key issue. Some of these choices were very easy, others decisions were a lot more diffucult.</p>
<h2>Lighting the LAMP</h2>
<p><a href="http://en.wikipedia.org/wiki/LAMP_%28software_bundle%29">LAMP</a> (Linux, Apache, MySQL, PHP) was the obvious choice for us, firstly because I have the most experience with this set-up, secondly because there is a huge user base which will provide us with the most potential customers for <a href="/blog/about/">the application</a>. We are going to focus on <a href="http://www.apache.org/">Apache</a>, <a href="http://www.mysql.com/">MySQL</a> and <a href="http://www.php.net">PHP</a>, with the aim of supporting Linux primarily plus as many other operating systems as possible without compromising any features or having to write overly complex code. IIS will not be supported due to the lack of support for <a href="http://httpd.apache.org/docs/2.0/howto/htaccess.html">.htaccess</a> which is one of our requirements for clean urls.</p>
<h2>To PHP or not to er, PHP?</h2>
<p>One of the decisions that had me hung up for quite some time was if we should go with PHP4 or PHP5. In the end PHP5 won this bloody battle mainly because I ran into a few issues while trying to use PHP4 which PHP5 solves very nicely. At first I wanted to use PHP4 so that <a href="/blog/about/">the application</a> would be compatible with as many servers as possible. I really didn&#8217;t want to restrict our application to people who have upgraded to PHP5. A quick poll of some of the top web hosts revealed that the PHP4/5 split was about 50/50. So basically by using PHP5 we cut out about half of our potential customers, not something we wanted to do for no reason. After many days of schizophrenic struggling with myself I eventually decided to go with PHP5. The programmer in me was saying PHP5 while the marketeer was pulling me towards PHP4. In the end the deciding factor was just a single character, &#8220;&#038;&#8221;.</p>
<p>In developing the framework to run this application I wanted to be able to pass objects around between classes. One of the major changes in PHP5 is the way in which object references are handled. When you assign a variable in PHP4 the default is to make a copy of the object, in PHP5 the variable is a reference to the original object. If you want to read more about this <a href="http://www.zend.com/manual/migration5.oop.php">see here</a>, they explain this far better than I can. So this is where the &#8220;&#038;&#8221; comes in, if you stick and &#8220;&#038;&#8221; character in-front of your variable in PHP4 it will pass a reference to the original object instead of a copy. Great, no problem, apart from when you forget to add this little sucker and spend ages trying to find where the problem is. After doing this twice while working late at night I decided that PHP5 was the road for me, no more dirty little &#038;&#8217;s littered around my code causing head aches.</p>
<p>PHP5 also has a number of other nice features that are going to help the coding process. By the time we release <a href="/blog/about/">our application</a> I&#8217;m sure PHP5 will have gained even more popularity so the user base will be less of an issue. Onwards and upwards&#8230;</p>
<h2>The Framework</h2>
<p>There are a vast number of existing frameworks available and after having tried a number of them I found myself wanting to write my own that worked exactly how I wanted it to. I&#8217;ve played around with a numerous frameworks on different projects recently including the &#8220;holy grail&#8221; of frameworks, <a href="http://www.rubyonrails.org/">Ruby on Rails</a>. I do like certain many aspects of RoR a great deal, it just doesn&#8217;t lend itself to creating a web application intended for installing on your own server. RoR is not supported widely enough by web hosts at the moment, although this is changing pretty quickly. Even so, the number of hosts supporting RoR when we release our application and more importantly, the number of people who have experience with using it will still be relatively low, this rules out the <a href="http://www.ruby-lang.org/">Ruby language</a> along with the rails framework. There are a number of PHP frameworks available, some of which look very promising. The problem is they just don&#8217;t feel &#8220;right&#8221; to me when I use them, some of them are overly complicated when compared to RoR. The best of the bunch, in my opinion, is the <a href="http://framework.zend.com/">Zend framework</a> which is currently in beta. It&#8217;s not a good idea to base and application on a beta framework that could be liable to changes outside if our control which rules out the Zend framework.</p>
<p>It has to be said I am very fussy when it comes to programming and using other peoples code. I generally prefer to write my own code rather than integrate someone else&#8217;s code into an application. I started tinkering a several weeks ago with writing my own framework, getting the basics hammered out was easier than I was expecting and I soon had a basic system working loosely based around the <a href="http://en.wikipedia.org/wiki/Model-view-controller">MVC</a> framework model. I say loosely as I have dropped the traditional model style from the system in favour or putting all logic and validation in controllers. I&#8217;ve been tweaking, working, and extending the framework in spare time between projects and its coming along nicely. I&#8217;ll be posting more about the framework as it develops along with <a href="/blog/about/">the application</a>.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.thetopian.com/blog/2006/10/16/post-production/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>&#8216;Download and Install&#8217;</title>
		<link>http://www.thetopian.com/blog/2006/10/13/download-and-install/</link>
		<comments>http://www.thetopian.com/blog/2006/10/13/download-and-install/#comments</comments>
		<pubDate>Fri, 13 Oct 2006 22:05:19 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
	<category>Planning</category>
	<category>Business</category>
	<category>Selling</category>
	<category>Choices</category>
		<guid isPermaLink="false">http://www.thetopian.com/blog/2006/10/13/download-and-install/</guid>
		<description><![CDATA[We&#8217;ve already mentioned that the app we&#8217;re building is going to be a &#8216;download and install&#8217; rather than a hosted solution, I wanted to take this post to really go over how we came to that decision and outline a few cases where going down this route in the past has proved successful.
The first reason [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve already mentioned that the app we&#8217;re building is going to be a &#8216;download and install&#8217; rather than a hosted solution, I wanted to take this post to really go over how we came to that decision and outline a few cases where going down this route in the past has proved successful.</p>
<p>The first reason we chose to release the product for download was differentiation. There are already a few hosted solutions that do a pretty good job, but none which you can set up on your own server. By allowing users to set up the application on their own server we&#8217;re allowing them to take full control of their content, they can add as much or as little as they like to the system. We&#8217;re also hoping that a community of developers will build up around the application and come up with add-ons/plug-ins and other creative adoptions of the system.</p>
<p>Another aspect is cost. If users are installing the application on their own servers they&#8217;re not using our resources, which means when you buy a license you&#8217;re paying for the product and don&#8217;t incur the added cost of hosting etc. Most people already have their own web hosting set up and I&#8217;m sure would rather not have to pay twice for his. We can also make the pricing strategy a one-off payment, saving time and hassle that would be brought about by issuing monthly invoices. </p>
<p>Then of course, there&#8217;s the issue of salability. Our main target market will undoubtedly be web designers and developers (the traditional early adoptors) and, naturally, they&#8217;ll want to be able to get right to the root of the application, creating add-ons and fully integrating it to suit their individual needs. This sort of customisation can&#8217;t be easily achieved with a hosted app.<!-- In our minds, it also makes the process of setting up the application a lot easier, you don't need to concern the user with technical wizardry like "DNS settings" just to make an external domain point at the application. --></p>
<p>Finally, there&#8217;s the benefit of <a href="http://media72.co.uk">Jamie</a> running a <a href="http://hosting.media72.co.uk/">hosting company</a>, meaning we already have a captive market to sell licenses to. There&#8217;s also no restraints on who we can partner up with, we could for instance offer other hosting providers custom-branded versions of our software at a discounted rate for bulk orders.</p>
<p>One very successful self-hosted application on the market at the moment that we like a lot is <a href="http://haveamint.com">Mint</a>. It&#8217;s a beautiful application for keeping tracks of stat, the configuration process is the pinnacle of ease-of-use. We had Mint for this blog up and running in less than 2 minutes. There&#8217;s been a lot of speculation during it&#8217;s lifespan about whether or not Mint is worth the $30 price-tag. The main argument behind this is that the Peppers are what bring the most value to Mint, over <a href="http://www.google.com/analytics/">rival</a> hosted software, yet the Peppers themselves are free. I&#8217;m not going to speak on the price of Mint, but what I find most interesting is just how much value Peppers add to Mint. On the serious SEO orientated projects I handle, I tend to use about 7 peppers (Add-ons build using the Mint API) which far outweighs the amount of functionality built-in. There are a further 50 or so Peppers freely available, one of the strongest selling points of Mint.</p>
<p>This sort of developer-following wouldn&#8217;t be achievable with a hosted platform and so our aim with making the application available for download is to develop a strong community who will build add-ons, hacks and themes that will add much more value to the product than the retail price we put on it.</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.thetopian.com/blog/2006/10/13/download-and-install/feed/</wfw:commentRSS>
		</item>
		<item>
		<title>Say Wha&#8217;?!</title>
		<link>http://www.thetopian.com/blog/2006/10/12/say-wha/</link>
		<comments>http://www.thetopian.com/blog/2006/10/12/say-wha/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 21:04:09 +0000</pubDate>
		<dc:creator>Chris</dc:creator>
		
	<category>Details</category>
		<guid isPermaLink="false">http://www.thetopian.com/blog/2006/10/12/say-wha/</guid>
		<description><![CDATA[So the aim of this blog is to build a commercial web application and keep an on-going diary of the process involved in design and building, business decisions and the results of the venture without actually letting you guys in on what exactly the application is   Alright, it&#8217;s been done before, but it&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>So the aim of this blog is to build a commercial web application and keep an on-going diary of the process involved in design and building, business decisions and the results of the venture without actually letting you guys in on what exactly the application is <img src='http://www.thetopian.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Alright, it&#8217;s <a href="http://barenakedapp.com">been done before</a>, but it&#8217;s a little like a property development TV show, you can put up with 4 or 5 of them at once.</p>
<p>Although we obviously can&#8217;t say what the application will handle (or even it&#8217;s name, because that would give it all away), we can let you in on a few things:</p>
<ul>
<li>Our software will solve an age-old problem.</li>
<li>It&#8217;s definitely got a purpose and a strong revenue model.</li>
<li>Web Standards will be used bountifully and ease-of-use will be unprecidented.</li>
<li>There&#8217;s already quite a few competitors.</li>
<li>It&#8217;s got design from the nice lads at <a href="http://chrisgarrettmedia.com">Chris Garrett Media</a> and coding from the gents at <a href="http://media72.co.uk">Media72</a>.</li>
</ul>
<p>Stay tuned because we&#8217;ll be touching on such fine subjects as Information Architecture, Branding, MVC frameworks, usability and even a little on the mobile web.
</p>
]]></content:encoded>
			<wfw:commentRSS>http://www.thetopian.com/blog/2006/10/12/say-wha/feed/</wfw:commentRSS>
		</item>
	</channel>
</rss>
