Microsoft lives to see another day

Microsoft lives to see another day. I’m of two minds on the Microsoft breakup. As a good little Republican, I believe in free enterprise and history demonstrates again and again that the best way to kill something is to regulate it. Government is reasonably good at protecting us from thugs, when it wants to be, and it’s best at protecting us from thugs when it’s not meddling in things it’s not good at doing.
However, there is absolutely no doubt in my mind that Microsoft is a thug.

Microsoft rightfully recognized OS/2 as a threat to its empire and wanted to get it gone, quickly, before the public realized that Windows 3.1 was just a pile of unstable crap not worthy of being called beta software and started buying something that didn’t crash three times a day. Knowing that IBM is a big, slow company whose various divisions usually don’t even realize they’re part of the same behemoth, Microsoft attacked. As Windows 95’s release date grew nearer, Microsoft knew IBM’s PC division would want to sell Windows 95 pre-installed on their PCs, since no company wanted the distinction of being the only company that couldn’t sell you a Windows 95 PC. Microsoft told IBM that if they wanted to bundle Win95 with their PCs and continue to sell OS/2, well, then, they could just go buy their Windows 95 licences at retail.

Finally, IBM negotiated a compromise. They got their Win95 licenses, but at the price of not being able to market their vastly superior alternative anymore.

Microsoft saw a little company called Netscape as a threat, because its cofounder, a young, hotheaded programmer fresh out of college by the name of Marc Andreesen, publicly stated his ambitions to make his Web browser more important than the operating system it ran on. That’s a lofty goal. Strong talk. But what 23-year-old college graduate doesn’t walk across the stage thinking he or she can conquer the world? Bill Gates wouldn’t understand that feeling, seeing as he never managed to get a degree, but anyone else with the self-discipline to play the game for four years does. And when you’re Marc Andreesen, who managed to write both popular Web browsers, one of them while you’re still in college, you have more than a feeling you can change the world. You already know it. You have evidence! So of course you talk big.

Andreesen paid a tall price for thinking big and talking big. Microsoft went to NCSA and licensed the other Web browser Andreesen wrote, slapped its logo on it, and called it Internet Explorer. Initially they sold it as part of the Plus pack, but since Netscape was a far better browser, Microsoft wisely decided to compete on price. They improved it and started giving it away. Back when the Japanese started selling minivans at below cost, it was called dumping. But laws that apply to everything else don’t apply to computer software, because lawmakers and judges are morons who have no understanding of technology, and Gates, being the son of a lawyer, knew it. So Microsoft got away with it. Netscape, unable to compete, died a very slow, painful death.

But consumers are so much better off now, aren’t they? Rather than pay for a Web browser that sometimes crashes (or, as usually was the case, getting it for free when they sign up with an ISP who bought a bunch of Netscape licenses in bulk), they get a browser/operating system combo that crashes a lot and often takes the whole system down with it.

Now, somehow, a tiny company in Seattle that specializes in streaming audio is a threat to Microsoft’s OS monopoly. I guess when people are listening to underground radio stations using a piece of software that doesn’t display Microsoft’s Windows logo, they’re not thinking wonderful and lovely thoughts about Microsoft and therefore they’re a threat. So Microsoft makes streaming audio part of the OS and foists it on people, even if they don’t have a sound card. Listening to MP3s is an essential, inseperable function of the operating system, after all.

Now, RealAudio makes my life pure hell sometimes and I’d love to see the company roll over and die. But just because they had a good idea and a poor implementation and ambition to grow doesn’t give Microsoft the right to kill them just because they have a product the marketplace likes and some day might use that revenue to become bigger competition than they are now. The logical conclusion of that logic is for Microsoft to send out hit men to take out any programmer who dares work for somebody other than Microsoft or a company like Symantec or Adobe that Microsoft can wrap around its little finger.

And yes, Justice Penfield Jackson is a moron with a big mouth. He was understandably livid at Microsoft for its courtroom antics and doublespeak. However, rather than opening his mouth, ordering their breakup, then opening his mouth some more, he should have just held them in contempt of court. They fabricated evidence when they shot the video that attempted to prove that Edward Felten’s program didn’t work. Jackson caught them. The solution isn’t to extract revenge by opening your mouth outside the courtroom. That’s just stooping to Microsoft’s level. Holding them in contempt and saying why would have been more than enough.

But it’s increasingly looking like none of this matters, for once. Microsoft’s back to its old tricks, bundling more and more stuff that people may or may not want into their operating system, and now they’re doing more than just bullying their competitors. They’re bullying their customers as well. Not many companies will appreciate Microsoft forcing them to spend thousands of dollars to prove they’ve never ever installed a copy of Windows twice. The companies that are guilty, of course, have no leg to stand on. But a lot of companies end up paying for Windows twice. A copy of Windows comes with every PC they buy, but as part of a volume agreement with Microsoft, they end up buying, for whatever reason, an additional copy of Windows for every PC on their network. But now that Microsoft is flailing around for revenue, you’re guilty until proven innocent. If you own one PC and Microsoft knows about it, then it’s entirely possible you own two PCs and you loaded your copy of Windows on it too.

Some of the audited companies are understandably upset and suddenly looking for alternatives, where they were formerly in Microsoft’s camp 100%.

And, of course, Microsoft’s attempts to force people into upgrading, even when Windows 95 and Office 95 are perfectly suited to many tasks, will alienate some. Microsoft’s oft-misunderstood .Net initiative has infuriated people that I never expected to leave the Microsoft camp. Some buy right into it, but some always do. Meanwhile, Linux and its associated software marches on, getting better every day. Ironically, a similar tactic that Microsoft used to murder Netscape in cold blood–giving the software away for free–now threatens the cash cow of NT/2000 server. Servers are enormously profitable–you just take your desktop OS, call it a server, charge five times as much for it, and then charge a few bucks per seat for the privelige of connecting to it. The real cost of a Windows NT/2000 server usually runs five figures. And most companies have several servers. Linux, meanwhile, is low-cost (free if you want), more stable, and more versatile.

Since Microsoft’s current business model requires not just profits, but sustained exponential growth, Linux’s attacks on the server front may allow justice to finally be administered, no matter how incompetent the U.S. Government’s Keystone Kops turn out to be.

One can only hope.

Failures (of the modern man).

I love Joy Division references. For those of you reading this on the front page who can’t see the title (I’m sure I can fix that but I’m lazy and it’s late), I titled this “Failures (of the modern man),” which was the title of an early Joy Division song. I don’t remember what it was about. It was just a really cool title.
I saw another ghost today. Not literally. A ghost from the past. Someone I knew a long time ago, someone I hadn’t seen in eight years. I know I looked vaguely familiar to him because we made eye contact and he gave me the I-know-you-from-somewhere-but-I-don’t-know-where-so-I-won’t-say-anything look. I gave him the very similar I’m-pretty-sure-I-know-who-you-are-but-I’m-not-saying-anything-just-in-case-I’m-wrong look.

I met him in 1991. I’d just turned 16 and this was my first job, at a place called Rax, a now-defunct fast-food joint whose specialty was roast beef sandwiches. I was ambitious and worked hard. I had several reasons for working: It was something to do. I liked having date and weekend money. (Not that I got many dates–so it was mostly weekend money.) It was another place to meet people outside of school.

A lot of people looked down on me because I was working in a restaurant, and a fast-food restaurant at that, and it made me mad sometimes. I got the job easy and I didn’t want to make a lateral move, so it made sense to stay there. At that point in time, it was virtually impossible for a 16-year-old male to get a job outside of food service because until you turn 18, you can’t be prosecuted if you steal stuff. At a fast-food joint you can steal little stuff but they can fire you for doing it, and that’s usually enough deterrent. And I was ambitious. This was my job until I turned 18 and could get something else. Then when I turned 18 it was hard to get something else because not many places were hiring in 1992. We were in a recession. So I stayed until I left for college. No shame in any of that. I worked hard, I did the job well, I was good at it, and I did move up. My next job was in retail, hawking consumer electronics for two summers and two Thanksgiving and Christmas breaks. My next job after that was as a part-time computer tech, which grew into a full-time network administrator job.

I’ve been a young professional for just over four years now, and I can look back over the four years, see good reviews, a lot of work accomplished, and a steadily increasing salary, presumably a reflection of how my employers have valued my work. My car’s a 2000, I wear a tie most days, and I command respect. I guess I turned out OK.

Back to this guy I saw yesterday. He worked part-time. He was the guy who walked around the mess hall “dining room” and cleaned off the tables. He swept the carpet. He washed the trays. He got people refills. He was a good guy, a nice guy, personable. He didn’t strike me as dumb either. I remember him being reasonably articulate. He’s not of old European stock; he’s at most a second-generation American and more likely he’s an immigrant, but he had a very light accent.

I don’t know how well respected he was. One night I came in, and the general manager asked me to fill out the night’s lineup. The positions were usually pretty obvious. You had to be 18 to run the slicer, so you’d put the 18-year-old there. One of the people working until close took the salad bar, and the other closer took the drive-thru. Of the two people left, one took the dining room and one took the front register. Most of us had our specialties. I was good on the register, fast at making change, so I was usually on the drive-thru or up front. So I filled out the lineup, handed it to her, and asked if it was OK.

“No, put [this guy] on front cash,” she said, then laughed. “No, it’s great. Post it.”

I don’t know when I last saw him. The store closed in 1993. I left a little before that to go to college, but I remember the store’s last day. I don’t know if I came in just to say goodbye, or if I came in that day to get my last paycheck. I know I didn’t see him that day. The store fell on tough times near the end, because the company was struggling big-time, and just about all of us knew it. More often than not, we went without someone in the dining room. The salad bar person or the front cashier would pop out there and clean up the dining room when things were slow, which was often. He probably didn’t make more than $4.50 an hour, but if the store could save 9 bucks by not having him there from 5-7, the pressure was there for them to do it. He may well have sought employment elsewhere long before the store closed.

I saw him today. I was bad today. I rarely eat fast food anymore, because it’s terribly unhealthy, but today I had a Jack in the Box craving, so I went there. And there, working the dining room, was a dead ringer for the guy I was talking about. This guy had a beard, and he looked older, but it’s been 8 years, so of course he looks older. The name on his badge was a diminuitive form of the name he used when I met him, and it’s not a terribly common name. If I were a betting man, I’d eagerly wager a hundred bucks it’s the same guy.

And I felt bad. I’m 26 now. I said something derogatory about yuppies a couple of weeks ago, and one of my coworkers said, “But you are one.” And I guess he’s right. I wear a tie. I drive a 2000. I can afford a ritzy apartment. (I prefer to bank the money instead.) I’ve done OK.

And here’s a former coworker, in all likelihood in his 60s now, still doing the very same job he was doing when I met him more than 10 years ago. I confess I don’t know what minimum wage is these days because it’s been eight years since minimum wage affected how much money I made. And I never made minimum. My starting pay was $4.50 an hour, when minimum was $4.35.

While all fast-food jobs, outside of management, are considered unskilled labor, cashiers are generally paid better than the people who clean dining rooms. I doubt he made much more than minimum 10 years ago, and I doubt he makes much more than minimum now. Meanwhile, the only way minimum wage affects me is by raising the price of things like soft drinks and milkshakes.

And I’m wondering, where did it go wrong? Maybe he likes working fast food. I don’t know. But he didn’t look particularly happy, so I doubt it.

You can learn a lot in 10 years. I’ve been slacking. I wanted to know Unix by now. I also wanted to be able to read Greek and Hebrew by now. I can build and administer simple Linux servers now, but the only non-English language I know is Spanish, and I sure don’t know much of that. I can find the bathroom and I can ask for three of my favorite foods, I know a good way to get funny looks is to say, “Llavo mis manos con sopa de pollo,” and when one of my coworkers curses in Spanish, I know she’s cursing but I usually don’t know what she’s saying.

But I have learned a lot.

Why hasn’t he? Where were his opportunities? Did he choose not to better himself, or has the door been slammed in his face? I know it’s not the government’s responsibility to see to it he betters himself, or necessarily even to give him opportunities, but isn’t it his neighbors’ responsibility? What have they been doing? What should they be doing? What should I be doing?

Those are tough questions I don’t have an answer for.

Fare thee well, Alpha…

Fare thee well, Alpha, if Intel will allow it… I’m not holding my breath. The greatest CPU of all time, by a long shot, looks to be no more. Compaq pulled the plug on Alpha, essentially selling it out to Intel. Another case of far superior technology dying because its owner had no idea what to do with it.
But Intel, with its terminal case of NIH syndrome, isn’t about to let some other company’s technology thrive if history is any indicator.

One story in The Register likened replacing Alpha with Intel’s Itanium as replacing a Ferrari with a Yugo.

In my ill-fated Integrating Linux Servers with Windows Networks, I stated that we’ll miss NT on Alpha, and I presented Linux as a way to preserve a shop’s investment in Alpha-based servers. Indeed, an Alpha running Linux ought to be useful for many, many years, with or without Compaq’s blessing.

I guess I should be happy to see that IBM isn’t the only company that comes up with great ideas and great technology and then has no idea what to do with it. But I’m not. I hate seeing good engineering go to waste, especially when the beneficiaries of that waste are perpetual underachievers like Microsoft and Intel.

What can I say about Tuesday…?

Photography. Tom sent me links to the pictures he took on the roof of Gentry’s Landing a couple of weeks ago. He’s got a shot of downtown, the dome, and the warehouse district, flanked by I-70 on the west and the Mississippi River on the east.
I’m tired. I spent yesterday fighting Mac OS X for a couple of hours. It still feels like beta software. I installed it on a new dual-processor G4/533 with 384 MB RAM, and it took four installation attempts to get one that worked right. Two attempts just flat-out failed, and the installation said so. A third attempt appeared successful, but it felt like Windows 95 on a 16-MHz 386SX with 4 megs of RAM. We’re talking a boot time measured in minutes here. The final attempt was successful and it booted in a reasonable time frame–not as fast as Windows 2000 on similar hardware and nowhere near the 22 seconds I can make Win9x boot in, but faster, I think, than OS 9.1 would boot on the same hardware–and the software ran, but it was sluggish. All the eye candy certainly wasn’t helping. Scrolling around was really fast, but window-resizing was really clunky, and the zooming windows and the menus that literally did drop down from somewhere really got on my nerves.

All told, I’m pretty sure my dual Celeron-500 running Linux would feel faster. Well, I know it’d be faster because I’d put a minimalist GUI on it and I’d run a lot of text apps. But I suspect even if I used a hog of a user interface like Enlightenment, it would still fare reasonably well in comparison.

I will grant that the onscreen display is gorgeous. I’m not talking the eye candy and transparency effects, I’m talking the fonts. They’re all exceptionally crisp, like you’d expect on paper. Windows, even with font smoothing, can’t match it. I haven’t seen Linux with font smoothing. But Linux’s font handling up until recently was hideous.

It’s promising, but definitely not ready for prime time. There are few enough native apps for it that it probably doesn’t matter much anyway.

Admittedly, I had low expectations. About a year ago, someone said something to me about OS X, half in jest, and I muttered back, “If anyone can ruin Unix, it’s Apple.” Well, “ruin” is an awfully harsh word, because it does work, but I suspect a lot of people won’t have the patience to stick with it long enough to get it working, and they may not be willing to take the extreme measures I ultimately took, which was to completely reformat the drive to give it a totally clean slate to work from.

OS X may prove yet to be worth the wait, but anyone who thinks the long wait is over is smoking crack.

Frankly, I don’t know why they didn’t just compile NeXTStep on PowerPC, slap in a Mac OS classic emulation layer, leave the user interface alone (what they have now is an odd hybrid of the NeXT and Mac interfaces that just feels really weird, even to someone like me who’s spent a fair amount of time using both), and release it three years ago.

But there are a lot of things I don’t know.

I spent the rest of the day fighting Linux boot disks. I wanted the Linux equivalent of a DOS boot disk with Ghost on it. Creating one from scratch proved almost impossible for me, so I opted instead to modify an existing one. The disks provided at partimage.org were adequate except they lacked sfdisk for dumping and recreating partition tables. (See Friday if you don’t have the foggiest idea what I’m talking about right about now, funk soul brother.) I dumped the root filesystem to the HD by booting off the two-disk set, mounting the hard drive (mount -t ext2 /dev/hda1 /mnt) and copying each directory (cp -a [directory name] [destination]). Then I made modifications. But nothing would fit, until I discovered the -a switch. The vanilla cp command had been expanding out all the symlinks, bloating the filesystem to a wretched 10 megs. It should have been closer to 4 uncompressed, 1.4 megs compressed. Finally I got what I needed in there and copied it to a ramdisk in preparation for dumping it to a floppy. (You’ve gotta compress it first and make sure it’ll fit.) I think the command was dd if=/dev/ram0 bs=1k | gzip -v9 > [temporary file]. The size was 1.41 MB. Excellent. Dump it to floppy: dd if=[same temporary file from before] of=/dev/fd0 bs=1k

And that’s why my mind feels fried right now. Hours of keeping weird commands like that straight will do it to you. I understand the principles, but the important thing is getting the specifics right.

Odds and ends to start the week

Let’s talk about this site. So far, the forums are pretty much a flop. There’s a little activity over there, but not much, and the forums didn’t cut down on the amount of mail I receive by much. I’m not going to take them down because I like them, and a few other people like them, but since they’re not solving the problem they were designed to solve, I have to look at other methods.
So I’m going to put mail on a separate page. I’m using MHonArc to generate the pages. Mail messages end up on their own pages, which is a disadvantage to the traditional Daynotes method of handling mail, but they’re threaded, which is a big advantage. Discussions can continue indefinitely, you can follow them easily, and if the subject matter isn’t something that interests you, if you don’t click the link it won’t bother you. And I don’t spend long amounts of time reformatting mail–sometimes it takes longer to reformat mail than it does to write the day’s content–which is a huge advantage that I think outweighs not having all the mail on a single page. I used to solve that problem by forwarding all my mail to my sister for her to format and post, but she has less free time than I have these days.

I haven’t figured out how I’ll handle archiving just yet, but I know that’s a problem many have faced and many have conquered. (MHonArc’s been around since 1994.) I’m just happy to have it live and looking good.

One option in MHonArc totally mangles the e-mail addresses in headers, but not in message replies. I wised up to this and started nuking the addresses there manually. Some people want the privacy; nobody wants spam, so I figure this is the best way to handle it. I know spambots are harvesting addresses from this site so I don’t want to give them another bonanza.

Please continue using the discussion facilities here though. If you’re posting a response to a day’s entry, it makes a whole lot more sense to have them here than over in Mail.

My Royals make a smart move… And a dumb one! Smart move: My Royals re-acquired the catcher they never should have traded away. Brent Mayne was never going to be the next Johnny Bench; he looked more like he’d be the next John Wathan. But seeing as the Royals haven’t had a better catcher than John Wathan for the past, oh, six years since they gave Mayne away to the Mets… Mayne’s .251 average in 1995 didn’t tear up the league, but he handled pitchers decently, didn’t ground into a lot of double plays, in an emergency he could play a couple of different positions, and he could even steal a base. And he played cheap. That’s hard to find in a catcher. And in the years since the Royals dealt him away, he learned how to hit better.

He was batting .331 in hitter-friendly Coors Park when the Royals re-acquired him. I doubt he hits better than .270 in Royals Stadium, but when your catching platoon is the legendary A.J. Hinch, who’s batting about a hundred points below that, and future Hall of Famer Hector Ortiz, who’s batting about 50 points below that, Mayne looks awfully good.

Dumb move: To get Mayne, the Royals traded away Mac Suzuki. Last year, Suzuki was the Royals’ best pitcher. This year he’s struggled, but when you have no job security and no niche, it’s hard to do your best. It seems Tony Muser will banish his starters to the bullpen if he doesn’t like the way they tied their shoes that morning. Sometimes young pitchers have problems with that.

And not only that, Suzuki was a revenue pot. Suzuki was born in Japan. All of Suzuki’s starts were televised in Japan, because the Japanese are crazy about Japanese players playing in the States. (It was small-time compared to Mariners mania, who sport outfielder Ichiro Suzuki and closer Kachiro Sasaki, both bona-fide superstars, but when you’re the small-budget Kansas City Royals, you take what you can get.) With Suzuki on the mound, the Royals got television royalties in Japan. In all likelihood, more people watched those games in Japan than in Kansas City. Suzuki in all likelihood brought in more money than the Royals had to pay him, due to television and merchandising revenue, and the Royals are constantly moaning about how they have no money.

The Japanese couldn’t care less about Brent Mayne. Or any other player on the Royals’ roster, for that matter.

So now my Royals have a decent catcher, but at the expense of a pitcher who’s about 9 years younger and has a tremendous upside. But no one ever said Royals management had any common sense.

E-scape from the Hotel California…

Escaping Microsoft’s Hotel California. For lack of any other available alternative, I started using Outlook Express for mail about 18 months ago. It’s a decent mail client, does most of what I want–I don’t want much–and doesn’t do too terribly many things I don’t want it to. But it’s Microsoft. It runs on Windows. Its file formats are proprietary. It forces me to read my mail with the same workstation all the time. Migration makes me leave the mail behind. Most of it I want to leave behind, but do I want to sort it? NO! OK then. What to do?
Make an IMAP-enabled mail server out of a deprecated old PC and move all that mail over to it, that’s what. I tried to do this with TurboLinux but none of my mail clients wanted to talk to it. Since all of the books I have talk about Red Hat, I went with it, and it worked.

Here’s what I did. Install basic Red Hat. Include sendmail, procmail, fetchmail, imap. I pulled out all the XFree86 stuff. GUIs are for workstations. Command lines are for servers (and for workstations where you expect to get any work done quickly). Actually, I also pulled out just about everything else it would allow. A secure installation is a minimalist installation. After installation, edit /etc/inetd.conf. Uncomment imap line, save and exit. (I like pico, but you can do it with vi if that’s all you’ve got–find the line, delete the comment character, then save by hitting ZZ.) Bounce inetd with /etc/rc.d/rc3.d/inet stop ; /etc/rc.d/rc3.d/inet start. Create a user account with adduser [name] ; passwd [password].

Connect to your new IMAP server. For now, just use your ISP’s existing mail server for outgoing mail; use your IMAP server for incoming. Your username and password are the name/password you just created. After a brief delay, you should see your empty inbox, and you can start dragging stuff to it.

It went great for me. I created a new IMAP folder, opened one of OE’s folders, dragged all the contents over to the IMAP folder, and bingo! They moved. Read status and date were preserved too. (I’ve seen IMAP servers that wouldn’t do that.) I switched to another PC that had OE loaded and connected to my new mail server via IMAP and read some messages. Fantabulous.

Theoretically, I can go to my DSL router and forward port 143 to my mail server and read my mail from the outside.

Now, if you want to actually use your mail server to send mail, that gets trickier–you’ve gotta configure sendmail for that. The out-of-box setup is too secure to just use. Open /etc/mail/access and add your LAN to it, like so:

172.16.5 RELAY

Of greater interest is the fetchmail/procmail combo. You can use fetchmail to automatically go grab mail from the 47 mail accounts you have, then use procmail to sort it and filter out some spam.

To configure fetchmail, create the file /root/.fetchmailrc and chmod it to 0600. Here’s a very basic configuration:

#.fetchmailrc
poll mailserver.myisp.com
with protocol pop3
username myname password mypassword is my_name_on_my_linux_box

And finally, what’s the point of running your own mail server if you don’t spam filter it? There are lots of ways to go about it. I’m experimenting with this method. It uses procmail, which is called by sendmail, which is called by fetchmail. See how all this works?

If you want to get really smooth, you can even block mail before you download it with a program called Mailfilter. You probably don’t want to get as fancy with Mailfilter as people do with procmail, but you can use Mailfilter to search for certain key words or phrases like (checking my spam folder) viagra, mortgage, “fire your boss,” “lose weight” and delete them before you waste time and bandwidth downloading them. I’ve read estimates that spam traffic costs ISPs an average of $3 per month per user. Mailfilter won’t save your ISP very much, since the mail’s already been routed through its network and is just on its very last leg of the trip, but it’ll save them a little, and it’ll save you some bandwidth and time, so it’s probably worth it.

So if you’re looking to leave Outlook and/or Outlook Express all behind, or at least give yourself the option to use a different client, here’s the way out. It’s not too terribly difficult. And you gain an awful lot in the process: mail in a standardized, open format; redundancy; ease and versatility of backup (just schedule a cron job that tars it up and does stuff with it); the ability to very, very quickly search all of your mail with the Unix grep command (just log in, type grep -r [search string] * | more, and find what you’re looking for instantly) and far, far better mail filtering options.

And it’s infinitely cheaper (and more secure) than Exchange.

Finding an open-source alternative to Ghost

Finding an open-source alternative to Ghost. Have I mentioned lately just how pathetic a software company Symantec is? Norton Utilities is adequate, don’t get me wrong. But I don’t think I’d put Norton AntiVirus on any computer that I wanted to work right. I’d give you my opinion of McAfee’s product, but that’s a violation of the license agreement, so I’ll give you my opinion of the company instead. They’d rather spend their time and money and energy keeping you from talking about their products than they would making them worth buying.
So, anyway. Since Symantec is making my life difficult, why do we keep rewarding them by buying Ghost licenses over and over again?

Knowing that the Unix command dd if=/dev/hda of=[filename] makes a bit-for-bit copy of a hard drive, I sought to utilize the Linux kernel and dd as an alternative. Pipe it through bzip2 and it’d be great, right?

Uh, no. I imaged a 1.6-gig HD that had about 400 MB in use. About an hour later, I had a 900 MB disk image. This is bad. Very bad. Ghost would have given me a 250-300 MB image in 15 minutes.

But then I stumbled across PartImage, which does an intelligent, files-only disk image like Ghost does. It’s fast, it’s small, it works. NTFS support is experimental, but as long as you defragment your drive before you try to make an image, it seems to do fine.

However, it doesn’t do a full disk clone like Ghost does. Not yet, at least. Not on its own, at least. But this is Unix. Where there’s a will, there are 47 ways.

First, dump your partition table: sfdisk -d /dev/hda > table

Next, get your MBR: dd if=/dev/hda of=mbr bs=512 count=1

Yes, Eagle Eye, dd does grab your partition table. But restoring the table with DD will only get your primary partition(s). It won’t get your extended partitions, so that’s why sfdisk is necessary.

Now that we’ve got that detail out of the way, you can use PartImage to create images of all your disk partitions. It’s menu driven like Ghost. It’s text mode and not graphics-mode, so it’s not as pretty, but it’s also a fraction of the size.

Got your files made? Great. Now, to make the clone, you reverse it.

Write out the MBR: dd if=mbr of=/dev/hda bs=512 count=1

Re-create your partition layout: sfdisk /dev/hda

Then restore your partitions, one at a time, using PartImage either in interactive mode or with command-line switches.

It's a lot to remember, so the best bet would be to dump the images plus these two small files to a CD, make a Linux boot floppy containing dd, sfdisk, and partimage, and write a shell script that does it all. Then you can think about getting fancy and making a bootable CD that holds all of it and restores a system lickety-split.

A lot of trouble? Ugh. Yeah. Worth it? Probably. Ghost licenses aren't cheap, and PartImage has the potential to be a whole lot quicker, since it's built on a better foundation. Today's PCs are extremely powerful, and DOS has been underutilizing PCs' power since the introduction of the PC/AT in 1985. Linux will very happily scale up to whatever amount of memory and CPU power your PC has under the hood, making compression and decompression go faster. And if you do a little tweaking with hdparam before creating and before restoring (again, a good job for a shell script), you'll get far better disk throughput than DOS could ever give you. On these P3-866s, I found PartImage was a good 20-60 MB/minute faster than Ghost.

So this is not only faster, it also frees you from the difficulty of keeping track of Ghost licenses, which is a hidden administrative expense. With Linux and PartImage and the associated tools, you're free to use them as you like. The only questions anyone will ask is, "How'd you do that?"

That's not to say I have any objection to paying for a good product, but when you can't even buy a site license to escape the paperwork, it gets ridiculous. I suspect some companies just count their PCs and buy that many Ghost licenses once a year in order to be rid of the administrative overhead.

So I think it's more than worth it to figure out how to effectively do this job with open-source tools.

Of course I've left some questions. How do you make Linux boot floppies? How do you make Linux CDs? The PartImage site has images of bootdisks and boot CDs, but they don't have everything you need. Notably, sfdisk is missing from those images. And obviously you'd have to write your shell scripts and add those yourself.

I'll let you know when I figure it out. I'm pretty darn close.

Minesweeper is murder.

Minesweeper is murder.

Minesweeper is murder. An activist group is asserting that the Windows game Minesweeper is disrespectful of victims of land mines and should be removed and replaced with a game about flowers. I have no idea if these guys are serious or not. I never liked the game anyway and just always wanted an excuse to say “Minesweeper is murder.” So now I’ve said it three times. I’m happy.

Read more

End of a long day

Have you ever gone on a date only because you feel like you have to in order to carry on a relationship that you think is over, but you’re not quite ready to drop it yet? That’s what writing yesterday’s entry felt like. And that’s what today’s feels like. I just re-read yesterday’s post, realized I didn’t complete a number of thoughts in it and only said about half of what I intended to say, and found myself not caring in the least.
Moodiness is a big part of who I am, and right now it’s showing big-time.

I probably spent a total of three hours on the phone yesterday, troubleshooting an ACT! problem over the phone. ACT!’s an extremely finicky program, caring about things it shouldn’t care about (for instance, you can sabotoge ACT! by putting it on a LAN with a PC that has an apostrophe in its computer name–ACT! isn’t even supposed to use Microsoft Networking for anything!), and an ACT! database can become corrupt as Warren G. Harding’s cabinet just from simple use. Sometimes the built-in tools can recover, and sometimes they can’t. Corrupt a database, and you start a vicious downward cycle. ACT! crashes because the database is corrupt, further corrupting the database in many cases, making future crashes all the more common and all the more destructive. Making matters worse, ACT! seems to affect other apps as well. When ACT!’s unhappy, the whole computer’s unhappy.

Career advice: If you want job security, learn ACT! It’s extraordinarily popular, and maybe it’s extraordinarily good for the things people use it for–I have no idea, since I’m not in any of the businesses that seem to be addicted to ACT!–but it’s also extraordinarily finicky and easy to break, and therefore extraordinarily profitable for anyone who sets out to learn how to fix it. I’d be willing to bet SalesLogix makes more money off recovering corrupt databases than they do off new ACT! sales. I know a lot of consultants charge upwards $400 just to run ACTDIAG.EXE (included with the program) on mildly corrupted databases and get them back in business.

Anyway… That was my day.

Gatermann sent me some of the pictures he took last week when we were up on the roof of Gentry’s Landing and elsewhere. They’re pretty spectacular. His site’s acting up so he can’t post them right now, but presumably he’ll send me a link once they’re up. They’ll definitely be worth a look.

And I’m wondering what would happen if we ever teamed up his camera with my words. Would we work well together? Could we find a project that brought out both our best?

I’m back.

Very interesting. Just as everyone’s proclaiming Linux dead, Red Hat goes and turns a profit for the first time. Yes, there are too many Linux companies. Yes, there’ll be consolidation. No, I’m not convinced that selling it at retail is necessarily the best way to proliferate the system.
I also find it humorous that people like ZDNet’s David Coursey can struggle all weekend setting up a Windows server, yet state that Linux is no threat to Microsoft, even as a server. The implication is that Linux is too difficult. Give me a weekend–actually, more like 5 minutes, if you’ll spot me TurboLinux and a 50X CD-ROM drive–and I can have DNS going on Linux, easy. Give me a day, and I can have a lovely mail server going too. (I intended to do that just this past weekend, actually, but I couldn’t come up with a working ISA SCSI controller to pair up with my army of SCSI CD-ROMs to make it happen.)

Needless to say, this past week I lost most of what little respect I had for Coursey. VMWare runs Windows under Linux better than VirtualPC runs Windows on the Mac, and Coursey’s obviously never heard of it (see that second link).

Don’t get me wrong, Linux setups drive me up the wall sometimes. But I’ve had instances where Windows flat out wouldn’t install on perfectly good hardware, for no good reason, too. And since Linux servers are unencumbered by a GUI, multimedia, Pinball, Internet Exploiter, and other desktop stupidity that has no business on servers, they’re a whole lot easier to troubleshoot. You’ve got a kernel, a daemon or two, and a plaintext configuration file. That’s not much to break. Actually it’s good engineering–a machine should have no unnecessary parts.

So long, Cal Ripken. Cal Ripken announced he’s hanging it up yesterday morning. I had the pleasure of seeing Ripken play shortstop a couple of times in the early 1990s when the Orioles were in Kansas City. Today, in this era of A-Rod and Nomar and Jeter, Ripken’s offensive stats don’t seem so hot. But in the 1980s (and before), if your shortstop could hit .270 and steal the occasional base, you counted yourself very, very lucky. In those days, Ripken not only hit .270, he was consistently one of the best defensive shortstops in the American League. He was never as flashy as Ozzie Smith, but how many shortstops ever fielded .996? You’re happy to get that kind of a fielding percentage out of your first baseman, and first base is the easiest position to play. Not only that, Ripken was also good for 20-25 homers and 80+ RBIs. These days that doesn’t sound too impressive either, but remember that Ripken played the bulk of his career in an era when people rarely hit 40 homers–someone who could pop 30 was considered a real power threat.

And besides all that, Ripken played 2,632 consecutive games, shattering Lou Gehrig’s record of 2,130. Ripken played the majority of those games at shortstop (he also played some third base at the beginning and at the end). Gehrig played his games at first base and in left field, both much less demanding positions. And while Gehrig played every inning of every game just once, Ripken did it four times, in consecutive years (1983-1986).

Ripken’s really slowed down the past three years, but he did end his streak on his own terms before being cut down by injuries his final three seasons. He’s nowhere near the player he used to be. Then again, at the end of his career, Ernie Banks couldn’t hit or field, and he was playing first base. Ripken refuses to move from third to a less demanding position–partly out of pride, but partly because he’s still capable of playing third.

And we can’t forget his loyalty. Ripken’s played his entire career, from 1981 up until now, with Baltimore. You don’t see that much anymore.