Welcome to MSDN Blogs Sign in | Join | Help

Letter to DirecTV: You have a month to show the new TiVo or I'm going to Fios TV

As a happy TiVo customer since 1999 I and a reasonably happy DirecTV customer since 2000 I've been anxiously awaiting the new DirecTV TiVo. However its been a while since I've heard anything about it, and now I'm pissed. My existing DirecTV HD TiVo can't do MPEG4, which wouldn't be so bad except DTV keep moving HD channels from MPEG2 to MPEG4. The final straw was Showtime HD, which used to be on Channel 71. When my always-reliable TiVo missed the season openers of Dexter and Californication I went to see why and discovered that 71 is something else entirely now, and Showtime HD is now MPEG4. Only.

Literally every week Verizon send me a begging letter to get Fios TV (I've had Fios internet for several years). In a months time I am going to take them up on whatever offer they have unless I see some sign of a new TiVo for DirecTV by then. Going to Fios means I can get a cablecard Tivo HD and I can get all the channels I want in HD. (Well almost: BBC America isn't in HD anywhere except New York apparently). Obviously I won't be getting a Fios-DVR, for the same reason I returned the DirecTV-DVR I briefly had, as I want a real TiVo, not a poor imitation.

I have a bad history and an irrational feeling towards cable companies (Comcast in my case) so they are not an option, though of course I can use the same TiVo as with Fios if I did ever go to the Dark Side.

So DTV: get it together and ship something very soon, or else.

Running a Family with Food Sensitivities

Gratuitous post time: my wife has been doing a great job dealing with various food sensitivity issues in our family for a while now, and she has her own blog that includes recipes and tips that should be of interest to anyone else in a similar position. Check out Rubik's Food for more information.
Posted by andypennell | 0 Comments
Filed under:

Celebrating the first Apollo Moon Landing

In a matter of days it will be the 40th anniversay of Apollo 11 landing on the moon, a seminal moment for humanity, at least as far as I am concerned. Less than a hundred years since man figured out he could fly, three men travelled to another celestial body and came back to tell us about it.

It bugs me greatly that I cannot recall the first moon landing. I'm pretty sure I didn't watch it live (it was around 3am in England, not a good time for a youngster to be up) and my Dad was away (in the Navy) at the time. We had a tiny black & white TV, and I can remember watching non-specific moon landings, but not the first one. There's not much I can do about it now except grumble.

I am very familiar with the JFK "moon" speech, well at least I thought I was until I watched it recently on http://www.wechoosethemoon.org/ which features a longer version. I had no idea JFK included some reasonably funny lines in what I had always assumed was a very serious speech.

Last year, before I realized the anniversary was coming up, I tried to explain the moon landing to my kids (then 2 and 5). Hand waving wasn't much good, so I dug out "Apollo 13" on HD DVD and "From the Earth to the Moon" on DVD and played the best bits, which got their attention. I then bought the Space Voyagers "Ultimate Saturn V" at the Museum of Flight and was very impressed. Although not quite age appropriate, my 2yr old son took to it immediately and demanded I recreate the mission several times a day for about a month. The toy is a great size and pretty accurate, and kid-proof except for the lunar module adaptor which breaks very easily. The rocket also emits a good countdown sequence and vibrates when it "launches", all very fun for me and the kids. This proved to be a good introduction to the Solar System too, and by the time he was 3 my son could list all the planets, in order, and recognize their pictures.

In my twenties I got to visit Cape Canaveral and it was the highlight of that USA visit. Here in Seattle we have the Museum of Flight which has a reasonable Space section, but nothing beats standing next to an actual Saturn V rocket. Right before I moved from England it was the 25th anniversary of Apollo 11 and I bought some fabulous large-scale Revell plastic kits of the Saturn V and the Apollo hardware. Those kits now sit, mostly unbuilt, in the garage, awaiting a moment when I have the time to build them and the kids are old enough not to immediately trash them when I do. I also have re-purchased Airfix kits at a smaller scale, kits that I originally built when I was about ten years old and which I hope to build again one day.

I set my TiVo to record anything with Moon or Apollo in it, and have been very disappointed with the results. American TV doesn't seem to give much of a rip about this anniversary, which I think is a great opportunity missed. By the time the 50th anniversary comes around some of the participants might not be around any more, which would be a shame.

I have bought some kids' books on the moon landing and the NYT reviewed three more this weekend which I need to investigate. I've also read a couple of grown-up books on the technology behind Apollo, and its even more amazing they made it given how primitive the computers were that they relied on to get there and back. However for the bigger, non-electronic hardware Apollo remains the reference implementation in many areas. It is still the largest, most powerful rocket ever, and parts of it are being used to assist those working on current NASA projects in order to get to the Moon again (and further), even digging old Lunar Rover tires out of closets for closer inspection.

Will man ever do something as amazing with technology as the Apollo missions again? I'd like to think so, but its looking less and less likely, at least in my lifetime. Maybe my kids will get to see it, and hopefully they'll watch it live and remember it. It won't be in black & white, that's for sure.

Posted by andypennell | 0 Comments
Filed under: ,

More HD DVD players than Blu-ray players in America. Still. In 2009.

In frankly amazing news even to me, a new Harris Poll shows that over a year and a half since the format war ended there are more Americans with HD DVD players than with Blu-ray players, and in fact 2009 was a pretty good year for HD DVD players, in 2008 6% of Americans had an HD DVD player and now 11% do! As the article says, "Interest in Blu-ray remains lukewarm" which put a big grin on my face.

It can't just be ticked-off HD DVD users (like me and most of my friends & ex-workmates) that are resisting the lure of BD. I'm sure the high prices of the media and the still-confused BD Profile story are having more effect, and the recession can't be helping either. With Managed Copy finally getting nearer reality that's another reason to put off buying a player now and instead wait until managed-copy-capable hardware comes out next year.

Just in case there is any confusion after my April Fool post, this is all real: hit the links to see the data, the actual numbers are in the PDF.

Posted by andypennell | 11 Comments
Filed under:

Two Fixes You Must Have for Visual Studio 2008 SP1

The SP1 release of VS08 regressed some functionality compared to the original release, in a couple of critical areas. As a result it is highly likely you'll need the following two patches for it. I know many of our team who hit these issues, cursed, came to me (because I am the "VS guy" on the team) and then became happy when I pointed them to these:

Update for Debugger Stepping and Breakpoints - note if remote debugging be sure to patch those binaries too.

Update for Crash/Hangs when undocking windows or changing layouts

Hope you find these as useful as we did.

Please note it has been many years since I have worked on VS itself, so don't go crazy asking all sorts of other VS-related questions in the Comments. This is what I know. And that is it: I'm just a customer like you these days.

You Know You're Getting Old When: The Copyright On Your First Book Expires

According to British law the copyright on my first book expired last year, after twenty-five years. Not only does this make me feel ancient, but it compels me to recall the heady days of 1983, when I created my tome "Master Your ZX Microdrive".

I was a nerdy University student who spent most of his time in Central London hanging out around the publishers of the early computer magazines & books. In the summer of 1983 the magazine Popular Computing Weekly got a scoop on some new Sinclair hardware: the ZX Microdrive. As with several of their scoops (e.g. the QL) it was a leak from the printers who were making the user manual. They got me a copy of the maunal, and I wrote a "review" of the ZX Microdrive that was published in July without even a sniff of the actual device. The magazine appeared on the very day the product was launched, which made the publishers very happy. I used a pseudonym of "Bill Hoskins" for the review, the surname coming from the family whose house I lived in during my student days. (The internet does not appear to contain a copy of this fine piece of journalism, which I will try and fix when I find my copy).

By this time I had done a bunch of articles and reviews for PCW and other magazines, and had built a rapport with the small staff of Sunshine Press who published PCW. To my complete surprise they suggested I write a book about the Microdrives for their rapidly expanding computer book business. This was despite that fact that I had never written a book before and of course there were no Microdrives yet to be had. Naturally I said yes.

Around the beginning of August 1983 Sinclair shipped a review sample of the Microdrive and its Interface 1 to Sunshine, who sent it on to me. It was the summer, so I was living with my parents in their small hotel and I spent the next four weeks feverously working on my book. I had already read the (leaked) user manual numerous times but wanted to know so much more, so I took the next step: disassembling the ROM. There was 8K of Z80 assembler, which I dutifully printed out then analyzed, byte by byte, to figure out how the hardware did its thing and how the system was modified to support it. I have to say the design was cunning: no bytes of the original 16K BASIC ROM were modified. The book itself was written on the Spectrum, using what passed for a word-processor (Tasword). Each chapter was saved to a pair of alternating cassette tapes as I edited them, then printed on my dot-matrix printer every once in a while for more serious editing. Apart from writing the text, I was simultaneously writing sample programs to go along with the book. I felt it needed something meaty, so I modified a database originally written by another Sunshine author to work against these new "advanced" storage devices.

After four weeks I did the final printout, made a couple of photocopies and mailed them to Sunshine. Less than four weeks later the book was on the street, and proved pretty successful. I produced a 2nd Edition when the first run sold out, and in the end it sold around 10,000 copies and was translated into seven foreign languages. I made about ten grand out of it, which was about the same as a year's salary for computer graduates of the day. Someone in the old eastern block (Poland I think) once wrote to me and asked to translate the book into his native tongue, but he apologized he had no hard currency to pay me. Instead he proposed sending me some records (those vinyl things) of Polish music: I declined the music offer but said he was welcome to do it for free, so long as he sent me a copy. I never did see one.

Computer books were rather simpler back then: mine had about 140 pages and was about a centimeter thick: that helped me write it so quickly of course. The way the books were typeset was also primitive: the manuscript had to be manually re-typed into green-screen terminals at the typesetters. I did take my Spectrum there to see if we could somehow get the text out of the parallel printer port into their gigantic mainframe, but without success. The listings were entered as scans of my master printouts to avoid errors.

Eventually after some years the book got remaindered, and as per my contract I was offered the chance to buy the final copies on the cheap. I bought two hundred for a quid each, then did a deal with Your Spectrum magazine: they would advertise, sell and ship the books, having been autographed by me first, and we split the profit. A sweet deal, we sold 192 copies in the end.

The book opened useful doors to me: apart from publishing two more for Sunshine, I sent early proofs of the more technical chapters to some software companies so they could add Microdrive support to their programs. One of them, HiSoft, hired me for a summer job in 84 and I ended up staying there for seven years. As an advance for the second book I asked for an Apple Macintosh (which had just been released) and I wrote both other books using MacWrite 1.0. I contracted with Sinclair themselves to write some software that shipped on Microdrive cartridge: I was so green they had to tell me what to charge them, and I couldn't believe it when they suggested five grand. I should have haggled...

About a decade after the book came out I somehow ran into the artist who did the picture for the book's cover (and many other Sunshine covers). I asked if he still had the art, and he did, so I offered to buy it. He gladly accepted, then told me to go to some bar the next night, give the money to the barman and I'd get the picture. Despite my skepticism I turned up at the requested location and got the original art, no questions asked.

A quarter of a century later (OK now I really feel old) I still have the cassettes containing the chapters and the programs, but no way to read them. I somehow lost the original manuscript, which is very annoying, though I recently discovered a PDF of the book that some unknown person has created. I have no idea why, but whoever you are, I thank you. Also when did I change from "Andrew" to "Andy"? I seemed to use both versions at this time. Who came up with the book's title? I have no idea. These and other mysteries will likely never be solved, ah well.

Posted by andypennell | 8 Comments
Filed under:

HD DVD Is Back!

Following last week’s announcements regarding Blu-ray and the Sony Playstation 3, it looks like HD DVD will be coming back as the high definition movie format of choice. Call me amazed but happy!

The first clue, which few seemed to notice, was that Sony Electronics didn’t show any new Blu-ray players at CES in 2009. The next was the announcement that the PS3 was getting into the download movie game with NBC , despite the previous dismissal of downloads compared to optical media. The final piece to the puzzle was the announcement at the end of GDC (Games Developer Conference) of the new priorities that Sony are putting behind BD-50 disc production. It turns out that BD-50s are still pretty hard to make and remain expensive, while the production capacity has not increased at the rate anyone was hoping, so Sony had to prioritize what goes on those discs. There’s a lot more profit to be made on PS3 games (which have to be on Blu-ray media) than there are on BD movies, especially when the majority of those movies are made for competing studios like Warner Bros (even before considering the special deals and discounts that were offered to some studios during the format war). In light of all this Sony have decided that PS3 games are the most important thing to put on BD-50s and second most important are dual PS3-games/Movie discs. Next in the priority list are Sony movies, and last are everyone else’s movies. There are some contractual limitations that mean a few studios will be getting special treatment, but those clauses expire in the not-too-distant future so the writing is on the wall for those who are looking closely.

The response from some of the studios on the bottom of the list has been surprising, to say the least. They want back in the HD DVD game! Almost every modern DVD duplication line is capable of making HD DVDs at little additional cost, and most of the studios are more than familiar with HD DVD title creation. Word of this change starting going around a few weeks ago, and a some details are now emerging. I started receiving HDi questions over email from some of my old contacts in the post-production world recently, and naturally I was curious but no-one would explain why. Now it all starts to make sense.

Toshiba are readying the 3-series of HD DVD players which were under development when everything went south at the start of 2008. The top-of-the-line model will be the HD-RD40 which includes a hard disc, cablecard slot and ATSC tuner. As you might be able to guess from the name it’s a recorder as well as a player, and you can even download-to-burn from a yet-to-be-announced internet service. I have a prototype you can see in the picture. There will be read-only players too of course at really nice prices, but I can’t share the details yet.

Microsoft was always a huge HD DVD fan and there are various assets which can be re-used, such as an HD DVD burner driver for Vista and Windows 7, and there are enough core features in Win7 to produce a movie player: it has the codecs, the network stack and a script engine all present and ready, so porting the Xbox player shouldn’t be too hard if someone commits to it. No tricky Java VM required of course.

Although the HD DVD team itself is no more at Microsoft, the Xbox team plan on re-issuing the add-on drive in the original beige and new Elite-colored black models (see picture), at a lower-than-before price. No major software changes are planned, at least initially, as the HD DVD 1.0 spec is as good now as it ever was.

Sources at both major post-production houses tell me that all the newer big titles are being written for both formats now and have been for a few weeks, with a de-emphasis on BD-J. It was always hard to get BD-J to work (it took a staggering 21 months longer for Batman Begins to appear on BD than on HD DVD and Constantine took over two years more) but it was even harder to get it to work well on the variety of BD players in the market. The BD profile madness didn’t help so it is no surprise that consumers are confused about BD-Live capability when it still isn’t mandatory, even in 2009. A recent report from The Diffusion Group says that only 28% of adult consumers in the US understand that only some BD players can connect to the internet. (8% think they all can and 5% think none can, the rest are understandably confused).

What of the other hardware manufacturers? Well Pioneer have already said they are going to delegate BD player production to Sharp after killing their Kuro Plasma line, though I don’t think Pioneer ever really “got” BD: of all the players they produced, only one was BD-Live capable and it cost two grand, plus you had to go add your own gig of memory for it to work! No news from Panasonic, though they have almost as much IP in BD as Sony so are unlikely to give in easily. LG are well positioned for a return to HD DVD, as they came close to releasing their second hybrid player before the format war came to a premature end, plus their recent BD players are reasonably priced and have been well received. Sony’s lack of player announcements at CES seemed to be overlooked, maybe they wanted to focus attention on another new device of theirs.

These are exciting times, I’m so looking forward to some new HD DVD titles and happy to see some new hardware coming to market in the next few months. So glad I hung in there.

 

Posted by andypennell | 6 Comments
Filed under:

How Do You Debug A Movie?

How do you debug a movie? Before I get too old and forget, here is the story of one bug that I had to find when playing King Kong in the Xbox HD DVD player. It concludes with yet another reason I am so glad we’re not doing a Blu-ray player.

The HD DVD team originally wrote the player software for what became the Toshiba A1 series HD DVD players. Those players were basically x86-based laptop boards with an optical drive and video decoding hardware added, running Linux. Toshiba wrote the audio/video pipeline and we wrote the rest of the player. After that initial Toshiba release we really got going on a version for the Xbox 360, which shared much of the codebase but had some notable differences, plus we got to write our own AV pipeline. Progress was rapid (thanks in no small part to the ninjas that the Xbox team had lent us to get things going) [and yes Ninja was their official job title] and soon the Test team were running real movies from shiny discs through the player.

I ended up with a particular bug in King Kong which involved picture-in-picture (PIP). I got it because I owned PIP and its positioning logic, and the bug was that at a particular point in the movie (12:08) when PIP had been enabled, the PIP window was supposed to disappear. Well the video disappeared, but a black PIP-sized rectangle was left behind for about 12 seconds. This was a Universal title and used one of the earliest versions of U-Control to cause certain things to appear and disappear from the display at certain times. There were other times when this same weird rectangle would show up, but this was the first one.

The first thing we did with a problem like this was to look at the source. HDi used ECMAScript (aka Javascript) and the source code was right there on the disc. The .js files were usually packed into an .aca file (think ZIP file without the compression) and sometimes it might be AACS encrypted, but as a player manufacturer we legally had "the keys to the lock" so that was not a barrier to us reading the source. (The .aca file was also multiplexed into the audio/video stream so that usually the player does not have to pause playback to load a script, or a bitmap, which was important as seek times on optical discs are generally terrible).

The U-Control code got a lot more sophisticated over time, but the basic premise was that there was a list of timecodes and a list of actions to perform when those timecodes were hit. These actions included things like fading PIP audio up and down, showing and hiding PIP video, displaying overlay graphics and the like. The first place I look was the most obvious: add some logging to the PIP alpha code and see what and when it was being used. If PIP video was present in the video stream it was always run through the secondary video decoder, but you couldn’t see it as it started with an alpha value of Transparent. In order to see it, the js code would change the alpha value to Opaque (or in the case of U-Control it faded up the alpha from one to the other over a few frames). The logging revealed that in the failing case at 12:08, the alpha API was being called with 255 (opaque) instead of zero (transparent). As there was no actual secondary video stream at that time, we rendered an empty stream (ie a black rectangle).

At some point we learnt that King Kong was going to be bundled with the HD DVD drive itself, so we had to make very sure every aspect of the title worked perfectly on our player. Pressure: I can handle it.

I next spent a while poring over the U-Control logic: this was the first such title I ever had to debug, but it was made a bit easier because there was a bunch of debugging in the .js file itself, put there by the original authors. All I had to do was change a debug variable to true, and a bunch of debug spew was printed as the title ran. In order to "edit" js files on a read-only disc packed into an .aca file we had debug code in the player that allowed us to substitute "our" version of any .js file (read from the Xbox hard-disc) instead of the one from the optical disc. That way we could play with the title code to add debugging or change logic, and see the effect on the movie immediately.

The logging showed that there was a problem parsing the timecode: The JScript function parseInt("08") was returning zero (it was parsing the seconds part of the timecode), and clearly the code was expecting it to return 8. Further investigation revealed that our JScript engine (cloned from the IE one) treated zero-prefixed numbers as octal, and as “08” is not a valid octal number it returned zero. Toshiba’s ECMAScript engine (which they wrote from scratch) didn’t think it was octal, so returned 8. (In the early days all HD DVD title development was done on Toshiba A1 Emulators: special players with all kinds of extra, like hard discs and debug tools. Only later did authors start using Xboxes to test, and very much later to develop against). This confusion over parseInt and octal was not new to web page designers it turns out.

So I changed the parseInt function code in the script engine to default to decimal, and now King Kong worked fine. The player was released and shipped along with a copy of King Kong and everyone was happy. Well, for a while. At some point the Test team ran an ECMASCript compliance test on the player, and discovered that my "fix" to parseInt actually caused a test to fail, so the code was revisited and a better, more compliant fix was made, that kept King Kong working and also conformed more exactly to the ECMAscript spec (and hence to the HD DVD "gold standard", the Toshiba A1).

This particular bug was a player bug, as were many. However there were other categories of bugs, some caused by the title authors themselves. Often we would identify them at "check-disc" time (ie a pre-release copy of the disc some of the studios would send us) and we could tell them what to fix in their code before the disc was mastered. However sometimes we would be too late, or it would be from a studio that didn’t send us check-discs, so we would have to add specific modifications to the player that only kicked in when a particular title was played, and then push a player update out over Xbox Live.

Over time our methods for debugging title problems got more sophisticated, and much of what we learnt ended up in the HD DVD Emulator that I created. That way title authors could themselves debug issues with their code and content without having to burn and rush us a check-disc. Of course if there was a suspicion of player bug then we’d have to get involved in the investigation.

I am so glad we didn’t do a Blu-ray player. The poor folks who have to work out why BD-J titles don’t work correctly don’t have the luxury of seeing the original author’s source code, with comments and debug info. All they have is compiled Java bytecode: ug.

Zune in my Boxster: Part 2

I've been enjoying my Zune installation for a while now, but I had one thing that bugged me: operating the touchpad with the player mounted in the ashtray was a bit tricky when stationary, but very tricky when moving. It was also time to post some pictures of my handiwork.

Zune in ashtray

Fortunately Soundgate have now released a remote control for their Zune car kit, called the Remcore, so I got myself one. Fitting it was easy enough: open up my dashboard (for the last time I hope) and insert the plug into the socket on the Soundgate box. Harder than that was deciding where to put the control: it had to be easily accessible while driving. After a little experimentation I chose a spot on the "batwing" - a dashboard piece at the front of the center console so nicknamed due to its shape. This also allowed me to run the cable without having to drill any holes in anything. The remote comes with a little bracket that allows it to be removed and handed to passengers, I guess, as it has a long cable attached. As I can carry a maximum of one passenger, and they are sitting right next to me, I didn't use the bracket and instead stuck the remote directly onto the plastic with double-sided tape.

In Use

(Note in the picture the Remcore is the all-black control to the left: the silver switch in the center of the batwing is for my hands-free bluetooth kit). With the ashtray closed, the stealthy nature of the install is clear:

Stealth Zune

In use it is great: I can easily control play/pause/next/prev without taking my eyes of the road or even opening the ashtray to try and see the screen. If I want to change my music selection (when stationary) then I pop open the ashtray and navigate around. The remote takes a little getting used to as the middle button is play/pause and the top right button is equivalent to the middle of the touchwheel, but I can live with that. If I had more time and skill I would probably try and craft a nice tinted window in the lid of the ashtray so that I could see the screen without even opening it and yet keep it invisible when turned off. However I have neither required attribute.

Posted by andypennell | 2 Comments
Filed under:

My First Commercial Software: Kempston Joystick Conversion Tape

1983 were much simpler times in software. Here is how a student turned a quick hack into his first commercially released software and made his first money in the business. That student was me.

Back in 1983 Kempston Electronics produced a joystick interface for the ZX Spectrum, which allowed Atari-style joysticks to work with the most popular computer of the day. However, existing software had no way of working with this new hardware so in these early days it was cool hardware that honestly couldn’t do much. I picked up a joystick pretty soon after it came out, and found myself wanting to use it in my existing games. My favorite game of the day was the Psion Flight Simulator, a wire-frame “3D” representation, so I fired up my debugger of choice (Devpac) and searched for the IN instruction that read the keyboard. Those found I disassembled the keyboard code and figured out how to replace it with IN instructions to map the joystick movement to the game code.

For some reason (and I can’t honestly recall why) I decided to call Kempston and tell them of my achievement. Turns out they were very excited too, and offered me £250 for it right there on the phone. To give an idea how much this seemed to me, as a comparison the government was giving me a Full Grant of £1400 to cover my living expense for a year, and I actually had trouble spending it all! Naturally I was giddy at the idea of more money and proceeded to produce similar hacks for six other games, along with loaders that circumvented their copy-protection (so that I could patch the code), and created Joystick Conversion Tape 1. In due course I did this for a few more times and produced Tapes 2 and 3. I got royalties for these and I forget how much this totaled, but it was definitely a great time-taken vs reward result for me. (There are few things that you can’t find anywhere on the internet, but a picture of Tape 3 is one of them).

In due course the Kempston Joystick came to dominate the market and was a huge success, and I distinctly remember a notable sight when I was helping set up at a trade show once. Kempston’s owner, Ab Pandaal, was emptying a surprising amount of joystick boxes from his shiny red Ferrari parked in between the wooden folding tables that made up most of the “stands” of the day. I got to know Ab pretty well over the years: I did software for his Spectrum printer interfaces and scanner software for the Atari ST. He was the first person I knew with a Ferrari, and the only person I knew with two Ferrari’s until I got to Microsoft in the crazy 90s. I do know that at one point Coin Controls, who made the actual joysticks, offered Ab £2million for his company and he turned them down, which I'm sure he regretted later. Software development is a lot more complicated these days, Kempston Electronics are long gone now and I often wonder whatever happened to those early entrepreneurs like Ab.

Posted by andypennell | 7 Comments
Filed under:

Blu-ray on Xbox 360: Never. Thank goodness for that

The President of the Entertainment & Devices group has made it crystal clear, hopefully for the last time: Xbox 360 won't ever get Blu-ray.

Woohooh! Glad to see we're not about to throw money into that particular pit and support that other HD format. Maybe, just maybe, the crazy rumors might stop now.

I'd better keep quiet about Sony's secret plan to add HD DVD playback to the PS3...

The Sinclair QL is 25 yrs old today!

Chances are that you have never heard of the Sinclair QL. However if you are as old as me and European then you may have a soft spot for this 68k-based machine launched twelve days before that other 68k machine from the fruit company. It was my first 32-bit multitasking machine, with a real operating system (shame about the keyboard and storage device though).

I got one of the fruit company's 68k machines not long after the QL as an advance from my publishers and used it (running MacWrite 1.0) for my two QL books (one of which is quoted on the wikipedia page!) and wrote assembly language code for both platforms. My University 3rd year project was a debugger for the QL and I wrote an assembler too, which eventually turned into HiSoft Devpac for the QL, Atari ST and CBM Amiga once I got a proper job. So I guess I can thank the QL for my decades of work in the development tools field.

My parents attic still contains my disassembly of one of the QL operating systems (FB I think), though I know they would like me to dispose of it and much of the other detris from my past, though my QL hardware stayed at HiSoft as I recall. I think I still have some microdrive cartridges somewhere.

For the nostalgic see this page for the 25th Birthday rememberance, thanks for the info Urs, I would have no idea otherwise.

Posted by andypennell | 7 Comments
Filed under:

A Personal Guide to Ripping CDs with Zune

Over the holidays I ripped about sixty CDs with the Zune software, and it wasn’t as smooth as it should have been. Here is what I learnt, which I hope will save others time and frustration.

It had long been a plan for the holidays for me to manually compare the substantial CD collection my wife and I have accrued over the years with the collection of MP3s we have on our home server. Over the space of many hours I worked my way through the physical collection (only recently did all our CDs migrate to the same room) and compared it to the collection of bits we have. Having determined which discs were missing, I then ripped them using the Zune software to MP3s. Note that these notes were based on software version 3.1 running on Vista Ultimate 64-bit. YMMV.

The bulk of our collection was ripped in the past using various versions of Music Match. It wasn’t flashy, but it worked at a reasonable speed with good results, so much so I paid some dollars for the Plus version that ripped things faster. However in recent years the software got bought out twice by other companies and messed with, and today it calls itself Yahoo! Music and is remarkably useless to me. That, combined with my recent Zune-love, made me try our own Zune software for the large task ahead of me. Turns out there are some issues with how and when the software works out the metadata for the rips (metadata is the extra information associated with the album such as its name, artist, the track details and the album art) and here is what I learned.

Turn off auto-rip
The most important option turned out to be to disable the "Rip CD automatically when inserted" option. With it enabled, I would stick a CD in, the rip would commence seemingly ok, but I happened to notice a bunch of "01 Unknown Track.mp3" files sitting in multiple "\Unknown Artist\Unknown Album" directories, like this:

Usually it was just the first track, and it happened on about 20% of the CDs I had ripped. Further investigation revealed that the rip appeared to start before the software had actually finished reading all the metadata from the internet. This made the files as described, which had to be manually renamed, moved to the correct location and the MP3 Title tag set correctly (using Explorer’s Property page for the file). What is weird is that usually the rest of the MP3 tags would be correct (Album and Artist), so I could figure out which album it should be to fix it. Anyway, turning off auto-rip allows you to verify that the software has figured out the metadata, before you click the “Rip now” button. Judging by postings on the Zune forums I am not the only one with this problem.

Wait For the Metadata
With this learned, I started to really watch the software after the initial CD insertion, and I noticed that often it would display UNKNOWN ARTIST and yet have the correct album name, track names and album art shown. My solution for this was to eject the disc and re-insert it: this would cause the software to actually get the artist name correct. Again turning off auto-rip ensures all the data is there and correct before you start the rip.

Missing Album Art
Even with this regimen, I was noticing that some album art was failing to show up at all. Ejecting the disc didn’t help and trying the same disc in Windows Media Player would also fail to show the album art, so I guess the database has some inexplicable holes in its album art collection. I even had one album where the art was shown successfully for Disc 2, but not for Disc 1. The fix for this is to wait for the rip to complete, view the album in the collection then right-click it and select "Find Album Info". Try and do this on as large a monitor as you can, as the Find dialog is not movable, and you’ll want to be able to see at least some of the Track list in the main window (or have the CD case to hand) to make sure it matches the choices offered. Although the art might be missing on the initial search, it will often show up in the Find dialog, so look through it to see if you have a "better" match to your album and if you find one with art, select it, click Next then Finish. Be sure the number of tracks is the same and also the names of the tracks match the ones on the CD case.

Compilation Metadata
Compilation CDs require additional care in my experience. In every case for me the initial metadata pull had correct track names, but showed no Artists for the tracks. If I brought up the Edit dialog on the album I would sometimes see data for the Composer (which I could care less about frankly), but the Song Artist would be "Various Artists". This is highly annoying, but the fix is to use the "Find Album Info" as described above, and usually the track data it pulls will contain the correct Song Artists. Sadly the Find dialog does not display the Song Artist info, so the only way to tell if you got some is to try each likely suspect in turn. Be sure to use the Find option before any hand-edits you make to the metadata as any changes you make before pulling new info with Find will be lost.

Random Annoyances
There is another annoyance with the software that I hit with one particular torture-test compilation, a set from the UK in 1993 called "Young At Heart". It is four compilation CDs, so I had the Song Artist troubles described above on every disc, plus there are about a million “Young at Heart” albums in the world so the Find dialog was unwieldy, and the Zune UI appeared to have no way to display titles longer than around 18 characters. It truncates long names with a sexy-looking fade to grey, but offered no way to see the full name short of actually switching to the item. You can see how well this works in the screenshot below:


If I didn’t like this compilation so much I would have saved a frustrating hour of my life and given up trying to get an accurate rip of these particular discs. [In the process of writing this very post I discovered that tooltips do actually appear if you hover over the text itself: hovering over the album art, which is what I was trying in vain for the last few months, gets you nothing].

When a rip finishes the Zune software makes no effort to tell you via a sound effect or anything. This means if you have a busy life and can’t just sit in front of the PC watching it rip, you have to keep coming back to check on progress to see if it’s done yet. A simple sound effect on completion would have been much appreciated.

Conclusions
Frankly I miss the old Music Match as a CD ripper. I could try another program, but many of the programs out there that I have tried in the past choke on my collection due to its size, so I figured I’d try the Zune software for ripping as it does an acceptable job of tracking my collection (though its performance is poor). In retrospect I guess I was crazy to persevere like I did, but now I have learnt the tricks I’ll stick with it, and maybe others in a similar position will have an easier time in the future.

Posted by andypennell | 3 Comments
Filed under:

Zune Installation in my Boxster

Following the recent success in using a Zune for the kids to watch movies in the family vehicle, I decided it was time to update the music system in my car. I was a very happy customer of a Kenwood Keg which had been professionally installed in my Boxster years ago, but frustrations with that system, combined with my new-found Zune-love led me to an upgrade path.

Out With The Keg

The Kenwood Keg was a great hard-drive based system in its time (I think I got mine in 2003) and I got the 20GB system along with a new Kenwood head unit to drive it, speakers and a sub woofer. The original Boxster head unit (a CDR210) had no provision for aux-in (did anything in 1997?) though could connect to an over-priced CD changer (which I did not have). This, combined with the trashing of the factory speakers (due to excess volume I guess) led me to replace everything. The Keg software was primitive but did work, and was required to get MP3s onto the hard-disc. It served me well for several years, but since upgrading to Vista 64-bit the software was unavailable to me. It looks like it is possible to get it to work on Vista so long as you have a USB 2.0 cradle for the hard-drive (as it requires no drivers), but I was stuck with a driver-less USB 1.0 cradle. The newer cradles go on eBay for around a hundred bucks, which I did consider for a while, before my affair with Zune started.

Before I could go further I needed to get an aux-input on my Kenwood head unit. This turned out to be a $5 cable that plugged into the same connector the Keg used, the CD changer input. I also needed the magic tool that pulls Kenwood radios out of dashboards, and Frys Electronics in Renton just gave me a set when I asked, gratis. [Frys rock]. So far so good.

Zune Car Kits: Not Much Choice

I knew it was tricky to even get a car charger that worked on a Zune, so I relented and bought the Microsoft Zune Car Kit, and instantly regretted it. Although it could at least charge a Zune, it used an FM transmitter to get the audio to the head unit, which I didn't want. There is no other audio-out mechanism, I even checked the internal pictures on the FCC web site to see if there was a "secret" audio-out but couldn't see one, so I stopped short of breaking open the car kit to investigate further. I had forgotten that my cigarette-lighter outlet was Always On, and that the outlet was close to useless anyway after wearing it out with my Valentine One years ago. From what I can tell the Monster car kit is no better. Fortunately some heavy web searching led me to the Soundgate site, and they have what I consider to be a real Zune car kit. It did recently show up on the official Zune web site, but its still hard to find (here's an Amazon link).

There appear to be exactly zero Zune car kits that offer a remote, or an external screen that can show anything, with the exception of the Ford Sync stuff (buying a new car was way out of the budget for this plan). The Soundgate kit does have a socket for a remote and several Sony wired remotes are claimed to work. However my anti-Sony feelings remain, plus the model that looks decent costs $100, so I'm holding off on that for the moment.

As I need to see the screen I couldn't hide the Zune away somewhere under the dash, but on the other hand I couldn't leave it out for all to see as its a convertible and would be too tempting a target for some miscreant. I explored some options, like getting a cassette holder and putting the Zune in there, but that looked like it would be too small (plus Boxster cassette holders are hard to find in 2008). However the perfect location exists in every Boxster: the ashtray, which is in the center console so easy to get to while driving, and it has a very cool motion-damped flip-up lid on it.

I'll spare you the nasty details but I spent many hours dremeling away the ashtray itself and the dashboard part it plugs into, and I reasonably successful. The Zune is hidden under it, but the cool flip-up action is not quite as smooth as it was, due I think to the loss of weight of the [bakelite?] ashtray (3/4ths of which I removed to make room for the 16GB Zune). The good news is I still have all my fingers, which was looking to not be the case a couple of times with the dremel.

Soundgate ZNCBLPAK Installation

The electrical install of the Soundgate kit was relatively painless, once I got comfortable with dismantling chunks of my dashboard: I got the aux-input cable from the head unit down to the lower front console by dremeling a tiny hole in the dash (under the left-hand panel), and mounted the Soundgate box on top of the airbag control box. Power came from the spare carphone socket that hides in Boxster dashboards - details of the dashboard mechanics can be found here, though I only found this particular site after I figured most of it out myself. I wired the Soundgate to the ignition-power cable, giving the benefit of an automatic Pause whenever the car is turned off. The Soundgate comes with a cigarette plug power cord too if you aren't able to hard-wire it, plus a bunch of audio cables I didn't need to use (the aux-in cable ended with a 3.5mm jack which went straight into the Soundgate box). If you have the requirement for in-car video the Soundgate will give you that from the Zune too, but I don't (in this vehicle anyway). As the Zune connection is via the sync plug and not the 3.5mm AV jack, no messing with volume on the Zune is required to get a decent level into the head unit.

Keg vs Zune

Although I was pretty harsh on the Zune software's handling of video in my previous posting, for audio I am much happier with it. Its easy enough to find things, can handle large collections (after the several-hour painfully-slow initial sync time) and is easy to buy music (I stick to MP3 format tracks so I can play them on my various other devices). Zune wins.

In the car the Zune is pretty good, but it's harder to see what's playing on the screen compared to the much larger text display that I had from the Keg. The Keg also had the great ability to announce the names of playlists as you cycled through them while keeping ones eyes on the road. I haven't even figured out a way to cycle through playlists on a Zune (without looking), so Keg wins.

To sync the Keg I had to pop the front trunk, remove the HD, plug it into the cradle and use the crappy software to get the songs on there at USB 1.0 speeds. To sync the Zune I have to pop the ashtray cover, unplug it from the car and plug it into my Vista machine and use the much better Zune software at USB 2.0 speeds. I can in theory sync it while its still in the car using my home WiFi network, but I get no coverage in the garage so I need to fix that first. Zune wins.

I disabled the Touch feature of the Zune pad as it was impossible to use it accurately while keeping my eyes on the road. With the recent Zune 3.0 upgrade you can tag songs from FM radio stations for later purchase online, which is a fabulous idea. However I can't get very good radio coverage from the ashtray area, as I think the Zune uses the headphone cables as an antenna and I don't have any plugged in of course.

Conclusion

The Zune is generally poorly supported in the car integration area by Microsoft and 3rd parties, but the Soundgate system is better than anything else and is reasonably priced. Dismantling your dashboard and dremeling your car can be nerve-racking but resulted in a pretty nice installation for me. I miss the voice prompting of the Keg, but for everything else the Zune rocks in comparison.

[Updated 10/2/08 as I got the flip-up action working a lot better by re-routing the cable that was fouling it]

Posted by andypennell | 1 Comments
Filed under: ,

Book Review: Essential C# 3.0

I haven’t posted a book review here before, but that’s because no-one has sent me a pre-release draft manuscript to review before! So here it is, a review of Essential C# 3.0 by Mark Michaelis.

To skip to the chase, I like this book a lot. My personal C# level is Intermediate: although I was on the C# team for many years, I did close to zero C# coding as I worked on the debugger, which was entirely written in C++. Ironically once I left the team I did a lot more, and these days I am doing it daily. The book aims for a range of users, from beginners to advanced, but its hard for me to vouch how useful it is for either of those extremes. I can tell you that for Intermediates it is great.

The book is easy to read, and labels specific sections as Beginners (which I mostly speed-read through) and as Advanced (which I usually read carefully). Something I particularly liked is the way it described the C# changes from 1.0 to 2.0 to 3.0 for each area: even though many of the 3.0 changes occurred while I was on the C# team, I never got the chance to really use them, and the book managed to remind me of lesser-used C# 2.0 features that I had plain forgotten (like nullable types).

I am not a big fan of the MSDN web site, in fact it drives me crazy almost every day I use it, and it especially drives me crazy when I am trying to find C# things. Before this book, delegates were my biggest C# bugaboo: I could never get the syntax quite right, and I’d go off and look at other folks code in our project and try to copy what they did, and I’d eventually get something that compiled. It turns out that one of the reasons I was confused is that the syntax has evolved over the C# versions, and our project uses pretty much all of them, depending I think on the author and when the code was written. I really loved Chapter 12, which is all about delegates, and after reading the book I managed to write some new delegate code without so much as a compiler error. It also taught me how to read and write the new 3.0 syntax for lamda expressions, and although I can’t say I can do those right first time, I can at least read them and get one of my own to compile in a few tries: a great improvement.

The book doesn’t try to cover the myriad of .NET Framework features, and sticks just to the basics like Object, Collections and some on Threads. That suits me just fine, MSDN is just-about-usable when it comes to Framework documentation.

The book is not perfect: each chapter starts with a Mind Map, which is a star-shaped diagram that attempts to explain the contents of the following chapter: it was meaningless to me. Its coverage of platform invoke is also lacking, especially in marshalling and pointer handling, and that is one area that MSDN is particularly poor so I usually resort to internet-wide searches for answers to my issues in that area. The chapter on Query Expressions I found hard going after a while, but I think that is due to the subject matter and my mind, not the book. Once I actually start using LINQ I’m sure a revisiting of the Chapter 15 will make a lot more sense the second time around.

Once I finished reading it at home I took it to the office to use as a general reference work, but immediately discovered a disadvtange of getting a free pre-release copy: there was no index! I see a future for lots of those little colored tabs on my copy, until I shell out for a real one. Although it was a draft, I saw no obvious typos or technical errors, something that I can’t say for a recent Microsoft Press book I bought, which had an embarassment of typos that a simple spell-check should have caught.

In summary I like this book a lot: its level suited my skill set perfectly, and it taught me a bunch of new things as well as reminding me of a few forgotten gems. It will take its place on my desk at work as the first place I turn to for C# information. Once I get those colored tabs in place…

Posted by andypennell | 0 Comments
More Posts Next page »
 
Page view tracker