Kind of an over-the-top reply to an honest question.
We got my daughter a computer at 18 months. It wasn't to be a babysitter, it was because I wanted to experiment with computer interactivity early and didn't want to risk using my own PC.
For a year or so she really only had one program on it, a Fisher Price thing with a keyboard drop-over that had big buttons in various shapes and bright colors. It played peekaboo and some simple interactivity. It was fun and it was interesting watching how fast she figured out how to do the things she liked.
One benefit I didn't expect was that she was accustomed to working with electronics very early; we never got the sandwich-in-the-VCR.
It was interesting how long it took before she got the idea of the mouse. A mouse is a really unnatural instrument; you can see that every time you watch a new computer user, young or old or anywhere in between. Touchscreens are vastly more natural, it's too bad they're so damn rare and expensive.
Aaannyway I have a couple of recommendations:
1) Get something really cheap. Mostly we're a Mac household these days but Macs have a lot less children's software than PCs and the entry price is almost twice as high. Ubiquitous is a win.
2) Cover all the buttons, slots, and the screen with plexiglas. My daughter loved to push buttons and was constantly screwing up the display settings. Kids poke at the screen and LCDs are fragile. Sheets of plexiglas are really cheap; get the super-strong velcro from Radio Shack (the stuff that interlocks with itself, not the stuff with fuzz). Put a sheet over the whole display, including buttons on the front, and another over the front of the machine, especially the power switch and DVD slot.
3) Yank off the control, alt, and windows keys from the keyboard. No good comes of them.
4) Be there when the kid is using it; help them, talk to them. Not only is this good parenting but left alone kids will bash on things. Keyboards may only be $20 nowadays but you don't want to buy a lot of them.
5) Don't attach it to the net. The kid doesn't need it and if it's not attached nothing can infect the PC. I think my daughter was six or seven before she was allowed to use any websites. The problem with websites isn't what most people think: The pr0n guys are really not that ever-present, but the advertisers... woah. They're all over kid-centric sites.
Oh, and TV for kids? I'm not a member of the "no TV ever" club; there are some very good TV shows. Problem is limiting the kids to those particular shows, and having the ability to time-shift them; the kid's schedule rarely follows PBS's. Tivo totally rocks, especially since when the show is over it stops.
(Funny story: We got a TV in the kitchen and attached it directly to the cable box. My daughter had never watched TV without Tivo. She was watching some cooking show with my wife and had to use the toilet; she kept pushing the pause button on the remote, dancing around holding her legs together, saying "It won't pause! It won't pause!" That's TV the way the networks like it, kiddo....)
I just stored something on a few USB flash drives to keep around for the next 10 years.
Don't do that if it's important. Flash drives will lose data over time -- and not even a long time. My experience is that you might get a few years out of them; others claim as long as 10 years. See Flash drives are NOT for long term storage and Records, 8-tracks, and other reasons to update your storage media. You'd probably do better with archival quality DVDs but my suggestion is to roll data forward every 5 years or so on external hard drives.
Practically speaking USB is only 10 years old (Apple was the first vendor to ship products with it, in 1998). It's been widespread for maybe eight. It only seems like it's been around forever to the younger crowd.
Over 25 years connectors have changed a hell of a lot: The most popular keyboard connector in 1983 was DIN, then PS/2 in the late 80s and early 90s, then USB in the late 90s and early 2000s. It was possible, with an adapter, to use a 1983 keyboard on a PC up until most PCs eschewed with the PS/2 keyboard adapter a few PC generations back.
USB may well survive, but I'm doubtful; even RS-232 didn't last that long.
SATA almost certainly will not survive beyond a decade or so. Disk drive interfaces have tended to last only about 5 years, with another 5 or so of backward compatibility. Someone will start shouting "IDE IDE" I'm sure, or maybe "SCSI" from some old hats. But the IDE drive connector standard is just 14 years old and the last round of computers I bought a bit more than a year ago had no IDE connectors at all. Trying to connect an IBM AT drive to a modern PC will be an experience... I was unable to connect drives from the early to mid 90s within 10 years.
I will be surprised if peripherals even use electrical interconnects 25 years from now. Think optical, baby.
I don't have any good ideas related to long-term digital storage. I have experience with this going back more than 20 years now and the experience is mostly bad. I do have 25 year old floppies that still work, but they need 15+ year old PCs to read them.
The good news, I suppose, is that those old PCs do still work. (I have a Kaypro II that I boot up occasionally.) If I really wanted to do this I would put a whole laptop full of data with a non-flash drive system in a baggie, fill the baggie with an inert gas, seal it up real good, then seal that in the box. If it all works 25 years from now you're good to go; if it doesn't maybe you can still talk to the drive. Maybe.
I do command-line compilations of the same code in Windows and Linux almost every day. Even with Linux running in a VM on the Windows host it outperforms native Windows by a factor of three to four. I'd say that this is gcc versus MSVC except that the same is true for all kinds of things that touch lots of files (like, say, grep).
As for porting "make" to Windows, Microsoft's toolsuite includes nmake which is very similar to SysV "make". I have used both GNU make as part of the Cygwin utilities package as well as the MKS make too. The make tools all have very similar performance, which really shouldn't be surprising.
There are some really good distributed build tools available for Windows, though, like Incredibuild. When these are used it substantially improves build performance. There are probably similar tools for Linux (I've certainly hand-built schemes to rsh over to run parts of the build on other hosts for improved parallelism) but if there's a really good tool I've not seen it.
In any case using that MS command line tools versus Linux command line tools you will find the Linux tools easily outperform Microsoft's. My belief is that this is primarily the result of both an inferior Windows VM and a particularly slow filesystem, although I never tried to narrow it down by benchmark. Not much point, I can't fix it anyway.
Let me pile on to this as well. I have a WRT54GL acting as my router. While I eventually gave up on Vonage I ran it plus my regular loads (web server, a whole lot of SMTP, bulk downloads, interactive browsing) simultaneously for a couple of years.
The stock Linksys firmware didn't do it; its QoS features were pretty much worthless IMO and the stock tuning was regularly overloaded due to too-long TCP timeouts and the pounding the thing got from The Bad Guys.
DD-WRT allowed me to tune the settings to the point that it worked slick-as-you-please. There were a couple of critical settings.
First, I boosted the number of active connections allowed to the maximum, 4096. Second, I dropped the TCP/UDP timeout to 10 minutes. These two made all the difference in terms of stability; without them the connection count would rise to saturate the table and things would fall apart fast.
With stability in hand the next thing to do was QoS. I chose to cap bandwidth at about 80% of available and then give priority to the Vonage box's port. This worked neat-as-you-please; the phone never had dropouts and everything else kept going smoothly.
Depending on when you bought the Macbook it might be a royal pain in the ass to get the drive out. I bought mine the day the Macbook went on sale. I was surprised when, as I went to pull out the drive, there was no little plastic tab as shown in both iFixit's and Apple's instructions. Apparently they had an engineering change early on that put the drive on a tray with a tab, and mine didn't have that.
Instead the drive slid into little rubber bumpers that were just press-fitted in place. There's enough friction that it was very difficult to remove, and the bumpers are flexible enough that they'd bunch up when trying to replace the drive. What should have been a 5 minute swap, tops, took more than an hour. Crazy.
I added a tab on the new drive so it will be easy next time.
Even so, that was waaaaay easier than the 12 Powerbook drive swap. 38 screws on that one, plus a bunch of easy-to-damage ribbon cable glued down with aluminum stickers. 90 minutes to swap the drive.
The G5 Quad, however, is an absolute dream to work on. You can do most things without any tools whatsoever.
I've had some issues with Apple's quality but, overall, they're about as good as anyone else I've used and far better than most. Their walk-in service can be a pain (especially if you don't make an appointment in advance) but usually the techs are knowledgeable. I've had repairs take anywhere from 1 to 5 days, with the longest times requiring notebooks to be sent down to Kentucky. In the last two years the number of repairs they can do on-site has grown significantly, although it can take a couple of days to get parts.
I'll keep buying Macs. Even if the hardware isn't perfect, even if the "Genius" Bar sometimes drives me a little crazy, the operating system is wonderful. Easy to keep running, lots of commercial application support, and without the fiddly bits of traditional UNIX or Linux.
I didn't realize when I ordered my MacBook that they came with glossy screens. I worried. Then I sat it side-by-side with the 12" PowerBook it was replacing in a variety of high-glare situations.
I was surprised to find that in every situation that the glossy screen was unreadable, so was the matte screen. In fact, it was usually easier to angle the glossy screen to eliminate the glare. The matte surface reflected glare at much wider angles.
I've now been using the MacBook for two solid years under every imaginable condition and at this point I can say I'd be ok with buying another glossy screen.
I also had the misfortune to have had a glossy desktop screen after the matte version of the monitor up and died. It was a disaster. I would never buy a glossy desktop display unless there were no windows in the room I was using it. I ended up shifting my whole workspace to put the windows behind the monitor, and disabling overhead lights.
I think the difference between desktop and laptop has to do with two things: The monitor position on the laptop is lower, leading to a natural upward angle that tends to reflect background light away from my eyes rather than toward them; and it's easier to change the angle of the laptop display to avoid glare.
That said, I am not entirely happy with my MacBook's display but the problem has nothing to do with glare. It has lousy red reproduction.
Dammit, I had said that I didn't want an iPhone, but would like a device that was like the iPhone without the phone part.
Then Apple released the iPod Touch.
I waited for them to update the software so that it was really an iPhone without the phone, instead of crippled. They did that in January. And as luck would have it, my Palm T|X started acting up last week such that it was hard to use the handwriting recognition.
Bought a 16G Touch, got it Friday. I played with an iPhone and thought it was a great little device (but AT&T -- I think not) and that had me thinking about it, but having actually used the Touch now for four days I am just astounded by how good the interface is.
Some nits when using it as a PDA (primarily: it could use a louder speaker for alarms, and the calendar system's alarm tone is fixed and so soft it's almost impossible to hear if it's in your pocket), and I've crashed several of the applications here or there, but overall it kicks the Palm's butt, and unlike the Palm the WiFi is more than just a checkbox, it is really useful.
Two thumbs up. Stuff like this makes you wonder how come Microsoft couldn't do something even remotely as good despite six major revisions of Windows Mobile.
By "mediocre hardware" I am guessing you're talking about the EDGE network support. Admittedly this is one reason why I didn't buy an iPhone (the other and much more important one being that the AT&T/Cingular merger created a lot of suckage that I have no desire to revisit). Other than EDGE the phone hardware and software is brilliant -- and not even just brilliant in a "first effort" kind of way, brilliant in a "boy does this make other phone handsets look really lousy" kind of way. That's obvious in the first few minutes of using it, and the more you use it the more the little details start to add up. In my opinion the iPhone represents as big a jump forward in interface and device design as we have seen in history, and the original Mac is the only other consumer product to even approach that level of discontinuity.
As with the original Mac the raw hardware performance largely fades into the background. EDGE is slow, sure, but even in slow mode the iPhone browser beats the tar out of the using the lousy-to-the-point-of-useless browsers on other 3G-capable phones I've used. What the hell good is a fast network connection on those things, when you can't even use it?
In terms of using the thing as a phone, I figure it's worth waiting for both 3G and the AT&T exclusivity arrangement to work itself out. In the meantime it's possible to get most of the usefulness of the device without AT&T, by far the major suckage point of the iPhone, even though it does mean giving up even EDGE support. I bought an iPod Touch as a replacement for my Palm T|X, now that Apple has come to its senses and shipped it with a full set of applications. The improvement in interface versus the Palm series (a product line that has thoroughly stagnated over the last three years) is really hard to overstate. I don't know what Apple's expectation of market is, but their "music player" is the best PDA on the market by leaps and bounds. (With one major misfeature: Needs a louder alarm!)
I kind of wonder if Apple might, in the years before the AT&T contract expires, produce an iTablet that is pretty much the iPhone without the phone, or the iPod Touch with cellular data support. I have a Kindle as well and the EVDO support in it is brilliant where it is integrated well (Amazon store support) even though its web browsing feature is super-primitive to the point of being a "really need to know right now" limited tool. It could be an interesting product, although perhaps not mass-market enough.
As an aside, I can only hope that touch-style UI design takes off. It's nice to see all the other vendors scrambling to make products with those kinds of interfaces, having been caught flat-footed (although you want to skip some of the other first-gen devices; the Touch phone that Verizon is selling right now... let's be charitable and say it feels rushed). On small form-factor devices it is the difference between "works great" and "is practically unusable". Moreover I would absolutely love a 24" touch display for my desktop, that would make Photoshop way, way more convenient (mice suck, the tablet is a big improvement but it takes a lot of training to get used to writing down there while looking up here, and the Wacomm monitor/tablet that offers the best ergonomics on the market is ridiculously expensive). The interface is vastly superior to the mouse.
So, getting back to my original reason for replying, I don't see that the iPhone hardware is really all that mediocre. There are a couple of design decisions, like EDGE and the fixed battery, that annoy a subset of the population but in the greater scheme of things appear to make little real difference (especially in the US which has narrow deployment of 3G networks). In terms of display, and interface, and application performance, and WiFi networking the devices thoroughly embarrass the competition. This is so much the case that I often wonder if the people complaining about lousy hardware have actually used an iPhone. It works more smoo
Try looking up figures for fatal accidents next time.
Been there and done that. Single-vehicle fatal accidents do have a large speed-related component. They are still under-represented in the data overall, unless you narrow your field to only highway accidents, which are highly under-represented in overall fatality statistics.
I note that these statistics are not easy to get; NHIS doesn't compile such overall statistics, at least not for public release. It cherry picks its figures (for this and a bunch of other things). I'm sure there are political reasons why it does this, but whatever their reason you have to dig them out of FARS on your own. I spent awhile doing that and, frankly, was very surprised at how widely disparate the reality was from the press releases.
Mind you, I'm not saying we shouldn't have speed enforcement -- but the bulk of the carnage on the roads is not speed-related, and it's a huge disservice to not bother to enforce the laws that might prevent a lot of accidents. Failure to yield right-of-way is a very, very common cause of accidents -- both fatal and not -- and yet is rarely prosecuted until after an accident.
Actually the #1 cause of accidents is failure to yield the right of way (often by failing to obey traffic control signals).
When it comes to whether or not speed is a primary cause of accidents you should be aware that if you include all roads in the U.S. then the average speed an accident occurs at is 29mph. If you take highways out of the picture it drops to 27mph. This data suggests that speed is not causal in most situations.
Given this data (and if you don't believe me, by all means go look it up -- that's what I did) you should wonder why it is that traffic enforcement focuses on speeding almost to the exclusion of everything else, even though speeding is a very small fraction of the problem. But speeding is easy to enforce and brings in a lot of revenue, both for the government and (critically) for the insurance companies. This is a major part of why speed limits are artificially low on highways in the U.S.; it's easy money.
If we were really interested in safety we'd spend a lot more time enforcing rules at intersections where almost all accidents occur. Unfortunately automated tools like red light cameras have not proven effective in reducing accident rates; quite the contrary, they have boosted them. There are numerous theories as to why this is, but the one I adhere to is that the yellow light period is usually shortened when it should be lengthened. The way it is now people slam the brakes on when the light goes yellow and they get rear-ended. Oops.
Oh, about that MacBook Air. I would like one. It's not quite what I want -- I want a 13" MacBook Pro -- but I love the form factor. The huge downside I see is not the lack of an optical drive, which I can carry if I need or not if I don't, but the non-replaceable battery. 5 hours, even if that is a real number, is not enough for a cross-country flight. If or when my MacBook finally dies I will probably get one regardless, the MacBook has not been durable enough, but it would be a lot more useful if I could carry spare batteries.
Flash back to 2001. I'd been running Linux on laptops for more than two years, and on a server for four. My wife ran Win98 on a laptop.
Every 3 months or so my wife's laptop would start failing in some obscure, inscrutable way that could only be fixed by reinstalling Windows. (Maybe there were other ways, I dunno; the problems seemed mostly to be registry corruption but also occasional lost files.) Reinstallation took upwards of 14 hours, almost all of which was reinstalling the numerous applications. This was, as you might expect, a pain in the ass.
I finally got sick of it. Apple had released OS X not so long ago and it was UNIX through and through. I figured that with UNIX underneath it would probably not break as often as Windows. So I bought her a Ti Powerbook. I knew she'd have some issues with the conversion, so I got her the prettiest laptop they sold, figuring that fashion could make up for at least some of that.
There were conversion pains. Mostly we had to find software to do the things she needed to do; some freeware, some paid software. It took months for certain software, notably the Palm Desktop, to be ported to OS X. OS X 10.1 had this annoying habit of forgetting your printer configuration. But she was up and running in a few days and I probably spent about an hour on support issues in the four years she had the laptop. (It's still being used daily by a relative.) To call that a major improvement over Windows would be an understatement.
Meanwhile my Linux laptop was getting pretty old in the tooth, and I really liked hers. It was UNIX, but there was a lot more polished software available for it, and sound and video and wireless all worked without being all fiddly. So about six months later I bought myself a 12" Powerbook.
That was the best laptop I have ever owned. It was durable, compact, had lots of good software, and just kept running for five solid years. (It's still being used daily by a different relative.) I upgraded it to a MacBook purely because it was too slow to run various photography-related software packages I use.
What's more, when we got my wife's new laptop -- the last of the G4 Powerbooks it turned out -- I got to try out Apple's migration facility. It's so slick it's scary. Plug firewire into both laptops, put the old one in "target" mode (where it pretends it's a firewire disk), and let it chunk along for about a half hour. When it's done you have your old desktop, including drivers and software and settings and data, on a newer faster machine. The experience is so good it made me very, very angry at Microsoft. Every new box I get from Microsoft requires another of those all-day installation and data copy fests.
I still use Linux every day, both at work and at home. But not on the desktop. It's not that it doesn't work, it's that it's more work than it's worth when there are more polished desktops available -- and I lose nothing by running MacOS X; all the same tools available on Linux are there, on top of the polished GUI stuff.
But what surprised me more than anything else when I got my first Mac laptop was that I stopped using the uber-fast Windows desktop system entirely. The Mac worked better for just about everything, even though it was a fraction of the speed. The silly thing ended up looking like an octopus with all the USB and FireWire stuff hanging off of it. Windows still does some things better than the Mac (notably Windows software development, of course). Most of our PC games run only on Windows. But for most of the day-to-day stuff the Windows PC plays second fiddle.
Linux on the desktop was, until a few weeks ago, a distant memory. Linux on the server, though... well that's a different story. It hosts my website and my e-mail and databases and more. It's the embedded software in my DVRs and NAS systems and even my new e-book. I have more Linux-based systems in my house than Windows and Macs combined.
One problem with running disks off of, say, a Linux server is there is a limit to how many of them you can stuff in there. Usually I hit that limit right around day 1. Moreover, the PC eats a fairly large amount of juice even just doing nothing.
My back-up strategy was to avoid RAID entirely and use plain disks (external drives) as backups. I would just clone the live disk to the backup on a regular schedule. There are lots of reasons why I really wanted it to be a different unit, though, and I didn't want to maintain another Linux box.
Eventually I decided to get a Buffalo TeraStation, a 1TB unit. The original unit I have had only one major defect, that being that it really couldn't feed gigE at full speed. In effect there was no point in running it faster than 100baseT.
When I needed additional storage I bought another Buffalo product, this time a TeraServer 2TB. It fixes the performance issues with the older unit and is generally better designed.
Both units together only eat about 100W; less than my PC-based server at idle.
I like 'em; low effort, not expensive, work well. YMMV, of course, but so far (three years of heavy use on the TeraStation) they have been great. So far I haven't had to do disaster recovery but it's Linux... not going to be worse than a Linux RAID array, I figure.
The idea that a computer would not run that deer hunting game you also bought at Wal-Mart is alien to many of the people most likely to buy a $200 computer.
How true this is. What's kind of funny is that I picked up a random cheap game at Staples the other day to run on my Windows box. It didn't work. Only works on XP, of course, and I run Vista on that thing. (I knew that was a risk, you just don't know until you try it.) From a consumer point of view it is frustrating either way.
Although the lady I gave it to was happy to have SOMETHING, she wasn't very happy when she realized I'd just given her a lifestyle when she thought she was getting a computer.
Hah, I've BTDT too, although with Macs rather than Linux boxes. Unless you're planning to run games there is really little difference in the function of Windows, Linux, or MacOS; they all can do the job, they all have quirks that mean some stuff won't run on them or will run only if you know the right magic incantations. Windows is only a win in that there are a lot more knowledgeable people around.
What it came down to for me was the ongoing support effort. Windows PCs always mean significant ongoing effort. Things just go inscrutably wrong with them, and debugging over the phone with a neophyte just plain sucks... especially when the only viable solution is almost certainly going to be "back up what you can and reinstall". (Or buy a whole new PC.) It's way harder to corrupt a Mac, and while they too have weird problems on occasion I haven't yet run into one that required a full reinstall (not even the oh-so-pleasant "I disabled admin access on the only admin account" problem with recent Leopard installs). It can be annoying, but it's annoying with a low periodicity rather than being near-constant.
So in the case where I'm supplying the PC or supporting the PC I recommend Macs. Lots of commercial software and low low support costs. I have had people who weren't always happy about that, but they get a lot of stuff done in between minor bouts of frustration due to compatibility issues and it's not like they weren't going to have plenty of frustrations with the Windows box too, just different (and more serious) ones.
I also really like it when they buy a new Mac and get to do the "transfer stuff from the old Mac". It's so easy it always amazes me. Makes me all the angrier at Microsoft, actually, because there's no reason Windows couldn't do the same thing except for that goddamn registry.
(I did the Linux desktop and laptop thing for years myself before giving up and buying Macs for that kind of stuff. It works, but it's more effort than it's worth. Love it on my servers though... cheap and effective and also really easy to move an old system to a new one. We really only have Windows boxes for running games, and for that I can treat them as disposable.)
I'll join in with the chorus of "Bullshit" as to the position on Apple Customers. Apple Customers value Shiny, and will continue to swarm accordingly.
I don't know about Apple customers in general, but I bought a Mac laptop for my wife not because it was shiny but because I was pissed off at spending 10 hours every 3 months reinstalling Windows on the damn thing when something broke in some weird and inscrutable way (that was Win98). I figured with UNIX underneath it could not possibly be worse than Windows in terms of maintenance. Shiny helped her accept it, but the utterly pain-free administration and much higher quality hardware than the Dell laptops we'd used previously were what got me to buy one for myself six months later.
What really surprised me was that I ended up using that laptop as my primary desktop (tethered to a big monitor, external drives, etc) in favor of the XP PC sitting right next to it that was four times as powerful. For both basic computing tasks and photographic work the Mac was a much better choice despite the spartan hardware. (XP was great for gaming though.)
Those laptops lasted 5 years each, fully twice as long as any Windows PC or laptop I have ever owned, and relatives still use them today. Both run OS X 10.4 even better than they ran OS X 10.1. No viruses, no reinstalls. It was a breath of fresh air after the pain of keeping the Windows boxes running well.
The good experience with the laptops got me to buy a Mac Quad specifically to do photographic work. I love the thing; it's fast and has wonderful color management.
Not that it has all been roses. There have been a handful of pretty weird software issues (all solved with the help of macosxhints.com) and the newer Apple hardware has certainly not been as reliable as the older stuff. All three of the machines bought in the last two years have been back to Apple for warrantee work once, an annoyance. But Apple didn't gripe about it, they just fixed the problems, a much better experience than I've had with any PC vendor (you just try to get a Compaq PC covered under warrantee as a consumer, I dare you).
So basically I've been pleased with the function and longevity of my Apple hardware and that's why I keep buying it. It's way easier to keep running smoothly than Windows PCs and despite a somewhat higher purchase price the longevity makes them a good value. The experience has been so good that I've bought them for relatives when I got tired of fixing their Windows PCs and I recommend them to friends who have had issues keeping their Windows PCs running.
Heck, the MacBook I use now isn't even shiny... although I really wish they offered a 13" MacBook Pro, I could use the better video hardware.
For instance, an adminstrative person looks at hardware upkeep costs. They note that Windows machines tend to need a higher amount of upkeep, but that the hardware is cheeper, so it actually costs less to fix in the long term, even figuring in the lost time by employees.
That hasn't been my experience at all (other than Windows machines being cheaper up-front). All else being equal, it only takes a single failure to swamp the price difference between, say, a Mac Mini and a cheap Dell. In fact, my motivation to move various people I admin PCs for to Macs is the dramatically reduced administration. The Macs just keep running, the PCs need constant repair, and the repair is really costly in terms of time.
This is why ghosting became so widespread. They streamlined the ability to restore the system to a known-good state because there was no way to keep it in a known-good state. If fixing it is going to be necessary on a regular basis, it made sense to minimize the associated overhead as much as possible. Even so, given typical IT department loads, you're talking about a couple of hours of downtime and a significant fraction of an hour for the IT department to fix the problem. Even one of those is going to cost hundreds of dollars even if you're only considering the cost of the employees and not cost of lost work or opportunity costs.
Moreover, there is a big dichotomy here between business and home users. In home use the repair costs are much, much higher. There is a general inability (as well as unwillingness) to lock the system down. That makes malware, or even simple user mistakes, more likely to destabilize the system (and malware is endemic on home Windows systems). A reinstall of a WinXP system from scratch without a ghost-type copy takes hours (about 14 for the systems I have been keeping running, between the OS install, app reinstalls, OS patching, and data restore). It's little wonder that home users find Macs to be a lot easier to keep running -- they are. The software doesn't break very often, and malware is essentially unheard of (at least for now).
But going back to business and Macs, the head of IT at my current company doesn't like Macs at all, finds them very unreliable. There's something to that; of the three Macs I've bought in the last 18 months, all three have been back to Apple for service, and two of them are going back again. That's a lot of downtime -- at least hours, if they can fix the problem at the Apple Store (or on-site or at a support shop, if you use those) or days if it has to be shipped somewhere (most laptop problems require remote service). The class of problems is different, though; you almost never have software problems (there is one class of problem I have seen that continually pops up, although it is trivial to fix). It's the hardware that is sometimes flaky. I suspect a lot of that is due to the fact that most of us Mac users are using cutting-edge hardware, not established units whose production is more solid. But whatever the reason it is a fact that Mac hardware is, at least sometimes, failure prone.
I think the difference in his perception is largely due to a lack of local ability to fix trouble with Macs, though, and that's a case of not all being equal. If a PC goes south it is usually easy to fix or to swap something to work around the problem temporarily, so downtime for hardware problems is minimal. Few businesses, and almost no home users, have a supply of spare parts or spare Macs to do this kind of repair. And most Macs are not particularly easy to service; swapping a drive in all but the newest Mac laptops is a painful experience, for instance, and the high integration of everything in Apple's line except Mac Pros means that if anything breaks you have little choice but a full motherboard replacement. Without easy serviceability and with poor parts availability downtime is usually significant. But if you're a business heavily invested in Macs you can keep spares about just like most PC shops do, in which
Aperture pushes the video hardware hard, and there aren't any tools I've seen that show you what it's up to. I see low CPU and disk usage when doing bulk processing on the Quad, too, but the fans are blowing hard. I believe it's hammering the GPU during those times.
The other thing that I found interesting when I boosted RAM from 2G to 4G was that Aperture doesn't use it all; it peaks at pretty close to 2G no matter what I'm doing. That's nice in the sense that now I have basically half of my Mac for doing other things, so interactive performance while jumping between applications really never suffers, but I was somewhat surprised.
One thing that I find interesting is that a lot of people say that Aperture 1.5 is much faster than 1.1. That wasn't the case on my Quad; there was no obvious difference at all. That makes me wonder if Apple made it work well on the best hardware first, then worked backwards through their line. Even so, Aperture 1.5 had so many big improvements as to be a godsend.
I still want curves support, though, and I believe they can do much, much better on performance by caching intermediate product. It seems like they're performing a re-render of the whole image every time -- and if that's the case, it's a wonder that it's as fast as it is. While on the subject of stuff I wish Aperture did better, its printing support is almost laughably bad and so is its patch tool.
Perhaps the most interesting thing about Aperture, to me, was where the value really came from. 1.0 had crummy rendering, and they didn't really get the package sorted until 1.5. Yet 1.0 was still worth every penny I paid for it because it cut my time spent winnowing out the money shots by something like a factor of five. It was an incredible win that has only improved as the other capabilities matured.
And its other capabilities did mature, much faster than I expected. Today I prefer its rendering in most cases to every other tool at my disposal. Whereas I used Capture One for almost all my rendering in the Aperture 1.0 days, and maybe one in ten with Aperture 1.1, it's like one in a thousand with Aperture 1.5. It got that good, that fast. Remarkable.
Regarding Aperture versus Lightroom, I despise the modal nature of Lightroom. They did a much better job of it than did Capture One (the second worst UI I have ever used, after Lotus Notes) but I still find myself hopping back and forth between Library and Develop way too often. Why aren't all the tools available in both places? Photoshop isn't like that. Nor is Aperture. On the other hand, Lightroom has the best printing interface I have ever seen. I hope CS3 gets it, and Apple copies it.
What is possible with Java is not really the point. There isn't very much that is possible to do with one framework but not the other. Rather, my point is that Java's classloader is a very primitive beast. Many of the things you can do, given enough effort, are supported at least to some degree as first-class features of System.Assembly. For instance, there is no need to build the framework yourself for a great number of commonly used features (like managing multiple independent runtimes in the same VM). It's pretty clear that Microsoft took what Sun did and tried to make it better, at least for common cases.
Having said that, some of the classloader toolkits available for Java these days are awesome, so I wouldn't necessarily go pick.NET out over Java just to get the additional features Microsoft endowed it with. That doesn't affect my thesis though.
Lest you think I am all wobbly over.NET, some of the things Microsoft did are, at least in my opinion, blindingly stupid. For instance, sealing (finalizing) everything in sight makes a lot of things much more difficult to use. (Like Thread.)
And whoever it was at Microsoft who decided that C# should continue the asinine C++ behavior of having nonvirtual as the default for methods (in a supposedly OO language!) should summarily be shot. That's like breaking the knees of all of the downstream programmers, because you know that almost nobody will actually make their methods virtual, meaning that anyone who came along later is going to be crippled. This was a stupid idea for C++ when they had (what they thought was) an overpowering reason to do it; for C# it was completely idiotic.
I figure that whoever made that decision probably had a hand in MFC too, it also bears the signature of people who wouldn't know how to make use of OO if they walked right into it.
I don't think it's so much an "open source" issue; corporations don't seem to have much trouble buying into open source so long as it is well supported. We run into Linux a lot in large corporations these days.
.NET is still in the acceptance curve at large corporations. If or when it finds itself securely in place only then will people start thinking about whether or not there is something to be gained by choosing a Mono solution. Today Mono provides almost no benefits, and quite a few drawbacks, compared to.NET -- so it should not be surprising that it is nowhere to be seen.
Frankly speaking,.NET is a Java fork. Right down to the bytecode and up through the class libraries. If you are familiar with JDK 1.1 class libraries you'll find practically everything in them in.NET, usually with only package name and method capitalization changes..NET added a lot, particularly in terms of XML, SOAP, HTTP, and GUI support, and fixed some seriously stupid stuff in Java like classloaders, but it really is a fork.
It's kind of amusing, when you think about it, that what Sun really got out of their lawsuit against Microsoft for their (really, really minor, especially relative to stuff like what Netscape did) modifications to Java was a pure competitor in.NET.
You mention.NET's ability to easily (I'd say "relatively easily") link to native code as a big detriment, but in many.NET implementations that's not used at all. It's easier to work with disparate code like that through a SOAP or database interface. In practice you see a lot of.NET front-ends to traditional servers via a SOAP integration. You see less of it used as a replacement for traditional MFC code, the kind of thing where such integration would be most useful.
But getting back to the enterprise,.NET's largest problem in terms of enterprise software is not that it's less mature than Java (in many ways I'd say that Microsoft took the good stuff from Java and improved it a lot) but rather that it's locked to Windows. Maybe you haven't noticed, but Windows is not a very good server operating system -- not very reliable, not very fast (except in very specialized situations), certainly not scalable. It's all very well and good that you can drop a couple of hundred boxes in there to scale to huge applications, but when you could run the same application on a single Sun you're really not making a cost-effective choice. (I wish I were making that up, but it is actually pretty typical to be able to replace as many as 100 Windows servers with a midsize Sun or two, and that is true not only of stuff like IIS/ASPX versus Apache/whatever that are differentiated by more than OS but also for directly comparable stuff like databases and ETL). Push Windows hard and it will break, often. It's nuts to put it in critical places (although that is done, a LOT, and people pay the price in ongoing maintenance).
Having said that,.NET is probably the single best GUI implementation framework I've seen yet (although that may be damning it with faint praise), and Windows, at least aside from the malware issue, is a pretty fine desktop. In that domain it shows what Java could have been if Sun had been even remotely competent (rather than giving us stuff like AWT and the Swing abomination). We're going to see a lot of.NET on the desktop because it is pretty much best-of-breed. More power to it.
Java is today, and has been since at least the late '90s, often used in enterprise situations. Whether or not it's appropriate in a lot of those situations is debatable, but it is deeply integrated into the core operations of a lot of companies at this point. Personally I feel that JMS is not very good at its job and J2EE as a whole is a steaming pile of dung designed by people who wouldn't know a good application architecture if it ran over their foot, but Java as a whole and these things in particular are out there and being used by a lot of people -- and at least in some cases doing a good job.
It is certainly possible to build robust, reasonably efficient large-scale Java applications. It is even easier to do that in Java than it is in C++, especially if you avoid some of the more ridiculous parts of J2EE. But that doesn't mean it's easy to build that kind of thing, and as you might expect there are a large number of really awful Java applications out there (just as the majority of large applications built on all the other languages out
Back when Enderle was writing a lot of pro-SCO articles I corresponded with him a few times on it. He was convinced that SCO would win largely because they could put themselves in front of a jury as the little guy being beaten up by the big guy.
I completely disagreed; at the time, it seemed clear to me that SCO's entire case rested on an interpretation of the contract that amounted to SCO owning all the code that IBM wrote independently. I don't think juries generally like the idea of someone using vague contractual language to grab others' work, especially seeing as SCO didn't even do the original work.
I also argued that it was unlikely SCO had anything to show, given that they'd already been reprimanded for missing discovery deadlines; now I am not a lawyer but my impression is that ignoring the judge's orders repeatedly is not good for your case. And indeed, that seems to be what has caught them out. Enderle told me he'd been privy to some of the stuff they were going to show the court, but my guess is that he didn't understand what they were showing him well enough to realize they were blowing smoke.
I am convinced that SCO figured IBM would just pay them to go away, everyone would make a quick buck, and that would be that; it would probably have been cheaper than this protracted court battle. But IBM thinks longer term. Having put up this kind of fight, do you think anyone else will ever sue them over Linux IP? This fight will make Linux largely lawsuit-proof.
It will be interesting to see what Enderle says about this decision, if anything. SCO clearly hoodwinked him. But as wrong as he was, he wasn't alone.
I don't know why Europeans prefer manuals to automatics while Americans do not, although I certainly knew that was the case; it's why I qualified my statement with "in the U.S." It could be cost, availability, gas mileage, or even the fact that European driver's license have vastly more stringent requirements than American (so, by the time you get a license, you actually know how to drive -- as opposed to in America where they hand out driver's licenses as Cracker Jack prizes).
It doesn't really matter; the point was that programmers -- engineers in general, really -- prefer knobs and tunables and the general public doesn't. The general public will even pay more for simplicity; look how well AOL did, or the original iPod (when it was still selling at a big premium).
In software a lot of options does in fact confuse users; it doesn't take long handling customer support calls to figure this out. It pays huge dividends to build the simplest interface you possibly can without sacrificing functionality.
Apple does well with this; people point to their small market share relative to the whole PC market and say "but people usually buy PCs" and that's true, for a bunch of reasons, but Apple manages to pull price premiums that make the other PC vendors drool -- and do so even though they have a much more restricted application pool to draw users with.
Anyway if you want to know more about this subject I strongly recommend The Design of Everyday Things by Donald Norman. It's not only informative, it's even a good read.
I have a friend (this guy) who starts off a class on GUI design by asking for a show of hands from the class.
The question is, "Who here prefers a manual transmission car to an automatic?" I have been in probably a half dozen classes of programmers when he did this, and every time he gets about 50% of the audience to raise their hands. Privately he tells me that it's almost always 50%, give or take a couple of percentage points.
After he gets the count of hands and shows that it's about half of the audience, he points out that the public as a whole (at least in the U.S.) prefers automatics to standards by a margin of at least 9:1.
His point in doing this is to show that the kinds of interfaces that programmers like (lots of knobs for extra control) are not necessarily the kinds of interfaces that most people -- which is to say "the people who buy your software" -- want. The vast majority would prefer simplicity; in fact, they will pay extra for simplicity.
Building in a lot of options makes about one tenth of the audience happy, but annoys or confuses the heck out of the other ninety percent. It is not good software design; it makes for more difficult training and much more difficult technical support. If you feel you must do it, it's best to hide these knobs in an expert mode... but by and large you're better off by not providing a lot of knobs in the first place. Spend your time carefully designing your software so that you make the right choices so that your users don't have to figure out how to fix what you did wrong.
We got my daughter a computer at 18 months. It wasn't to be a babysitter, it was because I wanted to experiment with computer interactivity early and didn't want to risk using my own PC.
For a year or so she really only had one program on it, a Fisher Price thing with a keyboard drop-over that had big buttons in various shapes and bright colors. It played peekaboo and some simple interactivity. It was fun and it was interesting watching how fast she figured out how to do the things she liked.
One benefit I didn't expect was that she was accustomed to working with electronics very early; we never got the sandwich-in-the-VCR.
It was interesting how long it took before she got the idea of the mouse. A mouse is a really unnatural instrument; you can see that every time you watch a new computer user, young or old or anywhere in between. Touchscreens are vastly more natural, it's too bad they're so damn rare and expensive.
Aaannyway I have a couple of recommendations:
1) Get something really cheap. Mostly we're a Mac household these days but Macs have a lot less children's software than PCs and the entry price is almost twice as high. Ubiquitous is a win.
2) Cover all the buttons, slots, and the screen with plexiglas. My daughter loved to push buttons and was constantly screwing up the display settings. Kids poke at the screen and LCDs are fragile. Sheets of plexiglas are really cheap; get the super-strong velcro from Radio Shack (the stuff that interlocks with itself, not the stuff with fuzz). Put a sheet over the whole display, including buttons on the front, and another over the front of the machine, especially the power switch and DVD slot.
3) Yank off the control, alt, and windows keys from the keyboard. No good comes of them.
4) Be there when the kid is using it; help them, talk to them. Not only is this good parenting but left alone kids will bash on things. Keyboards may only be $20 nowadays but you don't want to buy a lot of them.
5) Don't attach it to the net. The kid doesn't need it and if it's not attached nothing can infect the PC. I think my daughter was six or seven before she was allowed to use any websites. The problem with websites isn't what most people think: The pr0n guys are really not that ever-present, but the advertisers ... woah. They're all over kid-centric sites.
Oh, and TV for kids? I'm not a member of the "no TV ever" club; there are some very good TV shows. Problem is limiting the kids to those particular shows, and having the ability to time-shift them; the kid's schedule rarely follows PBS's. Tivo totally rocks, especially since when the show is over it stops.
(Funny story: We got a TV in the kitchen and attached it directly to the cable box. My daughter had never watched TV without Tivo. She was watching some cooking show with my wife and had to use the toilet; she kept pushing the pause button on the remote, dancing around holding her legs together, saying "It won't pause! It won't pause!" That's TV the way the networks like it, kiddo....)
Good luck, and good parenting.
Hah, you have a point; I was thinking of PCs.
I just stored something on a few USB flash drives to keep around for the next 10 years.
Don't do that if it's important. Flash drives will lose data over time -- and not even a long time. My experience is that you might get a few years out of them; others claim as long as 10 years. See Flash drives are NOT for long term storage and Records, 8-tracks, and other reasons to update your storage media. You'd probably do better with archival quality DVDs but my suggestion is to roll data forward every 5 years or so on external hard drives.
Over 25 years connectors have changed a hell of a lot: The most popular keyboard connector in 1983 was DIN, then PS/2 in the late 80s and early 90s, then USB in the late 90s and early 2000s. It was possible, with an adapter, to use a 1983 keyboard on a PC up until most PCs eschewed with the PS/2 keyboard adapter a few PC generations back.
USB may well survive, but I'm doubtful; even RS-232 didn't last that long.
SATA almost certainly will not survive beyond a decade or so. Disk drive interfaces have tended to last only about 5 years, with another 5 or so of backward compatibility. Someone will start shouting "IDE IDE" I'm sure, or maybe "SCSI" from some old hats. But the IDE drive connector standard is just 14 years old and the last round of computers I bought a bit more than a year ago had no IDE connectors at all. Trying to connect an IBM AT drive to a modern PC will be an experience ... I was unable to connect drives from the early to mid 90s within 10 years.
I will be surprised if peripherals even use electrical interconnects 25 years from now. Think optical, baby.
I don't have any good ideas related to long-term digital storage. I have experience with this going back more than 20 years now and the experience is mostly bad. I do have 25 year old floppies that still work, but they need 15+ year old PCs to read them.
The good news, I suppose, is that those old PCs do still work. (I have a Kaypro II that I boot up occasionally.) If I really wanted to do this I would put a whole laptop full of data with a non-flash drive system in a baggie, fill the baggie with an inert gas, seal it up real good, then seal that in the box. If it all works 25 years from now you're good to go; if it doesn't maybe you can still talk to the drive. Maybe.
As for porting "make" to Windows, Microsoft's toolsuite includes nmake which is very similar to SysV "make". I have used both GNU make as part of the Cygwin utilities package as well as the MKS make too. The make tools all have very similar performance, which really shouldn't be surprising.
There are some really good distributed build tools available for Windows, though, like Incredibuild. When these are used it substantially improves build performance. There are probably similar tools for Linux (I've certainly hand-built schemes to rsh over to run parts of the build on other hosts for improved parallelism) but if there's a really good tool I've not seen it.
In any case using that MS command line tools versus Linux command line tools you will find the Linux tools easily outperform Microsoft's. My belief is that this is primarily the result of both an inferior Windows VM and a particularly slow filesystem, although I never tried to narrow it down by benchmark. Not much point, I can't fix it anyway.
The stock Linksys firmware didn't do it; its QoS features were pretty much worthless IMO and the stock tuning was regularly overloaded due to too-long TCP timeouts and the pounding the thing got from The Bad Guys.
DD-WRT allowed me to tune the settings to the point that it worked slick-as-you-please. There were a couple of critical settings.
First, I boosted the number of active connections allowed to the maximum, 4096. Second, I dropped the TCP/UDP timeout to 10 minutes. These two made all the difference in terms of stability; without them the connection count would rise to saturate the table and things would fall apart fast.
With stability in hand the next thing to do was QoS. I chose to cap bandwidth at about 80% of available and then give priority to the Vonage box's port. This worked neat-as-you-please; the phone never had dropouts and everything else kept going smoothly.
Instead the drive slid into little rubber bumpers that were just press-fitted in place. There's enough friction that it was very difficult to remove, and the bumpers are flexible enough that they'd bunch up when trying to replace the drive. What should have been a 5 minute swap, tops, took more than an hour. Crazy.
I added a tab on the new drive so it will be easy next time.
Even so, that was waaaaay easier than the 12 Powerbook drive swap. 38 screws on that one, plus a bunch of easy-to-damage ribbon cable glued down with aluminum stickers. 90 minutes to swap the drive.
The G5 Quad, however, is an absolute dream to work on. You can do most things without any tools whatsoever.
I've had some issues with Apple's quality but, overall, they're about as good as anyone else I've used and far better than most. Their walk-in service can be a pain (especially if you don't make an appointment in advance) but usually the techs are knowledgeable. I've had repairs take anywhere from 1 to 5 days, with the longest times requiring notebooks to be sent down to Kentucky. In the last two years the number of repairs they can do on-site has grown significantly, although it can take a couple of days to get parts.
I'll keep buying Macs. Even if the hardware isn't perfect, even if the "Genius" Bar sometimes drives me a little crazy, the operating system is wonderful. Easy to keep running, lots of commercial application support, and without the fiddly bits of traditional UNIX or Linux.
I was surprised to find that in every situation that the glossy screen was unreadable, so was the matte screen. In fact, it was usually easier to angle the glossy screen to eliminate the glare. The matte surface reflected glare at much wider angles.
I've now been using the MacBook for two solid years under every imaginable condition and at this point I can say I'd be ok with buying another glossy screen.
I also had the misfortune to have had a glossy desktop screen after the matte version of the monitor up and died. It was a disaster. I would never buy a glossy desktop display unless there were no windows in the room I was using it. I ended up shifting my whole workspace to put the windows behind the monitor, and disabling overhead lights.
I think the difference between desktop and laptop has to do with two things: The monitor position on the laptop is lower, leading to a natural upward angle that tends to reflect background light away from my eyes rather than toward them; and it's easier to change the angle of the laptop display to avoid glare.
That said, I am not entirely happy with my MacBook's display but the problem has nothing to do with glare. It has lousy red reproduction.
I waited for them to update the software so that it was really an iPhone without the phone, instead of crippled. They did that in January. And as luck would have it, my Palm T|X started acting up last week such that it was hard to use the handwriting recognition.
Bought a 16G Touch, got it Friday. I played with an iPhone and thought it was a great little device (but AT&T -- I think not) and that had me thinking about it, but having actually used the Touch now for four days I am just astounded by how good the interface is.
Some nits when using it as a PDA (primarily: it could use a louder speaker for alarms, and the calendar system's alarm tone is fixed and so soft it's almost impossible to hear if it's in your pocket), and I've crashed several of the applications here or there, but overall it kicks the Palm's butt, and unlike the Palm the WiFi is more than just a checkbox, it is really useful.
Two thumbs up. Stuff like this makes you wonder how come Microsoft couldn't do something even remotely as good despite six major revisions of Windows Mobile.
As with the original Mac the raw hardware performance largely fades into the background. EDGE is slow, sure, but even in slow mode the iPhone browser beats the tar out of the using the lousy-to-the-point-of-useless browsers on other 3G-capable phones I've used. What the hell good is a fast network connection on those things, when you can't even use it?
In terms of using the thing as a phone, I figure it's worth waiting for both 3G and the AT&T exclusivity arrangement to work itself out. In the meantime it's possible to get most of the usefulness of the device without AT&T, by far the major suckage point of the iPhone, even though it does mean giving up even EDGE support. I bought an iPod Touch as a replacement for my Palm T|X, now that Apple has come to its senses and shipped it with a full set of applications. The improvement in interface versus the Palm series (a product line that has thoroughly stagnated over the last three years) is really hard to overstate. I don't know what Apple's expectation of market is, but their "music player" is the best PDA on the market by leaps and bounds. (With one major misfeature: Needs a louder alarm!) I kind of wonder if Apple might, in the years before the AT&T contract expires, produce an iTablet that is pretty much the iPhone without the phone, or the iPod Touch with cellular data support. I have a Kindle as well and the EVDO support in it is brilliant where it is integrated well (Amazon store support) even though its web browsing feature is super-primitive to the point of being a "really need to know right now" limited tool. It could be an interesting product, although perhaps not mass-market enough.
As an aside, I can only hope that touch-style UI design takes off. It's nice to see all the other vendors scrambling to make products with those kinds of interfaces, having been caught flat-footed (although you want to skip some of the other first-gen devices; the Touch phone that Verizon is selling right now ... let's be charitable and say it feels rushed). On small form-factor devices it is the difference between "works great" and "is practically unusable". Moreover I would absolutely love a 24" touch display for my desktop, that would make Photoshop way, way more convenient (mice suck, the tablet is a big improvement but it takes a lot of training to get used to writing down there while looking up here, and the Wacomm monitor/tablet that offers the best ergonomics on the market is ridiculously expensive). The interface is vastly superior to the mouse.
So, getting back to my original reason for replying, I don't see that the iPhone hardware is really all that mediocre. There are a couple of design decisions, like EDGE and the fixed battery, that annoy a subset of the population but in the greater scheme of things appear to make little real difference (especially in the US which has narrow deployment of 3G networks). In terms of display, and interface, and application performance, and WiFi networking the devices thoroughly embarrass the competition. This is so much the case that I often wonder if the people complaining about lousy hardware have actually used an iPhone. It works more smoo
Been there and done that. Single-vehicle fatal accidents do have a large speed-related component. They are still under-represented in the data overall, unless you narrow your field to only highway accidents, which are highly under-represented in overall fatality statistics.
I note that these statistics are not easy to get; NHIS doesn't compile such overall statistics, at least not for public release. It cherry picks its figures (for this and a bunch of other things). I'm sure there are political reasons why it does this, but whatever their reason you have to dig them out of FARS on your own. I spent awhile doing that and, frankly, was very surprised at how widely disparate the reality was from the press releases.
Mind you, I'm not saying we shouldn't have speed enforcement -- but the bulk of the carnage on the roads is not speed-related, and it's a huge disservice to not bother to enforce the laws that might prevent a lot of accidents. Failure to yield right-of-way is a very, very common cause of accidents -- both fatal and not -- and yet is rarely prosecuted until after an accident.
When it comes to whether or not speed is a primary cause of accidents you should be aware that if you include all roads in the U.S. then the average speed an accident occurs at is 29mph. If you take highways out of the picture it drops to 27mph. This data suggests that speed is not causal in most situations.
Given this data (and if you don't believe me, by all means go look it up -- that's what I did) you should wonder why it is that traffic enforcement focuses on speeding almost to the exclusion of everything else, even though speeding is a very small fraction of the problem. But speeding is easy to enforce and brings in a lot of revenue, both for the government and (critically) for the insurance companies. This is a major part of why speed limits are artificially low on highways in the U.S.; it's easy money.
If we were really interested in safety we'd spend a lot more time enforcing rules at intersections where almost all accidents occur. Unfortunately automated tools like red light cameras have not proven effective in reducing accident rates; quite the contrary, they have boosted them. There are numerous theories as to why this is, but the one I adhere to is that the yellow light period is usually shortened when it should be lengthened. The way it is now people slam the brakes on when the light goes yellow and they get rear-ended. Oops.
Oh, about that MacBook Air. I would like one. It's not quite what I want -- I want a 13" MacBook Pro -- but I love the form factor. The huge downside I see is not the lack of an optical drive, which I can carry if I need or not if I don't, but the non-replaceable battery. 5 hours, even if that is a real number, is not enough for a cross-country flight. If or when my MacBook finally dies I will probably get one regardless, the MacBook has not been durable enough, but it would be a lot more useful if I could carry spare batteries.
Every 3 months or so my wife's laptop would start failing in some obscure, inscrutable way that could only be fixed by reinstalling Windows. (Maybe there were other ways, I dunno; the problems seemed mostly to be registry corruption but also occasional lost files.) Reinstallation took upwards of 14 hours, almost all of which was reinstalling the numerous applications. This was, as you might expect, a pain in the ass.
I finally got sick of it. Apple had released OS X not so long ago and it was UNIX through and through. I figured that with UNIX underneath it would probably not break as often as Windows. So I bought her a Ti Powerbook. I knew she'd have some issues with the conversion, so I got her the prettiest laptop they sold, figuring that fashion could make up for at least some of that.
There were conversion pains. Mostly we had to find software to do the things she needed to do; some freeware, some paid software. It took months for certain software, notably the Palm Desktop, to be ported to OS X. OS X 10.1 had this annoying habit of forgetting your printer configuration. But she was up and running in a few days and I probably spent about an hour on support issues in the four years she had the laptop. (It's still being used daily by a relative.) To call that a major improvement over Windows would be an understatement.
Meanwhile my Linux laptop was getting pretty old in the tooth, and I really liked hers. It was UNIX, but there was a lot more polished software available for it, and sound and video and wireless all worked without being all fiddly. So about six months later I bought myself a 12" Powerbook.
That was the best laptop I have ever owned. It was durable, compact, had lots of good software, and just kept running for five solid years. (It's still being used daily by a different relative.) I upgraded it to a MacBook purely because it was too slow to run various photography-related software packages I use.
What's more, when we got my wife's new laptop -- the last of the G4 Powerbooks it turned out -- I got to try out Apple's migration facility. It's so slick it's scary. Plug firewire into both laptops, put the old one in "target" mode (where it pretends it's a firewire disk), and let it chunk along for about a half hour. When it's done you have your old desktop, including drivers and software and settings and data, on a newer faster machine. The experience is so good it made me very, very angry at Microsoft. Every new box I get from Microsoft requires another of those all-day installation and data copy fests.
I still use Linux every day, both at work and at home. But not on the desktop. It's not that it doesn't work, it's that it's more work than it's worth when there are more polished desktops available -- and I lose nothing by running MacOS X; all the same tools available on Linux are there, on top of the polished GUI stuff.
But what surprised me more than anything else when I got my first Mac laptop was that I stopped using the uber-fast Windows desktop system entirely. The Mac worked better for just about everything, even though it was a fraction of the speed. The silly thing ended up looking like an octopus with all the USB and FireWire stuff hanging off of it. Windows still does some things better than the Mac (notably Windows software development, of course). Most of our PC games run only on Windows. But for most of the day-to-day stuff the Windows PC plays second fiddle.
Linux on the desktop was, until a few weeks ago, a distant memory. Linux on the server, though ... well that's a different story. It hosts my website and my e-mail and databases and more. It's the embedded software in my DVRs and NAS systems and even my new e-book. I have more Linux-based systems in my house than Windows and Macs combined.
And that new Linux desktop? It's an XO
One problem with running disks off of, say, a Linux server is there is a limit to how many of them you can stuff in there. Usually I hit that limit right around day 1. Moreover, the PC eats a fairly large amount of juice even just doing nothing. My back-up strategy was to avoid RAID entirely and use plain disks (external drives) as backups. I would just clone the live disk to the backup on a regular schedule. There are lots of reasons why I really wanted it to be a different unit, though, and I didn't want to maintain another Linux box. Eventually I decided to get a Buffalo TeraStation, a 1TB unit. The original unit I have had only one major defect, that being that it really couldn't feed gigE at full speed. In effect there was no point in running it faster than 100baseT. When I needed additional storage I bought another Buffalo product, this time a TeraServer 2TB. It fixes the performance issues with the older unit and is generally better designed. Both units together only eat about 100W; less than my PC-based server at idle. I like 'em; low effort, not expensive, work well. YMMV, of course, but so far (three years of heavy use on the TeraStation) they have been great. So far I haven't had to do disaster recovery but it's Linux ... not going to be worse than a Linux RAID array, I figure.
How true this is. What's kind of funny is that I picked up a random cheap game at Staples the other day to run on my Windows box. It didn't work. Only works on XP, of course, and I run Vista on that thing. (I knew that was a risk, you just don't know until you try it.) From a consumer point of view it is frustrating either way.
Although the lady I gave it to was happy to have SOMETHING, she wasn't very happy when she realized I'd just given her a lifestyle when she thought she was getting a computer.
Hah, I've BTDT too, although with Macs rather than Linux boxes. Unless you're planning to run games there is really little difference in the function of Windows, Linux, or MacOS; they all can do the job, they all have quirks that mean some stuff won't run on them or will run only if you know the right magic incantations. Windows is only a win in that there are a lot more knowledgeable people around.
What it came down to for me was the ongoing support effort. Windows PCs always mean significant ongoing effort. Things just go inscrutably wrong with them, and debugging over the phone with a neophyte just plain sucks ... especially when the only viable solution is almost certainly going to be "back up what you can and reinstall". (Or buy a whole new PC.) It's way harder to corrupt a Mac, and while they too have weird problems on occasion I haven't yet run into one that required a full reinstall (not even the oh-so-pleasant "I disabled admin access on the only admin account" problem with recent Leopard installs). It can be annoying, but it's annoying with a low periodicity rather than being near-constant.
So in the case where I'm supplying the PC or supporting the PC I recommend Macs. Lots of commercial software and low low support costs. I have had people who weren't always happy about that, but they get a lot of stuff done in between minor bouts of frustration due to compatibility issues and it's not like they weren't going to have plenty of frustrations with the Windows box too, just different (and more serious) ones.
I also really like it when they buy a new Mac and get to do the "transfer stuff from the old Mac". It's so easy it always amazes me. Makes me all the angrier at Microsoft, actually, because there's no reason Windows couldn't do the same thing except for that goddamn registry.
(I did the Linux desktop and laptop thing for years myself before giving up and buying Macs for that kind of stuff. It works, but it's more effort than it's worth. Love it on my servers though ... cheap and effective and also really easy to move an old system to a new one. We really only have Windows boxes for running games, and for that I can treat them as disposable.)
I don't know about Apple customers in general, but I bought a Mac laptop for my wife not because it was shiny but because I was pissed off at spending 10 hours every 3 months reinstalling Windows on the damn thing when something broke in some weird and inscrutable way (that was Win98). I figured with UNIX underneath it could not possibly be worse than Windows in terms of maintenance. Shiny helped her accept it, but the utterly pain-free administration and much higher quality hardware than the Dell laptops we'd used previously were what got me to buy one for myself six months later.
What really surprised me was that I ended up using that laptop as my primary desktop (tethered to a big monitor, external drives, etc) in favor of the XP PC sitting right next to it that was four times as powerful. For both basic computing tasks and photographic work the Mac was a much better choice despite the spartan hardware. (XP was great for gaming though.)
Those laptops lasted 5 years each, fully twice as long as any Windows PC or laptop I have ever owned, and relatives still use them today. Both run OS X 10.4 even better than they ran OS X 10.1. No viruses, no reinstalls. It was a breath of fresh air after the pain of keeping the Windows boxes running well.
The good experience with the laptops got me to buy a Mac Quad specifically to do photographic work. I love the thing; it's fast and has wonderful color management.
Not that it has all been roses. There have been a handful of pretty weird software issues (all solved with the help of macosxhints.com) and the newer Apple hardware has certainly not been as reliable as the older stuff. All three of the machines bought in the last two years have been back to Apple for warrantee work once, an annoyance. But Apple didn't gripe about it, they just fixed the problems, a much better experience than I've had with any PC vendor (you just try to get a Compaq PC covered under warrantee as a consumer, I dare you).
So basically I've been pleased with the function and longevity of my Apple hardware and that's why I keep buying it. It's way easier to keep running smoothly than Windows PCs and despite a somewhat higher purchase price the longevity makes them a good value. The experience has been so good that I've bought them for relatives when I got tired of fixing their Windows PCs and I recommend them to friends who have had issues keeping their Windows PCs running.
Heck, the MacBook I use now isn't even shiny ... although I really wish they offered a 13" MacBook Pro, I could use the better video hardware.
YMMV, of course.
"Mostly harmless."
That hasn't been my experience at all (other than Windows machines being cheaper up-front). All else being equal, it only takes a single failure to swamp the price difference between, say, a Mac Mini and a cheap Dell. In fact, my motivation to move various people I admin PCs for to Macs is the dramatically reduced administration. The Macs just keep running, the PCs need constant repair, and the repair is really costly in terms of time.
This is why ghosting became so widespread. They streamlined the ability to restore the system to a known-good state because there was no way to keep it in a known-good state. If fixing it is going to be necessary on a regular basis, it made sense to minimize the associated overhead as much as possible. Even so, given typical IT department loads, you're talking about a couple of hours of downtime and a significant fraction of an hour for the IT department to fix the problem. Even one of those is going to cost hundreds of dollars even if you're only considering the cost of the employees and not cost of lost work or opportunity costs.
Moreover, there is a big dichotomy here between business and home users. In home use the repair costs are much, much higher. There is a general inability (as well as unwillingness) to lock the system down. That makes malware, or even simple user mistakes, more likely to destabilize the system (and malware is endemic on home Windows systems). A reinstall of a WinXP system from scratch without a ghost-type copy takes hours (about 14 for the systems I have been keeping running, between the OS install, app reinstalls, OS patching, and data restore). It's little wonder that home users find Macs to be a lot easier to keep running -- they are. The software doesn't break very often, and malware is essentially unheard of (at least for now).
But going back to business and Macs, the head of IT at my current company doesn't like Macs at all, finds them very unreliable. There's something to that; of the three Macs I've bought in the last 18 months, all three have been back to Apple for service, and two of them are going back again. That's a lot of downtime -- at least hours, if they can fix the problem at the Apple Store (or on-site or at a support shop, if you use those) or days if it has to be shipped somewhere (most laptop problems require remote service). The class of problems is different, though; you almost never have software problems (there is one class of problem I have seen that continually pops up, although it is trivial to fix). It's the hardware that is sometimes flaky. I suspect a lot of that is due to the fact that most of us Mac users are using cutting-edge hardware, not established units whose production is more solid. But whatever the reason it is a fact that Mac hardware is, at least sometimes, failure prone.
I think the difference in his perception is largely due to a lack of local ability to fix trouble with Macs, though, and that's a case of not all being equal. If a PC goes south it is usually easy to fix or to swap something to work around the problem temporarily, so downtime for hardware problems is minimal. Few businesses, and almost no home users, have a supply of spare parts or spare Macs to do this kind of repair. And most Macs are not particularly easy to service; swapping a drive in all but the newest Mac laptops is a painful experience, for instance, and the high integration of everything in Apple's line except Mac Pros means that if anything breaks you have little choice but a full motherboard replacement. Without easy serviceability and with poor parts availability downtime is usually significant. But if you're a business heavily invested in Macs you can keep spares about just like most PC shops do, in which
The other thing that I found interesting when I boosted RAM from 2G to 4G was that Aperture doesn't use it all; it peaks at pretty close to 2G no matter what I'm doing. That's nice in the sense that now I have basically half of my Mac for doing other things, so interactive performance while jumping between applications really never suffers, but I was somewhat surprised.
One thing that I find interesting is that a lot of people say that Aperture 1.5 is much faster than 1.1. That wasn't the case on my Quad; there was no obvious difference at all. That makes me wonder if Apple made it work well on the best hardware first, then worked backwards through their line. Even so, Aperture 1.5 had so many big improvements as to be a godsend.
I still want curves support, though, and I believe they can do much, much better on performance by caching intermediate product. It seems like they're performing a re-render of the whole image every time -- and if that's the case, it's a wonder that it's as fast as it is. While on the subject of stuff I wish Aperture did better, its printing support is almost laughably bad and so is its patch tool.
Perhaps the most interesting thing about Aperture, to me, was where the value really came from. 1.0 had crummy rendering, and they didn't really get the package sorted until 1.5. Yet 1.0 was still worth every penny I paid for it because it cut my time spent winnowing out the money shots by something like a factor of five. It was an incredible win that has only improved as the other capabilities matured.
And its other capabilities did mature, much faster than I expected. Today I prefer its rendering in most cases to every other tool at my disposal. Whereas I used Capture One for almost all my rendering in the Aperture 1.0 days, and maybe one in ten with Aperture 1.1, it's like one in a thousand with Aperture 1.5. It got that good, that fast. Remarkable.
Regarding Aperture versus Lightroom, I despise the modal nature of Lightroom. They did a much better job of it than did Capture One (the second worst UI I have ever used, after Lotus Notes) but I still find myself hopping back and forth between Library and Develop way too often. Why aren't all the tools available in both places? Photoshop isn't like that. Nor is Aperture. On the other hand, Lightroom has the best printing interface I have ever seen. I hope CS3 gets it, and Apple copies it.
Having said that, some of the classloader toolkits available for Java these days are awesome, so I wouldn't necessarily go pick .NET out over Java just to get the additional features Microsoft endowed it with. That doesn't affect my thesis though.
Lest you think I am all wobbly over .NET, some of the things Microsoft did are, at least in my opinion, blindingly stupid. For instance, sealing (finalizing) everything in sight makes a lot of things much more difficult to use. (Like Thread.)
And whoever it was at Microsoft who decided that C# should continue the asinine C++ behavior of having nonvirtual as the default for methods (in a supposedly OO language!) should summarily be shot. That's like breaking the knees of all of the downstream programmers, because you know that almost nobody will actually make their methods virtual, meaning that anyone who came along later is going to be crippled. This was a stupid idea for C++ when they had (what they thought was) an overpowering reason to do it; for C# it was completely idiotic.
I figure that whoever made that decision probably had a hand in MFC too, it also bears the signature of people who wouldn't know how to make use of OO if they walked right into it.
It's kind of amusing, when you think about it, that what Sun really got out of their lawsuit against Microsoft for their (really, really minor, especially relative to stuff like what Netscape did) modifications to Java was a pure competitor in .NET.
You mention .NET's ability to easily (I'd say "relatively easily") link to native code as a big detriment, but in many .NET implementations that's not used at all. It's easier to work with disparate code like that through a SOAP or database interface. In practice you see a lot of .NET front-ends to traditional servers via a SOAP integration. You see less of it used as a replacement for traditional MFC code, the kind of thing where such integration would be most useful.
But getting back to the enterprise, .NET's largest problem in terms of enterprise software is not that it's less mature than Java (in many ways I'd say that Microsoft took the good stuff from Java and improved it a lot) but rather that it's locked to Windows. Maybe you haven't noticed, but Windows is not a very good server operating system -- not very reliable, not very fast (except in very specialized situations), certainly not scalable. It's all very well and good that you can drop a couple of hundred boxes in there to scale to huge applications, but when you could run the same application on a single Sun you're really not making a cost-effective choice. (I wish I were making that up, but it is actually pretty typical to be able to replace as many as 100 Windows servers with a midsize Sun or two, and that is true not only of stuff like IIS/ASPX versus Apache/whatever that are differentiated by more than OS but also for directly comparable stuff like databases and ETL). Push Windows hard and it will break, often. It's nuts to put it in critical places (although that is done, a LOT, and people pay the price in ongoing maintenance).
Having said that, .NET is probably the single best GUI implementation framework I've seen yet (although that may be damning it with faint praise), and Windows, at least aside from the malware issue, is a pretty fine desktop. In that domain it shows what Java could have been if Sun had been even remotely competent (rather than giving us stuff like AWT and the Swing abomination). We're going to see a lot of .NET on the desktop because it is pretty much best-of-breed. More power to it.
Java is today, and has been since at least the late '90s, often used in enterprise situations. Whether or not it's appropriate in a lot of those situations is debatable, but it is deeply integrated into the core operations of a lot of companies at this point. Personally I feel that JMS is not very good at its job and J2EE as a whole is a steaming pile of dung designed by people who wouldn't know a good application architecture if it ran over their foot, but Java as a whole and these things in particular are out there and being used by a lot of people -- and at least in some cases doing a good job.
It is certainly possible to build robust, reasonably efficient large-scale Java applications. It is even easier to do that in Java than it is in C++, especially if you avoid some of the more ridiculous parts of J2EE. But that doesn't mean it's easy to build that kind of thing, and as you might expect there are a large number of really awful Java applications out there (just as the majority of large applications built on all the other languages out
I completely disagreed; at the time, it seemed clear to me that SCO's entire case rested on an interpretation of the contract that amounted to SCO owning all the code that IBM wrote independently. I don't think juries generally like the idea of someone using vague contractual language to grab others' work, especially seeing as SCO didn't even do the original work.
I also argued that it was unlikely SCO had anything to show, given that they'd already been reprimanded for missing discovery deadlines; now I am not a lawyer but my impression is that ignoring the judge's orders repeatedly is not good for your case. And indeed, that seems to be what has caught them out. Enderle told me he'd been privy to some of the stuff they were going to show the court, but my guess is that he didn't understand what they were showing him well enough to realize they were blowing smoke.
I am convinced that SCO figured IBM would just pay them to go away, everyone would make a quick buck, and that would be that; it would probably have been cheaper than this protracted court battle. But IBM thinks longer term. Having put up this kind of fight, do you think anyone else will ever sue them over Linux IP? This fight will make Linux largely lawsuit-proof.
It will be interesting to see what Enderle says about this decision, if anything. SCO clearly hoodwinked him. But as wrong as he was, he wasn't alone.
It doesn't really matter; the point was that programmers -- engineers in general, really -- prefer knobs and tunables and the general public doesn't. The general public will even pay more for simplicity; look how well AOL did, or the original iPod (when it was still selling at a big premium).
In software a lot of options does in fact confuse users; it doesn't take long handling customer support calls to figure this out. It pays huge dividends to build the simplest interface you possibly can without sacrificing functionality.
Apple does well with this; people point to their small market share relative to the whole PC market and say "but people usually buy PCs" and that's true, for a bunch of reasons, but Apple manages to pull price premiums that make the other PC vendors drool -- and do so even though they have a much more restricted application pool to draw users with.
Anyway if you want to know more about this subject I strongly recommend The Design of Everyday Things by Donald Norman. It's not only informative, it's even a good read.
FOSS needs a shower and a shave and should, needs to dress a little nicer, and stop hanging out in the seedy parts of Waltham.
The question is, "Who here prefers a manual transmission car to an automatic?" I have been in probably a half dozen classes of programmers when he did this, and every time he gets about 50% of the audience to raise their hands. Privately he tells me that it's almost always 50%, give or take a couple of percentage points.
After he gets the count of hands and shows that it's about half of the audience, he points out that the public as a whole (at least in the U.S.) prefers automatics to standards by a margin of at least 9:1.
His point in doing this is to show that the kinds of interfaces that programmers like (lots of knobs for extra control) are not necessarily the kinds of interfaces that most people -- which is to say "the people who buy your software" -- want. The vast majority would prefer simplicity; in fact, they will pay extra for simplicity.
Building in a lot of options makes about one tenth of the audience happy, but annoys or confuses the heck out of the other ninety percent. It is not good software design; it makes for more difficult training and much more difficult technical support. If you feel you must do it, it's best to hide these knobs in an expert mode ... but by and large you're better off by not providing a lot of knobs in the first place. Spend your time carefully designing your software so that you make the right choices so that your users don't have to figure out how to fix what you did wrong.