For OpenDataDay 2013, a language census of Vancouver’s datasets

Posted by on 28 Feb 2013 | Tagged as: culture, meetings and conferences, multilingual, Vancouver

OpenDataDay 2013 was celebrated last Saturday, February  23rd 2013, at over 100 hackathons and work days in 38 countries around the world. The City of Vancouver hosted a hackathon at Vancouver City Hall, and I joined in. My project was a language census of Vancouver’s open data datasets. Here’s what I set out to do.

Open Data is the idea that governments (and other bodies) publish data about their activity and holdings in machine-readable form, with loose terms of use, for citizens and other parties to use, and build upon, and add value to. Open Data Day rallies citizens and governments around the world “to write applications, liberate data, create visualizations and publish analyses using open public data to show support for and encourage the adoption open data policies by the world’s local, regional and national governments”.  I’m proud that local Vancouver open data leader David Eaves was one of the founders of Open Data Day. The UK-based Open Knowledge Foundation is part of the organisational foundation for OpenDataDay, but much of the energy is from local groups and volunteers (for example, the OKF in Japan).

Vancouver’s Open Data Day was a full house of some 80 grassroots activists, with attendance throughout the day by city staff, including Linda, the caretaker of the Vancouver Open Data portal and the voice of @VanOpenData on Twitter.  I missed the “Speed Data-ing” session in the morning, where participants could circulate among city providers of datasets to talk directly about was available and what each side wanted. I’m told that national minister the Honourable Tony Clement was also there (who now is responsible for the Government of Canada’s Open Data portal data.gc.ca, but who also in 2010 helped turn off the spigot of open data at its source by killing the long form census). I saw Councilmember Andrea Reimer there for the afternoon working session, and listening to the day-end wrap-ups, tweeting summaries of each project. I won’t try to describe all the projects. Take a look at the Vancouver Open Data Day 2013 wiki page, or the tweets tagged #vodhd13 (for Vancouver), and tagged #OpenData (worldwide).

I gave myself two goals for the hackathon. First, provide expertise and increased visibility for internationalisation and multi-lingual issues among the participants. Second, work on a modest project which would move internationalisation of local data forward.

My vision is that apps based on Vancouver open data should be localised into all the languages in which Vancouver residents want them. Over 30% of the people in the Vancouver region speak a language other than English at home, says Stats Canada. That is over  700,000 people of the 2.9m people in the area. Now of course localising those apps and web sites is a task for the developer. My discipline, internationalisation (i18n), is a set of design and implementation techniques to make it cheaper and easier to localise an app or web site. At some point, an app or web site presents data sourced from an open data dataset. In order for the complete user experience to be localised, the dataset also needs to be localised. A challenge of enabling localisation of open data-sourced apps is to set up formats, social structures, and incentive structures which makes it easier for datasets to get localised into the languages which matter to the end users.

To that end, I picked a modest project for the day. It was to make a language census of the city of Vancouver’s Open Data datasets. The link is to a project page I started on the Open Data Day wiki. I intended it to be a simple table describing the Vancouver, but it ended up with a good deal of explanation in the front matter.  I won’t repeat all that, but just give a couple of examples.

The 3-1-1 Contact Centre Interactions dataset (CSV format) has rows like (I’ve simplified):

Category1     , Category2     , Category3          , Mode    , 2012-11, 2012-12, 2013-1
CSG - Licenses, Animal Control, Dead Animals Pickup, Voice In,      22,      13,     13

While the Animal Control Inventory Deceased Animals dataset (CSV format) has rows like (again, simplified):

ID,  Date      ,CatOther   , Description              ,Sex,ACO            , Bag
7126,2013-02-23,SDC        , Tan/black medium hair cat,   ,Duty driver- JT, 13-00033
7127,2013-02-23,Dead Budgie,                          ,   ,Duty driver-JT , 13-00034
7128,2013-02-26,Cat        , Black and White          ,F  ,               , 13-00035

Note that most of the fields are simply data: dates, numbers, codes. These do not need to be localised. Some of the fields, like the Category fields in the 311 Interactions, are English-language phrases. But they are pulled from a controlled vocabulary, and so could be translated once into the target language, and would not usually need to be updated when new data is release. In contrast, a few fields in the Animal Control Inventory dataset, e.g. CatOther, Description, and ACO, seem to contain free text in English. Potentially, every new record in the dataset represents a new translation task.

The purpose of the language census is to go through the datasets in the Vancouver Open Data catalogue, and the fields for each dataset, and simply identify which fields are data, which are controlled vocabulary, and which are free text.  It’s not a major exercise. It doesn’t involve programming. Yet I believe it’s an important building block towards the vision of localised apps driven by open data.

Incidentally, this exercise inspired me to propose another dataset for the Vancouver catalogue: a dataset listing the datasets. There are 130 datasets in the Vancouver Open Data catalogue, and more are on the way. The only listing of them is an HTML page intended for human consumption. It would be nice to have a machine-readable table in CSV or XML format, describing the names and URLs and formats of the datasets in some structured way.

I’m happy to report success at my first goal, also. Several participants stopped by to talk with me about language support and internationalisation. I’m hopeful that it will help the non-English localisation of the apps, and city datasets, happen a little bit sooner.

If you would like to help in the language census, the project page is a wiki, and you are welcome to make constructive edits. See you there! Or, add a comment below.

The Social Justice Tithe

Posted by on 31 Dec 2012 | Tagged as: culture, personal, robobait

With the year coming to an end, it is the season of making donations to organisations doing good in the world. In both Canada and the USA, this is motivated by a tax deadline; donations to certain charities by December 31 can be tax deductions for that year.  It’s an opportunity to lay out here a concept that I helped draft a decade ago: the “Social Justice Tithe”.

The Social Justice Tithe means giving at least 10% of your income to some combination of charities, religious groups, and political groups that enact your values.

Continue Reading »

Where to find Report Properties and PageSize Properties (Report Builder 3.0, SQL Server Reporting Services 2012)

Posted by on 30 Nov 2012 | Tagged as: robobait

This is a simple tip, but one which uncovers that which Microsoft’s Report Builder 3.0 hides in plain sight. It took me forever to figure out. Here are some screen shots, so that web searchers of the future won’t have to take so long.

Report Builder 3.0 is an application which lets you design reports for use with Microsoft’s SQL Server Reporting Services 2012 (SSRS). One of my clients has me using SSRS to generate reports, which are formatted as PDF files. Obviously this requires a pagination process: laying out report content into PDF pages of specified sizes, and keeping specified margins of blank space around the page’s edge.

I discovered that SSRS defaults to using 1″ margins around a Letter-sized page (8.5″ x 11″). I wanted to change that, to make the margins smaller, and to let me use more of the page. SSRS has pretty good documentation, including a helpful MSDN article Pagination in Reporting Services (Report Builder and SSRS). This article advises,

“By default, the page size is 8.5 x 11 inches but you can change this size by using the Report Properties, Page Setup dialog box or by changing the PageHeight and PageWidth properties in the Properties pane….  Margins are specified using the Report Properties, Page Setup dialog box or by changing the TopMargin, BottomMargin, LeftMargin and RightMargin properties in the Properties pane.”

SSRS ReportBuilder report body properties (medium)

Great! I clearly wanted to find the TopMargin and BottomMargin properties in the Properties pane. I could see the Properties pane easily (see the first screen shot, click for a full-sized rendition). But I couldn’t find any PageSize or Margin properties. Next, I looked for a way to bring up the Report Properties dialog box. I expected this to be on the Tools or Format or File menu of a Windows app. But Report Builder 3.0 is built with a new UI design, which lacked the traditional Windows menu bar.

So, for a long time I was stuck. I couldn’t find how to make report-level properties like PageSize or Margin appear in the Properties pane. And I couldn’t find the Report Properties dialog box. Nor could I find documentation on how to do these things, just documentation that assumed I could do it.  I was stuck for a couple of weeks, living with unsatisfactory margins, and getting other things done. Until I discovered the trick.

Simply put, the trick is to click outside the report body. The second screen shot adds annotations, showing important parts of the Report Builder 3.0 window.

SSRS ReportBuilder PageSize, Margin properties annotated (medium)

  • A is the report body, an obvious place to click, and not helpful for finding Report Properties and PageSize properties.
  • B is the design surface outside the report body; left-click here and report-level parameters like PageSize and Margins appear in…
  • the Properties Pane, marked as C.
  • D shows the pop-up menu which appears when you right-click on the design surface; select Report Properties… from this menu to bring up the Report Properties dialog box.

I achieved my goal, making the report margins smaller, by clicking at B. The Margins parameter set appeared in the Properties pane. From there, it was easy to adjust the value of the Top and Bottom Margins parameters.

And now I’ve published this robobait, in hopes of seeding search engines with notes of this trick, and helping others get unstuck faster.  Please let me know in the comments if this was useful.

I18n and Unicode conference, and tutorial on multilingual Drupal and Joomla web sites, complete

Posted by on 31 Oct 2012 | Tagged as: CMS, culture, digital preservation, drupal, i18n, Joomla, meetings and conferences, multilingual, Unicode

Another stimulating Internationalisation and Unicode Conference (IUC36) just finished up last week (October 22-24, 2012). As usual it was rich with interesting people, stimulating subjects, and inspiration. My tutorial, Building multilingual websites in Drupal 7 and Joomla! 2.5, was well-attended and seemed to go well. My final paper and slides are posted at the preceding link.

Continue Reading »

Daytime running lights in a US Mazda 3: lessons learned

Posted by on 30 Sep 2012 | Tagged as: Canada, robobait

We recently imported our 2005 Mazda 3, built to California standards, into Canada. As part of that, we had to convert it to have daytime running lights — the headlights needed to stay on anytime the car is running. Why? Safety, it is said; a waste of fuel, it is also said; but the main thing is that C.R.C. c. 1038 Schedule IV Standard 108 requires it, and so we did it. It was almost, but not quite, a simple matter of installing a $40 aftermarket controller module (Hamsar 70987) Detail of Hamsar 70987 controllerbought from Canadian Tire.  Here’s the lessons we learned that weren’t in the instructions. I hope they will help others installing daytime running lights in a Mazda 3.

1. Getting physical access to the headlight wiring is hard. The module requires one wire each to be attached to the active (+) wire of the low-beam lights, high-beam lights, and turn signal lights. These lights are, on the left side, hidden under a (removable) battery compartment vent, plus various framework pieces of the engine mounting and body front. Attaching the module wire to the existing headlight wire isn’t hard; the kit includes splice taps which makes the wire splicing a simple matter of placing wires and squeezing with pliers. But physically reaching the existing wires, between and behind all that structure, was hard.

2. Mazda 3 access through wheel wellThe trick to reaching the turn signal lights is to go up from below, through the front wheel well.  The turn signal lights are nestled under a particularly thick tangle of structural members. I thought I would have to take off the headlight assembly to reach the turn signal light wiring. But no; I found a posting on reparing tail lights which explained the brilliant idea of coming up from below. I turned the steering wheel to the left, moving the forward edge of the left front wheel out of the way and opening room in the wheel well. Then I unscrewed the two screws holding the front edge of the (plastic, flexible) wheel well guard to the car body.  This allowed me to pull back the wheel well guard, reach my hand up between the guard and the body, and reach the wire harness at the back of the turn signal light without too much difficulty.

3. Wrapping the green activation wire around spark plug wires was insufficientMazda 3 spark plug wires don’t reliably trigger this module; you need to attach the wire to a wire with a reliable voltage which turns on only when the car is running. The place to find such a wire is in the wiring patch panel in the middle of the fuze box. The module has  a green wire, which controls the module. Put a voltage on this wire (relative to auto-body ground) and the module turns on the headlights. Remove the voltage, and after a few seconds, the headlights go off. The kit suggests wrapping the wire around the spark plug wire, and securing with cable ties. I suppose the idea is that the sparking voltage down the wire will induce a voltage in the wire. I tried this; the result was headlights which were on most of the time, but sagged off during deceleration. This rig failed the import inspection — twice.

Note that Mazda 3 spark plugs are wired with two small-gauge conductors, not one thick conductor. I suspect the electrical properties of the Mazda 3 spark plug wires aren’t what the module required. In any case, the green wire, wrapped around the spark plug wires, wasn’t adequate.

I was not up for determining which wire in the engine had the right voltage at the right time. So I gave up and went to a mechanic. The mechanic, having done a couple hundred such installations, had no trouble finding a wire in the patch panel which had a dependable voltage. Thus, the lights became reliable.

I hope these notes and photos will help other Mazda 3 owners who need to install aftermarket daytime running lights.

Eclipse + Mac OS X 10.5.8 + Java SE 6 => 64 bits

Posted by on 31 Aug 2012 | Tagged as: robobait, software engineering

I recently had an adventure trying to get a plugin, PDT, installed into my Eclipse software development environment. Diagnosis was hard, and the conclusion was non-obvious, though in hindsight, reasonable. It is that if you want to use an Eclipse plug-in that requires Java SE 6 on a Mac OS X 10.5.8 computer, you will need the 64-bit version of Eclipse.

Let me explain.

Continue Reading »

Canada Post and USPS rate cards

Posted by on 31 Jul 2012 | Tagged as: Canada, robobait, USA

Canada Post and the US Postal Service raised their postage rates in January, and I’ve just got around to updating my handy Canada Post and USPS postage rate quick reference card on this blog. The Canada Post rate increases were effective January 16, 2012, and the USPS increases were effective January 22.

My Canada Post and USPS Postage Rates project page,  http://jdlh.com/en/pr/postage_card.html, will have links to download the latest charts as I update them.  The spreadsheet source file for the charts is also there. Both are licensed CC-BY-SA, so please feel free to re-use and modify them (as long as you attribute my work and share your product as freely).

Heads up: Canada Post has already received approval for first-class mail rate increases in 2013 and 2014. Both Canada Post and USPS offer “perpetual” or “forever” stamps, which are worth first-class basic domestic postage, whatever the price may increase to.

Enjoy!

“Building multilingual websites in Drupal 7 and Joomla 2.5” (IUC36 tutorial)

Posted by on 30 Jun 2012 | Tagged as: drupal, Joomla, meetings and conferences, Unicode

I’m delighted to be asked, once again, to present a tutorial on Building multilingual websites in Drupal 7 and Joomla! 2.5, at the 36th Internationalization and Unicode Conference (IUC36), this October in Santa Clara, California, USA.

Continue Reading »

“It Gets Better” in music: 5. It Gets Better Song by Todrick Hall

Posted by on 31 May 2012 | Tagged as: LGBT

With number 5 in my list of favourite musical contributions to the It Gets Better project, the contributions become much more ambitious artistically. It gets more and more satisfying to rewatch each video and remind myself why it is special.

My 86-year old mother has visited the It Gets Better project site, and so I hope you have too. Watch some of the over 10,000 videos contributed by people, from all walks of life, with a common theme: encouraging youth who are being bullied, and perhaps contemplating ending their lives, to believe that life gets better after high school — and that they too should stick around to see it happen.

Number 5 on my list is a song which narrates a short film, with a really marvellous story arc and inventive directing. Self-made new media song-and-dance man Todrick Hall wrote and performed the song. It speaks directly to the hurting queer heart. It has melancholy which acknowledges the pain, but it is also a catchy tune which points hopefully to the future where “it gets better”.  Continue Reading »

“It Gets Better” in music: 6. LeAnn Rimes & GMCLA – The Rose

Posted by on 30 Apr 2012 | Tagged as: LGBT

Last July, I posted number 7 in my list of top  favourite musical contributions to the It Gets Better project. After an interval, I’m continuing with number 6.

If you haven’t come across It Gets Better, then run don’t walk to the It Gets Better project site. Watch some of the over 10,000 videos contributed by people, from all walks of life, with a common theme: encouraging youth who are being bullied, and perhaps contemplating ending their lives, to believe that life gets better after high school — and that they too should stick around to see it happen. The project started in late 2010, and no longer has the new-project enthusiam. Still, the passion of the messages and the diversity of the messengers is moving.

Number 6 is a guest appearance by country singer LeAnn Rimes with the Gay Men’s Chorus of Los Angeles (GMCLA). I found this video after finding another, even more impressive, It Gets Better video by the GMCLA. That will appear later in the countdown. This is a beautifully sung performance of a wonderful song, and that alone is good. But what really tops it off is the heartfelt, at times tearful, introduction by Rimes — along with the supportive but sassy interjections by the chorus.

This performance is an example of the world of professional entertainment, bringing its polish to the It Gets Better series. Bravo to Rimes and to the Gay Men’s Chorus of Los Angeles!

Enjoy, and see you again in a few days. No, really.

« Prev - Next »