Total retro overload

OK, so first I find out that Quantum Link has been reverse engineered and resurrected, and then I find out there’s a darn good C compiler for 8-bit computers, including Commodore, Apple and Atari. It’ll even compile GEOS (the Commodore GUI) programs!

Read more

The bloatware antidote for Windows

I needed a Windows MP3 player that wouldn’t take over my system and wouldn’t take as long to download as the typical alternative Web browser circa 2003. Which meant I went looking at one place.
That place is tinyapps.org.

I found what I was looking for (besides a way to legally download a song for $1.75, which is beyond these guys’ control). It’s called Coolplayer. It’s a 170K download that expands out to a 350K executable that uses an ini file in the same directory. Installation consists of putting it where you want to store it. Uninstallation consists of deleting the executable and the ini file. Excellent.

Coolplayer plays MP3s and has a simple playlist editor. Nothing fancy, just the basics. Well, and I guess I should mention it keeps me out of the eternal war between Microsoft, AOL Time Warner, and RealNetworks over control of whatever PC I happen to be using. As far as I’m concerned, that’s a feature, and maybe its best one. No, Realplayer, you may not take over the filename association for textfiles! If I wanted a text editor, I’d have run Metapad!

Most of the apps linked at Timyapps are substantially under 1 MB in size and provide just the basics most people need.

If the executables are still too big for you, there’s UPX. UPX is a modern-day PKLite that works on Windows apps as well as DOS apps. Among other things. I used an old version of it–I haven’t downloaded the current version 1.24, which has better compression–to pack the CoolPlayer executable down to 173K. The superfast, minimalist Off By One Web browser packs down to 359K.

If you’re building a super floppy or CD of Windows utilities, packing them with UPX is a good way to get more space for them. (Betcha didn’t know you could fit a Windows Web browser, MP3 player, and a text editor on a 3.5″ floppy and have room to spare, did you?) Or if you’re stuck with a way-too-small hard drive, UPX can gain you some space.

See, if you’re stuck with Windows 95 on a 386DX40 with 8 megs of RAM and a 170MB hard drive, you can get the basics you need to turn that into a useful computer. And the tricks still work if you’ve got something better.

Why I dislike Microsoft

“Windows 2000,” I muttered as one of my computers fired up so my girlfriend could use it. “Must mean something about the number of bugs that’ll be discovered tomorrow.”
She told me she liked Windows and asked me why I hated Microsoft so much.

It’s been a while since I thought about that. She speculated that I was annoyed that Bill Gates is smarter than me. (Which he probably is, but aside from a couple more books in print, it hasn’t gotten him anything I don’t have that I want.) There’s more to it than that.

I’m still annoyed about the foundation Microsoft built its evil empire upon. In the ’70s, Microsoft was a languages company, and they specialized in the language Basic. Microsoft Basic wasn’t the best Basic on the market, but it was the standard. And when IBM decided it wanted to enter the personal computer market, IBM wanted Microsoft Basic because nobody would take them seriously if they didn’t. So they started talking to Microsoft.

IBM also wanted the CP/M operating system. CP/M wasn’t the best operating system either, but it was the standard. IBM was getting ready to negotiate with Gary Kildall, owner of Digital Research and primary author of the OS, and ran into snags. Gates’ account was that Kildall went flying and kept the IBM suits waiting and then refused to work with them. More likely, the free-spirited and rebellious Kildall didn’t want to sign all the NDAs IBM wanted him to sign.

Microsoft was, at the time, a CP/M subcontractor. Microsoft sold a plug-in board for Apple II computers that made them CP/M-compatible. So IBM approached Microsoft about re-selling CP/M. Microsoft couldn’t do it. And that bothered Gates.

But another Microsoft employee had a friend named Tim Patterson. Tim Patterson was an employee of Seattle Computer Products, a company that sold an 8086-based personal computer similar to the computer IBM was developing. CP/M was designed for computers based on the earlier 8080 and 8085 CPUs. Patterson, tired of waiting for a version of CP/M for the 8086, cloned it.

So Seattle Computer Products had something IBM wanted, and Microsoft was the only one who knew it. So Microsoft worked out a secret deal. For $50,000, they got Patterson and his operating system, which they then licensed to IBM. Patterson’s operating system became PC DOS 1.0.

Back in the mid-1990s, PC Magazine columnist John C. Dvorak wrote something curious about this operating system. He said he knew of an easter egg present in CP/M in the late 1970s that caused Kildall’s name and a copyright notice to be printed. Very early versions (presumably before the 1.0 release) of DOS had this same easter egg. This of course screams copyright violation.

Copyright violation or none, Kildall was enraged the first time he saw DOS 1.0 because it was little more than a second-rate copy of his life’s work. And while Digital Research easily could have taken on Microsoft (it was the bigger company at the time), the company didn’t stand a prayer in court against the mighty IBM. So the three companies made some secret deals. The big winner was Microsoft, who got to keep its (possibly illegal) operating system.

Digital Research eventually released CP/M-86, but since IBM sold CP/M-86 for $240 and DOS for $60, it’s easy to see which one gained marketshare, especially since the two systems weren’t completely compatible. Digital Research even added multiuser and multitasking abilities to it, but they were ignored. In 1988, DR-DOS was released. It was nearly 100% compatible with MS-DOS, faster, less expensive, and had more features. Microsoft strong-armed computer manufacturers into not using it and even put cryptic error messages in Windows to discourage the end users who had purchased DR-DOS as an upgrade from using it. During 1992, DR-DOS lost nearly 90% of its marketshare, declining from $15.5 million in sales in the first quarter to just $1.4 million in the fourth quarter.

Digital Research atrophied away and was eventually bought out by Novell in 1991. Novell, although the larger company, fared no better in the DOS battle. They released Novell DOS 7, based on DR-DOS, in 1993, but it was mostly ignored. Novell pulled it from the market within months. Novell eventually sold the remnants of Digital Research to Caldera Inc., who created a spinoff company with the primary purpose of suing Microsoft for predatory behavior that locked a potential competitor out of the marketplace.

Caldera and Microsoft settled out of court in January 2000. The exact terms were never disclosed.

Interestingly, even though it was its partnership with IBM that protected Microsoft from the wrath of Gary Kildall in 1981, Microsoft didn’t hesitate to backstab IBM when it got the chance. By 1982, clones of IBM’s PC were beginning to appear on the market. Microsoft sold the companies MS-DOS, and even developed a custom version of Basic for them that worked around a ROM compatibility issue. While there was nothing illegal about turning around and selling DOS to its partner’s competitors, it’s certainly nobody’s idea of a thank-you.

Microsoft’s predatory behavior in the 1980s and early ’90s wasn’t limited to DOS. History is littered with other operating systems that tried to take on DOS and Windows and lost: GeoWorks. BeOS. OS/2. GeoWorks was an early GUI programmed in assembly language by a bunch of former videogame programmers. It was lightning fast and multitasked, even on 10 MHz XTs and 286s. It was the most successful of the bunch in getting OEM deals, but you’ve probably never heard of it. OS/2 was a superfast and stable 32-bit operating system that ran DOS and Windows software as well as its own, a lot like Windows NT. By Gates’ own admission it was better than anything Microsoft had in the 1990s. But it never really took off, partly because of IBM’s terrible marketing, but partly because Microsoft’s strong-arm tactics kept even IBM’s PC division from shipping PCs with it much of the time. BeOS was a completely new operating system, written from scratch, that was highly regarded for its speed. It never got off the ground because Microsoft completely locked it out of new computer bundles.

Microsoft used its leverage in operating systems to help it gain ground in applications as well. In the 1980s, the market-leading spreadsheet was Lotus 1-2-3. There was an alleged saying inside Microsoft’s DOS development group: DOS ain’t done ’til Lotus won’t run. Each new DOS revision, from version 3 onward, broke third-party applications. Lotus 1-2-3, although once highly regarded, is a noncontender in today’s marketplace.

Once Windows came into being, things only got worse. Microsoft’s treatment of Netscape was deplorable. For all intents and purposes, Microsoft had a monopoly on operating systems by 1996, and Netscape had a monopoly on Web browsers. Netscape was a commercial product, sold in retail stores for about $40, but most of its distribution came through ISPs, who bought it at a reduced rate and provided it to their subscribers. Students could use it for free. Since the Web was becoming a killer app, Netscape had a booming business. Microsoft saw this as a threat to its Windows franchise, since Netscape ran well not only on Windows, but also on the Mac, OS/2 and on a number of flavors of Unix. So Microsoft started bunding Internet Explorer with Windows and offering it as a free download for those who already had Windows, or had an operating system other than Windows, such as Mac OS. In other industries, this is called tying or dumping, and it’s illegal. Netscape, once the darling of Wall Street, was bought for pennies on the dollar by AOL, and AOL-Time Warner is still trying to figure out what to do with it. Once Microsoft attained a monopoly on Web browsers, innovation in that space stopped. Internet Explorer has gotten a little bit faster and more standards compliant since IE4, but Microsoft hasn’t put any innovation in the browser for five years. Want popup blocking or tabs? You won’t find either in IE. All of the innovation in that space has come in browsers with a tiny piece of the market.

One could argue that consumers now get Web browsers for free, where they didn’t before. Except every new computer came with a Web browser, and most ISPs provided a browser when you signed up. So there were lots of ways to get a Web browser for free in the mid-’90s.

And when it came to the excesses of the dotcom era, Netscape was among the worst. But whether Netscape could have kept up its perks given its business model is irrelevant when a predator comes in and overnight renders unsalable the product that accounts for 90% of your revenue.

Allegations popped up again after Windows 95’s release that Win95 sabotoged competitors’ office software, such as WordPerfect and Lotus 1-2-3. Within a couple of years, Microsoft Office was a virtual monopoly, with Lotus SmartSuite existing almost exclusively as a budget throw-in with new PCs and WordPerfect Office being slightly more common on new PCs and an also-ran in the marketplace. It’s been five years since any compelling new feature has appeared in Microsoft Office. The most glaring example of this is spam filtering. Innovative e-mail clients today have some form of automatic spam filtering, either present or in development. Outlook doesn’t. “Microsoft Innovation” today means cartoon characters telling you how to indent paragraphs.

And the pricing hasn’t really come down either. When office suites first appeared in 1994, they cost around $500. A complete, non-upgrade retail copy of Microsoft Office XP still costs about $500.

Pricing hasn’t come down on Windows either. In the early 90s, the DOS/Windows bundle cost PC manufacturers about $75. Today, Windows XP Home costs PC manufacturers about $100. The justification is that Windows XP Home is more stable and has more features than Windows 3.1. Of course, the Pentium 4 is faster and less buggy than the original Pentium of 1994, but it costs a lot less. Neither chip can touch Windows’ 85% profit margin.

And when Microsoft wasn’t busy sabotaging competitors’ apps, it was raiding its personnel. Microsoft’s only really big rival in the languages business in the ’80s and early ’90s was Borland, a company founded by the flambouyant Phillippe Kahn. Gates had a nasty habit of raiding Borland’s staff and picking off their stars. It didn’t go both ways. If a Microsoft employee defected, the employee could expect a lawsuit.

Well, Kahn decided to play the game once. He warmed up to a Microsoft staffer whose talents he believed weren’t being fully utilized. The employee didn’t want to jump ship because Microsoft would sue him. Kahn said fine, let Microsoft sue, and Borland would pay whatever was necessary. So he defected. As expected, Gates was enraged and Microsoft sued.

Soon afterward, Kahn and his new hire were in an airport when a Hare Krishna solicited a donation. Kahn handed him $100 on the spot and told him there was a whole lot more in it for him if he’d deliver a message to Bill Gates: “Phillippe just gave us $100 for hot food because he suspects after this lawsuit, your employees are going to need it.”

He delivered the message. Gates wasn’t amused.

It was a bold, brash move. And I think it was pretty darn funny too. But smart? Not really. Borland’s glory days were pretty much over 10 years ago. For every star Borland could lure away, Microsoft could lure away three. Borland’s still in business today, which makes it fairly unique among companies that have taken on Microsoft head-on, but only after several reorganizations and major asset selloffs.

The only notable company that’s taken on Microsoft in the marketplace directly and won has been Intuit, the makers of Quicken. Microsoft even gave away its Quicken competitor, Microsoft Money, for a time, a la Internet Explorer, in an effort to gain market share. When that failed, Microsoft bought Intuit outright. The FTC stepped in and axed the deal.

The thanks Microsoft has given the world for making it the world’s largest software company has been to sell buggy software and do everything it could to force companies and individuals to buy upgrades every couple of years, even when existing software is adequate for the task. While hardware manufacturers scrape for tiny margins, Microsoft enjoys 85% profit margins on its product. But Microsoft mostly sits on its cash, or uses it to buy companies or products since it has a terrible track record of coming up with ideas on its own. The company has never paid dividends, so it’s not even all that much of a friend to its own investors.

For me, the question isn’t why I dislike Microsoft. The question for me is why Microsoft has any friends left.

This year, Selig outshines even Steinbrenner

Even a fool, when he keeps silent, is considered wise; when he closes his lips, he is considered prudent. –Proverbs 17:28
Bud Selig has once again opened his mouth and is calling the Minnesota Twins, despite their raging success this year–and not-so-shabby last year–a candidate for contraction.

Translation: Twins owner Carl Pohlad loaned me money a few years ago, even though it was against baseball’s rules, but that’s OK because I enforce the rules, and now he can sell the team to the rest of the owners and I can make them pay more money than he could get by selling the team outright, so I’m going to do him that favor, no matter how bad it makes baseball look.

They talked during the All-Star Game about how Bud Selig once sold Joe Torre a car. That’s appropriate, because Selig is still spewing as much crap as a used-car salesman and he doesn’t know where to stop.

I really don’t understand is why Selig, in this era of corporate scandal that destroyed Enron and WorldCom and Martha Stewart and now threatens the AOL Time Warner empire, is willing to do anything that has even the most remote appearance of corruption. But maybe Selig’s like a 16-year-old with a red Lamborghini, an attractive girl riding shotgun, and a fifth of whiskey. The worst possible outcome always happens to the other guy, right?

And the ironic thing is that in 1995, Carl Pohlad’s company loaned Bud Selig money, because Bud Selig’s Milwaukee Brewers needed money.

Hmm. The Brewers ran out of money. The Brewers’ owner went to the Twins’ owner for money. Interesting.

The Brewers last went to the World Series in 1982. They lost in seven games. The Twins went to the big show in 1987 and won. They went again in 1991. They won. In 2001, the Twins went 85-77 and finished second in their division and even finished second in the wild-card race. The Brewers finished 68-94 and did what they almost always seem to do best: prop the Cubs up in the standings.

I know of a team in the northern midwest that seems like an excellent candidate for contraction. And that team would be:

The Milwaukee Brewers.

Leave the Twins alone.

But don’t get me wrong. Selig isn’t a complete waste. Selig is doing an outstanding job of frustrating George Steinbrenner. You see, before Selig became the most hated man in baseball, Steinbrenner had been the undisputed champion, for about 30 years. But don’t get me wrong. Steinbrenner’s having a great year. Why, last week he accused Major League Baseball of conspiring against him. He wanted superstar outfielder Cliff Floyd. Floyd went from Florida to Montreal to Steinbrenner’s archrival, the Boston Red Sox. Now it’s conspiracy.

That’s the way Steinbrenner thinks. A few years ago, George Brett had dinner with George Steinbrenner. Back in Brett’s heyday, the Yankees and Brett’s Kansas City Royals were big rivals. They met in the playoffs in 1976, 1977, 1978, and 1980. The Yankees won three of four years. At some point in their conversation, Brett noticed his view of Steinbrenner’s face was blocked by a menu, so Brett moved it. Steinbrenner put it back. “I can’t stand looking at you,” Steinbrenner said.

“Why?” Brett asked.

“You beat us too many times in the playoffs,” Steinbrenner said.

Brett asked if beating the Yankees once counted as “too many times.” Steinbrenner said yes.

Now you know why I rooted for the buy-a-championship Arizona Diamondbacks in the World Series last year. Yeah, I wanted the Cardinals to go. But I wanted Steinbrenner to not get what he wanted.

But Steinbrenner’s not just an immature little kid who’s not willing to share his toys. Two weeks ago, Roger Clemens was making a rehab start at Class A Tampa. The home-plate umpire was–horror of horrors–a woman! Well, Steinbrenner was horrified. They were mishandling his pitcher.

Earth to Steinbrenner: A rehab start is about throwing pitches to real-live batters to see a few things. First and foremost, does it hurt? Second, can you throw seven innings? Third, does it hurt?

Earth to Steinbrenner, again: Gender has nothing to do with the ability to see, to know the rules, and call balls and strikes.

Earth to Steinbrenner: The male umpires who call balls and strikes in the major leagues seem to have never read the rulebook, because they never call a strike above the belt. So if your theory that women don’t call balls and strikes the way men do happens to be true, having a woman behind the plate was probably a very good thing, and I eagerly await the day when we see women umps in the Big Leauges.

Then Steinbrenner said Ms. Cortesia should go back to umpiring Little League. “She wasn’t bad, but she wasn’t that good,” he said.

Clemens’ assesment: She did great.

So tell me who’s a better judge of an umpire’s ability: a loud, rude, obnoxious baseball owner, or a 40-year-old pitcher with 18 years’ experience in the major leagues?

Yep, Steinbrenner’s been in rare form these past couple of months. But he’s been eclipsed by Bud Selig. Pete Rose and Don Fehr are back and spewing as much garbage as ever, as well, and Ted Williams’ kids are doing their best to make everyone forget their dad’s Hall of Fame career. And Reds GM Jim Bowden made the mistake of invoking the memory of Sept. 11 when talking about a possible player’s strike. (He was wrong, of course. Sept. 11 destroyed two towers, but it didn’t destroy New York and it didn’t destroy America. A strike could destroy baseball.)

Yes, they’re all valiant attempts to look stupid. They’ve even managed to drown out baseball’s one-man wrecking crew, player agent Scott Boras. But none of them can hold a candle to Bud Selig.

It’s kind of like 1941. Joe DiMaggio had a great year in 1941. So great, he even won the MVP that year. But nobody remembers that anymore, because 1941 was the year Ted Williams batted .406. DiMaggio was the better overall player, and DiMaggio was the far bigger celebrity, and DiMaggio handled the limelight a lot better. But 1941 was Ted Williams’ year. Nothing could eclipse him. Not Luke Appling. Not Jimmie Foxx. Not even The Great DiMaggio.

2002 is Bud Selig’s year. Steinbrenner and Rose and Fehr and the rest of baseball’s repulsive bunch will be remembered for a lot of things, but saying the most stupid things in 2002 won’t be one of them.

What’s the matter here?

I remember when the stock market crashed in 1987. I had to inform a 16-year-old that 1987 wasn’t “a long time ago” the other day, but that’s another story. So, in 1987 after a crash, who’d CNN talk to? Sam Walton. Makes sense. Sam Walton owned a lot of stock.
So, when the Dow dropped 390 points on Friday, who’d CNN talk to?

Billy Joel. Read more

Full disclosure and integrity

I feel like I owe it to my readers to disclose a few things, due to the events of recent weeks raising a few questions in some people’s minds.

Read more

Microsoft’s temper tantrum

Microsoft is throwing a temper tantrum that if the states’ current proposal goes through, the company will be forced to withdraw Windows from the market.
Pay no attention, move along, there’s nothing to see here.

Remember, this is the company that didn’t sign an agreement with IBM for a Windows 95 OEM license until the day it was launched. At one point during the negotiations, Microsoft told IBM it could buy it at retail. As hard as it might be to remember now, at the time, IBM was still one of the top 5 players in the U.S. PC retail market.

This is a company that plays hardball. It says unreasonable things to get its way. And it’s used to getting its way. And even when it doesn’t get its way, it still says stupid things. Remember, in 1994 Steve Ballmer said a court’s decision against Microsoft in Stac’s favor would be reversed as soon as they found a judge with actual brains.

Reality check: Microsoft can very easily comply with the states’ demands. Or reach a compromise that will benefit everybody. Once upon a time, long long ago, when you installed Windows, you could tell it what you wanted. If you didn’t have any use for Calculator, you could click a little checkbox next to it, Windows wouldn’t install it, and you’d save about 200K of disk space. Hey, back when people were trying to run Windows on 40-meg hard drives, it was nice to have that ability. Or, if you already had a third-party calculator app that put Microsoft’s to shame and thus had no need for the one that came with Windows, you didn’t have to install it.

The same was true of DriveSpace and all the other bundled stuff. I mean, let’s get serious here: Is there any reason whatsoever to install Space Cadet Pinball on your domain controller?

But with Windows 95, Microsoft started to get unreasonable. Yes, you could uncheck that little box next to MSN, but when you did it, Windows didn’t actually seem to do anything. Regardless of whether you checked that box, when Windows was finished, you had an MSN icon on your desktop. If AOL continued to exist, Microsoft’s very existence was threatened. In order for Microsoft to survive, AOL had to die. So you got MSN whether you used it or not. (Some idiot with a journalism degree figured out how to remove it a couple of years later.)

With Windows 95B, things got more sinister. Netscape replaced AOL as the imminent threat to Microsoft’s very survival, so you got Internet Explorer whether you wanted it or not. This time, Microsoft didn’t even bother putting in a checkbox for Windows to ignore. You just got it. With Windows 95 OSR2.1 and 98, Internet Explorer became increasingly more entrenched.

Once it was evident that AOL would never die and Netscape would never rise again, RealPlayer and QuickTime became threats to Microsoft’s existence. So, with Windows 98, we got Microsoft Media Player, whether we wanted it or not. Never mind that the basic Real and QuickTime players are free and both companies would have loved for Microsoft to deliver them with Windows and it would have saved the company development costs.

Microsoft could go a long, long way towards appeasing the states if they’d just put in little checkboxes that let you decide whether Internet Explorer or MediaPlayer was installed, just like Calculator. There’s no need for 8,000 different versions of Windows, like Steve “The Embalmer” Ballmer wants people to believe. Let the consumer decide what pieces he or she wants. Does a deaf person need MediaPlayer? It’s questionable. Does a file server really need Internet Explorer? Absolutely not.

And while there are magazines and book authors who want you to believe otherwise, thousands of people have removed Internet Explorer from Windows. And guess what? The sun didn’t quit rising. The world failed to fall apart. The stock market didn’t crash. Their computers didn’t fall over. The applications they needed to run still ran. In fact, the applications ran better once they got the unnecessary machinery gone. Imagine that, a basic engineering principle applying to computers!

Microsoft execs have complained about a double standard, because Apple, IBM, and Be all shipped Web browsers with their OSs. Of course, there was a big difference. In the case of MacOS, BeOS, and OS/2, you could tell the OS not to install the browser, and it didn’t do it. The same for their other components. In the case of OS/2, you could even remove the entire Windows subsystem. You lost the ability to run Windows 3.1 programs, but you gained speed and stability. I knew people who did that. I’ve done minimalist Mac OS installations that took up less than 20 megs and were completely useless because they lacked the drivers needed to install other software. But if I want to be stupid enough to install a completely crippled OS that can’t do anything besides boot a computer and let me look at its empty hard drive, Apple’s not going to stop me.

The overwhelming majority of people will just leave things alone. But the people who like to get into the nuts and botls of things want (and deserve) the opportunity to change how their computers work. They want Microsoft to fight its battles in the marketplace, not in the memory and CPUs of their computers. I don’t blame them in the least. Of course, I’m spoiled. IBM and Commodore let me have it my way, back when I was buying my operating systems from them.

So, Microsoft has a history of threats, and a history of following through with them, even when the reasoning behind them is totally ludicrous. But in the case of IBM, they ultimately budged, albeit 45 minutes into the 11th hour, and they didn’t budge much. But you don’t just shut out the #3 or #4 PC maker in the country. At the time, Microsoft still needed IBM, and IBM needed Microsoft, as much as both companies hated to admit it.

This is no different. Microsoft can’t just pull Windows off the market. Windows is still its main source of revenue, and Windows runs on more than 90 percent of the computers on the market. Microsoft isn’t going to just give that away. Sure, they make some Mac products, but the Mac is 5 percent of the market on a good day. The cheapest and easiest replacement for Windows, in the unlikely event Microsoft pulled out, is Linux, where Microsoft is a non-player. Microsoft could still sell Windows software to the existing installed base. But it’s ludicrous. Pulling Windows off the market is corporate suicide.

I really don’t think Microsoft would have made IBM buy its copies of Windows 95 at retail. Not everyone remembers it now, but there was some resistance to Windows 95 initially, and a company the size of IBM not shipping Windows 95 on its new computers would have given way to much credence to the naysayers. Microsoft was counting on Windows 95 being big, and it wasn’t going to take any chances. It had spent way too much money on research, development, and hype. Microsoft made that threat to see just how far IBM would go. And that’s what Microsoft is doing now. It’s trying to see how much the states are going to budge.

And that’s all there is to Ballmer’s rhetoric. Nothing more. And nothing less.

Stopping spam.

Forget what I wrote yesterday. I was going to post the stuff I wrote in Ohio when I realized it isn’t all that good, it’s definitely not useful, and the people who annoy me the most are the people who can’t get over themselves. No one cares what I ate for breakfast, and the only people who care what went on in Ohio already know.
So here’s something useful instead. It’s the coolest thing I’ve found all year. Maybe all decade, for that matter.

Spam begone. I hate spam. It wastes my time and my bandwidth and, ultimately, my money. I’ve seen some estimates that spam costs ISPs as much as $5 per month per account. You’d better believe they’re passing those losses on to you.

There are tons and tons of anti-spam solutions out there, but most of them run on the mailserver side, so for an end-user to use them, they have to set up a mail server and either use it for mail or run fetchmail to pull the mail in from ISP’s mail servers. I’ve done that, but it’s convoluted. But that’s trivial compared to setting up the anti-spam kits.

I was crusing along, vaguely happy, when my local mailserver developed bad sectors on the hard drive, so one day when I went to read my mail, I heard clunking noises. I turned around, flipped on the power switch to the server’s attached monitor, and saw read errors. Hmm. I hope that mail wasn’t important…

Eventually I shut down my mail server and put up with the spam, hoping I’d come up with a better idea.

I found it in a Perl script called disspam.pl, written by Mina Naguib.

It took a little doing to get it running in Debian. Theoretically it’ll run on any OS that has Perl installed. Here’s what I did in Debian:

su (to become root)
apt-get install libnet-perl (Perl couldn’t see the network without this, so the next command in this sequence was failing. This hopefully isn’t necessary on other distros, as I have no idea what the equivalent would be.)
perl -MCPAN -e shell (as per readme–I accepted the defaults, then when it asked for CPAN servers, I told it my continent and country. Then it gave me 48 choices. I picked a handful at random, since none were any more obviously close to me than others.)
install Net::POP3 (as per readme)
quit
cp sample.conf disspam.conf
chmod 755 disspam.pl

Next, I loaded up disspam.conf into a text editor. It looks just like a Windows-ish INI file.

The second line gives me an exclude list. It’ll take names and e-mail addresses. So I put in a few important names that could possibly be blocked (friends with AOL and Hotmail addresses). That way if their ISPs ever misbehave and get blacklisted, their mail will still get to me. Then I popped down to the end of the file and configured my POP3 mailbox. I had an account I hadn’t read in a week, so I figured I’d get a good test. Just drop in your username, password, and POP3 server like you would for your e-mail client. If you have more than one account, copy and paste the section.

Bada bing, bada boom. You’re set. Run disspam.pl and watch. In my case, it flagged and deleted about a dozen messages, typical of what I usually get, like mail offering me Viagra or access to horny cheerleaders or how to find out anything about anyone (which I already know–I have a journalism degree). The only questionable thing it flagged was mail from MLB.com. I can’t get off their mailing list ever since I voted online for the All-Star game. No importa, I never read that mail anyway. I could have always added MLB.com to my exclude list if what they had to say mattered to me.

But if you’re like me and get lots of mail–that was my less-busy account–and about half of it is spam, that stuff’s going to scroll by really fast. So here’s what I recommend doing: when you execute disspam.pl, use the following command line:

~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log

Then you can examine disspam.log. If disspam ever deletes something it shouldn’t have, you can add the person to your exclude list and e-mail them to ask what they wanted. It looks to be less work than deleting all that spam. Probably less embarrassing too. Have you ever accidentally opened one of those horny cheerleader e-mail messages when there were people around? Yikes!

I fired up Ximian Evolution, pulled down my mail, and had 15 new messages. No spam. None. Sweet bliss.

It’s just version 0.05 and the author considers it beta, but I love it already.

Unix’s power allows you to string simple tools together to make powerful ones. Here are some suggestions.

You can e-mail the log to yourself with these commands:

mail -s disspam [your_address] rm ~/disspam/disspam.log

If you want the computer to do all the work for you, here’s the command sequence:

cronttab

Then add these entries:

0 0 * * * mail -s disspam [your_address] * 0 * * * ~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log

If you read your mail on the same machine that runs disspam, you can substitute your user account name for your e-mail address and save your ISP a little traffic.

You’ll have to provide explicit paths for disspam.pl and disspam.conf.

The first entry causes it to mail the log at midnight, then delete the original. The second entry filters your inbox(es) on the hour, every hour. To filter more frequently you can add more lines:


* 10 * * * ~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log
* 20 * * * ~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log
* 30 * * * ~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log
* 40 * * * ~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log
* 50 * * * ~/disspam/disspam.pl ~/disspam/disspam.conf >> ~/disspam/disspam.log

This program shouldn’t be necessary for very long. It’s short and simple (4.5K worth of Perl) so there’s no reason why mail clients shouldn’t start incorporating similar code. Until they do, you run the risk of disspam and your mail client getting out of sync and some spam coming through. If you read your mail on a Linux box with an mbox-compliant client like Sylpheed or Balsa or Kmail, you can bring fetchmail into the equation. Then create a .fetchmailrc file in your home directory (name it ~/.fetchmailrc to ensure it goes to the right place). Here’s the format of .fetchmailrc:

poll SERVERNAME protocol PROTOCOL username NAME password PASSWORD

So here’s an example that would work for me:

poll mail.swbell.net protocol pop3 username dfarq password censored

Next, set your mail client to no longer check for mail automatically, then type crontab and edit your disspam lines so they read like this:

* 20 * * * disspam.pl disspam.conf >> ~/disspam.log ; fetchmail (your server name)

In case you’re interested, the semicolon tells Unix not to execute the second command until the first one is complete. If you have more than one mail account, add another fetchmail line.

As an aside, Evolution seems to use the mbox file format but it doesn’t store its file where fetchmail will find it. I think you could symlink /var/spool/mail/yourusername to ~/evolution/local/Inbox/mbox and it would work. I haven’t tried that little trick yet.

But even if you’re not ambitious enough to make it run automatically and integrate with all that other stuff, it’s still a killer utility you can run manually. And for that matter, if you can get Perl running on NT or even on a Mac, this ought to run on them as well.

Check it out. It’ll save you time and aggravation. And since it only reads the headers to decide what’s spam and what’s not, it’ll save bandwidth and, ultimately, it’ll save your ISP a little cash. Not tons, but every little bit can help. You can’t expect them to pass their savings on to you, but they’ll certainly pass their increased expenses on to you. So you might as well do a little something to lower those expenses if you can. Sometimes goodwill comes back around.

Upgrading a P2-300

Case study: Revitalizing a PII-300
It took me three and a half hours one night to squeeze another year or two of useful life out of a PII-300.

A fellow member of the Board of Directors at my church approached me one night. “Would you reinstall the OS on my computer?” he asked. He had a PII-300, not a barn burner by any modern measure, but not a slouch of a computer either. But as a performer it had been very much an underachiever of late. I had walked him through reinstalling the operating system over the phone back around Christmas and it had solved some problems, but not everything. It appeared his computer needed a clean start.

When I looked at it, I agreed. It wasn’t particularly stable and it definitely wasn’t fast. He had a Castlewood Orb drive to facilitate quick backups, so I had him copy his data directories (named Documents and My Documents), along with his AOL directory, over to the Orb. I also spotted a directory called Drv. As an afterthought, I grabbed that one too.

I proceeded to boot off a CD-ROM-enabled boot floppy. Tepidly, I typed the magic words format c: at the command prompt. Quickly I noticed a problem: the words “Saving current bad sector map” on the screen. As the drive formatted, Rick asked the magic question. “What do you think of partitioning?”

Dirty secret #1: Any time you see bad sectors, you should absolutely FDISK the drive. Bad clusters can be caused by physical problems on the disk, but they can also be caused by corruption of the FAT. No disk utility that I’ve ever seen (not Scandisk, not Disk Doctor, not even SpinRite) fixes that. The only way to fix that (verified by a technicians I talked to at Gibson Research, the makers of SpinRite) is to fdisk and format the drive.

Dirty secret #2: FAT16 is much faster than FAT32. Since Rick wasn’t opposed to partitioning the drive, I created a 2GB FAT16 partition. You do this by answering No when fdisk asks if you want to enable large disk support. This partition holds the operating system.

I exited FDISK, ran it again, and this time answered Y when it asked the cryptic large-disk question. I created a partition that spanned the rest of the drive. Then I rebooted, typed format c: then format d:, and watched for bad clusters. There were none. Excellent.

End result: I had a 2-gig FAT16 C drive and a 6-gig FAT32 D drive.

Dirty secret #3: Never, ever, ever, ever, ever (unless someone’s holding a gun to your head) install Windows as an upgrade. You have a Windows 95 CD and a Windows 98 upgrade CD? So what. Install Windows 98 on the bare drive. Setup will find no Windows installation present and ask for your Windows 95 CD. You insert your Win95 CD, it investigates it to make sure it’s not a blank CD with win.com on it somewhere, then asks for your Win98 CD back. End result: a clean install. Even if you install Win95 immediately followed by Win98, you get extra garbage you don’t need. And it takes twice as long.

Windows took about 30 minutes to install. I tackled his applications. When I installed MS Office, I did a complete install with one exception. I drilled down into Office Tools, found Find Fast, and unchecked it. Find Fast is a resource hog and doesn’t do anything useful.

I installed Office to drive D.

He’d bought Norton Systemworks on sale one weekend, hoping it would help his performance. It didn’t. I showed him a trick. Rather than install Systemworks directly, I explored the CD, drilled into the Norton Utilities directory, and ran Setup from there. I intentionally left out almost everything. Speed Disk and Disk Doctor are the two superstars. I also kept the Optimization Wizard. I left out most of the rest, because the other stuff doesn’t do anything useful but it sure slows down your system. When it asked about running Disk Doctor at startup, I said no. It just slows down startup and doesn’t do anything useful. I did let it replace Scandisk with Disk Doctor. That way if you get an improper shutdown, Disk Doctor can clean up the mess before Windows starts and makes a bigger mess. But Disk Doctor should run when you need it. Not all the time.

Then I drilled down into the Norton Antivirus directory and installed it. Then I did the same for Ghost. I needn’t have done that. Just copying the Ghostpe.exe file out of that directory onto a boot floppy suffices. More on Ghost later.

I installed this stuff to drive D.

Next, I installed his scanner software, Lotus SmartSuite, and his DVD decoder.

I copied the data back over from his Orb disk, noticed his modem wasn’t working, and installed the device driver I found in the Drv directory I’d copied over to the Orb as an afterthought. (I’d much rather back up too much stuff than not enough.) Then I copied his AOL directory over to drive D and installed AOL 5.0 over the top of it. It picked up all his settings.

I cleaned up c:msdos.sys and rebooted, watching the time. It booted in about 45 seconds, including POST. I was happy. Rick was very happy.

I did the other standard Windows optimizations outlined in chapter 2 of Optimizing Windows. I cleared out his root directory on C. Then I ran Norton Speed Disk. I had it do the full file reordering and directory sorting bit (also described in Optimizing Windows). Clearing out the root directory makes disk access much more efficient, but only after Speed Disk discards the now-empty directory entries. Directory sorting makes disk access more efficient by putting the important files early in the list so Windows finds them faster. The results are marvelous.

Finally, I ran Ghost. I copied the Ghost executable to a boot floppy that contained the Castlewood device driver internal.sys, then booted from it and Ghosted his drive to the Orb drive. Fifteen minutes later, he had an image of his system, so he can return back to this state any time he wants.

End result: Rick’s P2-300 with an 8-gig Quantum Bigfoot drive (a notoriously slow hard drive) and 288 MB RAM received a new lease on life. Despite its slow processor and hard drive, it performs better than a lot of consumer-level PCs available today.

That was a good investment of 3 1/2 hours.

Another entry from the Clueless Dept.

Someone else who needs to buy a clue. I normally don’t have a problem with John Dvorak, and frequently I actually like his stuff. He’s not as clueless as some people make him out to be. Dvorak’s not as smart as he thinks he is, but one thing I’ve noticed about his critics is that they usually aren’t as smart as they think they are either.
Dvorak’s most recent Modest Proposal is that we fire all the technology ignorami out there and then, essentially, throw away corporate standards, let end-users run anything they bloody well want, and basically make them administrators of their own machines.

I’ve got a real problem with that. Case point: One of my employer’s executives recently brought in his home PC and insisted we get it running with remote access. Only one problem with that: He has Windows XP Home. XP Home’s networking is deliberately crippled, so businesses don’t try to save money by buying it. A sleazy move, but a reality we have to live with. We got it to work somewhat, but not to his satisfaction. He’s mad, but mostly because he doesn’t have any idea what changes went on under the hood in XP and doesn’t know he’s asking the impossible. But he’s perfectly competent using Word, Excel, PowerPoint and Outlook. He’s also very comfortable ripping his CDs to MP3 format–he’s got one of the largest MP3 collections in the company. He’s competent technologically. But he has no business with admin rights on his computer.

The same goes for a lot of our users. The record I’ve found for the most spyware-related files installed on a work PC is 87. These aren’t the technical ignorami who are installing this garbage. It’s the people who know how to use their stuff, but they love shareware and freeware. Maybe some of it helps them get their work done. But these people are the first to complain when their system crashes inexplicably. And I’m expected to keep not only the corporate standard apps like M$ Office running, but I’m also expected to support RealPlayer, Webshots, Go!Zilla, Gator, WinAmp, RealJukebox, AOL, and other programs that run ripshod all over the system and frequently break one another (or the apps I’m supposed to support).

If the users were completely responsible for keeping their systems running, that would be one thing. But install all that stuff on one computer and try to keep it running. You won’t have enough time to do your job.

Dvorak argues that people like me should solely be concerned with keeping the network working. That’s fine, but what about when some Luddite decides to ditch all modern apps and bring in an IBM PS/2 running DOS 5.0 and compatible versions of Lotus 1-2-3 and WordPerfect and dBASE? Unless there’s already an Ethernet card in that machine, I won’t be able to network it. And the person who decides a Macintosh SE/30 running System 6.0.8 is where it’s at will have a very difficult time getting on the network and won’t be able to exchange data with anyone else either.

Those scenarios are a bit ridiculous, but I’ve had users who would have done that if they could have. And someone wanting to run XP Home absolutely is not ridiculous, nor uncommon. If my job is to network every known operating system and make those users able to work together in this anarchy, my job has just become impossible.

As much as I would love for people to use Linux in my workplace and something other than Word and Outlook, the anarchy Dvorak is proposing is completely unworkable. It’s many orders of magnitude worse than the current situation.

This is just wrong too. Yes, New Englanders, I know about heartbreak. I’m from Kansas City. At least your Red Sox have posted more than one winning record in the past 10 years.

Anyway, not only are the Royals’ glory years over, they’ve forgotten where their glory years came from. They’ve once again denied Mark Gubicza entry into their Hall of Fame. Who? In the late 1980s, Mark Gubicza was the Royals’ second-best pitcher, behind Bret Saberhagen. Injuries did him in the same as Saberhagen (only a little sooner) but he’s still among their career leaders in wins and strikeouts.

And after spending 13 seasons in a Royals’ uniform, the Royals had a chance to trade Gubicza for hard-hitting DH Chili Davis. But you don’t trade a guy who’s poured his heart and soul into the team for 13 years and stayed completely and totally loyal to it no matter how much it hurt, right? Gubicza said yes. Gubicza went to the GM and told him that if he could make the Royals a better team by trading him, to trade him.

Chili Davis hit 30 home runs for the Royals in 1997. Then he bolted for the Yankees.

Meanwhile, Gubicza blew out his arm for good and the Angels released him. He pitched two games for them.

It takes a great man to tell the team he loves that the best thing he can do for them is to get traded for someone who can help the team more. That was Mark Gubicza. They don’t make ’em like him anymore.

But even more importantly, the immortal Charley Lau was once again denied entry. Who’s he? He was a journeyman catcher who spent his entire career as a backup and whose career batting average was .255, but that was because he had about zero natural ability. He was a genius with the bat, which was how he managed to hit .255. More importantly, Lau was the Royals’ hitting coach in the early 1970s. He spotted some skinny guy who was playing third base because Paul Schaal couldn’t play third base on artificial turf and their first choice to replace him, Frank White, couldn’t play third base at all. This skinny blond fielded just fine, but he was hitting terribly. Lau asked him what he was doing over the All-Star break. The kid said he was going fishing with Buck Martinez. Lau put his foot down. He told him he was going to stay in Kansas City and learn how to hit.

“He changed my stance. I had been standing up there like Carl Yastrzemski, but the next thing I knew I looked like Joe Rudi,” the kid recalled. But he started hitting. By the end of the year, he’d pulled his average up to a very respectable .282.

Soon Lau had every player on the Royals standing at the plate like Joe Rudi, and taking the top hand off the bat after contact with the ball. And the Royals created a mini-dynasty in the American League Western Division.

What was the name of that kid, anyway?

George Brett.

If it hadn’t been for Charley Lau, George Brett would have been nothing. The Royals probably would have never won anything. And they probably wouldn’t be in Kansas City anymore either. Who puts up with 30 years of losing, besides Cubs fans?

Charley Lau belongs in their Hall of Fame. Even if nobody besides George Brett and me remembers who he was.