Stuart McLean’s “The Vinyl Cafe”

February 9th, 2008 by Dave Zille

I recently became a fan of the radio show “The Vinyl Cafe”, which airs on CBC Radio. From Wikipedia:

The Vinyl Cafe is an hour-long radio variety show, hosted by Stuart McLean and broadcast on CBC radio and on several U.S. public radio stations. It airs Sunday at noon on Radio One and Saturday at 10 a.m. on Radio Two. The show features essays, fiction and music; while frequently humorous, the weekly programs are also often wistfully nostalgic. The show also endeavours to introduce listeners to new Canadian musical talent.

For a number of years, I have been a fan of Old Time Radio, and for me, The Vinyl Cafe is a bit of a modern-day flashback to the genre. At times, the Vinyl Cafe reminds me of my 2 favorite OTR shows, Fibber McGee and Molly and The Jack Benny Show. For example, one of McLean’s recurring story characters, known as Dave, reminds me a lot of Fibber McGee. Dave’s wife, Morley, is the level headed one in the relationship, and often gets Dave out of a bind, much like Fibber’s wife Molly.

One of the best things about radio shows like The Vinyl Cafe, is they can really trigger the “theatre of the mind”, as Frosty Forst would say. There’s something magical about sitting around a radio (or in this case, listening to an ipod, or listening on a digital stereo system), listening to stories, and imagining the sights and sounds as they are vividly described in the program.

A relatively new feature of the program is the “Vinyl Cafe Story Exchange”, where Stuart encourages his listening audience to submit short stories, with the possibility of being read on the show. The only 2 rules, as Stuart explains, is that submissions are “something funny or something touching - anything - so long as it’s a true story and so long as it’s short.”

I am not a writer by any means, but I ended up making a submission. Here it is.

Dear Stuart,

Fifteen years ago, I was 22 years old and was starting my second year of college. I lived with a friend in a humble and sparsely furnished basement suite in Burnaby, BC. As we did not have a car, we would frequent businesses within walking distance – the video store, the supermarket, the pizza place, and Elio’s Barber Shop.

The wear and tear of the orange tiled flooring was proof that Elio’s shop was popular. This guy had been in business for more than just a couple of years. The decor left a bit to be desired, but the shop served its utilitarian purpose as a place for a guy to get a haircut and be on his way. Just a radio up on a shelf in the corner, a half dozen chairs for customers to wait their turn, and the usual an assortment of dog-eared magazines.

Elio was a seemingly gentle and quiet man, and back then, it was pretty business-like between us. I‘d sit in the chair, he’d cut my hair, I’d pay for the cut, say “thanks” and that was pretty much it, other than basic small talk. It was more or less like that each month when I came for my haircuts over the next few years.

As time went on, the quality and quantity our conversations increased. I got to know more about Elio—his family, his home in White Rock, his immigration from Italy, his love of soccer, and his knowledge of politics and current events.

One day about five years ago, Elio told me that his wife had surprised him and was taking him to a live performance of a radio show called “The Vinyl Cafe” later that evening. He told me he was a huge fan of this show, and he had been listening to it for years. In fact, that’s precisely what was playing over the shop radio at that exact moment in time. I had no knowledge of the show until that moment, but I can still hear the echo of the CBC when I think back. And I remember how Elio beamed at the thought of attending your performance that night.

About two and a half years ago, I asked Elio about his future plans, and a possible retirement date. He said, “maybe in a few more years”. I had guessed he would be about 60 years old, so this timeframe made sense. But, I could tell that retirement was a decision he was making very carefully, and not one to be made hastily.

On a warm day in the summer of 2005, I was planning to stop at Elio’s for a haircut on my way to an event that evening. Because my home was now a bit of a distance from Elio’s shop, I had to plan my trip and manage my time accordingly. It was a Wednesday, and I knew Elio took Sundays and Mondays off, and it was mid-afternoon, so I figured I would not have to wait long once I got there. Much to my surprise, the door was locked and there was a sign written on a piece of paper—“Closed today, sorry for the inconvenience”. “Inconvenience, hmmph!”, I thought to myself. I left annoyed because, for the first time in nearly 15 years, Elio was not there to serve me when I expected him to be.

Later that week, I dropped by Elio’s once again. To my relief, I could see Elio through the big glass window, as I had many times before. When my turn came up, I asked Elio about the previous Wednesday, and if he was taking some extra time off in the summer. He explained that he was at a doctor’s appointment that day in another part of town. Suffice it to say, I felt a bit selfish about how I had reacted to the shop being closed earlier that week. When I left the shop, I told Elio that I would see him again in a month or so, as always.

When I returned for that haircut, I noticed Elio seemed to be favouring his right leg, and was standing on a special mat as he tended to his customers. I asked him about what I saw. He said the doctors thought it may be side effects from a small stroke or other incident, or perhaps a muscular issue, but they weren’t sure. He mentioned an upcoming appointment that would hopefully lead to a conclusive diagnosis.

On my next visit, Elio’s physical condition seemed to have worsened. The doctors had not yet achieved a firm diagnosis, all they knew for sure was that the problem was getting worse and it meant Elio would have to seriously consider retiring early. Elio told me he had put the shop up for sale and would be retiring as soon as he found a buyer. When I asked him how long that might take, he guessed at least a couple of months. When I left, I shook Elio’s hand and wished him luck in the sale of the business.

When I returned that next month, Elio was not there. Instead, a young woman was standing in his place. She had bought the shop from Elio, and this was her very first week on the job. I asked her about Elio’s condition, and she said he was doing fine, and that he was very gracious in the passing down of his business to her. She showed me the flowers on the ledge next to the barber’s chair that had come from Elio and his wife, sent to congratulate her on her new career.

Elio had operated his barber shop for more than 30 years. Over the final 15 of those years, I have transitioned from starving student to college graduate, have built a successful career, bought my first home, and have found and married my wife Leah. All this time, Elio was a constant in my life.

I recently learned that Elio passed away from a battle with ALS, commonly known as Lou Gehrig’s disease, in October of 2007. Elio was just 62 years old.

I wish that I had taken the time and made the effort to contact Elio upon his retirement, as I do not feel I had a chance to thank him for all of his good years of service. By sharing this story with you and your listeners, I hope to inspire others to recognize these seemingly “ordinary” people and thank and appreciate them for their hard work, and for always being there for us.

I often think of Elio, especially when I hear your voice, Stuart.

Sincerely,

Dave Zille, Port Moody BC

I don’t think my chances of having the story read on-air are very high, but I enjoyed the process, and it brought back a lot of memories.

5 PHP Killer Apps

October 3rd, 2007 by Dave Zille

As a developer who does a lot of work with PHP, I am always looking for apps, libraries, or just plain old pieces of code to save development time while adding useful functionality to my applications.

I’ve tested, customized and integrated dozens of open source PHP apps/libraries into my projects over the years, and here are 5 of the best I’ve found. You will see that they cover a fairly wide range of purpose and function.

These libraries can typically be integrated with PHP based CMS (eg. WordPress, Drupal, etc), or can be integrated to stand alone, PHP based sites.

1) Dynamic PHP image thumbnails - PHPThumb

PHPThumb creates thumbnails from images (JPEG, PNG, GIF, BMP, etc) on the fly. The output size is configurable (can be larger or smaller than the source), and the source may be the entire image or only a portion of the original image.

The main benefit to PHPThumb, to me, is that you only need store a single instance of an image on the server, and can dynamically serve variants of that image at a specified file size and quality. And it works very well.

Other image processing features include:

  • Dynamic watermarking and/or text overlay
  • Caching for less server load. Mulitple sizes of any source image can be cached seperately. Thumbnails are automatically updated when (local) source image is modified.
  • Embedded EXIF thumbnails (if available) can be extracted as-is, or used as the source image for thumbnailing if the real source image would take more memory than PHP has available.
  • Images can be rotated, either by an arbitary angle or auto-rotated to either portrait or landscape.
  • Images can be cropped, either by a specified number of pixels or by a percentage of original image.
  • Output is antialiased into the alpha channel where appropriate when PNG output is selected.
  • Quality can be auto-adjusted to fit a certain output byte size.
  • Other filters: Alpha channel mask from mask file, Auto Contrast / Levels, Blur, Brightness, Contrast, Drop shadow, Flip Horizontal / Vertical, and more

2) Easy PHP form validation - vDaemon

VDaemon is a PHP library that grants an easy-to-use but powerful way to check user input for errors, and, if necessary, display messages to the user. VDaemon can perform wide range of validation tasks. It includes mandatory fields validation, validation for properly formatted value (currently supported types are e-mail address, zip codes for US, Canada and UK, US phone number, IP address, date and time in various formats, integer and floaf numbers, currency), comparing entered value to the predefined value or to another form element value, validating against regular expression pattern and more. vDaemon allows combining validation rules into logical expressions of any complexity. It gives possibility to create a conditional validation. Incorporation of VDaemon validation into existing web sites is very easy. vDaemon was once offered for free, however it has now moved to a pay (although low-cost) license.

3) Automatic MySQL database admin system generation - phpmyedit

How many times have you hand coded a MySQL table editor in PHP? phpMyEdit provides an instant table editor buy (nearly) automatically generating PHP code for displaying/editing MySQL tables in a web browser. All you need to do is provide table name(s) and database access credientials, and phpMyEdit does the rest.

It includes a huge set of table manipulation functions (record addition, change, view, copy, and removal), table sorting, filtering, table lookups, and more. The output is highly customizable, and there is a very good support forum containing answers to pretty much any questions I’ve had during implementation.

4) Integrate Google Maps with PHP - GoogleMapAPI

GoogleMapAPI is a library used for creating google maps using the Google Map public API. Features include multiple map markers, customizable icons, map directions built into info window, and sidebar generation.

5) PDF generation with PHP - fpdf

FPDF is a PHP class which allows to generate PDF files with pure PHP (eg. without using the PDFlib library). Here is a list of its main features:

  • Choice of measure unit, page format and margins
  • Page header and footer management
  • Automatic page breaks
  • Automatic line breaks and text justification
  • Image support (JPEG and PNG)
  • Colors
  • Links
  • TrueType, Type1 and encoding support
  • Page compression

I have used fpdf in billing and invoicing systems, and for generating report output from various PHP applications.

I hope these libraries are helpful to you and save you as much development time as they have for me.

Classic Sports Tapes Collection (and hacking WordPress)

September 10th, 2007 by Dave Zille

I have just posted the foundation for my Classic Sports Tapes collection. At long last, I’ve got a process for cataloguing and posting the details of my collection on the site.

I still have a few hundred hockey games to catalogue and add to the system, in fact I only have about 5% of my hockey games listed. However, my very small NFL, CFL and MLB collection is completely identified.Many of these recordings are original, unedited broadcasts, including commercial breaks, intermission features, and pre and post-game interviews. Look to the “Orig?” field below to identify such broadcasts.

Part of my cataloguing process is to write descriptions for each broadcast, which is contained in the database. I’m just pondering how to present this data on the site. I will probably end up having seperate “detail” pages for each item. The search engines should like that, no doubt.

My recordings are not for sale, however I am interested in trades. My wish list includes:

  • Any hockey (regular season or playoffs) from the 50s through the early 90s
  • BC Lions (regular season, or playoffs)
  • MLB and NFL games with historical significance (regular season or playoffs)

If you would like to propose a deal, please contact me.

The new page required a number of modifications to the “Unnamed” WP Theme, including the PHP code it uses to render CSS on the fly. And the Classic Sports Tapes collection page itself is essentially a custom WP template that contains WP function/API calls as well as my own database logic. It took a bit of research, and of course some trial and error, but everything seems to be co-existing fine so far.

Oh yeah, there’s a customized back-end admin system too, and I will talk about that in a future post.

New Canucks Jerseys - They’ve arrived

August 29th, 2007 by Dave Zille

Well, today’s the big day. Before I give my opinion, here’s a summary (from Canucks.com):

Vancouver, BC – Today the Vancouver Canucks unveiled their new home and away sweaters for the 2007-08 season in front of thousands of fans at General Motors Place. At a mid-day media conference Canucks fans saw five of their favourite players, Markus Naslund, Trevor Linden, Mattias Ohlund, Willie Mitchell and Kevin Bieksa skate onto the General Motors Place ice in their full home blue and road white uniforms for the first time. The combination of the original blue, green and white colouring, along with the Orca Whale celebrates the past and present in Canucks history.

Canucks Jersey 2bAs I watched Markus skate onto the ice at GM Place (It was PVRed.. I wasn’t actually watching it live or in person), my gut reaction was how “busy” the new jersey looks. The “Vancouver” mark is clearly a distraction, in my opinion, and completely unnecessary. And what really surprised me were the horizontal stripes on the arms and body of the jersey. I was fully expecting vertical stripes/lines to create a more modern look, instead I find the new sweater is a hybrid of the Vintage sweater and the Whale.

Canucks Jersey 1Enough “constructive” feedback.. there are things I like about the new look. The revisions to the logo make the ice shards look more realistic, particularly on the home jersey, like they’ve actually been fractured.  And of course the color scheme cannot be beat, in my opinion, I’m really happy about that.  And the Stick/Rink Logo on the shoulders is fantastic, probably the highlight for me.

On an interesting note, Dave Nonis said today that league-wide, there will be no third jerseys this year, but teams will have an option for a third jersey for the 2008-2009 season. Which leaves me wondering — will there be another jersey unveiling at this time next year? ;-)

(Photo credits: Canucks.com)