Category Archives: blog

Internationalizing a Roller Weblogger based Blog

So I’ve been spending time lately providing better international support to the blog.

In fact check out the variants I’ve put together:

For the translator I used the Yahoo Babelfish translation service, rather than Google Translate (which I use to produce on demand translations of the site, at the time of posting this it should be at the top of the right hand sidebar), because I didn’t want to become tied in to a single Translation Service Supplier.

During translation I switched to using “blog” rather than “weblog” for the title, as many of the languages would translate blog but not weblog (possibly a weakness of the translation service).

I was alluding to the new multi-language pages and the new multi-lingual nature of the blog in the post on St. Patrick’s Day, however I’d only translated some of the posts, not internationalised the site itself, and so it wasn’t really time to go live, but I did want the posts to start being spidered (and the post “Weblog language translator – blog translation on the fly with Roller specific functionality” explains why).

iron l10n zion – or how I did it…

There are a number of ways to internationalize a blog running over Roller Weblogger, for instance at the Aquarium, another Sun Blog, they use multiple blogs instances, like the Japanese Aquarium, I didn’t go for this approach as I wanted to keep to a single blog instance (due to maintainability basically).

I approached the problem by having a language resource file which loads as the session begins based upon the locale determined in the URL.

At run time this is done dynamically like this:

  1. Decide which locale the user is loading the page from
  2. Load the language specific resource file / pack (from a repository of language resource files, of which there is one resource file / pack per language)
  3. Variables are already allocated and populated with language specific data
  4. Use the above variables throughout the Roller Weblogger template code (HTML mainly) to create the page
  5. Present the page to the user requesting it

A number of language resource files were needed, all of which I populated with text based named variables (obviously the name of the variable stays the same, just the content per language resource file is different).

Then I replaced all the specific uses of text across my roller templates with calls to those variables.

This is a code snippet example of the code which decides which language resource file to load, and yes, before you say it, it’s not aesthetically pleasing, but I’m the only person who’ll be debugging it, so I’ll let myself off on that one. As you can see it checks which locale the page is being called from (based on the URL, but you can’t see that bit), once it finds a positive it loads the language specific resource file (notice I also ensure to load a default at the end if a match can’t be found).





  #if ($model.locale == "en")





      #includeTemplate($model.weblog "_lang_en")





  #elseif ($model.locale == "zh")





      #includeTemplate($model.weblog "_lang_zh")





  #else





      #includeTemplate($model.weblog "_lang_en")





  #end




And here’s an example of a specific language resource file, in this case this is the start of “_lang_de”, one of the files that would have been loaded based on the logic in the above piece. As you can see it has my (string) variables allocated and populated.





  #set ($gtTitle = "Blog Wayne-Horkans: eklektisch")





  #set ($gtMostPopTags = "Die meisten populären Umbauten")





  #set ($gtSitePrefs = "Aufstellungsort-Präferenzen")




Here’s an example use of the $gtTitle (string) variable from above within the Roller Weblogger template, which Roller builds dynamically at run time, obviously if the page was being


  $gtTitle

Probably the worst part of this was being adversely effected by Roller timezone and localization sensitivity issues as documented in ROL-1337 “all components involved in weblog rendering need to be locale & timezone sensitive”.

For instance when generating blog specific URLs in my templates, not all of the Roller Weblogger functions, macros and variables are timezone / localisation safe, and so for a number of them I’ve had to step though the templates modding the code to be timezone and localization safe as I go.

This meant that I had to bodge parts of the code with temporary ‘fixes’ to make up for the incomplete coverage, but it will do for now.

A couple of the most obvious issues was one with dates, as “$utils.formatDate” only produces day and month names in English, and another with “$entry.permalink” as it produces a non-locale specific URL





  ## Replaced instances of $entry.permalink with $entryLSP (Locale Specific Permalink)


  #set ($entryLSP = 

  "http://blogs.sun.com/eclectic/$model.locale/entry/$utilities.encode($entry.anchor)")




I may also have to write alternate macros which are locale specific, including the one that generates a list of recent entries:





  #set ($rEntries = $model.weblog.getRecentWeblogEntries($chosenCat, $rEntriesTotal)) 




  ## Have to use this as locale settings don't yet effect "getRecentWeblogEntries"


  #showWeblogEntryLinksList($rEntries)




I don’t want to give the impression that non of the Roller Weblogger timezone / locale specfic functionality works. In fact a lot more than I assumed would, did. Including the menu (content) functions and Tag URL functions, and I was very pleased that there was the level of support in Roller that there is for internationalization.

I’ll be providing more multi-lingual content, specifically the content rich, article like posts I’ve been doing, so far I’ve translated three posts of this ilk:

Ouch !

So I went and asked one of my friends at work what they thought of my blog, and after sending the following reply they asked me if I’d be posting it (albeit anonymously the little scamp !). ….. 1 Trackback

You really know you’re using software heavily…

…when you’re raising bugs against it.

So my first Roller Weblogger bug, ROL-1667 or, rather, “Date URLs incorrectly use updateTime to sort entries“.

Basically the get entries pager is selecting entries based upon ‘Updated Date’ and not ‘Published Date’, so accessing entries via entry date, which you’d assume would use ‘Published Date’ actually displays them based upon ‘Updated Date’.

This effects all date based blog entry selections, so access via date string based URLs or via the Calendar (either large or small variant, whose selections resolve to date based URLs) are all effected too.

Thankfully Dave raised it for me on the roller bug traq site, although I’ve since created my own account too.

Given the Open Source paradigm, I’ve decided to try and contribute directly and fix it myself, if no one gets to it before me that is.

Dave was kind enough to give me the following advice re: contributing to Roller:

I usually point potential contributors to this: http://cwiki.apache.org/confluence/x/2hsB

You can also contribute by telling us where our wiki and docs need improvement.

– Dave

During our email exchange about the bug I also asked Dave about overriding existing macros, especially the macro code for things like get weblog entries (the paging macro getWeblogEntriesPager) and the large calendar (or hCalendarTableBig as it’s also known).

He gave me the following advice:

Two places to look for additional info on macro coding:

1) Template Author Guide (get it here: http://roller.apache.org/download.cgi)
Lists all models, macros and shows HTML generated by each.

2) weblog.vm (http://tinyurl.com/yuwfvu)
Source code for all of the Roller macros.

– Dave

I found this bug whilst doing some template enhancements, around differing content per category, which once this bug is fixed I hope to implement. It showed up because of the tag policy I had implemented, and subsequently had a large number of blog entries which had been updated.

First time at #1 most popular blogs on http://blogs.sun.com

Cripes !“, as seemingly countless British comic book characters have said over the last century, I appear to have got the most popular blog on http://blogs.sun.com for the first time ever in my blogging lifetime.

Let’s hope it’s because of interest in the talk and presentation I’m giving on “Case Studies of Enterprise Architecture” this coming Monday (which I reported a couple of days ago) and not because it’s a slow news day at Sun…

I was pleasantly surprised to find I’d made #1 most popular blog on our collective blog server after finishing off some work tonight (ah, I hear you think, the shear excitement of weekend work).

Here’s the screen grab – which as you can guess I’m kind of proud of (third column along: “Popular Blogs” – lol).

Screen Grab taken on the 16th of February, 2008, at 19:47

Since writing this entry marking this landmark (sic) I’m even more surprised to find that I’m the victim (or is that ‘lucky winner’ ?) of comment spam. Although I’ve also noticed that they stopped at adding comments on my blog entry about Tom Hanks being a Villa Fan and so, in the style of one of the Catherine Tate sketches doing the rounds “the dirty, Villa dodging… ” (expletive optional).

I’ll do some analysis of the comments as I’m not sure yet whether to moderate (basically delete) them, it’ll be my first time at that too.

And to think that I didn’t even have to hold Frank Zappa over my face to get all these page hits (although I hope to join in the ‘sleeveface’ phenomenon as soon as I can find where I’ve buried the last of my vinyl).

Links for DD-MM-YYYY Not Likely

A response to Alec Muffett‘s recent post “A disappointed (occasional) reader…” on his excellent blog.

I’m sure Alec won’t mind me having posted the following comment in response to his article:

Hi Alec,

Although I sympathise, especially as a fellow ‘blog writer it appears one has to produce a very regular cadence to ensure continued, and growing, readership, I have to agree with your reader, mentioned above.

The fashion for producing a blog post which is simply titled “Links for DD-MM-YYYY” and contains nothing but links is becoming ubiquitous – and even sadder is in full sway across blogs.sun.com.

Like anyone I like to see interesting sites and links, however I go to blogs to read blogs, to gather opinion, see what peeps are chatting about, etc., etc., not to checkout someone else’s bookmarks.

I believe that one has to think very hard about what blog postings are for, and if indeed “Links for DD-MM-YYYY” type postings are an adequate and appropriate mechanism for sharing bookmarks with one’s readers.

Personally I feel that links, and bookmarks, are acceptable if introduced to the readers during a posting (or even as reference at the end of a posting), for me there has to be some posting ‘meat’ to go with my ‘link’ vegetables (terrible analogy, but it won’t be the worst thing you’ve forgiven me of).

However I suspect that whilst the “Links for DD-MM-YYYY” helps to produce a regular cadence, and continued readership, it will sustain it’s use as a blog posting across the blogosphere.

And for the record I really like your blog, as you can probably guess from the number of comments I keep leaving.

All the best, Happy New Year, etc.,

Wayne

I’ll be trying my best to avoid using blog posts as bookmark aggregators, but this is a personal decision, and each to their own.

To back up my assertion that the “Links for DD-MM-YYYY” type posts have become a staple at blogs.sun.com checkout this link to blogs.sun.com’s search facility, as of today it returns 1,092 results for posts which include “Links for”.

In fact, given the number of people writing these types of posts, perhaps that’s where I’m going wrong… :-)

Tic, Tag, Toe

Or rather “tagging, tags, and blog tag policy” or even “what’s the best / most optimal tag nomenclature / syntax”. After redesigning the blog interface I decided to start to rationalise my tags – and to institute a ‘tag policy’.

Tag Policy

  1. Use “-” to delimit multi-word tags
  2. Use all lower case characters

But “Why ?”

For a long time I had been using the “+” symbol to link multi-word tags, but I found that Google Translate (which I use for the language translation capability, up on the top right of the page if you’re reading the blog at http://blogs.sun.com/eclectic/) was having problems processing URL’s which contain “+” or “%2B”.

Here’s a little table I whipped up documenting the issues I was coming up against using multi-word tags, after trying out a number of delimiters, not just “+”, against a variety of technology.

Delimiters tested were: “+”, “%2B”, “_”, ” “, “%20” and “-“. Sites / technology tested were: Roller Blogger (4.0-dev, the version we currently run http://blogs.sun.com on), Google Translate, Google Search, Technorati, Del.icio.us and Slynker.

“+” (plus sign) “%2B” (encoded plus sign) “_” (underscore character)
Roller Weblogger 4.0-dev Will save and retrieve posts which use tags with “+” in the editor
Will not resolve tags URL which use “+” (actually the main site will, but individual blogs can’t)
Will save and retrieve posts which use tags with “%2B” in the editor
Will resolve tags URL which use “%2B”
Will save and retrieve posts which use tags with “_” in the editor
Will resolve tags URL which use “_”
Google Search Will search and retrieve multi-word tags as they are written, i.e. with the “+”, search produces a small number of results because of the infrequency of using “+” to separate written words Will search and retrieve multi-word tags as they are written, i.e. with the “%2B”, search produces a small number of results because of the infrequency of using “%2B” to separate written words Will search and retrieve multi-word tags as they are written, i.e. with the “_”, search produces a small number of results because of the infrequency of using “_” to separate written words
Google Translate Attempts to resolve tags URL which use “+”, encoding the URL to use “%2B” instead (which Roller can serve, see above), then promptly fails Fails to resolve the correct URL to translate using “%2B” Resolves tags URL which use “_” and continues to translate them successfully
Technorati Resolves tag URLs which use “+” correctly
Replaces the “+” with ” ” and produces good results based upon that
Resolves tag URLs which use “%2B” correctly
Replaces “%2B” with ” ” and produces good results based upon that
Resolves tag URLs which use “_” correctly
Produces smaller, but not unreasonable, results, due of the infrequency of using “_” to separate written words
Del.iciou.ois Resolves tag URLs which use “+” correctly
Produces results based upon using “+”
Resolves tag URLs which use “%2B” correctly
Replaces “%2B” with “+” and produces results based upon using “+”
Resolves tag URLs which use “+” correctly
Produces results based upon using “+”
Slynker Fails to resolve “+”
Produces no results
Attempts to resolve tags URL which use “%2B”, encoding the URL to use “%252B” instead
Produces results based upon using “+”
Resolves tag URLs which use “_” correctly
Produces results based upon using “_”
” ” (space) “%20” (encoded space) “-” (minus sign)
Roller Weblogger 4.0-dev Will save posts which use tags with ” ” in the editor
Will not retrieve posts which use tags with ” ” in the editor, instead it separates the words, retrieving them all in alphabetical order
Will resolve tags URL which use ” “, encoding the URL to use “%20” instead
Will save and retrieve posts which use tags with “%20” in the editor
Will resolve tags URL which use “%20”
Will save and retrieve posts which use tags with “-” in the editor
Will resolve tags URL which use “-“
Google Search Will search and retrieve multi-word tags as they are written, i.e. with the ” “, search produces a large number of results Will search and retrieve multi-word tags as they are written, i.e. with the “%20”, search produces a small number of results because of the infrequency of using “%20” to separate written words Will search and retrieve multi-word tags as they are written, i.e. with the “-“, and will replace the “-” with ” ” as well, thus retrieving the most amount of related information
Google Translate Attempts to resolve tags URL which use ” “, encoding the URL to use “%20” instead (which Roller can serve, see above), then promptly fails Fails to resolve the correct URL to translate using “%20” Resolves tags URL which use “-” and continues to translate them successfully
Technorati Resolves tag URLs which use ” ” correctly, after re-encoding the URL with “%20”
Produces good results based upon using ” “
Resolves tag URLs which use “%20” correctly, replaces the “%20″ with ” ” and produces good results based upon that Resolves tag URLs which use “-” correctly
Produces smaller, but not unreasonable, results, due of the infrequency of using “-” to separate written words
Del.iciou.ois Resolves tag URLs which use ” ” correctly, after re-encoding the URL with “%20”
Produces results based upon using ” “
Resolves tag URLs which use “%20” correctly
Replaces “%20″ with ” ” and produces results based upon using ” “
Resolves tag URLs which use “-” correctly
Produces results based upon using “-“
Slynker Attempts to resolve tags URL which use ” “, encoding the URL to use “%20” instead
Produces results based upon using ” “
Resolves tag URLs which use “%20” correctly
Replaces “%20″ with ” ” and produces results based upon using ” “
Resolves tag URLs which use “_” correctly
Produces results based upon using “_”

As you’ve probably surmised by now the issue is actually about the convergence of two technologies, and the incompatibilities they currently have. Principally that of tagging blog posts (and other stuff too) and that of URL encoding. It is not due to the limitations differing web1.0 and web2.0 platforms have around tag syntax, specifically multi-word tags, but of the correct adherence of these platforms in there support of RFC 1738: Uniform Resource Locators (URL) specification.

The problem is that tagging generally uses a relatively free form syntax (driven mainly by the communities which use and propagate said tag nomenclature, or “Folksonomy”), when and where possible, but that URL encoding has a variety of reserved characters, which conflict with the characters used in tags.

Characters for special use in defining URL syntax include the following “Reserved Characters”, and should be encoded where possible (although as the data in the tables above prove even the encoded URLs fail to produce the expected, or required, results).

Character Hex Dec
 “$” (the dollar sign)
“&” (ampersand symbol)
“+” (plus sign)
“,” (comma symbol)
“/” (forward slash)
24
26
2B
2C
2F
36
38
43
44
47
Character Hex Dec
 “:” (the colon)
“;” (the semi-colon)
“=” (equal sign)
“?” (the question mark)
“@” (the ‘at’ symbol)
3A
3B
3D
3F
40
58
59
61
63
64

Given that the above are “Reserved Characters” when it comes to URL encoding, and that they include some of the most popular delimiters used by multi-word tags (specifically “+” which is used a great deal, especially on Technorati). And, as I have found in the investigation above, have a number of issues in being used both in multi-word tags and in URL encoding, I have decided to standardise on “-” as the multi-word tag delimiter of choice.

For me it has a number of advantages:

  1. saved and retrieved correctly in tags in the Roller edit post page
  2. the URL is encoded correctly in Roller too
  3. it resolves correctly whilst using Google Translate
  4. it returns all search results for both “-” and ” ” in Google Search – an unexpected bonus, in terms of returning search results (and thus being included in said search results)
  5. it returns reasonable results from Technorati, based upon “-“
  6. it returns reasonable results from Del.icio.us, based upon “-“
  7. it returns reasonable results from Slynker, based upon “-“

As to the issue of upper versus lower case, I have standardised on all lower case, as this has little effect in searches (outside of Technorati, which returns slightly differing results, albeit with a low delta between the results returned).

You may be able to see that I have started to retroactively replace the tags so far created with this new standard – however I have focused on the most popular tags for the time being, and I will continue to use this format from now on.

I found this article on “URL Encoding (or: ‘What are those “%20″ codes in URLs?’)” provided a nice overview of the issues of URL encoding, and of RFC 1738 itself.

Out with the old, in with the new – blog design that is…

Given I’ve just redesigned the site, I thought it would be nice to keep a visual comparison of the old 2007 look and feel versus the new 2008 blog interface and design.

Sadly image rendering in IE and Firefox lags behind that of Opera and Safari (the four browsers I review the site with), so these images may be a little ‘out of focus’. If that’s the case for you please get back to me and I’ll see if I can do anymore to improve the issue, prior to the two ‘largest by volume of users’ browsers catching up of course.

Example 1: UK Government G2G Messaging Sub-Systems

2007 version

2008 version

Example 2: Messaging Sub-Systems in the UK Government

2007 version

2008 version

Example 4: Evolution of UK Government Messaging Systems

2007 version

2008 version

Radical Alex Cox ‘Repo Man’ inspired weblog redesign

Thanks to Alex Cox I’ve radically redesigned my ‘blog inspired by the product branding used in his seminal 1984 film ‘Repo Man’.

Written and directed by Alex, with the ex-Monkee Michael Nesmith as Executive Producer, Repo Man stars Emilio Estevez and Harry Dean Stanton as repossession agents on the trail of missing car with a little extra in the boot (a stolen ‘nuke). It’s a satirical and surreal comedy, widely seen as one of the first truly independent movies (along with it’s stable mate, the excellent ‘Rumble Fish’). It has a great, mainly Punk, soundtrack, including Black Flag’s ‘TV Party’, and songs performed by Iggy Pop, Suicidal Tendencies, The Circle Jerks, The Plugz, Burning Sensations, Fear and Juicy Bananas.

I was really struck by the product branding used in Repo Man – it’s pure and simple function over the aesthetic (with a good dollop of humorous irony thrown in for good measure).

After writing to Alex to ask his permission to use the branding as the basis of the look and feel of the site I was very happy to receive a reply (in quick order too).

Here’s Alex’s response:

You’re welcome to use that look.

It was originally the brainchild of Ralphs Supermarket in Los Angeles, who gave us all their generic stuff. The only labels we had to make said Drink and Food.

John Lydon also used it for his PIL album, ALBUM aka CASSETTE.

So you are in good company!

All best

Alex

Permanent US bases in Iraq? Afraid so.

http://www.alexcox.com/ed_current.htm

I was really pleased about getting a reply as I’m a big fan of Alex, and of his work, and not just because he does the best Jimmy Carl Black impression I’ve ever seen.

As Alex rightly points out the look and feel was later used by John Lydon’s post Sex Pistols / Post Punk band Public Image Limited for their generic release, called ‘Compact Disc’ or ‘Album’ or ‘Cassette’ depending on the format (the branding extended to the singles released, the promotional materials, and the merchandising too).

There are other people for me to thank for different elements of the new look and feel, and of especial mention is Dave Johnson.

For those of you who don’t know Dave, he is the creator and driving force behind the Roller Weblogger (now a project in the Apache Software Foundation) used at Sun Microsystems as it’s ‘blogging platform of choice (it powers blogs.sun.com), as well as being a fellow Sun employee.

Whilst recently reading Dave’s blog I had an idea that the colour scheme and basic layout he used would be a near perfect springboard for the ideas I had around using the product branding used in Repo Man as the basis for my sites look and feel redesign.

Thanks to Dave, or rather his blog I’ve rebuilt the basic layout of this site, incorporating the Repo Man inspired look and feel. To properly credit Dave I added “Derived: Dave Johnson’s Rollerblogger blog CSS” to the header of my CSS file.

Additionally theres a few more people to thank including www.khmerang.com, who’s post on ‘Real World Bar Graphs (with some CSS)’ helped my develop the Tag Pareto / Bar Graph, which I’m using as a page leader rather than the ubiquitous Tag Cloud (although there is an obligatory Tag Cloud on my archives page).

Then there’s blogs.sun.com/junkfood, who’s multiple posts on Roller Hacking, specifically ‘Roller: Re-ordering the Category Bar’ helped me develop the code for sorting the Tag’s by frequency.

That then led my to develop two other new pieces of functionality using Roller’s in built template scripting language ‘velocity’.

Firstly a new menu which incorporates both the page menu functionality and the category menu functionality – it’s included in the banner at the top of the page.

Secondly a new recent posts menu which both adapts to the currently chosen category and instead of linking to the individual page for an entry it instead links to an anchor on the page of the main blog (also current category dependent). The advantage here is that the reader still has the choice of reading posts around the target post – if they attract the eye

I also have to thank the friends and colleagues who read reviewed my blog. A constant theme that came out in the comments made by them that the nature of the site was too diverse. Amusingly Walter Milner had this to say, which I thought was the most succinct (and most humorous):

So relating to blogging – we have multiple aspects of our personalities, and I suspect that if you mix them on the same ‘channel’ you construct a confused message. One aspect is working at Sun/programming in C/PRINCE, another is a bizarre experience of a walk-on role in ‘The Birds’. I think you should separate them.

And why have you got some 5 channel paper tape as your banner? ;-)

However many of the reviewers wanted different things from my blog. Family (and some friends) generally wanted light fluffy stuff, like what’s going on at home, and what music am I listening to. Work friends generally wanted Sun Microsystems specific content. Whilst friends I had made in the IT Industry generally wanted generic technology information and opinion. Personally I also wanted to be able to blog about contemporary issues and news, in fact to use my blog as a diary of the significant events occurring around me.

In an attempt to reach a compromise I ratiionalised my blog categories, ‘boiling’ them down to only four categories (not including root, or ‘All’, which makes five). The four are: (1) Home – personal stuff, what record I’m listening too, etc., (2) Life – contemporary news, etc., (3) Tech – from micro IT to macro IT, technology and the technology industry, and (4) Work – stuff about Sun Microsystems, etc.

I’m hoping that by simplifying the categories down to four core areas, and by providing category specific functionality (now and more in the future), it will be easier for readers of this blog to navigate and find the stories and information pertinent to them.

And for those of you who haven’t seen Repo Man, obviously I recommend seeing it, and here’s a link to the theatrical trailer (hosted over at YouTube) for you to either get a ‘taster’ of the film, or remind yourself of it. In one scene in the trailer you can briefly see Emilio Estevez, as ‘Otto’, eating out of a can simply labeled ‘food’ – wonderful.

Link to above clip: http://www.youtube.com/watch?v=554AX4l1tmw

Relevant links:

Weblog language translator – blog translation on the fly with Roller specific functionality

Finally got round to upgrading my ‘Weblog language translator‘ from beta.

Key to improving it was removing the roll over based banner I had implemented (the Google translation service, which I piggy-back off of, only translates circa 3k characters, so the banner header, full of links was using up the majority of the translation).

Obviously this points out a few of the flaws of the implementation, namely reliance on Google to provide the service (and of course a dependency on the call syntax not changing), and all of the weaknesses that follow on from relying on the Google service, not least the translatable character limit.

This time round I’m much happier with the implementation – and I’ve done a fair bit of testing to ensure it’s fit for purpose.

Unlike the other implementations out on the web I’ve added Roller specific functionality, implemented in JavaScript, creating a ‘main’ (or rather ‘weblog’) page for each language.

I did this because I wanted to tailor the service to be language specific, and because the major search engines outside of the English speaking, Google dominated, Internet, often verify that there is actual language specific content (and I want these search engines to be able to index my site, even if that’s only a couple of pages).

The code uses Roller Weblogger specific URL notations to provide the matching ‘weblog_xx’ (where xx stands for the two character country code – five characters when looking at Traditional and Simplified Chinese) to the target language to be translated to.

Currently it works for the generic weblog URL, all ‘entry’ variants, all ‘date’ variants, and all ‘page’ variants. It doesn’t work for ‘tags’ or ‘category’ variants (mainly because I haven’t had time to research the URL notation), but I hope to get this done soon. I’ll research and code up the other, alternative Roller URL formations when I next revisit the code. I find this acceptable, as it still provides a translation, however without accessing the language specific ‘weblog’ page.

The JavaScript is available via the page source – and you’re welcome to have a look and re-use if you wish (it’s nowhere near the nicest bit of JavaScript available – if you’d like to tidy it up at all you’re more than welcome).

I’ve also added Dutch and Greek to the list of languages that can be translated to, as these have been recently added to Google’s translation service (still no Hindi or Bengali though). That makes a total of fourteen languages, including the already implemented Simplified Chinese, Traditional Chinese (Taiwanese), English, Spanish, Arabic, Portuguese, Russian, Japanese, German, Korean, French and Italian. Plus I’ve replaced the language text with flag icons – which improves the look and feel too.

The icons are “available for free use for any purpose with no requirement for attribution” (although I thought it would be nice to credit the originating site) from FamFamFam, by fellow ‘Brummie‘ Mark James, available at http://www.famfamfam.com/lab/icons/flags/

Previously, after the initial implementation in beta, I found a variety of resources in a similar vein, none of which are Roller specific though, here’s a few examples for you to have a look at if you’re interested:

Have to admit I’m really glad I’ve tidied this up as I was starting to feel as though it was in danger of genuinely being in ‘permanent beta’, and however fashionable that is, in the apocryphal words of Steve Jobbs: “real artists ship”.

Using Alternate Style Sheets to switch design

Due to the large number of images and diagrams that will be accompany the articles on “UK Government G2G Messaging Sub-Systems” to follow over the next week, I’ve implemented an “Image Resize” function, to allow you to alter the image size of all diagrams in the main body of this site.

You should be able to see a section heading on the right hand side bar called “Body Image Size”, the choices are “Small” (thumbnail) , “Medium” (default) and “Large” (body width).

It’s implemented using alternate CSS Style Sheets, and was inspired by Tim Bray’s site ‘Ongoing’, where Tim uses it as a technique to switch between the ‘Serif’ and ‘Sans-Serif’ font types.

I got assistance from this article “Alternative Style: Working With Alternate Style Sheets” by Paul Sowden, hosted over at ‘A List Apart’.

Thanks to Justin Hibbard, Lead Engagement Architect and Systems Engineer (SE) for the Department of Work and Pensions (DWP) at Sun in the UK, who’s comment on the issue of “illegible text” on my diagrams instigated me to add this functionality. Justin also points out that images are rendered poorly on both IE and Firefox, however Safari (both on Windows and Mac) does a better job, personally I find Opera has the best image rendering support.

In the future I’m hoping to use this technique to allow the readers to instantly change the look and feel of the site. I like the site look and feel as it is but change is good – and choice is even better.

Few last items before I sign off tonight:

  1. Congratulations to Gordon Brown on his ascension to Prime Minister tonight, and to Harriet Harman as the new deputy leader of the Labour Party.
  2. Congratulations to Harry Saxon on his ascension to Prime Minister last night (Whovian specific content).
  3. Pleased and proud to say that Andy and Joey were both awarded Orange belts (junior 4th Kyu), and that Donna and I were also both awarded Orange belts (adult 4th Kyu), at our Karate classes today.