How are open source CMSes like Microsoft enterprise software?

Aside from the fact that both topics would put the average blog reader to sleep before the end of the first…

OK, now that they’re asleep, let’s talk. Throughout most of my career, open source software and Microsoft’s (or, really, any software behemoth’s) enterprise “solutions” have seemed diametrically opposed. But the more I think about the situation, I begin to find some startling similarities, at least in their implementation (and reasons for said implementation), if not in their actual structure and licensing.

If you’re the one person (besides me) who’s spent any significant amount of time reading this blog, you probably know two things: 1) I don’t like Microsoft, and 2) I don’t like Drupal. So these are the objects of my scorn in today’s post as well, although the problems I’m describing can be generalized, I think, to the broader sectors of the software industry that they represent.

When I worked in the corporate world, I resented Microsoft’s dominance across the board from operating systems to desktop software to enterprise systems. It just seemed that most of their tools weren’t really that good, and eventually I began to realize that the reason they were successful was that Microsoft’s customers were not the end users, but rather the IT managers who made purchasing decisions. These decisions were largely based on their own knowledge and experience with Microsoft’s software (to the detriment of other, possibly superior options), but also (I believe cynically) to preserve their own jobs and those of their staffs. Microsoft’s systems require(d?) constant maintenance and support. Not only did this mean bigger IT staffs on the corporate payroll, but it meant lots of highly paid “consulting” firms whose sole job was to promote and then support the sales and implementation of Microsoft products.

In the indie developer world, where I now reside, the culture and software platforms are different, but perhaps not as different as they seem. Apple’s computers dominate the desktops in small studios, and the tabletops in coffeehouses where freelancers can frequently be spotted hunched over their MacBooks hard at work while sipping lattes and meeting (usually a little too loudly) with clients. And open source software dominates at the server level.

But just like Microsoft’s platforms, I think most open source software just isn’t really very good. And the problem, once again, is the customer (or… well… whatever you call the person who makes the decisions when selecting a free product). It seems that the end user experience is rarely given much priority when most open source software is being designed and developed. Part of the problem is a lack of direct contact between the development teams and those end users (or, to be honest, even between the geographically scattered members of the development teams themselves). Devs don’t really know what end users want or need. They only know what they want or need, along with what’s been submitted to their bug trackers.

It’s not that these devs are bad people, or bad at what they do. There’s just a disconnect between coder and user, and as a result the goal of building good software isn’t met.

So, why do independent developers still use tools that are not really the best for their clients? Again, cynically, I wonder sometimes if job security isn’t a factor. It’s a lot easier to build something that works, but that requires indefinite, ongoing attention and support, than to build something that is flawless, that you can hand off to your client and never touch again. It’s easier… and it provides built-in job security.

Now, I’m not perfect, and I’m not above all of this. There is no such thing as flawless software, and I have ongoing support contracts with some of my bigger clients. But I’m proud to say that’s mostly because I’m constantly building new sites for them, or building functional enhancements onto the sites they already have, rather than doing endless bug fixes and technical support because the tools I’ve sold them are too confusing or simply don’t work right. Sure, the bug fixes and tech support do happen. But the tools — primarily WordPress and cms34, my own CMS — are built much more with the end user in mind, and have managed to avoid the pitfalls that mean a guaranteed job for me at the expense of a mediocre user experience for my clients.

That’s harder, and riskier. But it’s better. I’m delivering a higher quality product to the clients, and I’m keeping my own work interesting and moving forward.

The real reason Android is (and has always been) in trouble

Over on Daring Fireball, John Gruber links to a Business Insider piece by Jay Yarow, called “Android Is Suddenly in a Lot of Trouble.”

Gruber responds:

It’s not that Android is suddenly in a lot of trouble — it’s that a lot of people are suddenly realizing that Android has been in trouble all along.

Exactly. But he doesn’t go on to mention why it’s been in trouble all along (though as I recall, he has in the past). I’ve seen plenty of reports, like this one from comScore that iPhones use WiFi networks significantly more than Android phones in the U.S. and U.K. This is one way of measuring the qualitative differences in how people use iPhones compared to how they use Android phones. You could also talk about app revenue, for instance.

All of these measurements and analysis revolve around one clear conclusion, especially when one considers how people end up walking out of a store with either an iPhone or an Android phone. Carriers are pushing Android because they can control the experience more. They’re giving away Android phones as stock upgrade models when customers’ contracts come up. People who don’t even care about owning a “smartphone” are bringing home Android phones because that’s just what the sales rep at the store recommended.

Android is in trouble because a lot of its users (the majority? the vast majority?) are just using it as a phone. It’s a commodity. A lot of the people buying it don’t really know or care what it is, and will never actively use its full potential. It’s just a phone. It may be capable of much more, but if it’s not being used for more, what difference does that make?

People who go into a store wanting to purchase a smartphone predominantly choose the iPhone. Not all of them, of course. Tech-savvy people do choose other smartphone platforms, including Android, especially those who want to tinker with the system. But the rest take whatever they are told to buy by their carriers’ sales reps.

This is the biggest reason Android tablets haven’t taken off, and it’s been discussed too. There’s a built-in market for the apathetic purchase of an Android smartphone. But no one (well, I hope) is walking into a cellular carrier’s store and saying “I want a tablet. What tablet do you recommend?” People who want a tablet don’t just want a tablet; overwhelmingly they want an iPad. Most people who don’t want an iPad don’t want a tablet at all. (Almost) everybody needs a phone.

The problem for the carriers, and the reason they’ve been promoting Android, has typically been that Apple retains too much control (from the carriers’ perspective) over the iPhone. That’s not likely to change, but with Windows Phone, suddenly the carriers have other options. Microsoft is definitely keeping a tighter rein on Windows Phone than Google does with Android, but with Windows Phone, the carriers still have options they don’t get with the iPhone. (Not that this lack of control has prevented them from selling millions of the things.)

If Verizon is serious about pushing Windows Phone (along with the fact that they still sell huge numbers of iPhones), then we’ll soon begin to see just how Android was, as Gruber says, in trouble all along. The success it has achieved to date was largely dependent upon carriers pushing it on unsuspecting or indifferent customers. If they stop doing that…

When is a CSV not a CSV? When you’re downloading it in Safari

Here’s another post that’s basically a cry for help. I did find this forum thread on the topic, but not a solution.

The problem: when I download a CSV file in Safari, for some inexplicable reason, Safari appends a .xls (Microsoft Excel) extension to the filename.

Never mind that I don’t use Excel… I use Apple’s own spreadsheet software, Numbers, from the iWork suite. Never mind that I don’t even have Excel installed on my Mac. Why, why on Earth, would Safari append a .xls extension on a CSV file? It’s not an Excel file; it’s a CSV. Different format. Sure, Excel can open it. But, you know what? Numbers doesn’t open it properly when it has that stupid extension on it.

Take the exact same file, remove the .xls extension (leaving the .csv extension), and Numbers opens it just fine. Leave it the way Safari has it, and it’s a mess.

This is not the only annoyance I have with Safari’s handling of downloads. I also hate how it automatically expands “safe” files, placing the original .zip or .dmg file in the Trash. I don’t want to delete those files! But if I turn this option off, it also doesn’t open the files I want it to open automatically, like Amazon MP3 downloads.

But hands down, this CSV bug — yes, that’s right, I called it a bug — is my biggest source of frustration. Sure, it’s easy enough to remove the extension. But it shouldn’t be there in the first place!

“All in” is right

Today, according to banner ads and discussions from the likes of Neven Mrgan and Gizmodo, Microsoft is “all in.” All in “the Cloud,” that is, though the poker metaphor of betting the company on an all-or-nothing strategy seems apt.

Reading some of Steve Ballmer’s vacuous corporate speak surrounding this campaign (including the following PowerPoint-ready bullet points), I am not overwhelmed with enthusiasm for the endeavor:

- The cloud creates opportunities and responsibilities
- The cloud learns and helps you learn, decide and take action
- The cloud enhances your social and professional interactions
- The cloud wants smarter devices
- The cloud drives server advances that drive the cloud

My perspective on this kind of “communication” (such as it is) has evolved over time. When I was 25, it intimidated me, because I didn’t understand it. When I was 30, it annoyed me, because I realized there was nothing to understand, and it was just wasting my time. Now, at 35, it worries me, because I realize that this is how the people who are running things — important things like Microsoft, for crying out loud — actually think. They write nonsense like this and think it’s meaningful.

I wouldn’t bet on that.

Update: In Ballmer’s defense, the full presentation provided a lot more details than this bullet list, but it’s still a lot of not really very much.

Windows 7 on a MacBook: first impressions, part two (a.k.a. second impressions)

More creepy Windows wallpaperIn my first installment, I discussed the experience of getting Windows 7 up and running on my MacBook. In short, other than the extreme headaches of spending three hours of my Thursday afternoon on a fruitless quest for assistance from Microsoft’s telephone technical support, and a lack of reasonable explanation for the seemingly arbitrary solution to my problem once I did discover it (something so common with Microsoft’s software that I scarcely question it anymore), the overall process went pretty smoothly. Windows 7 is without a doubt the most polished OS Microsoft has ever delivered. And, dare I say it, I actually think it has the most attractive GUI of any OS out there. Yes, I like its looks better than Mac OS X — if only because it actually has some personality, whereas Apple deliberately makes its OS as unobtrusive as possible — and it looks way better than the diarrhea color scheme and ugly Verdana knockoff font of the default theme on Ubuntu Linux.

That said, it’s still Windows, and as soon as you scratch the dazzling glassy Aero surface (which runs just fine on my MacBook, by the way, despite Windows 7 Upgrade Advisor claiming otherwise), you find the same old Windows tools. Or, more specifically, several generations of them. There are tabbed panels that look like Windows NT 4.0 with a fresh, glossy coat of paint. There are Windows 2000-era quasi-website interfaces. And so on and so on — remnants of every past ill-considered usability “streamlining” concept Microsoft has entertained.

Which version of Windows IS this, anyway?

This is ultimately the biggest downfall of Windows 7 — the legacy of earlier, poorer versions of the OS that Microsoft just can’t shake off. They’re trying hard to take this OS into the future, but they’re too shackled to their past, even with fading support for older applications.

I’ve been using Windows 7, not as my main OS, but fairly frequently, over the past few days. I’ve grabbed a number of freeware applications that will allow me to do my essential work within Windows 7, when necessary — Firefox, Safari and Chrome for browser testing; iTunes so I can listen to music (yeah, I could use Windows Media Player, but iTunes came as part of the Apple Software Update); Notepad++ for code editing; the GIMP for image editing; and FileZilla for FTP. I may grab OpenOffice too… but I think WordPad will probably suffice if I need to edit any documents. I’m not really going to be making Windows my main environment, but with this set of tools I can get by in it without having to reboot into Mac OS X, just in case some actual work comes my way while I’m tinkering around with Microsoft’s new operating system. (Yes, ultimately at this point it’s really just a toy for me. I could have bought a new Nintendo DS Lite, but I decided to buy Windows 7 instead.)

There are little quirks that take getting used to — the feel of the keyboard and mouse is slightly different; I have to remember to press the Ctrl key instead of the Command key; widgets are gadgets, etc. Ultimately, my biggest complaint about Windows is what I hinted at above with the legacy of different window interfaces all coexisting: Microsoft is too beholden to its past, and to the many players to whom it has to appeal. For all its weight in the software industry, Microsoft has a surprising lack of control over, or cohesive vision for, its products. Windows 7 has a very nice layer of polish on its surface, and the adventurous designs are refreshingly appealing in comparison to Apple’s vanilla interfaces. But below the surface layer, Windows still has a severe case of multiple personality disorder.

That said, this is by far the best Windows ever.

Windows 7 on a MacBook: first impressions

This is not your father's Windows wallpaperI’ve been talking a lot about my experience trying to get Windows 7 up and running on my MacBook, and now that it is, I thought it might be good to give some of my first impressions, both of the OS overall, and of my experience of using it on a MacBook.

A few notes: first, this is not really my first experience with Windows 7. I’ve been running the Release Candidate (Windows 7 RC) in a Parallels Desktop virtual machine on my Mac for several months. But this is my first experience with the commercial release, and the first time I’ve been able to boot into it directly, via Boot Camp. And second, while I howled to the moon about my problems installing Windows 7 yesterday, the issue was really strictly one of poor technical support. I’m not sure why the product key problem was happening, or why an “in-place upgrade” fixed it. But I do know that Microsoft’s technical support was not only no help to me, they also wasted three hours of my time by proving utterly incompetent at addressing my problem. But telephone technical support is a separate matter. Today I’m looking strictly at the experience of installing and using Windows 7, on a Mac… specifically, a late-2008 aluminum unibody MacBook.

Purchasing Windows 7

Let’s start at the beginning. It was very easy to purchase Windows 7. I walked into Best Buy, picked up a copy on a display near the checkout, gave the cashier my credit card, etc. OK, that’s not really what I meant. Windows 7 comes in three versions: Home Premium, Professional, and Ultimate. While I think the distinction is unnecessary (and is purely a sales and marketing gimmick — features were arbitrarily omitted from the non-Ultimate versions), and is something Apple wouldn’t do, the three tiers make reasonable sense, and allow Microsoft to charge a premium to corporate clients who need the features of Ultimate and won’t balk at paying an extra $100 per seat to do it. Microsoft provides a handy comparison chart listing the differences. This actually was useful to me, as I might have been inclined to purchase Professional, but the comparison proved to me that there was nothing I needed that wasn’t included in Home Premium.

The prices being most heavily promoted are the upgrade prices, Home Premium coming in at $119.99. There’s not really any reason to buy a full version, however, as the upgrade is valid for any PC already running Vista or XP, and most new computers will come with Windows 7 anyway. I suppose if you’re building a new machine on your own, technically you need to buy a full version, but in that case you should just head over to Newegg and buy the OEM version. It’s legit and it will save you money. You just don’t get the fancy box with one rounded corner.

Installation

Invalid product key nightmares aside, the installation process was pretty painless. If you’re upgrading from XP, like I was, you need to do a clean install. But I’d recommend a clean install anyway, unless you’ve been too lazy to back up any of your data, or you’re in too much of a hurry to take the time to reinstall your software (assuming it even works with Windows 7, since Home Premium doesn’t come with XP virtualization). We Mac users are used to more frequent OS updates, and they’re always a good time to get a fresh start with a clean install. You’re much less likely to run into problems down the line. Plus, won’t it be nice to scrape off that patina of quarantined malware?

In order to do as clean an install as possible, I went back to the very beginning, and used Boot Camp Assistant in Mac OS X to remove and recreate my Boot Camp partition. I took the opportunity to increase it from 32 GB to 64 GB. One word of warning: at this point Boot Camp hasn’t been updated to support Windows 7. As far as I can tell, this means two things: 1) some Apple hardware may not yet have drivers, and 2) Boot Camp is going to format the partition as FAT32, which isn’t supported by Windows 7. I can’t speak much to the former (although I’ll address Bluetooth keyboard and mouse problems in a minute), but as for the latter, the problem is easily solved: Windows 7 has the least complicated installation process I’ve ever seen on a version of Windows. At one point fairly early in the installation process, you have to pick the partition you want to install on. Pick the Boot Camp partition, but before going on, format it first. There’s nothing arcane here. Not even any choices. It has to be NTFS period, so you won’t even see “NTFS.” Just format it. Once you’ve formatted it, you won’t see BOOTCAMP in the partition name anymore. Just make sure you’ve still got the correct partition selected (it will be the last one in the list), and continue.

Now, assuming you run into the same problem I had, here’s the solution: if you get to the point where it asks you to enter the product key, and upon doing so you’re told “The product key is invalid,” just reboot from the installer DVD and start the installation process again. Do not reformat the drive this time. Installing again over the existing installation is what is meant by “in-place upgrade.” Everything I read last night when I learned about this trick made the whole thing seem a lot more complicated, but really, that’s it. Once I did that, when I got to the product key, it took it, and the installation proceeded just fine from there.

One more thing I need to mention for those installing on a Mac using Boot Camp: Windows 7 reboots the computer automatically a few times during the installation process, and unless you’ve configured your Mac to boot directly into Windows (which you probably haven’t), you’ll find that each time this happens, it restarts in Mac OS X. The solution is to be holding down the Option key when you reboot, which lets you pick which OS to start up. If you’re already at the Mac login screen or desktop, don’t worry. Just restart, and this time hold down the Option key as soon as you hear the chime, until the startup disks appear. Click the Windows icon (the hard drive, not the DVD) and you’re in business.

Using Windows 7 on a MacBook

How does Windows 7 run on the Mac? Just fine. Remember, Intel Macs are PCs, with solid hardware specs comparable to midrange and high-end systems from the major PC manufacturers. Macs run Windows just great. The one situation where you may run into problems, though, is with components of the Mac hardware that may require drivers that aren’t supplied with Windows. In particular, on the MacBook, this means you may have issues with the all-in-one trackpad. Multitouch is missing, and most frustratingly, Windows doesn’t know how to treat the bottom portion of the trackpad as a button if you’re using two fingers. So if, like me, you usually rest your thumb on the bottom of the trackpad and click with it (the way the old MacBook trackpads worked when there was an actual button), you’ll find your cursor slipping away from you just as you click. You need to train yourself to use the new method of clicking by just pushing down with the finger you’re using on the trackpad.

That said, I think there’s an additional step I could take but just haven’t yet: Boot Camp Assistant allows you to create a CD of drivers to install in Windows. It’s quite likely that most of those drivers will work with Windows 7, since the latest versions work with Vista. I recommend giving this a try (as I likely will once I finish this and reboot into Mac OS — yes, I’m in Windows right now).

Security

One thing Windows is notorious for that we Mac users just aren’t used to is malware. Viruses, trojans, etc. Bad stuff that makes your computer suck (even worse than it would otherwise). As far as I’m concerned, OSes in principle should be impervious to that crap, but if they aren’t, then the OS maker ought to build anti-virus right into the system. Unfortunately anti-virus software is a huge industry, and Microsoft can’t very well go running them out of business. (Would there be an anti-trust suit?) Fortunately, though, Microsoft does offer a free basic anti-virus application you can download called Microsoft Security Essentials. I’m not sure how it compares in quality to the others, but it seems to do the job, the price is right, and say what you will about the quality of Microsoft’s software, it’s still better than a lot of third-party Windows applications. So, I installed it, and I recommend that anyone else who’s installing Windows 7 and doesn’t already own other anti-virus software, do this as your first step after installing Windows. Well, maybe run Windows Update first. And download Firefox.

Networking and Printers and External Displays, Oh My!

It’s all good here. Getting connected to my Wi-Fi network was a snap, and Windows 7 supports WPA2 out-of-the-box, which I appreciated. I suppose Vista probably did too, but it was frustrating to me to have to plug XP into Ethernet to download WPA2 support so I could get it to connect to my Wi-Fi. Windows 7 also automatically detected my Wi-Fi connected printer and I was able to easily set it up. Same goes for my external LCD. Just plug it in and it works. Mirrored, by default, but the Control Panel for displays includes a lot of fairly easy-to-configure options for dual-display configuration and now I have it working just like it does under Mac OS X.

Bluetooth

Here’s where I run into trouble. I suspect it may just be a driver thing, and once I get those Apple drivers in place, everything will work, but right now I can’t get Windows 7 to connect to my Apple-branded Bluetooth keyboard and mouse. It detects them just fine, but trying to connect to them bombs out immediately. I can get it to display a passkey for me to type on the keyboard, but then it immediately displays a “could not connect” error before I even have time to type it. The mouse, no luck at all. It says it’s connecting… but never does.

Summary

I’ll get more into the day-to-day experience of working with Windows in a subsequent post, but to sum up my experience so far in getting Windows 7 up and running on my MacBook, I would say: yes. This is without a doubt the best Windows experience I’ve ever had. (And, lest you think I’m just a Microsoft-bashing Steve Jobs worshipper, I did use Windows as my primary OS at work for much of the time from 1998 to 2003, and I even owned a Dell PC, in addition to a Mac, for about a year in there.) I can’t compare it to Vista, since I’ve never really used it (other than to help set up my father-in-law’s Dell laptop, and the only nightmare there came in dealing with his DSL provider’s tech support), but it is a vast improvement over XP and 2000, the versions of Windows I know best. Most processes are significantly streamlined, the interface looks great, and overall it still feels like Windows. Just, Windows done right.

Is it going to make me a convert? No. I still think Windows has a long way to go to challenge Mac OS X on overall usability and elegance. But I think desktop Linux might be in trouble.

Update: Just a point of clarification with Boot Camp and the Apple drivers: it’s been so long since I’ve done this that I had forgotten; the Boot Camp driver CD was part of the original Boot Camp beta. As of Boot Camp’s official release with Mac OS X 10.5 Leopard, and continuing with 10.6 Snow Leopard, the Boot Camp drivers are on the Mac OS X installer DVD itself. Simply insert your original Leopard/Snow Leopard DVD in the drive while booted into Windows to install the Windows portion of Boot Camp, which includes the drivers, Apple Software Update, and a tool for setting the startup volume.

Update #2: Regarding Bluetooth keyboards and mice: there’s a bit of a convoluted process here, but I got them working. First, pairing the keyboard: the big trick here is that you have to remove the pairings in Mac OS X first, then follow these steps. You also have to have the Windows Boot Camp drivers installed before beginning (as described above). These instructions are also a bit out of date for Windows 7, so you can’t follow them word-for-word, but if you get the gist, it’s easy enough to do. Once you’ve done that, you can pair the mouse as well, no problems. Well, one problem. What’s the pairing key? According to this, try 0000. It worked for me.

As for Microsoft’s customer support? Um… yeah.

No Windows 7 for you!Anyone who follows me on Twitter or Facebook has probably seen my rants throughout the course of the day. But 140 characters at a time are not enough to temper my rage.

As I wrote earlier today, I picked up a copy of Windows 7 Home Premium at Best Buy this morning, and pessimistically (or so I thought) reserved my afternoon for the installation process. If only I had known.

I started installing at around 12:15. First I reformatted my Boot Camp partition and got everything ready to roll. Nice clean install on a new NTFS partition. Everything chugged along for about 45 minutes or so, until I got to the part where I was supposed to enter the product key. Users of Apple products may not be familiar with this concept (although most of us have encountered it with Adobe), but Microsoft ships every copy of every software product it makes with a product key — a registration number — usually 30 characters long, that must be typed in before you can use the software.

I carefully typed in the 30 characters, and clicked the Next button. But nothing happened. Then an alert appeared “The product key is invalid. Please re-type it and try again.” So I did. Three times, in fact. No dice.

I checked the manual, located a support number, and called it at 1:06 PM. Upon being confronted with an automated system, I decided to try online first. I checked the online help, hoping for a live chat option, but was steered back to the same phone number. So I called again at 1:22 PM. I spent the majority of the next 13 minutes on hold, before having to hang up because the connection was too bad. I moved to a better location and called again at 1:51 PM. After waiting on hold for about 6 minutes, the line went completely dead. The call wasn’t disconnected though, so I sat for another 15 minutes before deciding something must have gone wrong. So I hung up and called again at 2:15. I spent the next 54 minutes, mostly on hold, interrupted briefly on several occasions by the same person asking me for the same basic pieces of information and then telling me to please hold again. Eventually I was connected to someone else, who sent me through the same process a few times before giving me a new number to call.

At 3:13 I called the new number. But this wasn’t tech support, it was the activation hotline. And I wasn’t at activation yet. (Entering your product key isn’t enough. After that, the computer has to go online within 30 days to verify that you’re not using a stolen product key… or whatever.) I grumbled a bit, forced the rep to go off script, and eventually got her to give me another number to call.

At 3:18 I called this new number — the Windows 7 Launch Party support hotline. Lord have mercy. Unfortunately, this line did not even offer me the option of waiting on hold for an hour… I had to leave a message and hope something comes of it. Ugh.

All told, I now have 3 1/2 hours of my day invested in this bullshit. Windows 7 is installed on my computer, but I can’t use it. I give Microsoft customer support an F-minus.

I suppose at this point someone might come to Microsoft’s defense, and it’s true that I don’t really know what Apple’s telephone tech support is like, since I haven’t called it in probably at least 8 years. But that’s the point… I would never have to call Apple about something like this because Apple doesn’t use freaking product keys. This is supposed to deter illegal copying of Windows, but all it’s really doing is making Microsoft’s honest customers jump through ridiculous hoops. I went out of my way to be first in line (what line?) to buy the new version of Windows the day it was released. Me! I hate Microsoft (other than the XBOX 360) and I still did this, because I think Windows 7 is a good product… and I am honest.

Heck, I wouldn’t have even had to torrent it to get it for free… I already had an authorized copy of Windows 7 RC installed. I could have ridden that out until June of next year before dropping a penny on the new version of Windows. But I went out and bought it, and now I’ve wasted my afternoon and reaffirmed all of my negative predisposition towards Microsoft… and then some.

Update: Having given up on Microsoft’s tech support, I called the Best Buy at Mall of America, asking if I could exchange my copy of Windows 7 for a new one. I could. And I did. But it still didn’t work. Then @biggsjm came to my rescue on Twitter. I Googled (not Binged) “in-place upgrade” and found this. I still had to infer a few things, but eventually I did the in-place upgrade, and it fixed the problem. No thanks to Microsoft’s tech support.

On the day of Windows 7′s release, Apple reminds me why I’m a loyal customer

Apple Store Mall of AmericaI had a simple objective when I set out for the Mall of America at 9:00 this morning. I was going to go to Best Buy to purchase the Windows 7 Home Premium Upgrade along with the new Porcupine Tree CD. Yes, I am a frequent Microsoft basher, but I will admit I do harbor genuine enthusiasm for Windows 7. I think Vista was a joke, but after having tried out Windows 7 RC for the past several months, I was convinced it was (finally) a solid replacement for the ancient Windows XP.

Now, it’s true that the stores at Mall of America officially open at 10 AM, but I’ve learned from previous big product launches earlier this year — Apple’s Snow Leopard release and the Beatles boxed set/Beatles Rock Band extravaganza on 9/9/09 — that when there’s a hot new product out, the stores will often open early. At least half of my interest in heading out to buy Windows 7 this morning was to see whether there would be an enthusiastic crowd queued up outside Best Buy, or milling around inside Best Buy. Would there be huge Windows 7 banners? Would there be a live video feed of Steve Ballmer on all of the HDTVs?

As it turned out, no. Best Buy was still closed, and no one was visibly waiting for it to open. So I figured that as long as I had (probably) an hour, I’d head to Starbucks — which had to be open for all of those mall walkers who were already out in force — and then stop by the Apple Store, to deal with… my problem.

Yes, as I described in excruciating detail, and with photographic evidence, a couple weeks ago, I had a problem with my MacBook: the Mini DisplayPort adapter was… well… jacked up. I had broken the cardinal rule of not using undue pressure to jam a plug into a jack. If it doesn’t fit, don’t force it. Well, I had forced it. And pretty seriously screwed up the adapter plug in the process.

So, as I said, this morning when I found Best Buy deserted, I headed down to the Apple Store. I didn’t have a Genius Bar appointment, but I decided to take my chances. When I entered, I was asked if I had an appointment. I said no, and described my situation. I was told the Genius Bar was booked up until 2:30, but they’d put me on standby, and I should have a seat at the bar. So I did. About 15 minutes later, a “genius” came over to attend to me. I explained the situation, he tried the port himself, and determined that the pin that is supposed to hold the plug in place was bent up. (For some reason, that possibility had not occurred to me — I was convinced all along that the pin was too big.)

He took my MacBook in the back room for a minute to use “dental tools” to straighten the pin, then brought it back out and tried some new adapters in the port — and they worked perfectly. Problem solved. But… there was still the matter of my damaged Mini DisplayPort-to-DVI adapter, which I hadn’t brought with me. No worries, he grabbed a new one off the shelf and gave it to me as a replacement (a $29 value); no need to return the old damaged one. I walked out of the Apple Store 20 minutes after I arrived, with a fixed MacBook and a new replacement adapter. And how much did all of this cost me? Nothing.

Make dubious arguments about Apple’s high prices all you want (though the fact remains that Apple simply isn’t trying to compete in the low end of the market, and other PC manufacturers’ mid-range and high-end computers, comparable in specs to Apple’s, usually cost the same or slightly more), but I challenge you to walk into any other computer store in the land and get that kind of customer service. I didn’t have to buy an extended warranty or a bogus service plan or any other B.S. All I had to do was buy an Apple product in the first place… lifetime Genius Bar support included at no extra charge.

I wonder how the new Microsoft retail store (opening today in Scottsdale, AZ) compares.

CakePHP Auth component, Flash and Internet Explorer… a deadly combination

OK, it’s not really deadly at all… other than that it will kill your CakePHP session and log you out.

My CakePHP-based CMS uses YUI Uploader, a Flash-based file uploader utility. It’s much better than the default HTML file uploader, because it supports a fully CSS-customizable progress bar and multiple file uploads.

It’s pretty slick, even though I did tear some hair out earlier in the year trying to get it integrated into the CMS. All went well for several months, until one particular client, using Windows Vista and Internet Explorer 8, discovered a showstopper of a problem: whenever you uploaded a file, all would seem well until you went to save your changes and you’d get kicked back to the login screen, without the changes being saved. Bad news!

I did some diagnostics and determined that, yes indeed, the CakePHP session was in fact being dropped as soon as the Flash process finished queuing the file uploads (an AJAX-based process), before you actually click the “Save” button… but since there’s nothing else happening dynamically on the page, it wasn’t obvious that the session had been killed in the background.

Anyway, some research led me to a perfect explanation of the problem, and an equally perfect solution: Flash is sending a different user agent string, which was resetting the CakePHP session. I’m still not sure why it was only affecting Internet Explorer, but at any rate, a simple change to the app/config/core.php file solved the problem in a snap. The critical line:

Configure::write('Session.checkAgent', false);

I suppose by removing this line, the application is ever-so-slightly less secure, but there should be enough other precautions in place that removing the user agent check as part of the process of validating a session should not pose a significant security risk.

Network Solutions: You’ve spoken. We’ve listened. We’re just idiots.

OK OK, Network Solutions. Don’t get your nsUndies* in a bunch. (*You’ll get that joke in a minute.) I’m still a diehard Network Solutions supporter, recommending all of my clients go with you instead of the sleazy likes of GoDaddy, despite your considerably higher prices. (My argument is, if you’re willing to spend thousands of dollars on a website project, why not spend an extra $25 on a better domain registrar?)

Anyway… just because I recommend you, doesn’t mean I will refrain from criticizing this: today I logged into my Network Solutions account to make some changes to my own DNS configuration, and I was confronted with the following ghastly announcement…

Network Solutions has listened, apparently.

What? Someone actually told you “I don’t understand what ‘Web Site’ means. Can you please call it something more obvious? Like, maybe, ‘nsBusinessSpace’? Yeah, that would be great.” Well, OK, maybe someone like Bill Lumbergh would think that. But he’s not really human.

I’ve seen something like this before, though. In fact, I’ve blogged about it before. But with Microsoft, it almost, just barely, managed to seem like they were in on the joke.