A remote administration Unix trick

OK, here’s the situation. I had a Linux box running Squid, chugging away, saving us lots of bandwidth and speeding things up and making everything wonderful, but we wanted numbers to prove it, and we liked being able to just check up on it periodically. Minimalist that I am, though, I never installed Telnet or SSH on it. And besides, I haven’t found an SSH client for Windows I really like, and Telnet is horribly insecure.
Sure, I could just walk up to it and log in and look around. But the server was several city blocks away from my base of operations. For a while it was a good excuse to go for a walk and talk to girls, but there weren’t always girls around to talk to, and, well, sometimes I needed to check up on the server while I was in the middle of something else.

So here’s what I did. I used CGI scripts for the commands I wanted. Take this, for example:

#!/bin/sh
echo ‘Content-type: text/html’
echo ”
echo ‘‹pre›’
ps waux
echo ”
cat /proc/meminfo
echo ‘‹/pre›’

Then I dropped those files into my cgi-bin directory and chmodded them to 755. From then on, I could check on my server by typing http://192.168.1.50/cgi-bin/ps.cgi into a Web browser. Boom, the server would tell me what processes were running, how much memory was in use, and even more cool, how much memory was used by programs and how much was used for caching.

Here’s how it works. The first two lines fake out Apache and your Web browser, essentially just giving them a header so they’ll process the output of these commands. The next line tells it it’s pre-formatted text, so don’t mess with it. This isn’t necessary for all commands, but for commands like ps that output multicolumn stuff, it’s essential. Next, you can type whatever Unix commands you want. Their output will be directed to the Web browser. I echoed a blank line just so the memory usage wouldn’t butt up against the process info. The last line just cleans up.

I wrote up scripts for all the commands I frequently used, so that way when my boss wanted to know how Squiddy was doing, I could tell him. For that matter, he could check it himself.

But if I knew there were going to be girls around, I went ahead and made an excuse to walk that direction anyway. Some things are more important than remote administration, right?

First jobs and masks

I just got a frantic sounding e-mail message from a friend. She’ll be OK, because she’s got a strong personality, but she’s a bit down right now. I understand.
She just graduated college about two months ago, and she’s a few weeks into her first job, and this week her boss and her senior sat her down and gave her a talking-to. It basically comes down to a personality conflict. And they gave her a list of things she had to change. They’re almost all personality traits.

I used to wear a lot of masks. I refused to wear them for a really long time. In grade school, I was what I was, take it or leave it. And what I was was a Kansas City native in a small town in eastern Missouri. I didn’t want to be a hick, and I didn’t want to grow up to be a farmer, a miner, or a truck driver. (I wanted to be CEO of IBM, or president of the United States. I had ambition, probably too much ambition. Some people didn’t like that.) I was the ultimate outsider, and by the time I was in 7th grade, my best friends were my dog, my Commodore, and my notebook.

Mercifully, we moved to St. Louis the next year. I got to start over. And I started over by wearing a mask. I got in trouble by showing ambition. So I stopped showing it when I was around most people. That was the biggest thing. St. Louis was a lot better, because I had friends who were actual, real, live human beings up there. But I wasn’t happy.

High school was tough, especially at first. It was jarring, so I forgot to wear my mask all the time. I had friends–the lunch table I sat at was always full–but I had plenty of enemies too. I got in fights. And if I had a nickel for every rumor that circulated about me… Eventually I learned to be entertained by that. Those rumors were a whole lot more interesting than the life I was living, or for that matter, the life most people were living. Eventually I reached a point where I didn’t wear masks around guys all that much anymore, and in my sophomore and junior years, I only got into one fight apiece. I didn’t get into any my senior year. But I still tried to figure out what girls wanted me to be, so I wore masks around them all the time. Needless to say, I had a hard time getting dates. Who wants to date a faker?

College was more of the same. No one really knew what to make of me, and at this point, I only have one close friend that I made in college that I’m still in contact with. I was wildly successful–one of the most prolific and widespread writers in my class; I nearly graduated with honors; I was treasurer, publicity, and scholarship chairman of my fraternity; I was the longest-running columnist of the 1990s in the official student newspaper; and after they kicked me off staff for being too conservative, I jumped ship and became managing editor of a rival Greek-targeted newspaper. I was successful and lots of people wanted to have a beer with me. But I didn’t know who I was anymore and I was always depressed.

I took my first job, with the university that gave me my diploma. I started dating a girl who knew who she wanted to marry. But that guy was engaged, so she decided to make me into him instead. I let her. I figured the mask she designed wouldn’t be any worse than the masks I designed–hey, she was a graphic designer, after all. My first job bit. I hated going to work. She made a nice distraction, so it was tolerable for a while. But her mask made me lose credibility. Everyone knew me–I’d been there four years as a student–and they knew that thing walking around in Dave’s body wasn’t really Dave. Eventually she realized she wouldn’t be able to make me into anything but a counterfeit, so she told me to take a hike. For whatever reason, I kept on wearing the mask. The depression kicked in harder and heavier, and my work performance tanked.

I went to a grueling 4-session seminar after I bottomed out. They helped me uncover the real me under those 10 years’ worth of masks. It wasn’t exactly a pleasant experience. But once I got out, wow! Someone actually saw me smile once. Work became mostly tolerable. I still wasn’t Mr. Popularity at work, but most people were a lot more pleasant. And when it became evident that I couldn’t advance and that certain unpleasant people weren’t ever going to cease being unpleasant, I left. I took a job in St. Louis.

I wasn’t Mr. Popularity there either, but my current employer values a job well done, and the majority of people I work with like me. And even though sometimes I’m short, I usually look like I’m distracted (I usually am), and I’m always vocal and always eccentric, they learned to live with it. I get the job done, get it done well, and it’s hard to find people who are good at what I do. They’re satisfied, and I’m happy most of the time.

I learned the hard way that wearing a mask for a girl is never worth it. And these days, when a lot of us change jobs faster than we change girlfriends and boyfriends, it’s definitely not worth wearing a mask for a job. If they can’t deal with you the way you are, they’re certainly not going to like you any more when you’re fake. Fakers are less likable and far less respectable. I guess I figure that if they want you to be someone else, you’re better off letting them deal with someone else.

Linkfest.

I felt downright awful yesterday, but it’s my own fault. I remember now why I don’t take vitamins with breakfast. Very bad things happen.
So I’m whupped, and I’m not going to post anything original today. Just some stuff I’ve found lately and haven’t gotten around to posting anywhere.

But first, something to keep in the back of your mind: If The Good News Players, a drama troupe from the Concordia University system, is ever visiting a Lutheran church near you, be sure to go check it out. They are amazing. I put myself together enough to catch them at my church last night and I didn’t regret it in the least. They tell Bible stories in the form of mini-musicals; they’re easy to understand, professional, and just plain funny.

Linux OCR. This is huge. It’s not quite production-quality yet, but then again, neither is the cheap OCR software shipped with most cheap scanners. Check it out at claraocr.org.

It would seem to me that this is the missing link for a lot of small offices to dump Windows. Linux has always been a good network OS, providing fileshares, mail and Web services. Put Zope on your Web server and you can update your company’s site without needing anything like FrontPage. WordPerfect for Linux is available, and secretaries generally love WordPerfect, as do lawyers. ClaraOCR provides an OCR package. SANE enables a large number of scanners. GIMP is available for graphics work. And we’re close to getting a good e-mail client. And the whole shebang costs less than Windows Me.

Linux VMs, without VMware. This is just plain cool. If, for security reasons, you want one service per server, but you don’t have the budget or space for 47 servers in your server room, you can use the User-Mode Linux kernel. (The load on most Linux servers is awfully light anyway, assuming recent hardware.) This Linux Magazine article describes the process. I could see this being killer for firewalls. On one machine, create several firewalls, each using a slightly different distribution and ruleset, and route them around. “Screw you, l337 h4x0r5! You are in a maze of twisty passages, all alike!”

And a tip. I find things by typing dir /s [whatever I’m looking for] from a DOS prompt. I’m old-fashioned that way. There’s no equivalent syntax for Unix’s ls command. But Unix provides find. Here’s how you use it:

find [subdirectory] -name [filename]

So if I log in as root and my Web browser goes nuts and saves a file somewhere it shouldn’t have and I can’t find it, I can use:

find / -name obnoxious_iso_image_I’d_rather_not_download_again.iso

Or if I put a file somewhere in my Web hierarchy and lose it:

find /var/www -name dave.jpg

Windows XP activation cracked. Here’s good news, courtesy of David Huff:

Seems that the staff of Germany’s Tecchannel has demonstrated that WinXP’s
product activation scheme is full of (gaping) holes:

WinXP product activation cracked: totally, horribly, fatally and
Windows Product Activation compromised (English version)

Lightning storm last night…

So the site was down quite a bit because my DSL modem was having a hard time holding on to a connection. I spent a fair bit of time aiming a camera out my bedroom window, then out on my porch, trying to get some shots. What I was seeing was beautiful. I hope the camera was seeing beautiful stuff too, but chances are I got a fair bit of Missouri Gray too.
I had a very long, very pleasant conversation yesterday with someone I hadn’t seen in 8 years. I’ve been running into a lot of people I haven’t seen in 8 years lately, but this was far and away the longest I’ve talked with any of them. Let’s just say if I could have any job in the world, this person’s would be high on my list. But this person is infinitely more qualified for the job than me. Why? It’s in that person’s story. And I have no right to tell it. A few names and a few places came up in conversation, and they triggered some old memories, which triggered some news accounts that I looked up for someone as a favor years ago. I know what was in the papers, but that doesn’t mean I understand.

Five years ago I probably would have told the story anyway. But not now. Why? I can’t put it any better than this person did. Unfortunately I don’t remember exact words, so I’ll paraphrase. When you’re dealing in news, you just write the facts, and your perspective is plenty. When you’re dealing with people’s emotions, it’s a completely different approach.

Yes, this person is also a professional writer, and I wouldn’t be surprised to see the story, told from a first-person perspective, in print some day. And I’m not in the news business anymore.

And now I know you’ll probably be coming back for a long time, looking for a link. I know what I’m doing… (And I’m perfectly happy in a setup role.)

Oh yeah. I had another conversation yesterday. I mentioned something about being borderline healthy–at 140 pounds in combat boots and with a week’s worth of change in my pockets, I’m at the barely healthy weight for my height. (I’m 5’9 1/2″ in combat boots.) My cholesterol is just high enough to be healthy. My friend asked where specifically. I don’t remember numbers but I remember it being low enough to impress the doctor. Then he said there’s a weird correlation between low cholesterol rates and suicide rates. People with low cholesterol are more prone to suicide. It turns out that lower cholesterol results in lower seratonin levels, and seratonin is necessary for a healthy mind.

I’ve always had low cholesterol, and I’ve always been prone to symptoms that are consistent with low seratonin levels like depression and general dissatisfaction. And it seems to me that yes, during the times when I ate lots of red meat, at least this year, I was happier. When I’m really good and don’t eat red meat or ice cream for a long stretch of time, I seem to be more prone to go into a funk.

No wonder that pizza joint on Watson Road is called Happy Joe’s Pizza and Ice Cream Parlor… I think I need to pay Happy Joe a visit this week and make a new habit. Quadruple pepperoni, please. And ice cream. What? Ice cream with or after dinner? Now that’s a silly question. Before!

On politics…

I’ve learned a lot about politics this week. And about myself as well. I figured I’d share.
This is church politics, but I see little difference between it and governmental politics, academic politics, or corporate politics, other than this time I actually believe in the result enough to be willing to hear out the other perspective, put myself in that position, and be that other person for a minute, look around, and see what he (it’s almost always a he) is thinking and seeing.

And I guess that’s what I’ve learned about myself. I can get into the Mac/PC debates and I can argue them as passionately as anyone, but in the end, if someone decides to shoot himself in the foot by paying way too much for an overdesigned single-threaded computer that crashes all the time, well, that’s his business–unless the overly chatty AppleTalk network protocol is going to disrupt everyone else’s work by sucking up all the available bandwidth, or the lack of administrative security is going to allow the user to install software that’ll disrupt other users. But if a guy’s only going to hurt himself by making the wrong decision about a computer, fine. I don’t care. If he’s gonna put up a stink, I’ll let him sink.

Every time I’ve believed in a company, I’ve been betrayed. So I don’t give a rip about corporate politics. And government? Government’s mission is to perpetuate itself. It’s going to do the right thing to perpetuate itself, regardless of whether that’s the right thing for you and me. So when I feel myself starting to get riled up about government, I change the subject.

Church politics? I’ll hear you out. I even went to The not-in-the-least-Rev. Fred Phelps’ web site and read his reasoning on why the LCMS needed to have a “God Hates Fags” protest in front of its doors. Let’s just say it’s very unfortunate that he believes this, because it would be really, really funny. Remember the witch scene in Monty Pyton’s Holy Grail? The one where they said someone was a witch, because she looked like one, because they dressed her up like one? Same logic. Picket a church, provoke it, when it retaliates, sue the retaliator in small claims court, then say the courts say your sign was true. But I’m not going to acknowledge him with a link.

So. I am Lutheran. I didn’t come to that conclusion easily. There are a lot of scumbags who are Lutherans, so for a long time I believed that all Lutherans were scumbags because I’d met so many of them. Then I learned that all churches had scumbags, and on top of that, some of them had really, really poor doctrine. Doctrine, in case that word has you scratching your head, is a fancy word for a set of beliefs, hopefully derived from reading the books of the Bible in context.

So, I got sick of watching people beat each other up with poor doctrine, and worse yet, beating me up with poor doctrine, so I sat down and did something a lot of people never do. I read that book. Yeah, the whole thing–884 pages in one of my translations. It took me three months to do it. It’s shorter than a James Michener novel that I could probably read in a month, but Michener is much lighter reading, and, yes, I’ll say it, usually Michener does a better job of holding your attention.

Reading the whole thing did a lot for me. For one, I saw a much bigger picture. The verses those guys were taking out of context suddenly made sense. It didn’t just “feel” wrong anymore–I could tell you if they were taking it out of context. There’s another common mistake in Bible study that you don’t see so often in other literary studies, or for that matter, other disciplines. In any other discipline, you take the simple stuff first. In programming, you learn loops before recursion. In riding a bike, you learn pedaling before you learn balance. The idea is that you learn the simple things before the complicated things, so that the complicated things don’t make the simple things hard.

I’ll give you an example. When talking to the Pharisees (a religious sect) once, Jesus exclaimed, “You brood of vipers!” Greek scholars tell me what he actually said bordered on profanity. The obvious conclusion: Jesus hated the Pharisees. But that’s wrong. Let’s go back to the most basic Bible verse there is: John 3:16. “For God so loved the world…” Who’d God love? The world. What’s the world? Everybody. Who is Jesus? God. (That’s another verse or 47.) OK. So Jesus loved everyone. Even Pharisees. So why’d Jesus call them a brood of vipers? Because he was disappointed in them. He knew they were capable of better but didn’t want any better.

So I read the whole blasted thing, got the answers to my tough questions, and came to the conclusion that the Lutherans had it right the overwhelming majority of the time. Certainly more than 90 percent. Probably closer to 98 percent. Baptists and Methodists and Evangelicals and Catholics and other denominations were right most of the time too. But usually they appeared to be wrong about at least one of the tough questions.

So, since I agreed with about 98 percent of what the Lutherans (and, specifically, the Lutheran Church-Missouri Synod) were saying, I came to the conclusion that I’m LCMS.

Now, if you ask most LCMS Christians why they’re Lutheran, they’ll probably tell you because their parents were Lutheran. A lot of them don’t even think about it. Ask a lot of them what it means to be Lutheran, and they’ll use words like “page 5,” “page 15,” “organ music,” “liturgy,” and other things. It’s highly structured, highly organized, and, well, to the outsider, it’s just plain weird. It’s designed to be reverent, and yes it is. But it’s not what it means to be Lutheran. There are Lutheran churches in the inner city in New Orleans. I guarantee you they aren’t using a pipe organ and German music dating back to the 15th century. But they’re as Lutheran as can be.

The theology is what’s important to me. The form of worship isn’t so much. And when I see the high liturgy done poorly, it irks me. It’s a whole lot easier for a group of people with meager skills to put together a contemporary-style service that looks good. And contemporary worship scales nicely as skill increases.

The other thing I like about contemporary worship is the freedom. If you follow the liturgy, on any given Sunday the sermon will probably be about one of three things. (Each service has an Old Testament reading, a New Testament reading, and a Gospel reading.) A lot of people dread sermons, especially those types. In contemporary worship, the pastor has more freedom. The pastor can look at what the needs of the congregation are and preach on that. It might be a one-off message or it might be a long series. For churches that do that, the sermon is usually the main attraction. Frequently they’ll make tapes and outlines available so you can listen to it again and study it further. And people do.

In LCMS circles, those sentiments make me a flaming liberal. It doesn’t matter that my doctrine is, if anything, right of center (again, in LCMS circles). The true liberals in LCMS left in 1974. The disagreements that remain in LCMS today are over, frankly, petty issues. I’ll get rid of the guitars and go back to pipe organs if I have to. Or if the order comes down from on high that the only instrument suitable for use in church worship is the kazoo, I’ll deal with it. God hasn’t changed, and the core beliefs haven’t changed.

But the LCMS camp is bitterly divided. Bitterly. On the right, you’ve got the so-called Confessional Lutherans. That’s a meaningless term. It refers to a collection of documents called the Lutheran Confessions, which are statements of doctrine. Interpretation of the Bible. Period. Every LCMS Lutheran will probably agree with 95-99% of the statements in those documents. Confessional Lutherans hold on tightly to their liturgy.

On the left, you’ve got a variety of movements that Confessional Lutherans like to paint with names like “Echoes of Seminex.” Seminex was a liberal movement that LCMS expelled beginning in 1974, and that movement was founded on theology. Seminex is mostly a memory now, absorbed by other church bodies, but the label is a scarlet letter. The “liberal” movements of today have little to do with Seminex, as far as I can tell.

For example, a movement that calls itself “Jesus First” is most frequently brought up with a Seminex label, because Jesus First is sympathetic to the plight of women. I’ve seen accusations that Jesus First would go so far as to ordain women–an issue that Seminex would have brought up, yes. But when I read the Jesus First documents, that’s not what I see. Jesus First is mad that in many LCMS circles, women are treated as second- or third-class citizens. At the top you’ve got adult males, who know all. Below them, you’ve got clueless, rebellious teenage males, who haven’t learned how to know any better. Below them, you’ve got adult women, who never will know any better.

And that’s clearly unbiblical. Jesus never talked down to women. If Jesus First advocates the ordination of women (something that seems to be prohibited in 1 Timothy 2 but that almost certainly doesn’t limit women to silence the way extreme-right Lutherans read that chapter), I’ve never found a paper on it. In some regards, Jesus First is doctrinally more conservative than the Confessional Lutherans. But Jesus First advocates contemporary worship and is very outspoken in its manner of doing so.

Many Confessionals believe that all in the Jesus First movement are going to hell, and a good number of them aren’t shy at all about expressing that opinion.

Now, when it comes to general position (other than who’s going to heaven or hell–if the use of a pipe organ is required to get to heaven, then Jesus is in hell because it didn’t exist yet in His day, and that logic is almost as messed up as Fred Phelps’ logic) I can see where the Confessionals are coming from. I respect their position, and I admire their desire to revere God. And doctrinally, I agree with more than 95 percent of the things they say. However, I do believe some of them treat women atrociously, and using Biblical misinterpretations to justify it is just another slap in the face.

And I’m not going to say I agree with everything Jesus First says. I haven’t read everything Jesus First says. What I have read, I find myself understanding very well and at the very least sympathizing with. They have a large number of very good and well-considered points.

I think I know where I stand. But I don’t know for sure, because I don’t know how far the various “leftist” groups go. While the left celebrates the election of a president most expect will be sympathetic towards their cause, the right continues name-calling. Then the extreme right gloats that its most conservative candidate won first vice president. Meanwhile, the name-calling continues. And it’s extraordinarily difficult to tell from their disseminations what anyone truly stands for. Maybe if I were still in grade school, I’d understand, but as I recall, I had a difficult time sorting through the name-calling then too.

And I read a quote yesterday on one of the right-wing sites, quoting the late Dr. A.L. Barry, Synod president from 1992-2001, known for his conservatism. He was running for president in 1992, and someone asked him the question, “What if you lose?” And Barry was quoted as saying, “Then we’ll all know what to do.”

I have no idea if that quote is true or in context. But I sure don’t like the implication. It’s not respectful, it’s not loving, and it’s not Biblical.

I don’t know if the left wing is correct more often than the right wing. But what I do know is that the left wing displays a whole lot more maturity.

And the left and the right are a whole lot more alike than they are different. But the bitterness of differences seems to increase as the size decreases.

Yesterday’s highlight

I didn’t get home until very late. Around 5:30 or so, we got word of protesters out front. The group was called “God hates Fags.” At first I figured it was a facetious name, but it turned out to be an extreme right-wing hatemongering group. (Yes, this is a church convention I’m working.) This particular church doesn’t take that group very seriously, fortunately. One of the other guys in IT put it bluntly: “If you read your Bible carefully, you know that’s incorrect. God loves [pause] fags. God loves everybody.”
I’ve gotta get out the door. The late shift followed by the early shift isn’t much fun. But I volunteered it; I have to have tonight off.

Long day.

Expect short shrift this week. I’m working a convention. I put in nearly 10 hours yesterday, what was supposed to be Saturday. I expect to do similar today, and I don’t expect much slowdown until Friday.
That’s good for the bank account, bad for the Web site.

I didn’t really pick up any new wisdom or knowledge yesterday. That’s a shame because I spent a good deal of time in the presence of some people who really know a lot of stuff. Hopefully today won’t be a wasted day.

One encouraging thing did come of yesterday. I had a fairly long conversation with a friend who’s having problems figuring out how to handle a situation. I’ve been struggling for the past couple of weeks with a very similar situation, unbeknownst to him. I was very flattered that he would come to me for advice; he’s about 15 years my senior and in a lot of ways he’s like the older brother I never had. He had to confront someone with an issue, and he started off talking about mutual respect and trust, then went in for the kill, and the other guy got ultra-defensive immediately.

So I asked him to imagine another situation. He has a daughter in her early teens. I don’t know if she’s started dating yet, but she’s close enough to that age that I’m sure he’s had to start thinking about how he’s going to deal with his oldest daughter dating. She’s one of those girls who can easily pass for someone much older–if someone had told me she was 17, I’d have certainly believed it.

So I told him to imagine her bringing home a new boyfriend, someone twice her age, maybe even three times her age. Then I raised the stakes. Not only is this guy old, he’s tattooed and pierced, and it’s pretty easy to see he’s only got one thing on his mind.

Obviously, I’ve just described every father’s worst nightmare. And of course if his daughter brought that home, he’d talk to her about it, and he’d start off by telling her how much he loves her and how much he wants the very best for her, then he’d try to talk about this creep. And she’d get really defensive and talk about how he just doesn’t understand. (In reality he does, because I’ve never met a male in my life who wasn’t absolutely capable of being the world’s biggest creep. And some day, she’d understand far better than she ever wanted to.)

But it just doesn’t matter that she’s wrong; she’s made up her mind about what she wants and she’s not going to see reality. And, well, a guy in his 60s can be blindsided like that too. Self-destructive behavior is self-destructive behavior, and it transcends gender and generational lines. It’ll just manifest itself in slightly different ways. Usually.

I know that didn’t help him solve the problem, but maybe it helped him see the other guy’s perspective a little better.

As for solving the problem? I’m clueless. But I feel better knowing that someone close to me that I really respect who’s seen about a decade and a half more life doesn’t have an answer either. An awful lot better. I haven’t felt hungry for the past couple of weeks. I ate, of course, because I knew I needed to. I ate about twice as much yesterday as I have been recently, and I still felt like I hadn’t eaten a thing all day. I think that’s a good sign.

Solving a perplexing slowdown problem

Fixing an unexplainable slowdown. You may never see this. Yesterday I struggled for about 5 hours on a Win98 laptop that was incredibly sluggish. It would just pause for several minutes in the middle of anything, for no good reason. Open up Control Panel and wait. And wait. And wait. Finally the icons would show up. Open a new browser window, same thing. And almost any time an application had to open a new dialog box, you’d have to hurry up and wait.
I couldn’t find anything especially wrong with the configuration. I made some tweaks, sure–I always do–and that improved speed during those non-idle times, but it would still go catatonic on me. I downloaded WinTop and ran it so I could see what the CPU was doing. I found nothing unusual. The CPU was mostly idle.

“Gotta be a network problem,” I told our networking guy. So he went and grabbed his ultimate l337 h4x0r tool, a Micron laptop loaded down with Linux and packet sniffers and analyzers. He ran Ethereal and just watched. There was no weird network activity, and nothing particularly heavy. But we noticed the laptop was chatting away an awful lot with a server two T-1s and two routers away on our WAN, and sometimes it didn’t get a response. I pulled all of the shares on that server and every other reference I could find, but they just kept chattering.

Finally, on a reboot, I watched autoexec.bat roll by (I had the Windows splash screen turned off) and I noticed the suspicious path–that server’s UNC was in the path statement! And futhermore, C:Windows, C:WindowsSystem, and C:WindowsCommand were not! No wonder the system was running like garbage–it was looking for stuff two routers away before it looked in its own system directories!

When I removed that line and pulled a desktop shortcut that referred to that server, all was well.

One of the server-hosted apps we run requires that directory be in the path. If you have to do that sort of thing in a WAN environment, rather than adding lines to autoexec.bat, you’re much better off writing a batch file that does this:

path c:windows;c:windowssystem;c:windowscommand;[path to application on server] [command to execute application]

Then put that batch file on the desktop, instead of a shortcut directly to the app. That way, when your laptop road warriors are away, those changes won’t slow their laptops to a crawl. And the laptop won’t start trolling the network until after they’ve run that application once that day. Since networks are an order of magnitude slower than local hard drives, the system will run slightly better in the office as well. And remember when you construct your path statements, always put the system directories first, and application directories last, with local applications taking precedence over apps on network drives.

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.