MP3's? Hell yes!

I has a surprisingly good experience buying a CD this evening. The album was Superhero, by Stephen Lynch. I saw him on Comedy Central again today, and this time I just had to buy the album. I highly recommend him to anyone with a slightly warped sense of humor.

Anyway, when I clicked the "buy" link for this album on Stephen's website, it took me to a site called What Are Records. The surprise? They had two purchase options for this album: buy the CD for $14.99 or download a zip file of the MP3's for $10.99. Needless to say, I decided to take that option.

To top it off, the MP3's were actually good quality. The ID3 tags were filled in, they were encoded at 192kbps, and even came with MacOSX metadata files (not that that does me any good, but it's a nice touch). No DRM worries, no special software; just a download link to a vanilla zip archive full of standard MP3 files.

This is how buying digital music should be. You give them your credit card number, they give you some media files you can play on your computer, put on your MP3 player, or burn to a CD for the car. No special software, obscure formats, no encryption. Just the files I want with no hoops to jump through. What Are Records: you rock!

Too bad Apple can't learn from these guys. They're the people who are supposed to make everything "just work" and produce such a great user experice with everything, but it's really all just a lie. In their eyes, it's either their way or the highway. If you have a Mac and an iPod, you'll get a great media experience. However, if you don't go Apple all the way, then you can pretty much drop dead for all they care.

Not that I really have anything against Apple. To me, they're no different than Microsoft: just another company doing what's best for their bottom line. There's nothing wrong with that. It just annoys me that Apple gets credit for being the "good guys" of the proprietary software world when, in fact, they're just as evil as everyone else. They just have better "image" people.

Crystal Reports deployment somewhat fixed

It seems I've sorta kinda fixed my Crystal Reports problem from yesterday. I say "sorta kinda" because I now have it working on other machines, but I don't know why it's working yet.

After getting close to the point of desparation yesterday, the solution process was simple: start adding things until it works or I reach the same configuration as my development workstation. Thus, I grabbed the Visual Studio .NET 2002 Professional CDs and got to work.

I started from a more or less default Windows XP Pro system running in VMware. I ran the setup package I had built yesterday, but still got the "query engine error" message. So I did a full .NET Framework 1.0 install, but still got the same message. Then I tried the .NET 1.0 service pack 3, but no change.

Next was Visual Studio. Of course, I didn't really want to install VS.NET on the end-user's PC, so I decided to run my test application after every step of the installation process.

It turns out I only needed one step. After the initial "update windows components" step, my test program worked. I don't know why. The only thing it installed were the FrontPage 2002 client stuff and the setup runtime files, whatever they are. I'm guessing the magic was in the latter, as I can't imagine what Crystal Reports has to do with FrontPage, but so far I'm just guessing.

Now I just need to figure out what magic library made the difference. Does anybody have any ideas? I'm pretty sure I didn't miss any of the libraries mentioned in the Crystal documentation. If only there were some kind of diff tool I could use for Windows installations....

Crystal Reports is pure evil

I've had a rotten day. Just rotten. The kind that makes you want to curl up on the couch for a week, doing nothing but eating ice cream and watching old movies. Except that we just started a diet and don't have a TV in the living room.

My trial today was Crystal Reports with Visual Studio .NET 2002. I have a bunch of reports and a handy little application that pass two file names (the Crystal report and an XML data set) and have it pop up a preview window. It does basically what I want and works pretty well. But only on my machine.

No matter what I try, I can't get it to work anyplace else. I've gone through the documentation and tried every suggestion that was even remotely applicable, and it still doesn't work.

My initial problem was with the CR registration. That was easily fixed by adding the regwiz.msm merge module to my setup project and setting my registration code in the properties. Rebuild and reinstall the setup package. Problem one down.

After that, I discovered that I needed a few other merge modules. The full list is managed.msm, database_access.msm, database_access_enu.msm, and regwiz.msm. OK, fair enough. So I add those, rebuild my setup project, and reinstall. Problem two down.

At this point, the good news is that I'm no longer getting weird DLL exceptions. The bad news is that now I'm getting nebulous "Query engine error" messages when I try to set the report viewer's reportsource.

This is really bad, because my research leads me to believe that there are just about a bazillion different causes for this error. I tried every remotely applicable solution I could find, but so far nothing is working. I've double checked that msvcr70.dll and msvcp70.dll are present, that crqe.dll is registered, and I've even tried reinstalling the entire .NET 1.0 runtime, which is supposed to be included with XP in the first place.

On top of that, I tried changing my reports and my code. I read a suggestion somewhere that reports using data sets with multiple unlinked tables can cause problems, so I changed the report to use a single table. That didn't work, so I changed the data set to contain only a single table. That didn't work either, so confirmed that the data set schema matched the one used to create the report.

At this point, I have now created a minimal report viewer application as a test. I grabbed my single-table XML file and stuck it on a network drive. Then I used the report expert (what a crappy name) to create a simple report using that file as the data source. Last, I created a simple one-form application with a report viewer control. It just loads the XML file into a data set, creates a report document and loads it with the simple report, sets the data source, and then sets the report document as the viewer's report source.

The result? It still doesn't work, even with all the complications removed. On the up side, this seems to confirm my suspicion that there is some kind of runtime dependency that I'm missing. On the down side, I have no idea what it could be....

Weird "BadDevice" error

Today I finally got around to looking up the solution to that wierd X error I kept getting in Ubuntu. It's the one where running pretty much any X application from a virtual terminal results in errors like "X Error: BadDevice, invalid or uninitialized input device 168".

Turns out this is a pretty easy fix. These messages are apparently due to lines in xorg.conf to support some kind of tablet PC, or something. So, just comment them out, restart the X server, and you're good to go.

Are there really that many stupid developers?

I have a question for all the programmers out there: do people really write code in Windows Notepad? And if so, who and how many are they? I want to know so I can try to steer clear of them.

I see this every now and then in forums, tutorials, and so forth. It usually comes as instructions to open a particular file in Notepad, or open Notepad, type in this text, and save it as such and such. In some cases, it is followed by the revelation that you can download some kind of specialized editor for the file type at hand.

The worst part is that I've seen this from people who I know are not beginners. For example, one person I spoke with, who has been programming for over 20 years, said that when writing ASP applications, she uses Visual Studio .NET or Notepad. Apparently there's no in between there. It's either the heaviest of the heavy-weight IDEs, or the least code-friendly text editor in the world.

Why do people write code in Notepad? Why? It's the text-editor equivalent of writing code on punch-cards. Maybe it's just me, but every time I double-click a programming-related file in Windows and it opens in Notepad, I curse under my breath, close Notepad, and right-click the file to open it in Vim or jEdit. I mean, unless you're on somebody else's system and Notepad is the only thing available, I just can't contemplate using it for any actual work.

Can anyone enlighten me on this? Is it just ignorance? Do some people actually like Notepad? What's the deal?

New URL

Just a quick site change notice. The URL of this blog has changed to http://linlog.skepticats.com/. This is thanks to the new web host that supports subdomains and my adding subdomain support to LnBlog.

Thanks to the magic of Apache's mod_write, the old URLs should all still work. Just FYI.

New cell phone goodies

My order of goodies for my new cell phone came in the other day. For about $75 after shipping, NewEgg sent me a Bluetooth headset, a USB Bluetoothe adapter for my PC, and a 1GB microSD memory card.

The funny thing is, the memory card made me feel old, probably because I'd never actually held a microSD card in my hands before. I mean, I remember the days when 1GB was a good size for PC hard drive. Heck, I even remember, when I was a kid, playing Zaxon off a cassette tape on a Radio Shack brand computer that hooked up to the TV. And now we can fit huge amounts of data on a chip that's literally smaller than my thumb nail. How times have changed....

So far, the news is mixed with the new gadgets. The good part is the microSD card. I basically just stuck it in my phone and it created the appropriate directory structure when I accessed it. I was then able to dump MP3s in the card's mp3 directory and my phone is now a music player. I'll review the phone in greater depth in another post.

The Bluetooth headset is Cardo scala-500. It's a hice headset, works perfectly with my phone, and comes with a whole bunch of little add-ons, including a belt clip, car charger, lanyard, and even a clip to hook it onto your glasses. However, I haven't had a chance to use it in an actual conversation yet.

The Bluetooth adapter, a KINAMAX BT-USB, has given me some problems. The good news is that it Kubuntu detected it right out of the box. The bad news is that I'm not entirely sure what to do with it from there.

Part of the problem is probably that I don't have the first clue about Bluetooth. I know it's a wireless communications protocol popular in cell phones and PDS and...that's about it. I certainly don't know what to do once kbluetooth detects my phone and connects to it.

My original purpose in buying this device was actually to access my phone with BitPIM over Bluetooth. However, it appears that isn't as simple as I'd hoped. From what I've read so far, doing that requires setting up an rfcomm device for the Bluetooth connection, which seems to be a non-automatic command-line affair. I also can't get it to work. Or rather, I can get a connection established and the rfcomm device created, but I can't keep it working long enough for BitPIM to actually complete a data transfer. I suspect this will take some research.

Windows is WAY harder to use than Linux

We went to visit my parents this past weekend and, as always, I ended up doing a little tech support. This time, it was actually for my brother's new laptop. He needed to get his data off his ancient Windows 98 box and his best idea of how to do it was to transfer all 12GB of it to the new system over IM. I didn't bother to explain all the myriad ways in which this was completely crazy.

Moving data from a Windows 98 PC to a Windows XP laptop proved to be slightly more difficult than I initially anticipated. Plan A was to use a handy-dandy USB thumb drive. However, Windows 98 doesn't natively support USB mass storage devices, so I needed drivers. However, for the one device I did have drivers for, I couldn't get Windows to pick them up. They installed with no errors, but when I plugged in the drive, it wasn't recognized. So plan A was a complete failure.

Plan B was to set up a good, old-fashioned network share. That didn't work very well either, though. After setting both PCs to use the same workgroup, the 98 machine couldn't connect to the XP machine, and the XP machine couldn't even see the 98 machine. So, fool that I am, I tried the XP home network setup wizard. After that, the 98 box couldn't see the XP system anymore. Of course, it might have something to do with the fact that I didn't run that network setup disk XP prompted me to create on the 98 box. Not that I could have if I'd wanted to. The setup wizard apparently can't put the disk on a CD-R, the laptop has no floppy drive, and the 98 box can't do USB drives, so how was I supposed to make the disk?

So plan B was a bust. Apparently I'm just not smart enough to figure out the magic of how Windows networking functions. I must admit that I don't know much about it, but apparently it's another one of those opaque Windows things: it either "just works" the first time or it doesn't and you're completely screwed. I guess I'll have to do some reading to figure out exactly what went wrong there.

So that lead me to plan C: when all else fails, use Linux. I remembered that my mother's system runs Xandros, has an SSH server, and has a mostly empty 80GB hard drive. So I did a quick web search and found WinSCP, a free graphical SFTP and SCP client for Windows. I installed that on both Windows boxes and problem solved! Just upload all the data from Win98 to Xandros, and then download it from Xandros to XP. Plan C was a success!

Too bad it took so long. I wasted way too much time on trying to set up a network share, and I never did figure out what the problem was. So much for Windows being "easy to use."