<?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-6944898</id><updated>2011-07-08T11:42:53.250Z</updated><category term='arduino'/><category term='phpnw08'/><category term='best'/><category term='barcampleeds'/><category term='php'/><category term='Leeds'/><category term='firegrind'/><category term='phpnw'/><category term='krumo'/><category term='aql'/><category term='unity day'/><category term='An Agency Called England'/><category term='award'/><category term='links'/><category term='hackers'/><category term='openstreetmap'/><category term='makers'/><category term='barcampleeds08'/><title type='text'>firegrind</title><subtitle type='html'>firegrind :: just one human-computer interface</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>firegrind</name><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>30</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6944898.post-8683054361214353614</id><published>2010-04-02T07:56:00.001Z</published><updated>2010-04-02T07:57:57.818Z</updated><title type='text'>Stop Sony destroying your PS3's Other OS feature</title><content type='html'>&lt;span name="KonaBody"&gt;Use 67.202.81.137 as the primary DNS server.&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-8683054361214353614?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/8683054361214353614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=8683054361214353614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/8683054361214353614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/8683054361214353614'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2010/04/stop-sony-destroying-your-ps3s-other-os.html' title='Stop Sony destroying your PS3&apos;s Other OS feature'/><author><name>firegrind</name><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-6944898.post-8555726977844016149</id><published>2010-02-28T13:35:00.006Z</published><updated>2010-02-28T15:50:03.698Z</updated><title type='text'>How to fix the broken tutorials in Glest</title><content type='html'>I installed the free, real-time strategy game &lt;a href="http://glest.org/"&gt;Glest&lt;/a&gt; with Kubuntu 9.10 using&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ sudo apt-get install glest&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and found that the tutorial button did nothing because &lt;a href="http://glest.org/glest_board/index.php?topic=4650.0"&gt;the repository version of Glest has a broken data file&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;To fix this I had to get the missing files, put them into the correct place and tell Glest about them.&lt;br /&gt;&lt;br /&gt;1 Get the missing files&lt;br /&gt;&lt;br /&gt;You can download the latest glest-data files from &lt;a href="http://sourceforge.net/projects/glest/files/"&gt;SourceForge&lt;/a&gt;, or just do this :&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ cd ~&lt;br /&gt;$ mkdir glestupdate&lt;br /&gt;$ cd glestupdate&lt;br /&gt;$ wget http://downloads.sourceforge.net/project/glest/glest%20data/3.2.1/glest_data_3.2.1.zip?use_mirror=surfnet&lt;br /&gt;$ unzip glest_data_3.2.1.zip&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;2 Put them in the right place&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ cd glest_game&lt;br /&gt;$ sudo cp -r * /usr/share/games/glest/.&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;3 Tell Glest about them, add a link to the ~/.config/glest directory that is created when you first run Glest&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$ sudo ln -s /usr/share/games/glest/tutorials ~/.config/glest/tutorials&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I deleted the ~/glestupdate directory and Glest tutorials work now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-8555726977844016149?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/8555726977844016149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=8555726977844016149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/8555726977844016149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/8555726977844016149'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2010/02/how-to-fixing-broken-tutorials-in-glest.html' title='How to fix the broken tutorials in Glest'/><author><name>firegrind</name><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-6944898.post-3138652462624785671</id><published>2010-01-12T20:16:00.003Z</published><updated>2010-01-12T20:25:42.855Z</updated><title type='text'>Convert CDs to FLAC with Kubuntu</title><content type='html'>&lt;span style="font-family: trebuchet ms;"&gt;Clear your clutter away.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;$ sudo apt-get install abcde flac mkcue&lt;/span&gt;&lt;br /&gt;$ cd /home/firegrind/Music/compact_disks&lt;br /&gt;&lt;br /&gt;Throw a CD into the tray&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;$ abcde -1 -o flac -a default,cue&lt;/span&gt;&lt;span style="font-family: lucida grande;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: trebuchet ms;"&gt;About ten minutes later, you'll find a sensibly named directory containing a .flac file to feed into VLC and a .cue file for future processing.&lt;br /&gt;&lt;br /&gt;Rinse and repeat.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-3138652462624785671?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/3138652462624785671/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=3138652462624785671' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3138652462624785671'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3138652462624785671'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2010/01/convert-cds-to-flac-with-kubuntu.html' title='Convert CDs to FLAC with Kubuntu'/><author><name>firegrind</name><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-6944898.post-5209766249235558354</id><published>2009-05-05T09:28:00.003Z</published><updated>2009-05-05T09:36:07.841Z</updated><title type='text'>Classic software mistakes</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://forums.construx.com/blogs/stevemcc/WindowsLiveWriter/SoftwaresClassicMistakes2008_A4F6/image_10.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 529px; height: 333px;" src="http://forums.construx.com/blogs/stevemcc/WindowsLiveWriter/SoftwaresClassicMistakes2008_A4F6/image_10.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;None&lt;/span&gt; of these "&lt;a href="http://blogs.construx.com/blogs/stevemcc/archive/2008/05/13/Software_2700_s-Classic-Mistakes_2D002D00_2008.aspx"&gt;classic software mistakes&lt;/a&gt;" have anything to do with development, but developers are asked to take the strain to cope with them.&lt;br /&gt;&lt;br /&gt;Can developer knowledge be heard early enough in the process to avoid these mistakes ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-5209766249235558354?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/5209766249235558354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=5209766249235558354' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/5209766249235558354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/5209766249235558354'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/05/classic-software-mistakes.html' title='Classic software mistakes'/><author><name>firegrind</name><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-6944898.post-6339317433416204235</id><published>2009-04-24T15:33:00.002Z</published><updated>2009-04-24T15:41:32.687Z</updated><title type='text'>Kubuntu 9.04 screensaver action</title><content type='html'>After upgrading Kubuntu 8.10 to 9.04 not a minute too soon, I decided to turn on some screensavers by apt-get installing a load of stuff that apt-cache search screensaver found for me.&lt;br /&gt;&lt;br /&gt;None of it showed up in the desktop settings, so I decided to can the K screensaver system and replace it with the X one :&lt;br /&gt;&lt;br /&gt;$ sudo apt-get install xscreen*&lt;br /&gt;$ mv /usr/lib/kde4/libexec/krunner_lock /usr/lib/kde4/libexec/krunner_lock.old&lt;br /&gt;$ cat &gt; /usr/lib/kde4/libexec/krunner_lock&lt;br /&gt;#!/bin/sh&lt;br /&gt;xscreensaver-command -lock&lt;br /&gt;^D&lt;br /&gt;$ sudo chmod a+x /usr/lib/kde4/libexec/krunner_lock&lt;br /&gt;&lt;br /&gt;That's it.  If only I could rewire the Garage Pressure show over Radio 1 too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-6339317433416204235?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/6339317433416204235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=6339317433416204235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6339317433416204235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6339317433416204235'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/04/kubuntu-904-screensaver-action.html' title='Kubuntu 9.04 screensaver action'/><author><name>firegrind</name><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-6944898.post-6735852013371313957</id><published>2009-04-16T12:23:00.002Z</published><updated>2009-04-16T12:31:50.760Z</updated><title type='text'>Web usability with Javascript</title><content type='html'>&lt;span style="font-family:Helvetica, Arial, sans-serif;"&gt;&lt;small&gt;A few links from last night's GeekUp talk ('Accessible JavaScript'), given by Dirk Ginader at Old Broadcasting House.&lt;br /&gt;&lt;br /&gt;Web Accessibility Initiative's Accessible Rich Internet Application (WAI-ARIA) techniques&lt;br /&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://www.slideshare.net/ginader/accessible-javascript-with-and-without-wai-aria"&gt;http://www.slideshare.net/ginader/accessible-javascript-with-and-without-wai-aria&lt;/a&gt;&lt;br /&gt;&lt;/small&gt;&lt;/span&gt; &lt;small&gt;&lt;span style="font-family:Helvetica, Arial, sans-serif;"&gt;&lt;br /&gt;W3's proposals can be read at&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://cli.gs/wai-aria"&gt;http://cli.gs/wai-aria&lt;/a&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://cli.gs/accessible-tabs"&gt;http://cli.gs/accessible-tabs&lt;/a&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://cli.gs/accessibilitytips"&gt;http://cli.gs/accessibilitytips&lt;/a&gt;&lt;br /&gt;&lt;a class="moz-txt-link-freetext" href="http://cli.gs/wai-aria-video"&gt;http://cli.gs/wai-aria-video&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-6735852013371313957?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/6735852013371313957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=6735852013371313957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6735852013371313957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6735852013371313957'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/04/web-usability-with-javascript.html' title='Web usability with Javascript'/><author><name>firegrind</name><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-6944898.post-2027202266569702699</id><published>2009-03-06T09:26:00.001Z</published><updated>2009-03-06T09:27:53.509Z</updated><title type='text'>DefCon audio 2009</title><content type='html'>&lt;a href="https://www.defcon.org/podcast/defcon-16-audio.rss"&gt;RSS feed of the DefCon 2009 recordings&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-2027202266569702699?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/2027202266569702699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=2027202266569702699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2027202266569702699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2027202266569702699'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/03/defcon-audio-2009.html' title='DefCon audio 2009'/><author><name>firegrind</name><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-6944898.post-1604584254975220199</id><published>2009-03-05T17:34:00.003Z</published><updated>2009-03-05T17:36:57.148Z</updated><title type='text'>The desktop is dead</title><content type='html'>"&lt;span class="Apple-style-span" style="line-height: 19px; color: rgb(51, 51, 51);"&gt;If people believe that desktop computers are the homeland of Internet and advertising they will soon have to realize that the transition has already begun from one to the other.&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;- &lt;a href="http://blogs.forum.nokia.com/blog/gabor-toroks-forum-nokia-blog/2009/03/04/mobile-advertising-an-experience"&gt;Gabor Tabok&lt;/a&gt;, 2009&lt;br /&gt;&lt;br /&gt;Time to throw the keyboard away.  Finally.&lt;br /&gt;&lt;br /&gt;Nokia had better have a better solution than predictive text up their sleeves though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-1604584254975220199?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/1604584254975220199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=1604584254975220199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/1604584254975220199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/1604584254975220199'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/03/desktop-is-dead.html' title='The desktop is dead'/><author><name>firegrind</name><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-6944898.post-2338408082508700032</id><published>2009-02-26T14:02:00.002Z</published><updated>2009-02-26T14:17:22.369Z</updated><title type='text'>Look and Listen AV night in Leeds</title><content type='html'>&lt;a href="http://www.myspace.com/lookandlistenavnite"&gt;Look and Listen&lt;/a&gt; are hosting The AV Social in Woodhouse tomorrow with a live remix of Slumdog Millionaire by Addictive TV.   More goodness from Dan Tait, Oli Sorenson, a Wall-E rescore, giant screens and interactive installations.  £5's worth of win.&lt;br /&gt;&lt;br /&gt;The day after, &lt;a href="http://www.youtube.com/watch?v=e3kyNGVK-hI"&gt;Beardyman&lt;/a&gt; will be beating boxes at Wax:On and after that, &lt;a href="http://www.leedsdrumandbass.co.uk"&gt;Frequency FM&lt;/a&gt; DJs will be drumming, bassing and dubbing with Metalheadz and &lt;a href="http://www.flickr.com/photos/chikuma/2509880765/"&gt;High Pressure sound system&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is, coincidentally, the first weekend that I absolutely cannot go out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-2338408082508700032?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/2338408082508700032/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=2338408082508700032' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2338408082508700032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2338408082508700032'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/02/look-and-listen-av-night-in-leeds.html' title='Look and Listen AV night in Leeds'/><author><name>firegrind</name><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-6944898.post-5385096388920400219</id><published>2009-02-25T13:45:00.004Z</published><updated>2009-02-25T13:54:01.869Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='arduino'/><category scheme='http://www.blogger.com/atom/ns#' term='makers'/><category scheme='http://www.blogger.com/atom/ns#' term='hackers'/><title type='text'>Makers and Hackers</title><content type='html'>Team up with random people on the day and compete to create household items of the future.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.tinker.it/"&gt;Tinker.it&lt;/a&gt; and &lt;a href="http://www.folksy.com/"&gt;Folksy&lt;/a&gt; are ganging up at  &lt;a href="http://www.access-space.org"&gt;Access Space&lt;/a&gt;, true trailblazers of Northern tech, to host &lt;a href="http://www.makersandhackers.org/"&gt;Makers and Hackers&lt;/a&gt; this Saturday, 28th Feb 2009, 10am til 5pm. &lt;br /&gt;&lt;br /&gt;There's a simultaneous event down in London, if that's better for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-5385096388920400219?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/5385096388920400219/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=5385096388920400219' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/5385096388920400219'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/5385096388920400219'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/02/makers-and-hackers.html' title='Makers and Hackers'/><author><name>firegrind</name><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-6944898.post-1814810199716688476</id><published>2009-02-20T09:39:00.002Z</published><updated>2009-02-20T09:43:29.417Z</updated><title type='text'>The web design sketchbook</title><content type='html'>Traditionally documented on the backs of envelopes, bus tickets, fag packets and beer mats, &lt;a href="http://www.inventis.be/blog/het-webdesign-schetsboek"&gt;the web page now has a dedicated sketchpad&lt;/a&gt; that you can download and print out.&lt;br /&gt;&lt;br /&gt;I love ideas that make me ask "Why has no-one done that before ?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-1814810199716688476?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/1814810199716688476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=1814810199716688476' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/1814810199716688476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/1814810199716688476'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/02/web-design-sketchbook.html' title='The web design sketchbook'/><author><name>firegrind</name><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-6944898.post-7391429755911024102</id><published>2009-02-19T17:42:00.005Z</published><updated>2009-02-19T17:51:49.374Z</updated><title type='text'>So what happened, then ?</title><content type='html'>The iPhone went back before I dropped it in a puddle.  For now I'm happier with my battered old phone (no touchscreen, multitasking, free installation of my own applications and I don't need a Mac along for the ride)&lt;br /&gt;&lt;br /&gt;I don't want to see MSSQL ever again&lt;br /&gt;&lt;br /&gt;Cheered up after adding nightly builds repositories for KDE and Amarok to my laptop - I'm ready to Amarok :P - and recieving an Ardurino board from &lt;a href="http://www.tinker.it"&gt;Tinker.it&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At &lt;a href="http://www.geekup.org"&gt;GeekUp&lt;/a&gt; last night I discovered that &lt;a href="http://www.leeds2600.org.uk"&gt;Leeds is about to become a 2600 meeting location&lt;/a&gt;. 'Bout time too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-7391429755911024102?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/7391429755911024102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=7391429755911024102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/7391429755911024102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/7391429755911024102'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/02/so-what-happened-then.html' title='So what happened, then ?'/><author><name>firegrind</name><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-6944898.post-6216738957892679136</id><published>2009-01-20T11:01:00.005Z</published><updated>2009-01-20T11:10:57.928Z</updated><title type='text'>Adventures in proprietary computing</title><content type='html'>For various reasons, I've been taking a look into the world of Microsoft and Apple recently, which makes a change for me.  I'm usually up to my ears in free and open source software.  Long story short, I'll be apt-cache updating more frequently in the future.&lt;br /&gt;&lt;br /&gt;I've been gaming on Windows, a PlayStation3 and an Ubuntu laptop.&lt;br /&gt;&lt;br /&gt;I'm enrolling in the Apple Developer Program and have been carrying an iPhone around as well as my trusty N95.&lt;br /&gt;&lt;br /&gt;I'm migrating data from a Microsoft SQL Server after depending solely on MySQL, SQLite and CSV files for years.&lt;br /&gt;&lt;br /&gt;So that's three more posts this year, at least :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-6216738957892679136?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/6216738957892679136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=6216738957892679136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6216738957892679136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6216738957892679136'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2009/01/adventures-in-proprietary-computing.html' title='Adventures in proprietary computing'/><author><name>firegrind</name><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-6944898.post-251733870286172995</id><published>2008-11-22T15:05:00.003Z</published><updated>2008-11-22T15:25:06.112Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpnw08'/><category scheme='http://www.blogger.com/atom/ns#' term='phpnw'/><title type='text'>exploiting php with php at phpnw08</title><content type='html'>it's known, quick, re-usable&lt;br /&gt;&lt;br /&gt;sql injection, for example, is fairly straighforward in php.  initiating with post is a bit tricker to test that get, so use a form with the action set to the target.  more cleverly, use php http client functions (stream_context_create, curl or similar) to generate attacks.&lt;br /&gt;&lt;br /&gt;- addslashes() can help escape quotes but needs to be implemented properly.  you'll need to handle multibyte characters too. and attacks that end /*&lt;br /&gt;&lt;br /&gt;- beware versions of php which lie about magic_quotes&lt;br /&gt;&lt;br /&gt;- dos via failure to release resources, writing user data to disk, HEAD method calls to the server, locking accounts&lt;br /&gt;&lt;br /&gt;- smtp injection to make spam, adding extra smtp headers via subject lines requires sanitisation, validation&lt;br /&gt;&lt;br /&gt;- direct eval() injection&lt;br /&gt;&lt;br /&gt;... low battery. back later ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-251733870286172995?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/251733870286172995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=251733870286172995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/251733870286172995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/251733870286172995'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/11/exploiting-php-with-php-at-phpnw08.html' title='exploiting php with php at phpnw08'/><author><name>firegrind</name><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-6944898.post-6703985607334403859</id><published>2008-11-22T12:38:00.003Z</published><updated>2008-11-22T12:52:26.560Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='phpnw08'/><title type='text'>PHP 5.3 at phpNW08</title><content type='html'>In php 5.3 we'll see PHAR php archives, like Java's JAR for distributing an app as a single file.&lt;br /&gt;&lt;br /&gt;From the command line, phar.phar is used to build php archives.  Once Apache/Lighty knows that php is used to handle phar files, webPhar is used to obtain a 1:1 mapping of URLs to the files in the php archive.&lt;br /&gt;&lt;br /&gt;In addition, garbage collection has improved, speeds are faster (down to 20% of php4 runtimes) and  the standard PHP library has been extended beyond iterators&lt;br /&gt;&lt;br /&gt;Upgrade documentation is growing on the php wiki scratchpad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-6703985607334403859?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/6703985607334403859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=6703985607334403859' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6703985607334403859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6703985607334403859'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/11/php-53-at-phpnw08.html' title='PHP 5.3 at phpNW08'/><author><name>firegrind</name><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-6944898.post-6887736692016682976</id><published>2008-11-12T13:46:00.002Z</published><updated>2008-11-12T14:05:46.541Z</updated><title type='text'>The end of spam ?</title><content type='html'>Mobile advertising can be unlocked by &lt;a href="http://www.andrewgrill.com/blog/index.php/2008/10/think-big-act-small-scale-fast-advice-from-pg-on-mobileadvertising"&gt;thinking big, acting small, scaling fast&lt;/a&gt;, apparently.&lt;br /&gt;&lt;br /&gt;Will we need to adopt the mobile equivalent of AdBlockPlus, or will advertisers be welcomed with open arms if they &lt;a href="http://www.andrewgrill.com/blog/index.php/2008/10/mobile-advertising-is-broken-who-will-fix-it/"&gt;after  ask people for permission, respect their privacy and adhere to their preferences&lt;/a&gt; ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-6887736692016682976?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/6887736692016682976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=6887736692016682976' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6887736692016682976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6887736692016682976'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/11/end-of-spam.html' title='The end of spam ?'/><author><name>firegrind</name><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-6944898.post-6502884333427572447</id><published>2008-11-08T14:20:00.000Z</published><updated>2008-11-08T14:21:20.464Z</updated><title type='text'>What've you been up to ?</title><content type='html'>&lt;code&gt;history 1000 | awk '{a[$2]++}END{for(i in a){print a[i] " " i}}' | sort -rn | head&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-6502884333427572447?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/6502884333427572447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=6502884333427572447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6502884333427572447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/6502884333427572447'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/11/whatve-you-been-up-to.html' title='What&apos;ve you been up to ?'/><author><name>firegrind</name><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-6944898.post-1754591382267606394</id><published>2008-11-04T15:52:00.003Z</published><updated>2008-11-04T16:10:05.652Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Leeds'/><category scheme='http://www.blogger.com/atom/ns#' term='best'/><category scheme='http://www.blogger.com/atom/ns#' term='award'/><category scheme='http://www.blogger.com/atom/ns#' term='An Agency Called England'/><title type='text'>You can't please all the people all the time</title><content type='html'>On Friday evening, &lt;a href="http://www.englandagency.com"&gt;An Agency Called England&lt;/a&gt; was presented Best Mobile Campaign for the LeedsCast bluetooth system at &lt;a href="http://www.dadiawards.com"&gt;the DADI Awards&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Today the BBC broadcast &lt;a href="http://qurl.co.uk/myxh"&gt;a lunchtime news story&lt;/a&gt; in which &lt;a href="http://www.engageyourbrain.info"&gt;Medway Council's road safety campaign&lt;/a&gt; was deemed 'crass, offensive and tactless'.  The Telegraph featured the campaign &lt;a href="http://qurl.co.uk/6xsx"&gt;yesterday&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-1754591382267606394?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/1754591382267606394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=1754591382267606394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/1754591382267606394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/1754591382267606394'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/11/you-cant-please-all-people-all-time.html' title='You can&apos;t please all the people all the time'/><author><name>firegrind</name><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-6944898.post-4715934666418433932</id><published>2008-10-31T10:20:00.004Z</published><updated>2008-10-31T10:30:49.985Z</updated><title type='text'>Megasploit</title><content type='html'>Ken Thompson's &lt;a href="http://catb.org/~esr/jargon/html/B/back-door.html"&gt;C compiler hack&lt;/a&gt; presented to the 1983 Turing Award lecture to the ACM, is a pile of awesome  wrapped in 100% pure win and soaked overnight in a bowl of with triple strength cunning.&lt;br /&gt;&lt;br /&gt;Course, kids these days are all on &lt;a href="http://www.metasploit.com"&gt;Metasploit&lt;/a&gt;.  I remember when this was all fields ...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-4715934666418433932?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/4715934666418433932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=4715934666418433932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/4715934666418433932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/4715934666418433932'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/10/megasploit.html' title='Megasploit'/><author><name>firegrind</name><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-6944898.post-7538219330310205469</id><published>2008-10-28T11:38:00.003Z</published><updated>2008-10-28T11:57:20.053Z</updated><title type='text'>Moves towards Agile; Making noise</title><content type='html'>After &lt;a href="http://www.mckennaconsultants.com"&gt;Nick McKenna&lt;/a&gt;'s talk at the last &lt;a href="http://xpclub.erudine.com"&gt;Yorkshire Extreme Programming Club&lt;/a&gt;, I've been inspired to take a look at the processes that surround us at &lt;a href="http://www.englandagency.com"&gt;An Agency Called England&lt;/a&gt;.  Thanks, incidentally, for the JetBrains software.  After putting off looking at Ruby for a while, this is encouragement to get in and have a look around.&lt;br /&gt;&lt;br /&gt;I finally got time to get my Icecast2 + Ices2 server streaming audio to my phone, which got me thinking about the crate of CDs that have been gathering dust since I finally admitted that my CD decks were broken.  Starting to rip them with Grip got me considering file formats.  It seems to make sense to use something lossless for archiving which can be converted into whichever format is suitable for contemporary use.  MP3 no longer hits either of these for me after looking at FLAC for archiving and Ogg for streaming.  I wondered how long that fad would last.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-7538219330310205469?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/7538219330310205469/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=7538219330310205469' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/7538219330310205469'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/7538219330310205469'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/10/moves-towards-agile-making-noise.html' title='Moves towards Agile; Making noise'/><author><name>firegrind</name><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-6944898.post-122898137566867168</id><published>2008-08-22T10:06:00.003Z</published><updated>2008-09-02T19:12:08.442Z</updated><title type='text'>PHP NorthWest</title><content type='html'>After a brief heads up about the upcoming &lt;a href="http://conference.phpnw.org.uk/phpnw08"&gt;PHP NW conference&lt;/a&gt; (Saturday, 22nd November) we got a whistlestop tour of concurrent versioning systems. And a pint of Boddingtons.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-122898137566867168?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/122898137566867168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=122898137566867168' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/122898137566867168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/122898137566867168'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/08/php-northwest.html' title='PHP NorthWest'/><author><name>firegrind</name><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-6944898.post-3832852587019459394</id><published>2008-08-22T08:51:00.004Z</published><updated>2008-08-22T09:23:39.918Z</updated><title type='text'>SQL attacks</title><content type='html'>&lt;a href="http://www.suspekt.org/2008/08/18/mysql-and-sql-column-truncation-vulnerabilities/"&gt;Suspekt&lt;/a&gt; taught me about column truncation vulnerability.  &lt;br /&gt;&lt;br /&gt;This depends on a combination of    relaxed comparison methods in the database and incomplete user data validation.&lt;br /&gt;&lt;br /&gt;Owing to relaxed comparison within the database, a username 'admin   ' would be equated with username 'admin' in the database.  &lt;br /&gt;&lt;br /&gt;If the username field has a maximum length of 10 characters and user data containing 11 characters is not treated as invalid, there could be a problem.&lt;br /&gt;&lt;br /&gt;The username 'admin     x' will not currently exist when a SELECT * WHERE username = 'admin     x' is checked.  The database will then accept the slightly long username and dutifully truncate it from 'admin     x' to 'admin     '.  &lt;br /&gt;&lt;br /&gt;You see where this is going ?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-3832852587019459394?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/3832852587019459394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=3832852587019459394' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3832852587019459394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3832852587019459394'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/08/sql-attacks.html' title='SQL attacks'/><author><name>firegrind</name><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-6944898.post-4162241198091063653</id><published>2008-08-20T13:02:00.002Z</published><updated>2008-08-20T13:18:19.705Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='krumo'/><title type='text'>Krumo</title><content type='html'>&lt;span style="font-family:arial;"&gt;After spending a while gazing into the internal machinations of my code with var_dump and the  pre tag, &lt;span style="font-family:arial;"&gt;I handrolled my own dump($foo) function that happily gave me a diagnostic insight into arrays and objects, coloured things in nicely and so on.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Someone else has thought the same thing, but built open source solution &lt;a href="http://krumo.sourceforge.net"&gt;Krumo&lt;/a&gt; which does the same sort of thing but more so.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-4162241198091063653?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/4162241198091063653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=4162241198091063653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/4162241198091063653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/4162241198091063653'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/08/krumo.html' title='Krumo'/><author><name>firegrind</name><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-6944898.post-3333937614842672596</id><published>2008-08-16T10:38:00.020Z</published><updated>2008-09-04T14:41:36.575Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcampleeds'/><category scheme='http://www.blogger.com/atom/ns#' term='barcampleeds08'/><title type='text'>BarCamp Leeds</title><content type='html'>A full auditorium of people gathered at Old Broadcasting House in Leeds for a day's information sharing at the second &lt;a href="http://www.bbarcampleeds.com/"&gt;BarCamp Leeds&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.thehodge.co.uk/"&gt;Dom&lt;/a&gt; started the day off with 'SEO = evil ?' and managed to defend SEO practitioners (as opposed to snake oil engineers) in quite a skeptical discussion.  Rather than gaming the inevitably gameable system, he advises &lt;a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&amp;answer=35291"&gt;sticking to the current guidelines&lt;/a&gt; that the search engines provide.  Good advice for getting the 90% of SEO that site builders can manage for themselves, but no word about what the magic 10% that the SEO specialists do is though ;)&lt;br /&gt;&lt;br /&gt;The next session was a demo of &lt;a href="http://www.ableton.com/"&gt;Ableton Live&lt;/a&gt;, bringing a bit of sonic creativity to the camp.  A brave tour of a track in production took us around the software alongside some discussion of the advantages that this particular package offers to both the relative newbie and the touring performer.  Given Ableton's accessibility, it would be nice to see some dedicated workshops in the future to encourage more music production.  &lt;a href="http://www.clothcatleeds.org.uk/"&gt;Cloth Cat&lt;/a&gt;  provide short courses in music production software, including Ableton, for anyone who fancies a go.&lt;br /&gt;&lt;br /&gt;Dean Vipond, a designer from Orange, presented a consideration of design vs usability.  Usability can be seen by some designers as an optional extra, or even something to be avoided altogether.  As standards become less avoidable, designers are required to pay attention to the balance between marketers wanting to achieve maximum exposure for their product, the technical constraints and what the end user needs.  Employing user centred design and user testing can make achieving this balance more manageable.&lt;br /&gt;&lt;br /&gt;The HM Revenue &amp;amp; Customs site was discussed as an example of a site that really needs to be user centred - people aren't keen to visit in the first place so the experience has got to feel safe and guided.  Other experiences can be less usable - Nintendo's Metroid Prime site encourages the user to explore a very freeform and alien experience which reflects the mechanics of the game that it promotes.&lt;br /&gt;&lt;br /&gt;Ultimately, designers and usability practitioners can inform each other and co-operatively build better experiences for users.&lt;br /&gt;&lt;br /&gt;After lunch, professional pirate &lt;a href="http://www.tomscott.com/"&gt;Tom Scott&lt;/a&gt; presented lessons learned from making things (especially video) popular online. Even taking Sturgeon's Law  into account ("90% of everything is crap") there are a few things that can help before, during and after the creative process.&lt;br /&gt;&lt;br /&gt;A good guiding principle is the Effort:Awesome ratio as a guideline.   Unless the Awesome &gt; the Effort, spend your time coming up with a new idea.  There are a few things you can do to reduce effort : use a tripod, shoot against a static background, get room tone (background audio noise) to paste over audio glitches, film more than you need and remember to get some cut-aways.&lt;br /&gt;&lt;br /&gt;Editing three times enables you to make it look good, then better, then get rid of all the extra non-essential stuff that gives viewers time to click their way elsewhere.&lt;br /&gt;&lt;br /&gt;Viral propagation depends on you sending your final piece to your friends.  It matters not who - what matters is who they send it to and there is nothing you can do to influence that.&lt;br /&gt;&lt;br /&gt;Simple ideas win.  Just by registering &lt;a href="http://www.yarr.org.uk/"&gt;yarr.org.uk&lt;/a&gt;, Tom ended up being the UK official point of contact for International Talk Like A Pirate Day, interviewed by Newsround on the deck of a tall ship at Southampton boat show in full pirate regalia.  You can spend a million on an idea and on the web it stands about the same chance of success as &lt;a href="http://www.preparingforemergencies.co.uk/"&gt;the one pursued in a spare hour for the giggle&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;People from the GeekUp community have been busy recently and each got a 20:20 to give them some air :&lt;br /&gt;&lt;br /&gt;Paul Robinson's &lt;a href="http://kagtum.com/"&gt;Kagtum&lt;/a&gt; web project is a 'Pandora for news' that addresses the decline in meaningful news coverage by providing an avenue for getting news that you are interested in and that's local to you from around 400 newspapers, 100 blogs &amp;amp; 100 other sources.  Stories are geo-coded with the help of &lt;a href="http://www.opencalais.com/"&gt;OpenCalais&lt;/a&gt;, your habits and preferences are filtered with &lt;a href="http://crm114.sourceforge.net/"&gt;CRM114&lt;/a&gt;.  Events will become part of the information stream.  Northerners, &lt;a href="http://kagtum.com/"&gt;sign up&lt;/a&gt; to be an alpha user.&lt;br /&gt;&lt;br /&gt;Robert Burrell Donkin was creating an open source release candidate, &lt;a href="http://james.apache.org/jsieve/index.html"&gt;JSieve&lt;/a&gt;, a domain specific language for handling email.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.deaddeadgood.com/"&gt;Paul Horsfall&lt;/a&gt; has hacked together an Etch-a-sketch emulator in Ruby (with Ruby Shoooes) with an &lt;a href="http://www.arduino.cc/"&gt;Arduino&lt;/a&gt; based hardware controller.&lt;br /&gt;&lt;br /&gt;John Leach, ukelele player extraordinare, is taking articles from Wikipedia and &lt;a href="http://www.youtube.com/watch?v=K3uLhXGJpCw"&gt;singing them&lt;/a&gt;.   The songs are derivative works of the GNU FreeDocument licensed articles.  Performance of them raises some subtle questions about the nuances of copyright law :) Sing your own into &lt;a href="http://www.ukepedia.com/"&gt;ukepedia.com&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Tom Smith has a crawler that finds ukelele songs for analysis to locate those which are easy to play.  Adding info in from last.fm, blog and forum rankings allows value to be added and demostrates that a hobby site can be reinterpreted as a commercially valuable engagement engine.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://gsoc.barrycarlyon.servegame.org/"&gt;Barry Carlyon&lt;/a&gt; is contributing to a bug tracker for the php scripting language as part of the Google Summer Of Code.&lt;br /&gt;&lt;br /&gt;A couple of these projects are using &lt;a href="http://www.ohloh.net/"&gt;Ohloh&lt;/a&gt; to track their project's progress.&lt;br /&gt;&lt;br /&gt;After the afternoon break, we've got &lt;a href="http://www.pacemaker.net/cubicgarden"&gt;Lee&lt;/a&gt; ringing the death knoll for the iPod on the grounds that all the other simple music players have died and that we're all DJs even if we're not yet aware of it.&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.pacemaker.net/"&gt;Pacemaker&lt;/a&gt; from Swedish ex-popstars &lt;a href="http://www.tonium.com/"&gt;Tonium&lt;/a&gt; &lt;a href="http://www.youtube.com/watch?v=OEP8A9GLk6M"&gt;allows us&lt;/a&gt; to revisit the mixtape era by selecting tunes, create sets and share them.   It's got a crossfader, pitchshifts to +-100%, offers filters, effects, looping &amp;amp; EQ and it fits 120Gb of tunes in loads of formats into your pocket.  It can sort your tracks in various ways and beat match for you.  Line-out, headphone-out and USB get signals and power in and out.&lt;br /&gt;&lt;br /&gt;It's accessible enough for someone who's never seen one before to use to mix with but at £429 it's not cheap and the floor reckon it needs wireless and bluetooth connectivity adding into the mix.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/groups/barcampleeds"&gt;Flickr group&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-3333937614842672596?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/3333937614842672596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=3333937614842672596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3333937614842672596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3333937614842672596'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/08/barcamp-leeds.html' title='BarCamp Leeds'/><author><name>firegrind</name><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-6944898.post-2173306940744917567</id><published>2008-08-15T10:38:00.006Z</published><updated>2008-08-15T12:11:42.575Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcampleeds'/><category scheme='http://www.blogger.com/atom/ns#' term='unity day'/><category scheme='http://www.blogger.com/atom/ns#' term='openstreetmap'/><title type='text'>It's all go in Leeds</title><content type='html'>One of the nice things about the Northern summer is the hive of activity that the place becomes, in that little slice of time after the weather gets bearable, before autumn crash lands in a pile of sodden leaves.&lt;br /&gt;&lt;br /&gt;I'm looking forward to trashing a few N95 batteries this weekend and spending very little time at home.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.barcampleeds.com/"&gt;Barcamp 2008&lt;/a&gt; promises to be marvellous and is simultaneous with Hyde Park Unity Day (I'd link but you probably don't need a full-fat MySpace splurge at the moment). An &lt;a href="http://openstreetmapleeds.eventwax.com/2nd-leeds-openstreetmap-mapping-part"&gt;Open Street Map mapping party&lt;/a&gt; will fill in some of the blanks around Leeds.&lt;br /&gt;&lt;br /&gt;There's also been an influx of people back from Australia for the summer festy circuit landing in Leeds, bless 'em, so I imagine that Sunday dinner's going to be loud, epic and still going at around midnight.&lt;br /&gt;&lt;br /&gt;Should be good Flickring and Twittering exercise at least :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-2173306940744917567?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/2173306940744917567/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=2173306940744917567' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2173306940744917567'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2173306940744917567'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/08/its-all-go-in-leeds.html' title='It&apos;s all go in Leeds'/><author><name>firegrind</name><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-6944898.post-7468448876731174140</id><published>2008-08-11T08:46:00.003Z</published><updated>2008-08-11T08:59:34.489Z</updated><title type='text'>Leeds first web festival</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://imran.typepad.com/photos/uncategorized/2008/08/04/lsone_2.png"&gt;&lt;img src="http://imran.typepad.com/photos/uncategorized/2008/08/04/lsone_2.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;North by North West ?&lt;br /&gt;&lt;br /&gt;Is this really Leeds first web festival ?&lt;br /&gt;&lt;br /&gt;I'm tempted to think that we've hit a critical mass of technology oriented group think, and there are sufficient events in close temporal proximity for an enterprising festival label to be attached.&lt;br /&gt;&lt;br /&gt;Nonetheless, there _are_ sufficient events happening in Leeds and it's worth pushing word of this progress out into the wider community. If it takes a festival label to do that, so be it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-7468448876731174140?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/7468448876731174140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=7468448876731174140' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/7468448876731174140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/7468448876731174140'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/08/leeds-first-web-festival.html' title='Leeds first web festival'/><author><name>firegrind</name><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-6944898.post-8428422467010453660</id><published>2008-06-09T08:01:00.003Z</published><updated>2008-06-10T12:49:10.775Z</updated><title type='text'>Ten years from now</title><content type='html'>"Here are the premises I have. Number one, there will be no media consumption left in 10 years that is not delivered over an IP network. There will be no newspapers, no magazines that are delivered in paper form. Everything gets delivered in an electronic form." -- Steve Ballmer in a  &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2008/06/04/AR2008060403770.html?sid=ST2008060403830"&gt;Washington Post interview&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;We've seen premises like this before and they seem to be a combination of wishful thinking and fail.  E-tailers expect spamming people who "haven't opted out" to generate word-of-mouth sales.  We'll read screens instead of books.  Video killed the radio star.  Grey is the new black.&lt;br /&gt;&lt;br /&gt;Usually, we're hearing it from some entrepreneur determined for their latest venture to succeed but in this case we're hearing it from Miscrosoft's new helmsman.  &lt;br /&gt;&lt;br /&gt;The belief that The New will utterly replace The Old is wrong on at least two counts :&lt;br /&gt;&lt;br /&gt;First, The Old came to be that way because it actually offered something to someone and presumably still does.  The New may not be required.  A dead-trees book is my preference for sitting by a river with, no matter what delightful features Adobe have build into Reader.&lt;br /&gt;&lt;br /&gt;Also, there are inevitably tools and techniques around the corner that we cannot envisage at the moment.  Email was going to be a global communication panacea until SMS came along.  The New that we end up confronting or adopting rarely turns out to be the one that we thought we glimpsed up ahead.&lt;br /&gt;&lt;br /&gt;While Microsoft deliver their IP future to whoever is still using their product ten years from now, I'll probably still be visiting the library, picking up fanzines and flyers from record shops, browsing posters and papers with my coffee, throwing coins to buskers and generally being thankful that art and communication extend beyond the screen into The Big Room.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-8428422467010453660?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/8428422467010453660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=8428422467010453660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/8428422467010453660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/8428422467010453660'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/06/here-are-premises-i-have.html' title='Ten years from now'/><author><name>firegrind</name><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-6944898.post-3517456557266680523</id><published>2008-04-18T12:18:00.006Z</published><updated>2008-04-18T12:48:44.452Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='aql'/><title type='text'>We're in the The Register</title><content type='html'>And for all the right reasons.  We didn't lose any unencrypted CDs of customer data or anything.&lt;br /&gt;&lt;br /&gt;The Register have &lt;a href="http://www.theregister.co.uk/2008/04/18/aql_textable_landlines"&gt;noticed&lt;/a&gt; what we've been up to with landline numbers.&lt;br /&gt;&lt;br /&gt;We took a demo to the Unified Communications tradeshow at Olympia last week which allowed people to put a message on our big monitor by sending an SMS to us.  &lt;br /&gt;&lt;br /&gt;It doesn't seem like an innovation until you realise that you can can get your message onscreen by sending it to any one of ten thousand landline numbers.&lt;br /&gt;&lt;br /&gt;No doubt we'll have &lt;a href="http://aql.com/telecoms"&gt;something online&lt;/a&gt; about it soon.&lt;br /&gt;&lt;br /&gt;If you're going to the &lt;a href="http://www.internetworld.co.uk"&gt;Internet World&lt;/a&gt; show between the 29th April and 1st May you'll be able to try it out for yourself.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-3517456557266680523?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/3517456557266680523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=3517456557266680523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3517456557266680523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/3517456557266680523'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/04/were-in-the-register.html' title='We&apos;re in the The Register'/><author><name>firegrind</name><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-6944898.post-2638297050231323062</id><published>2008-04-11T08:26:00.003Z</published><updated>2008-04-11T09:36:27.458Z</updated><title type='text'>It's not agile, but it did help</title><content type='html'>I was asked to build 'a quick page of links to articles' and suspected that what I was being asked for wasn't really what was required.  The Agile folk at the last GeekUp meeting convinced me that their iterative way of doing things was worth considering so I decided to give a slightly different approach a try.&lt;br /&gt;&lt;br /&gt;The end product was surprisingly different to what was first requested.  It also worked far better than we had hoped it might.&lt;br /&gt;&lt;br /&gt;The original request was centred around the interface and went something along the lines of "I want a page that links to these articles, the section headings need to go here and here and remember to put a logo here," accompanied by the traditional scribbling on the back of a fax.&lt;br /&gt;&lt;br /&gt;I grabbed a skeletal php/Smarty system and started considering the unspecified back end.  The choice seemed to be between a static system (a pile of HTML files) and a dynamic system (one big Smarty template containing all the articles with a php script to switch on the appropriate bit).&lt;br /&gt;&lt;br /&gt;The articles were all tiny, just a couple of paragraphs, and not numerous (about a dozen or so to begin with), so a database looked unhelpful. It seems sensible to store HTML in HTML files.  I built one big Smarty template containing all the articles and went back to the customer.&lt;br /&gt;&lt;br /&gt;At this point we have a system which completely fulfils their requirements.  In the process of testing it they learnt something about what they needed rather than wanted, and realised that someone was going to have to maintain this thing - and that was going to be them.  Their focus moved immediately from the end user interface to the maintenance back end.&lt;br /&gt;&lt;br /&gt;Our solution stored each article in it's own file.  Conventionally, we started each file with a H2 tag containing the article title which was parsed to use as link text when dynamically creating the index page.&lt;br /&gt;&lt;br /&gt;- separated content from presentation&lt;br /&gt;- separated presentation from processing&lt;br /&gt;- zero training for maintainers&lt;br /&gt;- zero training for users&lt;br /&gt;- the development cycle happened rapidly (&lt;20 hours to delivery)&lt;br /&gt;- we solved problems that we didn't even know we had&lt;br /&gt;&lt;br /&gt;A nice mod would be giving the maintainer something like the TinyMCE HTML editor to use to edit the articles and a little control panel to add and delete them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-2638297050231323062?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/2638297050231323062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=2638297050231323062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2638297050231323062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/2638297050231323062'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/04/very-dynamic-article-management-system.html' title='It&apos;s not agile, but it did help'/><author><name>firegrind</name><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-6944898.post-4382061423255244363</id><published>2008-03-19T15:37:00.002Z</published><updated>2008-03-19T15:44:02.317Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='firegrind'/><category scheme='http://www.blogger.com/atom/ns#' term='links'/><title type='text'>This blog should be called Lazarus</title><content type='html'>I started it in 2006, and this is my fourth post.&lt;br /&gt;&lt;br /&gt;Mind you, I have been posting plenty to &lt;a href="http://firegrind.podzone.org/links"&gt;my links page&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6944898-4382061423255244363?l=firegrind.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://firegrind.blogspot.com/feeds/4382061423255244363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=6944898&amp;postID=4382061423255244363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/4382061423255244363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6944898/posts/default/4382061423255244363'/><link rel='alternate' type='text/html' href='http://firegrind.blogspot.com/2008/03/this-blog-should-be-called-lazarus.html' title='This blog should be called Lazarus'/><author><name>firegrind</name><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>
