<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7620133482003355247</id><updated>2011-12-31T09:28:13.374Z</updated><category term='barcamp'/><category term='barcamplondon4'/><category term='INTEL G4 LEOPARD INSTALL'/><category term='semantic'/><category term='Alexandra Palace'/><category term='PHP MAC OSX LEOPARD'/><category term='Mac OS X Leopard'/><category term='CONTENT CMS LMS'/><category term='bejant'/><category term='RUBY RAILS LEOPARD'/><category term='Amazon'/><category term='Mysql'/><category term='elasticsearch'/><category term='SCALABILITY'/><category term='Apple'/><category term='Java'/><category term='hobbies computers nostalgia antiques'/><category term='blog'/><category term='Mashup 08'/><category term='Grail'/><category term='Spooks television.'/><category term='PHP'/><category term='EC2 EBS'/><category term='Webdev css3 layouts'/><category term='fav.or.it'/><category term='Ruby'/><category term='Scientology'/><category term='BEJANT STARTUP'/><category term='plaxo'/><category term='Yahoo Microsoft'/><category term='Grails'/><category term='splogging'/><category term='Scalability.'/><category term='london'/><category term='Law'/><category term='work'/><title type='text'>Tim Hawkins</title><subtitle type='html'>There is a darkside to technology, but if you shine a light on it you cant see it anymore!</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>41</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-744597184987500171</id><published>2011-03-05T02:44:00.007Z</published><updated>2011-12-15T23:55:34.348Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='elasticsearch'/><title type='text'>Installing ElasticSearch on mac os x or linux</title><content type='html'>These instructions are specifically for Mac Os X , but they should work fine on linux too. &lt;br /&gt;&lt;br /&gt;Download the latest version of Elastic search from here: &lt;a href ="http://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.18.5.tar.gz"&gt;http://github.com/downloads/elasticsearch/elasticsearch/elasticsearch-0.18.5.tar.gz&lt;/a&gt; The current version is 0.18.5 but a later version should be ok&lt;br /&gt;&lt;br /&gt;Unpack the tar file in the download directory (doubleclick on the tar file) this should create the directory ~/Downloads/elasticsearch-0.18.5&lt;br /&gt;&lt;br /&gt;open a console in the download directory and pull down the elastic search service wrapper from github.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    $cd ~/Downloads&lt;br /&gt;    $git clone https://github.com/elasticsearch/elasticsearch-servicewrapper.git elasticsearch-servicewrapper&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Now we will move the service into place&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    $cd ~/Downloads&lt;br /&gt;    $sudo mv elasticsearch-0.18.5 /usr/local/share&lt;br /&gt;    $cd elasticsearch-servicewrapper&lt;br /&gt;    $sudo mv service /usr/local/share/elasticsearch-0.18.5/bin&lt;br /&gt;    $cd /usr/local/share&lt;br /&gt;    $sudo ln -s elasticsearch-0.18.5 elasticsearch&lt;br /&gt;    $sudo chown -R root:wheel elasticsearch&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; &lt;br /&gt;Now we can start up the service &lt;br /&gt;&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;    $cd /usr/local/share/elasticsearch&lt;br /&gt;    $sudo bin/service/elasticsearch start &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You should see the following output &lt;br /&gt;&lt;br /&gt; &lt;pre&gt;&lt;br /&gt;   $ sudo bin/service/elasticsearch start&lt;br /&gt;    Starting ElasticSearch. Detected Mac OSX and installed launchd daemon.&lt;br /&gt;    Waiting for ElasticSearch...&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;    .&lt;br /&gt;    running: PID:57767&lt;br /&gt;    $&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Note: The pid number will be different on your system&lt;br /&gt;&lt;br /&gt;Check the service is ok by opening up a browser on &lt;a href="http://localhost:9200"&gt;http://localhost:9200&lt;/a&gt;, you should see the following output&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    {&lt;br /&gt;      "ok" : true,&lt;br /&gt;      "name" : "Bova",&lt;br /&gt;      "version" : {&lt;br /&gt;        "number" : "0.18.5",&lt;br /&gt;        "date" : "2011-03-01T19:07:42",&lt;br /&gt;        "snapshot_build" : false&lt;br /&gt;      },&lt;br /&gt;      "tagline" : "You Know, for Search",&lt;br /&gt;      "cover" : "DON'T PANIC",&lt;br /&gt;      "quote" : {&lt;br /&gt;        "book" : "The Hitchhiker's Guide to the Galaxy",&lt;br /&gt;        "chapter" : "Chapter 30",&lt;br /&gt;        "text1" : "\"The chances of finding out what's really going on in the universe are so remote, the only thing to do is hang the sense of it and keep yourself occupied. Look at me, I design fjords. I'd far rather be happy than right any day.\"",&lt;br /&gt;        "text2" : "\"And are you?\"",&lt;br /&gt;        "text3" : "\"No, that's where it all falls apart I'm afraid.\"",&lt;br /&gt;        "text4" : "\"Pity, it sounded like quite a nice lifestyle otherwise.\""&lt;br /&gt;      }&lt;br /&gt;    } &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Stopping Elastic search&lt;/h2&gt; &lt;br /&gt;use a similar command to starting as shown above.&lt;br /&gt;&lt;pre&gt; &lt;br /&gt;    $cd /usr/local/share/elasticsearch&lt;br /&gt;    $sudo bin/service/elasticsearch stop&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-744597184987500171?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/744597184987500171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=744597184987500171' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/744597184987500171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/744597184987500171'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2011/03/installing-elasticsearch-on-mac-os-x.html' title='Installing ElasticSearch on mac os x or linux'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-7179702548819737041</id><published>2010-09-21T03:04:00.007+01:00</published><updated>2010-09-21T03:49:28.088+01:00</updated><title type='text'>Zend Framework, Dojo and MVC layout</title><content type='html'>Recently I had a real nasty problem which had me scratching my head for several days, I have recently started using the Zend Framework and Dojo framework together to allow me to create forms which have rich controls in them, such as calendar controls etc. &lt;br /&gt;&lt;br /&gt;Initially all worked well, setting up a simple ZF application, Using Zend_Dojo to "Dojo" enable my forms and views all went without a hitch. For each control i instantiated in my forms the Zend_Dojo_View_Container attached to the view would automatically create all the required script and library calls needed to make sure the right components where integrated with the page. Everything was fantastic. Then I tried to apply the same approach to my actual application. &lt;br /&gt;&lt;br /&gt;The difference between my test rig and my Application is that in most of the views in my application we deliberately disable the MVC layout, and render the pages using the Zend_Controller_Action::renderScript() method.  The reason for this is that our view scripts are pre-assembled with all components preprocessed into single files per page, including all the layout elements. &lt;br /&gt;&lt;br /&gt;Typically we use the following in the Controller baseclass preDispatch method&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        $layout = Zend_Layout::getMvcInstance();&lt;br /&gt;        if($layout) {&lt;br /&gt;            $layout-&gt;disableLayout();&lt;br /&gt;        }&lt;br /&gt;        $this-&gt;_helper-&gt;viewRenderer-&gt;setNoRender();&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Generally my Controller actions look like this. &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public function registerAction() {&lt;br /&gt;        /*&lt;br /&gt;         * Register for new account&lt;br /&gt;         */&lt;br /&gt;        $register = new Form_User_Registration();&lt;br /&gt;        if (Zend_Auth::getInstance()-&gt;hasIdentity()) {&lt;br /&gt;            $this-&gt;_redirect('/');&lt;br /&gt;        } else if ($this-&gt;getRequest()-&gt;isPost()) {&lt;br /&gt;            // do the registration action here &lt;br /&gt;            //    redirect when done &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        $this-&gt;view-&gt;register = $register;&lt;br /&gt; &lt;br /&gt;        echo $this-&gt;renderScript('pages/user/register.phtml');&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;However doing things this way, I discovered that none of the form  dijit specifications had been injected into the Zend_Dojo_View_Container, so none of my controls rendered as Dojo rich controls. &lt;br /&gt;&lt;br /&gt;The reason why this was happening became clear after a lot of debugging. In the conventional MVC mode, the "contents" of the page are rendered before the layout scripts are run. The form is rendered into the page contents and then the layout script is executed to create the page around the contents. However in my case the contents where executing in the same script as the layout, so the Dojo container was being output at the top of the script before the contents where rendered, hence the missing specifications. &lt;br /&gt;&lt;br /&gt;The solution was simple, but non-obvious. change the assignment of the form to the view from &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        $this-&gt;view-&gt;register = $register;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;to:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;        $this-&gt;view-&gt;register = (string)$register;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Which forced the __ToString() method of the Zend_Dojo_Form class to be called before the Controller renderScript() function executed, causing the dijit specs to be registered first. &lt;br /&gt;&lt;br /&gt;This fixed the problem, and finally all my forms where being rendered correctly with Dojo Rich controls..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-7179702548819737041?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/7179702548819737041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=7179702548819737041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/7179702548819737041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/7179702548819737041'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2010/09/zend-framework-dojo-and-mvc-layout.html' title='Zend Framework, Dojo and MVC layout'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-1325887504887013494</id><published>2010-02-08T15:58:00.002Z</published><updated>2010-02-08T16:00:39.568Z</updated><title type='text'>Messing around with SEO engines</title><content type='html'>Checkout a new SEO engine at &lt;a href="http://www.gold2cashxchange.co.uk"&gt;http://www.gold2cashxchange.co.uk&lt;/a&gt; . This is an automated portal system we are experimenting with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-1325887504887013494?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/1325887504887013494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=1325887504887013494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1325887504887013494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1325887504887013494'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2010/02/messing-around-with-seo-engines.html' title='Messing around with SEO engines'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-372267035917794294</id><published>2009-04-11T00:07:00.003+01:00</published><updated>2009-04-11T00:23:14.250+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP MAC OSX LEOPARD'/><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple'/><title type='text'>Java: Bad CPU id in executable</title><content type='html'>Here is a weird one: &lt;br /&gt;&lt;br /&gt;Recently i have been doing a lot of java work,  and many of the packages I use need to have Java_HOME set. So normally &lt;br /&gt;i just add this line to my /etc/profile &lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home; export JAVA_HOME&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Works just fine on my Macbook, and my recent 2009 Mac Mini. However i have an older 2006 Intel Mac Mini, the older Core Duo type, rather than the newer Core 2 Duo versions.  Its been out of action for a few months due to a failed Hard Drive, but recently I revived it by buying a suitable hard drive from PCWorld and attacking the machine with a putty knife. (upgrading the ram whilst i was in there). &lt;br /&gt;&lt;br /&gt;Everything seemed to be working fine, re-installed the OS, and I took the opportunity whilst i had a virgin system to document and automate the installation of my EC2 management scripts. Everything swam along fine until I actually tried to use the EC2 management scripts where upon I got the dreaded message "java: Bad CPU Id in executable"  WTF.... &lt;br /&gt;&lt;br /&gt;Googling the error did not seem to help, so back to the drawing board, and take a microscope to the machine. &lt;br /&gt;&lt;br /&gt;I checked the target directories, they are fine, in the "versions" directory under the java framework I can see 1.42, 1.50 and 1.60. so what is happening. &lt;br /&gt;&lt;br /&gt;The first clue is that the java preferences applet does not list the 1.6.0 version as available.... Hmm why not????&lt;br /&gt;&lt;br /&gt;The second clue is that switching to version 1.5.0 in the JAVA_HOME statement makes it all work. &lt;br /&gt;&lt;br /&gt;The answer is that Apple never released a 32bit version of Java 1.6, but to rub salt into the wounds they load a perfectly non-functional 64bit version onto all 32bit only boxes. Ouch... &lt;br /&gt;&lt;br /&gt;Come on Apple, there is no reason to limit java 1.6 to 64bit only, and even if there is, why on earth load a nonfunctional 64bit framework onto 32bit machines? &lt;br /&gt;&lt;br /&gt;Shakes head in amazement.......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-372267035917794294?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/372267035917794294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=372267035917794294' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/372267035917794294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/372267035917794294'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2009/04/java-bad-cpu-id-in-executable.html' title='Java: Bad CPU id in executable'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-3299830025962305563</id><published>2009-03-10T20:50:00.003Z</published><updated>2009-03-10T21:03:01.018Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='EC2 EBS'/><title type='text'>EBS, Flash drives for EC2 machines</title><content type='html'>Recently i had a bizarre situation where i had been running a load of stuff through Hadoop on one of our EC2 clusters, and the job had failed, but it failed in such a way that if i could save away the data, (and the logs for diagnostic purposes), and restart the cluster with some changed parameters i would be able to recover the data and carry on, having invested about $60 in machine time and hours of head scratching already on the failed run, I thought this was a good idea. &lt;br /&gt;&lt;br /&gt;So no problem just use hadoop's distcp to move the data up to s3n://bucketname, hmmm that did not work out: OK, how about hadoop dfs -cp to a local directory of all the data and use s3cmd to move it to s3 storage, hmm that did not work out either, something odd is going on here. &lt;br /&gt;&lt;br /&gt;Then it dawned on me that some of the files in the run where very large, as where the intermediate products, around 10G on average and there where lots of them. Now s3 has a limit of 2G for objects stored in its file system. I did not want to use the hadoop s3:// non native filesystem as that is difficult to verify if all the data had arrived safely, as nothing else would read it, so i had a brainwave, and successively mounted and unmounted an EBS volume onto each machine , saved away the relevant bits and pieces, and then moved onto the next box. All of our base EC2 images have xfs support wired into the system, as well as /mnt/ebs as a mountpoint for an attached ebs volume. So it was simply a case of using ElasticFox to attach the EBS volume to the instance and the issuing a "mount/mnt/ebs" and then "umount /mnt/ebs" once i was done. &lt;br /&gt;&lt;br /&gt;So effectively using an EBS volume as a virtual flash-drive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-3299830025962305563?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/3299830025962305563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=3299830025962305563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3299830025962305563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3299830025962305563'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2009/03/ebs-flash-drives-for-ec2-machines.html' title='EBS, Flash drives for EC2 machines'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-1642643042975667567</id><published>2009-01-21T03:01:00.010Z</published><updated>2009-01-21T03:39:35.586Z</updated><title type='text'>Fixing External monitors on the Aspire One and Fedora 10</title><content type='html'>I was recently forced to spend some time using my Aspire One as a primary development machine, having left my macbook PSU at work, and being too lazy to go all the way back in to retrieve it. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I thought, thats ok, I have this old monitor kicking around here, and a spare keyboard and mouse, just bang them into my Aspire One and off we go. But.......&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fedora 10 uses the new configless Xserver and the new Intel GEM enabled driver, a configless Xserver will happily run X without all the tedious fiddling with /etc/X11/xorg.conf. In fact if you take a peek in that directory you will see that there is no xorg.conf. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So when I plugged my external monitor in, I was encouraged to see it display everything up to the login screen, logged in and was presented with a tiny 640x480 desktop on both monitors. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok, no problem, pop up the Display properties dialog, set the sizes of the screens back to thier proper setup, 1024x600 for the builtin LCD, 1024x768 for the ext monitor. Press apply and ..... and .... and .... Nothing happened...  WHAT!!!!! &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;OK it turns out that there is one vital piece of configuration that is missing in a configless Xserver boot, and thats the Virtual screen size.  You need a Virtual screen size that is bigger than the sum of both your monitor surfaces to run dual head (internal + external monitor). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I tried everything, creating a minimal xorg.conf that just added that line, using sample xorg.confs for closely speced machines, nothing worked. And those that did, resulted in the disabling of DRI which produced syrupy screens on the external monitor. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So the solution is to create an xorg.conf that is exactly what the autoconfig would produce, plus the extra line. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So here are the steps&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Reboot the Aspire and press RETURN when the initial bootloader screen comes up. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. press "a" and add a space then  "3" to the end of the kernel boot line, press RETURN to boot the machine. &lt;/space&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. The machine will boot to a command line instead of the usual graphical login screen. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Login as root&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;5. Run the following&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;div&gt;$cd /root&lt;/div&gt;&lt;div&gt;$Xorg -configure&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;The system will flash the screen and produce a file called xorg.conf.new in the current directory. This file contains all of the details that the configless startup would use. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;div&gt;$cp xorg.conf.new  /etc/X11/xorg.conf&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;Now locate the section at the end of that file that shows as below, and add the line indicated in &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;div&gt;SubSection "Display"&lt;/div&gt;&lt;div&gt;   Viewport        0 0&lt;/div&gt;&lt;div&gt;   Depth          24&lt;/div&gt;&lt;div&gt;   Virtual        2048 2048           # Add this line in &lt;/div&gt;&lt;div&gt;EndSubSection&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/pre&gt;&lt;div&gt;6. Reboot the machine and you will now be able to reconfigure the monitors to support 1024x600 internal and 1024x768 external&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Note: Because of limitations in the driver, if you use a value of more than 2048 in either dimension, it will disable DRI and the screen will become very slow again. This unfortunately limits the external display to 1024 width. If you want it to go wider then turn off the internal LCD panel in the Display Properties. This is being fixed in the next version of the driver, and this whole proceedure may become redundant by then as it will also support configless virtual spaces. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-1642643042975667567?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/1642643042975667567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=1642643042975667567' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1642643042975667567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1642643042975667567'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2009/01/fixing-external-monitors-on-aspire-one.html' title='Fixing External monitors on the Aspire One and Fedora 10'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4856125103440717231</id><published>2008-10-21T05:53:00.003+01:00</published><updated>2008-10-21T06:55:56.937+01:00</updated><title type='text'>Comparing Ubuntu 8.10 (Intrepid Ibix) and Fedora 10 on the Aspire One</title><content type='html'>I have been trying out several linux distributions on my Aspire One to find one that suites the machine best, I have tried everything, including a copy of PCBSD that was well "less than successful".&lt;br /&gt;&lt;br /&gt;The two top runners are currently Fedora 10 (beta) and Ubuntu 8.10 (beta).&lt;br /&gt;&lt;br /&gt;First a warning, Beta software is not for everybody, you can end up with a dead machine if you hit an issue with an update, and have to know how to recover your machine when that happens. You also have to have a good set of backups.&lt;br /&gt;&lt;br /&gt;There is a superb tool called remastersys that creates boot able backups of not just your data, but your entire operating system, which I use in conjunction with an external FAT formatted USB drive.&lt;br /&gt;&lt;br /&gt;One thing I have found is that trying to find a distro that supports the very recent hardware and chipsets found inside the Aspire One is hard, and I have narrowed my evaluations to those distros shipping the brand new 2.6.27 kernel or later, as that is the only one that seems to support the chipsets out of the box. I also need to have networkmanager 0.7, to support my Mobile USB broadband modem (a Huawei 169G).&lt;br /&gt;&lt;br /&gt;I was using Ubuntu at first but needed to change to a RPM/YUM based system due to us using Centos 5 everywhere at work, and since I am building code that needs to be run and installed in that enviroment, the differences in the package managers was just too great for me to be comfortable with. (Yes I write software on my Aspire netbook, its quite capable of it, I was very surprised at how well Eclipse performs on this platform, almost as fast as my 2008 macbook).&lt;br /&gt;&lt;br /&gt;Basics:&lt;br /&gt;&lt;br /&gt;Installation of both distros was relatively easy, I used unetbootin to create a bootable 1G USB thumbdrive directly from the distributed ISO's and booted from that, I did not notice any issues with installation of either distro. Out of the box Fedora was slightly better in this respect, with a few caveats. Choose the gnome distros for each, as I have found that the newer KDE setups are somewhat less functional, in particular current KDE incarnations (4.1+) seem to have issues with saving settings.&lt;br /&gt;&lt;br /&gt;Video:&lt;br /&gt;&lt;br /&gt;Ubunto produced the more complete setup here, but only after I deleted the /etc/X11/xorg.conf file and allowed the new xorg 7.4 system to work its magic with configless boots.&lt;br /&gt;&lt;br /&gt;glxgears turned in a performance of about 350 fps, which is fast enough to enable compiz desktop effects, however since that is just eye-candy its debatable whether it is worth enabling it on a device of this class. A minor irritation was that in order to support multiple screens, the screen resolution app has to create an xorg.conf with a virtual screen that encompasses both physical screens, and it initially gets it wrong which means that the external monitor resolution is low until you hand edit it to up the required size, I just doubled the dimensions in both directions and rebooted and was then able to select the 1280x1024 res I was looking for on my monitor.&lt;br /&gt;&lt;br /&gt;Fedora was a mixed bag, it again needed the delete my xorg.conf trick, but try as I might I could not get it to properly support an external monitor at a reasonable resolution. However the performance of the driver in glxgears is significantly better, getting 550-600 fps. Im still trying to determine the reasons for this performance difference.&lt;br /&gt;&lt;br /&gt;Wireless:&lt;br /&gt;&lt;br /&gt;Due to the inclusion of networkmanager 0.7 in both distros, wireless was a doddle, both wifi and usb modem worked out of the box, however both distros suffered from the same issues re DHCP and wifi performance.&lt;br /&gt;&lt;br /&gt;Every now and then they refused to acquire either a wired or wireless ip address due to dhcp timeouts, rebooting the machine seemed to clear the problem. The wifi is using the new ath5k driver for the Atheros chipset in both cases, and I have found that this driver  seems to effect the sensitivity of of the wifi, with far lower signal strengths than under the older madwifi driver, and frequent dropouts and stalls.&lt;br /&gt;&lt;br /&gt;Also under the madwifi driver there where a set of sysctls that would enable the wifi led which dont work on the ath5k driver, and I have not found any substitutes. The driver binds to the led_class module, and looking at the source has functions for enabling/disabling this mode, but I cant find any documentation on how to enable it.&lt;br /&gt;&lt;br /&gt;laptop use:&lt;br /&gt;&lt;br /&gt;Ubuntu has working suspend and resume, the sound sometimes does not restore properly coming out of sleep of hibernate but that is a minor annoyance, on Fedora both modes where a bust, resulting in a locked up machine requiring a hard reset.&lt;br /&gt;&lt;br /&gt;Software:&lt;br /&gt;&lt;br /&gt;I must admit my needs are probably different from average, I need to enable a full local LAMP stack and software development tools (yes it runs fine, and no the machine is not slow after doing so). The Aspire has dual 1.6Ghz cores, up to 1.5G of ram and a 120G HDD so its quite capable of handling this load. It should be noted that the spec of the machine is amost identical to the perfomance of an instance running on the Amazon EC2 cluster (1.6Ghz, 1.6G Ram, 160G HDD).&lt;br /&gt;&lt;br /&gt;With Ubuntu setting up the stack was hard, on fedora this was a Breeze, Fedora even has a full Eclipse 3.4.x install in the repository, and has installable packages for eclipse PDT, subclipse and Xdebug. So my usual fight to get a working PHP dev enviroment working was eliminated.&lt;br /&gt;&lt;br /&gt;I was able to setup up the entire machine for running our web app, including checking out the code from our subversion repository in under 30 mins, vs the 3-4 hour battle that I had with ubuntu. The Fedora packages even setup the correct SVN provider interfaces for subclipse which really impressed me.&lt;br /&gt;&lt;br /&gt;I had some trouble setting up netbeans on Fedora, but mainly because it could not find the JRE directory, once that was sorted out, it installed fine. I tend to use Eclipse for PHP development, and Netbeans for C++ development as I have never really got on with the Eclipse CDT.&lt;br /&gt;&lt;br /&gt;Overall:&lt;br /&gt;&lt;br /&gt;Ubuntu is defiantly the more polished distro for general use, my specialised needs tend to lean me towards Fedora where im willing to put up with the shortcomings, I also like the faster more responsive feel to the fedora distro.&lt;br /&gt;&lt;br /&gt;One final tip, if you are playing with beta software and hit issues, then engage with the community around the distro, they are normaly very responsive, and make sure that any problems you find are submitted as bug tickets, or they will never get fixed. Dont just sit back and wait for somebody else to report the problems...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4856125103440717231?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4856125103440717231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4856125103440717231' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4856125103440717231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4856125103440717231'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/10/comparing-ubuntu-810-intrepid-ibix-and.html' title='Comparing Ubuntu 8.10 (Intrepid Ibix) and Fedora 10 on the Aspire One'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4554081061385062659</id><published>2008-10-14T21:30:00.003+01:00</published><updated>2008-10-14T22:04:11.356+01:00</updated><title type='text'>Unbricking an aspire one</title><content type='html'>About 5 weeks ago i bought an Acer Aspire One, fantastic little machine, loaded it with Ubuntu (intrepid Ibix Alpha), 95% of the hardware works out of the box, even my 3UK 3G Modem, boy was I a happy camper.&lt;br /&gt;&lt;br /&gt;I wanted the machine to run freemind so  could take notes at FOWA which was last week.&lt;br /&gt;&lt;br /&gt;Then suddenly disaster struck, I powered it up the week-end before the show only to be greeted with a blank screen and no activity at all. The machine was dead as a dodo.&lt;br /&gt;&lt;br /&gt;So I packed it all back into the box and took it5 back to John Lewises in Reading where I had got it from originaly. And to give those guys their due, they where fantastic, they did not quibble, and swapped the machine out for a new one immediately without any hassle, at least one organisation knows about customer service (note they also include an extended 2 year warrentee for free with all items). I will be3 buying all my electronics from those guys in the future.&lt;br /&gt;&lt;br /&gt;Anyway back to the story, I spent a frantic week-end reloading all my software and backups (yes I had them) onto the new machine, and headed off to the show.  The machine performed fantastically, even managing to handle the wifi connections in the hall, where my colleagues EEE could not cut the mustard.&lt;br /&gt;&lt;br /&gt;Then this evening on the train back home tonight, lightening struck twice. I powered down the AAO, realized I had not copied something I want off it onto my pen drive, and went to power it back up again, only to discover the machine had converted itself into a plastic brick again, totaly unresponsive to any prodding, engineer's taps or other incantations.&lt;br /&gt;&lt;br /&gt;Dispondant at the thought of having to return it to JL with an explanation that "honest gov, it just broke again" . And negotiate the disdainful looks and insistence that I "must have done something to it", after all it is the second time... I resigned myself to having be without my AAO whilst JL investigated what abuse I had heaped on to the little beastie (again).  All whilst feeling like a child molester, an abuser of young innocent netbooks.&lt;br /&gt;&lt;br /&gt;However it turns out that this is a known problem, and the AAO even has a built in mechanism for fixing the problem, even if it is lying on its back with its metaphorical legs in the air.  An off chance search of the net, looking for other lost souls with terminal aspire syndrome, hoping to find solace in the company of other unfortunates, and a chance to appeal my innocence to a more receptive group sharing this traumatic experience, turned up a post that offered a last chance hope of salvation.&lt;br /&gt;&lt;br /&gt;Festooned with dire warnings about, following every step to the letter, and the dire consequences of not doing so, lay a page that made me once again aspire to get my aspire motoring again.&lt;br /&gt;&lt;br /&gt;So The Aspire MAY drop its flashed bios occasionally, forcing it to emulate the common house brick, but it has a hardwired loader that will pull a copy of the bios off a usb pendrive and restore it to its former glory, even if the machine is exhibiting no other outward signs of life.  The gory details can be found at at &lt;a href="http://macles.blogspot.com/2008/08/acer-aspire-one-bios-recovery.html"&gt;Macles Blog&lt;/a&gt;. Suffice to say i followed the recipe to the letter, waved the incantations in the air, mumbled the words of power, and breathed life back into my portable building material.&lt;br /&gt;&lt;br /&gt;Waiting for the process to finish, and for the machine to restart has been the longest two minutes of my life, but to see the machine spring miraculous back to life, like Lazarus rising from the dead was a thrill worth raving about.&lt;br /&gt;&lt;br /&gt;Phew......&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4554081061385062659?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4554081061385062659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4554081061385062659' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4554081061385062659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4554081061385062659'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/10/unbricking-aspire-one.html' title='Unbricking an aspire one'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2867869573232925556</id><published>2008-09-17T15:37:00.004+01:00</published><updated>2008-09-18T07:16:08.367+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='plaxo'/><category scheme='http://www.blogger.com/atom/ns#' term='splogging'/><title type='text'>Plaxo pulse, blog integration is a bit dubious</title><content type='html'>I just noticed that plaxo now aggregates content from your blogs and displays it inside the plaxo system. At &lt;a href="http://fav.or.it/"&gt;fav.or.it&lt;/a&gt; we operate in this space so we have some experience in what is considered good etiquette here. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1) We automatically scan the blog feeds for creative commons licensing information,  and if the license is missing or specifically denies commercial use we publish an extract of the article and a link to the original blog posting. Plaxo does NOT do this at all. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2) We never show advertising against a blog post, the rights to commercial exploitation of content rests with the site that originates the content, Plaxo is taking liberties with peoples copyright by showing Google ads that earn them revenue against each blog post, many folks rely on professional revenue from pro-blogging to provide an income. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3) Plaxo invites comments on each post which it shows against the listing, but unlike fav.or.it, they don't post the comments back to the originating blog, Plaxo is basically fuelling thier engagement on other peoples content, without contributing anything back to the originator. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Poor show plaxo, you should sort this out!!!!. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2867869573232925556?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2867869573232925556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2867869573232925556' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2867869573232925556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2867869573232925556'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/09/plaxo-pulse-blog-integration-is-bit.html' title='Plaxo pulse, blog integration is a bit dubious'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4304685223787366835</id><published>2008-09-17T15:37:00.003+01:00</published><updated>2008-09-17T16:05:30.491+01:00</updated><title type='text'>Hacking the Aspire One</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_BUEKzJurJw8/SNEYGkTBVqI/AAAAAAAAACg/Dr2F5mOmztw/s1600-h/aspire2.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_BUEKzJurJw8/SNEYGkTBVqI/AAAAAAAAACg/Dr2F5mOmztw/s200/aspire2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5247001541965076130" /&gt;&lt;/a&gt;I recent acquired an Acer Aspire One, this little device is fantastic, but is severely limited by the default software it is delivered with. After spending an evening opening it up and dismantling it, in order to stick in a spare 1G ram module that I had knocking around, to take it to 1.5G,  I then spent a further evening loading it with the latest release of Ubuntu, and wiping out the linspire linux it arrives with by default. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Software updates include hacking the VodaPhone linux 3G card driver to work with my "3" 3G usb modem, spending hours tinkering with the madwifi wifi driver until it was able to connect to the network at home and at work. and playing with compiz and the Intel 945 video drivers until i had the 3D effects working at full speed.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Aspire One is an incredible machine, fast, small and compact with very very good performance. Small enough to slip into the poachers pocket in my barbour jacket. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;But the best hack I did to this machine, the one that transformed the device from an interesting toy into a usable portable machine, was the simplest, cheapest and fastest to implement. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sticking two rubber "feet" strips salvaged from the bottom of an old hard drive enclosure onto the two mouse buttons on the trackpad, has transformed the machine, I can now accuratly contol the mouse and click and double click, without having to feel around for the right spot to press down on. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The Aspire One weights in at about £220, and delivers near desktop performance in a small portable package, with good 3+ hour battery life. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4304685223787366835?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4304685223787366835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4304685223787366835' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4304685223787366835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4304685223787366835'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/09/hacking-aspire-one.html' title='Hacking the Aspire One'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_BUEKzJurJw8/SNEYGkTBVqI/AAAAAAAAACg/Dr2F5mOmztw/s72-c/aspire2.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-786160220988487677</id><published>2008-08-11T01:17:00.003+01:00</published><updated>2008-08-11T01:27:53.146+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Spooks television.'/><title type='text'>Spooks Code 9</title><content type='html'>Last night I watched the first two episodes of the new Spooks: Code 9 spin off series, and to be honest if this is the standard of british drama that we are to receive in the future then I am very saddened indeed. This series has felt more like the "K9 and friends" spin off from Dr Who, and should probably have been broadcast on CBBC instead of prime time on BBC3.  I realize that somebody probably has targets to meet on "youth programming", but this pile of £$%^ is not going to meet that demographic. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This series has more in common with Hollyoaks and Big brother than the wonderful series we thrilled too for 6 seasons that bears its name.  As a long time spooks fan I was very very disappointed, and felt that the BBC should do all it can to disassociate this travesty from the quality brand that it had created with original series. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please BBC, rename this farce and do not cheapen the Brand you have spent so much on fostering in the main spooks series. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-786160220988487677?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/786160220988487677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=786160220988487677' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/786160220988487677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/786160220988487677'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/08/spooks-code-9.html' title='Spooks Code 9'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-8591579365719200549</id><published>2008-07-12T09:19:00.004+01:00</published><updated>2008-07-12T09:46:28.098+01:00</updated><title type='text'>The search for an agile, agile process</title><content type='html'>Agile is a great methodology, and applied right it can make your development process less like a black box, and more open to the stakeholders. It can do wonders for improving the reputation of your dev team with the rest of your org. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However: &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There are a few things that make me nervous about the process, I have worked with it at Yahoo, and seen some the ways its original goals can become subverted. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. It can become the ultimate micromanagement tool, some aspects of agile are a PM's wet dream, being able to capture and track exactly the number of hours each team member spends on each each task in a sprint, gives the PM a unique view on progress etc. But it can also become very time driven, with team members feeling pressure to wrap up a task quickly to stay inside the timebox. It can make your team feel like a row of battery hens if not managed sensibly.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I prefer not to assign tasks on a number of hours basis, rather on a complexity and resource basis, in reality the time element is only required to aid in the planning stage for sprint, to ensure they don't bite off more than they can chew.  Instead we will assign tasks to Tiny, Small, Medium, Large and Huge timeboxes. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. What is it with the obsession with statistics and graphs that most agile implementations seem to spawn?, if the process is consuming considerable time in itself producing statistics on a continuous basis, then it is not full-filling its aim. If we are spending more time on documenting the process and its progress than actually doing the work, then something is amiss, so for small teams with good internal communications, you should reduce the stats produced to the bare minimum. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A good ticketing/issue tracker is an absolute essential, and if configured right should produce all the reports that are needed without the need to generate any by hand. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Especially if the PM/SCRUMM master is themselves a productive team member producing work towards the sprint goals.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So i'm currently designing a bare bones, pared down, minimalist SCRUMM agile process for &lt;a href="http://fav.or.it/"&gt;fav.or.it&lt;/a&gt;, one that hopefully wont hit the pain points listed above. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll let you know how we get on......... &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-8591579365719200549?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/8591579365719200549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=8591579365719200549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/8591579365719200549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/8591579365719200549'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/07/search-for-agile-agile-process.html' title='The search for an agile, agile process'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4660936574253972008</id><published>2008-07-11T22:55:00.003+01:00</published><updated>2008-07-11T23:18:07.231+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blog'/><category scheme='http://www.blogger.com/atom/ns#' term='work'/><category scheme='http://www.blogger.com/atom/ns#' term='semantic'/><category scheme='http://www.blogger.com/atom/ns#' term='fav.or.it'/><title type='text'>Working on fav.or.it</title><content type='html'>Wow, all i can say is that I haven't had so much fun for years, despite the shock of having to do a two hour commute each way, working at &lt;a href="http://fav.or.it/"&gt;fav.or.it&lt;/a&gt; is turning into one of the most interesting episodes of my life. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Im actually writing real code again, and you would not believe how good that feels. The crew at &lt;a href="http://fav.or.it/"&gt;fav.or.it&lt;/a&gt; are great, and seem to take challenges in their stride, that would have other teams I have worked with scratching their heads, their enthusiasm for what they are doing is infectious. And they are all defiantly "can do" folks.  Nick has a great vision of what and where he wants to go, and we are working flat out to get there. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;And the product is great, in the two weeks I have been there, I have been thrust into the middle of a transformation of the site, what is going to come out the other end in a few weeks will be a top notch enhancement to an already top product. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am lucky having just come into the company after everybody has worked so hard to get the initial beta product launched and running, I can now help to shape the next set of iterations of the design.  Already we are adding some very cool features that will give our competitors a run for their money. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fav.or.it is kind of unique, on the surface it looks like any other blog aggregation product, but scratch the surface and a whole load of good stuff bubbles up, in fact the biggest challenge we will have is educating people that just because the product looks like other sites, that it is not, fav.or.it's big secret is its a two way portal, it does not just gather-up content for you to read, but it allows you to interact with that content, and distributes your comments back to the originating sites.  No more jumping around using different blog commenting  systems to spread your opinions and observations, you can do it all from one place, and there is more, fav.or.it will track conversations you are having on a host of sites and present them all in one easy to use reader/commenter. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I used to be an avid digg reader, but since coming to work on fav.or.it I have hardly been anywhere near digg. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway stay tuned and I will describe some of the cool stuff we are doing with semantic analysis over the next few weeks. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4660936574253972008?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4660936574253972008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4660936574253972008' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4660936574253972008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4660936574253972008'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/07/working-on-favorit.html' title='Working on fav.or.it'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-779405754806851596</id><published>2008-06-22T00:41:00.005+01:00</published><updated>2008-06-22T00:53:18.661+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mashup 08'/><category scheme='http://www.blogger.com/atom/ns#' term='Alexandra Palace'/><title type='text'>Mashup 08</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BUEKzJurJw8/SF2Sg3zu6mI/AAAAAAAAABs/vEF6R5_p5Rc/s1600-h/DSC_0023.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_BUEKzJurJw8/SF2Sg3zu6mI/AAAAAAAAABs/vEF6R5_p5Rc/s200/DSC_0023.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5214485036999305826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So here i am again at Alexandra Palace, at the BBC/Microsoft mashup 08 event, the 48 hour homage to all things techy and geeky. There is a certain sense of Deja Vue, having been here before at a simular event in 2007. However this time the flavor is different, the presentation a little more polished.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BUEKzJurJw8/SF2SVuzG3qI/AAAAAAAAABk/Byu6bI5rwcw/s1600-h/DSC_0021.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_BUEKzJurJw8/SF2SVuzG3qI/AAAAAAAAABk/Byu6bI5rwcw/s200/DSC_0021.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5214484845602201250" /&gt;&lt;/a&gt;&lt;div&gt;This year there are some fantastic hacks, Ewans "virtual round the world flight", using a marvellous lashup of Google earth, some gaming controls, twitter, and not one but two projectors, coupled with a brave attempt at airframe construction on a grand scale, gave us an intriguing project to marvel at. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp0.blogger.com/_BUEKzJurJw8/SF2TpI7l1uI/AAAAAAAAAB0/nqg0GgzVugc/s1600-h/DSC_0035.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp0.blogger.com/_BUEKzJurJw8/SF2TpI7l1uI/AAAAAAAAAB0/nqg0GgzVugc/s200/DSC_0035.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5214486278546249442" /&gt;&lt;/a&gt;The guys from ARM, converted their table into a makeshift electronics workshop, and slaved away all night to create a standalone system for displaying location sensitive webpages.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;Finaly I ran into an old friend Toby who I had not seen for some time. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned and i will cover some more highlights from this event as it unfolds tomorrow. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-779405754806851596?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/779405754806851596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=779405754806851596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/779405754806851596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/779405754806851596'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/06/mashup-08.html' title='Mashup 08'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp0.blogger.com/_BUEKzJurJw8/SF2Sg3zu6mI/AAAAAAAAABs/vEF6R5_p5Rc/s72-c/DSC_0023.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2738099938025430514</id><published>2008-06-02T10:36:00.002+01:00</published><updated>2008-06-16T11:00:36.858+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='london'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamplondon4'/><category scheme='http://www.blogger.com/atom/ns#' term='SCALABILITY'/><category scheme='http://www.blogger.com/atom/ns#' term='bejant'/><title type='text'>Talk on scalability, the cloud and virtual startups</title><content type='html'>&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.75em; margin-left: 0px; line-height: 1.6em; "&gt;I gave my talk at barcamp yesterday about scalability, startups and using the cloud to completely operate a new company, which seemed to go down well. Whilst running around networking, and having lots of fun meeting up with old and new friends, I also managed to put our new development and staging environment for &lt;a href="http://www.bejant.com/"&gt;bejant&lt;/a&gt; live (thank god the wifi got fixed :-) ). And later this week we will be shifting all the final pieces of the organisation into the cloud. So we are practising what we preach.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Barcamp's event page is on &lt;a href="http://barcamplondon4.backnetwork.com/"&gt;backnetwork&lt;/a&gt; keep checking back on there and I will make the slides available, I also understand that the presentations where being recorded, not sure if mine was, is so i will track down the podcast and get that up too. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2738099938025430514?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2738099938025430514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2738099938025430514' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2738099938025430514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2738099938025430514'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/06/talk-on-scalability-cloud-and-virtual.html' title='Talk on scalability, the cloud and virtual startups'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-5709472907734072463</id><published>2008-05-31T17:29:00.007+01:00</published><updated>2008-05-31T17:49:52.117+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='london'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamplondon4'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>Barcamp London 4 - Saturday afternoon</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BUEKzJurJw8/SEF-l-vULYI/AAAAAAAAABM/2yAaxnpfKBI/s1600-h/bc1.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_BUEKzJurJw8/SEF-l-vULYI/AAAAAAAAABM/2yAaxnpfKBI/s400/bc1.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5206581835178716546" /&gt;&lt;/a&gt;So I made it to the afternoon sessions, the first session that I attended was about MERB, which is an alternative Ruby based framework, lighter and faster than the Rails stack, which is claimed to achieve much higher performance than rails applications. Given that deployment and performance  are Rail's weakest points, the addition of MERB to the toolchest may stimulate development in this area. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BUEKzJurJw8/SEF_cOvULZI/AAAAAAAAABU/EFlTOieH4OM/s1600-h/bc2.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_BUEKzJurJw8/SEF_cOvULZI/AAAAAAAAABU/EFlTOieH4OM/s400/bc2.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5206582767186619794" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;I caught up with some friends from Yahoo, and GCAP which is rapidly acquiring many of the best folks from the old Yahoo Business. Christian, Murray, and Mike shown above, who are definatly showing signs of  wear :-) &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_BUEKzJurJw8/SEGAYOvULaI/AAAAAAAAABc/qLYHA3JavrM/s1600-h/bc3.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp3.blogger.com/_BUEKzJurJw8/SEGAYOvULaI/AAAAAAAAABc/qLYHA3JavrM/s400/bc3.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5206583797978770850" /&gt;&lt;/a&gt;Finally Simon Willison gave a fascinating talk about the Google APP Engine, which is a different take on the Elastic Computing Meme that is sweeping the net at the moment, providing some of the capabilities of the systems such as the Amazon EC2 system. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Stay tuned for more ......&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-5709472907734072463?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/5709472907734072463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=5709472907734072463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/5709472907734072463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/5709472907734072463'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/barcamp-london-4-saturday-afternoon.html' title='Barcamp London 4 - Saturday afternoon'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_BUEKzJurJw8/SEF-l-vULYI/AAAAAAAAABM/2yAaxnpfKBI/s72-c/bc1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-7015390113300191189</id><published>2008-05-31T14:26:00.004+01:00</published><updated>2008-05-31T14:48:44.844+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='london'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamplondon4'/><category scheme='http://www.blogger.com/atom/ns#' term='barcamp'/><title type='text'>Barcamp London 4</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp2.blogger.com/_BUEKzJurJw8/SEFSN-vULXI/AAAAAAAAABE/nS3t8Go8PoI/s1600-h/barcampmosic.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://bp2.blogger.com/_BUEKzJurJw8/SEFSN-vULXI/AAAAAAAAABE/nS3t8Go8PoI/s320/barcampmosic.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5206533044350233970" /&gt;&lt;/a&gt;Im at the first day of &lt;a href="http://barcamplondon4.backnetwork.com"&gt;barcamplondon4&lt;/a&gt;, which is being held this week-end at GCAP's main offices in the west end of london. The "unconference" is running true to form, with delegates producing talks with wide ranging subject matter, such as "vitalising social networks", "scaling ruby on rails", "doing business in china" to "Australian wine". &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;One of the rules of barcamp, is that anybody who attends must give a talk. GCAP is raising the stakes this year by recording all the presentation and making them available on its podcasting network, which is a first for barcamp. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The other purpose of barcamp is the opportunity to network with people in the European web developer community, and barcamp attracts folks from all over Europe. This years event is particularly well attended by people from far shores, due to the concurrent running of "London Web Week" and events such as "@Media", making the week long trip to London an attractive proposition for those that want to cram in a whole years worth of developer conferences in one hit. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I met a fascinating individual ( George Palmer) of &lt;a href="http://idlasso.com"&gt;idlasso.com&lt;/a&gt; who like myself is focused mainly on configuration and deployment issues, and we spent a enjoyable half hour exploring what the ultimate deployment architecture for small start-ups could look like, given the available and upcoming options. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For myself, I am planning to do a talk on our own experiences of using some of these options to develop and deploy &lt;a href="http://www.bejant.com"&gt;bejant.com&lt;/a&gt;, a nascent social network site, designed to introduce graduate students to potential employers. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway enough for now, I have to go and soak in more good material well i have access to such a concentration of braincells in one place. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-7015390113300191189?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/7015390113300191189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=7015390113300191189' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/7015390113300191189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/7015390113300191189'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/barcamp-london-4.html' title='Barcamp London 4'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp2.blogger.com/_BUEKzJurJw8/SEFSN-vULXI/AAAAAAAAABE/nS3t8Go8PoI/s72-c/barcampmosic.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4343293506204803021</id><published>2008-05-25T08:41:00.002+01:00</published><updated>2008-05-25T08:46:03.331+01:00</updated><title type='text'>Freebsd on Amazon EC2?</title><content type='html'>I spotted a &lt;a href="http://peat.org/2008/05/08/freebsd-on-amazon-ec2/"&gt;post on peat.org&lt;/a&gt; about an indicator that support for freebsd on amazon EC2 might be coming? &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This is apparently related to the new support for &lt;a href="http://www.sun.com/third-party/global/amazon/index.jsp"&gt;alternative OS's such as OpenSolaris&lt;/a&gt; , if anybody from amazon is listening then:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Please please please please please ........ support Freebsd on EC2, its stability and ease of use in server environments is second to none.  I would dump linux in a heartbeat if Freebsd support was available. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4343293506204803021?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4343293506204803021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4343293506204803021' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4343293506204803021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4343293506204803021'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/freebsd-on-amazon-ec2.html' title='Freebsd on Amazon EC2?'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-1754726065233367093</id><published>2008-05-24T12:02:00.003+01:00</published><updated>2008-05-24T12:11:58.064+01:00</updated><title type='text'>Old Dog, New Tricks</title><content type='html'>Web Frameworks seem to be the fad of the month at the moment, I have looked at a number of them from the venerable Ruby On Rails, Cocoon, Symfony, CakePHP, Code Ignitor, Grovy and Grails. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However I stumbled across a new one that really took me back this week. &lt;a href="http://WWW.COBOLONCOGS.ORG/"&gt;Cobol on Cogs &lt;/a&gt; , yes that really is a web framework written in cobol.  All we need is Assembler on Acid and my week would be complete :-)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Doh........&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-1754726065233367093?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/1754726065233367093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=1754726065233367093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1754726065233367093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1754726065233367093'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/old-dog-new-tricks.html' title='Old Dog, New Tricks'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-6739156269079239568</id><published>2008-05-23T10:11:00.004+01:00</published><updated>2008-05-23T10:39:49.104+01:00</updated><title type='text'>Stupid Stupid Sun Linux VM installer %$&amp;*%-up</title><content type='html'>Suns rpm Linux installer includes a number of unversioned resources for common installable packages.  So if you attempt to install something like "xml-commons-apis" with rpm or yum, the package manager tries to obsolete the unversioned package, and the only provider it can find is the jdk itself. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So after installing this package, you suddenly discover your JDK has vaporised. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So far there appears to be no known work around, other than to build a new sun jdk package from the src, which does not provide the unversioned packages. &lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This fault has been around since feb 2007, and has not been fixed, I hit it when trying to install a red5 flash server, and could not get ant to run because it cant find the resource. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why is Java system configuration so damm hard? &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="https://www.zarb.org/pipermail/jpackage-discuss/2007-April/011327.html"&gt;More details here:&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-6739156269079239568?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/6739156269079239568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=6739156269079239568' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/6739156269079239568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/6739156269079239568'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/stupid-stupid-sun-linux-vm-installer.html' title='Stupid Stupid Sun Linux VM installer %$&amp;*%-up'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4803186645671359621</id><published>2008-05-21T07:43:00.004+01:00</published><updated>2008-05-21T08:05:35.821+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Scientology'/><category scheme='http://www.blogger.com/atom/ns#' term='Law'/><title type='text'>Have the City of London Police been infiltrated by Scientology?</title><content type='html'>Yesterday the guardian &lt;a href="http://www.guardian.co.uk/uk/2008/may/20/1?gusrc=rss&amp;amp;feed=networkfront"&gt;ran a story &lt;/a&gt;about an anti-scientology demonstrator being prosecuted by the City of London Police (Note: Not the metropolitan police). The demonstrators "crime" was to use the word "cult" to describe Scientology on a placard during a demonstration. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Aside from the obvious free speech issues, the article raises some interesting connections between the City of London Police force and the Church of Scientology, including senior officers accepting gifts from the church, and appearing in promotional videos. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Scientology is a dangerous cult that exploits the more vulnerable members of society, whilst hiding behind laws designed to protect religious freedoms. Indeed in many countries, &lt;a href="http://www.charity-commission.gov.uk/Library/registration/pdfs/cosdecsum.pdf"&gt;Uk&lt;/a&gt; and &lt;a href="http://news.bbc.co.uk/2/hi/europe/7133867.stm"&gt;Germany&lt;/a&gt; notably, the state has stripped this cult of its religion status in order to prevent it exploiting the law, in the same way it attempts to exploit every other aspect of the society it disdains so much.  More European countries need to follow suit, to ensure that Scientology cannot establish the legal foothold it has in other regions. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Serious questions need to be asked about the relationship between the City of London Police force and the Scientologists, and efforts should be made to determine just how far this insidious group has infiltrated an organisation that is supposed to serve in societies best interests. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4803186645671359621?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4803186645671359621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4803186645671359621' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4803186645671359621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4803186645671359621'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/have-city-of-london-police-been.html' title='Have the City of London Police been infiltrated by Scientology?'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-1757388648086041447</id><published>2008-05-17T07:58:00.010+01:00</published><updated>2008-05-17T09:01:09.253+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='BEJANT STARTUP'/><category scheme='http://www.blogger.com/atom/ns#' term='Scalability.'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><title type='text'>Amazon AWS - A practical experience - Part 1</title><content type='html'>Over the last few weeks I have been engaged in migrating a site I have been working on to the &lt;a href="http://aws.amazon.com/"&gt;Amazon Web Services &lt;/a&gt;Environment. I have now got to the point where I feel I can start to write a series of posts about our experiences.  This post is an introduction to this series.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Overview.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The site I have been working on migrating is &lt;a href="http://www.bejant.com/"&gt;Bejant.com&lt;/a&gt;, a LAMP based graduate employment social network that I have been working with for the last 3 months. The characteristics of Bejant are as follows&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;PHP 5.2 based&lt;/li&gt;&lt;li&gt;MySQL&lt;/li&gt;&lt;li&gt;Apache 2.2&lt;/li&gt;&lt;li&gt;Memcached&lt;/li&gt;&lt;li&gt;Centos 5.0&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Swish-e Indexer (for search).&lt;/li&gt;&lt;li&gt;Video Distribution and conversion.  (ffmpeg).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;The Amazon Web Services services used in this implementation are:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Amazon EC2 - Elastic Computing Cloud&lt;/li&gt;&lt;li&gt;Amazon S3 - Flexible Storage&lt;/li&gt;&lt;li&gt;Amazon SQS - Message Queueing.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;We are also evaluating the Amazon Simple DB as a means of persisting work storage between processes, but work in this area is at a very early phase. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;The Runtime environment&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Before we dive into the details of how we did this port, lets take a moment to list services that we are attempting to provide. &lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;2 Front-end servers&lt;/li&gt;&lt;li&gt;2 Database servers&lt;/li&gt;&lt;li&gt;1 Test/QA server&lt;/li&gt;&lt;li&gt;1 Developer server&lt;/li&gt;&lt;li&gt;1 Video Processing Server&lt;/li&gt;&lt;li&gt;1 Utility server (ad server, mail-list manager, Feed processing pipeline).&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;We chose to use the &lt;a href="http://www.rightscale.com/"&gt;RightScale&lt;/a&gt; management environment, which for a monthly fee provides Monitoring, Alerting and instance management and configuration.&lt;br /&gt;&lt;br /&gt;I looked at a few other management tools such as &lt;a href="http://www.intridea.com/2008/4/2/open-sourcing-scalr"&gt;Scalr&lt;/a&gt; and &lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=442"&gt;EC2PHP&lt;/a&gt; both of which did not provide enough capabilities to reasonably manage the cluster.   It is indeed possible to roll your own, but we felt that RightScale gave us an edge and made creating this complex system setup easier and more maintainable.&lt;br /&gt;&lt;br /&gt;RightScale provides the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Replicated database solution&lt;/li&gt;&lt;li&gt;Autoscaling&lt;/li&gt;&lt;li&gt;Load balancing front ends&lt;/li&gt;&lt;li&gt;Monitoring and alerting&lt;/li&gt;&lt;li&gt;Multi-server clusters&lt;/li&gt;&lt;li&gt;Log file consolidation&lt;/li&gt;&lt;li&gt;Automated system administration &lt;/li&gt;&lt;li&gt;Dynamic server configuration&lt;/li&gt;&lt;/ul&gt;Development Requirements&lt;br /&gt;&lt;br /&gt;We decided that we wanted to create an environment that supports the full lifecycle of the Bejant.com development activity, which is predominantly SCRUMM based, to that end we wanted a production pipeline that moves releases from Development to Test to Live in an organised fashion.  Bejant's sprint cycles operate on a approximately two week time line, during which a number of major and minor feature enhancements are introduced, alongside the usual maintenance and bugfixing activities that are normal for any development team.  The Reason for the seperate Test enviroment is to isolate the QA folk from  the day to day change that occures on a development system, and allow them to operate thier own database with known test accounts and data.&lt;br /&gt;&lt;br /&gt;The challenge here is to make sure that the codebase and database schema are aligned on each stage of the pipeline, with a site such as Bejant that is undergoing rapid development, these elements are often quite different in each stage as new features are added and roled through to production.&lt;br /&gt;&lt;br /&gt;To that end we decided that the system would effectively boot each stage from a subversion repository, which would hold branches that reflect the stages in the pipeline.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The dev instances always boot from the trunk, and reflect the current state of the codebase.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The Test instances boot from trunk, but are set to a particular revision that is deemed to be "in test", the test engineers can chose which revision to boot an instance from.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The live system boots from a branch which represents a released product.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;These "stages" are the same "enviroments" that are embodied in popular frameworks such as Ruby on Rails, Grails and Symfony.&lt;br /&gt;&lt;br /&gt;In my next post we will look at some of the basics of AWS and the facilities it provides.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-1757388648086041447?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/1757388648086041447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=1757388648086041447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1757388648086041447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1757388648086041447'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/05/amazon-aws-practical-experience-part-1.html' title='Amazon AWS - A practical experience - Part 1'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-1339164172287040083</id><published>2008-04-05T10:37:00.004+01:00</published><updated>2008-04-05T11:09:38.454+01:00</updated><title type='text'>Yet another What open source CMS's need.... (YAWOSCN)</title><content type='html'>As a professional systems architect and systems integrator, I often ponder the use of open source CMS systems in commercial and semi-commercial websites. Its tempting, good quality, flexible content management solutions, with on-going support and development, at a price that is tempting.   Products such as Drupal, TextPattern, Mambo etc. are fantastic products. Couple them with other offerings for managing image galleries, Message-boards, Learning management Systems and a host of other application spaces, its easy to see how you can snap together really cool systems at very little cost.&lt;br /&gt;&lt;br /&gt;However there are a few flies in the ointment, that always draw me back.&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Single Sign On.... &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;All of these packages usually ship with their own embedded user and profile management system, trying to "integrate" multiple systems together can be a nightmare. You either end up with complex and fragile "bridges" that usually involve maintaining account mapping tables, and copying user data backwards and forwards between disparate systems. Or your end up having to hack a core feature out of the system and replace it with your own interface to the user authentication and authorization system that is shared across the whole site.&lt;br /&gt;&lt;br /&gt;What we need is a mechanism for abstracting users and profiles that can be plugged in across multiple systems. Ok, so some will say, well thats what directory solutions like LDAP etc are for, but they only solve part of the solution, putting all the data in one place, they dont help with maintaining a consistent session maintenance across disparate products.&lt;br /&gt;&lt;br /&gt;A component SSO solution should handle all activities related to user data, signin, signup, signout, password reminder, alerting (email, im, sms), user to user communications, profile/bio maintenance and visibility controls.  And preferably cope with international requirements such as regionally variable data protection rules, multisite replication etc.&lt;br /&gt;&lt;br /&gt;One possible solution I have been examining is a new social networking core called Ringside (&lt;a href="http://www.ringsidenetworks.com"&gt;http://www.ringsidenetworks.com&lt;/a&gt;) which handles all of the above, and adds many other components such as groups, contact lists, friends networks etc too. It even supports running of facebook apps inside the core, and has a road map that will encompass OpenID and OpenSocial. It would make an ideal core platform for attaching other applications to as modular components. Its nicely architected, having separated front-end and back-end processes.&lt;br /&gt;&lt;br /&gt;If a suitable API or standard can be evolved that gives open source package writers the option to avoid all that user management code and just plug in to a common set of apis, some very very cools setups can be evolved.&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Front-ends and Templating&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Almost every system i have examined uses almost completely different mechanisms for handling presentation, some use templates, some use CSS, some are table ridden nightmares, but they are all wildly different, and most are single tier applications where the back-end logic and the front-end page generation are tightly integrated together. In this day and age there is no excuse for this, if you are an author planning an open source product (or any web based product) consider true separation between your front-end and back-end systems, use a Restful interface to bind the two together, and we systems integrators will love you for it, we can chose to take your back-end engine and integrate it directly into any front-end we are using to wrap the web service.&lt;br /&gt;&lt;br /&gt;If the Open Source movement could embrace the two principles above, you would see a lot more adoption in business and enterprises.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-1339164172287040083?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/1339164172287040083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=1339164172287040083' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1339164172287040083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1339164172287040083'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/04/yet-another-what-open-source-cmss-need.html' title='Yet another What open source CMS&apos;s need.... (YAWOSCN)'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-3466299030756429905</id><published>2008-03-20T00:23:00.006Z</published><updated>2008-03-20T00:40:25.667Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Ruby'/><title type='text'>Gotcha when upgrading rails on Mac OS X Leopard</title><content type='html'>One of the first things I did when receiving my new MacBook was to upgrade the Rails installation to 2.0.2, the standard installation of Rails on Leopard is 1.2.6. &lt;br /&gt;&lt;br /&gt;Updating is simple, so long as you remember one little "gotcha". &lt;br /&gt;&lt;pre&gt;$sudo gem update --system&lt;br /&gt;$sudo gem update&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now here is the gotcha. Rails 2.0.X now has an new element, active resource, which is not upgrade by the standard upgrade path.&lt;br /&gt;If you get the following error then its likely that you hav'nt updated rails properly. &lt;br /&gt;&lt;pre&gt;$ rails&lt;br /&gt;/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:379:in `report_activate_error': Could not find RubyGem activeresource (= 2.0.2.9053) (Gem::LoadError)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt; so the solution is to either... &lt;br /&gt;&lt;pre&gt;$sudo gem install rails&lt;/pre&gt;&lt;br /&gt;or &lt;br /&gt;&lt;pre&gt;$sudo gem install activeresource&lt;/pre&gt; &lt;br /&gt;&lt;br /&gt;You dont need to use --include-dependancies anymore, its the default on the current version of rubygems. &lt;br /&gt;&lt;br /&gt;Note also that the standard rails distribution on Leopard does not include a mysql driver, i will produce a post on how to upgrade this later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-3466299030756429905?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/3466299030756429905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=3466299030756429905' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3466299030756429905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3466299030756429905'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/gotcha-when-upgrading-rails-on-mac-os-x.html' title='Gotcha when upgrading rails on Mac OS X Leopard'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-6794491270255677192</id><published>2008-03-18T21:26:00.008Z</published><updated>2008-03-19T14:54:03.693Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X Leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='Grails'/><title type='text'>Holy grails on Mac OS X Leopard</title><content type='html'>&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;a href="http://tshawkins.blogspot.com/2008/03/groovy-on-leopard.html"&gt;In an earlier post&lt;/a&gt; I showed how to install "groovy", a "ruby" like language, that runs on top of the Java VM, it is the backbone of the &lt;a href="http://grails.org/"&gt;Grails&lt;/a&gt; initiative which aims to provide a &lt;a href="http://rubyonrails.org/"&gt;Rails&lt;/a&gt; like environment on the Java Platform, Groovy is to Grails, as Ruby is to Rails. &lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This time I'm going to show you how to install and setup Grails on leopard. If this post looks simular to the groovy post, then thats because the method for installing the two are very simular, and I have a cut and paste button, and imm feeling lazy.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Prerequisites&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;First make sure you have java and its dev tools setup on your machine &lt;a href="http://tshawkins.blogspot.com/2008/03/leopards-scorecard-with-java.html"&gt;see this post on how to do that&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now download grails from the grails site. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unpack the archive and move it to /usr/share , for example:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;$ sudo mv ~/downloads/grails-1.0.1 /usr/share &lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Now set ownership and permissions on the directories&lt;/div&gt;&lt;div&gt;&lt;pre&gt;$cd /usr/share&lt;br /&gt;$sudo chown -R root:wheel grails-1.0.1/&lt;br /&gt;$sudo chmod 0755 grails-1.0.1/bin/*&lt;/pre&gt;&lt;br /&gt;Now create a symlink to access the current version of grails by, if you download and install another version later, you can just move the symlink to point at it, this is a good practice as it prevents you having to overwrite your old installation.&lt;br /&gt;&lt;pre&gt;$ln -s grails-1.0.1 grails&lt;/pre&gt;&lt;br /&gt;Finaly add the following to your /etc/profile or ~/.profile depending on wether you want it available for all logons or just your own. &lt;/div&gt;&lt;div&gt;&lt;pre&gt;GRAILS_HOME=/usr/share/grails; export GRAILS_HOME&lt;/pre&gt;&lt;div&gt;And the following to your path in the same file, note your path should be defined after the above&lt;/div&gt;&lt;pre&gt;PATH = $GRAILS_HOME/bin:$PATH; export PATH&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Now your ready to try it out and see if it works, open up a terminal and type:&lt;/div&gt;&lt;pre&gt;$grails&lt;br /&gt;&lt;br /&gt;Welcome to Grails 1.0.1 - http://grails.org/&lt;br /&gt;Licensed under Apache Standard License 2.0&lt;br /&gt;Grails home is set to: /usr/share/grails&lt;br /&gt;&lt;br /&gt;No script name specified. Use 'grails help' for more info&lt;br /&gt;$&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;Cool, it works.&lt;br /&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-6794491270255677192?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/6794491270255677192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=6794491270255677192' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/6794491270255677192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/6794491270255677192'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/holy-grails-on-leopard.html' title='Holy grails on Mac OS X Leopard'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2017083490270193006</id><published>2008-03-18T16:42:00.005Z</published><updated>2008-03-19T14:54:51.884Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='SCALABILITY'/><category scheme='http://www.blogger.com/atom/ns#' term='Mysql'/><title type='text'>Scaling it up.</title><content type='html'>Around about this time last year, I gave a presentation at &lt;a href="http://en.wikipedia.org/wiki/BarCamp"&gt;BarcampLondon2&lt;/a&gt; on scalability in low end web services. The presentation was targeted at small startups and sole web developers and aimed to give them some insights into how to harden a site against burst traffic. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Anyway some kind soul thought it was good enough to upload to &lt;a href="http://scribd.com"&gt;Scribd&lt;/a&gt; , so you can read this now &lt;a href="http://www.scribd.com/doc/24149/Scaling-it-up"&gt;slightly dated presentation here&lt;/a&gt;. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2017083490270193006?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2017083490270193006/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2017083490270193006' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2017083490270193006'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2017083490270193006'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/scaling-it-up.html' title='Scaling it up.'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2306173894075590115</id><published>2008-03-18T15:25:00.016Z</published><updated>2008-07-26T14:46:01.535+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Grail'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X Leopard'/><title type='text'>Groovy on Mac OS X Leopard</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_BUEKzJurJw8/R9_soDpsQtI/AAAAAAAAAAc/USQGjMsWQHw/s1600-h/groovygrab.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://bp1.blogger.com/_BUEKzJurJw8/R9_soDpsQtI/AAAAAAAAAAc/USQGjMsWQHw/s200/groovygrab.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5179118269418455762" /&gt;&lt;/a&gt;&lt;div&gt;&lt;a href="http://groovy.codehaus.org/" style="text-decoration: none;"&gt;Groovy&lt;/a&gt; is the new "&lt;a href="http://www.ruby-lang.org/en/"&gt;Ruby&lt;/a&gt;" like language that runs on top of the Java VM, it is the backbone of the &lt;a href="http://grails.org/"&gt;Grails&lt;/a&gt; initiative which aims to provide a &lt;a href="http://rubyonrails.org/"&gt;Rails&lt;/a&gt; like environment on the Java Platform, Groovy is to Grails, as Ruby is to Rails. &lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This post will show you how to setup groovy on Leopard, and allow you to explore this intriguing new language.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;Prerequisites&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;First make sure you have java and its dev tools setup on your machine &lt;a href="http://tshawkins.blogspot.com/2008/03/leopards-scorecard-with-java.html"&gt;see this post on how to do that&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now download groovy from the groovy site. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unpack the archive and move it to /usr/share , for example:&lt;/div&gt;&lt;div&gt;&lt;pre&gt;$ sudo mv ~/downloads/groovy-1.5.4 /usr/share &lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Now set ownership and permissions on the directories&lt;/div&gt;&lt;div&gt;&lt;pre&gt;$cd /usr/share&lt;br /&gt;$sudo chown -R root:wheel groovy-1.5.4/&lt;br /&gt;$sudo chmod 0755 groovy-1.5.4/bin/*&lt;/pre&gt;Now create a symlink to access the current version of groovy by, if you download and install another version later, you can just move the symlink to point at it, this is a good practice as it prevents you having to overwrite your old installation.&lt;br /&gt;&lt;pre&gt;$sudo ln -s groovy-1.5.4 groovy&lt;br /&gt;&lt;/pre&gt;Finaly add the following to your /etc/profile or ~/.profile depending on wether you want it available for all logons or just your own. &lt;/div&gt;&lt;div&gt;&lt;pre&gt;GROOVY_HOME=/usr/share/groovy; export GROOVY_HOME&lt;/pre&gt;&lt;div&gt;And the following to your path in the same file, note your path should be defined after the above&lt;/div&gt;&lt;pre&gt;PATH=$GROOVY_HOME/bin:$PATH; export PATH&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;Now your ready to try it out and see if it works, open up a terminal and type:&lt;/div&gt;&lt;pre&gt;$groovyConsole&lt;/pre&gt;&lt;div&gt;The groovy console window should open up as shown above, thats it your done, stay tuned for more groovy news.&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2306173894075590115?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2306173894075590115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2306173894075590115' title='11 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2306173894075590115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2306173894075590115'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/groovy-on-leopard.html' title='Groovy on Mac OS X Leopard'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_BUEKzJurJw8/R9_soDpsQtI/AAAAAAAAAAc/USQGjMsWQHw/s72-c/groovygrab.jpg' height='72' width='72'/><thr:total>11</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-7072890163840506189</id><published>2008-03-17T17:36:00.008Z</published><updated>2008-03-19T14:53:41.869Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Mac OS X Leopard'/><title type='text'>Leopard's A+ scorecard with Java</title><content type='html'>In preparation for looking at &lt;a href="http://groovy.codehaus.org/"&gt;groovy&lt;/a&gt;, &lt;a href="http://grails.org/"&gt;grails&lt;/a&gt;, &lt;a href="http://hadoop.apache.org/"&gt;hadoop&lt;/a&gt; and &lt;a href="http://hypertable.org/"&gt;hypertable&lt;/a&gt; , I decided to get my macbook setup to run ant, maven, junit etc. After a bit of searching and scouring the net, I found a number of tutorials, on how to get this environment running, showing how to download and install this package, and that package, set up this file and add these lines to here and there, until my head was spinning.&lt;br /&gt;&lt;br /&gt;However its is a LOT simpler than that. Just install XCode 3.0 TOOLS, from the optional installs section of your Leopard distribution disk and it will install and setup&lt;br /&gt;&lt;PRE&gt;&lt;SPAN color="green"&gt;/usr/share/ant -&gt; ant-1.7.0&lt;br /&gt;/usr/share/maven -&gt; maven-2.0.6&lt;br /&gt;/usr/share/junit -&gt; junit-4.1&lt;/SPAN&gt;&lt;/PRE&gt;&lt;br /&gt;and it will throw cvs, subversion and a multitude of other tools in for good measure. Unfortunately Xcode 3 wont run on Tiger (10.4.x), where you are stuck with Xcode 2.5, which may not setup all this goodness, but since i dont have a Tiger Machine anymore, i cant verify this.&lt;br /&gt;&lt;br /&gt;So: to start the investigation of the java frameworks/platforms listed above, I just added the following to the end of my /etc/profile, to make sure the packages can find the installed goodies.&lt;br /&gt;&lt;PRE&gt;&lt;SPAN color="green" &gt;JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5/Home; export JAVA_HOME&lt;br /&gt;ANT_HOME=/usr/share/ant; export ANT_HOME&lt;br /&gt;MAVEN_HOME=/usr/share/maven; export MAVEN_HOME&lt;br /&gt;JUNIT_HOME=/usr/share/junit; export JUNIT_HOME&lt;/SPAN&gt;&lt;/PRE&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-7072890163840506189?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/7072890163840506189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=7072890163840506189' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/7072890163840506189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/7072890163840506189'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/leopards-scorecard-with-java.html' title='Leopard&apos;s A+ scorecard with Java'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2362534361290209792</id><published>2008-03-08T23:47:00.003Z</published><updated>2008-03-18T09:00:48.902Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='RUBY RAILS LEOPARD'/><title type='text'>Ruby off the Rails</title><content type='html'>In keeping with my new years resolutions, i have been struggling to learn Ruby On Rails, so armed with an existing PHP application that i wished to replicate in rails (as a learning exercise, i do'nt recommend that you seriously consider re-factoring a mature application in rails). &lt;br /&gt;&lt;br /&gt;This is a three fold learning exercise, first learning ruby the language, then rails, then how to run and deploy rails on Mac OS X, my operating system of choice.&lt;br /&gt;&lt;br /&gt;One of the things i have learnt so far, is that unlike compiled languages, interpreted languages can tie you up in knots, trying to work out why something that seems to run does not do what you want it to do. &lt;br /&gt;&lt;br /&gt;I guess the next thing i will have to learn is how to get the ruby debugger running, or i'm going to be even more prematurely bald.  &lt;br /&gt;&lt;br /&gt;So im running:&lt;br /&gt;&lt;br /&gt;Mac OS X leopard on a MacBook, with the Apple ruby. mysqly.ab sourced MySQL 5.0.51, Aptana Studio as my IDE and Mongrel as the web server. &lt;br /&gt;&lt;br /&gt;Getting that lot to co-exist was adventure in its own right (and may be the subject of another post), but now i have it working its a pretty slick environment, i reckon in the last 10 hours I have done as much work as would have taken me a week to get running in PHP or C++. &lt;br /&gt;&lt;br /&gt;So off to find out how to make debugging work in the IDE, i managed it once, but only after considerable fiddling. &lt;br /&gt;&lt;br /&gt;BTW: the new MacBooks are wicked developer workstations, the Black MacBook came with 250G Drive and 2G ram, and is as fast as hell, faster than my 3 gen MacBook Pro that i recently gave up. &lt;br /&gt;&lt;br /&gt;Now wheres that debugger documentation :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2362534361290209792?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2362534361290209792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2362534361290209792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2362534361290209792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2362534361290209792'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/ruby-off-rails.html' title='Ruby off the Rails'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-1423814862154032648</id><published>2008-03-08T19:21:00.003Z</published><updated>2008-03-18T09:35:29.189Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo Microsoft'/><title type='text'>Yahoo Vs Microsoft</title><content type='html'>Somebody sent me this cool video mashup on facebook. Some of the humor is very "inside" to Yahoo, its very funny none the less. It was made by Amr, who works for the US search team.. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/r76byZVg5vI&amp;rel=0&amp;border=0"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/r76byZVg5vI&amp;rel=0&amp;border=0" type="application/x-shockwave-flash" wmode="transparent"width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-1423814862154032648?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/1423814862154032648/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=1423814862154032648' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1423814862154032648'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/1423814862154032648'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/03/yahoo-vs-microsoft.html' title='Yahoo Vs Microsoft'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-6606883530427568126</id><published>2008-02-27T08:51:00.008Z</published><updated>2008-03-19T14:51:09.262Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP MAC OSX LEOPARD'/><title type='text'>Fixing Mac OS X Leopards abysmal PHP implementation</title><content type='html'>One of the unsung updates that occurred on OSX Leopard, was the introduction of Apache2 and PHP 5.2.4 as standard components for web page sharing. When you enable "Web sharing" on the Mac, you are essentially starting up a copy of the Apache workhorse on your system, enabled by OSX's unix underpinnings. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However in true Apple form, they seem to have gone out of their way to make life hard, and the default startup mode for the builtin apache system is as a 64bit application (on intel C2D+ hardware), making it difficult to use the provided PHP implementation "as is", if you need to load any extensions. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The issue stems from the choice of built in support on the Apple delivered php implementation. There are many deficiencies in the manifest of included options, of note is the lack of support for the PHP GD or GD2 module, used in many applications that required graphical output, PDFlib, libtidy and PEAR support are also highlighted by their absence. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok, no problem, down load the source for PHP 5.2.4. compile the extensions, and install them i hear you say....&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Problem, on most recent Macs, the PHP implementation is also 64bit, a configuration that is not supported out of the box in the standard build options on PHP, and if that was not enough, many of the extensions you might want to install, are dependent on external libraries, not supplied by apple, and whose build environments also do not support creating the 4 way universal libs required to play nice across all the platforms Leopard runs on. Package managers such as fink or macports, hav'nt caught up with the need to supply 4 way fat binaries to cover all the possible platform variations.&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ok, no problem, I found this excellent &lt;a href="http://www.veola.net/macintosh/adding-gd-library-for-mac-os-x-leopard"&gt;tutorial on adding GD lib&lt;/a&gt;, , however try as i might, i could not get this to load, probaly again due to 64bit/32bit unhappyness. My foo is not enough........ :-( But it may work for you, and if GD is the only extension you need, then bobs your uncle.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Fortunately for those of use with more challenging PHP enviroment requirements Marc Liyange of &lt;a href="http://entropy.ch/"&gt;http://entropy.ch&lt;/a&gt; fame has taken up the challenge and is producing a version of PHP 5.2.5 loaded for bear, which solves all of these build intricacies. Currently in beta 6, its works well on both my C2D macs and my G4 Macs.&lt;br /&gt;&lt;br /&gt;However one word of caution, marc's installation process assumes that you have not yet enabled the on-board php implementation, if you have then you need to comment out the LoadExtension line you carefully uncommented to enable it, and trust to marc's magic installation of additional included conf files.&lt;br /&gt;&lt;br /&gt;Oh, and another notable is that php.ini moves from /etc to /usr/local/php5/etc&lt;br /&gt;&lt;br /&gt;More details of beta 6 can be found on this thread. &lt;a href="http://www.entropy.ch/phpbb2/viewtopic.php?t=2945&amp;amp;start=0&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight="&gt;http://www.entropy.ch/phpbb2/viewtopic.php?t=2945&amp;amp;start=0&amp;amp;postdays=0&amp;amp;postorder=asc&amp;amp;highlight=&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-6606883530427568126?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/6606883530427568126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=6606883530427568126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/6606883530427568126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/6606883530427568126'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/02/fixing-leopards-abysmal-php.html' title='Fixing Mac OS X Leopards abysmal PHP implementation'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-3331011200214905258</id><published>2008-02-27T08:31:00.003Z</published><updated>2008-03-18T09:19:11.629Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='CONTENT CMS LMS'/><title type='text'>LMS, CMS time for a merger?</title><content type='html'>Recently i have been playing around with LMS (Learning Management Systems), this is a way cool technology, and a whole ecosystem has grown up around authoring, editing and presenting courseware. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My main interest is in providing LMS capabilities inside an existing Portal application, hence i have been looking at how to integrate an LMS system and a conventional Portal/CMS system. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Having come from the publishing industry, i'm quite comfortable with the conventional view of publishing, articles, listings and other media. But my foray into the LMS side of things has shown me that there is a whole wealth of other content types that are not the traditional "flat" content. Working with an LMS and the courseware authoring systems, has opened my eyes to the fact that content should be capable of being active. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I think the reason why we don't see more interactive content is there is a lack of embeddable "runtime" components for interactive content. Sure we have flash etc, but they are more production tools, and don't provide the standards and rich ecosystem  required for interactive content exchange. Flash essentially locks the content down to a singular presentation format, and does not offer the interchange capabilities that would allow the same interactive content to be rendered adaptively.  Flash is essentially similar in concept to PDF which again locks down the interaction and presentation models. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the LMS world there are a number of emerging standards for "packaging" courseware, one of which is SCORMS. Most OSS and commercial systems now support it as an interchange format for interactive learning material, its rapidly becoming the ".doc" format of learning content. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I'll be writing more as i explore this space in the coming weeks, so stay tuned..... &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-3331011200214905258?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/3331011200214905258/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=3331011200214905258' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3331011200214905258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3331011200214905258'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/02/lms-cms-time-for-merger.html' title='LMS, CMS time for a merger?'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2374756082391252636</id><published>2008-02-12T19:03:00.001Z</published><updated>2008-03-18T09:19:46.008Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='BEJANT STARTUP'/><title type='text'>Friends do interesting things</title><content type='html'>Some friends of mine have just completed the first phase of a site to allow graduates to find jobs with industry leading companies. Anyway you can judge the results for yourself, and if you are looking for a new role, sign up even. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Details at &lt;a href="http://www.bejant.com"&gt;www.bejant.com&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2374756082391252636?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2374756082391252636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2374756082391252636' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2374756082391252636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2374756082391252636'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/02/friends-do-interesting-things.html' title='Friends do interesting things'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-638248777899430221</id><published>2008-01-30T20:38:00.000Z</published><updated>2008-01-30T21:41:38.659Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Webdev css3 layouts'/><title type='text'>What I would like in CSS3 - Save Restore State</title><content type='html'>Many years ago I was involved in creating Postscript systems, I even wrote my own postscript rendering system at one time (Postbox). &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Now I work with websites and web developers, and one of the capabilities I miss from my postscript hacking days is the ability to save and reset the graphics state. &lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Some background. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;I work for a large internet publisher, designing and recommending authoring and production systems for folks producing millions of pages of content a year. Increasingly we are moving towards component based page assembly, where pages are assembled from a library of modules that conform to common interfaces and common presentation standards.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A module may be standalone, or may have to interact or inherit design elements (colour pallets, fonts etc) from the overall page design. Trying to maintain a modular library is a nightmare because of the need to ensure that all variations of the modules on a page are supported by the active cascade running on the page.  &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Module libraries are relatively easy to manage when you have 10's of modules to support, only a few production staff, and a limited set of design variations between pages. But extend that to 10's of thousands of modules, thousands of production staff, and hundreds of basic site designs and you soon discover that uniquley crafted CSS cascade descriptions are unmanageable. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have put a lot of research into designing suitable mechanisms for automatically building a pages CSS descriptions from the manifest of modules installed on the page, but this is itself a complex task. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Sandboxing content&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sadly this could all be eliminated if there was a simple way to reset the cascade associated with an id back to the browser default, so that in-line CSS could be used to describe the behavior of the visual area enclosed by the div or span. Coupled with a simple mechanism for referencing particular cascade elements across the reset, to allow the sub-region to selectively pickup characteristics from the main layout, a simple and powerful mechanism would emerge that that would aid the portals in their quest to create dynamic content. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This would also boost the adoption of personalization, allowing complete layouts to be individualy defined for users. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I strongly feel that this should be a capability that is included in the CSS3 specification. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-638248777899430221?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/638248777899430221/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=638248777899430221' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/638248777899430221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/638248777899430221'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/what-i-would-like-in-css3-save-restore.html' title='What I would like in CSS3 - Save Restore State'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-8590137984077530827</id><published>2008-01-24T07:17:00.000Z</published><updated>2008-01-24T07:31:58.308Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='hobbies computers nostalgia antiques'/><title type='text'>Nostalgia ain't what it used to be</title><content type='html'>A recent post on an internal Yahoo maillist, triggered a wave of nostalgia for the old old days of computing. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I was a computer enthusiast during the halcyon days of the early microcomputer hobby scene here in the UK, in particular i was very active in the NatSemi SCMP and SCMP II circles, having built several SCMP based systems and published in Personal Computer World, designs for Memory extensions and Multiprocessor add-ons to the basic Sinclair MK14 microcomputer trainer kit. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reading though some of the sites that exist to document this era, brings misty tears to my eyes, I still remember the days and nights locked away in what was at that time an old coal storage space in my first flat, that i had converted to a workshop, soldering iron in hand, building more and more bizarre variations.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most extreme was a system that could have its CPU switched between a SCMP II, a 6502 and a 8080, so that i could run programs published for any of those architectures, without the then high investment in dedicated RAM and IO peripherals for each architecture. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I still remember my then wife, complaining bitterly about the tiny solder beads, and small lengths of wire wrap that insinuated themselves into the living room carpet, and the batik like stains on all my jeans, from the ferric chloride used to etch my own circuit boards. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Ahh those where the days, happy times. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;see &lt;a href="http://www.mymk14.co.uk"&gt;http://www.mymk14.co.uk&lt;/a&gt; for more fun.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-8590137984077530827?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/8590137984077530827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=8590137984077530827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/8590137984077530827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/8590137984077530827'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/nostalgia-aint-what-it-used-to-be.html' title='Nostalgia ain&apos;t what it used to be'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-8163748739037963715</id><published>2008-01-11T10:08:00.003Z</published><updated>2008-03-18T09:13:30.754Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='INTEL G4 LEOPARD INSTALL'/><title type='text'>Fragile Intel Macs</title><content type='html'>In total I have 4 Macs, 2 G4's and Two intel machines, all of them have super-drives fitted, I recently discovered that the superdrives on both the Intel machines have become flakey.  &lt;br /&gt;&lt;br /&gt;I first noticed this when i was trying to install leopard (10.5) on these machines, Leopard weighs in at 7.8G with all options installed, and comes on a DL layer DVD. And was completely unreadable by both intel machines. &lt;br /&gt;&lt;br /&gt;The solution turned out to be simple. Using a small external USB drive formated with a GUID partitions (this important people, pay attention, two types of partition, GUID or Apple Partition Map, use the former or it wont boot), I used Disk Utility to copy the DVD to the USB drive using one of the G4 machines by "restoring" it to the volume. &lt;br /&gt;&lt;br /&gt;Then it was just a matter of plugging the drive in to the intel macs, and running OS X Install to get leopard installed on the fragile machines. &lt;br /&gt;&lt;br /&gt;So whilst i recognize that I'm problaly just the victim of bad luck, but i really do wonder if Macs are as reliable now we have moved to the Intel world.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-8163748739037963715?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/8163748739037963715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=8163748739037963715' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/8163748739037963715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/8163748739037963715'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/fragile-intel-macs.html' title='Fragile Intel Macs'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4010294508879837922</id><published>2008-01-09T07:29:00.000Z</published><updated>2008-01-09T07:31:35.176Z</updated><title type='text'>New Years Resolutions</title><content type='html'>As a follower of truly sad traditions here are my new years resolutions:&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. Stop smoking (again). &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Loose Weight (again).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3. Learn Ruby and Rails.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. Become more organized.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4010294508879837922?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4010294508879837922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4010294508879837922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4010294508879837922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4010294508879837922'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/new-years-resolutions.html' title='New Years Resolutions'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-4819655589535700455</id><published>2008-01-09T04:32:00.000Z</published><updated>2008-01-09T05:27:52.109Z</updated><title type='text'>Trying to be Witty</title><content type='html'>Recently I have been playing with Wt ( Witty - &lt;a href="http://webtoolkit.eu/"&gt;http://webtoolkit.eu&lt;/a&gt; ) which is a fascinating C++ based framework for building web applications, based around the Tolltech QT programming model.  Witty does not require you to have QT installed, as it supplies its own frameworks.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The most interesting part of Witty, is the way it totally abstracts the browser interface, allowing you to write apps as though they where standard QT based desktop applications, but running instead on a server with a web browser as a client. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Unless you have a fully supported OS (currently Windows and Linux), Witty is a bugger to install, but after a load of hassle I eventually managed to get it installed on my MacBookPro under OS X 10.4.11.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;However Witty presents me with something of a personal dilemma ( My background is in C++ based serverside systems ), I had promised that 2008 was the year that I became an expert in Ruby and Rails, but now I am so tempted to postpone that. My heart says "Yeeeessssss" and is doing airpunches, but my Head says let it go, R&amp;amp;R is the way to go. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Whats an aging technogeek to do? &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-4819655589535700455?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/4819655589535700455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=4819655589535700455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4819655589535700455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/4819655589535700455'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/trying-to-be-witty.html' title='Trying to be Witty'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-2829610817193158304</id><published>2008-01-09T04:24:00.000Z</published><updated>2008-01-09T04:28:46.513Z</updated><title type='text'>Spoke too soon - Tempting fate</title><content type='html'>Having just posted on the utility of the workplace for meeting new and exciting bugs and germs, I immediately succumbed to "the deadly something or other", which laid me out flatter than a garage forecourt.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Its a good job that sleep is the general cure for all these woes, so i have been indulging in a orgy of shuteye. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Which is why i'm up, writing blog posts at 4AM in the morning :-) &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-2829610817193158304?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/2829610817193158304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=2829610817193158304' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2829610817193158304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/2829610817193158304'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/spoke-too-soon-tempting-fate.html' title='Spoke too soon - Tempting fate'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-3473298555349061289</id><published>2008-01-07T14:06:00.000Z</published><updated>2008-01-07T14:36:22.228Z</updated><title type='text'>Work is sooooooooo bad for your health</title><content type='html'>Ok, i spend a load of time on the road, and for the last few months i have hardly been in the office or at home. And during that time i have been cough and sniffle free. But the moment i return to work and get to sit in the bullpen with all my germ magnet colleagues, then i immeadiatly collapse into a morass of cold and flu.&lt;div&gt; &lt;/div&gt;&lt;div&gt;Going to work is bad for you, it is a dangerous place to be, its like being back at school and getting every bug and germ doing the rounds. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Maybe we should take a leaf from the book of the hospitals who are trying to combat infection, and place alcohol gel dispensers in convenient places, so that people dont track every bug we come into contact with onto phones, keyboards, and table surfaces. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-3473298555349061289?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/3473298555349061289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=3473298555349061289' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3473298555349061289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/3473298555349061289'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/work-is-sooooooooo-bad-for-your-health.html' title='Work is sooooooooo bad for your health'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7620133482003355247.post-9177181999933584116</id><published>2008-01-07T13:00:00.000Z</published><updated>2008-01-07T13:06:46.768Z</updated><title type='text'>Kicking and screaming</title><content type='html'>Ok, so i finally decided to get a blog up and running. I don't know why i resisted so long. pure laziness is the most probable cause. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So my new years resolution for 2008 is to write and maintain a blog, so i can stave off all the snide remarks from my colleagues about not having one. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So who am i?. Im Tim, i work for a big internet company (yahoo), as a solutions architect, i have my nose into everything that can be digitized, run on a computer, downloaded to a computer, burned, ripped, encoded, encrypted, played or created with a computer. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I plan to share some of my adventures on the wire with others of my same ilk. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7620133482003355247-9177181999933584116?l=tshawkins.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tshawkins.blogspot.com/feeds/9177181999933584116/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7620133482003355247&amp;postID=9177181999933584116' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/9177181999933584116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7620133482003355247/posts/default/9177181999933584116'/><link rel='alternate' type='text/html' href='http://tshawkins.blogspot.com/2008/01/kicking-and-screaming.html' title='Kicking and screaming'/><author><name>Tim Hawkins</name><uri>http://www.blogger.com/profile/04013723343348879839</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
