Archive for the ‘Rants’ Category.

I hate licensed software

Speaking as the “IT guy” for my workplace, I hate obtaining/installing/upgrading licensed software. This hatred has little to do with the monetary cost or purchasing process; it’s the backbreaking overhead that one incurs when dealing with licensing. The pain is even more acute when you compare it with the ease of open source software:

zypper in OpenOffice_org

The above command installs a fully-functioning office productivity suite on an openSUSE system. Of course you could do the equivalent through a GUI if you aren’t comfortable with the command line. You can probably guess that obtaining and installing Microsoft Office takes quite a few more steps than that.

Back to the subject of licensing overhead, I can slot my complaints into a few categories:

Hiccups

I’m defining “hiccups” as all the little stumbling blocks toward obtaining licensed software even after you’ve gone through the purchasing process. Example:

  1. Purchase a volume license for MS Office.
  2. HICCUP! I need an eOpen account.
  3. HICCUP! I have to use Internet Explorer.
  4. HICCUP! The eOpen account that I created months ago, and even have a confirmation email for, does not seem to work.
  5. HICCUP! Create a new eOpen account and associate my volume license with said account.
  6. HICCUP! No product keys found.
  7. HICCUP! Call the original vendor; they suggest problem is due to <NONSENSICAL REASON>; they email me the product key.

Can you see how much time this wastes? I have so much stuff to do – I just want to toss MS Office on this person’s computer and move on, but I’ve got to grind through all these obnoxious problems.

Another example:

  1. Purchase downloadable copy of some chemistry software.
  2. HICCUP! I don’t get the email containing the download link until over two hours later.
  3. HICCUP! The link doesn’t work; yes, I’m very carefully copying the URL.
  4. HICCUP! Call customer service; am told to forward the email to them.
  5. HICCUP! After one hour, still waiting on a reply.

And there are plenty of other examples. Maybe the problem is that vendors are still struggling to streamline their digital distribution procedures. All I know is that their efforts to protect their product are burning my time into ash.

License tracking becomes my responsibility

Yeah, this is probably part of any IT guy’s job, but I have to make sure that I keep track of all software versions, product keys, and installations. Some licensing sites will do that for you, but then you just have more places you need to look.

My gripe is that because the software happens to have a license associated with it, I have to do extra work. For whatever reason, this is far more annoying to me than the work I do to track a physical item, like an LCD monitor. Perhaps the reason is that I can move the monitor anywhere and use it for any purpose – without worrying about entering a product key or thinking about previous installations.

User education/enforcement

No, just because we have a copy of Photoshop doesn’t mean that we have an infinite volume license. The license agreement is for a single user. Yes, it allows you to install multiple places because 1) a single user often has a desktop, a laptop, and maybe a home computer, 2) that single user may need to reinstall the software, and 3) trying to limit installs with some sort of copy protection is probably more trouble than it’s worth.

In my small workplace with many computer-savvy, independent thinkers, I’ve had to work to pull the reins in on licensed software. Example:

CONVERSATION BEFORE ME:

Person A: Where are the install disks for software X?
Person B: Here.

CONVERSATION AFTER ME:

Person A: Where are the install disks for software X?
Me: We have a single license for software X that is currently in use. If you need software X, then I can purchase a license for you.

Conclusion

This is a rant so maybe not everything I’ve said is entirely rational. Or maybe I’m just venting over the nature of the beast. Certainly I’ve had some good experiences with licensing; for example, AVG has consistently been trouble free. My hope is that we begin to see a greater adoption of open source software, and perhaps a homogenization of the way licensing is done. Perhaps software vendors, especially the smaller ones, could outsource their licensing needs to external companies, much like they do with digital distribution (I see lots of companies using DigitalRiver). They’d simply add the “E-Z License” module to their code or something. I don’t know… just blowing some steam while I wait to hear back about that broken download link.

Norton Nightmares: Windows cannot connect to the Internet using HTTP, HTTPS, or FTP

The Problem: following a Norton Internet Security uninstall, I could ping IP addresses and hostnames, but not browse to either. Running XP’s Network Diagnostic gave me something like: “Windows cannot connect to the Internet using HTTP, HTTPS, or FTP”. The problem went away when running in Safe Mode.

I tried everything, including:

The Solution: run the Norton Removal Tool.

After 10+ hours of debugging, the problem was that my initial uninstall of Norton Internet Security had left severed limbs of that wretched beast still clawing at the vital organs of the WinXP laptop. I could hardly believe it. I did find Symantec remnants scattered around the system during my trials, but I dutifully removed them all. Yet somewhere, somehow, Norton was still doing what it does best: grinding computers to a halt. Reminds me of a Haiku that a wise man once wrote

Mac OS X (10.5.6) Spotlight search results are crippled

Open a Finder window, run a search, and you’ll see that the results are presented in three sortable columns: Name, Kind, and Last Opened.

You might expect to be able to adjust those columns to include/exclude whatever file attributes you wish. After all, you can certainly do this when using Finder to browse the file system. What you wouldn’t expect is for Apple, a company known for slick GUIs and user-friendliness, to leave you standing alone on the freezing tundra with your pants around your ankles.

Sorry, I’m not sure why that particular imagery popped into my head.

I won’t spend too much time griping about this because others have already done the work for me:

The take home points are: 1) you cannot customize the search results, 2) “Last Opened” is a silly attribute to use, and 3) no one seems to know when/if Apple is going to correct this usability issue.

I submitted an enhancement request to Apple through their Bug Reporter and I suggest that you do the same. Blogging about the problem also couldn’t hurt.

A competent programmer who is familiar with the software could add customizable columns to the search results in about a day. Maybe figure a few weeks of testing/QA and Apple could push an update out the door. Or maybe this feature will be included in 10.6 as a way to get people to buy Snow Leopard. Either way, it’s a perfect example of the shortcomings of proprietary software.

UPDATE: Apple’s predictable response…

This is a follow up to Bug ID# 6778875. After further investigation it has been determined that this is a known issue, which is currently being investigated by engineering. This issue has been filed in our bug database under the original Bug ID# 5981948. The original bug number being used to track this duplicate issue can be found in the State column, in this format: Duplicate/OrigBug#.

Thank you for submitting this bug report. We truly appreciate your assistance in helping us discover and isolate bugs.

PHP zlib.output_compression fails to set Content-Encoding

This is what the PHP docs say about the zlib.output_compression INI directive:

Whether to transparently compress pages. If this option is set to “On” in php.ini or the Apache configuration, pages are compressed if the browser sends an “Accept-Encoding: gzip” or “deflate” header. “Content-Encoding: gzip” (respectively “deflate”) and “Vary: Accept-Encoding” headers are added to the output. In runtime, it can be set only before sending any output.

Seems pretty straightforward, except that enabling this directive on an openSUSE 10.3 server (and an openSUSE 10.2 server) resulted in a bunch of gibberish as output. Meanwhile, the compression worked just fine on my MacPorts-enhanced MacBook.

After flailing around on Google and php.ini, I eventually eliminated SSL and the firewall as reasons for the problem. During this process I wasted a good amount of time on this bug. Basically, the docs say that you can set zlib.output_compression in your script at runtime, but in reality it doesn’t work.

I finally got down to business with Live HTTP Headers and figured out that enabling zlib compression on my openSUSE servers certainly compressed the content, but did not send the requisite “Content-Encoding: gzip” response header. Sending the header manually within my script (e.g. header("Content-Encoding: gzip");) would correctly turn the gibberish into uncompressed form.

Having already spent hours mucking around with this, I went with a quick and dirty solution:

ob_start('ob_gzhandler');
echo $page->toHtml();
ob_end_flush();

I hunted around Google for this problem, but only found PHP4 references from years ago. Maybe it’s time to ditch openSUSE on my servers… Ubuntu LTS might hit the spot.

Mediawiki extension WTFs

Had a number of WTF moments when looking for a wiki2pdf type of Mediawiki extension. I came across Pdf Export which seemed to be what I wanted. But as I looked over the extension, the WTFs began to pile up:

  • The required version of Mediawiki is 1.14, but the current version of Mediawiki is 1.13.3. WTF?
  • Okay, let me download the source… WTF? I’m supposed to copy-and-paste this into four different PHP files?
  • Interesting… there are edit links next to each block of code. Can I, an anonymous user, just edit this code? Ah, yes I can. WTF??

Looks like most extensions seem to be in an SVN repo, but Pdf Export does not appear to be among them. The main page for this extension lists the version as 2.0 (4-Nov-2008), but I’m not sure what that means if the distribution code is a publicly editable moving target.

I think what’s happening here is that the extension ecosystem is far more “organic” than I had anticipated. They seem to have made the task of collaborative programming as quick and open as wikis themselves. The concept is actually kind of cool.

Still, I’d rather install an extension with a pdf_export-2.0.tgz or something than copy code off a wiki that may or may not have just been modified by h4CK3R420.

Averatec 2300 series sucks

So, user comes to me with a two-year-old Averatec 2300 laptop that “won’t boot”. He’d had some weirdness with his XP install before so I went in thinking the OS was messed up somehow. But once I actually got the laptop in my hands, I realized I was dealing with a hardware problem.

Symptoms

  • Powering on, you can hear the optical drive whir (inserting a disc will cause it to spin up)
  • Power light is on
  • Wifi light is on (assuming the wifi switch is not “OFF”)
  • HD light flashes once
  • Fan does not spin
  • I do not hear the HD spin up
  • No BIOS screen, display is unlit

Searching around on the web, I found a lot of people complaining about Averatec. The most relevant thing I found was a thread with the amusing title of 2370 sleep turns into coma.

Diagnosis

Even if the RAM were bad (and I had successfully memtest’ed it a week or so ago) I’d expect to hear the fan spin up. Basically, the laptop hardware seems to be “stuck” in a suspend/hibernate state.

Treatment

If this were a desktop I’d pull the CMOS battery and use a jumper to clear the BIOS. Unfortunately, the impression I got from the Intertron is that there is no jumper and the battery is soldered to the board. Rather than spend the rest of my day trying to revive this piece of garbage, I’m just going to grab the hard drive, copy the data off, and tell the guy to buy a non-Averatec laptop.

Frustration with fantasy football “experts”

You know that fantasy football has hit the big time when you can turn on ESPN and watch some dork telling you about his Starts and Sits of the Week. Fantasy football “experts” are on TV and radio, and of course the Internet is infested with their teeming numbers. But when you’re surrounded by a boisterous crowd of people eagerly giving you their Pickups of the Week, who da ya trust?

The biggest problem with these experts is accountability. Plenty of people are willing to give you their rank lists each week, but never do they provide any analysis of their own performance. Once you get out of the top 5 or 10 on these lists, opinions can vary wildly. One site might rank a WR at #10 this week, and another might put him at #30; that’s a huge difference between “experts” who are forecasting based on the exact same source data.

To be fair, fantasy football is a crap shoot. A gust of wind can make the difference between a receiver scoring 15 fantasy points, or only 3. The experts have to look at a player’s skill, his health, his surroundings, and his matchups to make a guess about where he stands relative to the others at his position. You can’t expect accuracy when there are so many chaotic variables, but I have to think some experts are better than others.

I’ve been kicking around the idea of grading the “gurus” by comparing their rank links to how things play out on the field. I’d use a few computer programs of course, but I’m not sure that I want to invest the time. What I do want are error bars for each fantasy football analyst. If someone says that LaDainian Tomlinson is the #10 running back this week, is that 10 +/- 5, or is it 10 +/- 10. The experts will almost always be wrong, but I want a measure of how wrong they tend to be.

The result would be that I can go with a single analyst and have some confidence in his/her opinion. Or maybe I’d find that one analyst is really good at judging running backs while a different one is better at quarterbacks. I really want to see those numbers, but I’m balking because it would be a pain to parse all those different websites. We shall see.

A couple of fantasy football guys that I do like:

  1. Andy Behrens – his blog/columns can be useful for keeping up with NFL news or practical fantasy tidbits, but the main draw for me is that the guy is a good writer with a great sense of humor.
  2. Jamey Eisenberg – I haven’t checked his accuracy, but I like his analysis on the CBS website and podcast. He thinks about things in a rational way and tends to have meaningful data to back up his claims. I’d be interested to see how his picks stack up against other experts.

Well… perhaps by next entry I’ll have put my fingers to the programming grindstone and analyzed the analysts.

CBS Sports pwn5 Yahoo in fantasy football

This is a brief description of the total pwnage that CBS Sports exhibits over Yahoo in fantasy football.

Free Agents / Waivers: Yahoo has a free-for-all system where you basically pick up players at any time. This means that the jerk who hovers over his laptop all day on Sunday will always win. CBS Sports handles this in a much more sane and intelligent way; cherry-picking from their rules:

All players will be placed on Waivers at the start of games every Sunday afternoon, at 12:55 PM ET during the course of the NFL season.

The waiver process will run for the first time each week between midnight Tuesday/Wednesday and 6:00:00 AM Wednesday which is approximately 24 hours after the completion of Monday night’s game.

During the waiver process, pending transactions are processed in an order determined by each team’s waiver rank. The team with a waiver rank of 1, considered the highest, will get its first requested player. After the transaction is executed, the team’s waiver rank is then set to 12 (last), and all other teams move up one. The waiver ranks are reset once each week after standings are updated on Monday night/Tuesday morning. The last-place team (based on won/lost record) will be given the waiver rank of 1, down to the first-place team, which gets the waiver rank of 12.

Scheduling: Yahoo allows for a flexible number of teams in a league, pitting them against each other in a round-robin fashion. CBS Sports forces you to have exactly twelve teams in a league. This might seem restrictive, but the benefits soon become very clear:

  • A league of twelves teams allows for the creation of three divisions, each containing four teams.
  • You play each team in your division twice, and non-division opponents once.
  • The structure is thus more similar to the real NFL with division rivals, a wildcard chase, and strong/weak division debates.

Live scoring: Yahoo charges for live scoring; CBS gives it to you for free.

Data mining: Yahoo does provide sortable/selectable views of statistics, but CBS goes a lot deeper with it. You have much better control over manipulating the data and advanced features abound.

Alerts: If memory serves, Yahoo’s email alert system was skimpy at best. With CBS, you can configure the types of alerts/reports that you want sent to email and SMS messages.

In conclusion, I first found the CBS Sports interface to be amorphous and bland compared with Yahoo’s sharp, cohesive and AJAXified presentation. But after playing around over the course of a week or so, I see that CBS offers a rich, feature-filled, and customizable fantasy football experience. All in all, Yahoo is pwn3d.

Treo, Centro, and Verizon: a bubbling cauldron of misery

The title of this post is a little extreme, but I have had some frustrations when looking to upgrade my Treo 650. Here are a few notes I’ve made over the past few days:

I’m not going to do business out of a goddamn mall kiosk

I’m willing to buy Dippin’ Dots from a flimsy stand in a mall concourse, but not sign a two-year contract for a vital utility like cell phone service. If I am paying for unlimited wireless broadband, and Verizon is going to charge $10 on top of that for text messages, then they can afford to rent out an actual store.

This isn’t the smartphone you’re looking for

Moving from the Treo 650 to the Treo 755p seemed like a pretty logical upgrade. Unfortunately, Verizon no longer carries the 755p. They have the 700wx which runs Windows Mobile (ugh, writing that made me feel like someone just kneed me in the balls), and the Centro which seems to be a smaller, sportier version of the 755p.

I tested out the Centro’s smaller keyboard and found that I could type just fine on it. The device also includes a number of software extras which addresses some of my previous complaints.

I may go with the Centro, but I have an odd hangup about doing so: it won’t fit in the case for my Treo 650. Pretty picky I know, but the case I have was a very nice present and probably cost somewhere between $50 and $100. Yeah, maybe I can eBay that stuff, but I still cringe at having to drop another big chunk of money to keep the thing from getting scratched up.

Planning for the future

Although I’ve come to rely on the standard Palm OS apps, I am very interested in Openmoko and Android phones. I don’t like being locked in by either a cell phone company or a device/OS vendor because they naturally use that exclusive relationship to milk you for as much money as they can. I’ve seen a few things online that indicate Verizon will be selling Linux-based phones in 2009, but nothing definite.

The Android-based HTC Dream will supposedly be available for T-Mobile later this year, but Verizon still has the best-coverage trump card. It may be that I should roll with the Centro for now, and see where things stand in a year or two.

Unexpected default values in MySQL after ALTER TABLE

So I had just done a test in my development environment where I:

  1. ran a script to set NULL values in column X to something appropriate
  2. altered the table to make column X be NOT NULL and give it a sensible default

After I moved these changes to production, I suddenly realized that I had accidentally done (2) before (1), meaning that column X would have no NULLs and therefore my script would not have done its important work. But oddly, the production DB matched the correct values in my dev DB.

I then spent an hour discovering a “feature” of MySQL. Given a query like this:

ALTER TABLE `Foo` CHANGE `X` `X` INT(11) NOT NULL DEFAULT '69';

MySQL (5.0.26, in my case) will not set NULL values in column X to 69, instead it will convert the NULLs to 0. My script treated both 0 and NULL as “empty”, so it ran as I had intended.

On one hand, I’m not sure that I see the logic in doing a NULL-to-INT conversion on existing NULLs rather than setting them to the default I specified. On the other hand, at least I don’t have to clean up my database now. But on my third, invisible Gil-the-Arm hand, I probably spent the same amount of time trying to figure out why this worked out as I would have fixing the DB.