Integrated Travel and Weather Information Pilot, Sunderland Software City

This week has been all about open data. Last Saturday was the international(?) Open Data Day, which included a sneak peek of some of the Tyne and Wear Transport Authority’s data, earlier this week saw members of the Government Digital Services team here in the Toon interviewing for people for their new HMRC digital centre in Longbenton, and today was the Integrated Travel and Weather Information Pilot at Sunderland Software Centre.

As part of the day, a number of datasets were released that hadn’t even really been visible or available for the previous events. However, a big part of the day was just about finding out what was already out there. Who knew that the Met Office generated more big data than the entire banking industry and even did data for the US and space?

That there were integrated transport sources such as Transport API?

There were also interesting initiatives. Nexus is looking to have live data for all their buses in the next year or two, Connected Digital Economy Catapault (London-based) are investigating the ‘data value chain’ and means of creating change, and Sunderland Council are looking to find ways to make communities be able to create, maintain, and publish their own datasets (somewhere between, Ushahidi, and the Mozilla Digital Literacy initiative?).

It’s worth mentioning that the attendees were comprised of (mainly) software companies, end (business) users, representatives of the data sets, and academics. When it comes to the latter, someone from the Newcastle Business school pointedly (though perhaps a little, er, verbosely) raised concerns that no one was talking about data governance, particularly when it came to privacy and licencing. While some of the data providers assured the audience that they had taken these thoughts into concern, it is a question that is probably right to be asked, particularly in a business setting. The Met Office are clear that in order to fund their services, only some of their APIs are free, while others are paid, and certainly these nuances need to be navigated in the future.

As someone who goes to lots of hack days for enthusiasts, it was interesting for me to go along to an event with a similar foundation but a different focus (business) and format (more of a workshop). What I came to realise from this was how the outputs necessarily differ: a hack day is generally about getting something out the gate as a proof of concept, whereas an innovation day like this which involves businesses collaborating is more of a starting point for further conversations. While a workshop day doesn’t quite have the ‘ta-da!’ moment at the end that a hack-day does, in the grand scheme of things it may help with a more sustainable and viable product since many a hackday idea never has anything done to it after that final presentation.

What the day did address well was the real issues that the various data providers/end users were dealing with. This is a common issue with a lot of hackathons, as Jon Mumm vividly described based on his involvement in a fashion hackathon in early 2013.

This gets to the crux of the problem with hackathons—there is a disconnect between the people with real-world problems and the people who can build solutions. The industry experts don’t know how to identify and articulate their problems and the hackers don’t bother or don’t know how to extract them. Collectively, we must improve on this if we A) want hackathons to continue to thrive and B) want them to actually be useful

Certainly, what came out of the event is that the North East is most definitely making a push towards open data, which means we may have some interesting opportunities ahead in the upcoming months. Certainly, upcoming hackdays should be interesting (the two hackdays I’ve been to in Newcastle last year used the same travel data sets, and as someone who doesn’t drive, I wasn’t enamoured with the thought of being involved in yet another parking or car related app!)

More information on the data and the datasets (which include Nexus, Met Office, and Transport API) are at the ITWIP site, and look at the #itwip twitterstream for a feel from the day.

Oh, and a very nice callback from ITWIP attendee and Open Data Day Newcastle hacker Gregory Marler:

Multilingual, Multidisciplinary: Drupal Northeast, GDS

You know it’s a good night for the tech industry when you have to skip out of one event right as it ends to go to another! Tonight was both the monthly Drupal Northeast Meetup, and a more informal meetup of the Google Digital Services folk (who’ve been in town interviewing for the new Newcastle Digital Centre that’s going to be based out of Longbenton of all places).

Drupal North East: Multilingual Sites

This month, Adam Hill did a live demo of setting up a multilingual site.

His overall comments on structuring a multilingual site would make a content strategist proud:

“Don’t build a multi-lingual site in English and add extra languages, start building the infrastructure for the two [or more] languages from the start”.

Part of the reason this is important is because of URL paths (if you set up the site well, they can exist clearly separate of each other) and partly because it means you can plan out how to input the translations without having to battle the admin in the different languages!

Into the more nitty-gritty Drupal stuff.

First of all: decide the source language for your site *at the start*. You can’t change it half-way through without causing a load of trouble (something which Hill’s team learnt the hard way when doing projects).

According to Hill, there are two elements of Drupal translation:

  1. content translation
  2. string translation (backend, strings, also blocks etc)

While the former is the crux of your important information, the latter is also key for making the experience of using a site truly multi-lingual. It’s also a bit trickier at times since it delves into Drupal core: if you’re lucky, your other languages will have language translations ready to  upload from, if not … you’ll be working with someone who knows the language to figure out the appropriate translated UI words.

Hill showed that you do need a number of modules to make internationalisation play nice:

  • In core you want Content Translate and Localisation.
  • Internationalization (i8n) requires Variable to work, but as Hill showed, this is useful in its own right as it allows you to set up whether various elements such at the  language slogans and front pages have different language language options (e.g. /fr, /ar ) .Other useful ones include 404s.
  • Internationalization Views (only in dev, views generally got a lot better for v3 but this ties up loose ends) is necessary if you’re working with views, though Hill did warn that it doesn’t always quite do what you’d expect, so use with care.
  • Beyond this, menu translation, field translation, translation redirect, path translation, translation redirect, translation sets, and taxonomy translation are all self-explanatory and useful. Block translate (and context module) is also particularly helpful for controlling blocks.

In terms of setting up and implementing a multilingual site, Hill had the following tips:

  • detect language by path and folders (subdomains can be quirky). Auto-sniffing by browser is to be avoided, and while there are add-ons like IP sniffing, they have high overhead.
  • Good practices when theming and creating modules should set you up well for multi-lingual. There are some quirks to do with themes for rtl languages (namely that you’ll have to redo all your floats and padding) but since the text itself automatically switches, it’s not as big an issue as you’d think it would be.  Similarly,  anything in modules/system should be wrapped in a ‘t’ as it opens it up to be translated for translation if need be.
  • Hill has found the best way to manage menus is to just create separate ones that show up per language. This also applies for blocks.
  • If you’re dealing with a multi-author site or have images that share across languages (make sure these don’t have text embedded in them!) the synchronise translation feature can be helpful in mapping over content that should stay the same such as publish date, author name and images.

Only at the very end did he sneakily point out the very nice trilingual (including Arabic!) site that his company recently released.

Anna Linh: English

Anna Linh: English site

Anna Linh: French site

…and the French version (not the more verbose text)

Anna Linh: Arabic version

And the Arabic version as well as being rtl is visually sparse due to the compact language.

Some of the things his team learnt from the site was the issues of character density: as it turns out, French is more verbose than English (causing issues with labels), while Arabic as well as being right-to-left is also a far more compact language, thus making the designs look extremely sparse in comparison.

Also, random fact of the day: Hill found out that if you want to use Arabic characters in Photoshop, you have to but the Middle Eastern edition!

GDS Meetup

After that it was straight over to Brewdog to see who of the digital set were mingling with digital government peeps. From the brief chat I got to have with some of the GDC team (who’d all bravely come up from London and had apparently been surveying the Toon from a nearby hotel when not conducting interviews for the new centre) it sounds as if there’s going to be some interesting things going on in terms of cross-disciplinary teams. In unrelated matters, I got my hands on a complimentary copy of Design Transitions thanks to Emma Jefferies, which also had a surreal moment when one of the GDS people realised they were in one of the photos in the book!

CMS Supermondays

Starting with a plethora of upcoming events (*cough* Maker Faire is looking for volunteers) and a plea for more hands on deck to help, Supermondays kicked off its foray into CMSes (and one “anti-CMS”, Jekyll).

PyroCMS: Jamie Hurst

Jamie Hurst spoke about PHP framework PyroCMS. It’s been available for a few years “but only really usable for 2″. Interesting, like Drupal , it’s changing its codebase: it was on CodeIgniter, but is changing to Laravel. Like Joomla or other enterprise CMESes, there’s a Community version (on Github) and a Professional one (though at £90 per site as a one-off payments, it’s one of the cheaper options).

Hurst uses PyroCMS because of the opportunities to customise it (Plugins (like WordPress shortcodes); Widgets, and Modules).

I started looking around the web, and Zac Vineyard of Tutsplus also lauds its ability to be customised out of the box:

building a theme in PyroCMS is easier than it is to do in WordPress and other systems, which leads to time savings. At the core of how PyroCMS outputs data is the Lex tag parser. For designers and front-end developers, tags are a simple syntax to display content and perform basic logic operations. For developers, tags are the way in which you can get your data into layouts.

WordPress WTF: Adam Onishi

Adam Onishi braved coming up from London to talk. As it turns out, he was one of the people behind 12 devs of Christmas!

He pointed out some of the headscratching elements of WordPress (the_post doesn’t really show a post, show_search_form doesn’t show a search form, there are IDs *everywhere* in the code), and lamented the pretty but not entirely functional admin bar (he wishes that we could use Markdown like Ghost and even uses the Markdown on Save Improved plugin for his own blogging, and watches the WP Clarity initiative with interest, but realises this is a hard sell for content editors that are used to using Word). He also points out that Squarespace has nailed working with content.

And despite all the little quirks, Onishi loves how it’s open source (it’s even on Git now), and the community, from the Codex to the Wordcamps where you can even end up talking to Matt Wullenberg.

CMS Horror Stories: and How to Deal with Them

Pete Duncanson had the audience nodding in grim acknowledgement talking about some of the client issues from pink text to instant updates, to his experiences using Umbraco: “I know it’s .net but don’t hate me”.

I particularly liked his idea under the topic of restriction of letting clients select CSS style (e.g. “tweet button”) rather than faking it up themselves or “you telling them ‘open Notepad, copy that text…which they then spend the next few weeks emailing you about as they’ve lost the file”.

His idea of prempting in CMSes (icons etc) was similar to Alan Cooper’s idea of considerate software.

Finally, his idea of being bendy is allowing for change and scaling (i.e. not listening to them when they say that they’ll only ever have 10 staff and so won’t need subfolders or paging).

Drupal Myths and Legends

Adam Hill talked about some of the misconceptions (and not so misconceptions) of Drupal. He admitted some are based in truth: the theme does look like crap out of the box (and in itself is a vast improvement on the Drupal 6 default), but it can be configured to look at what you want.

While the UX out of the box does have some holes,it can be configured to be better (e.g. configuring the back end UI and making content editing smarter).

Issues of security and not working on cheap hosting are grossly overrated, given that runs on it and I run multiple sites on cheap-ish Hostgator shared servers.

The stories of scary learning curves is true, as is the slightly dodgy version control system (at present, until Drupal 8 at least), but there are dedicated teams both for security and learning.

By the way, I wish Adam had been brave enough to use the famed Drupal (and other CMSes) learning curve cartoon:

CMS Learning Curve

Here there be dragons. Or template.php .

The Emperor CMS Has No Clothes

Philip Poots was the voice of dissent in the room as he talked about Jekyll. While I’m reminded that a number of developers have a post on moving to Jeykll as their last post (i.e. it’s a bit of a pain to update for blogging), Poots pointed out that a number of prominent sites use the system for its simplicity and speed: it first came to prominence when it was used for the Obama campaign, and is currently used in sites as the site, Sage One Help, and the latest Thinking Digital site (which took 2 hrs to put up as opposed to a CMS quote of a week).

I also learned a new term: ‘stynamic‘, a portmanteau of ‘static’ and ‘dynamic’ that appears to have been coined by the team. Of course it’s as clunky and potentially cringey as any of these types of phrase, but it is worthwhile in reminding devs and others that there is a half way between the good ol’ static sites and dynamic CMSes.

Echoing earlier discussions in the night, Poots admitted that for all of the potential uses for Jekyll, the biggest area where it falls down is Markdown …and particularly getting marketers to use it. He admits its an issue, but demoed a possible solution: an HTML to markdown solution that for someone looks for anything like Word, but is actually working in Markdown.

Common Themes

Above all, I was struck at how many CMSes are in a state of transition at present, to the point that they might become unrecognisable to the original members of their respective communities. For example, PyroCMS is ditching CodeIgniter—the framework that seems to have drawn many people to it in the first place—for Laravel, Drupal is dramatically changing its codebase and building more things to the initial install to be more like WordPress, and WordPress is becoming more CMS-like …to be more like Drupal. However, as Pete Duncanson pointed out later, having other systems to compare from is a good thing: he’s installed WordPress on sites and then gleaned lots of good ideas to add as feature requests for Umbraco.

The other aspects that came through were the ideas of community and experience. Pretty much all of the CMSes talked about had strong communities for help. However, as Adam Hill pointed out later, in the cases of communities such as Drupal, being a long term member of the community helps you know about how to engage with the community, be it knowing which modules are good, or even knowing how to read the modules sections (e.g. you probably don’t want to download a module that’s old and/or has hardly any downloads, and you should probably have a look at the issues queue to see if there are serious problems).