<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">

<channel>
<title>glm.org.uk</title>
<link>http://www.glm.org.uk</link>
<description>glm.org.uk - Gareth Moore online.  WPF, programming, puzzles and more.</description>
<item>
<title>I used to care</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p48</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p48</comments>
<guid isPermaLink="false">GLMorgUKrss48</guid>
<pubDate>Fri, 05 Dec 2008 14:58:08 GMT</pubDate>
<description>
Wow, reading down I used to care about some pretty unexciting things. Gosh.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Internet is not the internet without Flash and Java</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p47</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p47</comments>
<guid isPermaLink="false">GLMorgUKrss47</guid>
<pubDate>Wed, 27 Aug 2008 16:06:00 BST</pubDate>
<description>
It's official: &lt;a href="http://news.bbc.co.uk/1/hi/technology/7582197.stm"&gt;http://news.bbc.co.uk/1/hi/technology/7582197.stm&lt;/a&gt;&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>ARM passes 10 billion mark</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p45</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p45</comments>
<guid isPermaLink="false">GLMorgUKrss45</guid>
<pubDate>Fri, 25 Jan 2008 13:09:00 GMT</pubDate>
<description>
It's pretty amazing to read that British company ARM &lt;a href="http://www.itpro.co.uk/news/159219/arm-passes-10-billion-processor-milestone.html"&gt;have sold their 10 billionth processor&lt;/a&gt;.  Devices using ARM chips include mobile phones, PDAs, games consoles, computers and more.  &lt;p&gt;Back in the early 1980s the computer company Acorn, famous for the BBC Micro that was at one time ubiquitous in British schools, started work on their new 32-bit RISC processor, the ARM.  Initially available in limited quantities as a co-processor add-on for the BBC Micro, that plugged with a ribbon cable into the underside of the BBC Micro, it later formed the basis of the Archimedes computer systems.  First available in 1987 these machines were easily the fastest home computers in the world at the time, and with the launch of a decent operating system in 1988 (RISC OS) they could and arguably should have gone on to dominate the home computer market.  But they didn't, despite Windows and other OSes taking 10 or more years to implement many of the core user interface features of RISC OS.  However the shining success became the ARM chip itself, with Acorn spinning ARM off into a separate company in partnership with Apple and chip manufacturer VLSI (I think it was VLSI anyway).  This is when ARM changed from 'Acorn RISC Machine' to 'Advanced RISC Machine'.  I still have the mugs from computer shows at the time, and until recently I had some Acorn-era ARM sweatshirts too.&lt;p&gt;Acorn may be no more - although &lt;a href="http://www.castle-technology.co.uk/castle/front.shtml"&gt;you can still buy ARM-based machines&lt;/a&gt; running RISC OS - but their legacy lives on in the huge and continued success of ARM.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Digital Radio twittering on</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p44</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p44</comments>
<guid isPermaLink="false">GLMorgUKrss44</guid>
<pubDate>Fri, 11 Jan 2008 22:14:00 GMT</pubDate>
<description>
&lt;a href="http://www.ukdigitalradio.com/home/default.asp"&gt;UK Digital Radio . com&lt;/a&gt;, who officially represent DAB digital radio in the UK, have actually put out &lt;a href="http://www.ukdigitalradio.com/news/display.asp?id=290"&gt;a press release&lt;/a&gt; about how one of the national stations (Oneword) is being replace by the Birdsong channel:&lt;p&gt;&lt;i&gt;DAB digital radio listeners are again going to be treated to a relaxing rural soundtrack. Following the closure of Oneword, at midnight tonight, listeners tuning into Oneword will find the Birdsong channel has been reinstated for a limited period. &lt;p&gt;The audio was originally recorded for the test transmission of Classic FM prior to its launch in 1992. It was last used three years ago for the imaginatively named station "D1_temp" and won plaudits from listeners who complained when it was taken off air in June 2005.&lt;p&gt;Listeners and Birdsong enthusiasts should note the transmission could cease at any time and that the recording is not commercially available.&lt;p&gt;Birdsong will be broadcast between 0600 and midnight each day.&lt;/i&gt;&lt;p&gt;Says pretty much all you need to know about DAB radio, if they can't even find a station that wants to use up the airspace.&lt;p&gt;Core, another national radio station, &lt;a href="http://www.ukdigitalradio.com/news/display.asp?id=289"&gt;has also closed-up shop&lt;/a&gt;, although they pretty-much did that a long while back when they got rid of all their presenters - although given that they didn't seem to pay them, it's not clear how this actually saved them any money.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Photo-fix</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p43</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p43</comments>
<guid isPermaLink="false">GLMorgUKrss43</guid>
<pubDate>Fri, 04 Jan 2008 20:35:00 GMT</pubDate>
<description>
Well, all the things I commented on two days ago were fixed after I complained to photobox, and they did reply to my emails.  At least, the business card designer was fixed (it still has its weird pop-up messages, but it will now reload cards correctly), and the poster calendar start dates have been changed to re-allow January 2008 (and also December 2007).  I can no longer reproduce the photo book problem so I'm not sure if they've fixed that too or there was some other issue; they blamed it on a problem with Flash.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Photobox.co.uk has the quality control of a Christmas cracker toy</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p42</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p42</comments>
<guid isPermaLink="false">GLMorgUKrss42</guid>
<pubDate>Wed, 02 Jan 2008 00:15:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/42-1-PhotoBoxBooks.jpg"&gt;Photobook cover&lt;/a&gt;&lt;p&gt;
Today I decided to finally get round to ordering some photo-based bits and pieces, and turned to photobox.co.uk - it's a big photo-printing site with lots of products to choose from and I've heard good things about the quality of their prints.&lt;p&gt;After a while experimenting I finally conclude that their business card designer doesn't work, since for many of the designs it forgets the text you enter and forgets the styles you choose.  It also doesn't work at all if you don't first pre-upload a photo, and throughout my time using it it bugs me continually with "REPLACE THIS MESSAGE REPLACE THIS MESSAGE" meant-to-be-informational popups.  (Why you can't just upload a picture to use for a card I do not know)&lt;p&gt;So I try the photobook option, which is one of their big features.  Except this isn't working at all when I drag photos in, filling a bar up to 100% and then getting stuck for all pages.  Great.  (Image attached of how lovely the cover page looks like this)&lt;p&gt;Then I look at poster calendars.  But now you can no longer make calendars starting in January 2008, despite the fact that it is only 1st Jan and I had a promotional email from photobox advertising a poster calendar offer expiring in 7 days today!  So completely useful.&lt;p&gt;A total mess, then.  And a waste of my time.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Breaking news</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p41</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p41</comments>
<guid isPermaLink="false">GLMorgUKrss41</guid>
<pubDate>Thu, 20 Dec 2007 21:23:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/41-1-quality bbc.gif"&gt;Lung = Lack&lt;/a&gt;&lt;p&gt;
Breaking news... BBC News Online full of careless mistakes.  Interesting breaking news alerts, for example...  (see attachment)&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Phenomenal new Sudoku variant (or not)</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p40</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p40</comments>
<guid isPermaLink="false">GLMorgUKrss40</guid>
<pubDate>Thu, 20 Dec 2007 15:49:00 GMT</pubDate>
<description>
The Daily Telegraph ran a story this week on &lt;a href="http://www.telegraph.co.uk/earth/main.jhtml?xml=/earth/2007/12/18/scisudoku118.xml"&gt;a brand new Sudoku variation&lt;/a&gt;... which involves making (wait for it) each number a different colour!&lt;p&gt;The only problem is, this has been 'invented' many, many times before.  &lt;p&gt;A trivial search found &lt;a href="http://www.amazon.co.uk/s/ref=nb_ss_w_h_?url=search-alias%3Daps&amp;field-keywords=rubik%27s+sudoku"&gt;this commercial puzzle&lt;/a&gt;, for example, but there are countless more examples, such as &lt;a href="http://www.amazon.com/Mad-Cave-Bird-Games-1001/dp/B000J423MA/ref=pd_bbs_sr_1?ie=UTF8&amp;s=toys-and-games&amp;qid=1198165731&amp;sr=8-1"&gt;Colorku, with puzzles supplied by me&lt;/a&gt;. :)&lt;p&gt;The &lt;a href="http://www2.warwick.ac.uk/fac/sci/dcs/research/em/sudoku"&gt;Colour Sudoku&lt;/a&gt; the Telegraph talk about has the minor novelty that unsolved squares are shaded a colour formed by interpolating all the colours of the possible values that can fit - but this has two big problems.  Firstly, you lose the clarity that having colour gives in the first place since the grid is full of misleading colours that are barely distinct enough in the first place (a fundamental problem with having 9 possible values).  Secondly, the list of potential fits is based not on your own pencilmarks but on those fits left after applying very simple solving logic, so only crudely represent the ambiguity of the square from the point of view of a moderately competent solver in any case.&lt;p&gt;(Incidentally, the entire Daily Telegraph website is currently returning '404 Error: file not found' pages for the entire site, homepage included!)&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Ama[zing-c]on.co.uk total rip-off</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p39</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p39</comments>
<guid isPermaLink="false">GLMorgUKrss39</guid>
<pubDate>Wed, 12 Dec 2007 20:32:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/39-1-Amazcon.jpg"&gt;Amazon.CON.uk&lt;/a&gt;&lt;p&gt;
If Amazon are out of stock of an item they usually don't tell you - instead they list Amazon's "Marketplace" seller prices, and there is no way of finding out when Amazon will have it back in stock, or even how much they usually charge.&lt;p&gt;As a customer, I find this very annoying.  But it's also disgraceful that often these prices are &lt;b&gt;massively&lt;/b&gt; higher than the true value of the item, perhaps charitably on the basis that if you really want something you'll really pay for it - but possibly also because you might be trusting Amazon not to rip you off, just like you wouldn't expect a major department store to suddenly double or triple the price of an item they're running out of stock on.  However it seems that there are a lot of Marketplace vendors on Amazon who work this way.  And why not so far as they as sellers are concerned - it's Amazon's lack of transparency in this that is so appalling!&lt;p&gt;Look, for example, at the Nintendo DS, which happens to be the UK's best-selling console.  Its usual price is GBP99 - that's its RRP in fact, so you shouldn't be paying more.  Not on Amazon.  Look at the screenshot attached above - it is GBP194!  There are no less than &lt;b&gt;13&lt;/b&gt; sellers at this price or higher, so as a naive customer you might reasonably assume this is the normal price.  Well, it isn't.  Go to argos.co.uk or somewhere like that.&lt;p&gt;This isn't an isolated example.  I've seen various stuff that's usually around GBP90 that is priced at GBP200 on Amazon.&lt;p&gt;Fair enough for the Marketplace sellers - &lt;i&gt;not&lt;/i&gt; fair enough that Amazon don't make the premium clear, and do &lt;i&gt;not&lt;/i&gt; let you put an order on hold at their usual price whilst you wait for them to get it in stock.  It's completely disingenuous, and you can you be sure Amazon take a cut of the sale price and so have little interest in getting rid of this nice little earner for them, at the expense of their customers who trust the site not to rip them off.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>iplay more</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p38</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p38</comments>
<guid isPermaLink="false">GLMorgUKrss38</guid>
<pubDate>Wed, 12 Dec 2007 17:55:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/38-1-iplayer-revoked.jpg"&gt;I'm taking my toy back&lt;/a&gt;&lt;p&gt;
The BBC iplayer application has been updated and now you can stream content for some programmes, but not all.  You also get more information when you first click on a programme, which is a definite improvement.&lt;p&gt;There's still random omissions of content, though - I discovered just how much was missing when I started reading &lt;a href="http://www.bbc.co.uk/dna/mbiplayer/F7331803?thread=4847125&amp;skip=0&amp;show=20"&gt;the BBC's own iplayer forum discussion&lt;/a&gt;!&lt;p&gt;Interestingly, and annoyingly, it seems they can pull back content that you still have many days left to watch - see the attached screenshot (above).&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Not April 1st</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p37</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p37</comments>
<guid isPermaLink="false">GLMorgUKrss37</guid>
<pubDate>Sat, 08 Dec 2007 15:48:27 GMT</pubDate>
<description>
I had a marketing magazine from Sony in the post, full of adverts for their products.  Not especially interesting - except that it came with a letter encouraging me to &lt;i&gt;subscribe&lt;/i&gt; to it at the cost of &amp;pound;4.50 an issue!&lt;p&gt;Well over &amp;pound;50 a year in order to receive Sony's direct marketing material... who would sign up for that 'offer'?!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>A Wii-el Coincidence</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p34</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p34</comments>
<guid isPermaLink="false">GLMorgUKrss34</guid>
<pubDate>Sat, 01 Dec 2007 23:55:00 GMT</pubDate>
<description>
In the past three days there have been no less than five separate mentions and articles in the Daily Telegraph of how everyone should get a Nintendo Wii for Christmas but they're ever so hard to find.&lt;p&gt;Complete coincidence, I'm sure, that Saturday's paper has a charged phoneline competition to win a Wii - just hang on the line a bit whilst we take your details...&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Breaking News</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p33</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p33</comments>
<guid isPermaLink="false">GLMorgUKrss33</guid>
<pubDate>Fri, 30 Nov 2007 19:21:00 GMT</pubDate>
<description>
On the front page of BBC News: &lt;a href="http://news.bbc.co.uk/1/hi/england/hampshire/7118802.stm"&gt;http://news.bbc.co.uk/1/hi/england/hampshire/7118802.stm&lt;/a&gt;.&lt;p&gt;And if you think the story's unremarkable, the caption on the picture is a classic too.  What a fascinating story it tells!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Hali-facts</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p32</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p32</comments>
<guid isPermaLink="false">GLMorgUKrss32</guid>
<pubDate>Fri, 30 Nov 2007 16:00:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/32-1-Halifax mailing.jpg"&gt;Dear Who?&lt;/a&gt;&lt;p&gt;
Great marketing email I just received from Halifax bank - see the attachment above.&lt;p&gt;Dear &lt;&lt;FNAME&gt;...&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Oy Up! (or rather, not)</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p31</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p31</comments>
<guid isPermaLink="false">GLMorgUKrss31</guid>
<pubDate>Tue, 27 Nov 2007 14:48:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/31-1-oyyydown.jpg"&gt;Down boy&lt;/a&gt;&lt;p&gt;
I don't think &lt;a href="http://oyyy.co.uk/"&gt;oyyy.co.uk&lt;/a&gt; (an online technology retailer) really wants to sell anything.&lt;p&gt;Today's home page looks like this (see attachment above).&lt;p&gt;Also see a few posts down.&lt;p&gt;Edit: this seems to be the new version of their "we don't like your computer" page (see below), since in Firefox it opens fine on my computer (as a shop site!).&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Search me</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p29</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p29</comments>
<guid isPermaLink="false">GLMorgUKrss29</guid>
<pubDate>Tue, 27 Nov 2007 13:15:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/29-1-iplayerSearch.jpg"&gt;Results for 'news'&lt;/a&gt;&lt;p&gt;
This is the result (click above) of searching for 'news' today on the BBC's iplayer service.  Clicking through to the results I have no idea how Eastenders, The Armstrong &amp; Miller Show etc qualify as 'news'.&lt;p&gt;(Actually I presume the problem is that they are stemming 'news' down to 'new' - treating it as the plural of the word 'new' - and finding all programmes with 'new' anywhere in their description)&lt;p&gt;I was looking for 'Have I Got News For You', which mysteriously has not appeared on the service this week, even though every other week it has.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Run me / Don't run me</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p30</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p30</comments>
<guid isPermaLink="false">GLMorgUKrss30</guid>
<pubDate>Sun, 25 Nov 2007 00:00:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/30-1-InterestingInstaller.jpg"&gt;Install me - or don't. Whatever.&lt;/a&gt;&lt;p&gt;
Today I ran Microsoft's latest update to the .net 3.5 framework.  Look at the screenshot of the process linked to above - spot anything problematic about what it wants me to stop running?!&lt;p&gt;It also decided without asking first (and it's not the only MS installer to do this) to download all its files to the largest free device, which happened to be a large but slow removable USB drive that I had connected - not very clever.  It didn't delete them (or offer to, or even tell me what it had done) once it had finished either.&lt;p&gt;I also now have a 'stuck' .net 3.0 SP update in Windows Update that fails to install each time it tries; not surprising since it is already installed with the 3.5 update, but Windows Update somehow doesn't know this.&lt;p&gt;Finally, what is that "You can now disconnect from the internet" message doing there?  I'm not on dial-up!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>iPlay but iFail</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p28</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p28</comments>
<guid isPermaLink="false">GLMorgUKrss28</guid>
<pubDate>Sun, 18 Nov 2007 12:00:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/28-1-iplayer-FontSizes.jpg"&gt;Installer font size&lt;/a&gt; Attachment: &lt;a href="http://www.glm.org.uk/uploads/28-1-iplayer-error.jpg"&gt;iplayer errors&lt;/a&gt;&lt;p&gt;
Downloading stuff using the BBC's iplayer application to watch programmes you've missed is useful, but it's such an awful piece of software (see previous blog post).  Today it tried to expire some programmes, and each one gave a Javascript error and required the window to be closed and reopened to continue working.  Great!&lt;p&gt;Its installer also has the common fault of not taking account of users with their Windows icon or font size set to 'large' (as I have on my 1920x1200 laptop screen - a necessity!).  Not that important, but another example of the lack of care put into the whole project.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Okie dokie - Oyyy co.uk Doh! co.uk</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p27</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p27</comments>
<guid isPermaLink="false">GLMorgUKrss27</guid>
<pubDate>Sun, 18 Nov 2007 11:53:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/27-1-oyyy-co-uk.jpg"&gt;oyyy!&lt;/a&gt;&lt;p&gt;
&lt;a href="http://www.oyyy.co.uk"&gt;Oyyy.co.uk&lt;/a&gt; is an online technology shop that previously I'd found to be pretty good.  A few weeks ago oyyy.co.uk decided to install an anti-denial-of-service-attack filter on their web server which has had the effect of banning some copies of Internet Explorer from accessing the site - I'm not quite sure how or why, but I can access it from some computers here and not others.  This is quite an achievement, especially from a technology company, but must surely rank as the most brain-dead shooting yourself in the foot type of marketing ever.  The site works fine in Firefox but I didn't try that and ordered from someone else - I'm sure I'm not the only one.  An email from them told me that they ban any user that has an empty "Referrer" field in the HTTP request - which if true is insanely brain-dead - but that's not why I can't access the site so they must have truly messed things up at their end.&lt;p&gt;Click above on 'oyyy' to view an image of their homepage as viewed here, complete with spelling mistakes, typing errors, empty fields and so on.  Until I got in touch with them a while back you actually got a blank page thanks to some severly broken HTML that wouldn't render at all in Internet Explorer.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Amaz[on]ing.co.uk delivery</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p26</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p26</comments>
<guid isPermaLink="false">GLMorgUKrss26</guid>
<pubDate>Tue, 30 Oct 2007 15:14:00 GMT</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/26-1-AmazonDates.jpg"&gt;Give or take two months...&lt;/a&gt;&lt;p&gt;
Looks like Amazon aren't showing much confidence in their delivery system... look at the attached image!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>BBC iplayer service</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p25</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p25</comments>
<guid isPermaLink="false">GLMorgUKrss25</guid>
<pubDate>Sat, 27 Oct 2007 18:09:00 BST</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/25-1-nature5.jpg"&gt;The Nature of Britain - all 13 versions&lt;/a&gt;&lt;p&gt;
The BBC's iplayer programme download service might be better than nothing, but it is pretty terrible in many ways!  Titles of programmes are chopped off in the viewer, and you can only view 9 programmes at once.  They aren't sorted in any particular order, so you need to click through several pages to find what you want, and the search option doesn't work properly - try typing in "nature" or "nature of britain" or similar and you'll get 5 results; not the 13 results you should actually find if you go to Wednesday night and go through each page.&lt;p&gt;It's not even consistent what programmes appear - some days you get newsnight or newsnight review or the podcast summary of the week; usually it doesn't appear at all.&lt;p&gt;Last week the BBC's flagship 'The Nature of Britain' did not appear at all, although there were actually 13 programmes that all claimed to be "The Nature of Britain".  Some of them had "The" in front; some didn't.  Some titles had a region included (London, East, etc), and some didn't.  Some had ellipsis (...), some didn't.  For most regions the only way to find the content was to open all 12 regions and look in the download list to delete the wrong ones - the information wasn't visible until the download was started.&lt;p&gt;Programme lengths are often wrongly reported, and surprisingly seem to be manually-entered rather than computed from the video files - all 12 regions claimed to be 60 minutes long, but on download all turned out to be just 10 minutes long - &lt;i&gt;none&lt;/i&gt; of them actually had the main 50 minute programme attached, just the local regional 10-minute post-programme content.  Amazing!&lt;p&gt;Try downloading a programme you already have, and you get told "Sorry, but we are experiencing problems downloading this content.".  Very useful!&lt;p&gt;It plays a trailer before each programme you watch from a selection it downloads when you install it, but it seems to pick the region randomly, so you might get to watch a 'BBC Northern Ireland' trail in London - really it should let you set your region and then view appropriate trailers and programmes.  It's clearly broken and underdesigned.&lt;p&gt;When you start your computer and open the iplayer download window it claims it is downloading even your paused downloads - sometimes it does, sometimes it doesn't; either way it forgets the correct status and gets it wrong.&lt;p&gt;The 13th programme, by the way, was a BBC 4 follow-up show which was incorrectly labelled with the same title.  It had the picture from the main BBC 1 programme, though, confusingly.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Unannounced Paypal IPN change</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p24</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p24</comments>
<guid isPermaLink="false">GLMorgUKrss24</guid>
<pubDate>Sat, 27 Oct 2007 17:57:31 BST</pubDate>
<description>
I use Paypal's automated IPN post-back system to auto-upgrade accounts on my puzzle sites when people purchase more puzzles, but recently I had two purchases which Paypal flagged as 'INVALID' when posted back to them.  I decided this was a bit of a coincidence after years of no problems, so I decided to investigate.&lt;p&gt;Long story short, Paypal have started using backslashes to escape apostrophes in names (and no doubt other special characters too).  You now need to strip the slashes before posting back to them to verify a transaction.&lt;p&gt;Nice of them to bother telling the tens of thousands of sites that use IPN to automate the purchase process!  I should have thought there'll be a lot of Paypal-operated websites that have suddenly broken; but only occasionally when people have names with special characters in.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Companies selling your email address</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p23</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p23</comments>
<guid isPermaLink="false">GLMorgUKrss23</guid>
<pubDate>Mon, 08 Oct 2007 12:55:00 BST</pubDate>
<description>
One of the advantages of using your own domain for email is that you can, if you wish, sign up for every offer, account and mailing list at a different email address.  The advantage of doing this is that whenever you receive an unwanted email you know exactly who to blame for selling your email address!  (The disadvantage is that if you ever want to reject spam email to all unknown addresses at your domain it is a lot more work!).&lt;p&gt;For the past several months, for example, I've received regular spam advertising television sets to the address digitalradio@glm - which is ironic because this is the address I gave only to the DAB Digital Radio site at ukdigitalradio.com.  This is a site whose sole aim is to sell you digital radio.  But apparently they don't believe &lt;i&gt;that&lt;/i&gt; much in radio after all!&lt;p&gt;Sometimes it's less amusing but still revealing.  For example I just had email to airmiles@glm from a market research company for a questionnaire that is supposed to be completed without knowing what company it's for.  Er... let me guess!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Cameron facebook groups</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p22</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p22</comments>
<guid isPermaLink="false">GLMorgUKrss22</guid>
<pubDate>Wed, 03 Oct 2007 20:09:00 BST</pubDate>
<description>
The Daily Telegraph &lt;a href="http://www.telegraph.co.uk/news/main.jhtml?xml=/news/2007/10/03/ncam203.xml"&gt; has published a list&lt;/a&gt; of facebook groups about David Cameron.  The list made me laugh.&lt;p&gt;PS I'm finally back in Britain after a year away.  So maybe I'll post here more often.  Or maybe not.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Travelling...</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p21</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p21</comments>
<guid isPermaLink="false">GLMorgUKrss21</guid>
<pubDate>Fri, 24 Aug 2007 06:01:52 BST</pubDate>
<description>
Sorry for the total lack of updates for 2 months - I've been off travelling around Australia and French Polynesia, and I'm in fact currently in Papeete, Tahiti. Shortly I'm off to various places in the US for over a month, so it will be a while before I find time to post here again I think!  Also see www.killersudoku.org.uk.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Scaling HTML Killer Sudoku player</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p20</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p20</comments>
<guid isPermaLink="false">GLMorgUKrss20</guid>
<pubDate>Mon, 04 Jun 2007 16:31:00 BST</pubDate>
<description> Attachment: &lt;a href="http://www.glm.org.uk/uploads/20-1-killerSudoku.jpg"&gt;Scaling Killer Sudoku web player&lt;/a&gt;&lt;p&gt;
Maybe it's because it's tricky to get working, but my dynamically rescaling web player for sudoku, kakuro, futoshiki and so on (see &lt;a href="http://www.puzzlemix.com"&gt;www.puzzlemix.com&lt;/a&gt;) is still the only web page I've seen that works like this.  Flash websites do sometime scale in this way, but when it comes to HTML I've not seen anything else that works like this.  Ever, actually.  It's not even that a kakuro grid (&lt;a href="http://www.dokakuro.com"&gt;www.dokakuro.com&lt;/a&gt;) is simply easier to display in this way, but just I suspect that noone can be bothered.  Probably 99% of visitors to my sites don't bother resizing the window once it pops up; but I do, and I love to make it full-screen and have a giant 1920x1200 playing board!  Isn't that the sort of thing that a modern CSS web site &lt;i&gt;should&lt;/i&gt; do?  That is, to liberate you from the fixed-size fixed-grid my-way-is-the-only-way style of layout?  It's not a piece of paper but people are determined to pretend it is.  Unfortunately it's actually quite fiddly to get these things working cross-browser, but modern development environments are meant to tackle this sort of detail for you so there's not really a good excuse.&lt;p&gt;Given the already complex nature of the existing stack of CSS-positioned web page elements it was with some trepidation that I looked today at adding 'killer sudoku' dashed grid lines within the existing sudoku grid lines.  To my pleasant surprise it turned out to be perfectly doable, and the attached image is proof that it is now working - but not proof that it rescales; however I can assure you that it does!  At very large and very small sizes you can occasionally see a tiny bit (1 pixel) of disalignment in some of the vertical and horizontal dashed cages.  This minor drift is inevitable because I need to mix percentage and pixel positionings because it is the browser that does the brunt of the scaling work - I just nudge it from some Javascript to keep the aspect ratio and sidebar.  If the code had to recalculate the pixel position and width and height of every element on every resize it would collapse under its own weight - and crawl along at a very slow speed!&lt;p&gt;I'll be adding killer sudoku to puzzlemix in the next couple of days, I hope, although I'm also busy planning lots more trips away (Brisbane to near Townsville and then a separate trip to Cairns are already scheduled!).&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>RSS feed fixed</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p19</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p19</comments>
<guid isPermaLink="false">GLMorgUKrss19</guid>
<pubDate>Fri, 01 Jun 2007 18:04:00 BST</pubDate>
<description>
I hadn't noticed (until today!) but my posts from 'Adobe Creative Suites' onwards had resulted in an invalid RSS feed because for some reason I don't understand when I type a GBP symbol in Internet Explorer it submits it as character 194 (A circumflex I think) followed by a GBP sign.  Also if I use &amp;amp;nbsp; and then edit the post then Internet Explorer converts that to character 194 followed by a space.  Anyway, IE can understand this back but RSS readers (including the RSS reader in IE) can't.  And you also can't use most HTML entities in RSS so I can't convert these, so I've just deleted or swapped them to GBP instead.&lt;p&gt;So I've fixed this and now the RSS feed suddenly finds a lot of new posts!  Obviously I need some proper text handling code for my blog, but I haven't got round to that - it does some obvious filters for HTML tags and links and so on at the moment and sorts out new lines but that's pretty much all.&lt;p&gt;Actually I blame PHP. I don't think it's handling things properly.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Babylon 5: The Lost Tales</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p14</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p14</comments>
<guid isPermaLink="false">GLMorgUKrss14</guid>
<pubDate>Fri, 01 Jun 2007 13:00:00 BST</pubDate>
<description>
Back in the day I used to love &lt;i&gt;Babylon 5&lt;/i&gt;... well anyway, there's a brand new straight-to-DVD movie out on the 31st July.  The trailer appeared for it today on &lt;a href="http://www.babylon5.com"&gt;babylon5.com&lt;/a&gt;.  It probably won't be anywhere near as good as the series used to be, but it still might be fun to watch.  We'll see!&lt;p&gt;Meanwhile, today I've added jigsaw and toroidal support to my puzzlemix player - see &lt;a href="http://www.killersudoku.org.uk"&gt;killersudoku.org.uk&lt;/a&gt; for more details.&lt;p&gt;Last night I put together a WPF frontend for my Nurikabe solver which turned out to be pretty easy - just inserted some templated controls into a uniform grid and then when a KeyUp event is received I get the index into the Children list to find out which cell has been written to.  Then I just wired up part of the UI to run the solver as appropriate and set some background colours dependent on the result.  Pretty trivial and it does all the nice WPF things like scale as you resize and so on.  In fact what with going back and forth to the XAML file to make changes and accessing the named elements it was more like writing a web page than a desktop application, which feels kind of weird.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Exporting from Microsoft Money to Excel</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p13</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p13</comments>
<guid isPermaLink="false">GLMorgUKrss13</guid>
<pubDate>Thu, 31 May 2007 09:52:00 BST</pubDate>
<description>
The other day I wanted to export from Money to Excel and discovered I couldn't.  This was a bit of a problem so I wrote a Perl script to convert the QIF (Quicken import file) files that Money &lt;i&gt;can&lt;/i&gt; make to a CSV file ready for import into Excel (although I actually opted for a tab-separated file to avoid having to work out how to escape the commas in my text).&lt;p&gt;&lt;code&gt;#!/usr/bin/perl -w&lt;br&gt;$file="YourFilename";&lt;br&gt;open(IN, "C:\\Documents and Settings\\YourUser\\My Documents\\Accounts\\Money to Excel\\$file.qif");&lt;br&gt;open(OUT, "&gt;C:\\Documents and Settings\\YourUser\\My Documents\\Accounts\\Money to Excel\\$file.txt");&lt;br&gt;$date=""; $amount=""; $memo=""; $category=""; $payee=""; $split="";$cheque="";&lt;br&gt;while(&lt;IN&gt;) {&lt;br&gt;  if (/^!/ || /^\^/) {&lt;br&gt;    $date=~s/\t/ /g; $amount=~s/\t/ /g; $memo=~s/\t/ /g; $category=~s/\t/ /g; $payee=~s/\t/ /g; $split=~s/\t/ /g; $cheque=~s/\t/ /g;&lt;br&gt;    print OUT "$file\t$date\t$payee\t$category\t$memo\t$amount\t$split\t$cheque\n";&lt;br&gt;    &lt;br&gt;    $date=""; $amount=""; $memo=""; $category=""; $payee=""; $split=""; $cheque="";&lt;br&gt;  }&lt;br&gt;  elsif (/^D/) {&lt;br&gt;    if ($_!~/^D(\d+)\/(\d+)\'(\d+)$/) {&lt;br&gt;      die "Invalid date '$_'";&lt;br&gt;    }&lt;br&gt;    $date="$1/$2/$3";&lt;br&gt;  }&lt;br&gt;  elsif (/^T/) {&lt;br&gt;    if ($_!~/^T(-?(\d|,)+\.\d+)$/) {&lt;br&gt;      die "Invalid amount '$_'";&lt;br&gt;    }&lt;br&gt;    $amount = "$1";&lt;br&gt;  }&lt;br&gt;  elsif (/^M/) {&lt;br&gt;    if ($_=~/^M(.+)$/) {&lt;br&gt;      $memo = $1;&lt;br&gt;    }&lt;br&gt;  }&lt;br&gt;  elsif (/^P/) {&lt;br&gt;    if ($_!~/^P(.+)$/) {&lt;br&gt;      $payee="&lt;Missing payee&gt;";&lt;br&gt;    }&lt;br&gt;    else {&lt;br&gt;      $payee=$1;&lt;br&gt;    }&lt;br&gt;  }&lt;br&gt;  elsif (/^L/) {&lt;br&gt;    if ($_!~/^L(.+)$/) {&lt;br&gt;      $category="&lt;None&gt;";&lt;br&gt;      warn "Missing category";&lt;br&gt;    }&lt;br&gt;    else {&lt;br&gt;      $category=$1;&lt;br&gt;    }&lt;br&gt;  }&lt;br&gt;  elsif (/^S(.*)/) {&lt;br&gt;    $split.=$1." ";&lt;br&gt;  }&lt;br&gt;  elsif (/^E(.*)/) {&lt;br&gt;    $split.="($1) ";&lt;br&gt;  }&lt;br&gt;  elsif (/^\$(.+)/) {&lt;br&gt;    $split.="$1; ";&lt;br&gt;  }&lt;br&gt;  elsif (/^CX$/ || /^C\*$/) {&lt;br&gt;    #ignore this (something to do with cleared transactions I think)&lt;br&gt;  }&lt;br&gt;  elsif (/^N(.+)$/) {&lt;br&gt;    $cheque = $1;&lt;br&gt;  }&lt;br&gt;  else {&lt;br&gt;    chomp;&lt;br&gt;    die "Unknown line: '$_'\n";&lt;br&gt;  }    &lt;br&gt;}&lt;br&gt;close(IN);&lt;br&gt;close(OUT);&lt;br&gt;&lt;/code&gt;&lt;p&gt;You'll need to install &lt;a href="http://www.activestate.com/Products/ActivePerl/"&gt;ActivePerl&lt;/a&gt; (or similar) first to be able to run it.  Name the file convert.pl or similar and double-click it, having entered appropriate filenames at the top first.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>LINQ</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p12</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p12</comments>
<guid isPermaLink="false">GLMorgUKrss12</guid>
<pubDate>Thu, 31 May 2007 09:39:00 BST</pubDate>
<description>
I finally got round to looking at &lt;a href="http://msdn2.microsoft.com/en-us/netframework/aa904594.aspx"&gt;LINQ&lt;/a&gt; (Language-Integrated Query) in a bit more detail today.  LINQ is the new functional programming query syntax that's part of version 3 of the C# language and CLR.  It provides a simple way of querying a data structure, whether held natively in memory or accessed via some other method such as from an XML file or an SQL query.  For example you can write:&lt;br&gt;&lt;code&gt;var result = from p in People where p.Surname=="Moore" orderby p.FirstName select p;&lt;/code&gt;&lt;br&gt;to find all elements in the list 'People' where the Surname property equals "Moore", sorted by the FirstName property.  'var' is a C# 3 shorthand to tell the compiler to deduce the type.  As you can see, this looks very much like a backwards SQL query.&lt;p&gt;Because LINQ expressions are evaluated lazily (only when used rather than defined, and generally element by element rather than as an entire list in one go) in principle if you reference one expression within another then the compiler can optimise the query - for example with LINQ-to-SQL it might combine queries into a single SQL statement in order to minimise unnecessary transfer of data.&lt;p&gt;C#3 also includes lambda expressions, which let you write anonymous methods more compactly - you simply provide an expression in the form &lt;code&gt;x =&gt; f(x)&lt;/code&gt; and the compiler converts this behind the scenes into a method for you.  For example you could write&lt;br&gt;&lt;code&gt;List&lt;Person&gt; moores = People.FindAll(x =&gt; x.Surname=="Moore");&lt;/code&gt;&lt;br&gt;as a shortcut for an explicit anonymous delegate:&lt;br&gt;&lt;code&gt;List&lt;Person&gt; moores = People.FindAll(delegate(Person x) {return x.Surname=="Moore";});&lt;/code&gt;&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Google stuff</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p11</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p11</comments>
<guid isPermaLink="false">GLMorgUKrss11</guid>
<pubDate>Thu, 31 May 2007 09:24:55 BST</pubDate>
<description>
&lt;a href="http://editor.googlemashups.com/"&gt;Google Mashup Editor&lt;/a&gt; is Google's not-quite answer to Microsoft Popfly (see an older post).  It's not a fancy graphical environment like Popfly but an environment designed to reduce various chunks of code down to single special tags ready for use in your HTML.  It provides an auto-completing code editor and code management facilities intended to make it as easy as possible to take some data from an existing feed and 'do something with it'.&lt;p&gt;Google also announced &lt;a href="http://gearsblog.blogspot.com/"&gt;Google Gears&lt;/a&gt; today, which is an infrastructre designed to make it easier to develop AJAX websites offline.  It consists of &lt;a href="http://code.google.com/apis/gears/"&gt;three modules&lt;/a&gt; for offlining content.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Surface</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p10</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p10</comments>
<guid isPermaLink="false">GLMorgUKrss10</guid>
<pubDate>Wed, 30 May 2007 09:44:12 BST</pubDate>
<description>
Two posts in a row about new Microsoft technologies, but this one looks quite fun - &lt;a href="http://www.microsoft.com/surface/"&gt;Microsoft Surface&lt;/a&gt; is a new table-top interface designed for... well, nothing too serious based on the examples on the site.  It's effectively an embedded touch panel that can detect multiple finger (and other object) presses simultaneously, with some fancy interfaces to let you drag things around as if they were physical objects.  The videos on the site show it being used to move photos around to make a picture montage, for finger-painting, and for looking up information in a posh hotel lobby as well as (somewhat bizarrely) ordering food at a table in a restaurant without speaking to anyone.  It seems mainly to be pitched as an expensive marketing tool/gimmick rather than as a useful thing in its own right - more a conversation piece than anything else, although they claim that it will be useful for group collaboration.  It would have to be a small group to fit around a 30-inch diagonal table, however, and it's not obvious what benefits it would bring.  A predicted future use where it can detect bluetooth/wireless devices by the impression they make when placed on the table and let you drag things to a ring around them to synchronise them is shown in the videos, but it's not entirely clear what benefits this brings other than a one-off wow-factor.&lt;p&gt;So definitely fun, but not especially useful and not something I'd expect to see many places (or even anywhere) any time soon.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Popfly</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p9</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p9</comments>
<guid isPermaLink="false">GLMorgUKrss9</guid>
<pubDate>Sat, 19 May 2007 04:31:23 BST</pubDate>
<description>
&lt;a href="http://www.popfly.ms"&gt;Popfly&lt;/a&gt; is an interesting new product from Microsoft that aims to provide an easy way of building complex gadgets and applications for web pages. They're called mashups, joining together various building block elements to provide a more complex result - such as taking photos with location information from Flickr and displaying them on a map.  The decorative frontend lets you drag existing data and display blocks onto a work area and then join them with lines to show the flow of data through the system.  Quite how flexible this really is I'm not sure, but if you know what you're doing you can write your own blocks.  The system encourages you to share all your code with other users, so they're clearly hoping that all sorts of community-written blocks will become available.  Because it generates web code using a mix of Javascript, Silverlight and XML, the system also allows you to edit the Javascript code that calls the various block APIs directly, which means you can do some things that the block authors didn't provide direct support for without necessarily having to author a new block from scratch.&lt;p&gt;Popfly is currently in private alpha, which means it will be a while yet before its available for general use, but you can sign up for the waiting list if you want to try it sooner.  There's an interesting video to watch in the meantime.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>BBC News website</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p8</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p8</comments>
<guid isPermaLink="false">GLMorgUKrss8</guid>
<pubDate>Sat, 19 May 2007 04:18:46 BST</pubDate>
<description>
Once upon a time the stories on the BBC News website used to be well-written - but not any more, or in fact for quite a few years.  The usual problem is a poorly-updated article which travels back in time as you read it; so facts from the start become possibilities in the middle and then are contradicted at the bottom.  There are also frequent amusingly dumb transcriptions of what people have said by journalists who seem to have only the loosest of grasps on the English language.  Today I came across "many fold" for "manifold", but my favourite to date was the substitution of "peasant" for "pedant"!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Back from travels</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p7</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p7</comments>
<guid isPermaLink="false">GLMorgUKrss7</guid>
<pubDate>Fri, 18 May 2007 16:29:43 BST</pubDate>
<description>
Recently I've been to visit the Hunter Valley and Port Stephens; Canberra; Tasmania; South Australia; and Victoria.  All that travelling has meant no time for writing on here, so that's why it's been a bit empty - I've managed a couple of puzzles on &lt;a href="http://killersudoku.org.uk"&gt;killersudoku.org.uk&lt;/a&gt; at least, anyway!&lt;p&gt;I've been continuing to do at least some work on Windows Presentation Foundation stuff, and I've had a first look at Silverlight - previously WPF/E, or Windows Presentation Foundation Everywhere, which in a rough sort of way is an equivalent to Flash player with cross-platform (PC and Mac) support.  It supports most of the same things that WPF does but in a small download. It will be interesting to see how long it takes to build up momentum.  Currently it's only available in beta (and alpha) releases.  &lt;a href="http://www.microsoft.com/silverlight/"&gt;www.microsoft.com/silverlight&lt;/a&gt;&lt;p&gt;I've also been working on some more general-purpose Nurikabe puzzle stuff, so this should be appearing on &lt;a href="http://www.puzzlemix.com"&gt;puzzlemix&lt;/a&gt; later in the year, along with Hitori and Slitherlink puzzles.  There'll also be a much greater variety of Sudoku variants.&lt;p&gt;Meanwhile I'm already planning new trips within Australia, and looking at some of the final arrangements for my trip to Tahiti in August this year!&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>On holiday</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p6</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p6</comments>
<guid isPermaLink="false">GLMorgUKrss6</guid>
<pubDate>Thu, 12 Apr 2007 04:11:16 BST</pubDate>
<description>
I'm currently off travelling around southern Australia, so apologies for the lack of recent posts!  More in a while... :)&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>New Adobe creative suites</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p5</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p5</comments>
<guid isPermaLink="false">GLMorgUKrss5</guid>
<pubDate>Wed, 28 Mar 2007 13:24:00 BST</pubDate>
<description>
I use and have used Adobe's creative products such as Photoshop, Illustrator, Premiere, After Effects, Acrobat, InDesign and others on both a regular and occasional basis, so I'm always interested in new versions.&lt;p&gt;Today Adobe officially unveiled its &lt;a href="http://www.adobe.com/uk/creativelicense/"&gt;new line-up of creative suites&lt;/a&gt;, with a range of 6 product compilations replacing the previous Adobe Production Studio and Adobe Creative Suite packages.  They claim much better integration between different software packages now, but then they've claimed this with previous versions too so it will be interesting to see what has changed.   Including VAT, Creative Suite 3 Design Premium is GBP1655, whilst Web Premium is GBP1404 and Production Premium is GBP1655.  There's also a new Master Collection which contains the Web Premium, Design Premium and Production Premium collections for  GBP2313.&lt;p&gt;Previously the video/production bundle was always available in two versions, one of which had After Effects in its fancier Professional version and which used to cost about GBP500 extra.   Adobe don't list a lesser version on their web site right now, but maybe it will arrive in due course, although After Effects CS3 is listed only in a Professional version (at GBP1075) so maybe it has been dropped.  However they do list lesser Standard versions of the Web and Creative suites, at GBP828 and GBP1051 respectively.  Web Standard omits Photoshop, Illustrator and Acrobat, whilst Design Standard leaves out Flash and Dreamweaver. &lt;p&gt;Photoshop CS3 is now available in two versions - the standard version (GBP570) and Photoshop CS3 Extended (GBP887), which as self-explanatory names goes isn't particularly helpful.  The difference is the inclusion of support for 3D elements in scenes.  Adobe claim this makes it ideal both for video work and for serious engineering and science work, although it'll be interesting to see if this really takes off outside video and film.&lt;p&gt;Adobe don't make it very easy to compare all the versions side-by-side on their website, but this is probably deliberate - it seems clear that the whole process is designed to steer you into buying the Master collection with all the software.  At just over twice the price of After Effects CS3 Professional alone, you get all the software from all three separate Premium bundles.  The Design Standard page in the Adobe store doesn't even bother telling you what's different about Design Premium - it just encourages you to buy that instead.  And then that encourages you to buy the Master collection.&lt;p&gt;As usual this software all costs much less if you are in the US and not the UK!  The Master collection is $2499, or GBP1271 at today's exchange rate.  That makes it &lt;b&gt;more than GBP1000&lt;/b&gt; less!  The UK price I quoted includes VAT whilst the US price doesn't include sales tax (and nor will it, if you buy it in the right state), but even if you take the VAT off the UK price it's still GBP700 more expensive in the UK, which is simply ridiculous.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Updating parent browser windows in Javascript</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p4</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p4</comments>
<guid isPermaLink="false">GLMorgUKrss4</guid>
<pubDate>Tue, 27 Mar 2007 11:53:00 BST</pubDate>
<description>
I've spent much of the day working on my &lt;a href="http://www.puzzlemix.com"&gt;puzzlemix.com&lt;/a&gt; site in order to finally add in the account code that was missing so that you can play puzzles on there.  Ironically the site has been 'almost complete' since before Christmas but I got fed up with working on it for a while so I took a break.  Now with my new blog system I felt inspired to pick up the PHP, CSS, HTML and Javascript hammer again.&lt;p&gt;One of the problems I had was when adding a comments page.  Normally when you click to play a puzzle the puzzle updates the parent (opener) window when something significant happens, or more specifically something that updates the puzzle state as displayed in the puzzle selector (i.e. parent) window.  That's great, but when viewing my new puzzle comments page I didn't want this to happen because it meant the comments vanished.&lt;p&gt;It wasn't very hard to fix but it took me a few minutes to realise I needed to use &lt;code&gt;String()&lt;/code&gt; to convert the window opener property to a proper string before I could use a string method on it.  That's the trouble with a language like javascript that does silent type conversion - it can be very confusing when the silent type conversion &lt;i&gt;doesn't&lt;/i&gt; take place!&lt;p&gt;So my code looks like this now:&lt;br&gt;&lt;code&gt;if (window.opener &amp;&amp; !window.opener.closed &amp;&amp; String(window.opener.location).indexOf("menu")!=-1) window.opener.location='menu.php?sc='+opener.document.body.scrollTop;&lt;/code&gt;&lt;p&gt;It checks to see if 'menu' is in the URL of the parent before reloading it.  The scrollTop property is read and then sent in the variable 'sc' to ensure the window doesn't scroll.  This uses some PHP to insert Javascript that scrolls the parent back down to where it was.  It could perhaps simply wait a bit and then do it itself from the child, but that's not as good a solution because there might be a pause when the page is visible before it scrolls.&lt;p&gt;Maybe this seems unimportant, but when you start opening multiple windows in HTML you run the risk of out-of-date information confusing the user.  On the other hand you don't want pages to continually refresh by themselves because quite apart from causing extra bandwidth you run the risk the user was reading the page at the time it went to reload.  You could use dynamic AJAX techniques to do this in the background and only refresh the relevant components once ready, but then you end up with overhead you don't really need which might just lead to more problems.  You also still potentially have bandwidth issues if a lot of data needs to update.  Doing it when it's needed from the child window is probably the best solution.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Accessing named template elements in WPF</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p3</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p3</comments>
<guid isPermaLink="false">GLMorgUKrss3</guid>
<pubDate>Tue, 27 Mar 2007 06:23:00 BST</pubDate>
<description>
In WPF you can name elements for easy reference from other elements or from your program.  You normally find an element by calling &lt;code&gt;FindName(name)&lt;/code&gt;, but if you are trying to access a named element of a template then you need to specify which instantiation of the template you are looking for the element in.  This is because the template can be applied more than once and each instance has its own implicit namespace.  You need syntax like this: &lt;code&gt;Label label = mybutton.Template.FindName("pmark", mybutton) as Label;&lt;/code&gt; in order to find the named label element 'pmark' inside the mybutton object.  The 'as Label' simply casts the result to a Label.  The &lt;code&gt;Template&lt;/code&gt; property identifies the template for the mybutton object, and then you just call the &lt;code&gt;FindName&lt;/code&gt; method inherited from the FrameworkTemplate class to get the named element.&lt;p&gt;Now this is great but note that there is an important gotcha.  If you try and access the named element before the object the template is attached to has been properly processed then you will simply get a null reference.  For example if you put this code in your application's initialisation sequence:&lt;br&gt;&lt;code&gt;// Add a templated button&lt;br&gt;but = new Button();&lt;br&gt;but.Template = (ControlTemplate)GameGrid.Resources["SudokuValue"];&lt;br&gt;GameGrid.Children.Add(but);&lt;/code&gt;&lt;p&gt;&lt;code&gt;// Now try and access a named part of that template&lt;br&gt;Label a = (Label) but.Template.FindName("pencilmark1", but);&lt;br&gt;if (a == null) MessageBox.Show("Null");&lt;/code&gt;&lt;br&gt;...then you will find that 'Null' is displayed.  (SudokuValue is simply the key assigned to the template in the resources section of the element that GameGrid references).&lt;p&gt;It took me a while to realise that this wasn't working not because I misunderstood how to use FindName but simply because the template wasn't yet ready to be accessed in this way.  My solution to this was to wait until the window's Loaded event fired and to access the named template elements there, but I wondered what the real situation was.  I wrote to the Microsoft WPF blog people and asked about this and was very impressed to receive a response back within a single working day that explained: "WPF will wait until elements are needed in a measure pass. That way, if the element isn't actually visually connected or not processed by layout, extra elements are instantiated. You could wait until after (or during) layout. The Loaded event occurs after layout, so that is a reasonable place. You could also call ApplyTemplate to instantiate a template's visual tree before it is automatically done in a layout measure pass."&lt;p&gt;I figured it was something like that, but it's good to have an understanding of what precisely is going on.  That's one of the learning-curve problems with systems with lots of complex dependencies like WPF that queue and process work across multiple threads and via time-sliced event handling - at some point you need to understand at least the basics of how it's all implemented in order to work out why certain things don't (and do!) work.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Windows Presentation Foundation (WPF)</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p2</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p2</comments>
<guid isPermaLink="false">GLMorgUKrss2</guid>
<pubDate>Tue, 27 Mar 2007 05:31:00 BST</pubDate>
<description>
I've recently been learning Windows Presentation Foundation (WPF).  This is a new user interface technology supplied as standard with Windows Vista but also available for Windows XP SP2 and Windows Server 2003.  It combines a XML markup language called XAML with a programmatic backend, although it is possible to write applications that use only pure XAML because the system exposes various tags and elements that let you define an application and link elements together in pure markup.  Creating an application or form in XAML is a little like writing a web page in HTML, although parts of it are designed more for being created from design utilities such as Microsoft's Expression Blend than by being typed out by hand.&lt;p&gt;Amongst the many nice features of this system are the intrinsic ability for everything to rescale to fit the space available in a window or object, and built-in support for automatically-triggered animations and events.  The display is drawn in a similar way to a vector-drawing program like Adobe Illustrator might create an image, with objects layered on objects or nested within one another.  It is possible for the user interface design to be created separately from the program code, and because it is highly flexible you can make your application's appearance as non-standard as you like.  Whether that's a good thing or not is another question, but at the very least it makes it simple to implement animated elements such as tabs sliding in and out or buttons depressing smoothly.  It also makes it easy to have elements of the interface react as the context changes or the mouse passes over them, for example to provide hints to the user as to which parts are active or to easily hide unwanted parts of the interface.  Plus because pretty much anything can be nested inside anything, you can easily create reflections and other graphical effects that would otherwise need some fairly low-level programming to implement efficiently enough.&lt;p&gt;Talking of efficiency, it's a good idea to have at least some appreciation of how the whole thing works in order to understand what is a good idea and what isn't in terms of making your program run at an acceptable speed.  The system uses DirectX to render its surfaces which should mean that most graphical things are massively faster than using the previous GDI/GDI+ techniques, but it's perhaps a little easy to take this flexibility too far and not understand what is still effectively rendered in software.  It does mean you can incorporate 3D elements into your design, but this is still at least a little technical and there is no built-in support to interact directly with 3D surfaces by clicking on them.&lt;p&gt;One of the things you can do in WPF is to create styles and templates which you can then re-use.  This means that you can define for example a set of properties for a button (background colour, text properties and so on) in a single style and then simply apply that style to whatever buttons you choose, a bit like CSS (cascading style sheets) in HTML.  You can also create templates, which replace the entire visual tree for an element - this means you can make your button look like a picture with a spinning ellipse in the middle which embeds a set of radio icons (if you choose!).  Then every time you apply that template your button will look the same way.&lt;p&gt;I've been writing a Sudoku player application in order to help me learn WPF, and most of the time is spent working out how to do something with WPF - the actual logic and amount of code that's necessary is pretty small.  There's usually several different ways of achieving something in WPF, but I want to try and work out the 'best' way of doing most things.  I'm intending to write about some of the problems (and whether I solve them or not!) on this blog.&lt;hr style="clear: all"&gt;
</description>
</item>

<item>
<title>Welcome to glm.org.uk</title>
<author>Gareth Moore</author>
<link>http://www.glm.org.uk/index.php#p1</link>
<category>WPF</category>
<comments>http://www.glm.org.uk/index.php#p1</comments>
<guid isPermaLink="false">GLMorgUKrss1</guid>
<pubDate>Tue, 27 Mar 2007 03:20:43 BST</pubDate>
<description>
I've thought for a while it would be useful to write down a few things every now and then, but I somehow never get round to it.  So I decided it was finally time to do something about it and start a blog.  This way (I figure) because it's public it will encourage me to keep it up to date.  Or something like that anyway.&lt;p&gt;I'm using the blog software I wrote for &lt;a href="http://www.killersudoku.org.uk"&gt;killersudoku.org.uk&lt;/a&gt; so maybe I'll make some improvements to that as I go too.  For a start I need to implement archiving of old posts now that the &lt;a href="http://www.killersudoku.org.uk"&gt;front page&lt;/a&gt; has got a bit full.&lt;p&gt;You can subscribe via the RSS feed that will light up in Internet Explorer and Firefox and probably some other browsers too.  Subscribing just means that your browser can let you know when some new pearl of wisdom has appeared here.  Or more specifically, that I've posted something.  It can't tell you how wise it is.  (But I can: very wise. Probably).&lt;p&gt;Let the fun[*] begin.&lt;p&gt;&lt;br&gt;Gareth&lt;p&gt;[*] Not guaranteed.&lt;hr style="clear: all"&gt;
</description>
</item>

</channel>
</rss>
