<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">
		<channel>
		    <title>Associative Trails</title>
		    <link>http://www.associativetrails.com/</link>
		    <description>An internet consultancy that specialises in data-driven websites, Content Management Systems (CMS) and effective web communications. Experts in Coldfusion, XHTML, CSS, database design and web standards. Based in London, UK.</description>
		    <dc:language>en-uk</dc:language>
		    <dc:creator>Matt Perdeaux</dc:creator>
		    <dc:rights>Copyright 2009</dc:rights>
		    <dc:date>2009-07-05T15:00:09-00:00</dc:date>
		    <sy:updatePeriod>daily</sy:updatePeriod>
		    <sy:updateFrequency>1</sy:updateFrequency>
		    <sy:updateBase>2009-03-19T06:09:00-00:00</sy:updateBase><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/AssociativeTrails" type="application/rss+xml" /><item> <title>Smile - you're on Google Maps</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/eUn4LnP9mps/Smile--youre-on-Google-Maps</link> <guid isPermaLink="false">1E75F6E4-5056-897F-ED2091D15596E931@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>Google have <a href="http://londonist.com/2009/03/google_street_view_now_live_in_uk.php">just launched Street view in the UK</a>, which gives pretty informative street-level photographs as part of their mapping service. Funny little cars with weird rigs attached to them were scooting round London all last summer, capturing the photographs.</p><p>Of course, if you see one of those cars, chances are you may appear in the photographs they take. My wife remembered a particular location where we saw one last summer, and we've tracked ourselves down, strolling back home from a trip to Broadway Market in Hackney:</p><p><iframe width="425" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/sv?cbp=12,34.79021625156689,,2,4.50684931506849&amp;cbll=51.532962,-0.065321&amp;panoid=&amp;v=1&amp;hl=en&amp;gl="></iframe><br /><small><a href="http://maps.google.com/?ie=UTF8&amp;layer=c&amp;cbll=51.532962,-0.065321&amp;panoid=ck471tsq_KJxWRKvRlSqzg&amp;cbp=12,34.79021625156689,,2,4.50684931506849&amp;ll=51.533029,-0.065274&amp;spn=0,359.984336&amp;z=16&amp;source=embed" style="color:#0000FF;text-align:left">View Larger Map</a></small></p><p>Which actually feels a bit strange. We've been Google-papped. Lucky it was my wife I was out with that day ;)</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/eUn4LnP9mps" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>London</dc:subject> <dc:date>2009-03-19T06:09:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/Smile--youre-on-Google-Maps</feedburner:origLink></item> <item> <title>Django unit testing gotcha: test case methods run in alphabetical order</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/QLIQ9qfbFoI/Django-unit-testing-gotcha-test-case-methods-run-in-alphabetical-order</link> <guid isPermaLink="false">ED9D6DCE-5056-897F-ED8DA35784E0E2FF@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>After a good few hours of increasing frustration, I managed to work out why the Django unit tests I was working on were doing funny things. As it turns out, the individual test case methods are, by default, sorted alphabetically by the TestLoader.</p><p>This is worth knowing if you're testing things that rely on the tests being run in order, such as creating, editing and deleting of records in the database.</p><p>For instance:<br /><code><br />import unittest<br />from myapp.models import MyModel<br /><br />class MyModelTestCase(unittest.TestCase):<br />    def test_create_item(self):<br />        obj = MyModel.objects.create(title="hello")<br />        .... run tests ....<br /><br />    def test_edit_item(self):<br />        obj = MyModel.objects.get(id=1)<br />        obj.title = "goodbye"<br />        obj.save()<br />        .... run tests ....<br /><br />    def test_delete_item(self):<br />        obj = MyModel.objects.get(id=1)<br />        obj.delete()<br />        .... run tests ....<br /></code></p><p>In the above example, when the tests are sorted alphabetically, "test_create_item" is run first, but "test_delete_item" will be run before "test_edit_item", leading to a few unexpected test failures for no apparent reason.</p><p>It looks like this is all to do with the "sortTestMethodsUsing" attribute of the <a href="http://docs.python.org/library/unittest.html#unittest.TestLoader">TestLoader class</a>, and I daresay there is a way of overriding it in Django, but for now, I'm just happy knowing how my tests are being sorted so I can name them sensibly.</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/QLIQ9qfbFoI" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Backend, Quality &amp; standards</dc:subject> <dc:date>2009-03-09T18:39:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/Django-unit-testing-gotcha-test-case-methods-run-in-alphabetical-order</feedburner:origLink></item> <item> <title>Having fun with widows</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/c23zNuMxDYA/Fun-with-widows</link> <guid isPermaLink="false">6F68C5D0-5056-897F-ED46AF7240BB3065@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>It's amazing the little details your mind sometimes fixates upon when you're deeply into an intense coding phase. I'm currently building a news aggregator interface, and just can't make a seemingly trivial decision regarding headline typography.</p><p>The issue is all about <a href="http://en.wikipedia.org/wiki/Widows_and_orphans">widows</a> - single words that appear on their own when text wraps onto multiple lines. Design-wise, these are bad. So I've been using the rather nifty <a href="http://code.google.com/p/typogrify/">typogrify extension to Django</a> that makes it very simple to replace the final space in a block of dynamic text with a "&amp;nbsp;" so you don't need to worry about the final word wrapping onto its own line. </p><p>Fantastic, very straightforward, on to next thing. But, I simply cannot decide whether I should be doing this for headlines. The homepage of my app has 3 columns of imported feed content, with the most recent headline in quite large type. Depending on the headline content, the widow filter sometimes makes an obvious change to how the headline is rendered. The problem is, the relatively narrow column width means that it can often make the penultimate headline row seem a bit small.</p><p>For instance, the following before/after shows a pretty standard headline both with and without widow filtering:<br /><br /><br /><div style="float: left; margin: 0; padding: 0; width: 50%; text-align: center;"><br /><img src="http://www.associativetrails.com/blogCFC/images/ex2-withwidow.png" width="200" height="92" style="border: 1px solid #999; padding: 5px;" alt="widow" /><br />widow</div><div style="float: left; margin: 0; padding: 0; width: 50%; text-align: center;"><br /><img src="http://www.associativetrails.com/blogCFC/images/ex2-withoutwidow.png" width="200" height="92" style="border: 1px solid #999; padding: 5px;" alt="no widow" /><br />No widow</div><br style="clear:both;" /><br /></p><p>This one seems pretty cut and dried, the widowless headline looks better and is easier to read. But problems occur with this kind of example:<br /><br /><br /><div style="float: left; margin: 0; padding: 0; width: 50%; text-align: center;"><br /><img src="http://www.associativetrails.com/blogCFC/images/ex1-withwidow.png" width="200" height="92" style="border: 1px solid #999; padding: 5px;" alt="widow" /><br />widow</div><div style="float: left; margin: 0; padding: 0; width: 50%; text-align: center;"><br /><img src="http://www.associativetrails.com/blogCFC/images/ex1-withoutwidow.png" width="200" height="92" style="border: 1px solid #999; padding: 5px;" alt="no widow" /><br />No widow</div><br style="clear:both;" /><br /></p><p>To me, its not obvious which one of these headlines is easier to read. If I had a choice, I'd maybe go with the widow version. But this is all dynamic text, so I need to choose whether to run ALL headlines through the widow filter or not.</p><p>Currently, I am keeping the widow filter on. But I reserve the right to change my mind about five times a day before this thing is finished.</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/c23zNuMxDYA" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Front-end, Design</dc:subject> <dc:date>2009-02-13T06:25:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/Fun-with-widows</feedburner:origLink></item> <item> <title>Our latest project with Sheppard Robson gets some press</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/R-DFbRovH38/news</link> <guid isPermaLink="false">036A50B4-5056-897F-ED4C318DD2CB8354@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>The current issue of Construction Industry News (Feb 09) includes a great interview with Nick Dunn, IT Manager for Sheppard Robson. In the interview, Nick goes into some of the background behind the <a href="/products/sheppardrobsonIntranet">intranet we built for Sheppard Robson</a>, and explains its impact:</p><p>"We have a dedicated team of seven IT and CAD management personnel across our three offices and in terms of our most significant recent developments we have just launched a new company intranet, which was a major project that we were able to deliver on time and to budget."</p><p>"In terms of the motivation behind this initiative, when I joined in August 2007 the company's intranet was looking a bit tired and was being underused but since the overhaul our members of staff have been able to keep track of all of the latest developments and the communication streams within the group are now very much improved."</p><p>"One of the other key drivers behind the project was to incorporate a search engine that could help us to tap into the wealth of technical information that we have on the site and the feedback we have had since going live with this has been fantastic."</p><p>- Construction Industry News, February 2009, p73</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/R-DFbRovH38" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Company news</dc:subject> <dc:date>2009-01-23T06:59:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/news</feedburner:origLink></item> <item> <title>You know you're an ageing geek when...</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/v-zvdmEEltk/You-know-youre-an-ageing-geek-when</link> <guid isPermaLink="false">BBC6CE77-5056-897F-ED3E7FA46274A3CD@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>...you watch a video by the <a href="http://news.bbc.co.uk/1/hi/entertainment/7817603.stm">next big thing in pop music</a> and concentrate on the gadget rather than the fetching young lady or the tune.</p><p>How cool does the <a href="http://tenori-on.yamaha-europe.com/uk/">Yamaha Tenorion</a> look? Ms. Boots is quite a dab-hand at it too, if her <a href="http://uk.youtube.com/user/littlebootsvideos">YouTube channel</a> is anything to go by.</p><p><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/N6tLRCDqJ2c&hl=en&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/N6tLRCDqJ2c&hl=en&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p></p><p>I vaguely remember a Shockwave app back in about '99 that used a similar interface to build up beats, but a full hardware sequencer with this interface is clearly a winner. Very happy with the <a href="http://www.amazon.co.uk/Little-Boots-EP/dp/B001OGRGWY/ref=sr_1_1?ie=UTF8&s=dmusic&qid=1231510976&sr=8-1">Little Boots EP</a> too.</p><p>BTW - Is it a bit weird to name yourself after an <a href="http://en.wikipedia.org/wiki/Caligula">insane Roman emperor</a>?</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/v-zvdmEEltk" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Technology &amp; applications, Culture</dc:subject> <dc:date>2009-01-09T09:14:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/You-know-youre-an-ageing-geek-when</feedburner:origLink></item> <item> <title>Finally completed the full set...</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/gs84OJbF2KY/Finally-completed-the-full-set</link> <guid isPermaLink="false">45BF6DEE-5056-897F-ED4A5A3D7CB39065@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/perdeaux/3115425947/" title="I finally made the full shield... by Matt Perdeaux, on Flickr"><img src="http://farm4.static.flickr.com/3085/3115425947_22f97abf97.jpg" width="500" height="384" alt="I finally made the full shield..." /></a></p><p>It took a few months, but I finally got freshly-minted versions to complete the jigsaw. I really quite like the new "tails" designs.</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/gs84OJbF2KY" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Design</dc:subject> <dc:date>2008-12-17T11:18:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/Finally-completed-the-full-set</feedburner:origLink></item> <item> <title>December, and the web geek advent calendar is back</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/dDzUcgZcDek/December-means-the-web-geek-advent-calendar-is-back</link> <guid isPermaLink="false">1628651E-5056-897F-ED607B8D6BB6A977@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p><a href="http://24ways.org/">24ways</a> is back again this year, and already has some varied and useful tips and tricks for developer/designers.</p><p>I particulary like Drew McLellan's list of <a href="http://24ways.org/2008/easing-the-path-from-design-to-development">things to help smooth the hand-over between design and development</a>:</p><p><ul><br /><li>Is the layout fixed, or fluid?</li><br /><li>Does each element cope with expanding for larger text and more content?</li><br /><li>Are all the graphics large enough to cope with an area expanding?</li><br /><li>Does each interactive element have a state for with and without JavaScript?</li><br /><li>Does each element have a state for logged in and logged out users?</li><br /><li>How are any custom fonts being displayed? (and does the developer have the font to use?)</li><br /><li>Does each interactive element have error and success messages designed?</li><br /><li>Do all form fields have a label and each form a submit button?</li><br /><li>Is your Photoshop comp document well organised?</li><br /><li>Have you provided flat PDFs of each state?</li><br /><li>Have you provided a colour reference?</li><br /><li>Are we having fun yet?</li><br /></ul></p><p>All good things to think about.</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/dDzUcgZcDek" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Design</dc:subject> <dc:date>2008-12-08T05:28:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/December-means-the-web-geek-advent-calendar-is-back</feedburner:origLink></item> <item> <title>I can always tell when the USA is on holiday...</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/PGJaOnKa3V0/I-can-always-tell-when-the-USA-is-on-holiday</link> <guid isPermaLink="false">E4119CFA-5056-897F-ED746D94701D9B34@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>... it takes a lot less time to read through all my RSS feed subscriptions. I reckon there has been about a fifth of the usual volume of posts today.</p><p>I like the idea of Thanksgiving - a family holiday with no stress over gifts, no dogma and no jingly music.</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/PGJaOnKa3V0" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Culture</dc:subject> <dc:date>2008-11-28T12:00:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/I-can-always-tell-when-the-USA-is-on-holiday</feedburner:origLink></item> <item> <title>Paperwork required to buy an Apple iPhone from O2 on a business tariff</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/16O1V6Y-7oo/Paperwork-required-to-buy-an-Apple-iPhone-from-O2-on-a-business-tariff</link> <guid isPermaLink="false">DE611F87-5056-897F-EDE2EB8A55CB5B1B@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p>It took me two visits - maybe this list can save someone else the hassle of multiple trips:</p><p><ul><br /><li>Blank company letterhead - and you then write down a list of what you have ordered on it for them. This was required for a limited company (and its omission was why I had to go back)</li><br /><li>Proof of trading with address - I used a company bank statement</li><br /><li>Company debit/credit card</li><br /><li>Driving licence</li><br /><li>PAC code from previous network (if porting an existing number across)</li><br /></ul></p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/16O1V6Y-7oo" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Business, Apple</dc:subject> <dc:date>2008-11-27T09:30:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/Paperwork-required-to-buy-an-Apple-iPhone-from-O2-on-a-business-tariff</feedburner:origLink></item> <item> <title>How do we add gravity to software?</title> <link>http://feedproxy.google.com/~r/AssociativeTrails/~3/AZGEStwVv74/How-do-we-add-gravity-to-software</link> <guid isPermaLink="false">B017595A-5056-897F-EDAE2CE12E4233DC@http://www.associativetrails.com/</guid> <content:encoded><![CDATA[<p><blockquote>"When you blow something up by a factor of one hundred, it gets weaker by a factor of one hundred. If you try to build a cathedral that way, it just collapses into a pile of rubble." - <a href="http://en.wikipedia.org/wiki/Alan_Kay">Alan Kay</a></blockquote></p><p>Having spent time as both a "Software Engineer" and a Structural Engineer, I am always interested when key industry figures start comparing the two disciplines. Alan Kay's insight into one of the fundamental problems with software reminded me of the arguments over the use of the word "Engineering" for software.</p><p><blockquote>"'Software Engineering' is something of an oxymoron. It's very difficult to have real engineering before you have physics, and there isn't anything even close to a physics for software" - <a href="http://en.wikipedia.org/wiki/L._Peter_Deutsch">L. Peter Deutsch</a></blockquote></p><p>The more I think about it, the more I can see what these guys are saying. Within the idiom, software isn't subject to the physical laws that govern structures.</p><p>For instance, about a decade ago, I was tasked with building the structural analysis model of the <a href="http://en.wikipedia.org/wiki/London_eye">London Eye</a>. As you can imagine, this included a very thorough consideration of the different combinations of force and load acting on the structure in order to calculate how much material was required for it to stand up. We considered over 200 different loadcases for self-weight, wind, people, motion, etc. but in all of them the major force was due to the self-weight of the structure. On average, about 90% of the material in that big wheel is only there to hold itself up.</p><p>This introduces some interesting approaches to the engineering solution. In these circumstances, if you have a large force to resist, you cannot just throw more material at it because you are just worsening the problem. Eventually the whole thing will fall down. One wonders what kind of software we would produce if, like London Eye steelwork, 90% of the code written did nothing apart from retain the structural integrity of the software. Without the constraints of gravity, won't we just keep on building and building?</p><p>I guess we apply some constraints to ourselves by using application frameworks such as Rails or Django, but the only real physical constraint on sheer volume of code I can see is factors such as disk space, processor speed, RAM, etc. And how many of us push our servers to that extent? Hmmmm.</p><img src="http://feeds.feedburner.com/~r/AssociativeTrails/~4/AZGEStwVv74" height="1" width="1"/>]]></content:encoded> <dc:creator>Matt Perdeaux</dc:creator> <dc:subject>Technology &amp; applications</dc:subject> <dc:date>2008-11-18T09:20:00-00:00</dc:date> <feedburner:origLink>http://www.associativetrails.com/blog/entry/How-do-we-add-gravity-to-software</feedburner:origLink></item></channel>
		</rss>
