
[This post is courtesy of one of our developers, Keith Murray]
As you are probably aware of from the other articles on this site, the folks at Radio Two have rolled out their new lineup of shows. What you may not realize is that at the same time, a small group of folks at CBC.ca have been working overtime to set up a landing page to support the new look and feel of Radio Two.
Whats New?
Some of the cool things on the new landing page are detailed schedules, program descriptions and host bios, and playlists for the shows. The playlists come from an internal system called INews that I know nothing about. The show listings and bios come from another internalsystem called Program Guide, and that’s something I know about.
Before I get all technical and tell you about how the listings and bios get to the new Radio Two landing page, let me describe my relationship with Program Guide.
Some History.
Way back in the 1980s, I would ride my bike to Greenly’s Bookstore in downtown Belleville once a month and buy a copy of The National Radio Guide. It was a glossy magazine published by the CBC that had articles, detailed show descriptions, and bios of on-air personalities. The best thing is that it also had the complete Radio and Stereo (now known as Radio One and Radio Two) schedules. Never again would I miss an interesting episode of Ideas, with Lister Sinclair.
Check out these scans from the February 1989 edition. Ahhh, Morningside, Brave New Waves, Night Lines…

Click for larger…
The CBC stopped publishing the Radio Guide in the late 1990s, and they now publish listings on the Program Guide.
When I started working at CBC.ca, I found out that the Program Guide application was in need of an owner. Nobody wanted to maintain the code. But for me it was like meeting an old friend, so I gladly took it over. It didn’t take me long to find out why people avoided it.
Mouldy Code
Program Guide is suffering from bit rot. It’s old, and too many features have been hacked on. As well, every time somebody accesses a schedule, the application dynamically looks up the schedule in a database, and creates a nicely formatted page, just for you. Every time. It has to, because the local morning show in Tofino isn’t the same as in Montreal. But, that’s just not very efficient, and Program Guide crashes often.
Ok, I’m finally going to talk about how the schedules on the new landing page work.
When the Radio Two folks approached me with the idea of the new landing page pulling data from Program Guide dynamically, I originally said “No way, it will never handle the load!”. However, it was mentioned that the new Radio Two schedule had no local programming, so it only had to look up the schedule once per day, and it would be the same for all time zones (”half an hour later in
Newfoundland”). That I could live with.
So once per day, the Radio Two schedule, the show descriptions, and host bios are retrieved from Program Guide and stored in a file format called XML. XML files are an easy way to store lots of related information in a simple file that can be read with any text editor. It’s also easy to write other programs that read XML files and do something useful with them. For example, our podcasts are served up via RSS feeds, which are really just XML files.
Here is a snippet of the schedule for Saturday night in XML.
<schedule>
<timeslot>
<startdate>2007/03/25</startdate>
<starttime>20:00</starttime>
<endtime>22:00</endtime>
<title><![CDATA[Canada Live - With Patti Schmidt]]></title>
<episode></episode>
<shortdescription><![CDATA[Listeners will be transported to concert halls, music clubs and festival stages across the country for live performances]]></shortdescription>
</timeslot>
</schedule>
The XML files with the schedule information are transformed into HTML files on the landing page via XSLT. XSLT is a fairly efficient way to take XML files and transform them into something else, usually while adding formatting or other display components to
the data.
Here is a snipped of the XSLT file that correlates the programs with the host bios.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html" indent="yes" omit-xml-declaration="yes"/>
<xsl:param name="param1" />
<xsl:variable name="titleKey">
<xsl:value-of select="$param1" />
</xsl:variable>
<xsl:template match="/">
<xsl:for-each select="personalities/personality[./title=$titleKey]“>
name: <xsl:value-of select=”concat(firstName, ‘ ‘ , lastName)”/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
This is what it ends up looking like on the new landing page.

The core schedule data is still coming from Program Guide. However, with the new Radio Two landing page it’s much more efficient, as the information is only read once per day, for everybody, in any time zone.
Note from Blake: The program guide is slated to be revamped with performance increases and easier to use interface. For all your Radio 2 needs you can go straight to the Radio 2 website and not have to use Program Guide at all.
Sorry about being late with this news — I’ve been on a flight to Toronto most of the day.
The CBC and the NHL announced a new television deal Monday that will keep Hockey Night in Canada on the air until 2014.
The six-year broadcast deal, which includes national English-language broadcast and multimedia rights to NHL games in Canada, will begin when the current agreement between the CBC and the league expires after the 2007-08 season.
“Can you imagine seven more years of me? How can it get any better?” Don Cherry, co-host of Coach’s Corner, told CBC Sports Online.
More at cbc.ca
“Ouimet,” the anonymous blog of someone who claims to be a manager inside the CBC’s Toronto plant, says the building’s infamous smoking rooms are on a hit-list of rooms targetted for re-purposing.
(Damnit. Did I just say “re-purposing?” God help me; the lingo is starting to seep into my brain. Soon I’ll be talking about how “the value pillars need to align with the stakeholders’ dialogue.”)
Ouimet says:
The much-hated Real Estate department has quietly written policy guidelines for the decommissioning of CBC smoking rooms. It states that “smoking room space will be prioritized as prime space available for all churn and space planning initiatives” and that “all smoking rooms requiring maintenance will be closed. In other words, the smoking rooms are to die a slow, painful death. Much like the smokers themselves.
When I was touring the building with the blog video cam, both patrons in the smoking rooms were rather upset that anyone was drawing even more attention to the rooms. “Don’t get this place closed down,” one fellow barked at me. “Or the ghost of Gzowski will haunt you.” Friendly people….
The federal government will commit $60 million for Canadian programming to CBC for each of the next two fiscal years. The Corporation has received this money each year since 2001, but it’s always been positioned by the government as “one-time funding.”
News of the funding came Friday when CBC president spoke to the Heritage committee. He told them if CBC is to “reach its potential and be the public broadcaster Canada needs, it needs a new contract with Canadians.” This contract would lay out the obligations that CBC/Radio-Canada owes to its 32 million owners over a ten-year period. It would be based on the following:
- The broadcasting system should remain a mixed public/private system;
- The public broadcaster should have programming independence;
- Its programming should be distinctive;
- It should serve all Canadians;
- It should have the resources needed to meet the agreed-upon requirements.
“CBC/Radio-Canada is at a turning point that no one-year answer, no one-dimensional response will resolve,” Rabinovitch said.
What do you think of that proposed five-point contract with Canadians? Should CBC’s programming be distinctive, or should it offer programming similar to the current fare offered by private broadcasters? Should CBC continue to find private sources of funding to supplement its programming needs, or should Parliament offer more money to the Corporation?
The Royal Canadian Air Farce will celebrate its landmark 300th episode on CBC Television with an hour-long special this Friday at 8:00 p.m. It’s the first time in the show’s history that an episode will be telecast live in real time. A peek at the show’s lineup shows looks at lottery wins by store-owners, marijuana grow-ups, Conrad Black’s travails, and Al Gore’s environmental concerns.