<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>andrew.comfypage.com</title>
<link>http://andrew.comfypage.com</link>
<description>pages from andrew.comfypage.com</description>
<language>en-us</language>
<pubDate>Sun, 07 Mar 2010 19:12:05 GMT</pubDate>
<atom:link href="http://andrew.comfypage.com/rss.php" rel="self" type="application/rss+xml" /><item>
<title>Resources</title>
<link>http://andrew.comfypage.com/10.htm</link>
<description><![CDATA[ <p>In an attempt to make life easier for ComfyPage users and people in general I've accumulated some resources that hopefully some people will find useful.</p>
<p><a href="http://fundraisingideas.comfypage.com">Fundraising Ideas</a></p>
<p><a href="http://get_a_website.comfypage.com">How to Design a Web Page</a></p>
<p><a href="http://effectivevolunteerboards.comfypage.com">How to Run an Effective Volunteer Board</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/10.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/10.htm</guid>
</item>
<item>
<title>08/05/07 Travelling and Mail</title>
<link>http://andrew.comfypage.com/11.htm</link>
<description><![CDATA[ <h3>7 May 2008</h3>
<p>My brother Cameron recently departed Perth, Australia for Montreal, Canada.  Other than working on his French and seeing what north america has to offer he'll be looking to kickstart ComfyPage in north america.  Thus far most of our users are Australian and while our progress here has been good we'd love to see it getting more use internationally.  If you're interested in seeing the daily goings on of someone who has flown halfway round the world and arrived in a strange town with only the bag on their back he's thrown together a ComfyPage site.  <a href="http://montreal.comfypage.com/">http://montreal.comfypage.com/</a></p>
<p>Last night at around midnight I learnt a lesson about proper testing.  I sent out a message to our mailing list via a component that had a bug in it.  Nothing like emailing your entire user base with a message littered with escape characters to remind you of the importance of thorough testing.  The underlying issue was fixed within a few minutes but unfortunately those emails can't be recalled.  Lesson learnt.</p>
<p style="text-align: center;"><a href="index.php?content_id=9"><<5 May 08</a>  <a href="index.php?content_id=12">12 May 08>></a></p><br /><a href="http://andrew.comfypage.com/11.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/11.htm</guid>
</item>
<item>
<title>08/05/12 Charging for support</title>
<link>http://andrew.comfypage.com/12.htm</link>
<description><![CDATA[ <h3>12 May 2008</h3>
<p>Monday morning again.  The weekend was spent doing some contract work, tinkering with ComfyPage and doing some touristy stuff.  Our office is in the old Fremantle prison.  For anyone in the area I highly recommend taking a tour as its a fascinating look at not only a greatly feared 150 year old prison but Australian history (which is pretty prison/convict centric in parts).</p>
<p>edit: I forgot that I also picked up some free tickets and went and saw Elton John live Saturday night.  Sorry Elton.</p>
<p>Tuesday evening we'll be deploying some updates to ComfyPage.  So for now Im just doing some testing.  I would however like to talk about an idea that I think might be somewhat controversial.  *ahem* here is is.<br />
<br />
Charging for support is bad.  Bad as in damaging to customers and software companies.  It doesnt matter whether you charge for your product or if its open source.  If you charge for support your business model is opposed to your user's interests and that's bad for everyone involved.<br />
<br />
I'll elaborate.  Its a policy of ours that when we receive a support request we always make sure to take some sort of action to prevent that support issue coming up again.  Whether it be a change to ComfyPage or to http://help.comfypage.com or something else we pretty much always do something which hopefully means we dont hear the same question twice.<br />
<br />
I do this not only because its a good way to improve our product but because providing support is a cost to us.  Dealing with support issues takes time away from revenue generating activities so its in my interest to minimize support queries by offering a service that is as free of bugs and usability flaws as possible.  My interests are aligned with the user's interests.  A perfect product for both of us is one that is devoid of bugs and so marvelously usable that every single user is able to use it without asking for help.  Thats what we're aiming for.<br />
<br />
But what if support, integration services and training were my primary sources of revenue?  In that case that utopian vision of software with perfect usability wouldn't be perfect for me.  If the users can use it without talking to me they dont need to pay for support or training.  If my APIs are so immaculately clean and straightforward that integration is a snap then that highly paid consulting work doesn't happen.  By shipping a perfect product I put myself out of business.<br />
<br />
To be absolutely clear Im not saying that open source products are unethical.  Just the practice of treating provision of support as a revenue stream.  It makes people forget the ideal of shipping a product that is so well engineered that it has little or no support required.  And worse, it makes people think that charging people to show them how to work around bugs in their own software is ok.</p>
<p style="text-align: center;"><a href="index.php?content_id=11"><<7 May 08</a>     <a href="index.php?content_id=13">14 May 08>></a></p><br /><a href="http://andrew.comfypage.com/12.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Mon, 02 Feb 2009 23:40:07 GMT</pubDate>
<guid>http://andrew.comfypage.com/12.htm</guid>
</item>
<item>
<title>08/05/14 Inching Forward</title>
<link>http://andrew.comfypage.com/13.htm</link>
<description><![CDATA[ <h3>14 May 2008</h3>
<p>Today I did a little bit of contract work, tinkered with comfypage.com and deployed a new version of ComfyPage.  Nothing major in the new release.  Just a bunch of minor improvements and fixes.</p>
<p>This seems to be a large part of what running a software company is all about.  Every day making small incremental improvements to the product and your marketing.  Every day inching forward.  Its a big contrast to the vision most people have in their head.  TV, movies and even interviews with famous company founders tend to create this idea that companies are born in an explosive burst of action.  There is one defining moment then everything else flows naturally.</p>
<p>In my experience thats not how it goes.  Every day there's an opportunity to haul your sorry ass forward another inch.  Or worse, to not move forward at all.</p>
<p>edit: this talk of software and inches sounded familiar so I had a look around to see if I should attributing anyone.   Turns out Joel Spolsky said more or less the same thing in a much longer but vastly more lyrical way.  <a href="http://joelonsoftware.com/items/2007/06/07.html">article</a>.</p>
<p style="text-align: center;"><a href="index.php?content_id=12"><<12 May 08</a>   <a href="index.php?content_id=14">15 May 08>></a></p><br /><a href="http://andrew.comfypage.com/13.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/13.htm</guid>
</item>
<item>
<title>08/05/15 Architecture Astronauts</title>
<link>http://andrew.comfypage.com/14.htm</link>
<description><![CDATA[ <h3>15 May 2008</h3>
<p>Joel Spolsky wrote an interesting and informative article on architecture astronauts. <a href="http://joelonsoftware.com/items/2008/05/01.html">Go and have a read</a>.</p>
<p>This is a topic near and dear to my own heart.  Through my time at a previous employer I gained more experience with architecture astronauts that I ever wanted.  Joel wrote about this phenomena from the perspective of a Microsoft customer and competitor.  For those whove never been through it Id like to explain what goes on in a company thats being invaded by architecture astronauts.</p>
<h4>The Holy Wars</h4>
<p>The company had divided itself into three camps.</p>
<p>Camp one, the astronauts, was championed by the business development manager.  The group included a smattering of managers and programmers.  How the hell does a bdm get involved in architecture decisions?  Well, because he fancied himself quite the technical savant despite his negligible experience.  He was backed by a cadre of managers and programmers he'd managed to convince that sufficient abstraction and framework development would cure all of their problems.  The astronauts had developed one of the companies big products.</p>
<p>Camp two was championed by the most experienced programmer in the company.  He had attained the lofty heights of managing the companies other big product.  He was backed by the officially acknowledged best programmer in the company, the resident boy genius and a number of other programmers including myself.  We just wanted to ship code that could be installed and maintained by mere human beings.</p>
<p>The third group was made up of about half the company and they were the spectators necessary for any gladiatorial contest.</p>
<p>Discussions between the two camps consisted of us presenting well thought out logical arguments for why excessive architecting was hurting us while the other camp would clamp their hands over their ears and chant "needs more abstraction.  needs more abstraction."  It was a contest between quietly spoken experience and knowledge Vs repeated loudly asserted dogma.</p>
<p>And lo there was much strife in the land.  Integration of the two products was fiercely advocated by the astronauts and resisted with equal ferocity by the non-astronauts.  Arguments were plentiful.</p>
<h4>How We Got There</h4>
<p>The root issue was nontechnical people feeling they were qualified to dictate technical decisions to technical people far more experienced than themselves.  Thats ok if were talking a user experience issue but not for the internal aspects of the software.  Once were talking anything but offered functionality and the UI the sales people shouldnt even be in the room.  Let them dictate architecture to the quietly spoken programmers using their big strong personalities at your peril.</p>
<p>I suspect this is why software companies run by sales guys often ultimately go broke.  Theyre entirely dominated by sales guys from day one.  Theyre operating out side their area of expertise and its only a matter of time until they make what looks like an innocuous decision that brings down the company.</p>
<p>Im not saying sales people are bad but you generally wouldnt take a programmer out on a sales call would you?  Theres a good reason for that.  They say inappropriate things.  They dont really know how to handle the sales process.</p>
<h4>The Holy Wars Are Ended</h4>
<p>So how did it end at that company?  Eventually the technical manager who championed the non-astronaut group quit to go work in a role at another company where he'd be able to work quietly by himself without having to wage any political wars.</p>
<p>The victors were benevolent.  There were no purges.  Those of us remaining from the defeated camp were accepted into the fold.  We were even given more responsibility.  Henceforth we were to maintain not only our own product but also the product developed by the architecture astronauts.  It turns out they were dying to get rid of its buggy unmaintainable carcass.</p>
<p style="text-align: center;"><a href="index.php?content_id=13"><<14 May 08</a>  <a href="index.php?content_id=16">19 May 08>></a></p><br /><a href="http://andrew.comfypage.com/14.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/14.htm</guid>
</item>
<item>
<title>08/05/19 Amnesia Man</title>
<link>http://andrew.comfypage.com/16.htm</link>
<description><![CDATA[ <h3>19 May 2008</h3>
<p>Paul Graham just released a new essay entitled <a href="http://paulgraham.com/distraction.html">Disconnecting Distraction</a>.  You should probably read it yourself rather than taking my word for what it says :)</p>
<p>In it he describes his own system for limiting online procrastination.  He has two computers.  One is offline and is for work.  The other is online and is for browsing the web and checking email etc.</p>
<p>I can see how that would work well for some.  It would however not work terribly well for me and I suspect it wouldnt work for any programmer my age or younger.</p>
<p>We got an Internet connection at home when I was about 16.  This means that the only programming Ive ever done without an Internet connection was writing a little basic when i was about 12 years old.  Ive never done any serious programming without having an Internet connection available.  Programming at university or in the work place has always been done with the Internet right there waiting to assist me.  This means Ive developed a particular weakness I suspect is present in programmers my age or younger.  I have no memory.</p>
<p>Not literally of course but I just dont remember most stuff.  Ive coded a variety of sort algorithms but I cant name anything but bubble sort right now.  What is the syntax for a case/switch/select or whatever the hell its called in C++?  Ive written dozens if not hundreds but I can never remember.  What is the function to check whether a particular key exists in an associative array in PHP? I use it almost every day but I always have to check.</p>
<p>I dont remember any of that stuff because Google is only a mouse click away and I am utterly dependent on it.</p>
<p>Surely this is a bad thing.  Surely not being able to remember basic algorithms and syntax is a terrible thing for a programmer...  Not really.  Because what I lack in memory I make up for with processing speed.  I am an expert at finding materials via Google.  I can formulate a query, open a number of results, evaluate those results, shut those that arent helpful and extract the information I need with amazing speed.  I may not know the various kinds of sorting algorithms off the top of my head however I know that there are different algorithms appropriate in different circumstances and I know how to quickly find the information I need to choose and implement one.</p>
<p>For me programming involves the following infinite loop: identify shortfall in knowledge, query Internet, find solution, implement solution, forget solution.</p>
<p>I'm all about data processing not data storage.  My razor sharp ability to find and parse data means I have an extremely limited requirement to store data.  What I know doesnt really matter.  My primary skill is the ability to rapidly acquire new information and assimilate it to achieve a specific goal.  Because the data required to acheive that goal is mostly thrown away at the end I ultimately end up possessing a tiny proportion of what I have ever known.</p>
<p>This is likely why I struggle in job interviews of the 'explain this piece of technical minutiae to me' type.  This is why I often cant give an intelligent opinion about data structures or architecture without having had time to go remind myself of what I used to know.</p>
<p>Despite its faults my way of working is surely the way of the future.  I got access to the Internet at 16.  The programmers of the future will never have not had it.  For them information retention is pointless.  Information retrieval is key.</p>
<p>This raises the spectre of future programmers rapidily grinding to a halt when their net connection goes down.  Maybe we'll see programmers who are literally unable to do anything without their net connection.  Maybe not.  Either way the day is rapidly approaching when the Internet is not a distraction but is instead as fundamental to productivity in a software company as electricity .</p>
<p>Tell me whether you see the Internet as a distraction or as a tool as fundamental as your IDE and I'll tell you how old you are.</p>
<p style="text-align: center;"><a href="index.php?content_id=14"><<15 May 08</a>    <a href="index.php?content_id=17">21 May 08>></a></p><br /><a href="http://andrew.comfypage.com/16.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/16.htm</guid>
</item>
<item>
<title>08/05/21 Achieving stuff</title>
<link>http://andrew.comfypage.com/17.htm</link>
<description><![CDATA[ <h3>21 May 2008</h3>
<p>Yesterday for the first time we had more than 1000 unique visitors at comfypage.com.  Its a sign that we're on the right track and I am very pleased.  Thats all.  Move along. <img src="/common/contentServer/FCKeditor/editor/images/smiley/msn/regular_smile.gif" alt="" /></p>
<p style="text-align: center;"><a href="index.php?content_id=16"><<19 May 08<br />
</a></p><br /><a href="http://andrew.comfypage.com/17.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/17.htm</guid>
</item>
<item>
<title>08/05/25 Choosing a Browser</title>
<link>http://andrew.comfypage.com/19.htm</link>
<description><![CDATA[ <h3>25 May 2008</h3>
<h2>Choosing a Browser</h2>
<p>I just spent my Saturday figuring out a bug that only appears on some computers and only when theyre using Internet Explorer (IE).  Firefox, my browser of choice, worked fine.  This led me to realize something about browsers and the wrong headed way in which we pick which one to use.<br />
<br />
These days Internet users primarily fall into one of two groups.  Internet Explorer users and Firefox users.<br />
<br />
IE is installed by default with Windows which is the default choice of operating system for most people.  IE is thus the most commonly used browser on earth.<br />
<br />
Firefox is really common amongst techies.  Id guess that its usage rate runs at about 90% amongst programmers, network admins and IT people in general.  If theyre not on a mac running Safari theyre on linux or Windows using Firefox.  Why?  Im not sure actually. Allegedly its faster and more secure but I have no evidence for or against that myself.  Its apparently more standards compliant, but thats of dubious value to the user.  I think the most significant factor is that its not a Microsoft product.<br />
<br />
The way browser users have self selected along the lines of techies Vs everyone else has created a problem.  Most people who develop websites and software for the web use Firefox.  Most people who visit websites and use that software use IE.<br />
<br />
For people who are building stuff for the web that means that their product may appear to work for them, their friends (likely also techies), their colleagues and those who review their work.  It may however be broken in any number of subtle or not so subtle ways for regular non-techie users.<br />
<br />
Regular users will wander in using IE and be unsure why your site displays "funny" or seems to not work quite right.  In parts it may be overtly broken.  Theyre most likely not going to contact you to tell you.  They will just leave and not come back.  The person running the site will probably not be aware this is even happening.<br />
<br />
Even if the site owner tests in IE it wont be as thoroughly tested as Firefox due to their everyday usage.  I use ComfyPage everyday.  Until yesterday I pretty much exclusively used it in Firefox.  Its hard for any testing regime to compare with every day actual use.<br />
<br />
What can be done to prevent this browser split from harming your site? For users how can you make your Internet usage as unfrustrating as possible?  Its simple really.<br />
<br />
If youre a user then switch to Firefox.  Its free so just go and download it right now.  Chances are any website or piece of web based software you encounter was built by people who use Firefox.  It will have undergone not only formal testing in Firefox but everyday incidental testing that is often far more thorough.<br />
<br />
If you are a techie make IE your default browser.  See your site and your software as most of your users see it.  Get off your anti-Microsoft standards compliant high horse and just use the browser most of everyone else uses.  Think IE is a buggy slow poorly designed piece of junk?  All the more reason to use it everyday so you can make absolutely sure you've worked around every odd behaviour and inconsistency.<br />
<br />
And yes, Im writing this blog post in IE.<a href="index.php?content_id=16"><br />
</a></p><br /><a href="http://andrew.comfypage.com/19.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/19.htm</guid>
</item>
<item>
<title>08/05/24 A nice day for browser incompatibilities</title>
<link>http://andrew.comfypage.com/20.htm</link>
<description><![CDATA[ <h3>24 May 2008</h3>
<p>I really really dont like browser incompatibilities.  Works fine in firefox.  Doesnt quite work in IE.  Diagnosing this is exactly what i wanted to be doing on a saturday afternoon :(<a href="index.php?content_id=16"><br />
</a></p><br /><a href="http://andrew.comfypage.com/20.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/20.htm</guid>
</item>
<item>
<title>08/05/28 Joomla Problems</title>
<link>http://andrew.comfypage.com/21.htm</link>
<description><![CDATA[ <h3>28 May 2008</h3>
<h3>Joomla Problems</h3>
<p style="text-align: left;">Today Ive been doing some contract work.  Some flash development and some work on a Joomla site.  Im rapidly learning to dislike both pieces of software.  At the risk of enraging some people Ive detailed why Joomla in particular is bothering me in the hopes that we can all learn something.</p>
<h4>Design for Usability Not Architecture</h4>
<p>Joomla config screens each map to one table.  I haven't looked in the code to figure this out.  I can tell.  I can tell because if my article, for example, needs to be put in a category that doesn't exist yet I have to abandon my article, leave the article screen, go to the category screen, create my new category, then return to the article screen.</p>
<p>While Im sure this keeps the code very clean and concise it really sucks for the user.  Relying on the users to know the prerequisites of the thing theyre trying to create and to have already created them all is a profoundly bad thing.  Ive been using Joomla on and off for a few weeks and I still wind up abandoning half created articles and contacts on a regular basis to go create new prerequisite objects.  In some instances Ive had to abandon them two or three times because Im missing a section or category or something else.  This is amplified by sections and categories not being shared between users, documents and articles which Im grouping along departmental lines.  Im forever creating category X in one spot and forgetting to do it in another.</p>
<p>This emphasis on clean design over the user experience is like designing chairs to be easy to stack for storage even if it means theyre uncomfortable to actually sit on.  If something needs to be done let the user do it right there and then without abandoning their partially completed work.  The user's experience trumps every other concern.</p>
<h4>Provide Good Error Messages</h4>
<p>An error message should consist of the following two things:</p>
<ol>
    <li>What is wrong</li>
    <li>What the user should do</li>
</ol>
<p>I get error messages like "Directory error" and "check directory and/or directory permissions" far too often.  Check directory permissions?  I can infer that they mean check the user the web server is running as has read/write access but Im forced to guess.  Youre locking out a whole bunch of users who wont know what you mean and who will just get frustrated and go elsewhere.  Even for those of us that stay vague error messages that don't tell me what to do create a general sense of the software being buggy and hard to use.</p>
<p>If you can't tell the user what they have to do then why are you telling them anything?  "Something happened, you dont have to do anything as its already been handled, so just ignore this big red error message and relax" messages are always bad.  They frighten users and exist only to assure the programmer that his software is working correctly.  Figure that out by testing and not by piping debug info to the user interface.</p>
<h4>Test and Document Common Platforms</h4>
<p>Due to set in stone requirements from the client the site Im building will run on a Windows box.  Linux is my OS of choice these days but tough.  Windows it is.  That really sucks.  Not because Windows is bad or anything but because the software and all of its documentation and online resources assumes a linux platform.  I have the feeling no one actually involved with the project has tried setting up a Windows Joomla install.  Let alone a remote Windows Joomla install.</p>
<p>I've had all manner of permissions problems because of this.  To make having the problems worse when I try and look for information to help me guess what could be wrong all I can find is people telling me to SSH into the server and chmod stuff.  Its a remote Windows server that I only have access to within the browser.  No chmod.  No desktop, remote or otherwise.  Company policy.  To get to a desktop so I can manually go through each directory checking permissions I have to physically drive across town.</p>
<p>You might think that Im complaining about a problem specific to my own project but my circumstances are far from unique.  Companies want websites.  Companies are sometimes Windows only by executive fiat.  Companies routinely dont allow anything that even resembles remote desktop for security reasons and physical access isnt always convenient or even possible.  If your CMS cant work within these constraints you are ensuring that most of the businesses out there cannot use your product.  The software must cater to the requirements of the user.  Not the other way round.</p>
<p>Ok, I think thats it.  I hope that if anyone who is involved with Joomla reads this theyre able to take some constructive feedback from it.  Its not intended as an attack however Joomla has given me more than my fair share of wtf moments during this ongoing project.  Im now off to a meeting with the client to go over the list of areas in which Joomla is stubbornly refusing to work in an acceptable fashion.  If you need me Ill be between the rock and the hard place.  *sigh*</p><br /><a href="http://andrew.comfypage.com/21.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/21.htm</guid>
</item>
<item>
<title>08/06/04 Its a big wide world</title>
<link>http://andrew.comfypage.com/22.htm</link>
<description><![CDATA[ <h3>4 June 2008</h3>
<h2>Its a Big Wide World</h2>
<p>Lately Ive spotted an interesting phenomena in the traffic comfypage.com is getting.  Countries, or speakers of particular languages, seem to be discovering ComfyPage in serial.  That is to say one group discovers it, then that traffic slowly declines as our visitors get sites and thus have no need to come back to comfypage.com.  Just as Im beginning to worry about our traffic another group picks up ComfyPage and we get another spike.<br />
<br />
For example in the weeks worth of traffic portrayed below we got most of our traffic from Australia.  We're an Australian company so thats probably not suprising.  The darker the green the higher proportion of your visitors are coming from that country.</p>
<p><img width="377" height="164" alt="" src="site/UserFiles/Australia.gif" /><br />
<br />
The next week however most of our traffic came from Spain and the US.  Having looked through a number of the sites created during this time even those created by people in the US are mostly in Spanish.</p>
<p><img width="378" height="164" alt="" src="site/UserFiles/Spain_US.gif" /><br />
<br />
Here is a map of where our traffic has come from in the past week.  This week Brazilians are making up most of our new users and Portuguese is the language of choice for people's sites.</p>
<p><img width="382" height="163" alt="" src="site/UserFiles/brazil.gif" /></p>
<p>It just highlights what a big varied and interesting world we live in :)</p>
<p> </p><br /><a href="http://andrew.comfypage.com/22.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/22.htm</guid>
</item>
<item>
<title>08/06/07 The 6 Most Annoying Things On The Internet</title>
<link>http://andrew.comfypage.com/23.htm</link>
<description><![CDATA[ <h3>7 June 2008</h3>
<h2>The 6 Most Annoying Things On The Internet</h2>
<p>In no particular order</p>
<h3>Yet another person churning out the same set of SEO tips</h3>
<p>Use relevant keywords.  Write for humans.  Dont fill you site with 10 meg flash movies.  I get it.  We all get it.</p>
<h3>Video players that don't download all the way to the end when paused</h3>
<p>Due to my multitab browsing ways a video may have fifteen to twenty minutes between me opening the page and me actually working my way through the other tabs to get around to watching it.  In that time it should have downloaded the entire video.  You heard me.  THE ENTIRE VIDEO.  If after having had 20 minutes to download it plays 10 seconds then stops to buffer I just close the tab.  No exceptions.<br />
 </p>
<h3>Autoplaying videos, music or anything else that makes a noise</h3>
<p>No content, no matter how compelling, should ever think itself so important that it should begin playing the instant its buffered enough to play the first half second.  Until they start broadcasting those 'you have five minutes to get to a nuclear fallout shelter' warnings via digg no video deserves my instant attention.  I open a whole bunch of tabs at a time and I will watch that video when I am good and ready.<br />
 </p>
<h3>Flash based sites</h3>
<p>Bandwidth hungry and usually hard to use due to graphic designers trying to invent a new UI paradigm with every site.  Just say no.<br />
 </p>
<h3>Top 10s that are presented as an autoplaying slideshow</h3>
<p>I dont know how many times Ive got to a tab, one of many, only to find myself staring at a message like "we hope you enjoyed our list."  What list?  Ah, youre an autoplaying slideshow that clicked over while I was reading something else... *closes tab*<br />
 </p>
<h3>Digg/Reddit/Whatever stories where the joke isnt on the linked to page<br />
 </h3>
<p>Theres a witty one liner on your digg-esque site of choice.  You click on it and it opens a picture in another tab.  You then open ten other tabs and settle down to read them one by one.  Eventually you get to the picture which makes zero sense without the witticism on digg which youve long since forgotten.  You stare blankly for a second then close the tab.</p>
<p> </p>
<p> </p><br /><a href="http://andrew.comfypage.com/23.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/23.htm</guid>
</item>
<item>
<title>08/06/14 Another Day Another Update</title>
<link>http://andrew.comfypage.com/24.htm</link>
<description><![CDATA[ <p><strong>14 June 08</strong></p>
<h2>Another Day Another Update</h2>
<p><br />
Late last night we deployed the latest version of ComfyPage.  Based on information from users we made a number of tweaks and bug fixes.<br />
<br />
Although there's no amazing new functionality in this release I find these minor releases are the most gratifying.  I enjoy sanding off a product's rough edges.  Tinkering with the workflow to remove confusion, fixing minor bugs and reducing the effort it takes for the user to accomplish their goals pleases me a great deal.  You're not necessarily making the software do more but you're making it do it better.<br />
<br />
I think this is why I enjoy product development so much more than contract work.  I do contract work but I wouldn't say I love doing it.  With contract work you typically stop making improvements once you reach the point of "good enough".  The client typically isn't willing to pay you to continue working on something once its passed the good enough threshold.<br />
<br />
Lately we've been encountering some session related issues.  People getting logged out at random and some people not being able to log in.  It turns out that Internet Explorer 6 and 7 each have various sets of circumstances during which they will throw away session data.  This effectively logs the user out or prevents them from logging in at all.  Its annoying.  Its really annoying.<br />
<br />
In the course of reading up on the dozens of theories on how you can work around these problems I've seen a number of posts that phrase it from the perspective of the end user.  "If youre an IE user here's what you do"  It makes it sound like the end user is going to see that site X isnt working properly and take it upon themselves to debug the problem.  Suggesting that you could fix problems by modifying browser settings seems to suggest that someone out there thinks that site operators could simply put up a message that says "dear IE user, please turn your browser security down to minimum.  you can trust us.'<br />
<br />
This led me to the realization that you can divide the software development community into two groups.  There are those who develop software to run on an arbitrary machine and there are those who write software to run in a known environment.  In the wild Vs in a walled garden.<br />
<br />
For example software that anyone can download and run on any kind of computer anywhere in the world Vs software that only runs on corporate network where the operating system and browser are mandated by management.<br />
<br />
It seems a minor difference but its impact is huge.  Having a known environment for your software liberates you from worrying about a whole raft of issues.  Different operating system, operating system version, browser, browser version and previously installed software being there or not being there.  These things can all cause software failures and if some or all of them go away that makes the programmer's life much easier.  To state it another way the degree of difficulty varies according to the degree of variability in the environment.<br />
<br />
I think you can tell programmers who make their living writing software that will run in the wild rather than in a walled garden.  They're the programmers who hate external dependencies because each dependency is a potential failure point.  They're the programmers who always write proper error handling and error handling for their error handling because they know that all code will fail under some set of circumstances they can't possibly foresee and it'll be on a computer they don't have physical access to which is owned by someone who doesn't speak their language and has neither the time nor inclination to help identify the problem  so their error handling and error reporting had better be really really good and user's changing their browser config for you just isn't going to happen.</p><br /><a href="http://andrew.comfypage.com/24.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/24.htm</guid>
</item>
<item>
<title>08/06/23 Liferea   Basecamp</title>
<link>http://andrew.comfypage.com/27.htm</link>
<description><![CDATA[ <p><strong>23 June 08</strong></p>
<h2>Liferea + Basecamp</h2>
<p>I discovered something quite wonderful recently.</p>
<p>rss reader + basecamp rss feed = awesome<br />
<br />
A quick note on terminology for those unfamiliar with what Im talking about.  An rss reader is a piece of software which notifies you of new content on any website which publishes an rss feed.  basecamp is a service run by a company called 37 signals that lets you keep to-do lists.  Other stuff to but thats all I use it for.  You can find it at <a href="http://www.basecamphq.com">basecamphq.com</a><br />
<br />
The pairing of an rss reader that automatically updates regularly combined with basecamp's ability to maintain an rss feed thats updated when any to-do lists are changed is incredibly useful.  It means I have a little icon in my system tray that lights up when a task has been completed or a new task added.<br />
<br />
Any old bug tracking/task management system will email concerned parties when an item is closed or opened but that requires you to check your email and thus puts you in a position to be distracted by other emails unrelated to the tasks you need to get done.<br />
<br />
The rss reader Im using, <a href="http://liferea.sourceforge.net">Liferea</a>,  is free.  Basecamp is free if you only have a single project which I do so no cash down there either.  Im sure Ill ultimately wind up upgrading my Basecamp account and paying them something but its nice to get something genuinely useful and pleasant to use for free.<br />
<br />
This is one of those rare occassions where I find software that does exactly what I want and nothing else.  That makes me very happy :)</p><br /><a href="http://andrew.comfypage.com/27.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/27.htm</guid>
</item>
<item>
<title>08/07/01 Telemarketers as a metric of success</title>
<link>http://andrew.comfypage.com/28.htm</link>
<description><![CDATA[ <p><strong>01 July 08</strong></p>
<h2>Telemarketers as a metric of success</h2>
<p><font size="2">
<p>Running comfypage.com has been and continues to be an amazing experience. Ive learnt an incredible amount and am increasingly finding Im having experiences I never would have anticipated. In fact I just had one.</p>
<p>Its 11:30pm right now and I just got off the phone. I was sitting here tinkering with some code looking very glamorous in socks and trackies (aka sweatpants for you yanks) when a polite fellow from Washington rang me. If you'd have previously asked me what the likelihood was that Id be dealing with american telemarketers in the course of my day I would have said zero.</p>
<p>I have in fact been getting increasing amounts of unsolicited emails and now phone calls from all corners of the globe. Not the usual Bangalore call centres or Nigerian bank scams either. Various parts of the US, the UK, Brazil, Spain. All over really. Its quite exciting. I never know what accent will greet me when I answer my phone and what language Ill have to decipher when I open my email.</p>
<p>It might sound annoying but its really not. Not yet anyway. I could see how fielding sales calls in the middle of the night could get old fast but for now the sheer novelty of it has put a smile on my face.</p>
<p>Ive just concocted a theory that the frequency and nature of the unsolicited offers you receive can serve as a barometer for the progress being made by a startup. How many sales people a month call you from companies you've never heard of? How many other startups contact you each month? What stage are they at? After all you'd need a lot of partnership offers from one man bands to balance out one from facebook. Not that I have one from facebook :(</p>
<p>I might add some new columns to the statistics I keep to track comfypage.com.</p>
</font></p><br /><a href="http://andrew.comfypage.com/28.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/28.htm</guid>
</item>
<item>
<title>08/04/21 Welcome to andrew.comfypage.com</title>
<link>http://andrew.comfypage.com/3.htm</link>
<description><![CDATA[ <h3>21 April 2008</h3>
<p>In hindsight I probably should have picked a more exciting day to start this.  Monday is typically a slow day for me.  I always seem to find myself doing admin stuff on Mondays.  Over the weekend I put the finishing touches to a new add-on for <a href="http://comfypage.com">ComfyPage</a> as well as finishing the first version of a system I'm custom building for a client company.  Today was just a case of checking in the results of my weekend's coding and producing a few invoices.<br />
<br />
That followed naturally into bundling up the last quarters financial records to go to the bookkeeper.  This kind of fun stuff can devour a whole bunch of your time but its unfortunately often necessary if you want people to pay you and if you dont want the tax office on your case.<br />
<br />
Of course I made sure to find the time for the now traditional pre-lunch game of hackysack in the exercise yard.  What we lack in skill we make up in enthusiasm.<br />
<br />
I actually didnt write a single line of code today.  For any programmers who have never run a business this might seem odd.  For those who have run a business it may seem odd that I get to write any code at all.<a href="index.php?content_id=4"><br />
</a></p><br /><a href="http://andrew.comfypage.com/3.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Wed, 17 Feb 2010 22:58:45 GMT</pubDate>
<guid>http://andrew.comfypage.com/3.htm</guid>
</item>
<item>
<title>08/07/14 Internationalization Adding Multilingual Support</title>
<link>http://andrew.comfypage.com/30.htm</link>
<description><![CDATA[ <p><strong>14 July 08</strong></p>
<h2>Internationalization</h2>
<p><font size="2">Today we released some new functionality that I have very high hopes for.  You've always been able to produce web pages in just about any language/character set using ComfyPage but from today ComfyPage itself is now available in Spanish, Portuguese, French and Chinese (simplified).<br />
<br />
We have a lot of users from non-english speaking countries and we regularly get support emails in Portuguese in particular so hopefully this should make a lot of people's lives easier.  I dread to think what it must be like struggling through using a piece of software thats in english when you don't speak it.<br />
<br />
The way we've implemented it is pretty clever if I do say so myself.  We've ensured that adding more languages will be very quick and easy so our list of supported languages should grow pretty rapidly.  Its all part of our ongoing mission to put ComfyPage into the hands of people who've never had access to anything like it before.  Today is a good day.</font><font size="2"><br />
</font></p>
<p><font size="2">Update - 21 July 08</font></p>
<p><font size="2">I just added Hindi support in about 20 minutes.  Although building the language support infrastructure took longer than I anticipated we're already seeing the benefits.</font></p><br /><a href="http://andrew.comfypage.com/30.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/30.htm</guid>
</item>
<item>
<title>08/08/07 Poor IT Awareness Hurts Everyone</title>
<link>http://andrew.comfypage.com/32.htm</link>
<description><![CDATA[ <p><strong>07 Aug 08</strong></p>
<h2>Poor IT Awareness Hurts Everyone</h2>
<p>The governer of California, Arnold Schwarzenegger, is trying to cut the pay of state employees.  He saw a problem, a nail, and he used legislation, his hammer, to try and solve it.  To members of government legislation is a hammer with which they can solve any problem.  The government has no budget in place.  Legislate.  The price of petrol is too high.  Legislate.  The literacy rate is falling.  Legislate.  They just pass laws and thats it solved isnt it?<br />
<br />
No.  No, it isn't.  Unfortunately for our blissfully unaware political leaders the running of our society is underpinned by a network of computer systems which we can now no longer do without.  At least not without incurring extreme hardship.  In the case of the governator and the california state employees they cant be paid without their payroll system. He's allowed a window of several weeks for the pay cut to take effect.  The problem is that the required changes to the payroll system may take six months and may cost as much $177 million dollars due to the age of the payroll system and the rarity of programmers familiar with the arcane technologies with which it is constructed.<br />
<br />
Either they continue to pay people at the old rate in defiance of the governer which has all sorts of legal implications or they rush through changes to the payroll system at great expense with a good chance itll blow up in their face and no one will get paid at all leading to widespread economic hardship and potentially the temporary shutting down of all manner of government departments and government provided services.<br />
<br />
With a single stroke of the pen he has created a world of hurt for himself I doubt he ever saw coming.  At best he's inadvertantly created a situation that will cost the California tax payers tens if not hundreds of millions of dollars to resolve.  Thats an expensive pen stroke.<br />
<br />
We saw a similar, although rather less well publicized, situation here in Australia.  The Western Australian government decided they would introduce daylight savings.  However they wouldnt just introduce it.  They would hold a three year trial then decide whether or not they'd keep it.  To those in government this was a neat compromise solution.  A few simple edits to the legislation and they can all retire to get drunk in karaoke bars and sexually harrass their staff as seems to be traditional for West Australian politicians.<br />
<br />
For them having a trial was a beautiful solution that let the various political factions agree.  For anyone charged with implementing it it was a worst case scenario.  Do we need to support daylight savings in WA?  Definitely maybe.<br />
<br />
Imagine spending hundreds of hours updating your software systems and verifying that your Sydney computers and your Perth computers agree on the time with and without daylight savings in the different states.  Then make the computers smart enough to know on what dates daylight savings starts and stops in the various states.  Now throw in awareness of this three year trial and the fact that if daylight savings gets struck down after the trial all of this effort will have been for nothing.  Now multiply the cost of all of that effort by the number of companies that have at least one WA based computer handling accounting, inventory, sales reporting or anything else that cares about the time.  We're talking many millions of dollars and vast amounts of human effort that could have been better spent on other tasks.<br />
<br />
I hope they really enjoyed that karaoke.<br />
<br />
Knowledge of the computer systems that underpin the operation of our economy and society at large is now becoming a fundamental requirement for our leaders.  They simply cannot continue to legislate without fully understanding the impact of their actions.  Without familiarity with how large computer systems are built and maintained they're going to continue enact changes that appear simple but whose implementation is incredibly costly.  Every change they make is a potential landmine.<br />
<br />
Now in the 21st century we have enough lawyers and career politicians in parliament.  Now in the era of the Internet and ubiqitous computers underpinning everything we do its time to start getting some career IT people into government.</p><br /><a href="http://andrew.comfypage.com/32.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/32.htm</guid>
</item>
<item>
<title>08/08/25 wacosselection2008.org and the state election</title>
<link>http://andrew.comfypage.com/33.htm</link>
<description><![CDATA[ <p><strong>25 Aug 08</strong></p>
<h2>wacosselection2008.org</h2>
<p>Today I'm pleased to announce the launch of <a href="http://wacoss.comfypage.com">wacosselection2008.org</a> (please note that theyve since modified their ComfyPage site inline with their current campaigns so it no no longer contains information about the election).  The website, created for the <a href="http://wacoss.org.au">WA Council of Social Service Inc</a>, is designed to draw attention to the social policies of the various political parties and to gauge which issues impact most heavily on West Australians in the lead up the WA state election.</p>
<p>Head over there to check out the various party policies and, if you will be voting in the election, let the world know what issues matter most to you.</p><br /><a href="http://andrew.comfypage.com/33.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/33.htm</guid>
</item>
<item>
<title>08/09/11 City to Surf</title>
<link>http://andrew.comfypage.com/34.htm</link>
<description><![CDATA[ <p><strong>11 Sept 08</strong></p>
<h2>City to Surf</h2>
<p>I recently joined with almost 37000 other people to participate in the <a href="http://citytosurf.activ.asn.au">City to Surf</a>.  The City to Surf is an annual charity event consisting of a 12km race from the cbd to the coast.  12km is about 7.5 miles for those of you fond of all things imperial.</p>
<p>This year I did it in one hour, seven minutes and fourty four seconds.  Thats a little under 6 minutes a kilometre.  Given my almost total lack of preparation thats suprisingly quick.  I think a weeklong period of vegetarianism immediately preceeding the event may have had something to do with it.  After a week of spinach, tofu, tempeh and lentils I felt healthier than I ever have.  Indeed I was miraculously healthy enough to run the first nine kilometres before having to walk for a while.</p>
<p>And now Im going to make the same declaration I made last year.  Next year Im going to actually train...</p><br /><a href="http://andrew.comfypage.com/34.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/34.htm</guid>
</item>
<item>
<title>08/10/03 TV Coverage</title>
<link>http://andrew.comfypage.com/36.htm</link>
<description><![CDATA[ <p><strong>03 Oct 08</strong></p>
<h2>TV Coverage</h2>
<p>I just saw a ComfyPage website on national tv. <a href="http://aca.ninemsn.com.au" target="_blank">A Current Affair</a>, a news programme, just did a story on the people behind <a href="http://rentafarmhouse.com.au">rentafarmhouse.com.au</a>.  It was quite surreal seeing something you're involved with on tv.</p>
<p>The story generated a sizeable surge of traffic to <a href="http://rentafarmhouse.com.au">rentafarmhouse.com.au</a>.  I was worried that having this sudden surge of traffic on top of the usual load from all of our other sites would cause a problem however the system held up fantastically.  You can do all the load testing you like but until you start seeing big blocks of real traffic you can never be completely sure what will happen.  I'm very pleased with how ComfyPage performed.</p>
<p> </p><br /><a href="http://andrew.comfypage.com/36.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/36.htm</guid>
</item>
<item>
<title>08/10/03 Music for Monday</title>
<link>http://andrew.comfypage.com/37.htm</link>
<description><![CDATA[ <p><strong>13 Oct 08</strong></p>
<h2>Music for Monday</h2>
<p>I'm dont typically push politics let alone music on my blog.  However today I came across something I feel like I need to draw to your attention.  Everclear, an american band, has released a new song.  Its available to download for free from <a href="http://www.everclearonline.com">everclear online</a>.</p><br /><a href="http://andrew.comfypage.com/37.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/37.htm</guid>
</item>
<item>
<title>Archive</title>
<link>http://andrew.comfypage.com/38.htm</link>
<description><![CDATA[ <p>Some people say I don't talk enough.  Take a look at all of this and see if you agree.</p><br /><a href="http://andrew.comfypage.com/38.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/38.htm</guid>
</item>
<item>
<title>08/10/22 wacoss campaigns and poverty week</title>
<link>http://andrew.comfypage.com/39.htm</link>
<description><![CDATA[ <p><strong>22 Oct 08</strong></p>
<h2>wacosscampaigns.org</h2>
<p>We continue to support <a href="http://wacoss.org.au">WACOSS</a> and the work they do.  As such I'd like to direct your attention to <a href="http://www.wacosscampaigns.org">wacosscampaigns.org</a>.  With ComfyPage they are able to rework their website as they see fit and whenever they like.  They regularly run new campaigns so I look forward to seeing their site change with their needs.</p>
<p> </p><br /><a href="http://andrew.comfypage.com/39.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/39.htm</guid>
</item>
<item>
<title>08/04/22 Server Issues for Breakfast</title>
<link>http://andrew.comfypage.com/4.htm</link>
<description><![CDATA[ <h3>22 April 2008</h3>
<p>This morning I awoke at 5:30am to go to a business networking group I attend every week.  On impulse immediately before dashing out the door I went to my computer to have a look at the ComfyPage site I had been building late last night.  Instead of my site I got a 'congratulations on installing apache' screen.  Thats bad.  No networking for me today.<br />
<br />
One of our servers is hosted by a reputable hosting company I wont name.  Generally they've been excellent.  It appears however that overnight one of their techies, following a conversation with me about adding GD support to PHP on a BSD Unix machine, recompiled apache or did something else which busted our server.  My theory is that apache was recompiled and that apache thinks its a good idea to reset to default a subset of your config when that happens.<br />
<br />
Whoever did whatever was done to our server didnt check that their actions hadnt taken down our sites meaning it was left to me to discover.  I dont expect them to know in detail whether our system is operating as it should but they should at least be aware that a production server shouldn't be displaying a 'congratulations on your install' message.</p>
<p><strong>lesson 1: check you havent busted anything when you alter any system no matter how many times you've done it before</strong><br />
<br />
I was wary of altering the server until I knew precisely what was done.  I replied to the last email I got from support.  No reply thus far.  Ive been on their live chat support.  The guy I got was very understanding but apparently can't do much beyond updating my support ticket.  What is the point of having live support if its essentially just a human interface on your support ticket system?  I can update my own support tickets.  What I can't do is telepathically determine what was done to our server.</p>
<p><strong>lesson 2: People contacting support need help not sympathy.  Support people who can't actually help you are possibly worse than no support.</strong><br />
<br />
In the end we decided we couldn't leave the server down any longer as we were rapidly approaching business hours so we put on our investigating hats and jumped in.  We were quickly able to fix the server although I still haven't heard back from support.  Frustrating.  VERY frustrating.</p>
<p>I think its time I went and got some breakfast.</p>
<p style="text-align: center;"><a href="index.php?content_id=3"><<21 Apr 08</a>   <a href="index.php?content_id=6">24 Apr 08>></a></p><br /><a href="http://andrew.comfypage.com/4.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Fri, 19 Feb 2010 04:58:24 GMT</pubDate>
<guid>http://andrew.comfypage.com/4.htm</guid>
</item>
<item>
<title>08/10/27 SQL Server The Firehose and the Teacup</title>
<link>http://andrew.comfypage.com/40.htm</link>
<description><![CDATA[ <p><strong>27 Oct 08</strong></p>
<h2>SQL Server - The Firehose and the Teacup</h2>
<p>I received the following error message today from SQL Server's administrative console.</p>
<p style="text-align: center;"><img height="167" border="1" width="377" src="site/UserFiles/firehose.gif" alt="" /></p>
<p><em>Transaction cannot start while in firehose mode</em>.  I was in a client office at the time.  I'm not sure what kind of impression my bursting into laughter in an otherwise silent open plan office made on the staff who don't work directly with me.  I'm only at this client's office two days a week so I suspect most of them only know me as an anonymous transient who shows up now and then to disturb their office with messy hair and unexplained laughter.</p>
<p>I think more software should have a firehose mode.  That way I could pretend to be Captain Picard while saying "engage firehose mode".  That would give me an embarassingly large amount of pleasure.</p>
<p>Oh, and for the record I got the error while loading up all records for a large table and immediately trying to edit a field.  I suspect it doesn't like you trying to edit records while it's still pulling them from the server.  Waiting until it was done loading before editing made it work.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p style="text-align: center;"> </p><br /><a href="http://andrew.comfypage.com/40.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/40.htm</guid>
</item>
<item>
<title>08/11/06 Social Collapse and Camping</title>
<link>http://andrew.comfypage.com/41.htm</link>
<description><![CDATA[ <p><strong>06 Nov 08</strong></p>
<h2>Social Collapse and Camping</h2>
<p>I happened upon an interesting article that compared the US's capacity to deal with collapse relative to that of the Soviet Union.  You can find the article over here.</p>
<p><a href="http://madconomist.com/what-if-us-collapses-soviet-collapse-lessons-every-american-needs-to-know" target="_blank">what if the US collapses?  Soviet collapse lessons every american needs to know</a></p>
<p>First up, the wholesale collapse of the US as we know it seems awfully unlikely to me.  Don't take my linking to this as me saying that you should all run to your nearest bank, withdraw all of your money and spend it all on tins of baked beans and bottled water.  I'm guessing that the next few years will see substantial reductions in the number and size of overseas US military deployments and to hear the volume of the traditional American "we are so great" rhetoric turned down but total collapse of the "American Empire", as some have called it, seems unlikely.  You can hold off on buying that pallet of baked beans.</p>
<p>All the same I found this an interesting thought experiment.  How well would we, the spoilt fat white collar citizens of the western world, cope with outright economic and social breakdown?  Not well I'd say.  After all most of us have never really known poverty.  Most of us have never known hardship more severe than self inflicted credit card debt.  Most of us have never known hunger, experienced shortages, had to manage without abundant electricity, drinking water and easily replaced conveniences for any longer than a weekend camping trip.</p>
<p>Speaking of camping in a fortnight's time I'll be hiking part of the <a target="_blank" href="http://www.margaretriver.com/accom_result1/cape-to-cape-track/">cape to cape</a> with a friend.  We won't be doing the whole thing but are instead going to cover as much as we can in a 24 hour period.  Meanwhile our girlfriend's will be sitting in a spa sipping champagne and waiting for us to trudge in out of the wilderness.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p style="text-align: center;"> </p><br /><a href="http://andrew.comfypage.com/41.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/41.htm</guid>
</item>
<item>
<title>08/11/10 Sitemaps for multiple sites and domains</title>
<link>http://andrew.comfypage.com/42.htm</link>
<description><![CDATA[ <p><strong>10 Nov 08</strong></p>
<h2>Sitemaps for Multiple Sites and Domains</h2>
<p style="text-align: left;">I now know a lot about sitemaps.  More than I ever imagined there was to know.<br />
<br />
I've been attempting to get all ComfyPage sites indexed by Google etc.  Currently there is a large number of sites that are islands cut off from the rest of the Internet due to their lack of inbound links.  No inbound links means little traffic and no love from the search engines.<br />
<br />
My first thought was to simply put the subdomain listing add-on on a public page of comfypage.com.  That would create a page with links to all of the ComfyPage sites subdomained off comfypage.com ie most of them.  And it would take all of thirty seconds to do so I could get on with something else.  However, I was worried what impact this would have on our own search engine rankings.  After all, a single page with thousands of out bound links is unlikely to be interpreted as positive by any site ranking algorithm.  So maybe not.<br />
<br />
I turned then to sitemaps.  This seemed to be the officially sanctioned means of giving search engines a hand with finding pages they would otherwise miss.  The file format seemed easy enough.  Just concatenate some xml together and I'm done.  Surely...<br />
<br />
My first attempt was simply a file at comfypage.com/sitemap.xml generated by a php script that had a single entry for each subdomain.  Google's webmaster tools informed me that this was not allowed.  Some investigating revealed that each site should have its own sitemap and a sitemap index should be used to draw them all together.  Down the rabbit hole we go.<br />
<br />
A script to generate sitemaps and a sitemap index sounds easy enough.  But wait, each sitemap index can only have 1000 sitemaps in it.  We have significantly more sites than that so we need multiple sitemaps.  How then does Google find all of the sitemaps?  As it turns out you can simply list them all in robots.txt so thats going to have to be dynamically generated to.<br />
<br />
Ok, I believe I have solved it now.  A php script that is run once a week by a cron job.  The script generates a sitemap for each site.  I may later have each site manage its own sitemap but the batch approach will do for now.  It then figures out how many sitemap indexes we need, allocates each site to a sitemap index and finally updates robots.txt to list all of the indexes.<br />
<br />
Now I just need to wait till comfypage.com is reindexed to see how effective this has all been.  Google's webmaster tools say Im in the clear but only time will tell.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p style="text-align: center;"> </p><br /><a href="http://andrew.comfypage.com/42.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/42.htm</guid>
</item>
<item>
<title>08/11/12 Webjam 9</title>
<link>http://andrew.comfypage.com/43.htm</link>
<description><![CDATA[ <p><strong>12 Nov 08</strong></p>
<h2>Webjam 9</h2>
<p>Last Thursday I had the good fortune to attend <a href="http://webjam.com.au/webjam9">Webjam 9</a> in Perth, Western Australia.  It was great to see a whole bunch of local people getting on stage to present their ideas and products.  Its rare that a bunch of presentations manages to avoid descending into tedium but the fast paced format, with each presenter having only 3 minutes, was great.</p>
<p>Myles Eftos, presented an amazing clone of ITunes implemented entirely in Javascript.</p>
<p>Someone from <a href="http://buzka.com">Buzka.com</a> presented although, too be honest, I can't clearly remember the content of their presentation.</p>
<p>Lance Wiggs from <a href="www.trademe.co.nz">Trade Me</a> told the very short version of the story of Trade Me and their eventual acquisition by FairFax Media for $NZ 750.  It was kind of weird hearing someone bandying about numbers like that in a university tavern.  Still, its always great to hear a success story.</p>
<p>Darcy Laycock demo'd a really interesting piece of software that allows you to post to Twitter from IRC and vice versa.  I dont know how much demand there is for that but I still thought it was extremely cool.</p>
<p>The ultimate winner of the evening's friendly competition was Matt Didcoe.  Matt actually made two presentations.  First he presented <a href="http://wtnfb.com">Whens the Next Fucking Bus?</a>  Its simply a web page where you can enter a stop number to find out how long you're going to be waiting.  The uncaught exception it threw during the demo added a nice touch of realism.  Second, he presented <a href="http://soundfolder.com/">soundfolder.com</a>  This looks cool but I'm not entirely sure what it does...</p>
<p>All in all it was a highly enjoyable evening.  I laughed more than I have in a long time, met some interesting people and saw some interesting presentations.  I'll definitely be looking to go to more events like it in future.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p style="text-align: center;"> </p><br /><a href="http://andrew.comfypage.com/43.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Fri, 15 Jan 2010 16:59:08 GMT</pubDate>
<guid>http://andrew.comfypage.com/43.htm</guid>
</item>
<item>
<title>08/11/26 Save The Net</title>
<link>http://andrew.comfypage.com/45.htm</link>
<description><![CDATA[ <p>26 Nov 08</p>
<h2>Save The Net</h2>
<p>Over the centuries millions have given their lives fighting to gain and protect the right to say what they think and to read what they want.  Many millions more have died in silent anonymity having been denied those rights.  Given the suffering that was required to gain the freedom we currently enjoy and the even greater suffering that occurs in its absence I find it absolutely astonishing that Australia is in the process of instituting a mandatory filtering system of arguably the greatest tool for the preservation of free speech ever invented, the Internet.</p>
<p>This filtering system cannot be opted out of and exists to prevent access to websites based on a secret black list of "inappropriate" content.  To censor what the citizens of a democracy can read at all is unacceptable.  To censor by measuring content against such a subjective yardstick and to do it out of view of the Australian people is unforgiveable.</p>
<p>If you want to offer parents filtering as a means to help shelter their children then by all means do so.  Do it in the form of controls installed on their computer or require ISPs to offer an opt-in system.  But whatever you do don't try and institute an opt-out or mandatory system that slows down the Internet for everyone and inadvertantly blocks appropriate content while blocking content deemed to be undesirable by people who would be better off spending less time worrying about what others are reading, hearing and seeing.</p>
<p>To those who are pushing this solution, you disregard the warnings from your constituents to abandon this fools errand at your peril.  At best you're going to throw away tens of millions of tax payer's money to create something which won't work at all.  At worst those concerned with protecting their freedom will make it their personal mission to break this atrocity over their knee and your political careers with it.</p>
<p style="text-align: center;"><a href="http://www.getup.org.au/campaign/SaveTheNet" target="_blank"><strong>Click here to sign a petition</strong></a></p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/45.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Thu, 27 Nov 2008 21:54:36 GMT</pubDate>
<guid>http://andrew.comfypage.com/45.htm</guid>
</item>
<item>
<title>08/12/01 Cape to Cape Track</title>
<link>http://andrew.comfypage.com/46.htm</link>
<description><![CDATA[ <p>01 Dec 08</p>
<h2>Cape to Cape Track</h2>
<p>The <a href="http://www.capetocapetrack.com.au/pages.asp?code=10">cape to cape track</a> is one of Western Australia's more famous walking tracks.  It runs from Cape Naturaliste to Cape Leeuwin covering a total distance of 135km.  After much procrastion I finally teamed up with a mate, shouldered a pack and got out there.</p>
<p>We didn't complete the whole track as it takes approximately eight days.  Instead we started at Boronup Hill and went north to Prevelly covering approximately 30kms (18-19 miles) in a 24 hour period.  Waiting for us at our destination were our girlfriends at a Margaret River resort.</p>
<p>The first day was spent in the forest around Boronup Hill.  The forest is incredibly dense.  You certainly don't have to worry about losing the trail.  There are however a number of criss-crossing trails and it wasn't always entirely clear to us which we should take.  We did know that as long as we were heading north we were heading in the right direction.</p>
<table cellspacing="1" cellpadding="5" border="0" width="100%">
    <tbody>
        <tr>
            <td width="50%">
            <p style="text-align: center;"><img height="225" width="300" alt="" src="site/UserFiles/pb140874.jpg" /></p>
            <p style="text-align: center;">The tracks around Boronup wind their way through incredibly beautiful bushland.</p>
            </td>
            <td>
            <p style="text-align: center;"><img src="site/UserFiles/pb140872.jpg" alt="" /></p>
            <p style="text-align: center;">Periodically the trail reaches a peak where you can see some of the forest around you.</p>
            </td>
        </tr>
        <tr>
            <td width="50%" colspan="2">
            <p>The first day was very pleasant.  The terrain was relatively flat and the tree cover meant we were in the shade most of the time which kept the temperature down.  We had plenty of food and water to keep our energy up.  The only slight concern was my hiking partner experiencing some back pain as the day wore on.</p>
            <p>Towards the end of the first day we encountered a rather large hill climb.  Halfway up this hill my hiking partner's back went altogether.  We spent some time resting but faced with the prospect of either leaving him and going for help or somehow carrying my pack, his pack and him I performed an ad hoc chiropractic spine manipulation.  Luckily that seemed to at least temporarily fix him.  We continued on and discovered we were in fact only 100 metres from the Contos campsite where we were to spend the night so we were able to set up camp and get some rest.</p>
            </td>
        </tr>
        <tr>
            <td width="50%">
            <p style="text-align: center;"><img height="225" width="300" src="site/UserFiles/pb140889.jpg" alt="" /> </p>
            <p style="text-align: center;">The way forward</p>
            </td>
            <td>
            <p style="text-align: center;"><img alt="" src="site/UserFiles/pb140894.jpg" /></p>
            <p style="text-align: center;">The way back</p>
            </td>
        </tr>
        <tr>
            <td width="50%">
            <p style="text-align: center;"><img height="400" width="300" alt="" src="site/UserFiles/pb140877.jpg" /></p>
            </td>
            <td>
            <p style="text-align: center;"><img height="225" width="300" alt="" src="site/UserFiles/pb150897.jpg" /></p>
            <p style="text-align: center;">Our campsite.  During the night we were visited by a group of kangaroos.  As the sun rose they were replaced by kookaburras.</p>
            </td>
        </tr>
    </tbody>
</table>
<p style="text-align: center;"> The second day was along the coast.  Initially along cliff tops and then along the beach.</p>
<table cellspacing="1" cellpadding="5" border="0" width="100%">
    <tbody>
        <tr>
            <td width="50%">
            <p style="text-align: center;"><img height="225" width="300" src="site/UserFiles/pb150902.jpg" alt="" /></p>
            <p style="text-align: center;">First sight of the ocean</p>
            </td>
            <td>
            <p style="text-align: center;"><img height="225" width="300" src="site/UserFiles/pb150906.jpg" alt="" /></p>
            <p style="text-align: center;"> </p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p style="text-align: center;"> <img height="225" width="300" alt="" src="site/UserFiles/pb150909.jpg" /></p>
            <p style="text-align: center;">My ugly mug</p>
            </td>
            <td>
            <p style="text-align: center;"><img height="225" width="300" alt="" src="site/UserFiles/pb150915.jpg" /></p>
            <p style="text-align: center;">The terrain along the coast.  It consists of low hills covered in low often prickly scrub.  Despite being on the coast the lack of shade made this the hottest section of our journey.</p>
            </td>
        </tr>
        <tr>
            <td valign="top">
            <p style="text-align: center;"><img src="site/UserFiles/pb150923.jpg" alt="" /></p>
            <p style="text-align: center;">Caves of varying size dot the coastline</p>
            </td>
            <td>
            <p style="text-align: center;"> <img alt="" src="site/UserFiles/pb150928.jpg" /></p>
            <p style="text-align: center;">Redgate beach.  Arguably one of the most beautiful beaches anywhere.  This photo doesn't do justice to the beach itself or the amazing break being enjoyed by only a handful of surfers.</p>
            </td>
        </tr>
    </tbody>
</table>
<p style="text-align: center;"> The final section of our trek was along the beach.  If you think you're fit then a few kilometres of walking on sand carrying a pack will show you that you're not.  The section along the beach make for a suitable gruelling conclusion to our hike :)</p>
<p style="text-align: center;"><img height="225" width="300" alt="" src="site/UserFiles/pb150934.jpg" /></p>
<p style="text-align: center;"> </p>
<p style="text-align: center;">Here are some tips for anyone considering doing the cape to cape or going hiking anywhere.</p>
<ol>
    <li style="text-align: left;">Carry 3 litres of water per person.  No excuses.  Our hike was a fun little adventure in part because we were never short of food to eat or water to drink.</li>
    <li style="text-align: left;">Just because there are waterpoints marked on the map doesn't mean that it will be drinkable without boiling or treatment with water purification tablets.  Purification tablets, while foul tasting, are cheap and light so buy a pack even if you don't think you'll need them.  Unpleasant tasting water is better than having to walk out while being violently ill.</li>
    <li style="text-align: left;">Always put a couple of teabags in your medical kit.  If you get into trouble and you're not sure what you're going to do then sit down and make yourself a cup of tea.  Once you've calmed down you're much more likely to make smart decisions.</li>
</ol>
<p>Actually, thats not bad advice for startups either.  Have more resources than you think you'll need if the consequences of running out would be very bad.  Promised resources may not live up to expectations.  Take your time when making big decisions.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/46.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sun, 30 Nov 2008 23:51:15 GMT</pubDate>
<guid>http://andrew.comfypage.com/46.htm</guid>
</item>
<item>
<title>08/12/10 Why Ads Will Not Save Your Business</title>
<link>http://andrew.comfypage.com/47.htm</link>
<description><![CDATA[ <p>10 Dec 08</p>
<h2>Why Ads Will Not Save Your Business</h2>
<p style="text-align: left;">Advertising seems to be the default source of revenue for online businesses.  If you've got nothing to sell just slap some ads on whatever you do have.  Its quick.  Its easy.  Its practically free money! Here at Affinity Software we to have been drawn by the siren song of advertising revenue.</p>
<p style="text-align: left;">our flagship product, ComfyPage, draws part of its revenue from advertising.  Specifically Google Adsense.  For those of you not familiar with ComfyPage it's an easy to use website building tool which we run as a hosted service.  Sites get an allocation of page views free every month.  If they consume those page views they can opt to buy more thus staying ad free or we simply append an adsense block to the bottom of each page.  Its a relatively non-invasive way in which we are able to generate the revenue needed to keep the service online.<br />
<br />
With ComfyPage we typically have a CPM (revenue we receive per 1000 ad displaying page impressions) of between $1 and $2.  I'm told that's pretty good.  With a pool of happy users building sites and ads converting to revenue at a reasonable rate all should be well in ComfyPage land.  It should be but it's not.<br />
<br />
I recently dug a little deeper into our Adsense stats and looked at at particular time window containing 50 thousand page views.  That 50 thousand page views generated $110 in revenue which gives us a CPM of $2.20.  Pretty rosy.  But think about those numbers for a minute.  Assume that each unique visitor viewed 5 pages.  That means that 50 thousand pages is made up of 10 thousand unique people.  10 thousand unique humans beings with problems they need solved and wants going unmet.  Most businesses would kill to have a chance to say something to 10 thousand people.  And most businesses could make a hell of a lot more than $110 doing it.<br />
<br />
If we could actually sell something into that crowd, even if we only sold 1 unit for every thousand people and we only made $11 dollars on each unit, we would be matching our ad revenue.  Make more profit per unit and you can rapidly outstrip ad revenue by a significant multiple.  Surely we can manage to at least match our ad revenue so why the hell are we running ads for other people's products instead of selling our own?</p>
<h3>Outsourcing Sales</h3>
<p style="text-align: left;">The reasons for relying on ads are mostly emotional.  By running ads instead of selling something yourself you are effectively outsourcing the whole sales process.  "Ill draw a crowd.  You sell them something and give me a cut." You are saying that you prefer not to have to deal with the whole uncomfortable process of asking for money.  After all, the committment level needed for someone to use an ad supported service is way lower than is required for them to pay out even a single dollar of their own money.  Why go through the rejection inherent in actually selling something?  Why risk undertaking the emotionally bruising process of building something people will actually have to pay for when someone else can handle that unpleasantness for you and just send you a monthly cheque?<br />
<br />
There's one problem with that little scheme which is that when you outsource sales you also outsource profits.  The real money is made providing people with products and services for which they pay real cash money.  For example it takes a hell of a lot of page views to generate ad revenue equivalent to the sale of a single copy of a software product or service for $139.  With a CPM of $1 that's 139,000 page views.  That's a lot.  That's way more than I think most people really comprehend.  And thats to match the revenue generated by a single sale...<br />
<br />
Worse than the sheer volume of page views that are necessary to generate enough ad revenue to keep a business running is the often overlooked fact that by running ads you're sending people away.  If they had bought something from you that they're happy with they'll likely market it for you.  If I buy a brand new DogPolisher 3000 from you and love it I'll tell my friends which means more sales for you.  By comparison no one in the history of the world has ever said "I went to site X and clicked on an ad that really pleased me.  You should go there and click on an ad to."  Assuming you're selling something that pleases people a sale today likely means more sales tomorrow.  Ad revenue does not have the same compounding effect.  Once someone clicks on an ad they're gone.<br />
<br />
But what about Google I hear you say.  They make billions from ads.  You aren't Google.  Google is different from just about every other Internet company in one important way.  When Google runs ads they are in fact marketing their own service.  Every block of adsense ads is an implicit ad for adsense itself.  And from the advertiser's perspective adsense is very much a paid service.  Google advertises their own ad distribution service then taxes every transaction that flows through it.  That ensures that, basically no matter what, Google gets paid.  Owning the ad marketplace and taking a piece of every transaction is very different from simply running ads.<br />
<br />
Don't take this as me saying advertising is a bad idea or that it can't make money.  Advertising revenue is going to continue to be a big part of commerce on the Internet probably forever.  There are people who make good money from ads.  However, if you think you can just add advertising to a website or service and have a viable business you are almost certainly wrong.  Even if you can get enough ad revenue to make a business you could almost certainly be making far more by actually selling your own products or services rather than outsourcing that task to your advertisers.  There's a reason why there are no companies with billion dollar revenue streams that DONT sell their own products and services to paying customers.  Think about it.<br />
<br />
Starting from now ComfyPage is no longer running adsense ads.  It is now running ads for our own products and services.  We're going to have to do some work with our ads and to come up with some more compelling offerings but from today we're not outsourcing making sales anymore.  We are not going to bunt by taking ad revenue.  Instead we're going to to swing for the fences by selling our own stuff ourselves.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/47.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Fri, 12 Dec 2008 00:14:09 GMT</pubDate>
<guid>http://andrew.comfypage.com/47.htm</guid>
</item>
<item>
<title>08/12/11 Choosing a New Programming Language</title>
<link>http://andrew.comfypage.com/48.htm</link>
<description><![CDATA[ <p>11 Dec 08</p>
<h2>Choosing a New Programming Language</h2>
<p>Choosing a programming language is a thorny issue.  Everone seems to have a favourite language which they swear is the greatest language ever invented while everything else closely resembles something you would scrape off the bottom of your shoe.  The resulting flag waving and propaganda makes it very difficult to make an impartial assessment of which language in which to write a new project.  Faced with this problem I believe I have a novel solution.</p>
<h3>Job Numbers as a Metric for Goodness</h3>
<p>Go to the major IT job board in your area and type in a number of programming languages one by one.  Record the number of jobs returned.  This gives you a rough idea of the employability of people with experience in that particular language.  But why do you care about employability?<br />
<br />
Most startups fail.  Most go broke and leave the founders looking for a new gig.  That new gig might well take the form of a job in an established company.  An established company like those that advertise for programmers on Internet based job boards.  Choose a marketable language and your worst case scenario is that your company fails but in the process you gain some marketable skills that enable you to stay out of the gutter.<br />
<br />
With this thought in mind I pulled up job board X (obviously not its real name) and obtained the following results.</p>
<table cellspacing="1" cellpadding="1" border="0" align="center" width="300">
    <tbody>
        <tr>
            <td><strong>language</strong></td>
            <td><strong>#job ads</strong></td>
        </tr>
        <tr>
            <td>.net</td>
            <td>2006</td>
        </tr>
        <tr>
            <td>php</td>
            <td>556</td>
        </tr>
        <tr>
            <td>python</td>
            <td>167</td>
        </tr>
        <tr>
            <td>ruby</td>
            <td>38</td>
        </tr>
    </tbody>
</table>
<p>First up, I know .net isnt a language as such but Im lumping vb, c# and the whole kit and kaboodle into the one category for the sake of simplicity.</p>
<p>It seems that .net is by far the most marketable area of expertise while ruby is the least.  Take another look at that list of languages.  Notice anything else?  Did you notice that the order of marketability is also order of "uncoolness"?</p>
<h3>You can be cool or you can be popular.  Pick one.</h3>
<p>To the best of my knowleddge no hot new startups are using .net.  Lots of established companies are.  Lots of startups are using ruby.  A tiny number of established companies are.  Python and php fall somewhere between the two with both startups and established businesses.  Oddly startups seems to choose programming languages with a preferance precisely the opposite to the rest of the world.<br />
<br />
That kind of sucks are far as my theory goes.  It seems I have a choice between employability in startup land and employability in the rest of the world.  I can be either a hip startup hacker or a blue suit wearing code grinder.  *sigh*<br />
<br />
Ah, forget it.  I already know .net and php.  I'm tossing a coin to decide between python and ruby.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/48.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Fri, 12 Dec 2008 00:03:43 GMT</pubDate>
<guid>http://andrew.comfypage.com/48.htm</guid>
</item>
<item>
<title>09/01/17 Off  The Cuff App </title>
<link>http://andrew.comfypage.com/55.htm</link>
<description><![CDATA[ <p>17 Jan 09</p>
<h2>Off The Cuff App</h2>
<p>
<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE">
<title></title>
<meta content="OpenOffice.org 2.4  (Linux)" name="GENERATOR"> 	<style type="text/css">
	<!--
		@page { size: 21cm 29.7cm; margin: 2cm }
		P { margin-bottom: 0.21cm }
	-->
	</style>                  </meta>
</meta>
</p>
<p>Last night while driving home and thinking about my upcoming trip to Chiang Mai in Thailand I had an idea for a website.  Holiday ideas.  Not a site to help you book holidays.  A site that gave you ideas for holidays.  Lots of people will sell you flights and accomodation but how many will tell you where to go?  How many people will go beyond "if you're going here then here are some things to do while there" and say "all your ideas are boring so here are some things that you never would have thought of."  After all, I can book my own flights.  What I need is someone to suggest destinations that never would have occurred to me.</p>
<p>So I decided to build a site to convince people that their planned trip to New York, Paris, London or Rome is dull and to suggest alternatives.</p>
<p>Rather than putting in a bunch of effort up front I've thrown together a rough version and put it on the web.  The time consumed thus far is about one hour of programming and three hours of writing content and selecting photos from the enormous library of photos my girlfriend and I have taken over the past few years.  Digging through the photos was actually the biggest task.</p>
<p>Right now it really doesn't do a lot.  All it does is randomly suggest a location from a list of places (where I have been).  Each place has a photo, a short blurb and a block of ads which will hopefully be of interest to people who I have managed to convince to look further afield.  If there is a reasonable level of traffic and a little ad revenue I'll take that as an indicator that this is worth expending more effort on.  At that point I'll add more functionality and a much larger database of potential destinations.  For now however I'm just going to put it out there and see what happens.</p>
<p>So anyhow, here it is.  <a href="http://youregoingto.appspot.com/">Click here for holiday ideas</a>.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/55.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sat, 17 Jan 2009 06:21:37 GMT</pubDate>
<guid>http://andrew.comfypage.com/55.htm</guid>
</item>
<item>
<title>09/01/23 Access 2003 is really slow switching to code and design view</title>
<link>http://andrew.comfypage.com/57.htm</link>
<description><![CDATA[ <p>23 Jan 09</p>
<h2>Access 2003 is really slow switching to code and design view</h2>
<p>
<meta content="text/html; charset=utf-8" http-equiv="CONTENT-TYPE">
<title></title>
<meta content="OpenOffice.org 2.4  (Linux)" name="GENERATOR"> 	<style type="text/css">
	<!--
		@page { size: 21cm 29.7cm; margin: 2cm }
		P { margin-bottom: 0.21cm }
	-->
	</style>      </meta>
</meta>
</p>
<p>I've just spent a few days struggling through with Access taking a full 60 seconds to switch to and from form view and either design view or code view.  While viewing a form, right click, select design view and... wait for it... wait for it... wait for it... hurrah, design view loads.  Click on the code view window and the same agonizing wait ensues before it finally displays.</p>
<p>It turns out this has an exceptionally simple fix although it's one that I find somewhat baffling.  Set your default printer to be the Microsoft Office Document Image Writer.  That's it.  What does the default printer have to do with the switching between windows within  Microsoft Access?  Nothing that I know of.</p>
<p>I don't know why it works but it does.</p>
<p><span style="text-decoration: underline;"> </span></p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/57.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Thu, 22 Jan 2009 18:27:46 GMT</pubDate>
<guid>http://andrew.comfypage.com/57.htm</guid>
</item>
<item>
<title>09/01/28 Birds of a Feather are Tested Together</title>
<link>http://andrew.comfypage.com/58.htm</link>
<description><![CDATA[ <p>28 Jan 09</p>
<h2>Birds of a Feather are Tested Together</h2>
<p>
<meta http-equiv="CONTENT-TYPE" content="text/html; charset=utf-8">
<title></title>
<meta name="GENERATOR" content="OpenOffice.org 2.4  (Linux)"> 	<style type="text/css">
	<!--
		@page { size: 21cm 29.7cm; margin: 2cm }
		P { margin-bottom: 0.21cm }
	-->
	</style>          Birds of a feather flock together, so they say.  The same is often true of software.  Associated pieces of software that form natural complements are frequently used together and thus tested together.  They may well function adequately in isolation but as someone just trying to get their app up and running you ignore these associations at your peril.  </meta>
</meta>
</p>
<p>As an example of two groups of software that are in common usage there are two common stacks used to develop web based software...</p>
<p>First up is the Microsoft way.  WIndows as your OS, IIS as your web server, Sql Server as your database and .net as your development environment.  All of these pieces of software were developed to work hand in hand by a single company.  Presumably their interactions are thoroughly tested.  If you're lucky you'll even get a few freebies in the form of free functionality or performance and faster development if you run Microsoft software end to end.</p>
<p>Secondly, theres the Lamp stack.  Lamp consists of a Linux operating systems, Apache web server, MySql database and php or python as your development environment.  These are all pieces of open source software in common use within the programming community.  Although these tools are developed by different people but there is an expectation that they will be used together.  If you were to look at the population of users of any one item from the lamp stack I'd say you'd find the majority are using the lamp stack in its entirety.  If you're using Php its a pretty safe bet you're also using Linux, Apache and MySql.</p>
<p>In either case the interactions between the various pieces of software are well tested through real world use.  If you are writing a Python app on Apache and Linux you're on safe ground as chances are the people who wrote Python itself and the majority of Python apps running on the web were written and tested on Apache and Linux.  The majority of the bugs have been found and fixed long before you ever wrote your first line of Python.  The same is true of the Microsoft stack.  The chances of you encountering a bug in the way that .net and IIS interact is very slim.</p>
<p>Where things get risky is if you mix tools from various groups.  I still regularly encounter people running Windows, IIS, Sql Server and Php.  Sure, you can get it to work but you're off in the wilderness.  Very few of the core Php contributors are Windows or Sql Server users and Php is unlikely to be a high priority for the Windows and IIS teams at Microsoft.  You are operating in a relatively untested space between two camps where you can expect the assistance of neither if you run into problems.</p>
<p>As a testament to this to replicate a client's setup I had to get Php on a Windows machine to connect to Sql Server.  To do this I had to track down an old version of ntwdblib.dll on the net and put it on the server.  Think about that for a moment.  I had to manually replace a DLL to get mssql_connect ($host, $username, $password) to work.  Why? Because evidently not a single person involved in the development of Php ever tried running the latest version on a Windows machine and connecting to an Sql Server database.  Why would they?  They're not running Windows or Sql Server.</p>
<p>Typically programmers will talk about selecting a programming language.  They are programmers after all and what programmers care about is programming languages and not databases or web servers.  Having made that choice they just go with whatever OS, web server and database they happen to already have installed or have ready access to.  The operating system, database and web server typically receive little more than fleeting consideration.  This is an extremely foolish way to make a decision that you're going to have to live with for a very long time.</p>
<p>Rather than picking a programming language then going with your personal default when selecting an OS, database and web server pick an entire family of related pieces of software.  Don't pick Php.  Pick the lamp stack.  Don't pick .net.  Pick the whole Microsoft stack.   And if you don't then don't come crying to me when you run into some Python + Apache + Windows + Sql Server edge condition that no one wants to help you fix.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/58.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 27 Jan 2009 21:24:33 GMT</pubDate>
<guid>http://andrew.comfypage.com/58.htm</guid>
</item>
<item>
<title>09/02/07 Free Flash Hosting</title>
<link>http://andrew.comfypage.com/59.htm</link>
<description><![CDATA[ <p>07 Feb 09</p>
<h2>Free Flash Hosting</h2>
<p style="text-align: left;">It occurred to me that some people might be interested in being able to use a tool as easy to use as ComfyPage to make their Flash movies available on the Internet.  Accordingly I have created <a href="http://flashhosting.comfypage.com">flashhosting.comfypage.com</a>.  People signing up through that site will find themselves the proud owners of a fully functional ComfyPage website no different than if they had signed up through comfypage.com.  They will however go through a site setup wizard which is specifically tailored to users simply wanting a place to put flash movies.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/59.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sat, 07 Feb 2009 08:01:06 GMT</pubDate>
<guid>http://andrew.comfypage.com/59.htm</guid>
</item>
<item>
<title>08/04/24 Stepping Up</title>
<link>http://andrew.comfypage.com/6.htm</link>
<description><![CDATA[ <h3>24 April 2008</h3>
<p><img align="left" alt="" src="site/UserFiles/building.JPG" />I just received my registration pack for Step Up for MS.  Step Up is an annual fundraising event that involves participants climbing to the top of Perth's tallest building.  Its a great event that's a lot of fun/pain and raises money for a good cause.<br />
<br />
According to the letter they sent me I climbed those 1096 stairs in 16:09 last year.  I was too busy being blinded by sweat and trying to ignore my screaming leg muscles to take any note of my time so I'll take their word for it.  Hopefully this year I can do better.  Some sort of training may be in order...<br />
<br />
I'll chase up a donate link once Ive sorted out my registration.<br />
<br />
In other news I've been able to spend two solid days working on the ComfyPage code which is absolutely lovely.  Between Cameron and I we've added some cool stuff lately.  Today we finished off some enhancements to the file browser to make ComfyPage smarter with regards to image sizes.  It can now autoresize large images to make sure people's sites load nice and fast.  We also finished a gallery add-on that takes some/all of the effort out of displaying groups of images.<br />
<br />
The image gallery add-on was created following a conversation with a user.  I'll drop them a line once its been deployed.  Contacting people to tell them that I've solved that problem we were just talking about is rapidly becoming one of my favourite things in the world.</p>
<p style="text-align: center;"><a href="index.php?content_id=4"><<22 Apr 08</a>   <a href="index.php?content_id=7">28 Apr 08>></a></p><br /><a href="http://andrew.comfypage.com/6.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/6.htm</guid>
</item>
<item>
<title>09/02/22 That Alexa Website</title>
<link>http://andrew.comfypage.com/60.htm</link>
<description><![CDATA[ <p>22 Feb 09</p>
<h2>That Alexa Website</h2>
<p>I just realized that that Alexa website is pretty much bogus.  I've tracked the Alexa ranking of comfypage.com for some time now.  Over time we have risen reasonably steadly through the rankings.  Although I once saw our one week average peak at about 99,000, from memory, our three month average has been pretty stable in the mid two hundred thousands.</p>
<p>Recently however I moved to Thailand.  That means I haven't been on the net much for the past fortnight.  More specifically it means that my alexa plugin enabled browser hasn't been on the web much lately to report my activities back to the Alexa website.  Since I left Australia our Alexa rankings have plunged to about 900k.  That's weird...</p>
<p>Something else is weird.  According to Alexa our most popular site is andrew.comfypage.com.  This site.  According to Alexa andrew.comfypage.com accounts for 38% of comfypage.com's total traffic.  Although I've had some nice sized spikes in traffic the average number of people coming to this site on any given day is typically in the sub five region.  I personally make up a big chunk of my own readership.</p>
<p>By contrast comfypage.com itself, which gets two orders of magnitude more traffic is apparently only contributing 17% of our traffic.  That just doesn't make sense.</p>
<p>I can only think of one explanation for these two phenomena.  A big chunk of Alexa's statistics for comfypage.com are derived from my own personal net usage.  I go to andrew.comfypage.com a lot because I post here.  That explains the conspicuously large amount of traffic Alexa claims this blog receives.  And of course when I'm off the net this site's reported traffic goes down hence comfypage's plunging ranking.</p>
<p>That's right folks, a big chunk of Alexa's stats for comfypage.com are based on the net usage habits of a single individual.</p>
<p>This is all inferred based on what information Alexa makes public but Alexa's stats appear to be being extrapolated from a really small pool of data.  So small that it calls into question their veracity or usefulness.  If our rankings are hinging on my personal net usage then I could easily pump up our ratings by simply hiring a few new staff and mandating that they install the Alexa plugin.  For that matter I could simply ask my friends and family to install the plugin and set their homepage to comfypage.com.  If I alone can get comfypage.com to ~240,000 then my mum and dad may well see us crack the top 200k.</p>
<p>Take these rankings with a grain of salt folks.  They may not be all that they appear to be.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/60.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sun, 22 Feb 2009 09:48:54 GMT</pubDate>
<guid>http://andrew.comfypage.com/60.htm</guid>
</item>
<item>
<title>09/02/23 Thailand Internet Access</title>
<link>http://andrew.comfypage.com/61.htm</link>
<description><![CDATA[ <p>23 Feb 09</p>
<h2>Thailand Internet Access</h2>
<p>I've plugged my laptop into the LAN they have in the guesthouse we're staying at here in Chiang Mai, Thailand.  The Internet is amazingly fast.  Most sites load almost instantly.  I havent had any youtube videos stop to buffer even when I open 3 or 4 at once.  At home in Perth I'm in the habit of queuing up a video or two then going and getting a cup of tea while they buffer.  No need for that habit here.</p>
<p>I'm not sure how its so fast here yet so slow in Perth.  I'm sharing a single net connection with multiple other people and I literally have uncleared jungle outside my window yet i have net access that id say is 3-4 times quicker what i had in Perth, Australia.</p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/61.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Mon, 23 Feb 2009 06:07:02 GMT</pubDate>
<guid>http://andrew.comfypage.com/61.htm</guid>
</item>
<item>
<title>09/03/30 Ronald on the cross</title>
<link>http://andrew.comfypage.com/62.htm</link>
<description><![CDATA[ <p>30 March 09</p>
<h2>Ronald on the Cross</h2>
<p style="text-align: center;">I saw this on the weekend on a Chiang Mai (Thailand) lamp post.</p>
<p style="text-align: center;"><img alt="" src="site/UserFiles/ronaldOnTheCross.jpg" /></p>
<p style="text-align: center;"><a href="index.php?content_id=38">Previous Posts</a></p>
<p> </p><br /><a href="http://andrew.comfypage.com/62.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Mon, 30 Mar 2009 04:33:46 GMT</pubDate>
<guid>http://andrew.comfypage.com/62.htm</guid>
</item>
<item>
<title>09/04/17 ComfyPage Announcements</title>
<link>http://andrew.comfypage.com/63.htm</link>
<description><![CDATA[ <p style="text-align: left;"> 17 April 09</p>
<p style="text-align: center;">I've been doing some ComfyPage development of late.  Below are links to the last two newsletters.</p>
<p style="text-align: center;"><a href="http://newsletter.comfypage.com/index.php?content_id=11">March newsletter</a></p>
<p style="text-align: center;"><a href="http://newsletter.comfypage.com/index.php?content_id=12">April newsletter</a></p><br /><a href="http://andrew.comfypage.com/63.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Fri, 17 Apr 2009 07:15:04 GMT</pubDate>
<guid>http://andrew.comfypage.com/63.htm</guid>
</item>
<item>
<title>09/06/15 My whereabouts.  What are you doing in Thailand?</title>
<link>http://andrew.comfypage.com/64.htm</link>
<description><![CDATA[ <p style="text-align: left;"> 15 June 09</p>
<p>Its time I let you in on a little secret.  I'm not in Perth anymore.  I'm not even in Australia anymore.  I have in fact left our <a href="http://affinitysoftware.net/index.php?content_id=8277894">prison cell office</a> by the sea and have relocated to Chiang Mai in the mountains of north west Thailand near the Myanmar border.  I have been living in Thailand for about 4 months now.</p>
<p>Since arriving in Chiang Mai I have completed a 4 week teaching english as a foreign language (TEFL) course at <a href="http://siameducationalexperience.org">SEE</a> and begun fulltime work as a primary/elementary/pratom teacher.  The change in work and work environment has been exciting and has seen me begin to develop all sorts of skills you don't really need when you're programming for a living.  Oddly, building software didn't fully prepare me for teaching six year olds who don't speak the same language as me.</p>
<p>In between undertaking further education and learning to make a living in a completely new profession we've also taken the opportunity to travel extensively within Thailand.  My girlfriend and I maintain a travel blog where you can <a href="http://tna.comfypage.com">read all about our (mis)adventures</a>.</p>
<p>So, what does all of this mean for ComfyPage and for Affinity?  Very little really.  My phone numbers have changed but my email, twitter et al are still the same.  While my pace of work has inevitably slowed due to my new committments, I'm still working on ComfyPage and other projects.  And rest assured that there is a grand purpose behind all of this that will present itself in the fullness of time :)</p><br /><a href="http://andrew.comfypage.com/64.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Mon, 15 Jun 2009 08:37:33 GMT</pubDate>
<guid>http://andrew.comfypage.com/64.htm</guid>
</item>
<item>
<title>09/09/06 What people are saying about us and our band website</title>
<link>http://andrew.comfypage.com/68.htm</link>
<description><![CDATA[ <p style="text-align: left;"> 6 September 09</p>
<h1>What are people saying about us and our band website?</h1>
<p>I'm pretty lazy really. Tasks like keeping track of what is being said about my company and it's products online are, frankly, a real chore. A chore that I found sufficiently tiresome that I created a little app to make it easier. <a href="http://whatpeoplearesayingaboutus.com">What people are saying about us</a>. It's a simple little thing I built while Cameron was resting during his encounter with the traditional "welcome to Thailand" food poisoning.</p>
<p>Type in your product name, website name or whatever and it'll load up a bunch of tabs containing references to it from the last 24 hours on a range of different websites. Twitter, google etc.  Search for your name, set the results page as your browser homepage then once a day just click through the tabs to see what's being said. Go give it a try.</p>
<p style="text-align: center;"><a href="http://whatpeoplearesayingaboutus.com">Click here to find out what people are saying about you</a></p>
<p style="text-align: left;">In other news I've been experimenting with producing a range of niche specific flavors of ComfyPage.  The first was <a href="http://flashhosting.comfypage.com" target="_blank">flashhosting.comfypage.com</a>.  The second is <a href="http://bandwebsite.comfypage.com">bandwebsite.comfypage.com</a> Each has it's own site and it's own site creation wizard. Hopefully that should make it a little easier for people to hit the ground running. A general purpose tool can be a bit overwhelming but some more specific support should help.</p>
<p style="text-align: center;"><a href="http://bandwebsite.comfypage.com">Are you a musician who needs a website to post gig info and downloadable stuff?</a></p><br /><a href="http://andrew.comfypage.com/68.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sun, 06 Sep 2009 02:51:32 GMT</pubDate>
<guid>http://andrew.comfypage.com/68.htm</guid>
</item>
<item>
<title>08/04/28 Billable Work</title>
<link>http://andrew.comfypage.com/7.htm</link>
<description><![CDATA[ <h3>28 April 2008</h3>
<p style="text-align: left;">Good morning.  Today is Monday and I've returned to the office after a lovely weekend spent undertaking a number of social and professional activities.  As is typical I have some shiny new code created since Friday.  Mostly just tweaks that came out of discussions with a few users.<br />
<br />
Today, while an updated version of ComfyPage is being uploaded, I want to describe how Cameron and I work.<br />
<br />
We're a bootstrapped (self funded) company so we don't have a cushion of venture capital to burn through while we improve our product and build our business.  We don't have a big pile of investor's money with which to pay our bills while we tinker and figure things out.  We have to be at least cashflow neutral every month.<br />
<br />
To ensure that while we build our other revenue streams I undertake the odd contract/consulting job.  As an experienced software guy I'm relatively marketable and able to find an occasional cash for code arrangement.  The specifics don't really matter.  At the moment I'm building a corporate intranet for a large company.  After that I'm mostly likely writing a PHP billing system for another tech company.  I provide software/time/expertise and they provide cash money.<br />
<br />
Note that I said I undertake the odd job and not we.  Cameron is 100% devoted to ComfyPage.  Cameron doesn't even know the details of the contract work I undertake.  All he needs to know is that I sometimes have to split my time with something else and that there's money in the bank.<br />
<br />
It's important for any startup that you have at least one person who is totally devoted to the startup's core product.  They shouldn't even know what else is going on as that would be a waste of headspace that should be occupied with the product.<br />
<br />
The temptation is for everyone to take on some of the billable work.  Don't do it.  When you take on two task you're output isnt 50 50.  Its 40 40 with the rest being consumed by some sort of task switching overhead.  Something about juggling two big tasks hammers your productivity and if each person involved is taking that productivity hit you're in trouble.</p>
<p style="text-align: center;"><a href="index.php?content_id=6"><<24 Apr 08</a>  <a href="index.php?content_id=8">29 Apr 08>></a></p><br /><a href="http://andrew.comfypage.com/7.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 00:36:25 GMT</pubDate>
<guid>http://andrew.comfypage.com/7.htm</guid>
</item>
<item>
<title>09/10/13 Life is unpredictable</title>
<link>http://andrew.comfypage.com/70.htm</link>
<description><![CDATA[ <h1>Life is Unpredictable</h1>
<p>As it says in the title life is unpredictable. Following an unpected event I have returned to Perth. I'm not sure how long I'll be in town. I am now evaluating my options and will keep you posted.</p>
<br /><br /><a href="http://andrew.comfypage.com/70.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 13 Oct 2009 08:07:19 GMT</pubDate>
<guid>http://andrew.comfypage.com/70.htm</guid>
</item>
<item>
<title>Learn a language (well enough) in 7 days</title>
<link>http://andrew.comfypage.com/71.htm</link>
<description><![CDATA[ <p>Coming soon...</p><br /><a href="http://andrew.comfypage.com/71.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sun, 07 Mar 2010 18:53:01 GMT</pubDate>
<guid>http://andrew.comfypage.com/71.htm</guid>
</item>
<item>
<title>08/04/29 Ubuntu IIS Security</title>
<link>http://andrew.comfypage.com/8.htm</link>
<description><![CDATA[ <h3>29 April 2008</h3>
<p style="text-align: left;">I recently upgraded my laptop to Ubuntu 8.04.  Man oh man it's good.  Like, really good.  Ubuntu, is a version of Linux, which has a reputation for being hard to use.  I've been a Windows user since Windows 3.11 and have been writing commercial software for Windows since Windows 2000 and I'm now prepared to say that Ubuntu is actually easier to use than Windows.<br />
<br />
Setup was trivially easy and most stuff an average user will need is preinstalled.<br />
<br />
What with limited concern for spyware, malware etc on linux I'm going to start recommending Ubuntu to anyone who will listen.  You know those friends and family who constantly bug you to purge their machine of spyware yet again?  Get them onto Ubuntu so you can get on with something else like building great software for your users :)<br />
<br />
Get Ubuntu from <a href="http://ubuntu.com">ubuntu.com<br />
</a> <br />
It was with some amusement that I read the following story about half a million websites being affected by a severe security problem.<br />
<br />
<a target="_blank" href="http://blog.wired.com/monkeybites/2008/04/microsoft-datab.html"> http://blog.wired.com/monkeybites/2008/04/microsoft-datab.html</a><br />
<br />
I hope I'm not tempting fate here but let me state now that the ComfyPage servers run on Apache not IIS and Unix/Linux not Windows and are thus immune to this security issue.  I'm not naive enough to say we're immune to all security risks but, at this time, it appears ComfyPage sites may well be more secure than the US Department of Homeland Security's sites.</p>
<p style="text-align: center;"><a href="index.php?content_id=7"><<28 Apr 08</a>   <a href="index.php?content_id=9">5 May 08>><br />
</a></p><br /><a href="http://andrew.comfypage.com/8.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/8.htm</guid>
</item>
<item>
<title>08/05/04 Censorship</title>
<link>http://andrew.comfypage.com/9.htm</link>
<description><![CDATA[ <h3>5 May 2008</h3>
<p style="text-align: left;">Censorship is something I care deeply about.  I'd argue that the inability to express unpopular or unfashionable ideas is a significant contributing factor to pretty much any political or social problem you might care to name.  It was, in part, the desire to a create an uncensored platform for people to say whatever they want that led to the creation of ComfyPage.  Here at <a href="http://comfypage.com">comfypage.com</a> as long as its content isn't outright illegal your website stays up.</p>
<p style="text-align: left;">Sadly we still live in a world where censorship is routine in many parts of the world.  Not just in authoritarian dictatorships either.  Throughout the western world you still see books, films and computer games being banned.  Here in Australia they still regularly talk about censoring all Internet traffic coming in or out of the entire country (<a href="http://www.techcrunch.com/2007/12/30/australia-joins-china-in-censoring-the-internet/" target="_blank">article</a>).</p>
<p>My response...</p>
<p>"To prohibit the reading of certain books is to declare the inhabitants to be either fools or slaves."<br />
-- Claude Adrien Helvetius, De l'Homme, Vol. I, sec. 4</p>
<p><a href="http://quotes.forbiddenlibrary.com/">More quotes on censorship</a></p>
<p>To the best of my knowledge I'm neither a fool or a slave so let me decide what I see, read, listen to and play.</p>
<p>Today I deposited the cheque for my personal tax return which put a small smile on my face.  I also received the paperwork for Affinity's tax return which made me almost twice as sad and my own tax return made me happy if you know what I mean.</p>
<p style="text-align: center;"><a href="index.php?content_id=8"><<29 Apr 08</a> <a href="index.php?content_id=11">7 May 08>><br />
</a></p><br /><a href="http://andrew.comfypage.com/9.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 16 Dec 2008 09:03:41 GMT</pubDate>
<guid>http://andrew.comfypage.com/9.htm</guid>
</item>
<item>
<title>09/08/30 How to make a website</title>
<link>http://andrew.comfypage.com/how_to_make_a_website.htm</link>
<description><![CDATA[ <h1>How to make a website</h1>
<p>It seems everyone has a website these days.  And now you need one to make one.  But how do you actually go about creating one of these mysterious beasts?  Fortunately, it's not as difficult as you might think to make a website.</p>
<h2>How to make a website in seven easy steps...</h2>
<ul>
    <li>Step one - Ask why</li>
    <li>Step two - Gather resources</li>
    <li>Step three - Make Vs Buy</li>
    <li>Step four - List your pages</li>
    <li>Step five - Choose your tools</li>
    <li>Step six - Choose your hosting</li>
    <li>Step seven - Implementation</li>
</ul>
<h2>Step one - Ask why</h2>
<p>Why do you want a website?  Is it to provide a central place for people to get documents or event information?  Is it to help attract new customers?  To sell products you produce?  To give you somewhere to display materials for your hobby?  Whatever your reason make sure you are clear on what you are trying to achieve.  Your whole website will be geared towards achieving this.</p>
<h2>Step two - Gather resources</h2>
<p>Do you have a logo you can use?  Any suitable photographs?  Do you have an existing color scheme you would like to maintain?</p>
<p>Whatever resources you have keep them on hand.  Little personal touchs like photos of real people (not models posing in stock photographs) will tell your visitors that there are real people behind the website.</p>
<p>For established businesses consistency with existing printed marketing materials is important.</p>
<h2>Step three - Make Vs Buy</h2>
<p>Do you want to hire someone to make and maintain your website or do you want to build it yourself?  This decision is influenced by a whole bunch of factors.</p>
<p>Do it for me (hire someone)</p>
<ul>
    <li>Less to learn.  You're paying them to be the expert so you don't have to be.</li>
    <li>Hiring a firm can be VERY expensive.</li>
    <li>Site updates may have to be done by the original creators.  That means ongoing bills plus what will their turn around time be like?  It's no good if your event announcement finally appears on your website after the event has been and gone.</li>
    <li>Potentially a higher quality website in terms of design quality depending on who you hire and how much time they devote to it (which further increases costs)</li>
    <li>While a professional website designer may have great design skills they may not really understand you.  Are they more concerned with creating something to impress their designer buddies or with your goals?</li>
</ul>
<p> <br />
Do it yourself</p>
<ul>
    <li>There's more of a learning curve.  Unless you are already fairly tech savvy there will inevitably be stuff you need to learn as you go.  This can be an enjoyable process but it will take some time.</li>
    <li>Typically doing it yourself will cost vastly less than hiring someone to do it for you.</li>
    <li>If you are running the website you should be able to update it whenever you like.  Want to announce daily specials?  You can.  Want to talk about something that just happened at 3 o'clock in the morning.  You can.</li>
    <li>Depending on your own sense of taste and the tools you use the quality of the end result may vary.  Keep it simple and you'll do ok but when in doubt don't be afraid to ask someone whether that color scheme really works.</li>
    <li>You know what you are trying to achieve (see step 1).  You understand what you are trying to do.</li>
</ul>
<p> <br />
So, those are your two options.  Take your time in deciding.  Once you've chosen it can be difficult to switch.  Take your diy website to a designer and they'll probably insist on rebuilding it from scratch.  Nothing to do with billing you more hours I'm sure... Similarly trying to take the reins from your web designer can be tough.  Chances are the tools they have used are complex and arcane.  Plus, look out for nasty clauses in the contract that says they'll build the site and more or less own it (and you) for a long time. <br />
 <br />
If you want to hire someone to build and run your website for you then I can't be of much more help.  There are no doubt an abundance of excellent web designers in your area.  Looks for other businesses who have websites that you like and find out who built them.  Maybe call a few friends and see if they can recommend anyone.  Personal recommendations from past clients are the best way to find someone. <br />
 <br />
However, if you intend to build and run your own website then I can help.</p>
<h2>Step four - List your pages</h2>
<p>Take out a pen and paper.  Write "home page" at the top.  This represents your home page.  Your introduction.  Make a few notes.  You can fill it out later.  Make it clear who you are, what you do, and maybe, what you make.  This isn't a mystery story.  Don't fill it with bland business speak.  You can be authentic and genuine yet professional.  If you find yourself using words like synergy, best practice or customer centric rewrite it.  You sound like a marketing drone. <br />
 <br />
Now think about your answer to step one.  Why do you want to make a website? <br />
 <br />
If you want to make a website to attract new customers what do you want them to do?  Go to a page with a contact form and send you a message?  Get to a page with a phone number and call you?  Something else? <br />
 <br />
If you want to sell stuff through your website you probably want to get them to a page with product info and a big "buy now" button. <br />
 <br />
If you're building a site to share information on a hobby or with members of a group then maybe you want to get people to look at your list of resources, your events calendar or something else. <br />
 <br />
Whatever it is, write down your destination page.  Contact page, events calendar, the recipe for your triple chocolate layer cake, whatever. <br />
 <br />
Now, how do you get a new visitor from the home page of your site to your destination page?  What do they need to see to WANT to go there?  Try and put yourself in your visitor's shoes.<br />
<br />
As an example let´s say we´re building a website for an accounting practice.  A visitor to that site is likely a person looking for an accountant.  People like to see their accountant face to face so they´re looking for an accountant near their home or work.  Upon finding their way to the site they will immediately want to know three things.  First, that this site belongs to an accountant. Second that they are near me.  Thirdly that this is someone I feel I can trust.  All visitors to all websites have a similar subconscious checklist of information they need immediately or they will be gone forever.<br />
<br />
If you were looking for a shoe retailer, sewing patterns or tourist information you would want immediate evidence that you are in the right place. Time is money and you're not likely to waste it trying to figure out who these people are if they aren't going to make it obvious. No matter the purpose of your site think about what information you need to provide to visitors immediately to confirm to them that they are in the right place.  Answer the question "is this what I'm looking for?" immediately.<br />
<br />
So, our hypothetical visitor has arrived at the website of our theoretical accounting practice.  They are immediately presented with information that tells them that this is an accounting firm, whether or not it is near them and which establishes some level of trust by letting them know that there are real live human beings who work there and that this isn´t just a front for a Nigerian crime syndicate.  Now what? In the case of an accounting firm a visitor is unlikely to jump straight from recognizing this as a nearby accounting firm to wanting to make contact.  They are going to have more questions.<br />
<br />
Sure, they are accountants but do they do personal tax returns?  Sure, you´re a tourist site but do you have a walking tour of Fremantle?  Sure, you sell shoes but do you have any closed toe red flats?  The answers to these questions won't be on the home page of your site but a link to the answer must be.  It must be bold as day (Click here for our list of services).  If a visitor isn´t sure where to go to get the answers they seek then you have lost them. "Now what?" is the sound of someone preparing to leave and not come back.  Figure out what question your visitors will want answered next and make it obvious where they have to go to get that answer.<br />
<br />
For our example it's likely that this will be the last of our visitor's questions.  Once the home page has told them that this is an accountant, it's near them and established some trust and the services page has told them that this firm provides the service they need they will want to make contact.  Again, don't leave them to wonder how to do that.  The page containing the firms areas of expertise should either contain a means to make contact (contact form or phone number) or provide a really obvious place to click to get to the means to make contact. Click here now and we'll sort out that shoebox of receipts!<br />
<br />
Other websites might be more complex with a visitor having several questions that need to be dealt with before the visitor reachs the destination page.  Do you sell shoes? Do you have any I like? Do you ship interstate? Do you have my size? Each question must be dealt with before the user reaches the destination page.  Not answering all of these questions, particularly for online retailers, will only result in visitors losing confidence and leaving your site.  People can be very cautious and on the Internet they have an almost unlimited list of alternative sites. If they have any nagging doubts they are much less likely to contact you, buy from you, join your group or do whatever it is you want them to do.</p>
<p>The trick here is to stop thinking of a website as a bag of pages in no particular order. Instead think of it as a series of pages the user will encounter one after the other. Each new page answers another question and guides them to the next page.  Each new page brings them closer to your destination page.</p>
<p>Write each question you need to answer on your piece of paper.  Draw lines between them to show the order you think a visitor will have then answered. Each question will be a page.</p>
<h2>Step five - Choose your tools</h2>
<p>There are thousands of ways to make a website.  Most of them not terribly pleasant but there is certainly no shortage of them. Highly technical people may opt to hand code a website although most people will opt for a content management system (cms).  A cms theoretically simplifies the task of maintaining a website. Again, there is no shortage of choice. As one of the creators of <a href="http://comfypage.com">ComfyPage</a> I am obviously highly biased towards ComfyPage.  Numerous alternatives exist such as Joomla and Drupal.</p>
<p>Spend a little time reading about what people say about the cms you are thinking of using. Also pay attention to the level of likely technical ability of people using the cms.  Look for tools being used by people similar to yourself.</p>
<h2>Step six - Choose your hosting</h2>
<p>Where will your website be hosted?  Your website must live on a server specifically set up to hold websites available on the Internet.  There are an abundance of hosting companies out there such as Host Gator and Quadrahosting, both of whom I have used and been happy with.</p>
<p>Some services like ComfyPage as hosted by those who produced the cms.  They are integrated services, one stop shops for people wanting a website.  For people making their own website without a significant level of technical knowledge I highly recommend an integrated service.  They will provide you with the tools to build your site AND host your site for you.  Actual hosting companies are high volume low margin businesses and typically provide fairly mediocre support.  You're likely to be on your own to figure out their admin system and to try to get your content management system working on their servers. Where someone has developed tools to de-headache this process, take advantage of them.</p>
<h2>Step seven - Implementation</h2>
<p>Once you've got all of the above sorted out the actual implementation should be pretty straightforward.  You know what you want to build and you know the tools you're going to use to build it. I'm not saying it will be easy or quick but don't get frustrated and give up.</p>
<p>Remember that, unlike a printed pamphlet, your website can be changed as often as you like.  Don't worry if it's not perfect.  Just get started and commit to small incremental improvements. Make it a little better every day and it'll all work out.  I promise :)</p>
<h2>The grand finale</h2>
<p>So there you have it.  A simple process to go through to construct a pen and paper outline of your website and some advice on picking tools and hosting.  Again, I am biased, but I strongly recommend taking a look at ComfyPage. <a href="http://comfypage.com">It's how to make a website</a>. ComfyPage will have you online in a fraction of the time it took you to read this article.</p>
<p>No matter what you do, good luck and may your new website help you achieve everything you want and more.</p><br /><a href="http://andrew.comfypage.com/how_to_make_a_website.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Mon, 31 Aug 2009 23:40:11 GMT</pubDate>
<guid>http://andrew.comfypage.com/how_to_make_a_website.htm</guid>
</item>
<item>
<title>09/10/07 Tools of the trade</title>
<link>http://andrew.comfypage.com/tools_of_the_trade.htm</link>
<description><![CDATA[ <h1>Tools of the Trade</h1>
<p>Your tools of the trade are vitally important to being a productive programmer.  You need that shiny new high end machine so compiling is almost instant. You need that in house source control server so commits are blazingly fast and maybe even your own mail server so you don't have to wait for your attachments to download.  But that's just the beginning!  You can't get by without your dual monitors.  Life is unbearable without a reliable lightning fast net connection.  And don't get me started on trying to code while sitting on anything but an Aeron!!</p>
<p>You NEED this stuff!  Not having it will cripple your productivity. Joel Spolsky says so!!<img hspace="20" align="left" vspace="10" src="site/UserFiles/PA030253.JPG" alt="Beautiful Pai" /><br />
<br />
What if you couldn't have any of it? What if your worldly possessions had to be limited to what you can physically carry on a train ride to Bangkok? What if you had to live with the ever present danger of your belongings being stolen or destroyed? Do you still want to fork out for that Aeron?<img hspace="20" align="right" vspace="10" src="site/UserFiles/P7180007.JPG" alt="a Thai street" /><br />
<br />
My living arrangements are unlike most programmers. Previously I worked in an office in a retired maximum security prison in Fremantle, Australia. For 8 months now I have been based in Chiang Mai in north west Thailand. While here I have travelled through much of Thailand. In the near future there will hopefully be trips to a variety of other locations. Some of these trips will be one way.<br />
<br />
This poses some unique constraints on my setup.<br />
<br />
First up, servers.  A source control, bug tracking and mail server?  Can't have them.  No way in hell I'm paying out for hardware worth more than many locals earn in a year and then leaving it lying around while I go out.  Plus, how are you going to transport those machines when you move?<br />
<br />
Instead outsource the lot. Use something like gmail for email. Something like <a href="http://www.fogcreek.com/FogBUGZ" target="_blank">FogBugz</a> or <a target="_blank" href="http://basecamphq.com">Basecamp</a> for bug tracking (or even just gmail's task list in a pinch).  <a href="http://svnrepository.com" target="_blank">svnrepository.com</a> or similar for source control. They're cheap if not free services and it removes a lot of hardware from your list of requirements. Get absolutely everything possible off your machines and into third party hosted services. They'll have better uptime than you would running your own servers anyway.<br />
<br />
Next, that high end machine you use? The top of the line notebook, that shiny macbook pro? Probably not a good idea either. Even if you take it everywhere with you to prevent theft muggings happen and so do accidents. Throughout much of the world scooters or motorbikes are the default means of getting around. Low speed accidents on the crowded streets are common. If you come off a scooter you'll probably walk away more or less ok but how do you rate your laptop's chances? Humans bruise and graze but generally heal good as new. Computers do not. One hard whack on the pavement could be all it takes to write off that prized piece of hardware.<br />
<br />
<img hspace="20" align="left" vspace="10" src="site/UserFiles/P8160126.JPG" alt="Chiang Mai Sunday market" />Buy yourself a cheap, probably second hand, notebook and install Linux on it. Ubuntu is my distribution of choice but that's a matter of taste. The key thing here is cost of replacement and brand new hardware plus a Windows license is just too expensive for a computer that could be destroyed tomorrow. If my machine was lost/stolen/smashed every few months for the rest of my life that wouldn't be a major problem. In fact a few weeks ago my old laptop hard drive failed following a particularly bumpy drive to a school where I've been teaching. I'm writing this on a second hand replacement laptop I purchased for about $250 AUD. All I needed to get back up and running was another second hand machine and an Ubuntu cd.<br />
<br />
Treating your personal machine as a throw away item has some other benefits aside from low cost of replacement. It actually makes you less likely to need to replace it. Nothing attracts thieves like a foreigner clutching at a bag that clearly contains something of great value. If your clothing and general manner project an aura of "I have nothing worth stealing" you're much less likely to have any trouble. Secondly, using an older machine makes slow code more obvious. Depending on who your users are they may well be using computers that are several years old. If you are using a shiny new machine your blazingly fast system may mask poor performance creeping into your code. To put it another way nothing makes you appreciate fast code like a slow cpu.<img hspace="20" align="right" vspace="10" src="site/UserFiles/PA080268.JPG" alt="the tallest chedi in Thailand" /><br />
<br />
At this point you can probably guess why those dual monitors and the expensive chair aren't a good idea.  They can't be easily transported as they won't fit in your backpack. Buying stuff that will tempt thieves is just foolish.<br />
<br />
Finally, your net connection. If you're going to be moving around you just have to take whatever connectivity you can get. It's going to be patchy. There will be drop outs and slow downs mixed in with periods of inexplicably enormous bandwidth. Such is life. Learn to be flexible. Don't expect an always on connection. Give yourself plenty of time for things like uploading code. Expect your net connection to vanish when you need it most. Make sure you know where a few nearby free wifi networks are that you can dash to in times of need.<br />
<br />
The need to take whatever net connection you can get is another reason I use Linux.  Who knows what kind of network you're plugging into.  It could be pristine and secure or it could be an electronic ghetto filled with spyware, viruses and trojans just waiting for you to connect your unsuspecting computer. Using a Linux based operating system reduces your vulnerability.<br />
<br />
So if I don't have all this stuff what do I have? One old laptop running Ubuntu with Apache, Php, Python, an svn client and a few other bits and pieces installed. All free stuff. Email, source control and bug tracking are all done through third party hosted services. I have peace of mind that I have nothing irreplaceable with me. I have at least three of the most beautiful Buddhist temples you'll find anywhere within three blocks of my apartment. I have a climate that means I haven't worn anything warmer than a t-shirt in 8 months. Most importantly I have the ability to put my computer in my backpack and head off somewhere else whenever I want. You can't put a price on that :)</p>
<p style="text-align: center;"><img height="375" width="500" src="site/UserFiles/P8080078.JPG" alt="" /></p><br /><a href="http://andrew.comfypage.com/tools_of_the_trade.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Tue, 13 Oct 2009 07:47:00 GMT</pubDate>
<guid>http://andrew.comfypage.com/tools_of_the_trade.htm</guid>
</item>
<item>
<title>The Travelling Programmer</title>
<link>http://andrew.comfypage.com/INDEX.htm</link>
<description><![CDATA[ <table cellspacing="1" cellpadding="1" border="0" align="center" width="100%">
    <tbody>
        <tr>
            <td valign="top">
            <p>Hello, I'm Andrew.  I am one of the founders of<a href="http://affinitysoftware.net"> Affinity Software</a> and an English teacher.<a href="http://comfypage.com/index.php?content_id=40"><br />
            </a></p>
            <p>This blog is about  Affinity and making your living with nothing but a laptop and a backpack.</p>
            <p style="text-align: center;"><a href="index.php?content_id=38">The full archive</a></p>
            </td>
            <td><iframe height="325" frameborder="0" width="400" scrolling="auto" src="http://www.whereivebeen.com/map.php?uID=9095293&amp;iID=3154747c67636a1791ebe2f08e9d5736"></iframe></td>
        </tr>
    </tbody>
</table>
<p style="text-align: center;"> </p><br /><a href="http://andrew.comfypage.com/INDEX.htm">Click here to read this on the web.</a> ]]></description>
<pubDate>Sun, 07 Mar 2010 01:49:02 GMT</pubDate>
<guid>http://andrew.comfypage.com/INDEX.htm</guid>
</item>
</channel>
</rss>