Canadian Retailers Not Doing Well?

November 23rd, 2007

The Ottawa Citizen has an article entitled "Canadian Retailers Take a Hit", which talks about bad retail sales numbers for this past quarter.  The gist of the article is that the economy is slumping and we need to fix it with an interest rate change.

"Overall, the report suggests some noticeable weakness in consumer spending"

My take?  The weakness in consumer spending is consumers waiting for prices in Canada to adjust to reflect what's happened with the dollar.  It's hard to shop in Canada now without the feeling that you're getting hosed on the retail price of goods.

Twice now we've gone into a bookstore to find a book, and left without buying it because of the price difference.  It hurts paying 40% more than the US price when our dollar is worth more than theirs.

Chapters has a sign up in the store which basically says that they buy books from Canadian distributors at Canadian prices, so they can't afford to sell them at the American price printed on the book.  They also say that since the Canadian price is printed on the book, the price is only updated on the infrequent occasion a new printing of the book becomes available.

That explains why they're selling at the price they're selling at, but it doesn't do anything to encourage me to be willing to pay that.  They're not saying "the book is worth $24.95 Canadian even though the jacket clearly shows the US price is $17.95", they're saying "We have to sell the book for $24.95". 

Meanwhile some retailers (such as Wal-Mart) are selling books and magazines at the US price.

Is Wal-Mart losing money on these items?  Perhaps.  But the goodwill they get from matching the US price has got to be worth it, and besides, if anyone can hardball the publishers into selling the books for less, it'd be Wal-Mart.

Are there any Canadian booksellers that sell online, that will price-match the US price?

Back to the retail slump.  I don't think it's that consumers don't have money or don't want to spend it.  There is going to be a retail boom in US towns near the border.  I hope Canadian businesses can realize what's going on and pressure their suppliers (and on up the chain) in time to bring some of this boom back home.

Space Mountain

November 20th, 2007

Now this is a cool video.  Space Mountain with the lights on.

HDMI cables

November 19th, 2007

A long time ago in a mall far away, I used to work in computer retail. One of the most profitable items we sold was printer cables. A parallel cable that sold for $79 would cost the store under $10. This dwarfed the profit on the printer.

You'd think we as a consumer electronics buying public would have figured out this scam by now, but no. Bought an HDTV lately? Been able to leave the store without someone trying to sell you cables?

Monster has built a business around expensive cables. They're the most obvious example, but really, go into Best Buy or Circuit City or Future Shop and have a look at the cables they sell. There's no bin of $3 cables at these stores; they're all wrapped in shiny clamshells and cost a lot of clams.

For analog cables I can understand spending more for better cables; there is going to be degradation if you're using cheap connectors and poorly shielded cables.

But HDMI is a digital signal; it either arrives perfect, or it doesn't. If it's not arriving perfectly, then you'll see it - it's not going to be an imperceptible increase in quality; it's going to show up as big ugly blocks in your picture.

My TV supports HDMI so my coping mechanism for my broken XBox 360 was to buy a 360 Arcade, which comes with HDMI. When I get my repaired console back, I'm going to sell it. The difference between the two prices is my "Upgrade to HDMI" fee.

But the 360 Arcade doesn't come with an HDMI cable. I went to Wal-Mart looking for one (they don't have much tech stuff but it's nice having a solid return policy on whatever you do buy there), and they had a deal on a 6' cable, $29. But they were sold out. I walked next door to Future Shop.

Literally the first HDMI cable I ran across in the store was this one. $188 for a 6 foot HDMI cable. The cheapest cable they sell is $49.

Meanwhile, check out eBay. Without the need to add profit to the sale of something else, eBay items tend to sell for closer to their real value. Searching for an HDMI cable located in Canada finds a few of the expensive clamshells, but also finds an average HDMI cable price of around $8. If you're willing to buy from the states, the price is closer to $4. Plus shipping, of course, but shop around and you can find cheap shipping.

Frankly I didn't expect Wal-Mart to play this game; I expected them to be selling a 6' HDMI cable for around $10.

One of the most useful services eBay offers is being able to give you an indication of what an item is worth (as opposed to what it's selling for). Scarce items like newly released game consoles are worth more than their retail price, and a commodity item like an HDMI cable is worth less.

(At least more printers come with USB cables these days; but you can still pay too much for gold plated super duper USB cables).

Three More Red Lights

November 15th, 2007

Well, as I predicted when I wrote Microsoft Must Like Exchanging Xbox's, my 360 has died again.  This is my fourth exchange, so the new box will be my fifth Xbox 360.

I'm going to try to get them to cross-ship me a new one, let's see how that goes.

... well, it didn't go very well.  I went through the usual annoying script with the lady (who had to verify absolutely everything with me - at least the last guy I talked to, with a Southern accent, was willing to cut me some slack there) who said that because this was my fourth time sending it back, they'd escalate me to a repair and replacement specialist, who would keep me informed as to the status of my repair.

They didn't promise it would be any faster; in fact, the coffin they're sending me to send the box back in won't arrive for "3 to 5 business days", but they did promise that I'd be updated frequently as to the status of my repair.

Here are my issues:

  • They sent me a box with the same problem as what I sent my last one in for.
  • They can't guarantee me they won't do the same again.
  • They're pretending I'm going to get some priority this time, but they can't cross-ship a replacement and still say it will take "3 to 4 weeks" to get a replacement.

On this call alone I was warned twice that if I have tampered with the machine that they'll send it back without exchanging it.  Nothing like a little bit of calling your customer a criminal to set the tone.

The folks on the phone sound like they'll be shot if they vary from the script. She wanted to go through some troubleshooting with me; I said "well the light on the power supply is green, I tried removing the hard drive, turning it off for a while to let it cool, none of that worked".  So she said "yes sir I understand that.  Now please tell me, when you have this problem, can you look at the power supply and tell me what colour the light is showing?".  Argh!

MFC and real-world software

November 12th, 2007

It's great to see a serious update to MFC coming.  Check out this video with Pat Brenner where he describes some of the new stuff happening, with demos.

I'm really torn on C++ these days.  Some people believe it should basically be retired, in favour of one of the better alternatives like C# or Java, but C++ has a number of qualities that make it a truly enduring language.

It's a humble language - it doesn't impose any of its requirements on you.  You can use a bare minimum, portable runtime and write a C++ app that can be compiled and run on almost any platform.  When you do need to go looking for libraries, they're out there by the hundreds of thousands.

Java, of course, requires a JVM, but also works to hide the platform from you.  When you're coding in Java, your platform is Java, but in the real world, mainstream applications need to leverage the platform they're running on.  Want to write a QuickLook plug-in for Mac OS X?  Or the equivalent preview handler on Windows?  You need to use native code.  There are all kinds of limitations that you bump into trying to write high quality portable client applications using Java.

C# doesn't have that problem as long as you stick to Windows, but that's the killer for C#.  You have to stick to Windows.  With the Mac platform making a resurgence, it wouldn't make sense for anyone with the resources to do cross-platform development to start a new app in C#.  As long as the market for your application is big enough that 10% of sales would pay for the cost of creating portable code, it's worth supporting the Mac.

With C++ you can use any UI toolkit.  Any system level API.  Anything.  No limits.  And thanks to the preprocessor, you can tune your code to the platform it has to run on.  That's why C++ is going to be around for a long time.

I'm arguing in favour of C++ but MFC is still obviously a Windows-only UI technology, what's up with that?  Well, often what happens in large cross-platform applications is the core of an application is portable, but the chrome is unique on each platform.  (Or, you write some kickass cross-platform UI that you use but not everyone has the resources for that).  Apps with chrome targeted to the platform are almost always better than portable apps that try to look the same everywhere.

So it's very good to see Microsoft recognize this and update MFC.  Otherwise, we were destined to live with the 1995 look & feel of a default MFC application for even longer (or go shopping for UI toolkits that modernize MFC, but those come with their own sets of problems - like what happens when your tool vendor stops updating the toolkit you depend on).

"There is a larger number of MFC developers than we thought".
- Pat Brenner

And it's going to stay that way.  So thank you for the update.  Now where's that improved C++ support in the IDE?

Fixing Digital Software Distribution

November 12th, 2007

Jeff posted on The Sad State of Digital Software Distribution.  I think the path to fixing it is pretty clear.

The root of the problem is that most mainstream software is sold at retail.  Nobody is willing to lose the retail channel.  So if you can't beat em, join em.

If Best Buy were made a partner in digital distribution instead of a part of the chain that the developers are looking to cut out, then they'd be willing to help out.  For example, by having a Best Buy digital software store that sold things cheaper than in the store, but with the same profit going to the store.

So if the store's cut of a $50 product is $15 and the developer's is $15 (with the rest being manufacturing and distribution), the product could be sold online for $40.  The store would get their $20 and the developer would get $20.  The store gets more (because they're providing the digital download service - the developer doesn't have to run that) and this motivates the store to get into digital distribution; the developer gets more, and consumers are encouraged by the store (a sign on the shelf "Get this product for less at downloads.bestbuy.com") to buy the digital version.

There are so many people that need to agree to a system like this that it's very difficult to implement - what we need is someone to do for digital software sales what Apple did for digital music sales and cut those deals that enable this new business.

Colbert and Stewart vs the Writer’s Strike

November 8th, 2007

I'll admit I was a little disappointed to tune in to the Colbert Report and see re-runs the day the writer's strike started. 

In case you haven't been paying attention, there's a writer's guild strike going on that's taken Hollywood's writers offline (or "Pencils Down" as they say).  This means the behind-the-scenes folks who come up Jay Leno's and David Letterman's monologues are not writing, meaning those guys are hiding behind their desks until this all blows over.

But it's different with The Daily Show and The Colbert Report, because to me it always felt like those guys were a bigger part of what went on than just hosts.  Can Jon Stewart and Stephen Colbert be funny without his writing staff?

We'll never know, because it's a matter of solidarity for them to not do any writing while the strike is on.

But I think it would have been extra funny to do something just making fun of the strike.  Re-runs of a topical news show just aren't interesting, but how about just running a half hour worth of funny YouTube clips or a fish tank?   Or a webcam on a room full of cats?  Does it take a writer to do that?

(And what would happen if, during a Stephen Colbert presidency, a writer's strike occurred?)

Taking Sides

November 5th, 2007

An Ottawa Sun poll:

Do you agree with the latest transit expert who says that Ottawa should continue to expand the bus rapid transit system rather than focus on light rail transit?

59% said they agree.

I wonder if the number had been different if the question had included the fact that the transit expert was the former boss of OC Transpo (the local bus company).

Mac Latency Problem Solved

November 4th, 2007

After talking to Apple for over 2 hours on the phone (most of that on hold trying to get to someone who could actually help me), I actually came away with a fix for the intermittent latency problem I've been having on my MacBook Pro since getting it.

The problem was that about every 6 seconds, the wireless connection would hang for about a second.  This would show up in ping like this:

PING 192.150.23.1 (192.150.23.1): 56 data bytes
64 bytes from 192.150.23.1: icmp_seq=0 ttl=64 time=2.457 ms
64 bytes from 192.150.23.1: icmp_seq=1 ttl=64 time=1107.883 ms
64 bytes from 192.150.23.1: icmp_seq=2 ttl=64 time=109.092 ms
64 bytes from 192.150.23.1: icmp_seq=3 ttl=64 time=3.383 ms
64 bytes from 192.150.23.1: icmp_seq=4 ttl=64 time=2.060 ms
64 bytes from 192.150.23.1: icmp_seq=5 ttl=64 time=2.034 ms
64 bytes from 192.150.23.1: icmp_seq=6 ttl=64 time=1107.129 ms
64 bytes from 192.150.23.1: icmp_seq=7 ttl=64 time=108.167 ms
64 bytes from 192.150.23.1: icmp_seq=8 ttl=64 time=2.111 ms
64 bytes from 192.150.23.1 : icmp_seq=9 ttl=64 time=2.049 ms
64 bytes from 192.150.23.1: icmp_seq=10 ttl=64 time=2.161 ms
64 bytes from 192.150.23.1: icmp_seq=11 ttl=64 time= 1103.365 ms
64 bytes from 192.150.23.1: icmp_seq=12 ttl=64 time=104.465 ms
64 bytes from 192.150.23.1: icmp_seq=13 ttl=64 time=1.947 ms
64 bytes from 192.150.23.1: icmp_seq=14 ttl=64 time=2.157 ms
64 bytes from 192.150.23.1: icmp_seq=15 ttl=64 time=2.041 ms

The fix Apple suggested was deleting a number of configuration files, and that did fix it.  I suspect the one that was causing the problem was:

/Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist

Deleting that and rebooting caused the latency to just go away; now I have a consistently fast wireless connection.

Diffing that file between what I had before and what I have now, I can't see anything that would obviously cause this problem, but some 802.1X settings are gone, and a number of settings like InterferenceRobustness and JoinMode that were previously specified are not in the new file. Maybe it was some interaction between the settings in this file that was causing it, I don't know.

In case anyone is having other wireless issues, the files that Apple suggested I move aside were:

NetworkInterfaces.plist
preferences.plist
com.apple.airport.preferences.plist
com.apple.network.identification.plist

Time Machine and Slow First Backup

November 4th, 2007

So after my woes getting Leopard I started playing with one of it's best features on the weekend, Time Machine.

Time Machine is an example of what's so good about Mac OS X:  A beautiful UI on top of some serious software.  The initial experience is about as good as it can be:

Plug in external USB drive.  The system notices, asks if you want to use this drive for Time Machine Backups?  When you say yes, it asks you if it's OK to erase what's on the drive if it's not formatted HFS+ (the Mac native file system). Say yes to this, and you're done.  A backup is scheduled for a short time later.

However, some people have been reporting that this first backup is taking a very long time, and I was one of them.  My PowerBook has a 60 gig drive in it, and after 2 solid days of backing up, I started to get suspicious.

Digging around the Apple forums, I found a few people who said that letting Time Machine format the drive was the problem, so I stopped the backup, formatted the drive myself using Disk Utility, and then started a new backup.  This one went very quickly, completing the backup in a few hours.

During the slow backup I had a look at file system activity using fs_usage (a very handy tool), and noticed that the Finder process was constantly making getattrlist calls on files all over the Time Machine backup disks during the backup; during my successful backup this wasn't happening. 

Someone had also suggested that the problem was that Spotlight was indexing the backup drive during the backup, but before formatting the backup drive, I tried adding it to the Spotlight exclusions and kicking off a backup, and that didn't help.  The problem seems to be something related to how Time Machine prepares the disk.

Anyway, now that my initial backups are done, incremental backups are quick and I get to play with the funky Time Machine starfield UI that makes me want to trash files just so I can go get them from my backups.