<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Pezholio &#187; Web Development</title>
	<atom:link href="http://www.pezholio.co.uk/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.pezholio.co.uk</link>
	<description>Musings on local government, web development, music and tings</description>
	<lastBuildDate>Mon, 25 Jul 2011 14:08:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Fixmytweet!</title>
		<link>http://www.pezholio.co.uk/2009/12/fixmytweet/</link>
		<comments>http://www.pezholio.co.uk/2009/12/fixmytweet/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 12:24:07 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Council Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[fixmystreet]]></category>
		<category><![CDATA[fixmytweet]]></category>
		<category><![CDATA[mysociety]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=323</guid>
		<description><![CDATA[I love Fixmystreet &#8211; it&#8217;s the nearest thing we&#8217;ve got to a national problem reporting hub, while other council website bury their reporting facilities under pages and pages of navigation, Fixmystreet is simple, quick and direct. What I also love is its openness, as well as being able to pull out reports for problems in [...]]]></description>
			<content:encoded><![CDATA[<p>I love <a href="http://www.fixmystreet.com/">Fixmystreet</a> &#8211; it&#8217;s the nearest thing we&#8217;ve got to a national problem reporting hub, while other council website bury their reporting facilities under pages and pages of navigation, Fixmystreet is simple, quick and direct.</p>
<p>What I also love is its openness, as well as being able to <a href="http://www.fixmystreet.com/alert">pull out reports for problems in your area</a>, you can also <a href="http://www.fixmystreet.com/import">inject problem reports directly into the system</a>, meaning anyone can build their own front end for the system.</p>
<p>I&#8217;ve been thinking about Fixmystreet a lot recently, after building my own frontend for it via the <a href="http://www.lichfielddc.gov.uk/site/custom_scripts/map.php">Ubermap</a>, I&#8217;ve also been thinking about repurposing our existing streetscene reporting forms, and getting them to use Fixmystreet.</p>
<p>It was while fiddling about under the hood, that I thought &#8216;wouldn&#8217;t it be cool if people could report problems via Twitter?&#8217; </p>
<p>Twitter is a fast way of communicating, and crucially, it&#8217;s mobile. There&#8217;s a plethora of mobile apps and frontends for Twitter, and even if you&#8217;re only on an aged Nokia 3310, you can send tweets by text message. This means that when you spot a problem, you can report it straight away. You could even add a picture.</p>
<p>I got cracking on it, and, within the space of 24 hours I had a prototype &#8211; users sign up with their Twitter username and email address on the <a href="http://fixmytweet.com/">Fixmytweet website</a>, and whenever they spot a problem, they can send a tweet in this format:</p>
<p><code>@fixmytweet {postcode} {description of problem} {twitpic link (optional)}</code></p>
<p>(If you&#8217;ve got a smartphone with a Twitter app that supports the <a href="http://blog.twitter.com/2009/08/location-location-location.html">geolocation API</a> you don&#8217;t even need the postcode!)</p>
<p>The system then parses the tweet and sends the necessaries to Fixmystreet. Fixmystreet then sends an email to the user, with a link for them to add more detail and approve the report. It then gets sent directly to the council! (and, if the council is smart, they can even <a href="http://www.mysociety.org/2008/11/12/first-council-lets-fixmystreet-post-straight-to-the-crm/">integrate it with their CRM system</a>)</p>
<p>I&#8217;m currently testing this out on a test version of Fixmystreet, and it seems to be working well so far. If you&#8217;re interested in helping test me test it, please <a href="http://fixmytweet.com/">sign up on the Fixmytweet website</a> and send a test tweet.</p>
<p>I&#8217;ll keep everyone posted on developments on Twitter and this here blog!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/12/fixmytweet/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Barcode Posters &#8211; the second coming</title>
		<link>http://www.pezholio.co.uk/2009/11/barcode-posters-the-second-coming/</link>
		<comments>http://www.pezholio.co.uk/2009/11/barcode-posters-the-second-coming/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 17:11:11 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Council Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[stuff]]></category>
		<category><![CDATA[barcode]]></category>
		<category><![CDATA[urls]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=292</guid>
		<description><![CDATA[With all this talk of data, and online, we can often lose sight of the real, physical world (as a certified iPhone addict, I know I do &#8211; there&#8217;s been a few times I&#8217;ve almost walked into a lampost due to me paying more attention to my phone than what&#8217;s going on in front of [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://chart.apis.google.com/chart?chs=125&#038;cht=qr&#038;chl=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DYu_moia-oVI" class="alignright" />With all this talk of data, and online, we can often lose sight of the real, physical world (as a certified iPhone addict, I know I do &#8211; there&#8217;s been a few times I&#8217;ve almost walked into a lampost due to me paying more attention to my phone than what&#8217;s going on in front of me!) &#8211; digital is all very well, but how do we link this in with real life?</p>
<p><a href="http://twitter.com/adrianshort">Adrian Short</a> (he of <a href="http://www.mashthestate.org.uk/">Mash the State</a> fame) recently blogged about <a href="http://mashthestate.wordpress.com/2009/09/28/guerilla-noticeboarding-the-council-with-barcode-posters/">his barcode posters site</a>, which allows you to change RSS feeds into printable documents with QR barcodes (those thingies above) attached to each article &#8211; people with smartphones that can read barcodes (iPhone, Android etc) can then scan the code and link directly to the article. It&#8217;s almost like hyperlinks for real life.</p>
<p>I&#8217;ve had this idea on the back burner for a while now, but after tweeting about seeing the first new style Ratemyplace (a website I run which publishes food safety scores online) poster &#8216;in the wild&#8217; &#8211; I got this reply:</p>
<script type="text/javascript" src="http://tweetpaste.thingamaweb.com/js/97845/"></script><noscript><iframe name="tp97845" id="tp97845" width="400" height="250" frameborder="0" src="http://tweetpaste.thingamaweb.com/embed/97845/" style="overflow: hidden; display: block; width: 400px; height: 250px;"><p><a href="http://tweetpaste.thingamaweb.com/embed/97845/" target="_blank">View tonypiper&rsquo;s tweet</a></p></iframe></noscript>
<p>This made me think &#8211; it&#8217;s a perfect fit for barcode posters &#8211; people can see the inspection certificate and scan the barcode to find more information. You can see an example of what I dun <a href="http://www.pezholio.co.uk/certificate.pdf" title="Example certificate with barcode">here</a></p>
<p>Now, I know what you&#8217;re thinking &#8211; &#8216;but generating images server side is hard! It&#8217;ll take me ages fiddling around with various libraries and I&#8217;ll be pulling my hair out with frustration!&#8217; &#8211; Not so &#8211; Thanks to the wonderful people at Google, all you need to do to generate a barcode for a given URL is this:</p>
<p><code>http://chart.apis.google.com/chart?chs=125&#038;cht=qr&#038;chl={url-goes-here}</code></p>
<p>You can then stick it in the src attribute of an IMG tag and display it on a page like so:</p>
<p><img src="http://chart.apis.google.com/chart?chs=125&#038;cht=qr&#038;chl=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DYu_moia-oVI" /></p>
<p>(Make sure you encode the URL of the website either on the server or using this <a href="http://www.albionresearch.com/misc/urlencode.php">handy online url encoder</a>.)</p>
<p>Simple innit? There&#8217;s more explanation of the whys and wherefores of QR barcodes on the <a href="http://www.barcodeposters.com/">Barcode posters website</a>. Now get out there and barcode! </p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/11/barcode-posters-the-second-coming/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Adventures in WordPress plugin building</title>
		<link>http://www.pezholio.co.uk/2009/10/adventures-in-wordpress-plugin-building/</link>
		<comments>http://www.pezholio.co.uk/2009/10/adventures-in-wordpress-plugin-building/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 10:45:08 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=227</guid>
		<description><![CDATA[I love WordPress (hell, I use it for my blog don&#8217;t I?) and for a while I&#8217;ve been looking for an excuse to add to the community and build a plugin. Whilst working on a new community blog for the North Lichfield Initiative I found that excuse. The guy I was training to update the [...]]]></description>
			<content:encoded><![CDATA[<p>I love WordPress (hell, I use it for my blog don&#8217;t I?) and for a while I&#8217;ve been looking for an excuse to add to the community and build a plugin.</p>
<p>Whilst working on a <a href="http://www2.lichfielddc.gov.uk/northlichfield">new community blog for the North Lichfield Initiative</a> I found that excuse. </p>
<p>The guy I was training to update the blog wanted an easy way to show Flickr slideshows on posts and pages and didn&#8217;t want to mess around with code. I first tried using <a href="http://www.flickrslideshow.com/">Flickr Slideshow</a>, which generates code to embed Flickr slideshows into websites, but found that the visual editor strips away the iframe code when you publish the post.</p>
<p>I searched and searched through the WordPress plugins, but couldn&#8217;t find anything that did what I wanted to do quickly and easily &#8211; so I rolled up my sleeves and got my hands dirty!</p>
<p>The result is <a href="http://www.pezholio.co.uk/my-work/flickr-slideshow/">Flickr Flash Slideshow</a> &#8211; all you need to do is put the link the to user, set or group you want a slideshow of between [ flickr][ /flickr] tags (without the spaces) like so:</p>
<p>[ flickr]url[ /flickr]</p>
<p>You can also add the width or height of the slideshow like so:</p>
<p>[ flickr]url,width,height[ /flickr]</p>
<p>If the width and height is left out, then the plugin defaults to 300px x 300px</p>
<p>Check out an example here:</p>
<p><iframe align="center" src="http://www.flickr.com/slideShow/index.gne?group_id=894733@N22"  height="300" frameBorder="0" scrolling="no"></iframe></p>
<p>I was amazed by how quickly I could put it together and it&#8217;s further cemented my belief that WordPress is one of the best, if not best open source projects ever &#8211;  a lot of projects could learn from its ease and extensibility.</p>
<p>Anyways, if you want the plugin, please <a href="http://www.pezholio.co.uk/flickr-flash-slideshow.zip">Download it here</a> and let me know if you have any problems! I&#8217;m sure it&#8217;ll come in handy for a lot of community based sites who&#8217;s users may not have enough technical knowledge to edit raw HTML.</p>
<p><strong>Update:</strong> I&#8217;ve finally got access to the WordPress SVN repository, so you should be able to install it directly from your admin section &#8211; just search for &#8216;Flickr Flash Slideshow&#8217;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/10/adventures-in-wordpress-plugin-building/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>One step forward, two steps back  &#8211; Ernest Marples and the idiocy of the Royal Mail</title>
		<link>http://www.pezholio.co.uk/2009/10/one-step-forward-two-steps-back-ernest-marples-and-the-idiocy-of-the-royal-mail/</link>
		<comments>http://www.pezholio.co.uk/2009/10/one-step-forward-two-steps-back-ernest-marples-and-the-idiocy-of-the-royal-mail/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 19:19:46 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Open Data]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[royal mail]]></category>
		<category><![CDATA[twitterplan]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=206</guid>
		<description><![CDATA[Well, it happened. today, the Royal Mail have issued ernestmarples.com with a takedown notice, demanding that the service be taken down immediately under pain of legal action. For those of you who don&#8217;t know, Ernest Marples was / is a system that provided not-for-profit sites (such as HealthWhere, JobcentreProPlus.com, Planning Alerts and, by extension Twitterplan) [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pezholio.co.uk/wp-content/uploads/2009/10/Untitled-11.jpg" alt="Royal Fail" title="Royal Fail" width="200" height="133" class="alignright size-full wp-image-210" />Well, it happened. today, the Royal Mail have <a href="http://ernestmarples.com/blog/">issued ernestmarples.com with a takedown notice</a>, demanding that the service be taken down immediately under pain of legal action.</p>
<p>For those of you who don&#8217;t know, <a href="http://www.ernestmarples.com">Ernest Marples</a> was / is a system that provided not-for-profit sites (such as <a href="http://www.mappage.org/hw/">HealthWhere</a>, <a href="http://jobcentreproplus.com/">JobcentreProPlus.com</a>, <a href="http://www.planningalerts.com">Planning Alerts</a> and, by extension <a href="http://www.twitterplan.co.uk/">Twitterplan</a>) with latitude and longitude data from postcodes, which means that people can get information about their areas with only their postcode.</p>
<p>Because Ernest Marples has been served with this notice, none of these sites can function, meaning the Royal Mail (who are *supposed* to be a public service)  are directly responsible for taking away a wealth of useful tools from the public it&#8217;s *supposed* to serve.</p>
<p>Judging by the <a href='http://search.twitter.com/search?q=royal+mail">flurry of outcry on Twitter</a>, the Royal Mail are not a popular bunch because of this decision, and have really shot themselves in the foot PR wise. </p>
<p>Instead of getting heavy-handed with the lawyers, why didn&#8217;t they enter with a dialogue with Harry and Richard (the people behind the site) and try and come up with an alternative license for volunteer-built, community focused sites of this nature? </p>
<p>I can sort of understand them wanting to protect their revenue stream (although it&#8217;s arguable that this data should be in the public domain anyway), but because these sites are built by volunteers and make no money, they aren&#8217;t going to have the funding to fork out the £4k per year to have access to the official postcode database &#8211; so the Royal Mail aren&#8217;t losing out on any extra cash anyway. All they&#8217;ve done is picked up their ball and gone off in a strop, meaning no one can play anymore.</p>
<p>I&#8217;m hoping that something can be worked out, because it&#8217;d be a crying shame if this service (or something similar) didn&#8217;t get going again.</p>
<p><strong>Update:</strong> I&#8217;ve submitted a <a href="http://petitions.number10.gov.uk/nfppostcodes/">petition to Number 10 about this</a>, not sure how much good it&#8217;ll do, but it&#8217;s worth a try! Please sign, retweet, pass around by any means you can!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/10/one-step-forward-two-steps-back-ernest-marples-and-the-idiocy-of-the-royal-mail/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What local authorities can learn from the Birmingham City Council DIY project</title>
		<link>http://www.pezholio.co.uk/2009/09/what-local-authorities-can-learn-from-the-birmingham-city-council-diy-project/</link>
		<comments>http://www.pezholio.co.uk/2009/09/what-local-authorities-can-learn-from-the-birmingham-city-council-diy-project/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 15:34:24 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Council Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[birmingham]]></category>
		<category><![CDATA[localgovweb]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=196</guid>
		<description><![CDATA[In case you&#8217;ve had your head buried in a good few feet of sand, then you&#8217;ll know all about the issues surrounding the new Birmingham City Council website. I won&#8217;t get into it too much here, but, suffice to say, the project was over budget, late and didn&#8217;t deliver half of what is expected from [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.pezholio.co.uk/wp-content/uploads/2009/09/bccdiy-300x101.png" alt="BCC DIY logo" title="BCC DIY logo" width="300" height="101" class="aligncenter size-medium wp-image-197" /><br />
In case you&#8217;ve had your head buried in a good few feet of sand, then you&#8217;ll know all about the <a href="http://www.pezholio.co.uk/2009/09/a-few-thoughts-on-birmingham-city-councils-website/">issues surrounding the new Birmingham City Council website</a>. I won&#8217;t get into it too much here, but, suffice to say, the project was over budget, late and didn&#8217;t deliver half of what is expected from a modern .gov.uk website.</p>
<p>We&#8217;re all aware of over budget government schemes that deliver less than the sum of their parts, but the interesting stuff didn&#8217;t stop there, in fact, it&#8217;s only just started &#8211; a group of passionate web type people (developers, designers, proofreaders and the like) have got together to build <a href="http://bccdiy.com/">BCC DIY</a>, a site that tries to give the people of Birmingham a better web experience.</p>
<p>As well as scraping the existing content of the original Birmingham City Council site (and publishing it in a wiki format &#8211; so people can edit and change at will), it also brings in external tools, such as <a href="http://www.fixmystreet.com/">FixMyStreet</a> and <a href="http://planningalerts.com/">Planning Alerts</a>, so people can see, at a glance, what&#8217;s going on in their area.</p>
<p>The work really got going last Friday with a <a href="http://bccdiy.eventbrite.com/">hack day up at Moseley Exchange</a> (which I wanted to get to, but sadly car trouble prevented me) where people from across Birmingham (and beyond &#8211; <a href="http://al-smith.co.uk/">Al Smith</a> &#8211; Newcastle City Council&#8217;s Web 2.0 guy, made a special trip down for the occasion) got together for a big heave ho to get the project up and running.</p>
<p>The results, while not reflective of a fully formed project (yet), are impressive, and for me, as a local government webbie, really interesting. </p>
<p>While usability studies can tell us a lot, they are often informed by our own ideas and prejudices. BCC DIY shows us the kind of website that people who spend a lot of time on the web (and often work in the sector too) want from a website and gives us a fresh view of local government online. </p>
<p>Obviously, what &#8216;web people&#8217; want from a website may well be different from what less web savvy people want, but it&#8217;s a viewpoint, and one that reflects the views of a lot of our users. I&#8217;m continuing to watch with interest.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/09/what-local-authorities-can-learn-from-the-birmingham-city-council-diy-project/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A few thoughts on Birmingham City Council&#8217;s website</title>
		<link>http://www.pezholio.co.uk/2009/09/a-few-thoughts-on-birmingham-city-councils-website/</link>
		<comments>http://www.pezholio.co.uk/2009/09/a-few-thoughts-on-birmingham-city-councils-website/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 18:12:39 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Council Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[local government]]></category>
		<category><![CDATA[websites]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=157</guid>
		<description><![CDATA[Health warning Before I go any further, it&#8217;s worth pointing out that my views are my own, and not the views of my employer &#8211; just so you know like. Well, it&#8217;s finally happened &#8211; massively over budget, and over three years late, Birmingham City Council&#8217;s website has finally launched. And what a disappointment it [...]]]></description>
			<content:encoded><![CDATA[<div class="warning">
<p><strong>Health warning</strong></p>
<p>Before I go any further, it&#8217;s worth pointing out that my views are my own, and not the views of my employer &#8211; just so you know like.</p>
</div>
<p>Well, it&#8217;s finally happened &#8211; massively over budget, and over three years late, <a href="http://www.birmingham.gov.uk/">Birmingham City Council&#8217;s website</a> has finally launched.</p>
<p>And what a disappointment it is, admittedly it&#8217;s an improvement from the old site, which looked like it had crawled out of the mid-90s, but already looks a bit dated &#8211; there&#8217;s no RSS feeds (apart from feeds for searches &#8211; automatically generated by the Google search appliance) and there&#8217;s a <a href="http://search.twitter.com/search?q=+%23bccwebsite">myriad of other problems</a>.</p>
<p>Birmingham is the second largest local authority in the UK, has a thriving digital community, and the local authority is doing great stuff with <a href="http://www.digitalbirmingham.co.uk/">Digital Birmingham</a>, so why isn&#8217;t this reflected in the city council&#8217;s website?</p>
<p>Manchester, a similar sized authority, launched their <a href="http://www.manchester.gov.uk/">new website</a> in a fraction of the time it took to launch Birmingham&#8217;s, also scooping a <a href="http://www.btonlineexcellence.com/winners.php">BT online excellence award</a> in the process, proving that it doesn&#8217;t take an age to launch a website for a large local authority.</p>
<p>Now, I don&#8217;t blame the web team for this, they&#8217;ve done a very good job given using the tools they&#8217;ve been given, but the problem is the system it&#8217;s been built on &#8211; by all accounts the web team have had very little involvement and most of the grunt work has been done by the council&#8217;s outsourced IT &#8216;partner&#8217; <a href="http://www.birmingham.gov.uk/cs/Satellite?c=Page&#038;childpagename=Service-Birmingham%2FPageLayout&#038;cid=1223092749116&#038;pagename=BCC%2FCommon%2FWrapper%2FWrapper">Service Birmingham</a> &#8211; operated by everyone&#8217;s favourite outsourcer Capita (or Crapita if you read Private Eye).</p>
<p>Not involving the people who know best &#8211; the web team &#8211; in the first place means not only do you have a system which is massively over budget and more than fashionably late, it also means that you have a site that doesn&#8217;t represent Birmingham in a positive light. </p>
<p>Effectively getting an IT outsourcer &#8211; who&#8217;s expertise is not in the domain of web &#8211; is a fatal error &#8211; it&#8217;s akin to getting a printer to publish a newspaper &#8211; they may know about printing, but what do they know about journalism? Obviously there is an overlap, but IT and web are, in main, separate disciplines and this needs to be respected.</p>
<p>Now, my good friend Paul Canning has been <a href="http://paulcanning.blogspot.com/2009/05/postscript-why-gov-webbies-need.html">banging on about more respect for government webbies for a while</a>, arguing that we need professional status, and this is a textbook example of why this desperately needs to happen, otherwise we&#8217;re going to end up with more disasters of this nature.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/09/a-few-thoughts-on-birmingham-city-councils-website/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Ernest Marples PHP helper function</title>
		<link>http://www.pezholio.co.uk/2009/07/ernest-marples-php-helper-function/</link>
		<comments>http://www.pezholio.co.uk/2009/07/ernest-marples-php-helper-function/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 18:49:15 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Open Data]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[post office]]></category>
		<category><![CDATA[postcode]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=120</guid>
		<description><![CDATA[Some of you may have seen my blog post about the Ernest Marples API a few weeks ago, and since then there&#8217;s been no slapped wrists from the Post Office and a lot of people voicing their support There&#8217;s also been a Perl helper library courtesy of Andy Armstrong and, as Perl looks a little [...]]]></description>
			<content:encoded><![CDATA[<p>Some of you may have seen my <a href="http://www.pezholio.co.uk/2009/07/the-postcode-freed-well-sort-of/">blog post about the Ernest Marples API</a> a few weeks ago, and since then there&#8217;s been no slapped wrists from the Post Office and a lot of people voicing their support</p>
<p>There&#8217;s also been a <a href="http://search.cpan.org/dist/WWW-ErnestMarples/">Perl helper library</a> courtesy of <a href="http://hexten.net/">Andy Armstrong</a> and, as Perl looks a little bit like French to me, I thought I&#8217;d get my hands dirty and build a little PHP function to add to the mix.</p>
<p><a href="http://www.pezholio.co.uk/ernest_test.php">You can check it out and give it a test here</a> &#8211; basically all it does is accept a postcode and then returns an array with the original postcode, together with the latitude and longitude. It&#8217;s pretty simple, but then again, the API is too, so there&#8217;s no real point adding to it.</p>
<p>Feel free to nick the code, and use it as you see fit. If you are using it in a live project, it&#8217;s probably a good idea to let the Ernest Marples guys know, so they can keep you up to date with the latest developments &#8211; enjoy!</p>
<p><strong>Update:</strong> The wonderful <a href="http://www.noginn.com/">Tom Graham</a> has made a few changes to this script to utilise the cURL library, which is handy if your server doesn&#8217;t allow fopen to access external URLs. Check it out on <a href="http://gist.github.com/170266">Github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/07/ernest-marples-php-helper-function/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Widgetising Local Government Content</title>
		<link>http://www.pezholio.co.uk/2009/06/widgetising-local-government-content/</link>
		<comments>http://www.pezholio.co.uk/2009/06/widgetising-local-government-content/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 08:47:44 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Council Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[council]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mashups]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=94</guid>
		<description><![CDATA[With the recent publication of the Digital Britain report and Gordon Brown calling on Tim Berners-Lee to help open up access to government data, there&#8217;s been a lot of talk about public organisations opening up data. Most of this has focused around APIs and linked data (something I&#8217;m very passionate about already), but there&#8217;s much [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://pezholio.co.uk/wp-content/uploads/2009/06/JohnSmithsExtraCold-150x150.jpg" alt="John Smith's - because it's got a widget (Not that I'd actually drink the stuff)" style="float: right; margin: 0 0 1em 1.3em;" />
<p>With the recent publication of the <a href="http://digitalbritainforum.org.uk/report/">Digital Britain report</a> and Gordon Brown <a href="http://news.bbc.co.uk/1/hi/technology/8096273.stm">calling on Tim Berners-Lee to help open up access to government data</a>, there&#8217;s been a lot of talk about public organisations opening up data.</p>
<p>Most of this has focused around APIs and linked data (something I&#8217;m very passionate about already), but there&#8217;s much simpler ways to get data out there that might be useful to those people who might have a website, know their way a bit round HTML, but aren&#8217;t willing to get their hands dirty with XML, JSON or RDF.</p>
<p>I&#8217;m talking of course, about widgets, these are little bits of (often Javascript) code that people can copy and paste into their own websites. These can then be used by local blogs, newspapers or other websites to publish your content in a quick and easy way.</p>
<p>I&#8217;ve had a go at doing a few widgets, publishing <a href="http://www.ratemyplace.org.uk/linktous.php">food safety inspections</a> and <a href="http://www.lichfielddc.gov.uk/site/scripts/documents_info.php?documentID=1178">planning applications</a> as widgets and I&#8217;m looking to do more in the future. Fellow blogger and techy Philip John has even turned one of our widgets into a <a href="http://philipjohn.co.uk/ratemyplace-wordpress-widget">WordPress-compatible widget</a>, which I&#8217;m proudly sporting on the right here.</p>
<p>Essentially, what you&#8217;re doing is pulling information from a database (using PHP or whatever server-side technology you fancy) and outputting it as javascript code, wrapping it all in a document.write function. You can also use inline styling to style your widget, making sure you override any potential styles that might be overridden by the user&#8217;s stylesheet. A quick and dirty example is below:</p>
<p><code><br />
&lt;?php<br />
$query = &quot;SELECT * FROM database&quot;;<br />
$result = mysql_query($query) or die(mysql_error());<br />
echo &quot;document.write('&quot;;<br />
echo &quot;&lt;h2 style=\&quot;font-size: 18px; font-weight: bold;\&quot;&gt;Planning Applications for Foo on Bar Council&lt;/h2&gt;&quot;;<br />
while ($row = mysql_fetch_array($result)) {<br />
echo &quot;&lt;p&gt;&lt;a href=\&quot;&quot;.$row['link'].&quot;\&quot;&gt;&quot;.$row['address'].&quot;&lt;/a&gt;&quot;;<br />
echo &quot;&lt;p&gt;&quot;.$row['proposal'].&quot;&lt;/p&gt;&quot;;<br />
}<br />
echo &quot;');&quot;;<br />
?&gt;<br />
</code></p>
<p><strong>Note: </strong>It&#8217;s very important that you make sure you get rid of all line breaks when you actually publish your content, otherwise you&#8217;ll get a Javascript error and the content won&#8217;t show up.</p>
<p>Once you&#8217;ve done this, you can then upload the script and then call it in a script tag, like below:</p>
<p><code>&lt;script type=&quot;text/javascript&quot; src=&quot;http://www.mysite.com/myscript.php&quot;&gt;&lt;/script&gt;</code></p>
<p>And here&#8217;s one I made earlier!:</p>
<div style="width: 300px">
<script type="text/javascript" src="http://www.lichfielddc.gov.uk/site/custom_scripts/planningwidget.php"></script>
</div>
<p>Really, the only limit is your imagination, so get out there and widgetise! It&#8217;s not a replacement for APIs, but it&#8217;s a good alternative for folks who might not be comfortable with the big stuff.</p>
<p>(P.S. The John Smith&#8217;s is there because it&#8217;s got a widget in the can, I&#8217;m not advocating the drinking of John Smith&#8217;s &#8211; it&#8217;s horrible stuff. Give me a proper cask ale any day)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/06/widgetising-local-government-content/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Getting location in Safari on iPhone OS 3.0</title>
		<link>http://www.pezholio.co.uk/2009/06/getting-location-in-safari-on-iphone-os-30/</link>
		<comments>http://www.pezholio.co.uk/2009/06/getting-location-in-safari-on-iphone-os-30/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 11:58:19 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[geolocation]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[maps]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=74</guid>
		<description><![CDATA[Well, the Apple Worldwide Developer&#8217;s Conference is over, the announcements have been made, and version 3.0 of the iPhone software is coming out next week. If (like me) you&#8217;re a developer, or you&#8217;ve managed to :ahem: &#8216;acquire&#8217; a copy of the version 3.0, you&#8217;ll notice that there&#8217;s a lot of cool new things, like search, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, the Apple Worldwide Developer&#8217;s Conference is over, the announcements have been made, and version 3.0 of the iPhone software is coming out next week.</p>
<p>If (like me) you&#8217;re a developer, or you&#8217;ve managed to :ahem: &#8216;acquire&#8217; a copy of the version 3.0, you&#8217;ll notice that there&#8217;s a lot of cool new things, like search, voice notes, picture messaging (at last!) and copy and paste. One thing that wasn&#8217;t really trumpeted was the inclusion of a <a href="http://developer.apple.com/safari/library/documentation/AppleApplications/Reference/SafariWebContent/GettingGeographicalLocations/GettingGeographicalLocations.html#//apple_ref/doc/uid/TP40002051-CH5-SW2">Javascript Geolocation API</a>.</p>
<p>This API now means if (like me) you&#8217;ve not yet got your hands dirty with Objective C, and are quite comfortable with using Javascript and HTML thank you very much, you will now be able to get a user&#8217;s location using only those two methods in your web apps. Let&#8217;s take a peek:</p>
<h2>Taking a peek</h2>
<p>The Geolocation API is a <a href="http://dev.w3.org/geo/api/spec-source.html">W3C specification</a>, which means that (in theory) it will be adopted by other browsers eventually (even desktop browsers!), so even if you&#8217;re not developing for iPhone, you&#8217;ll be able to use it!</p>
<p>The main crux of this is the Geolocaton object, which accepts a function to return if the call has been sucessful, a function to return if there&#8217;s been an error, and a few options. If we call the success function &#8216;showMap&#8217; and the error function &#8216;error&#8217; and ask the browser to try and get the best accuacy, the code will look something like this:</p>
<p><code>navigator.geolocation.getCurrentPosition(showMap, error, {enableHighAccuracy: true});</code></p>
<p>We then need to build our success function, which gets the position and then shows the user&#8217;s current location using the <a href="http://code.google.com/apis/maps/documentation/staticmaps/">Google static maps API</a> (using jQuery, &#8216;cos that&#8217;s how I roll)</p>
<p><code>function showMap(position) {<br />
latitude = position.coords.latitude;<br />
longitude = position.coords.longitude;<br />
$(&quot;#map&quot;).html(&quot;&lt;img src='http://maps.google.com/staticmap?center=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;&amp;zoom=16&amp;size=320x356&amp;maptype=mobile&amp;markers=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;&amp;key=ABQIAAAAyUvSDBrAO4ePxVHcqp-K5hQ5esWtNpQWehF-Z9NQeJEFHAWuORRop2dJC86rRc7w8ebZJ0ODn4_-bQ&amp;sensor=false' /&gt;&quot;)<br />
}</code></p>
<p><em>(Obviously you&#8217;ll need to generate a new API key for your own site, I&#8217;ve included mine here)</em></p>
<p>The error function is simply a function that shows an error pop up:</p>
<p><code>function error() {<br />
alert(&quot;Couldn't get location!&quot;);<br />
}</code></p>
<p>You can do other stuff, such as showing exactly what went wrong, but I&#8217;ll leave that up to you. It&#8217;s all in the API anyway.</p>
<p>That&#8217;s literally it! All you need to do then is wrap the whole lot in a function and then call it onload. You can <a href="http://pezholio.co.uk/geo.html">see an example here</a> (obviously it won&#8217;t work if you&#8217;re not using the new iPhone software)</p>
<p>Hope this has been useful, any questions, check out the <a href="http://dev.w3.org/geo/api/spec-source.html">documentation</a>, or ask in the comments! </p>
<h2>A bit more&#8230;</h2>
<p>Since writing this post I&#8217;ve noticed that the accuracy wasn&#8217;t great, I&#8217;ve now updated the demo to use <em>watchPosition</em> to try and get the most accurate position. It tries 7 times to get a location accuracy of below 100, if not, an error message shows and the best possible location is shown. The script now looks like this:</p>
<p><code>
<p>var count = 0</p>
<p>function getCoords() {<br />
var watch = navigator.geolocation.watchPosition(showMap, error)</p>
<p>function showMap(position) {<br />
	count ++;<br />
    latitude = position.coords.latitude;<br />
    longitude = position.coords.longitude;<br />
	accuracy = position.coords.accuracy;<br />
	if (accuracy &lt; 100) {<br />
	$(&quot;#map&quot;).html(&quot;&lt;img src='http://maps.google.com/staticmap?center=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;&amp;zoom=14&amp;size=320x356&amp;maptype=mobile&amp;markers=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;&amp;key=ABQIAAAAyUvSDBrAO4ePxVHcqp-K5hQ5esWtNpQWehF-Z9NQeJEFHAWuORRop2dJC86rRc7w8ebZJ0ODn4_-bQ&amp;sensor=false' /&gt;&quot;)<br />
	navigator.geolocation.clearWatch(watch);<br />
	} <br />
	if (count &gt; 7) {<br />
	alert(&quot;Couldn't get your exact location, this is the best we could do. Sorry!&quot;);<br />
	$(&quot;#map&quot;).html(&quot;&lt;img src='http://maps.google.com/staticmap?center=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;&amp;zoom=14&amp;size=320x356&amp;maptype=mobile&amp;markers=&quot;+ latitude +&quot;,&quot;+ longitude +&quot;&amp;key=ABQIAAAAyUvSDBrAO4ePxVHcqp-K5hQ5esWtNpQWehF-Z9NQeJEFHAWuORRop2dJC86rRc7w8ebZJ0ODn4_-bQ&amp;sensor=false' /&gt;&quot;)<br />
	navigator.geolocation.clearWatch(watch);<br />
	}<br />
}</p>
<p>function error(error) {<br />
	alert(&quot;Couldn't get location!&quot;);<br />
	}<br />
}</p>
<p></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/06/getting-location-in-safari-on-iphone-os-30/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My interview with Liz Azyan about TwitterPlan</title>
		<link>http://www.pezholio.co.uk/2009/04/my-interview-with-liz-azyan-about-twitterplan/</link>
		<comments>http://www.pezholio.co.uk/2009/04/my-interview-with-liz-azyan-about-twitterplan/#comments</comments>
		<pubDate>Wed, 08 Apr 2009 10:12:44 +0000</pubDate>
		<dc:creator>Pez</dc:creator>
				<category><![CDATA[Council Stuff]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[interview]]></category>
		<category><![CDATA[local government]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.pezholio.co.uk/?p=68</guid>
		<description><![CDATA[Yesterday, I had a quick interview with Liz Azyan of LGEO Research about Twitterplan, the whys, wherefores and hows. More information is on the LGEO Research blog, but you can check out the interview below: AudioPlayer.embed("audioplayer_1", {soundFile:"aHR0cDovL3d3dy5sZ2VvcmVzZWFyY2guY29tL2F1ZGlvL1R3aXR0ZXJwbGFuUGV6aG9saW8ubXAzA"});]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I had a quick interview with Liz Azyan of <a href="http://www.lgeoresearch.com/">LGEO Research</a> about <a href="http://www.twitterplan.co.uk">Twitterplan</a>, the whys, wherefores and hows. More information is on <a href="http://www.lgeoresearch.com/twitterplan-the-newest-mashup-in-uk-local-government/">the LGEO Research blog</a>, but you can check out the interview below:</p>
<p class="audioplayer_container"><object id="audioplayer_1" data="http://www.lgeoresearch.com/wp-content/plugins/audio-player/assets/player.swf?ver=20080825040617" style="outline-color: -moz-use-text-color; outline-style: none; outline-width: medium; visibility: visible;" name="audioplayer_1" type="application/x-shockwave-flash" width="290" height="24"><param value="#FFFFFF" name="bgcolor"><param value="transparent" name="wmode"><param value="false" name="menu"><param value="animation=yes&amp;encode=yes&amp;initialvolume=60&amp;remaining=no&amp;noinfo=no&amp;buffer=5&amp;checkpolicy=no&amp;rtl=no&amp;bg=E5E5E5&amp;text=333333&amp;leftbg=CCCCCC&amp;lefticon=333333&amp;volslider=666666&amp;voltrack=FFFFFF&amp;rightbg=B4B4B4&amp;rightbghover=999999&amp;righticon=333333&amp;righticonhover=FFFFFF&amp;track=FFFFFF&amp;loader=009900&amp;border=CCCCCC&amp;tracker=DDDDDD&amp;skip=666666&amp;soundFile=aHR0cDovL3d3dy5sZ2VvcmVzZWFyY2guY29tL2F1ZGlvL1R3aXR0ZXJwbGFuUGV6aG9saW8ubXAzA&amp;playerID=audioplayer_1" name="flashvars"></object><script type="text/javascript">AudioPlayer.embed("audioplayer_1", {soundFile:"aHR0cDovL3d3dy5sZ2VvcmVzZWFyY2guY29tL2F1ZGlvL1R3aXR0ZXJwbGFuUGV6aG9saW8ubXAzA"});</script></p>
]]></content:encoded>
			<wfw:commentRss>http://www.pezholio.co.uk/2009/04/my-interview-with-liz-azyan-about-twitterplan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

