Building a Squid server

I’ve talked about Squid before. Squid is a caching Web proxy, designed to improve network speed and conserve bandwidth by caching Web content locally. How much it helps you depends on how you use the Web in that particular environment, but it’s usually worthwhile, seeing as the software is either free or costs next to nothing (it comes with most Linux distributions) and it doesn’t take much hardware to run it. Don’t use your Pentium-75, but you can deploy a standard desktop PC as a Squid server and it’ll work fabulously, unless you’ve got thousands of PCs hitting it. For a thousand bucks, you can seriously reduce your traffic and chances are it’ll pay for itself fairly quickly.
And ironically, Squid integrates beautifully with Internet Explorer 5.0 and newer.

Here’s what you do. Build up a minimal Linux server. For this, I prefer TurboLinux 6.01–it’s more lightweight than the current version, and you can still get patches for it that keep it from being h4x0r h34v3n. Pick the minimum base install, then add Squid and Apache. Yes, you need Apache. We’ll talk about that in a minute. I don’t like to have anything else on a Squid box, because Squid tends to be a big memory, CPU, and disk hog. Keep your computing resources as free as possible to accomodate Squid. (For that reason it would probably be better under a 2.4 kernel using ReiserFS-formatted partitions but I didn’t have time to test that.)

Once Squid is installed, modify /etc/squid/squid.conf. You’ll find a pair of lines that read “allow localhost” and “deny all.” That allows Squid to work only for the local machine, which isn’t what we want. Assuming you’re behind a firewall (you should be, and if you’re not, I’ll help you make a really big banner that says, “Welcome, l337 h4x0r5!”), change the “deny all” line to read “allow all.”

Next, make sure Apache and Squid are running. Go to /etc/rc.d/rc3.d and make sure there are scripts present that start Apache (httpd) and Squid. If there aren’t, go to /etc/rc.d/init.d and make copies of the Apache and Squid scripts. Give them a name that starts with S and a number, e.g. S50httpd.

Next, let Squid build and configure the directories and logs it needs with the command squid -NCd1. No, I don’t know what the -NCd1 means. I found it in a forum somewhere.

Now, go to your DNS and add an entry called wpad.yourdomainname. How you do this depends on the DNS you use. Someone else handles those duties at my job, so I just had him do it. Point that to your squid server.

Now, in /home/httpd/html (assuming TurboLinux–use the default Apache directory if you’re using a different distro), create two files, called proxy.pac and wpad.dat. They should both contain the following Javascript code:

function FindProxyForURL(url,host)
{
return “PROXY 192.168.10.50:3128”;
}

Substitute your Squid server’s IP address for 192.168.10.50.

What’s this do? Well, when IE is set to autodetect your Proxy settings, it goes looking for http://wpad.yourdomainname/wpad.dat, which tells it where to find the Proxy server. You could use any Web server you wanted; I just use the Squid server on the theory that if the Squid server is for whatever reason unavailable, a Web server running on the same machine is the most likely to also be unavailable, so IE won’t find it and won’t use a proxy, giving you a degree of failover.

The cool thing is, this combination of Apache and Squid works well, and can be quickly implemented with almost no work since Internet Explorer by default goes looking for a proxy and most people don’t uncheck that checkbox in the control panel.

We did this to reduce traffic on a T1 line for a short period of time (it saves us from needing to get multiple T1s) and so far we’re very impressed with the results. I recommend you try it.

Spammers must die… And it’s possible their enterprises will. With your help.

Hi. My name is Dave Rhodes.
Sorry, that’s not funny. Remember the good old days, when the closest thing we got to spam was the occasional Dave Rhodes chain letter? (I found a joke about him that I found amusing.)

But something great happened today. Besides finding that joke, I mean. I came up with a foolproof way to make buckets and buckets of money through UNSOCLICITED COMMERCIAL E-MAIL. Now, remember, UCE isn’t spam. Spam’s bad.

Here’s how it works. You don’t have to buy anything from me. I’m not going to sell you a CD-ROM full of three-year-old e-mail addresses harvested by some scriptkiddie’s code. You don’t need it. Making money from UCE doesn’t even require you to send out a single piece of e-mail! Not a one!

Believe it or not, your customers will come to you! About the only thing you have to do to build up your list of victims, I mean clients, is to get an e-mail address, then sit back and wait!

Best of all, this method is safe and completely legal! It hasn’t been approved by the Postmaster General. It does, however, have the blessings of the Federal Trade Commission and the legislatures of 17 U.S. states! (Dave Rhodes ain’t got nothin’ on me!)

Did you know that 17 states have laws regarding unsolicited commercial e-mail? Yes, those 17 states have very strict regulations and requirements. Certain types of spam are illegal in those states. So why don’t spam laws work? Because nobody uses them! And in the end, the loser is you!

You see, when a spammer violates those regulations, you can sue them! One attorney in Washington state sues spammers in small claims court and so far has collected more than $13,000! One Missouri resident, bombarded by unsolicited e-mail from a free webhosting service after he cancelled his account with them, sued in small claims court and received $2,525! That’s $500 per unsolicited message that didn’t meet with Missouri law, plus the spammer even had to pay his court costs of $25!

Just think… That unsolicited e-mail that annoys you could be worth thousands! But in order to cash in, you have to be, you know, in the know (wink wink), if you know what I mean. What’s that information worth to you? A hundred bucks? Two-fifty?

Who cares! Go to www.suespammers.org and check to see what your state’s laws on spam are. It’s free. You don’t even have to tell ’em I sent you. It won’t do any good to tell ’em I sent you anyway, because they don’t know me from Adam.


Man. I ought to be in infomercials. I sure know how to use italics and exclamation points. Though most of these creeps think quotation marks are for emphasis. That’s one of my biggest pet peeves.

Someone else e-mailed me at work and sent me a link to a link to a link that led me to this Brian Livingston column, which eventually led me to www.suespammers.org, where I learned that 17 states have anti-spam laws on the books. I looked into the laws, which are printed on the site. Surprisingly, Missouri is one of the more enlightened states. If a spammer sends e-mail to Missouri and fails to include an opt-out e-mail address or 800 number, you can sue the spammer for 500 smackers.

Most spammers include an opt-out Web page. That complies with the spirit of Missouri law, but not the letter of it. Maybe someone pointed out to lawmakers that it’s harder to implement an e-mail opt-out than a Web page opt-out. Who knows. The law is a stroke of genius, whether by design or accident. I don’t know if that’ll hold up in court, because that really is a technicality. But a lot of spam doesn’t provide any opt-out at all, which means they have no defense whatsoever.

This got me thinking. I get tons of spam. I might have $3,000 worth of spam in my inbox just from this week. I probably ought to check. I could make a decent living suing spammers until the laws change.

And this got me thinking some more. Who cares if 55 people buy stuff when they send out 100,000 messages? Fancy this possibility: What if every time a spammer sent out 100,000 messages, 55 of the recipients sued? The number of sales is irrelevant when you’re faced with that many lawsuits. And let’s face it. Most spammers are idiots trying to get rich quick working out of a spare bedroom. They don’t have a lot of resources. I know the type of individual who tries this crap because I’m related to one. (Fortunately for the world, there’s probably not enough left in his head for him to be able to operate a computer these days. But I’m pretty sure if he had my phone number he’d be calling me, asking me to hook him up. Don’t worry. If he ever gets my phone number, I’m changing it the next day.) This type of person is not well-equipped to handle a few dozen separate lawsuits, especially a few dozen lawsuits outside his home state. And he’s dead meat if multiple suits in different states happen to end up landing on the same court date, since generally if you’re not present you lose by default.

It makes no sense to fight a Missouri lawsuit. Unless you live in the same county as the plaintiff, you’ll probably spend more than $500 to defend yourself, and judges aren’t very sympathetic to the plight of a spammer because so many of them are con artists anyway. It’s much cheaper to just settle. The nature of the spammer is to just ignore it, which of course becomes even more costly. Getting on the wrong side of a judge is a lot more dangerous than getting on the wrong side of an ISP.

So, here’s what you and I need to start doing to really make a difference. Spam filters mostly work, yes, but why should we bother with that when we can sue the lowlives out of business and pick up a little extra cash? And no, my libertarian tendencies are against a federal anti-spam law, because it’s much harder to comply with 17 states’ varying laws than it is with one Federal law, which would probably be watered down anyway. And if more of the remaining 33 put laws on the books, it’ll be even tougher to comply. That would be a very good thing. Wouldn’t it be absolutely fantabulous if some state required a toll-free opt-out number? That would significantly raise the cost of doing business…

The Missouri law is good in that someone can make a lot of money by suing people who don’t comply, but the people who do comply can simply disregard the opt-out stuff. I’ve seen spammers use 800 opt-out numbers. I’ve even called. It’s funny how they never pick up the phone. Missouri laws will drive the less-crafty spammers out of business if enough people use them, but it’s the Washington laws that’ll really hurt. They’re stricter still. In Washington, the state holds the opt-out list, and if you spam an account on that opt-out list, you’re lawsuit bait. Period. And apparently, a printout of the e-mail is sufficient evidence. Sounds like some influential guy in Washington really doesn’t like spam.

The difficult part is tracking down the spammer so you can sue them. There’s a nice primer on decoding mail headers here and some more information here.

I know. It’s my journalistic responsibility to go nail one of these creeps and step you through the process. (And get 500 bucks to boot.) Maybe this weekend I’ll start walking down that road. Tracking down a physical address from a mail header so I can slap a guy with a lawsuit in St. Louis County ought to be interesting. But we journalists have ways of tracking down people who don’t want to be tracked down.

And then there’s this. Go here to read about a guy who set up a Paypal account, sent threatening notes to 15 spammers, and netted 300 bucks in 10 minutes. And his page makes it sound like you can go to a state with tougher spam laws and sue them there if you wish. Strange. You can sue somewhere other than in your hometown? Looks like I need the services of an attorney.

There’s a certain poetic justice to the idea that you can make more money off a spammer’s mass e-mailing than the spammer makes, isn’t there? I think we can fight and win this war.

A flair for the dramatic

Writing about baseball two days in a row? Hey, it’s my site.
We played a doubleheader last night and won both games. I caught the first game; the second game the manager shooed me over to first base. I haven’t played first since one inning in high school, which was a disaster. I last played semi-regularly when I was 12, and that was mostly as a joke. I could make the catches but I was just over five feet tall so I sure couldn’t stretch to get the ball a split second sooner.

I did decent; I made 3, maybe four putouts. There were two bad throws, one I would have nabbed if I’d been six feet tall; the other I got the glove on but really awkwardly and I couldn’t keep control of it. I was pretty mad about that one. I’m a whole lot more comfortable in right or left field these days.

Enough about my reliving the glory days I never had. What about that All-Star game? Ripken has a great flair for the dramatic. First, A-Rod, elected to play short, shooed Ripken over to his old position and moved to third. And Ripken homered in his first at-bat.

That’s the story of Ripken’s career. Ripken had no business playing short at age 40. Ripken really had no business starting the game. But Ripken spent 14 years doing what he had no business doing. He was always too big and too immobile to play short, but he played it and played it well. Shortstops have no business playing uninterrupted for 14 years. Ripken did that.

And really, that’s what defines an All-Star. Yes, the numbers are a big, big part of it, but Ripken’s a star, whether he’s hitting .320 or .220, and Ripken’s a sure-fire first-ballot Hall of Famer whether he hits his way into winning his old job back (Ripken’s not even a regular on his own team anymore) or whether he goes hitless for the rest of the season.

And Commissioner Bud Selig made a total ass of himself, not knowing the difference between home runs and RBIs when talking about Cal Ripken’s achievements, and mispronouncing Honus Wagner’s name when talking about Tony Gwynn one-upping his impressive career batting stats.

It was tonight’s All-Star game that reminded me of what makes baseball such a great game. Baseball is full of great moments like that–great players, sometimes running on fumes, coming back and showing us one last time what made them great in the first place.

So what’s wrong with baseball? I honestly think baseball needs another Lyman Bostock. Lyman Bostock wasn’t a great player. He didn’t have time to become one, because he only played four seasons. But after making runs for the AL batting title in 1976 and 1977, Bostock signed with the California Angels, becaming one of the first of the high-priced free agents, and he immediately fell into a slump. He didn’t even hit his weight his first month, so he went to the owner of the team and tried to give back his salary, saying he hadn’t earned it. When the owner turned it down, he announced he was giving the money to charity instead. Thousands of requests came in, and Bostock went through them himself, wanting to determine who needed the money the most. Tragically, Bostock was shot and killed in Gary, Indiana, near the end of that season. He worked his tail off trying to get his batting average up over .300 by the end of the year. He was batting .296 when he died.

We’ve had tons of great stories since 1978. Ripken, of course. McGwire and Sosa’s friendly rivalry as they chased Roger Maris’ home run record. Orel Hershiser’s 59 consecutive scoreless innings. The emergence of Pedro Martinez and Greg Maddux when it appeared the era of truly, truly great pitchers was over.

But without another Lyman Bostock, they just look like a billionaire boys’ club. Emphasis on “boys.”

Baseball Mogul 2002 offers a glimpse of the future…

I have seen the future, and it crashes a lot. I’ve been playing Baseball Mogul 2002 like a fiend, and I love it. I love statistical baseball and I love financial simulations, so for people like me, this game might as well be heroin.
My big annoyance is that it crashes a lot. It seems to get through the first season just fine, but I haven’t gotten through a second season yet without a crash. That’s annoying. Playing games in a month’s batches seems to make it worse. I suggest you play week by week, saving at the end of each week.

I started off with the Kansas City Royals, of course, and pretty soon I realized what dire straits the team is in if the game doesn’t change. Without a bunch of trades for can’t-miss prospects, it’s virtually impossible to lift the team over the .500 mark, and with free spenders like Cleveland and Chicago in the division, third place is about as well as you’ll do. An out-of-this-world manager like the late (and very sorely missed) Dick Howser could probably improve matters a ton, but Baseball Mogul’s manegerial model is a bit clunky. You can change how your manager manages, but it’s with a bunch of sliders. There’s no way to model, say, a Dick Howser based on the tendencies he used in the dugout and save it. That’s a feature Earl Weaver baseball had way back in the early ’90s and I can’t believe modern sims don’t copy it.

After two seasons with the Royals, I got frustrated. I needed something easier, but not necessarily too easy. So I took on the Curse of the Bambino and took the helm of the Boston Red Sox. The Red Sox haven’t won a World Series since they sold Babe Ruth to the New York Yankees in 1920 for an astronomical $100,000. (Ruth was already a superstar and guided the Bosox to three World Championships, but with him gone, the Sox have been heartbreakers ever since, appearing in four Series and losing each in Game 7. The Yankees have just been scum.)

But how to take on the high-revenue, free-spending Yankees? The Bosox were a challenge unto themselves. Nomar Garciaparra, the greatest shortstop alive today, was injured at the beginning of the 2001 season, of course. MVP candidate Manny Ramirez’ presence in the lineup helped soften it, but I had a cripple playing first base (Brian Daubach was nowhere to be found, not that he has enough punch to really justify holding down that position). So I traded for Toronto’s Brad Fullmer, to get some protection for Ramirez. And Boston limped its way to the playoffs. It wasn’t exactly pretty. The Boston bats racked up tons of runs. Pedro Martinez was masterful, of course, but behind him I had four No. 4 starters: Frank Castillo, Bret Saberhagen (I was glad to see him come off the shelf, but he was the epitome of clutch pitcher, one of those guys who’d give up 9 runs if you didn’t have to win, but when the pennant was on the line, he’d pitch a shutout), David Cone (another ex-Royal, dumped unceremoniously for salary years ago, like Sabes), and Hideo Nomo. Fortunately the Bosox had a solid bullpen. We beat Cleveland in the first round of the playoffs, in five. Pedro had to pitch twice. Sabes won the other game. Of course we faced the Yankees in the ALCS. Boston won in 6, again behind Pedro and Sabes. It would have been poetic justice to have Cone face them in the series and win, but I had to go by the numbers rather than entirely by emotions. That brought us to Larry Walker’s and Mike Hampton’s Colorado for the World Series. Pedro won Game 1. Sabes won Game 2, of course. Castillo lost Game 3. Pedro pitched Game 4 on short rest and lost. I didn’t want to pitch 37-year-old Sabes on such short rest, so I pitched Cone instead. He lost. Sabes came back for Game 6 and won. A shutout, of course. Pedro came back strong and won Game 7.

The curse was lifted. Pedro, with a 19-6 regular season record and a 5-1 record in the postseason, took home the Cy Young award and an All-Star appearance. Manny Ramirez also brought in an All-Star appearance, but most importantly, the team brought in the World Championship.

The 2002 season was where things went nuts. The big-market teams started looking like Rotisserie Leagues thanks to free agency. I went and grabbed Anaheim’s Troy Glaus to play third base and Cleveland’s Kenny Lofton to play left field and bat leadoff. Then I grabbed Minnesota’s Eric Milton to give Pedro a legitimate #2 starter behind him. A couple of weeks into the season I noticed Houston’s Billy Wagner was still unsigned, so I nabbed him to give closer Derek Lowe some help in the bullpen. We rolled through to a 109-53 record, obliterating Oakland and New York in the playoffs. This time there wasn’t even any danger of Pedro’s arm falling off. (He went 27-1 in the regular season with a sparkling 1.53 ERA.)

Then I ran into the free-spending Braves. The Braves’ pitching staff was mostly unchanged from the real 2001 roster. (It was already an All-Star team.) But the lineup… Rafael Furcal, ss. Andruw Jones, cf. Chipper Jones, 3b. Barry Bonds, lf. Sammy Sosa, rf. Tony Clark, 1b. Quilvio Veras, 2b. Paul Bako, c. With the exception of the bottom three, they had arguably the best player in the league at each position. (The other three would be the second- or third-best player on a lot of teams.) Oh yeah. They also had superstar Moises Alou riding the bench. I took a look at Atlanta’s finances. Yep, they were bankrupting the team, deficit spending in hopes of pulling in a World Series. It came down to Game 7, Greg Maddux vs. Pedro Martinez, a showdown of the two greatest pitchers playing today (and arguably the two greatest pitchers alive). Maddux beat Martinez 2-1 in a heartbreaker. (Hey, you try shutting out that lineup!)

After facing that, I felt a little less guilty about running a Rotisserie-style team out of Boston. I’d passed on signing Kerry Wood as a free agent the season before for just that reason. No longer. Atlanta, unable to afford Maddux and Glavine for the next season, let both of them walk. I signed Maddux to a four-year deal, which pretty much guaranteed he’d get his 300th win in a Boston uniform. And between the two of them, I could pretty much count on getting at least three wins in a 7-game postseason. Throw in another clutch performance by Sabes (re-signed for purely emotional reasons–I was either going to get Sabes another World Series ring to go with the one he got with the Royals in ’85 and my fictional Bosox in 2001 or I was going to ship both Sabes and Cone back home to Kansas City, to finish their careers where they both belonged all along. But Cone retired so I opted to go for another ring.) and I’m pretty sure I’d be able to lift the Curse of the Bambino again.

The game even fabricates newspaper accounts of the season’s big games. The picture is almost always the same, and you can usually tell the story was computer-generated rather than written by an intelligent human being, but it adds an element of drama to it.

I also noticed the injury model is fairly realistic. Keeping Pedro Martinez healthy for a full season is virtually impossible, both in this game and in real life. But there are players who will tough themselves through their injuries. Mike Sweeney suffers about one serious injury per year, an injury that would knock most players out of action for a couple of weeks, maybe a month. In Baseball Mogul, Sweeney sits. In real life, Sween tapes himself up and keeps going until he either gets better or the injury hampers his play so severely that even he realizes the Royals are better off with his backup playing. That doesn’t happen often.

The other glaring drawback is that you can’t watch the games. I’d love to watch the All-Star game and at least the World Series.

So. We’ve got a baseball simulation that crashes a lot, doesn’t let you watch the key games (or any of them, for that matter), where injuries are all or nothing, and the managerial model is more crude than I’d like.

Those are serious shortcomings. But the rest of the game is so fabulous that I can mostly overlook them.

Now, the question is, who pitches Opening Day 2003? Martinez or Maddux?

Setting up Freesco for port forwarding

It’s a little late, but here’s how Gatermann and I got a Web server running behind a Freesco-based router. Freesco, despite the name, is a micro-distribution of Linux (based on the 2.0.x kernel) that offers firewalling, NAT, caching DNS, port forwarding, a lightweight Web server, and print services on a single floppy. Requirements are minimal; it’d run on a 386 with 8 megs of RAM, a floppy drive, and a pair of NE2000 NICs. For performance and ease of setup, I recommend a P75 (or faster, but a P75’s overkill; the main reason to use it is to get PCI) with a pair of PCI NICs and 8 megs.
What NICs do I recommend? Avoid the new Netgear FA311. The older FA310 worked fabulously, but Freesco doesn’t provide a module for the FA311’s NatSemi chipset, at least not yet. (The source code for a module is available at scyld.com and it’s compatible with the 2.0.x kernel, but compiling a kernel module isn’t a trivial operation for most of Freesco’s audience.) I’d probably go with a Realtek 8139-based card like a D-Link DFE-530TX+, a recent 3Com PCI card, or a PCI NE2000 clone. There’s a modules archive you can download that supports most other common NICs. A pair of D-Links, a P75 board, a floppy and this disk ought to give you nearly plug-and-play operation.

Enough of that. Here are the answers to the questions Freesco asked, in order.

Boot off the floppy. When it asks what you want to make with it, select ethernet router. Hostname doesn’t matter. Accept default for domain name, unless you’ve registered a domain for your LAN.

Don’t detect modems. Select two network cards. If you are using PCI cards, answer 0 to next four questions (IRQ, I/O). If you’re using ISA cards, enter the addresses and IRQs the cards use. DHCP? Depends on your ISP.

The first card’s name is eth0. (This is the card for your cable/dsl modem). Don’t use dhcp logging. Don’t update DNS by DHCP. Second card is eth1. Give it an IP address (10.x.x.x is fine, which is Freesco’s default; normally I use 192.168.1.x network and put my router on 192.168.1.1). Network mask will almost always be 255.255.255.0. I don’t configure for DHCP, so I don’t give it an IP range. if you want one, tell it the range of addresses you want to reserve. The fewer the better, for memory purposes, especially if you’ve only got 8 MB of RAM in the box.

Caching DNS? Answer S (secure). Don’t log.

Enable DHCP? Depends. If you don’t want to configure your LAN manually, DHCP is nice. If your LAN is already configured, DHCP is probably more trouble than it’s worth.

Public HTTP server. Answer Y. Default is S. Port 80. (You might be able to get away with answering N here, and you’ll save a little memory. DO NOT answer S–you’ll never forward port 80 if you do.)

Time server via HTTP? No.

Print server. No.

Telnet server. no.

Screensaver/spindown? 5 min is fine.

Swap file–0 if you have 8 mb or more. I suppose you could run Freesco on some tiny machines if you put in a small hard drive and enabled the swap file, but as cheap as a P75 with a pair of 4-meg SIMMs is these days, I wouldn’t bother.

Extra modules/programs? No.

Log: take defaults.

Host gateway–depends on ISP. Check one of your other PCs and use it.

Primary/secondary DNS. Use your ISP’s. Proxy, probably none. Check your ISP.

Export services? YES. This is the magic forwarding formula.

Now, assuming your web server is on 10.42.42.3, you’d use this line in config:

t,80,10.42.42.3/80

If you want to export other services, like, say, IMAP on port 143, add additional lines, subbing in the appropriate port and IP address. (HTTP is port 80.)

Pick a root password and web admin password, save configuration and reboot. You’re up and going.

Now, to configure your Windows boxes to get their Internet connection through your lovely what-was-old-is-new-again Freesco router, just open your TCP/IP settings, give it an IP address on the same subnet as your Freesco router if it doesn’t already have one, and set your gateway and DNS to the address you gave your Freesco router.

Voila. Configure your system’s BIOS for keyboardless operation if it has such an option, then take the keyboard and monitor away, write-protect the floppy and make a backup of it just in case (or burn it to a bootable CD if the machine is capable of booting off CD and you have an old drive to put in it) stick the box in a corner somewhere, and forget about it. If you have a power failure, it’ll reboot and happily start itself up again. As for stability, I find Freesco, in combination with decent hardware, is more stable than the hardware routers that are popular these days. Since it has a caching DNS, it’ll usually give you better performance too. And since you can probably build one with parts you have laying around, it’s cheaper.

Who is GenX?

Bible Study last night. My buddy Sean and I led the discussion, using “Too much [whatever], not enough God” as our topic. We prepared like mad dogs–I’ll bet we each put more than five hours into preparation for this thing–and yet I still looked every bit as disorganized as I do when I prepare an hour beforehand. So it goes. I think when I speak in front of a group I’m always going to look a bit disorganized and a bit eccentric and it’s probably just part of me. People seem to like it anyway. One of our regulars brought a couple of friends, and one of the friends came up to me afterwards and asked if I was on the radio, because I seemed to have the voice and charisma for it. That was odd. I’ve never been complimented on my voice before. And the charisma is easily explained. There wasn’t anyone there tonight I was trying to impress. (Which ought to teach me something, but I’m digressing.)
At one point, the subject of Generation X came up. I think it was because the other friend (the one who didn’t compliment me on my voice) talked about how he never plans anything in advance. It just happens and that’s how he likes it. Of course I’m exactly the same way–Sean and I made up two thirds of the sadly defunct Bastions of Decisiveness, and believe me, it was a sarcastic nickname–and one of the girls piped up, “You…. I know you! You’re a GenXer! I read a book about you!” Of course she was laughing as she said it.

And that’s a hot topic for me. Churches fret over how to reach GenX and what they have to do differently. As far as I can tell, churches didn’t operate too differently when I was young from how they operated when my parents were young. And there was a point in their lives when they didn’t have much to do with any church. But they came back, as much for the sake of my sister and me as anything else. They may not have always liked the church, but they trusted the institution for whatever reason.

Now we GenXers are growing up and having kids of our own. Some of us are coming back. Most of us aren’t. And on average, we’re waiting longer to have kids, so there are buckets of us out there who have nothing to do with a church and don’t really care to. Meanwhile, churches’ ranks are dwindling as their members age, and our generation is a large, mostly untapped resource.

What gives? I think one of my ex-girlfriends put it very well. We were talking about gifts and abilities, and I told her sincerity was all I’ve got. She rolled her eyes, as she often did with me, and said, “Sincerity is everything.” I’ve forgotten a lot of things she said to me, but I’ll probably carry that to my grave. In fact, I was talking to someone else a couple of weeks ago and I said that sincerity is usually more important than good intentions.

What else about GenX? I don’t think we like hypocrisy all that much. Bill Clinton didn’t alienate my generation at all. He was as old as some of our parents, but as a demographic group, we dug him. You can say a lot of things about Bill Clinton, and I certainly have because I can’t stand the sorry excuse for a man, but you can’t say he was a hypocrite. But our generation has great disdain for people like Jimmy Swaggart, who said not to do one thing and then did it.

I think the biggest difference between GenX and the previous generation is that the previous generation accepted that hypocrisy exists and you can’t get away from it, and that sincerity is nice but you won’t always find it. GenX isn’t tolerant of that. If you’re insincere, talk to the hand. If you’re a hypocrite, don’t let the door hit your backside on the way out.

And, yes, I’ll say it. It’s easier to find insincerity and hypocrisy in a church than almost anywhere else.

So… I help organize this group of GenXers who meet on Friday nights to read the Bible, of all things. That’s prime party time. But, consistently, 15-20 people come. Most churches don’t have 15-20 GenXers in the sanctuary on Sundays. What’s the secret?

Here’s the secret. There’s no bull with me. I am what I am. At one point tonight it looked like I got choked up and someone commented, asked if I needed Kleenex. Actually I wasn’t choked up. I just lost my place. But I don’t try to hide anything. I’ve got an expressive face, so I’m easy to read. They’ve never seen me get choked up at the beginning like that, but it wouldn’t be out of character. You want sincerity? I’ve got it and so do the other people who lead.

As for hypocrisy, we’ve all been around the block, some of us more times than others, but we don’t try to hide it. And when I say, “Here’s how to overcome this problem,” I’m generally not talking from experience. When I talk about the problem itself, I usually am. But I look to see what God says about solving a particular problem, because when it comes to life’s problems, I sure haven’t solved very many, and I’m not afraid to talk about those failures. Neither are the others who lead.

OK. So we’ve taken care of the sincerity and hypocrisy. That’s not enough to bring people back. What is?

I think it was Mark Twain who said God gave us two ears and one mouth for a reason. We listen. At least I listen. I listen to the questions people ask and the prayer requests they give. You can tell what’s bothering a person based on those things. And what’s bothering one person is usually bothering more than one. You can tell that from looking at those things. If you see a pattern, you go for it. Go find what God has to say about it. The Bible’s not a short book. Name any life experience, and chances are the Bible’s got something to say about it.

No one ever comes and feels like they wasted their time. Sometimes they have other reasons for not coming back, but that’s never it. We have deep and challenging discussions. But they’re not academic. It’s stuff that we’ll spend the next couple of weeks applying to our lives.

So here’s the secret formula. Check hypocrisy and insincerity at the door. Listen. Care. Then go where that leads. Interestingly enough, it usually leads to relevance.

So much for me ever writing a book about ministering to my lost generation–it’s not a subject long and complex enough to be worthy of a book. But if the sales of my last book are any indication, that’s probably just as well.

Two vendors you can count on

Vendors. I’ve been trying to get out of the build-PCs-for-friends business and for the most part I’ve succeeded. My reasons for getting out are twofold: time and support. It takes some time to spec and build one, and if something goes wrong, I’ve got some responsibility for it. It’s something I don’t understand, because the systems I’ve built for myself have been reliable (I had a system appear dead that turned out just to be a corrupt MBR–I can live with that now that I know how to fix it, and it wasn’t the hardware’s fault) but the last two PCs I’ve built for friends have been horrendous.
One of those up and died last week, so we ordered replacement parts. I didn’t get around to placing the order until after close of business Friday, so the orders didn’t get processed until Monday.

I ordered a Gigabyte 7IX-E4 motherboard from Newegg.com. Newegg rakes you over the coals on shipping sometimes, but sometimes they run specials, and this board’s shipping was 5 bucks. Often they’ll charge 10 bucks to ship a CPU, which is ridiculous. Five bucks to ship a motherboard isn’t bad. And their pricing is first-rate–they’re obviously making their profit margins on shipping. But I’ll forgive Newegg’s shipping prices because the package arrived yesterday, even with the holiday Wednesday.

So, if you’re in the market for a motherboard, CPU, video card or hard drive, those guys are worth a first look. Figure out what you want, check the shipping, then check elsewhere and see if they still beat it. I’ll be doing business with them again.

I ordered the CPU, case, and fan (along with another case and video card for me) from Directron.com. Directron’s shipping prices are about as good as you’ll find, and the order is promised today. When Steve DeLassus ordered a batch of stuff from them it arrived promptly, so I trust them. Directron’s pricing is a bit spotty, but their shipping often makes up for it (they wanted $10 more for the CPU, but after shipping they ended up being cheaper than anywhere else I looked) and they’ve got the best case selection I’ve ever seen. Shipping for two cases, a video card, a CPU and CPU fan ended up being about $20, which isn’t bad at all.

Switchboxes. Gatermann’s Linksys KVM switchbox was a disappointment, but I thought to have him try connecting the extension cable directly to his monitor cable to see what that did to the image. I had a hunch that the problem might be the cabling, because I remembered yesterday morning that I’ve seen extension cables cause precisely the effects he was seeing. Sure enough, when he connected the cable (a Belkin, incidentally) to his monitor, the picture quality degraded–worse than it had been with the switchbox in the equation. So I’m going to dig up a couple of other types of cables (I use Fellowes cables on mine) and see if that makes a difference.

Airshows, photography and Linux routing

Gatermann and I went out shooting again yesterday. More exploration of the warehouse district, and we found out that the warehouse district is a halfway decent place to watch an airshow. A couple of cargo planes buzzed us, tipping us off to what was going on, so I went chasing. I’m not the airplane junkie my dad was (few people are), but I’m still a sucker for exotic military planes. I borrowed Gatermann’s telephoto lens and took shots as planes went by. A pair of vintage P-51 Mustangs zoomed by, so I got a few shots of those. A couple of modern fighters made a brief appearance, but I couldn’t get them into the lens quickly enough to identify them. Chances are they were F-16s; not as common a sight as they once were, but you still see them.
I was hoping for a chance to see the Stealth Bomber; about four years ago I was in St. Louis on the 4th and as Gatermann and I were stepping outside to go get something to eat, we heard a low rumble overhead, looked up, and got a spectacular view of the rarely seen and highly classified B-2. Of course there wasn’t a camera in sight so we didn’t get a shot.

This year, a B-52 came from out of nowhere. It was huge–I mean HUGE–and very obviously not an airliner. I’d never seen one in person before so I didn’t identify it immediately. I got it in the camera, zoomed in on it, and figured out what it was. I got several shots. The B-52 is an oldie but a goodie; we used it heavily in Vietnam and in the late 1970s we intended to replace it with the B-1. Carter cancelled the B-1; later Reagan re-initiated it, but it was a disappointment. The B-1 never fully replaced the B-52 and now there’s talk of decommissioning the B-1 completely.

The B-52 was followed by a series of stunt pilots. I guess that’s good for oohs and ahhs, but I wanted to see weird airplanes.

The grand finale was the B-1. It totally snuck up on me; I think Gatermann spotted the thing first. I recognized it but the camera couldn’t catch it–the autofocus wasn’t fast enough. I switched to manual focus and waited. And waited. I spotted it looping around on the east side of the river; most non-classified stuff makes two passes. But you can’t get a good shot from that distance with this lens. I never saw it come back. It didn’t really look like it was landing (Scott Air Force base is across the Mississippi River, in Illinois), but I couldn’t find the thing. I gave up, turned around, and started walking back when Tom yelled and pointed. I quickly turned around, and the B-1 was just barely in range. I pointed and shot as it disappeared behind a warehouse. I think I got it.

I shot more than a full roll of just airplanes.

After airplanes and lunch, we headed out to CompUSA. Gatermann wanted a KVM switch; I wanted Baseball Mogul 2002. A Belkin 4-port switch was $200. A Linksys was $150. Gatermann grabbed the Linksys. I came up empty on Baseball Mogul. We went back to his place, hooked up the Linksys, and it was a real disappointment. It doesn’t pass the third mouse button. Numlock doesn’t work. And it has a slight ghosting effect on the picture. I didn’t notice it but Gatermann did. Stepping the resolution down and lowering the refresh rate didn’t help a whole lot. He’ll be taking the Linksys back. (To Linksys’ credit, the box is made in Taiwan, though its wall wart is made in Red China. I’m not a fan of financing World War III, nor am I a fan of slave labor, so I try to avoid products made in Red China whenever possible. Gatermann does too. I’m not sure what his reasons are but Red China’s treatment of the seven prisoners of war after their pilot kamikazeed our spyplane probably has something to do with it.)

Bottom line: Belkin’s KVM switches are better. I like the Linksys’ metal case better than the plastic case on my Belkin, but the Belkin performs a lot better and its buttons feel more solid. I also like the ability to change displays from the keyboard, rather than having to reach over to the switch like the Linksys requires.

I’m generally not impressed with Linksys’ products. Their DSL router, though it looks really slick, doesn’t forward ports very well. If you just want to split off a cable or DSL connection, it’s great. If you want to learn how the Internet works and run some servers behind your firewall, it’s going to frustrate you. It’s just not as stable as Gatermann’s Pentium-75 running Freesco, which we cobbled together from a bunch of spare parts. Get a used Pentium-75 motherboard with 8 megs of RAM, put it in a $20 AT case along with a $15 floppy drive and a pair of $15 PCI NICs and download Freesco, and you have something much more versatile and reliable for half the price. And a lot of us have most of that stuff laying around already.

And Linksys network cards are absolute junk. Their workmanship isn’t good, their drivers aren’t stable, and the cards have a tendency to just die. Or they age really poorly, spitting out tons and tons of bad packets as they carry out their wretched lives. Netgears are much better, and not much more expensive.

I also gave Gatermann’s Linux configurations a look. Freesco didn’t appear to be forwarding port 80, even though we configured it to, and Apache was installed and I’d verified it was working by opening a browser and going to 127.0.0.1. I tried a variety of things–including forwarding the ports manually from a command line, using the ipportfw command if I remember right–but it never worked. Finally, I tried hitting the Web server from a Windows PC inside Gatermann’s private network. It was denied too. Workstation-oriented Linux distros tend to come locked down really tight by default these days, which is probably a good thing in general, but it makes it really hard to just turn on Web services to the world. I know it can be done but I wouldn’t know where to begin. So I had him download TurboLinux Server 6.5, which will probably solve all his web serving problems.

Where did we come from?


Today’s the Fourth of July
Another June has gone by
And when they light up our town
I just think
What a waste of gunpowder and sky…
–Aimee Mann

Cynical? Who, me? Murel, my next-door cubicle neighbor, asked me a question today that made me wonder, is what this country is today worth our founding fathers risking their lives for?

That’s assuming anyone knows anything about them these days. Which leads me to the question my coworker asked.

“Dave, you’re the resident history buff. What political party did Thomas Jefferson found?”

Why, the Democratic-Republicans. I thought everyone knew that.

“And what party does that correspond to today?”

Most directly, the Democrats.

Murel asked that question because he’d just read an editorial talking about “The Evil Republican Slave-Owning Thomas Jefferson.” I rolled my eyes at that.

“Abraham Lincoln was a Republican!” Murel said.

He’s right. Though that plays into another misconception. The Civil War wasn’t about slavery. That’s what the Politically Correct crowd wants to say, but that’s not true. Fundamentally, the Civil War was about a number of things. One big, forgotten issue is that of tariffs. The industrial north wanted protective tarriffs. This made American goods cheaper than foreign goods, encouraging people to buy American. Plus, in those days, there was no income tax, so tariffs were a major source of revenue.

The rural South didn’t want tariffs. Tarriffs increased the prices they paid for goods. Plus tarriffs made it more difficult to sell cotton and tobacco abroad. In short, what was good for the North’s economy was bad for the South’s economy.

You can see the other big issue by looking at the forms of government each side chose during the Civil War. The North maintained its centralized government, while the South chose a loose confederacy. The South valued states’ rights much more than the north did.

Where does slavery fit into all this? Well, it was an issue of states’ rights. But, truth be told, only a small number of southerners actually owned slaves. Everyone today seems to think the typical Southern family had a slave as a sort of live-in butler or something, because that’s how Hollywood portrays slavery. You had to be wealthy to afford slaves, so the majority of slaveowners were plantation owners. The majority of southern farmers weren’t large plantation owners. They may or may not have been pro-slavery. The issue certainly didn’t directly affect them all that much.

And the North was hardly a haven for escaped slaves. The North had experimented with it and found it cost too much to literally own your workers. So they abandoned it. The majority of northerners probably didn’t care one way or the other. Slavery wasn’t an issue that affected them. There were militant, outspoken anti-slavery activists, and they were loud, just like today’s activists are. That’s why they’re remembered. Slavery gets more people worked up than tarriffs. There are probably a lot of people who don’t even know what a tarriff is.

So why was there a war? Simple. The North was more populous than the South, so the only way the South was going to get what they wanted was by walking out the door.

And Lincoln’s goal wasn’t to abolish slavery. Lincoln’s goal was to preserve the union at any cost, with or without slavery, and he is widely quoted as having said so.

The irony here is that Lincoln was willing to consider abolishing slavery. And he was in favor of high taxes. Sounds pretty liberal. The only resemblance to the Republicans of today is the protection of big business.

The Republican party as we know it today didn’t come into being until after the Civil War, and its history as the party of big business and lower taxes is hardly consistent. Although Teddy Roosevelt was more conservative than his cousin FDR, he was running around busting up businesses at the turn of the century.

But I’ve digressed a lot. Murel talked about the failings of some of the Founding Fathers that have come to light in recent years and cast a shadow on their credibility. We’re horrified to find they had flaws. (Though somehow it doesn’t bother us that Bill Clinton and Jack Kennedy had flaws.) I disagree. The Founding Fathers were human. They were very forward-thinking and insightful and wise, but human.

But worthy of respect. Remember why they were here. European aristocrats were old money. When you couldn’t get land, you moved. So these were men whose ancestry had come across the Atlantic and started over. Yes, some of them were spoiled brats. John Hancock and Samuel Adams come to mind. But Alexander Hamilton was the epitome of the self-made man. Benjamin Franklin’s beginnings weren’t as humble, but he arrived in Philadelphia with little more than his pocket change and his training as a printer and became a tycoon.

These were men who knew what they wanted and knew how to go get it. They knew their interests and England’s interests weren’t the same and they weren’t going to get what they wanted from England, so they headed for the door.

The country we have today doesn’t bear a whole lot of resemblance to the country they fought to create. Political correctness is the rule of the day. You can’t let the facts get in the way of what’s politically correct. Nor can you let your constitutional rights. Freedom of speech, the free press, and freedom of religion are all in danger. (And you thought I was going to say something about guns, didn’t you?)

I won’t go to the extreme of calling Independence Day a waste of gunpowder and sky, because it makes sense to celebrate what we do have. We’re still a whole lot more free, than, say, Red China.

But most of us don’t know why. And as a result, most of us really take it for granted.