The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Sunday, January 01, 2006

Happy New Year

At some arbitrary point in time we slip into a new year and thus ends the obligatory “See you next year!” jokes for approximately 360 days.

We also, at this arbitrary point in time, make promises to ourselves to improve this, change that, and to stop doing the other. Such self dellusion usually ends in another 40 days or so as time marches on.

We also hope that the following 365 days, six hours, mine minutes and nine seconds (or 365 days, five hours, 48 minutes and 45 seconds, or 365 days, six hours, 13 minutes and 52 seconds, depending upon how one defines the term “year”) will be much better than the previous 365 days, six hours, mine minutes and nine seconds (or 365 days, five hours, 48 minutes and 45 seconds, or 365 days, six hours, 13 minutes and 52 seconds, depending upon how one defines the term “year”).

So much hopes and dreams and schemes pinned on the flipping of a single second at some arbitrary point in time.

Anyway …

HAPPY NEW YEAR!

Monday, January 02, 2006

Tar pits, legal and otherwise

Now that I more or less run my own DSL connection, I'm able to have more than a single static IP address. Because of that, I've given my main home system a public IP address so that I no longer have to log into my firewall/NAT system to get to it.

One thing about sitting next to a server is that over time, you get used to the various patterns of noise the harddrive makes. It starts quickly grinding, I know that a load of spam is coming in via my backup email server (a common tactic of spammers—send spam to the backup servers which have less information about valid users so they can “honestly” say they delivered the email). The grinding that starts at 4:00 am are various cron jobs rotating logs, clearing out temporary files and what not.

But over the holiday weekend linus (the machine in question) started making some disk noises I'm unfamiliar with. A constant “click click” noise, perhaps a second apart. I start poking around the system and it's a scripted attack, attempting to log into my system:

Jan  1 13:57:50 linus sshd[24760]: Failed password for root from XXX.XXX.XXX.198 port 43440 ssh2
Jan  1 13:58:05 linus sshd[24784]: Failed password for nobody from XXX.XXX.XXX.198 port 45220 ssh2
Jan  1 13:58:06 linus sshd[24786]: Failed password for root from XXX.XXX.XXX.198 port 45351 ssh2
Jan  1 13:58:14 linus sshd[24799]: Failed password for www from XXX.XXX.XXX.198 port 46207 ssh2
Jan  1 13:58:27 linus sshd[24819]: Failed password for news from XXX.XXX.XXX.198 port 47673 ssh2
Jan  1 13:58:29 linus sshd[24823]: Failed password for games from XXX.XXX.XXX.198 port 47977 ssh2
Jan  1 13:58:33 linus sshd[24829]: Failed password for mail from XXX.XXX.XXX.198 port 48413 ssh2
Jan  1 13:58:34 linus sshd[24831]: Failed password for adm from XXX.XXX.XXX.198 port 48563 ssh2
Jan  1 13:59:03 linus sshd[24877]: Failed password for operator from XXX.XXX.XXX.198 port 51355 ssh2
Jan  1 13:59:12 linus sshd[24891]: Failed password for sshd from XXX.XXX.XXX.198 port 51947 ssh2

Hundreds of attempts.

Now, I could block them on the sever:

GenericUnitRootPrompt# route add -host XXX.XXX.XXX.198 reject

But that would only block them from my one server. And besides, there's this firewall between the internet and the DSL router at the office. Cut off the traffic a bit upstream so they can't scan any of the DSL connections:

GenericUnixRootPrompt# iptables --table filter --insert FORWARD --source XXX.XXX.XXX.198 --jump REJECT

And boom, the traffic stops dead.

For a few hours.

“Click click click click”

Yet another brute force attempt to log into my server. Previous one was from Germany. This one from the Netherlands. Another one a few hours later from Korea. One from Lakeland, Florida!

I ended up stopping eight of these attempts over the weekend—not because my system was particularly vulnerable, but the “click click click” of the disk drive was rather annoying (I should note that the drive itself is not going bad—it's just the sounds the heads make when seeking across the platters).

“Click click click click”

In fact, there's an attempt right now going on as I type this, from Korea— or rather, there was an attack.

And the servers at The Office get scanned constantly. I should know, I get the multithousand line log summaries daily.

So with all that in mind, I'm trying to cobble up a LeBrea Tarpit system at The Office. Legal disclaimers on the site aside, it's still available and in checking the rather loathsome Florida's Super DMCA Act, I think legally we can run it—we're not a “cable operator” (¶ (1)(a) §1 §812.15, F.S.), nor are we a “communications service provider” under the definition given (¶ (1)(e) §1 §812.15, F.S.), nor do we provide a “communications service” under the given definition (¶ (1)(d) §1 §812.15, F.S.). And even if we are classified as a “cable operator” (and really, the definition screams “television broadcasting”), then it falls under ¶ (2)(a) §1 §812.15, F.S.:

(2)(a) A person may not knowingly intercept, receive, decrypt, disrupt, transmit, retransmit, or acquire access to any communications service without the express authorization of the cable operator or other communications service provider, as stated in a contract or otherwise, with the intent to defraud the cable operator or communications service provider, or to knowingly assist others in doing those acts with the intent to defraud the cable operator or other communications provider.

HB0079

See … we are the communications service provider in that case. We're not out to defraud ourselves! We gave ourselves permission!

And it's not entrapment. LeBrea isn't simulated a poorly administered system just waiting to be hacked. It just accepts TCP connections and keeps them on hold (as it were) indefinitely. It's not violating the letter of the TCP specification (it could be argued it's violating the spirit of the TCP specification, but really, what jury will want to spend time listening to geeks pontificate about the finer points of dogmatic religious theology TCP connection semantics?

Tuesday, January 03, 2006

“Little orange houses, for you and me … ”

For Spring, the Orange Houses of Detroit (link via dETROITfUNK).


Yeah … I'm walking kind of funny now …

Due to Hurricane Wilma, then the holiday season, we ended up being just a wee bit behind in our electrical bill. In discussing this last night, it was decided that I would pay the outstanding amount on the way to work today. There's a gas station about a mile or so that one can pay their utility bills. I was expecting this to take only a few minutes or so.

I arrive at said gas station and I'm the only customer. I hand over the bill to the cashier who starts running it through some device (to read the account and amount off the numbers written in magnetic ink along the bottom), then punching lots of buttons, then running it through again, then punching numbers, then marking up the bill with incompresensible hieroglyphics, running it through again, then violently jabbing a pin-infested cloth doll; pins are falling out and bouncing off the counter top. Minutes go by, and the cashier finally turns to me.

“I'm sorry,” the cashier said. “But the bill is being rejected.”

“Rejected?” Oh XXXX, I thought. They've already cut our account and are releasing the hounds thugs collection agents as I stand here.

“Yes, we always have problems with Lake Worth Utilities,” said the cashier, glancing towards the cloth doll. “No problems with any other company. But Lake Worth Utilties.”

Lake Worthless Utilties?” I said.

“Pretty much.”

“Ah.”

“You can pay at the City Hall. Just down Lake Worth Avenue. Down by Dixie Highway.”

“Which side of the street?”

“North side. You can't miss it.”

“Thanks.”

Couldn't miss it because the traffic lined up down the block in front of the Lake Worth City Hall Annex, waiting paitently to pay their bills in the drive-through.

Not wanting to bother with that, I park across the street, and head into the Lake Worth Cith Hall Annex building.

I don't know that it is about government buildings, but every single one is painted in Institutional Paint. It's not a single particular shade of color—sometimes a pale green, other times a jaundiced yellow, or a pale flesh tone—but the shades themselves are never bright, always dull, like it's been there forever, and will remain there forever, eternally dingy. The Lake Worth Cith Hall Annex is a pale flesh color (maybe even a sickly peach color) headed towards a dull beige.

Soul sucking, is what it is.

There's a main hallway that shoots through the Lake Worth City Hall Annex building, and lined up down this hall is a line of people, waiting to get into the Utilties office in the center of the building. A real life Kurgan walks down the hall, deciding he'll come back on Thursday. A cute girl ahead of me in line is wearing a shirt, “I may not be perfect, but parts of me are AWSOME” and yes, parts of her are awsome. At least it keeps my mind of the numbing wait in line.

Half an hour later, I'm actually in the Utilties office, still waiting in line. The cashier window is on the other side of the room where a single person is working. I assume there is at least one other person working the drive though, since I don't see the cashier leave the desk.

Half an hour later, I'm the next in line. At this point, I see they take credit cards, but just past, far enough that it's hard to read is a sheet of paper with the word “VeriCheck” written across the top. The sign nearby that shows that Lake Worth Utilties accepts credit cards also has the word “VeriCheck” across it. I step over to the sheet of paper, keeping my leg stretched out with my toe marking my spot in line, and scan the sheet of paper.

It's a list of fees.

It's a list of fees one will pay for the “convenience” of paying your grossly inflated Lake Worth Utility bill with your credit card (or in my case, a debit card).

What a XXXXXXX racket, I think. The “fee” to “conveniently” pay with your “credit card” is a “measly” 5%.

XXXXXXX XXXXXXXX!

“Do you understand that there is a fee if you pay with your credit card,” said the cashier when it was my turn to pay.

“Not like I have any other choice,” I said. Notice how the signs giving the fee structure was posted next to the cashier, and not, say, out in the hall or near the door, when I might have been able to do something about it. Now, after an hour?

The cashier then mentions the fee. “Are you sure you want to continue paying?”

Not really, but then you're less inclined to continue our electrical supply, so here, let me bend over, I thought. What I said was, “Yes. No other choice really.”

“Splendid,” said the cashier, taking my bill and debit card.

Splendid indeed.

Now, I don't see this as a fault of capitalism. No, this is a fault of a government mandated monopoly that is nothing less than coercion. FPL, for all their faults, is at least working with economies of scale and are able to charge about half that of Lake Worth Utilties.

Although on my way out, I did warn a few people about the fees awaiting them, if they so choose to use plastic to pay. At least one guy started on about taxation without representation, so maybe there's hope yet …


Peekaboo! Oh … you're gone!

I have what may be some bad news for Mark. The club he likes (heck, I liked it too!), the one on Lake Worth Avenue near Congress, is no more. The building has been torn down, and there's new construction on the site (as I found out while driving around today). Given what I saw of the new building, unless the club is going to be two stories (which I doubt), the club is no more.

Sorry Mark.


Rant about my cell phone, Part I

As I was standing around in line, I was kicking myself for not having a pen, so I could make a few notes for the inevitable blog entry. Then I suddenly remembered: I have a cell phone! With a note pad on it!

Sure, it sucks having to type words using a numeric keypad, but it has enough programming to realize that when I hit 4475 it's most likely because I want to type out “girl” than “ggpj” (otherwise, I'd have to type 4 pause 444777555), but the “memo” feature only accepts about 40 cha


Rant about my cell phone, Part II

racters before I have to start a n


Rant about my cell phone, Part III

ew memo.

Stupid software limitations.


Kinda says it all, doesn't it?

Guys, you keep posting that same story about a serious security flaw in Windows.

Windows XP Flaw ‘Extremely Serious’

An anonymous quote at Slashdot about the bazillionth security hole in Windows wherein an image—about as inert as binary data can be—is now a vector for executable code to take over your system.

At this point, can't Microsoft be taken down (as in “corporate death penalty”) as either being completely malicious or completely incompetent? I mean, seriously—infected images?

Sheesh!

Wednesday, January 04, 2006

I just love helpful software

Offered without comment.

Y:\>net share trickout=y:\testfolder
The resource named cannot be shared.

More help is available by typing NET HELPMSG 3736.


Y:\>net helpmsg 3736

The resource named cannot be shared.


Y:\>

Slowly working through a tarpit

Since we have this endless supply of Cobalt RaQs at The Office, I used one to set up a LaBrea Tarpit system. Playing around with it I noticed that LaBrea doesn't stop port scans per se, since port scanners tend to do the TCP handshake then drop the connection, whereas LeBrea will put a connection on hold indefinitely (assuming the other side keeps the connection up). It will also (as I ran it) accept connections on every single TCP port, all 65,536 of them, which is something that doesn't happen on a real server, so I may have to limit the number of ports LaBrea responds to.


Remotely recursive

While installing Linux on a new 1U server for a customer, I managed to play around with our new MegaRAC® K1, a rather neat KVM that works over TCP/IP. While it can be hooked up to a Linux system, the remote display software only works under Windows (of course, and IE—it demands IE). Annoying, but not too much of an issue, since I do have rdesktop installed on my Linux workstation at the Office.

So just because I can, at home I logged into my workstation at The Office. Since X Windows has had a remote desktop feature since it was first written way back in the mid-80s, it's easy enough for me to run rdesktop there and have it displayed on my computer at home (the Mac mini). Then, logging into the Windows system at The Office, I'm able to run the MegaRAC® K1 program to get to the console of the new server.

A remote desktop to my workstation, which has a remote desktop to the Windows box, which has a remote desktop to the new Unix server.

Just because I can (and yes, it's as slow as it sounds).

Thursday, January 05, 2006

Stupid PC tricks

I had so much fun with the MegaRAC® K1 that I hooked the device up to my workstation at The Office (and you can hook a keyboard, video and mouse up to it, and still remote desktop into the system), then from my system used rdesktop to get to the Windows box, from which I remote desktopped (um … yeah) back into my workstation.

The effect was much like pointing a video camera to a TV displaying what the video camera sees.

[My head es-plode]

Just because I can.


Slogging through the 'pit

Today was the first day I ran the Labrea tarpit on the network. I almost didn't leave the office since the results were most interesting. The first hour it ran (from 19:04:31 Eastern to 20:04:31) it “pitted” 9,309 connections from 865 unique IPs. And the ports involved:

Ports captured during a Labrea run of one hour
Port # Port description # connections
135 Microsoft-RPC service 4,996
445 Microsoft-DS Service 3,724
139 NetBIOS Session Service 295
22 Secure Shell Login 231
80 Hypertext Transport Protocol 62
6348 unassigned (possible worm?) 1

That Microsoft specific ports are at the top of the list are totally unexpected here.

I did learn a few things about LaBrea though. One, it only works on a single netblock. Unfortunately for us at The Company, we have several network blocks to worry about and that means either a few machines running this, or several instances (and given that LaBrea puts the network interface in promiscuous mode, I'm not sure how multiple instances would react with each other on the same interface) on different interfaces on one box.

Two, the network block does not have to match the network block the actual system is in, which saves an unsused IP address (ha ha).

A puzzling thing though. I got home, it was still running. I checked back a few hours later, and nothing past 20:21:17. LaBrea was still running, but either we captured all that could be captured, or something else was up.

Or down, as it turned out.

The interface that LaBrea was running on just died. I don't know if the switch doesn't like it (unlikely), the network cable is bad (could be—I did make the cable) or the interface just blew up (also a possibility). Even a reboot of the system didn't fix the problem. I'm hoping it's just the cable.


Packets from Mars

Another thing I'm seeing with the LaBrea Tarpit software—wierd ARP packets.

I've got the logging set to “verbose” (in case any problems come up) and one result is that it logs all the ARP requests that it sees, but can't answer (can't answer them because they're outside the normal netblock LaBrea is “answering” for). So I see a bunch for other public IP addresses we have. And the various private IP addresses that I'm not exactly sure what they're being used for, but hey, they're private.

And then … there are the ARP requests that shouldn't exist:

Jan  6 00:55:40 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.1   TELL 64.76.67.64
Jan  6 00:55:42 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.1   TELL 64.76.67.248
Jan  6 00:55:43 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.254 TELL 64.76.67.236
Jan  6 00:55:43 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.1   TELL 64.76.67.248
Jan  6 00:55:44 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.1   TELL 66.252.226.46
Jan  6 00:55:44 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.254 TELL 64.76.67.236
Jan  6 00:55:44 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.1   TELL 64.76.67.248
Jan  6 00:55:45 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.254 TELL 64.76.67.236
Jan  6 00:55:47 ltp : IP address not in netblock - ARP WHO-HAS 64.76.67.1   TELL 64.76.67.248

I have no clue where these are coming from.

None, and I mean none of our addresses are from the 64.0.0.0/8 block. That doesn't appear to be any of our upstream providers. I can traceroute to 64.76.67.248 but why I'm seeing ARP requests from it is beyond me. Especially since ARP requests can't be routed! It's something local sending it out, or it's LaBrea misinterpreting the ARP packet (since it can be used for more than just IPMAC address translations).

One thing for sure, I'll have to check the code, and possibly modify LaBrea to log the MAC address so I can track this down. Then again, I have to hit the code anyway, since technically, the MAC address LaBrea uses is wrong (the “global/local” bit in the address is not set, and it should be).

Friday, January 06, 2006

More tarpit stuff

The problem ended up being the cable; nothing a little recrimping couldn't fix.

I did however, run LaBrea on the working port last night, and have a full twelve hours of data, from 00:00:00 (Eastern) to 11:59:59, and the results are rather amusing. 55,331 port connections on hold, from 1,743 unique IP addresses. And the only surprising thing is the low number of scans for SMTP.

Ports captured during a Labrea run of twelve hours
Port # Port description # connections
135 Microsoft-RPC service 30,218
445 Microsoft-DS Service 11,813
139 NetBIOS Session Service 5,934
4899 Remote Administration 2,412
80 Hypertext Transport Protocol 1,692
22 Secure Shell Login 1,190
6129 Dameware remote administration software 486
1080 W32.Mydoom.F@mm worm 404
2100 Oracle XDB FTP Services 377
4444 W32.Blaster.Worm 372
1433 Microsoft SQL Server 258
15118 Dipnet/Oddbob Worm 140
5000 Microsoft Universal Plug-n-Play 13
2745 Bagle/Beagle/Tanx viruses 10
25 Simple Mail Transport Protocol 7
47707 unknown 5

And it seems, from these results, that simply blocking the ports used by Microsoft Windows will stop 87% of these scans (and for our particular run, if I just blocked 216.82.207.49 I would have stopped 35% of all the scans—that was a particularly persistent computer).

Update on Saturday, January 7th, 2006

I may not have been properly tarpitting the connections.

Saturday, January 07, 2006

Some updates on a tarpit

I played with LaBrea a lot yesterday and today. One of the things I found was that I may have not been actually “tarpitting” any connections on Thursday and early Friday. I had set the maximum bandwidth that LaBrea could use to 4 Kbps and that may have been too low to do any good. I upped the bandwidth to 32 Kbps and that's when I started seeing “Persist Activity” records in the log file. It looks like the bandwidth capped out, so since then I've upped the allowable bandwidth to 64 Kbps.

[NETWORK TARPIT bandwidth usage]

Another annoying aspect to LaBrea—it's not easy to change the MAC address it uses for tarpitting. As I mentioned, the MAC address it uses is technically incorrect, as it uses a “Global” address, not a “locally assigned” address. It also makes it difficult to run more than one instance of LaBrea on a network (and we may need to do so on our network until I can get all the traffic segmented properly).

I came up with an address to use, DE:CA:FB:AD:00:01 (yes, that spells “decaf bad”) which is distinctive enough to see in ARP tables. I found the line of code to change in labrea.h:100

#define ETH_ADDR_BOGUS  "\x00\x00\x0f\xff\xff\xff"
                                /* Bogus MAC addr used in IP capture */

Simple enough to change. But doing so made LaBrea unable to actually tarpit any connections. Changing the MAC address back to 00:00:0F:FF:FF:FF and it would work. Which means that LaBrea has hardcoded elsewhere in the code.

Found it too, in labrea_init.c:248

  static char bpf[]     = "arp or (ip and ether dst host 00:00:0F:FF:FF:FF)";

Believe me, if there was an option to select the MAC address to use for tarpitting, I would have used it. So I suppose I can now add such a feature, now that I know where to look for it.

So, now that I'm properly tarpitting connections, I've pulled stats from another twelve hour run, which should be more accurate than my last chart. With the additional information, I've been able to calculate the time each connection is “held” and again, it's interesting. This time, the twelve hours resulted in a tarpitting of 27,427 connections across 1,418 unique IPs with an average “hold time” of 48 minutes, 21 seconds (although there were 302 connections held for over 11 hours, presumedly they still are). Again, the ports being scanned hold nothing surprising, with this time 63% of the scans for Microsoft specific ports:

Ports captured during a Labrea run of twelve hours 00:00:00 to 11:59:59 on Jan 7, 2006
Port # Port description # connections
Port # Port description # connections
139 NetBIOS Session Service 7127
1433 Microsoft SQL Server 4605
80 Hypertext Transfer Protocol 4425
445 Microsoft-DS Service 4361
135 Microsoft-RPC service 1290
3306 MySQL Server 1157
443 Hypertext Transfer Protocol over SSL 978
3840 unknown 915
22 Secure Shell Login 892
3380 unknown 455
8080 Hypertext Transfer Protocol—typical alternative port 403
15118 Dipnet/Oddbob Worm 361
4899 Remote Administration 249
1080 W32.Mydoom.F@mm worm 79
25 Simple Mail Transfer Protocol 64
21 File Transfer Protocol command port 24
57 Mail Transfer Protocol (obsolete) 18
6885 Bittorrent 6
6129 Dameware remote administration software 5
34153 client-port on Red Hat Linux 9.0, Fedora Core 1, Red Hat Enterprise 3 4
1025 Microsoft-RPC service (what? Another one?) 3
18448 unknown 2
524 Novell Core Protocol request 1
20298 unknown 1
2008 Microsoft terminaldb configuration 1
18000 unknown 1

I may need to write a program to process the logging in real time, since LaBrea is quite versbose, as it looks like it'll generate about 150M per day of logging information.

Sunday, January 08, 2006

Elvis has left the planet

Last month I wrote about the Weekly World News and how I was sad to see it have a disclaimer about the fictious nature of its articles. And today, another thought hit me—one thing you no longer see in taboids are Elvis sightings (this being his 71st birthday and all). Has the tabloid world finally realized that Elvis “The King” Presley has not only left the building, but actually left this plane of existence? That scores of fans and New Age cranks come to grips that Elvis will no longer haunt midwest grocery stores and fried chicken fast food restaurants?

Say it ain't so!

Monday, January 09, 2006

The user expectation is on fire

A recurring theme here is one of user expectation. Or I should say, the expectation I have as an old school Unix administrator (that doesn't really care for Unix administration but can do it) and the current state of the art in Unix—or rather, Linux—administration.

Today's project was a consolidation of DNS—moving all the zone files to a central server and have that one serve the zones to the actual register name servers. That way, we have one location to make changes and from there they are propagaged out. Nothing too wild.

But it's not working. The zone transfers are failing. Big time. I'm reading the Cricket Book and I'm close to really mucking with the configuration files when this little voice in the back of my head goes Hey, check to see if there's a firewall running on the server. See, user expectation—I'm not used to Unix servers running firewall software as a default. I'm not running Windows for crying out loud.

And thankfully, it turns out to be a firewall issue. Otherwise I thought I was going crazy.

Tuesday, January 10, 2006

Monday

To whom it may concern:

It's Tuesday!

This is not Monday!

Tuesday!

Repeat after me: TUESDAY!

If ever there's a day when both DNS servers fail, it's impossible to find a working serial port on a computer, my DSL connection fails, the A/C at The Office isn't functioning properly and the power cord falls out of my workstation for no good reason, it's MONDAY!

Not TUESDAY!

Please try to schedule any Hell Days for Monday.

Thank you.


What a fluke

From: Sean Conner <sean@conman.org>
To: Bunny XXXXXXXX <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: The cable
Date: Sun, 8 Jan 2006 05:35:27 -0500 (EST)

It was thus said that the Great Bunny XXXXXXXX once stated:

Nice save on that cable. Very intuitive. Most of us would have looked for zebras. I recently changed out an outdoor light fixture (see attached), and when it didn't work, I almost didn't think to try a new lightbulb …

Helps to have a $5,000 network analyzer that can be used to test cables (even tell how long they are!).

Bunny and I (and yes, Bunny is her real name) have been exchanging emails about the network cable I recrimped. She seemed impressed that I would admit to making such a mistake, but hey, as mistakes go, it beats adding an external SCSI drive to your primary business computer without turning it off (a mistake an old boss of mine did).

[About 15 nanoseconds for the bits to schlep through this cable]

So I figured she might get a kick out of what a $5,000 network analyzer looks like. And I think it can do more than just measure the continuity and length of network cables, but darned if I've used it for more than that.

Wednesday, January 11, 2006

Cliff hanger

As if yesterday weren't bad enough, today I come home to find The Younger offering much sacrafice to the Great Porcelain God, due to stuff he may have ingested. Wlofie had called Poison Control and while what he ingested normally wouldn't be a problem, since he was making much offerings to the Porcelain God and complaining about abdominal pains, it was suggested we head off to The Emergency Room!

[It was an emergency!  I didn't have my camera on me, so I had to make due with what was available—which was Wlofie's phone]

We arrived just before 8:00 pm, with Spring flying to The Emergency Room from work. She arrived around 8:30, and shortly thereafter (after yet another offering to the Great Porcelain God) The Younger, accompanied by Spring, went into the bowels of the hospital.

At 1:30 am (yes, I am pre-dating this, as most of this happened Wednesday, and had there been wireless at The Emergency Room, I would have posted, but alas, there was none) Spring called, saying that The Younger's X-ray was inconclusive and next up was a CAT scan, and that the rest of us should probably head on back home as there was no telling how long The Younger and Spring would be there.

And that, alas, is all the information I have at this time.

So … how was your day?

Update on Thursday, January 12th, 2006 at 3:30 am

Doctors think it's a stomach flu, although why it took a CAT scan to figure that out, I don't know.

Thursday, January 12, 2006

Cliff hanger, Part II

Today was spent at The Hospital.

Not The Hospital whose Emergency Room I dropped The Younger off at. No. That Hospital does not have a pediatric section, so The Younger was transported to a different Hospital during the wee morning hours.

Now, since Spring has already mentioned one reason why he's there, I no longer have to dance about the issue of The Younger swallowing two kitchen magnets.

Magnets.

Yes, plural.

Now, as kitchen magnets go, these are tiny. Think of a push pin, one used to tack notices up to a bulletin board, but instead of a metal pin sticking out of it, it has a small round magnet to hold it to a refridgerator. We're talking something about 1/8″–1/4″ across.

And he only swallowed the magnet part, not the push pin part. Just the magnet part.

It was suggested by the doctors last night that The Younger might have pica which is a persistent craving for non-food like items.

Oh, and he also got a stomach flu, as if things weren't bad enough.

So anyway, today was spent at The Hospital.

The Younger was sent through X-ray enough times that he no longer needs a nightlight and the reason for the multiple X-rays throughout the day was to track the movement of the two magnets. The concern was if the two magnets attract each other in different parts of the intestines and lodge themselves against the intestine wall. Fortunately, the X-rays showed that not only where they progressing down his system, but they had already attracted to each other and travelling as one unit if I understood it correctly.

So, once the magnets are flushed from his system, The Younger can then return back home.


The Great Egress Incident

Since The Younger and Spring were transported to The Hospital from The Emergency Room via ambulance, Spring's car was still at The Emergency Room. I worked out a plan whereby Smirk would pick me up at The Hospital, drive me to The Emergency Room, whereby I would drive Spring's car back to the Hospital, then I would drive back home to get some sleep so I could go to work tomorrow.

Around 11:30 pm or so, Smirk calls me on my cell phone to say he's outside the main entrance to The Hospital. The main entrance to The Hospital is this large revolving door (it has motion detectors, and will start moving automatically). I nearly smack into the thing trying to walk outside.

It's not moving.

I try pushing it on the sign that says “Don't Push” but it won't budge. In fine print, the sign mentions something about the handicapped doors to either side of the revolving door. So I pick the one to the right, and try to go out.

It doesn't budge.

Nearby is a large flat disk with a stylized wheelchair and the words “Open Door” on it (or something to that effect—I don't recall exactly). It's made to be pressed, and I press it. I hear this light buzzing noise, only the door isn't opening. I try pushing the handicapped door, but it still doesn't budge.

Neither does the one to the left of the revolving door.

Through the windows, I can see Smirk's vehicle.

I try all three egresses again, pushing and shoving and otherwise trying to get to the other side of the doors.

Then I call Smirk on the cell phone, to inform him that I'm having some difficulty in leaving The Hospital. Through his laughter I'm told that he's seen my difficulty and suggests meeting him outside this Hospital's Emergency Room.

Friday, January 13, 2006

Monday, Part II

As if Tuesday wasn't bad enough (so was Wednesday and Thursday but that dealt with things outside of work), I arrive at The Office to one machine spewing out a sustained 20Mbps of traffic, and another one not responding at all.

For the one vomitting over the network (a customer's colocated box), I logged in, and saw the following errors:

eth0: Transmit error, Tx status register 82.
Probably a duplex mismatch.  See Documentation/networking/vortex.txt
  Flags; bus-master 1, dirty -1756485798(10) current -1756485798(10)
  Transmit list 00000000 vs. f7ed8480.
  0: @f7ed8200  length 80000042 status 00010042
  1: @f7ed8240  length 8000002e status 0001002e
  2: @f7ed8280  length 800005d6 status 000105d6
  3: @f7ed82c0  length 80000548 status 00010548
  4: @f7ed8300  length 80000036 status 00010036
  5: @f7ed8340  length 8000003e status 0001003e
  6: @f7ed8380  length 80000042 status 00010042
  7: @f7ed83c0  length 800005ea status 000105ea
  8: @f7ed8400  length 800005ea status 000105ea
  9: @f7ed8440  length 8000004e status 8001004e
  10: @f7ed8480  length 800005d6 status 000105d6
  11: @f7ed84c0  length 800005d6 status 000105d6
  12: @f7ed8500  length 800005d6 status 000105d6
  13: @f7ed8540  length 800005d6 status 000105d6
  14: @f7ed8580  length 800005d6 status 000105d6
  15: @f7ed85c0  length 80000042 status 00010042

Over and over again, for days—ever since it was rebooted last week. So I check Documentation/networking/vortex.txt:

Transmit error, Tx status register 82

This is a common error which is almost always caused by another host on the same network being in full-duplex mode, while this host is in half-duplex mode. You need to find that other host and make it run in half-duplex mode or fix this host to run in full-duplex mode.

As a last resort, you can force the 3c59x driver into full-duplex mode with

options 3c59x full_duplex=1

but this has to be viewed as a workaround for broken network gear and should only really be used for equipment which cannot autonegotiate.

I know Dan the network engineer prefers not to have auto negotiation as he's seen problems with it, so I call him up, and ask him to set the switch port the machine is plugged into as 100Mbps auto-negotiate. Once he did that:

eth0: Setting full-duplex based on MII #24 link partner capability of 4101.

And the traffic immediately cleared up (I suspect that when the box was first plugged in, the switch port was set to auto-negotiate, but some time afterwards, Dan set the switch port not to negotiate, but since the negotiation already happened, no errors were reported. It was only after the box was rebooted last week that the problem cropped up).

The second box was also a colocated machine, and the customer there just told me to power cycle it. Instead of just powercycling the machine, I hooked the crash cart up to it, just to see if any error messages were on the screen.

Only the screen was blank.

Couldn't get it to unblank at all.

The machine must be hosed, so I power cycled it.

And that's when I saw the other video interface.

Sigh.

The rest of the day was pretty much like that—just as I clear one problem, another would pop up. All day I was busy with problems.

It was like Monday Tuesday all over again …


More updates on the tarpit

Labrea is actually logging about half a gig a day. Over a 24 hour period (from about 6 am Thursday to 6 am today) I'm tarpitting 82,359 connections across 2,059 unique IP addresses (24,252 connections from a single IP address). And while the number of network ports being accessed has increased a bit, it's the Microsoft specific ports that are still the most popular targets (with 72% of the scans):

Top 10 ports captured by Labrea in the past 24 hours
Port # Port description # connections
Port # Port description # connections
139 NetBIOS Session Service 24941
445 Microsoft-DS Service 23013
1433 Microsoft SQL Server 6772
4899 Remote Administration 5620
135 Microsoft-RPC service 4722
80 Hypertext Transfer Protocol 3697
8080 Hypertext Transfer Protocol—typical alternative port 1686
7212 (unknown) 1683
8000 (unknown) 1471
10000 (some web based control panels use this port) 951

The program I'm using to generate the stats is written in Perl, and it took about 4 hours to run over a day's worth of data (the machine that does the tarpitting isn't the fastest machine we have, but it's more than enough to dedicate to just running LaBrea). I definitely want to write a program to process LaBrea data in real time.

Saturday, January 14, 2006

The passing of stuff

I'm at the hospital, which unfortunately does not have Internet access (which sucks, and it's obvious that I'm posting this some days after I wrote this).

Good news for The Younger: he seems to have gotten over his stomach flu.

Bad news for The Younger: the magnets have been stuck somewhere in the large intestines for the past 48 hours. And he won't be released until the magnets are released.

Sigh.


Processing realtime data from LaBrea

Since I'm stuck at The Hospital, and The Hospital doesn't have wireless, I might as well work on the real-time LaBrea data processing program. Loaded up the laptop with program fragments and libraries I may need and brought along my copy of Advanced Programming in the Unix® Environment by W. Richard Stevens, and am coding up a storm.

And yes, I'm coding this up in C. Not like I'm going anywhere in the next couple of days.


LaBrea spits out lines like:

1136832897 Initial Connect - tarpitting: 82.240.204.251 3334 -> XXX.XXX.XXX.XXX *
1136832897 Initial Connect - tarpitting: 82.240.204.251 3339 -> XXX.XXX.XXX.XXX 139
1136832897 Persist Trapping: 82.240.204.251 3334 -> XXX.XXX.XXX.XXX 445 *
1136832898 Persist Activity: 216.248.36.242 45285 -> XXX.XXX.XXX.XXX 135
1136832898 Persist Activity: 216.248.36.242 34589 -> XXX.XXX.XXX.XXX 135 *
1136832898 Persist Activity: 216.211.61.158 3862 -> XXX.XXX.XXX.XXX 135
1136832898 Persist Activity: 211.236.205.138 4459 -> XXX.XXX.XXX.XXX 139 *

There's some other stuff that's logged, but I'm primarily looking for lines like the above. Which means the information I can store will look something like:

struct tprecord
{
  IP     src;
  Port   sport;
  IP     dest;
  Port   dport;
  time_t start; /* first time we see src:sport-dest:dport */
  time_t last;  /* time of last activity of src:sport-dest:dport */
  size_t packets;
};

Now, since we'll be handling a lot of connections, we need to store these structures in a way that is easy to search through. Could use a hash table, and we are keying off the src:sport→dest:dport tuple, and that's 10 bytes of pretty much random binary data, which is good for this type of thing. But it's an open ended hash, not knowing how many entries we'll be handling. There are several methods to handle overflows in a hash table, but that still means at some point doing a linear search, and then there's the overhead of having a hash table.

There's also storing the data in a tree. In fact, I even have code in C to manage a balanced tree (taken from Knuth). But the downside is—I only have code to add to the tree, not to delete from it. And it was hard enough to write as is.

And there's still the overhead of maintaining a tree structure.

So I'm using arrays. Less overhead and straightforward to manage. The only trick is keeping the array sorted in some order, but as long as you compare the structures in a consistent manner, that's not really an issue (and by the way, I'm sorting by source address, port, destination address and port, in that order).

To make it even easier, I have an array of structures (see above), and an array of pointers to said structures, and it's the pointer based array that is sorted (since it's faster to swap pointers than swap whole structures). And once sorted, you can use a binary search to find the record.

The default binary search in C, bsearch(), returns either a pointer to the found record, or NULL if not found. Good for most uses, but not quite what I want. In addition to either finding the record or not, I'd also like to know where in the array the record was found, and if not, where it would appear if it was in the array. And C's bsearch() does not return the index.

Why do I want that?

My thinking is that if the search (reguardless of what type of search it is) didn't find the record in a sorted array, it has the information as to where the missing record should be. And with the information as to where, it would be “trivial” to add the record at the right point in the array.

And that beats adding the new record at the end, and restorting (C's qsort() is Quick Sort, which on average is O(n lg n) running time, but the worse case is O(n2) and the worst case is then the array is mostly sorted to begin with, which is why I'd rather not resort after each addition).

And try as I might, I could not get a binary search to work that would also return the index. For now, I replaced the search with a linear search, until I can comb through some reference materials at home.

The other problem I'm having is the array manipulation code doesn't quite work. When the program starts, it has space to store X records. If it runs out of space, it increases the size of the various arrays until it hits some large number of records, then it will go through, purge records fitting some criteria.

Only it's not working properly.

Got a lot of work done on the program though, and it was nice to get into The Zone (even with a headache). At this point, I'm headed home for sleep and what looks to be yet another day at The Hospital.

Sunday, January 15, 2006

And this too, will pass … the only question is when!

Back at The Hospital. The Younger is over definitely over his stomach flu, but the magnets are still stuck.

Normally on Sundays I run a D&D game for the family and The Kids were looking forward to playing this week, but frankly, I don't want to run a session at The Hospital. For one thing, I have a pile of reference material I use during a session and there isn't a good enough surface for me to use. And the smoke breaks (for both Spring and Wlofie smoke) will be longer (since they have to head outside The Hospital instead of just outside Casa New Jersey), leading to less actual gaming time.

Second, I'm still in a programming head space and don't want to loose being in The Zone.

Third, Spring fell asleep as soon as I got there, and Wlofie was home sleeping, and that's half the party. I'd rather not run a session with that many missing party members.


In an effort to get the magnets moving, The Younger is being forced to eat (not only by us, but through The Hospital staff) even though he complains of stomach pains.

I have this feeling that it's going to be a long hospital stay.


Some notes on a binary search implementation

You would not believe how hard it was to write a binary search that returned the correct index for a missing record in an array.

Even with Programming Pearls by Jon Bentley (reference book of the day).

Binary search is a deceptively simple algorithm that is easy to get wrong (be especially careful when searching empty arrays). And of the binary search implementations I've seen, when they do return the index in the array, it's to an element that's actually there, and some other value (like 0 or -1) if the element isn't there. I've yet to see an implementation that returns an index reguardless (plus an indication if the element was found or not).

So I spent several hours getting a binary search to return an index even if the element wasn't found. Before looking at my solution you should at least try coding it (I should note that the code is pulled from the real-time LaBrea data processing program I'm writing, which just enough changes to get a single file to compile and with as little change to the source code as possible, so some of the names may not make that much sense, but the logic should be clear).


Squishing bugs

I've been simplifying the real-time LaBrea data processing program. One simplification: don't try to grow the arrays. If I'm trying to grow the arrays and I'm going to stop at some point anyway, why not just allocate as much as I'll ever use when the program starts? It gives you a definite upper bound (and one that can be set from the command line) and boy, does it simplify the code.

I also got the binary search routine working correctly after a few hours.

And I had to remind myself just how C's qsort() works, and make sure I know that (in my program at least) I'm getting pointers to pointers to structures, and not just pointers to structures (when I fixed that, I started getting correctly sorted arrays).

The only outstanding bug I have right now deals with adding a record after the array has been purged of old records. The problem is that I'm using an index from before the purge. I should be able to get this running on the LaBrea tarpit system in the next day or two.

Monday, January 16, 2006

Sexism is alive and well even today

The Younger has yet to pass the magnets, so he's still in The Hospital.

Sigh.

And so far, despite repeated corrections, most of The Hospital staff still refer to The Kids as “girls.” Okay, understandable given the shoulder length hair both have, and slender bodies.

But repeatedly?

“So, is she with you?”

“Yes, he is.”

“Should I give her a badge?”

“Yes, you can give him a badge.”

“Here you go little girl.”

“Aaaaaaaaaaaaarg!”

(Not to mention that one staff member not only though The Younger was a girl, but still wore diapers! I mean, yes, we're waiting for an event from down there, but The Younger can hit the bathroom for that. Sheesh!)

Didn't we learn that long hair isn't an indication of gender during the 70s?

It's enough to make me want to put my head in my hands and sob uncontrollably.


Stupidity is alive and well today too!

On the way to work (after dropping off Wlofie and The Older at The Hospital), I stopped off at a gas station to fill up Lake Lumina. There are two pumps next to each other, both free. I'm trying to negotiate my way there when an SUV cuts in. But does the soccer mom driving said SUV pull all the way forward?

No, of course not.

She pulls up to the first pump, and stops.

Would it hurt her to pull up to the next pump, free of any vehicular obstruction and fill up there?

Yes, of course it would.

So I have to drive around this bree munching Yuppie soccer mom and circle around to some other free pump.

Then, when said bree munching Yuppie soccer mom finished filling up her SUV (I didn't actually see her get out of the vehicle and pump any gas, although I did see her talking on a cell phone), does she pull forward to circle around the lot to leave?

No, of course not.

Instead, she backs up and tries to negotiate a three point turn right there in front of the pump.

It's at this point that I want to put her head in my hands and shake violently.


Monday, only this time, on a Monday

From: Dan the network engineer <XXXXXXXXXXXXXXXXXX>
To: Sean Conner <sean@conman.org>
Subject:
Date: Mon, 16 Jan 2006 11:12:05 -0500

Hey Sean,

XXXXXXXXX's traffic issues have not been solved, and, in fact, are still causing some major issues.

I believe this server has been hacked and needs to be taken off-line …

Okay, see! This is a Monday thang …

Sigh.


Not that bad, as these things go

Well, the server was hacked, but it looks to be a customer account was compromised, since the executables where owned by a customer account, the processes were running on unpriviledged ports, and the server was being used as part of denial of service attacks, with executables hidden under a hidden directory in /var/tmp.

Fortunately, the system hacked is running Linux without module support, so patching system calls to hide activity is impossible without a reboot (which would be noticed).

And as always, it could have been worse.

Tuesday, January 17, 2006

“It comes in two flavors, ‘icky’ and ‘yucky.’”

The magnets are still stuck in The Younger. And this morning he was in pain. Quite a bit of it too. Hopefully the pain means they are on the move, but we won't know until later today after his insides are scanned once again.

If the magnets haven't moved, tomorrow the doctors go in.

Here's hoping the magnets leave his system on their own.


Real-time LaBrea data processing program

I finished writing the real-time LaBrea data processing program (most of it last night at The Hospital) and the final few bugs were real doozies.

The program works by getting data from LaBrea, then it looks up the connection and updates the information accordingly. The code pretty much looks like:

void start_tarpit(time_t stamp,char *line)
{
  struct tprecord *exists;
  struct tprecord  rec; 
  size_t           index;   

  read_record(&rec,line);
  exists = tpr_search(&rec,&index);
  if (exists == NULL)
    exists = pull_free_record();

  exists->src = rec.src;
  exists->sport = rec.sport; 
  /* ... */

  record_add(index,exists);
}

/*******************************/

struct tprecord *pull_free_record(void)
{
  if (g_poolnum == g_poolmax)
    do_forced_garbage_collection();
  
  return(&g_pool[g_poolnum++]);
}

/*****************************/

void record_add(size_t index,struct tprecord *rec)
{
  if (g_recnum == g_recmax)
    do_forced_garbage_collection();
  
  memmove(
        &g_rec[index + 1],
        &g_rec[index],
        (g_recnum - index + 1) * sizeof(struct tprecord *)
  );
  g_rec[index] = rec;
  g_recnum++;
}

tpr_search() is the binary search routine I wrote the other day, and as you can see, it returns the index to where the record is in the array, or to where it should be. pull_free_record() just returns the next free slot in the structure array, and if there are no slots available, it does a removes some older records according to some criteria. And record_add will add the record to the pointer array, also removing older records if there is no space left.

Some records are deleted. All remaining records move about. The pointer array is resorted. So between the time

exists = tpr_search(&rec,&index);

and

record_add(index,exists);

index may not be a valid index anymore!

Oops.

(Never mind the fact that one of the two calls to do_forced_garbage_collection() is redundant)

Simple enough to fix once I knew what was going on.

Another bug dealt with named pipes. Instead of directly piping the data from LaBrea to ltpstat (what I call the read-time LaBrea data processing program), I decided to go through a named pipe, which would allow me to start and stop either one independantly from the other.

Now, I'm testing my program, running cat sample > labrea.pipe in one window, and ltpstat --input labrea.pipe in another. It's working, until the data in sample runs out and cat closes its side of the named pipe.

Now, the code that reads in the data is in a library I wrote, and it just assumes when a read() returns 0, that it's the end of the file, and marks it as being closed. ltpstat ignores the “end of file” status, and keeps trying to read a now-closed file. We get into a busy loop and the system load shoots up. Also, if I now try to pump more data through the named pipe, ltpstat ignores the data.

Even when I modify the library code to not mark “end of file” when there's nothing to read does nothing, as from that point on, read() just returns nothing anyway and seems to be a “feature” of Linux (or Unix—I didn't have Advanced Programming in the Unix® Environment with me to look this up), so I restructure the main loop:

while(1)
{
  in = openinput();
  while(!StreamEOF(in))
  {
    process_labrea_output();
  }
  StreamFree(in);
}

That was all fine and good, until I threw signals into the mix.

I use signals to tell ltpstat (what I call the read-time LaBrea data processing program) to dump various information—SIGHUP to print the number of connections and unique IPs being tracked, SIGUSR1 to do a raw dump of all the data accumulated so far and SIGUSR2 to generate a more or less human readable dump.

But signals are basically interrupts. And operating system theory states that one process should never find another process with its pants down (so to speak—and I should warn you—the paper I linked to is way more technical than I've gotten here). Signals and system calls interact (that is, if a process is signaled while making a system call into the kernel) in one of two ways—the system call will simply fail, or it will be restarted automatically. And one can select which method to use.

If I elected to have the system call fail, and ltpstat would fail, either to open (a system call) the named pipe, or in reading (another system call) the named pipe after I signal the program.

If I elected to have the system call restarted, and the signal handlers I set up would never get called (due to the way I handle the signals).

I ended up reimplementing two routines from my library (which is used in more than just this program) for just this program. I select for the “system call fail” method, check to see if the system called failed due to a signal, and if so, check for the signals, and try again.

Again, this took a few hours to track down.

But now the program works, and I can finally get real time statistics from LaBrea.


Last minute update!

I just received a call from Spring—the mangets are in The Younger's stomach! (why this wasn't found out sooner, I don't know). So, because it's in his stomach, he's being moved yet again to another hospital, one that has the equipment that might get the magnets from his stomach.

I'll be heading there once I get word which hospital it is.


Some initial data from a real-time LaBrea data processing program

While I'm waiting a call back, some more on LaBrea.

Yesterday (from January 16 at 06:28:25 to January 17 08:54:50) LaBrea generated 1.1G of log data, and it took full five minutes to run grep 'Initial Connect' daemon.log.0 | wc -l (255,344 new tarpitting connections by the way).

LaBrea was also running at full speed, maxed out at 64Kbps bandwidth to keep all these connections tarpitted (the maximum I set LaBrea to use, by the way).

[NETWORK TARPIT bandwidth usage]

That first large dip in the graph (the one around 6:30 in the morning) is probably due to the system attempting to rotate a 1.1G log file. The second dip, at the right (around 3:00 pm) is when I restarted LaBrea so its logging information would go through ltpstat. After an hour of running:

Start: Tue Jan 17 14:55:59 2006 End: Tue Jan 17 15:55:59 2006 Running time: 1h
Pool-max: 1048576
Pool-num: 24322
Rec-max:  1048576
Rec-num:  24322
UIP-max:  1048576
UIP-num:  1282
Reported-bandwidth: 40 (Kb/sec)

And after two hours:

Start: Tue Jan 17 14:55:59 2006 End: Tue Jan 17 16:56:19 2006 Running time: 2h 20s
Pool-max: 1048576
Pool-num: 33326
Rec-max:  1048576
Rec-num:  33326
UIP-max:  1048576
UIP-num:  1632
Reported-bandwidth: 40 (Kb/sec)

And right this second:

Start: Tue Jan 17 14:55:59 2006 End: Tue Jan 17 18:37:19 2006 Running time: 3h 41m 20s
Pool-max: 1048576
Pool-num: 42931
Rec-max:  1048576
Rec-num:  42931
UIP-max:  1048576
UIP-num:  2148
Reported-bandwidth: 40 (Kb/sec)

Okay, pool-max and rec-max are the maximum sizes for the structure array and pointer array, and both should always be equal at all times (I'm displaying this number more for debugging purposes than anything else), while pool-num and rec-num (which should also be equal at all times) represent the current number of connectioned tarpitted. I also keep track of unique IPs, which just now is currently 2,148 (out of 1,048,576 that I can store). I also just found out that IP address 195.130.152.85 has 4,809 connections currently tarpitted (and in the few seconds it took to do that query, five more connections were tarpitted).

I'll be releasing this code in the next few days, when I can write up some documentation and slap on a license.


This just in …

Just now received a call from Springthe trip to the other hospital has been postponed until tomorrow morning.

That is all.

Wednesday, January 18, 2006

No news is good news, I suppose

The Younger is waiting to be transported to the next hospital in line. The magnets are still in his stomach waiting to be removed.

So, hurry up and wait …


LaBrea ad-naseum

Just because I was curious, I ran the Perl script that parses the LaBrea logs on the 1.1G logfile from the other day. I knew it would take at least four hours or so to run.

I then created a modifed version of ltpstat to parse this file (it's the output from syslogd, hense some slight parsing modifications were required) and ran it at the same time.

What I found interesting (during the actual run of both programs) is that my program had a larger virtual memory footprint over the Perl version (easily seven to eight times larger) but the resident set size (the amount of physical memory being used—the rest not physically allocated or shoved off into swap space) of my program was half that of the Perl script. In retrospect this was expected—Perl was growing the data as it was being generated whereas my program allocates the whole thing at once, but my program has less overhead in keeping track of said data.

And ltpstat is faster than the Perl script even if it isn't gathering the stats in real-time— 3 hours, 22 minutes and 24 seconds to run vs. 6 hours, 39 minutes 49 seconds—almost half the time. I didn't see how much memory the Perl script was using just prior to finishing, but I can't see how it would be less than ltpstat.

The instance of ltpstat I started yesterday is still running:

Start: Tue Jan 17 14:55:59 2006 End: Wed Jan 18 14:55:59 2006 Running time: 1d
Pool-max: 1048576
Pool-num: 388929
Rec-max:  1048576
Rec-num:  388929
UIP-max:  1048576
UIP-num:  20298
Reported-bandwidth: 64 (Kb/sec)

Looks like I may break a million connections sooner than I expected.

Thursday, January 19, 2006

This is the stay that never ends

Latest update on The Saga of the Younger: he's been moved to the next hospital in line, and there the doctors discovered that the magnets are stuck in an ulcer in his stomach, and the only way to get them out is surgery. We have no time frame for when said surgery will happen though.

Updates as I get them.

Friday, January 20, 2006

Update

The Younger is out of surgery. That is all I know at this time.

Update a few minutes later …

The magnets did get separated—one ended up in his stomach and the other one ended up in his intestines. They did attract each other and the attraction was enough to cause them to borrow through tissue.

They've been removed (and were quite corroded from what I understand) and the holes sewn up. He's in recovery for the forseeable future. So now it's just waiting around until he heals up.

Saturday, January 21, 2006

Quick game of ketchup

I have internet access for the evening, courtesy of having to come to work. Trying to catch up on the most essential emails and such, in between working cases.

I love you people. Thank you so so so much for the messages of concern, wishes, prayers, and other good vibes, as well as information on polar bear blubber and vitamin poisoning. Thanks also for offers of assistance. We've got things covered, but truly appreciate it.

Magnet news:

On the 19th the team at West Boca sent an endoscope down his gullet, under general anaesthesia. They found an ulcer with a shadowy something in the middle that was likely the magnets. That something in the middle couldn't be gotten out. Surgery required.

The surgery occurred yesterday, the 20th, and took longer than anticipated—it was about 2 hours. rhonan had it right—one magnet had gone down the small intestine, and the other had stayed in the stomach, and they attracted. The ensuing irritation and vomiting episode caused them to begin tunneling toward each other, scar tissue forming a tube. Surgeons had to disconnect the tube, remove the magnets, and fix the holes. They were thrilled at how fixable it was, though - no ancillary damage like necrosis or sepsis or any of that. It could have been far worse.

Afterward, straight into ICU and morphine. It's not fully effective against the pain, though. He got out of ICU today and is still convalescing, no food or liquid yet. The innards have to heal first.

My weekend is starting after tonight's shift, and I'll most likely be spending all of it at the hospital. I'll certainly be there after shift tonight. Will continue to post phone-to-email-to-LJ updates as necessary and able.

Spring Dew: A quick game of ketchup

Not much more to add to this (except I don't have a phone-to-email gateway to update this site).


Are you tired of network tarpits yet?

You would not believe how hard it was to write a binary search that returned the correct index for a missing record in an array.

Some notes on a binary search implementation

A week later, and I finally have it working.

One technique used to debug a program is to have another program that does the same thing, but implemented using a different method or language or both. And I did. I ran the Perl program I had over the 1.1G log file, then ran ltpstat over the same log file and got two different results.

Not good.

ltpstat returned 2% more connections than the Perl script. Getting a dump from the currently running version on the LaBrea system and cleaning the output showed a 2% difference again.

So I spent the past week trying to track down the problem. It was obvious that ltpstat was storing duplicate records, but why was a different matter. My testing sample of about 1,100 connections is apparently too small to completely test the program, so I had to test using the 1.1G log file which has approximately 230,000 connections.

To help debug this problem, I wrote a linear search and would call it as well as the binary search. If both agreed, then I would return the information, otherwise, I would log the discrepency, do the search again, then exit. The reason for doing the search a second time? So I could set a breakpoint there, and let the program run for a couple of hours until it triggered. Then I could step through both searches to see where the problem was.

Yup, each run took several hours to trigger the bug.

I ended up testing four different binary search routines (including the original one I thought worked, plus one I modified from The Standard C Library, plus two other versions I wrote) before sitting down and working through things on paper.

And I still missed corner cases.

But finally, I tested my final version it against the Perl script and only had 122 discrepencies out of some 230,000 records (or 5% of 5%—too small for me to worry about after spending a week on this).


I took a snapshot of the currently running version (which had been running for a bit over three days now), cleansed the output of duplicates, and the final tally was 416,230 connections from 12,911 unique IPs. Again, nothing surprising about the ports being attacked:

Top 10 ports captured by Labrea in the past 3 days
Port # Port description # connections
Port # Port description # connections
139 NetBIOS Session Service 160,799
135 Microsoft-RPC service 108,958
445 Microsoft-DS Service 67,506
80 Hypertext Transfer Protocol 23,921
4899 Remote Administration 9,225
22 Secure Shell Login 7,253
1433 Microsoft SQL Server 6,503
8080 Hypertext Transfer Protocol—typical alternative port 3,717
3128 Squid HTTP Proxy 3,329
1080 W32.Mydoom.F@mm worm 3,150

And again, the Microsoft specific ports account for 81% of the scans. I'll need to discuss with Smirk about blocking those ports in the core router. If nothing else, LaBrea is giving me an indication of which ports to block.

Sunday, January 22, 2006

For once this year, a post that has nothing to do with tarpits or hospitals, except for this self-referential title mentioning that this post has nothing to do with tarpits or hospitals.

It's weird. I have my email address sean@conman.org plastered all over my website here, and yet, I'm receiving a bazillion spams for a type of sexual aid at my private email address. But at my oh so public email address?

Nothing what so ever about this particular sexual aid.

How odd.

Monday, January 23, 2006

“Waaaaah waaaaah waaaaah”

I remember having this weird dream about ten years ago or so. In this dream, my boss (it wasn't you Smirk) walked up to me, opened his mouth and said “Waaaaah waaaaah waaaaah waaaaah waaaaah.”

“What?” I said.

“Waaaaah waaaaah waaaaah waaaaah,” said my boss. He then went around the office continuously saying “waaaaah waaaah waaaah,” even if he wasn't speaking to anyone in particular.

I do recall in my dream that a bunch of us were trying various methods to shut him up, since we all found his “waaaaah waaaah waaaaah” very annoying. After what seemed like hours, it dawned on me that this wasn't the normal behavior of our boss and that something else might be to blame. It was then I realized I was dreaming, and woke up. To my alarm clock, which was going “waaaah waaaaah waaaah waaaaah waaaaah” and had been for the past 40 minutes.

Yes, I'm a heavy sleeper.

I also found out (about the same number of years ago) that my alarm clock would simply give up after three hours of me hitting the snooze button (not only did I hit the snooze button for three hours, the alarm clock itself was on the other side of the room—yes, for three hours, every nine minutes, I would roll out of bed, take two steps across the room, hit the snooze button, two steps back and roll back into bed, without disturbing my sleep!)

I no longer use that alarm clock—oh, it still works, it's just that the hour button has broken off (personally, I would have expected the minute button to break off) so it's rather difficult to set. I've been using my cell phone as an alarm clock. No snooze mode, so I have to be semi-conscience to manually set the alarm, but the alarm itself only sounds for a minute, which may be too short a duration.

I only mention this to explain to Smirk was I was nearly three hours late to work today.

Tuesday, January 24, 2006

Update for those playing at home

The Younger started in on liquids today, and it looks like he'll be eating solid food starting tomorrow. That, and he's flirting with the nurses, so he's healing right up. I'm expecting he'll be in The Hospital for the next few days or so.


A thought process …

I have to wonder the thought process of a script kiddie that runs the SSH22 Scanner (which tries to log into servers via ssh using a series of precanned userids and passwords) as fast as it can. Doing so only brings attention to the fact that it's sucking up network bandwidth and loading down the box, gaining the attention of the sysadmin, thus negating the purpose of running such a program in the first place.

I also have to wonder at the thought process of a script kiddie that logs back into a box after loosing the connection and not bothering to see if anyone is logged in as root before starting the SSH22 Scanner back up.

Wednesday, January 25, 2006

So when does 2 not equal 2?

If someone was to drop a bomb on this building, it would wipe out 50 percent of the Lisp community. That would probably be a good thing. It would allow Lisp to start over.

That wasn't exactly what John said, but it was pretty close. Again, the main thing here was somebody with impeccable Lisp credentials saying that Lisp was far from perfect and in fact needed to do better than Common Lisp. The fact that Patrick, Henry, and John all argued essentially the same thing was a wake-up call, I think.

Finding Lisp: ILC 2005, Wednesday report (late)

Now, I have this love-hate relationship with Lisp. I love the idea of Lisp, and it is a cool language, but I hate the implementations of it (it doesn't play well with other languages), lack of syntax (which expresses itself in Lisp as a metric buttload of parenthesises), the nasty low level details one has to keep in mind (really! In Common Lisp, 2 (this particular instance of the number) is not necessarily equal to 2 (this other instance of the number)—I kid you not!) and the rather archaic way it still operates (CAR and CDR are remnents from the very first implementation where one took the “contents of the address register” for the current element in a list, and “contents of the decrement register” for the rest of the list—even though you now have FIRST and REST LAST (oh, it's called LAST even though it returns the rest of the list) REST (apparently, I had it right the first time, and LAST is used for something else in Lisp—sigh) nobody ever uses those).

Oh, and to get any real speed out of Lisp you have to forego using lists (which is what Lisp stands for—“LISt Processing”) and use more specific data structures (never mind the fact that Lisp is still taught as if it only has lists).

The “John” mentioned above is John McCarthy, inventor of Lisp, which is one of the two oldest programming langauges (the other being FORTRAN), and if he, of all people, doesn't have much positive to say about Lisp, then what chance does it have of gaining wide spread acceptance in the industry (Greenspun's Tenth Rule notwithstanding)?

Thursday, January 26, 2006

He's Out!

The Younger has left the hospital!

Thank God that's over.

And if The Younger ever eats another magnet again, I'll kill him! Sheesh!


(/= 2 2)

My recent post on Lisp generated some heat. First, from Zach:

From: Zach XXXXX <XXXXXXXXXXXXX>
To: Sean Conner <sean@conman.org>
Subject: (/= 2 2)
Date: Thu, 26 Jan 2006 10:56:38 -0500

I came across your Lisp post today, and I wanted to comment on a couple things.

FIRST and LAST are not analagous to CAR and CDR; LAST returns some part of the tail of a list (depending on its optional second argument). The list-oriented analogue of CDR is REST. (You had that, but crossed it out.)

As for 2 not necessarily being equal to 2, there are many equality predicates in Common Lisp. For example, comparing 2 and 2 with the EQL, EQUAL, EQUALP, and = functions will all return true (or there is a bug in the implementation). It is only the object “same, identical” predicate EQ that will sometimes fail on two apparently identical numbers, and even then it's only likely when the number enters the bignum range. Fortunately, most documentation and tutorials give the good advice to use EQL (not EQ) as a default “sameness” test. A novice would have to take a fairly peculiar learning path to get burned by using EQ on numeric values.

We had a bit of an exchange and I ended up writing:

From: Sean Conner <sean@conman.org>
To: Zach Beane <XXXXXXXXXXXXX>
Subject: Re: (/= 2 2)
Date: Thu, 26 Jan 2006 15:18:07 -0500 (EST)

Hmmm.

Odd thought just cross my mind. It may not be fully applicable to Lisp and it's half formed, but I'll try to get it out anyway.

Lisp is a dynamically typed language, and a lot of programmers like dynamic typing since it frees them from the burden of having to declare the type of a variable [1] (often times the excuse is “I'm prototyping—I don't know what types I'll end up using.” [2]). Having to declare the type of a variable is seen as pointless pedantry and something the compiler can keep track of [3].

I feel the same way about the equality functions in Lisp—pointless pedantry and something the compiler should keep track of.

  1. Yes, in Lisp, values have types, not variables.
  2. A weak excuse in my opinion. Strikes me as being muddle headed about what the program is supposed to do. I should mention that I actually liked Ada, and tend to prefer strict type checking, if only to make sure I don't make bone headed mistakes.
  3. Fair enough argument, but I'd prefer to state my intent to the compiler anyway. The more information it has, the better off it is.

Just how much of a pointless pedantry is Lisp's equality functions? Well, there are five defined in Common Lisp (quoted from Paul Graham's ANSI Common Lisp):

(eq object1 object2)
Returns true iff object1 and object2 are identical. [It doesn't say what it means by “identical” but given that (eq 2 2) can be false in a conforming implementation of Common Lisp, I'm guessing “identical” means “same address”]
(eql object1 object2)
Returns true iff object1 and object2 are eq, or the same character, or numbers that would look the same when printed. [So even here, (eql 2 2.0) is still false, at least, according to Rodney A. Brooks Programming in Common Lisp.]
(equal object1 object2)
Returns true iff object1 and object2 are eql; or are conses [one element of a list] whose cars [first element] and cdrs [rest of the list] are equal; or are strings or bit-vectors of the same length (observing fill pointers) whose elements are eql; or are pathnames whose components are equivalent. May not terminate for circular arguments. [So, I guess this means that (equal 2 2.0) may be false as well]
(equalp object1 object2)
Returns true iff object1 and object2 are equal, char-equal[um … I guess there are more than just the five equality functions then], or =; or are conses whose cars and cdrs are equalp; or are arrays with the same dimentions whose active elements are equalp; or are structures of the same type whose elements are equalp; or are hash tables with the same test function and number of entries whose keys (as determined by the test function) are all associated with equalp values. Reasonable to assume that it may not terminate for circular arguments. [So, if you want to compare arrays, you can't use equal, and still(equalq 2 2.0) is false.]
(= n1 &rest ns)
Returns true iff the difference between each pair of arguments is zero. [Finally! We have an equality test where (= 2 2.0)may be true!]

Why so many? I don't even want to hazzard a guess (perhaps Lisp programmers like micromanaging equality whereas C programmers like micromanaging variable type information—oh darn, I hazzared a guess).

My friend Andrew wrote in:

From: Andrew XXXXXXX <XXXXXXXXXXXXXXXXXXXX>
To: Sean Conner <sean@conman.org>
Subject: An apology for Lisp
Date: Thu, 26 Jan 2006 14:58:44 -0500 (EST)

If you still think Lisp is wrong, then consider this: is 2.0 equal to 2? Why or why not? I think reasonable people could disagree, and the designers of Common Lisp did too; that's why there are multiple equality predicates with different semantics.

As for avoiding lists to get “real speed”—you say that like nobody uses O(N) complexity data structures to do real work in C! Lisp lists are what they are; for many applications they're fast enough. Otherwise, Common Lisp has arrays, hash tables, and more.

Okay, but if there are languages out there that can do type inferences on data, then certainly languages can also do equality inferences with data as well. Or perhaps I've been corrupted with Perl and it's very lax approach to equality …

And to Lisp's other data structures? Most introductions to Lisp I'm familiar with start with lists, and rarely, if ever, mention any past that. For instance, Rodney Brooks' Programming in Common Lisp, a 12 chapter book and arrays are first mentioned in Chapter 12! (“Other Features of Common Lisp”). And even though Paul Graham mentions arrays, trees and hash tables in Chapter 4 of his ANSI Common Lisp, the chapter title doesn't do them any service in my opinion (“Specialized Data Structures”—I really didn't know arrays were a specialized data strcture). Also, the way lists are described ad-naseum in Lisp books, which special pains to point out the structure of the “cons cells” that it seems like Lisp is still stuck with a 60s implementation.


Oh, it's still useful, just not as useful as I expected

By using ltpstat I've been able to see that the LaBrea tarpit isn't quite as effective as I first thought. Yes, it does slow down scans, but not quite as much as one thinks. I'm guessing that scanning software now includes the “timeout” concept—if a connection takes too long, drop the connection and move on.

A few days ago I added a feature to ltpstat to remove entries that have not seen any activity for over an hour (default setting). After running the tarpit for over a day, I see the following stats:

Jan 27 01:57:08 ltp ltp-report: Start: Wed Jan 25 17:27:55 2006 End: Fri Jan 27 01:57:08 2006 Running time:  1d 8h 29m 13s
Jan 27 01:57:08 ltp ltp-report: Pool-max: 1048576
Jan 27 01:57:08 ltp ltp-report: Pool-num: 107287
Jan 27 01:57:08 ltp ltp-report: Rec-max:  1048576
Jan 27 01:57:08 ltp ltp-report: Rec-num:  107287
Jan 27 01:57:08 ltp ltp-report: UIP-max:  1048576
Jan 27 01:57:08 ltp ltp-report: UIP-num:  2558
Jan 27 01:57:08 ltp ltp-report: Reported-bandwidth: 32 (Kb/sec)

Okay, I've “captured” 107,287 connections. But how many of those are still active?

Jan 27 01:58:32 ltp ltp-report: Removing records with no activity for the past  1h
Jan 27 01:58:32 ltp ltp-report: ... keeping 11180 records with activity since Fri Jan 27 00:58:31 2006

Well then. Over 96,000 connections were no longer “active” and of the 2,558 machines doing the scanning, some 2,200 had moved on.

So it looks like the LaBrea tar pit is really only useful to see what's being attacked, and which machines on the Internet are really doing the attacking (so far, 24.73.129.197 seems to be quite tenacious in scanning).

And the ports being scanned? Again, it's the Microsoft specific ports as usual. No use making a chart this time.

Friday, January 27, 2006

Rabbit Hole Day

This article is intended to present a set of basic rules for writers to follow when creating “Conspiracy” or “Fringe Theory” texts. I hope that no- one is tempted to use them for “real world” applications—except for spotting the faults in existing material. However, real “fringe theory” buffs don't need me to teach them how to think. (But I've done so anyway, using my personal orbital mind control laser.)

THE TRUTH—OBVIOUSLY

Today is The Second Annual LiveJournal Rabbit Hole Day—a day where LiveJournal entries were supposed to be fun, wierd, unexpected, different, in honor of Charles Lutwidge Dodgson's 174th birthday (although he's not around to enjoy it). I thought it sounded like a neat idea, so I thought I'd try it here, even though this isn't LiveJournal.

Only you can see that I didn't quite get a round toit (those seem to be hard to find lately) and that's due to not having an idea of what to write about until too late, and then running out of time.

An idea I was trying to come up dealt with one Wolfgang Amadeus Mozart, seeing how it's his 250th birthday (and he too, is not around to enjoy it), but I had no good ideas. Nothing jelled until I found out that it was also the birthday of Captain Edward John Smith, R.N.R. (who too, isn't around to enjoy the celebrations, mainly because he was obligated to go down with his ship). Once I saw that, then it hit me—a conspiracy theory tying all three together.

I didn't get a chance to work on this at work, so I thought I might be able to at the weekly D&D game (since I rarely pay attention to the game anyway, and Bob, the DM is fine with that) but this week, of all weeks, his computer took a dive and it took several hours to help him debug the issue (his copy of Panda Network Antivirus updated itself and the update hosed his computer hard).

So there went that idea.

So no Rabbit Hole Day for me this year.

Maybe next year.

Saturday, January 28, 2006

Tunnelling through the Internet

Some of the networking we're doing at The Office is beginning to scare me, and not because it's complex, but because … well … it's complex and it seems like a kludge.

Basically, we're providing a backup Internet connection for one of our customers via DSL; they have an existing Internet connection with another provider. We are also giving them a block of IP addresses to use even when their primary Internet connection is working! So we need to route a portion of our network through some other provider to our customer.

And yes, it can be done, but the way it's being done leaves a … bad taste in my mouth. Basically, traffic for the customer's network arrives in our network, hits our router, the router will then encapsulate that network traffic within another IP connection back out out network and through the customer's existing provider to a router (which we set up) at the customer's office.

Yes, we're tunnelling IP packets within IP packets.

There's nothing inherently wrong with that, but it does have all sorts of fun implications for the customer's network traffic (for instance, they also have a wireless router at their office. They could only bring up Google. Any other site would fail to load, or only load a partial page. Turns out that since we're tunnelling IP packets within IP packets, the maximum packet size we can transmit is a bit smaller than normal, only the wireless router couldn't figure this out—I had to manually set the packet size to be about 3% smaller than normal on their wireless router. Why could they get to Google? Probably because Google configured their routers to send small packets).

(Oh, another for instance: it's almost impossible to traceroute to the customer's network, so now it's harder to trackdown networking problems. Oh, and another one I just remember: it adds an additional 11 hops that packets have to travel to reach their final destination.)

Sunday, January 29, 2006

Might as well get free phone service if you're being tapped …

“Here's one more tidbit on wire-taps: They get you free phone service! The feds tapped the phone of the Sisters of Mercy in Washington D.C. because of some anti-war stance or something they took in the 1980s. The good sisters noticed some kind of clicking on the phone at times, and finally decided that someone must have tapped into their phone. Their solution: Don't pay the bill so the phone company will have to shut off the phone. The phone never went dead, and they quit sending them bills! The Feds wouldn't let Ma Bell shut them down, and probably began paying the bills. The sisters talked long and free with their friends across the country!”

I, Cringley—The Falafel Connection

Well … that's one way of getting free phone service.

The article does present a different view of the recent NSA wire taps—that they're less listening in on all the calls and more a “connect-the-dots” by looking at who called who. Defintely an interesting read.


Oops.

I must apologize to all that read my site via RSS, especially to those that read the LiveJournal feed (for essentially spamming your frends list) last night.

I upgraded mod_blog last night—a huge update. Months ago, I did a near complete rewrite, but was relunctant to put it into production despite testing and using the software on a few other blogs (that aren't mine—they're someone elses). But a few days ago I got an idea for a new feature for my blog, and of course I'm going to want to work with the latest codebase of mod_blog, so …

Only … well … I forgot I made some changes to the RSS templates processing in the program, but forgot to upgrade the actual RSS templates used by my blog. There was also a bug in generating the permanent links (I got a bit overzealous with the formatting), and those two issues caused LiveJournal to have a fit with my feed for a few hours.

It's been ironed out (well, there is still an issue where I have to manually nudge the program whenever I make a new entry) and the RSS feed is working properly now.

Again, I'm sorry.

Monday, January 30, 2006

Calling out the the Lazy Web

Since jwz (and his site is definitely not safe for work often asks the LazyWeb for advice and while I don't think any of my readers may be able to answer this, I might as well give it a shot (before I end up calling tech support and being put on hold indefintely).

I've got a Cisco 2611 with the latest software. It needs to be connected to our office via DSL (on the interface ATM0/0) to our office (which is already set up for DSL, but to require the other side to authenticate). What magical Cisco incantations do I need to get this to work? (and if know how to integrate it with tunnelling, that would be great)

Thanks.

Tuesday, January 31, 2006

I wonder if Bush will wear a gorilla suit for the State of the Union Address …

[Al Qeada is trying to take away your freedom to gorilla-suit! SAVE NATIONAL GORILLA SUIT DAY!]

MacGyver, with the obligatory paper clip

I fixed a communication problem with some scissors, a bit of wire and a paper clip.

No, really.

I got two pieces of equipment communicating by using stuff I was able to find around the office (because that's all I had to work with).

Yesterday, Smirk drops a BayTech DS9 with one DS72 network interface and eight DS30 modules (which control 12 electrical outlets). I was told to test it and configure the device.

So I plug the device into the office network, started up the DHCP server, and powered the DS9. Sure enough, I see the DHCP request come through, it gets an IP address and I try connecting to it.

Nothing.

I scan the device with nmap and yes, it is studiously ignoring all attempts to connect to port TCP port 23 (standard telnet) and UDP port 161 (SNMP). Since it's studiously ignoring the network, my only recourse is to get at it through the serial port.

It's an RJ-45 connector on the DS9, and I have a DE-9 (commonly referred to as DB-9 but DE-9 is the proper designation for the connector) on my workstation. I just so happen to have an RJ-45 to DE-9 adaptor (for the Cisco routers). I may or may not need the NULL modem adaptor, but that's easy enough to figure out.

Only it doesn't work. Straight through, or with the NULL modem adaptor.

I have to reach for the heavy guns. I hunker down and read the manual. It's a good manual, and it gives the exact layout for the cabling between the RJ-45 and the DE-9 that I need to communicate with the DS9. So I go hunting for a continuity tester to see if the Cisco-specific adaptor I have is wired such that I can use it.

Only we don't have a continuity tester. A $5,000 network cable analyzer sure. But something to test the continuity of a single wire? Nada. Not even Dan the Network Engineer has one.

So I carefully break open the Cisco-specific RJ-45 to DE-9 adaptor and lo—it's not wired according to the DS72 manual, so it's useless. So are the other RJ-45 to DE-9 adaptors we have lying around.

So I have to make one.

Only we don't have any spare DE-9 connectors (male or female) lying around, but plenty of RJ-45 connectors. Hmmm …

I grab about a foot length of network cable, crimp an RJ-45 connector on one end, and (carefully) use scisors (since we lacked actual wire strippers) to strip the insulation off the wires at the other end. I then carefully wrapped the exposed wire around a paper clip to make a small coil, and then slipped that coil around the pins of a male-to-male DE-9 adaptor, and plugged that into the serial cable at the back of my workstation. The RJ-45 end of the jury-rigged cable went into the DS9.

The fragile kludge made from scisors, wires and a paper clip (oh, and a crimping tool) worked beautifully and I was able to configure the DS9 (and I kept cursing myself for not having my camera around to document such an engineering feat).

I did find out one thing about the device, and I don't think it's mentioned in the manual (although I was more concerned about the serial connection than anything else) but the device simply drops packets unless they come from a configured SNMP trap host. Good thing to know.


Oops, Part II.

Again, I must apologize for spamming the LiveJournal feed of this blog. I swear, I have the bugs under control this time! I even found why I had to manually nudge the program whenever I made a new entry (because it thought said entry was still in the future, albeit just a second or two in the future, and the software doesn't display entries before its time).

Again, I'm sorry.

Wednesday, February 01, 2006

“On a dark dessert highway, Cool Whip in my hair … ”

My fave, posted to the Usenet by Thomas Dzubin of Vancouver, British Columbia: “There was this fireworks factory just three blocks from the Hotel California … and it blew up! Big tragedy. One of the workers was named Wurn Snell and he was from the town of Colitas in Greece. One of the workers who escaped the explosion talked to another guy … I think it was probably Don Henley … and Don asked what the guy saw. The worker said, ‘Wurn Snell of Colitas … rising up through the air.’”

The Straight Dope: In the song “Hotel California,” what does “colitas” mean?

And here, I thought the song “Hotel California” was about … oh wait … I already covered that.


AdSenseless

I've been doing the Google AdSense thing now for ten months, even since they requested to be here, and in those ten months, I don't think I've made enough to get a Venti® White Chocolate Mocha Frappuccino® Blended Coffee from Starbucks (not that I like coffee mind you).

Now, perhaps that's because the ads are (or were) “below the fold” and therefore not seen. Or perhaps it's because most people read this site via the RSS feed so it matters not where the ads are.

But I'm guessing that by moving the ads up (as you can see), I might see an increase in ad revenue, but I'm not going to hold my breath on this. Also, by moving the ads up, my Obligatory AdSense Snarks are more visible and as far as I can tell, making snarky remarks about AdSense is okay (but telling people to click on the ads is not okay).

I'm also planning on making a change in that space in the next few days as I finish (okay okay, start) a feature that will hopefully have a much better return on investment than this silly Google AdSense.


The Color of Television

The sky above the port was the color of television, tuned to a dead channel.

–William Gibson, Neuromancer (1984)

I saw that it made the Top 100 Best First Lines from Novels (link via Jason Kottke) and it struck me that today's kids will get a vastly different feel from that opening line than I did when reading the book as a kid.

Why?

Because the color of television, tuned to a dead channel, has changed in the past twenty-two years. Twenty-two years, the color of television, tuned to a dead channel was:

The sky above the port was the color of television, tuned to a dead channel.

–William Gibson, Neuromancer (1984)

And the color of television, tuned to a dead channel, these days:

The sky above the port was the color of television, tuned to a dead channel.

–William Gibson, Neuromancer (1984)

I don't think Mr. Gibson envisioned a bright blue sky for the opening of his book.

Thursday, February 02, 2006

Brick walls

Well, I was going to enable the new feature but three things got in the way:

  1. Last month there was a security audit run against a server belonging to one of our customers. Over the past month I harded up the DNS servers and the router and the only thing left was to harden the server itself. And at this point, it was easier to just set up a new server.

    So this past week that's what we've been doing. Tuesday the machine was put together. Yesterday the base operating system was installed. And since I just know we'll be doing the “Update Dance” once this thing gets certified (despite of what Smirk thinks—any bug in any of the services will require an automatic update immediately) I decided to install the critical services (Apache, PHP, OpenSSH) from source just to avoid having to rely upon the vendor. That way, I can just download the latest tarball, ./configure ; make ; make install (which I find easier) than the whole “package manager” crap (“Oooh, sorry. You forgot to upgrade your package manager for a whole week and we've moved the repository—sorry! Oh, and we're no longer supporting that version of the distribution anyway so you're doubly screwed! Sorry.”)

    It was going along fine until PHP and Ravencore (yes, a control panel). PHP because the braindead make install installed the PHP modules in the oh-so-intuitive location of /usr/lib/20020429/ instead of something semi-sane like /usr/local/lib/php-thisweeksversion/modules/, and Ravencore because they only release code in RPM and because it breaks if you change the PHP configuration file after Ravencore itself been installed (because you just realized that PHP installed the PHP modules in /usr/lib/20020429/ but it never complained about them being missing and the default PHP configuration file doesn't bother to even include the PHP modules).

    That's all I'm going to say about that!

  2. I wanted to write to Google explaining my concerns over thier AdSense program and how their ad selection can't deal with my general purpose (read: “horribly unfocused”) blog and how I'm thinking of no longer displaying ads.

    I don't want to drop out of the program entirely, in the hopes they change how it works just slightly. The feature I added (and more on that in a bit) won't be of use with AdSense, but it will be with some other advertising programs (and frankly, I'm surprised this feature hasn't been implemented before—perhaps it has and I haven't come across it, but I suspect that isn't the case).

    I wanted to write to Google first, before revealing the feature, and in the process of writing the email, I came across—

  3. A show stopping bug!

    Sigh.

    And I haven't figured out what triggers it. Oh, it's defintely related to the new feature, and it causes core dumps (a seriously hard crash) and/or infinite loops which causes the server load to increase. Good news is I found a rash of entries that trigger the bug; I just haven't had a chance to figure out what exactly is going on.

So it may be another day or so before I can go ahead and use this feature.

Friday, February 03, 2006

Mysterious network connectivity issues at a D&D game.

Very bizarre. I'm at the weekly D&D game, and as usual we all have our laptops out running kLoOge. Bob, the DM, is on his computer, connected to the router via a network cable; the rest of us (myself, Bibo and Mike) are connected via the wireless network. Every 901 seconds (fifteen minutes, one second) I would get disconnected from the network for 55 seconds. Like clockwork.

Bibo and Mike never got disconnected.

Just me.

At first, I thought it might either be kLoOge or Java 1.5 (I had to upgrade Java last week because the latest version of kLoOge requires Java 1.5, and Bob always makes us upgrade kLoOge), so towards the end of the game I didn't even bother running kLoOge (or Java 1.5).

I still got disconnected every 901 seconds. For 55 seconds.

Go figure.

Saturday, February 04, 2006

Targeting Advertising

The feature is live (and if you are reading this entry via the RSS feed, you may want to click over to the site to see what I'm talking about).

Okay, sure, it's just a block of advertisements from Amazon and you may ask “You had bugs just adding some HTML to your templates?” But you see, it wasn't just some HTML to my templates that I added. Nope, there's a bit more going on behind the scenes than just that. And to describe what that is, I have to digress a bit.

When I first wrote mod_blog, I was on a big kick to add metainformation to every page on my site. And part of that metainformation included keywords embedded in the <META> tags. So mod_blog supported, pretty much from day one, a list of keywords for each entry. That was five or six years ago and while I've kept up the process of adding keywords (or “tags” as the concept is now called) since the start, I haven't really done much with the information.

The intent originally was to have the ability to list entries based on a tag—something like http://boston.conman.org/keyword/programming but you can see I never got around to doing that. I also discovered, over the years, that I had way more tags than actual entries.

One of the problems I see with multi-faceted classification is the proliferation of classifications. My own blogging software allows for the classification of each entry; in fact, it allows multiple classifications for each entry (and although every entry of mine has such classifications, there isn't support yet for using the data for anything).

Out of 1,514 current entries (nearly four years worth) I have created 2,671 distinct classifications—1.76 catagories per entry). Part of that is unintentional duplication (five different typings of “Cue Cat” for example); silly classifications are another reason (“dead zombie languages rising from the dead” anyone?). It's what you get when you allow free form classifications.

I suppose you could go through and automatically pull out relevent words but there is an art to indexing; “Dave Weiner” should not only be treated as one word for indexing, but it should instead be “Dave Winer” (typos and mispellings are another problem).

myself in a comment on Wikis Aren't Enough

Be that as it may, time went on, I kept up with adding tags for each entry, and I still hadn't had a use for them, until I came across this web page about a week or so ago:

Yes, indeed, amongst Howard Tayler's readers there are a lot of computer geeks. I know I am not a typical web user, but I am a pretty typical web developer. And I have zero desire to “Boost XML app performance.” I also have all the “ODBC drivers” that I need.

Many of you, my readers, are bloggers or have regular web sites with AdSense ads. Look at them. How many you'd say are “inefficient, dishonest and a total waste of people's … precious time”?

I say—about 99.5%. And clickthrough ratios are pretty horrible. People try to tweak them by playing around with ad types, look and feel, positioning and excluding advertisers, but it's all rather ineffective.

In short, I feel that even though Google's ads are a step in the right direction, AdSense sucks, especially for a blog with a smallish audience, such as mine. The useless, stupid ads that clog AdSense are a waste, even though they might generate a few “pity clicks.” Only half of my ad revenue for the site came from AdSense last year. The rest came from my experiment that I think will be of great interest to everyone.

I believe that my 1000 readers are a lot like myself. And what do I spend a huge amount of money on every year? Books, movies, cds and gadgets. Also I purchase some rather esoteric items on eBay too, but the majority of my spending happens squarely at Amazon.com. My wishlist there is humongous, and in fact, I spent my advertising revenue there.

Luckily, Amazon has a pretty generous associate program. You can link to any of the products they sell and get a cut of the sale price, if the sale happens as a result of your clickthrough. In fact, you get a cut of the entire shopping cart amount (I am not sure, this could be only the items that were added after the click). In any case, it's decent money, and most importantly, a great selection of new and even used items to sell.

New Billboard Day Effect : How to Advertise More Effectively on Your Blog

I already belong to the Amazon Associates Program. And it's already netted me $200 for a few hours worth of work (I was given that site and the previous owner suggested the Amazon thing—glad I did). So why not?

And in playing around with the Amazon ad layout, I discovered that one can select the catagories one wishes to display ads for.

Hmmm …

Every entry I've written has tags associated with them.

I can choose which catagory Amazon will display ads for.

Hmmm …

Then problem then came one of implementation. And a few hours of thought on that produced the simplist solution: for each entry being displayed, collect all the tags and pick one at random. Feed that tag to Amazon. I do not weed out duplicate tags—if say, all the entries being display (say, the front page here) all have the tag “programming” (among other tags) then the catagory “programming” has a higher chance of being passed to Amazon.

In a way, I'm targeting the ads myself, instead of relying upon the advertiser (and Google, I'm looking at you).

Sure, there'll be some stuff Amazon can't deal with properly (say, “dead zombie languages rising from the dead”) but overall, the targeting of ads from Amazon will be much better than from Google AdSense.

Google AdSense™ Online Standard Terms and Conditions (emphasis added)

But I'm keeping the ads from AdSense, until I'm told otherwise. I'm not sure how to interpret the Terms and Conditions about this, given that I'm the one doing the targeting, not Amazon, and that back in May when I was initially talking with Google, I was told:

From:XXXX XXXXX” <XXXXXX@google.com>
To: “Sean Conner” <sean@conman.org>
Subject: RE: Google partnership
Date: Sun, 13 Mar 2005 16:44:59 -0500

Hi Sean,

Other affiliate programs are fine, all we ask is that on any given page, we are the only ‘text based’ ads running.

How does you schedule look tomorrow? I can be reached at the below number at your convenience.

Best regards,

XXXX

And the ads from Amazon aren't pure text—they include graphics as well. I've written Google to solicit their reaction to this, and to suggest they allow hints as to the type of advertising people want—like Amazon does.

Sunday, February 05, 2006

Food Porn

I had come to Nitke's studio in midtown Manhattan, near the United Nations, to watch food television with her, and to compare the histories of sex porn and gastroporn. Nitke, fifty-four, dressed in black from T-shirt to Ferragamos, had set up a card table between the foot of her bed and a bookshelf, and ordered Mexican takeout. As we ate lunch she told me about her pending contract with HarperCollins for American Ecstasy, a coffee-table book of her porn-set stills, and I began to examine her library, which included copies of Leathersex, The Correct Sadist, and It's not About the Whip. “I know most of the authors,” she said. “It's a small world.”

For the past several weeks, Nitke had been running porn films side by side with Food Network shows, studying the parallels. She had also been analyzing the in-house ads, like a recent one for the network's “Chocolate Obsession Weekend,” which promised to “tantalize your tastebuds.” In this spot a gorgeous model pushes a chocolate strawberry past parted lips as she luxuriates in a bubblebath. The suds shot dissolves into Food network superstar Emeril Lagasse, who shakes his “Essence”—a trademarked blend of salt, paprika, black pepper, granulated garlic, and onion powder—into a pan of frothing pink goo. The camera moves into the frying pan and stays there. There's something very visceral about watching the food,” said Nitke. “It's very tissue-y. It's hard not to think of flesh when you're looking at these close-ups.”

Via The Old New Thing, Debbie Does Salad: The Food Network at the Frontiers of Pornography

I've joked that The Food Network is “food porn” (which sounds better than “gastroporn” but that's me) but I never quite realized it was true! (you can also read a transcript of an interview with the author of that piece, which goes into some more depth (pun unintended) on this subject).

Monday, February 06, 2006

An open letter to people who have email forwarded to AOL from their websites

Error 554 HVU:B1 from AOL

Don't be terribly surprised if email for website that is normally forwarded to AOL stops showing up. Especially if you complain about spam. Because spam can come not only directly to your AOL account, but indirectly, through your website's email server. And AOL, responding to your complaint, will block all the servers that were responsible for handing the spam, including your website's email server.

And don't be terribly surprised if your webhosting company can't remedy the situation immediately. Think the wait time for calling technical support at your webhosting company is long? This is AOL—they handle billions of email daily. And probably receive millions of complaints daily.

So if you use AOL, and have email from your website forwarded, before reporting that spam, please think about where it might have come from. You may end up without email at all!

Tuesday, February 07, 2006

Like sand through the hourglass, these are the timesinks of our lives

Ahhhh! Make me stop! Make me stop! It's too engrossing! And I blame Jason Kottke! Ahhhhh!

Wednesday, February 08, 2006

A readable Garfield

While I don't really care for Garfield all that much, I do hold the cartoon in a special place since Jim Davis was the first (and so far, only) cartoonist I met (at a time when I wanted to be a cartoonist). The reason I don't care about Garfield any more is that … well … it's a safe, predictable cartoon with no edge.

Unless you remove Garfield's speech! (And boy, does that improve the strip)

It then, oddly enough, becomes a much better strip—almost cutting edge even.

Take this Sunday's strip, and remove the dialog:

[Garfield drawing][Garfield drawing][Garfield drawing][Garfield drawing][Garfield drawing][Garfield showing off an artistic Odie]

Or even this one from last year:

[Bordom sets in][Jon: Yaahhh!!! I can't stand the boredom!][Garfield alone, waving at Jon who's not in the frame]

Brilliant stuff! Or at least not as inane.

You paying attention Mr. Davis?

Thursday, February 09, 2006

Debugging other people's code

I understand why Smirk wants this, I thought to myself, but I still don't like them.

I was neck deep in PHP and shell scripts, trying to figure out what the heck Ravencore (a control panel—sigh) was doing when configuring the IMAP and POP servers. You see, the IMAP and POP servers weren't authenticating the users—or rather, they were, but for some reason were not authenticating against the passwords set for the users.

It took a good half hour or so to track the problem down to a shell script that regenerated the password file for the IMAP and POP servers. The script generated the following from MySQL:

4:testuser:example.net:true::guessme

Six fields, separated by colons—and if you look closely, you'll notice that one of the fields is empty. Keep that in mind, it's an important point. Then it was doing the following:

# separate the string into a temp variable so we don't
# have to make several calls to to the sed command

    tmp=$(echo $i | sed 's/:/ /g')

    mid=$(echo $tmp | awk '{print $1}')
    mail_name=$(echo $tmp | awk '{print $2}')
    domain_name=$(echo $tmp | awk '{print $3}')
    mailbox=$(echo $tmp | awk '{print $4}')
    spam_folder=$(echo $tmp | awk '{print $5}')
    mail_pass=$(echo $tmp | awk '{print $6}')

    email_addr="$mail_name@$domain_name"

The problem?

The first line, the one that calls sed to remove the colons. It transforms the line from MySQL to:

4 testuser example.net true guessme

So there's only five fields instead of six! So the password was being set to nothing (there is no spoon sixth field).

The fix was simple:

        mid=$(echo $i | cut -d: -f1)
        mail_name=$(echo $i | cut -d: -f2)
        domain_name=$(echo $i | cut -d: -f3)
        mailbox=$(echo $i | cut -d: -f4)
        spam_folder=$(echo $i | cut -d: -f5)
        mail_pass=$(echo $i | cut -d: -f6)

Have I mentioned that I hate control panels?

Friday, February 10, 2006

An improved Cathy?

It seems that the wordless Garfield meme is getting attention across, and from there, I learned of a similar attempt at improving Cathy. The result is … rather Zen … in its approach.

Saturday, February 11, 2006

That China thang

Executives from Google Inc. and other Internet companies head to Capitol Hill next week, where they will become feature players in an awkward debate: Are U.S. companies giving in to China too easily?

Last month, Google announced an agreement with the Chinese government to censor search results from its Chinese site. It was the latest Internet company to accede to the Chinese government's censorship restrictions, following Cisco Systems Inc., Microsoft Corp. and Yahoo Inc.

The hearing will likely produce more embarrassing publicity for the companies, and it may drive legislative momentum among lawmakers concerned about China's influence on the U.S. economy. Congressional aides are expecting a standing-room-only crowd, and the reception from politicians may be chilly.

Via InstaPundit, Internet Censorship

My thoughts on the whole Google/China thing: as a public company they have to go into China, least they face lawsuits from shareholders for failing in the legally mandated fudiciary oblication to increase shareholder value by their failure to enter one of (if not the) fastest growing economies in the world. If they were still a public company, no problem, they could continue to do No Evil™ by ignoring the Chinese market.

But given they're a public company, they have the legal obligation to help the Chinese in order to increase their bottom line. And from what I understand, they took their time in entering the market (I'm sure that if they had an excuse not to go into China, they wouldn't have).

Remember, Google is a public company, and to a public company, that which is not outright illegal, must be done, all in the name of the dollar.


Crickets

Oh, and speaking of Google, I've yet to hear back from them about my concerns over AdSense.

Sunday, February 12, 2006

Oh, was that this month?

“What happened to the flyer I used to get in the mail?”

Our show runs as a non profit and if it wasn't for our extensive volunteer staff, we could never afford to run a show this size. All of the funds we generate from our show go right back into show operations. The great majority of our attendees have internet access and it just makes sense to take advantage of this resource.

Miami Tropical Hamboree

Oh, so that's why I didn't get a notification of the Miami HamFest this year. I totally forgot about that (that is, until I heard mention of the Orlando HamFest on a mailing list I belong to). Well, not like it's been any good the past few years, so I doubt I missed much.

Ah well.

Monday, February 13, 2006

'Tis the perfect weather to stay snuggled deep under the thick blankets of the bed, keeping the coldness at bay and wondering just what all this fuss about “work” is all about as you slowly doze back into Slumberland …

I think this cold weather is getting to me—I'm oh so very tired; just want to stay in the warmmmmm beddddd adn sleeeeeeeeeeppppppzzzzzzzzzzzzzzzzz

Tuesday, February 14, 2006

Don't blame me if today is rotten

[Jeffrey: “Man, how are we gonna destroy valentine's day?  It seems like an awfully hard thing to do” Weedmaster-P: “Maybe you could issue one of them fatwas”][Jeffrey: “You stupid ass-balls!  You gotta be a Mormon to issue a Fatwa!” Weedmaster-P: “I'm gonna rip off your tongue and use it instead of toilet paper”[Cupid: “Stop fighting!  Valentine's Day is about LOVE!”][Jeffrey and Weedmaster-P look at each other][Jeffrey and Weedmaster-P take aim][SCENE MISSING]

Blame Jeffrey Rowland (and hit his site—I don't want him or Weedmaster-P mad at me for … um … appropriating his artwork).

Wednesday, February 15, 2006

Bugs in Apache, Part II

Between restoring MySQL databases and dumping MySQL databases I finally tracked down an Apache bug from seven months ago (as it relates to mod_blog). At the time, I was testing with Apache 2.0.54, but shortly thereafter Apache 2.0.55 was released and thinking that it might have been addressed, I waited.

Okay, perhaps I waited a bit too long, but hey.

The problem still existed under Apache 2.0.55, and upon reporting it to the Apache Mailing List; a response came back—it might be similar to existing bug first reported on September 4th, 2003!

From: Joshua Slive <XXXXXXXXXXXXXXX>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 11:48:24 -0500

Sounds like: http://issues.apache.org/bugzilla/show_bug.cgi?id=22898

In general, there are not many people insterested in nph scripts anymore, so I'd guess that little testing or debugging is done on them. They aren't useful for very much.

Ouch.

Then this rather amusing exchange took place:

From: Sean Conner <sean@conman.org>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 15:21:04 -0500 (EST)

Be that as it may, but is there some other way for a CGI script to return an HTTP status? That's primarily why I use the “nph-” feature (and no, rewriting the script in PHP is not an option).

From: Joshua Slive <XXXXXXXXXXXXXXX>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 16:51:19 -0500

Yes, there is a Status header, as in Status: 404

From: Sean Conner <sean@conman.org>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 17:07:13 -0500 (EST)

Oh wow … I'll have to try that. Is it also available in Apache 1.3? (just on the off chance that you might know … )

From: Nick Kew <XXXXXXXXXXXXXXXXX>
To: Apache Mailing List <XXXXXXXXXXXXXXXXXXXXXX>
Subject: Re: [users@httpd] Odd interaction between mod_rewrite and mod_cgi
Date: Wed, 15 Feb 2006 22:24:36 +0000

Of course. It's in every version of Apache.

More importantly, it's part of the CGI spec. That's something you should read.

Double ouch.

You see, in all the years I've had the code, I've never once read the CGI spec. The code I have is based off code from the old NCSA tutorial code. And when I needed to set the headers myself, I went through the Apache source code and found the “nph-” hack (probably back in the Apache 1.2 days).

And given that I still run Apache 1.3 …

Anyway.

I fixed mod_blog to send the Status: header and it works as expected under both Apache 1.3 and Apache 2.0.

Life is good now.

Well, except for this stupid MySQL database migration.

Thursday, February 16, 2006

America Online does not want your pork with ham, salt, water, modified potato starch, sugar and sodium nitrite, and will do anything it can to keep it that way

“Hello,” I said. “This is Technical Support, how may I help you?”

“Yes,” said the customer, and then launches into a five minute diatribe about not getting email.

“Are you finished?” I asked.

“No!” The customer then goes into a two minute diabribe about the parentage of The Company.

“Can I help you now?”

Primal screams followed by screaming invectives about the email problem.

“I'm sorry, it won't fit up there,” I said.

Another few minutes of poisonous vituperation about the parentage of The Company comes from the customer.

“May I try to solve your problem now, or do you wish to continue with your current dialog?”

Several minutes of obloquies followed.

“Oh, I see the problem,” I said through the billingsgate at the other end of the phone line. “You're trying to forward your email to AOL and AOL is yet again rejecting email from our server.”

The conversation went downhill from there.

I think Smirk and I are this >< close to telling our customers that they can no longer forward email to AOL. It just is not worth the headaches.


The Myth of the Rule of Law

Stop! Before reading this Article, please take the following quiz.

The First Amendment to the Constitution of the United States provides, in part:

“Congress shall make no law … abridging the freedom of speech, or of the press; … .” (2)

On the basis of your personal understanding of this sentence's meaning (not your knowledge of constitutional law), please indicate whether you believe the following sentences to be true or false.

_____ 1) In time of war, a federal statute may be passed prohibiting citizens from revealing military secrets to the enemy.

_____ 2) The President may issue an executive order prohibiting public criticism of his administration.

_____ 3) Congress may pass a law prohibiting museums from exhibiting photographs and paintings depicting homosexual activity.

_____ 4) A federal statute may be passed prohibiting a citizen from falsely shouting "fire" in a crowded theater.

_____ 5) Congress may pass a law prohibiting dancing to rock and roll music.

_____ 6) The Internal Revenue Service may issue a regulation prohibiting the publication of a book explaining how to cheat on your taxes and get away with it.

_____ 7) Congress may pass a statute prohibiting flag burning.

Thank you. You may now read on.

Via flutterby.com , The Myth of the Rule of Law

A long and thoughtful article on interpretations of law and while indeterminate laws aren't necessarily bad. I'm not sure if I agree with the author, but I haven't fully digested the full article yet. But it is thought provoking.

And while I quote below the answers the author gives to the questions quoted above, you should really read the article to get an understanding of why the author answered the questions above as he did.

Unless your responses were: 1) False, 2) True, 3) True, 4) False, 5) True, 6) True, and 7) True, you chose to interpret at least one of the words “Congress,” “no,” “law,” “speech,” and “press” in what can only be described as something other than its ordinary sense. Why did you do this? Were your responses based on the “plain meaning” of the words or on certain normative beliefs you hold about the extent to which the federal government should be allowed to interfere with citizens' expressive activities? Were your responses objective and neutral or were they influenced by your “politics”?

I chose this portion of the First Amendment for my example because it contains the clearest, most definite legal language of which I am aware. If a provision as clearly drafted as this may be subjected to political interpretation, what legal provision may not be? But this explains why the legal system cannot be reformed to consist of a body of definite rules yielding unique, objectively verifiable resolutions of cases. What a legal rule means is always determined by the political assumptions of the person applying it. (24)

Via flutterby.com , The Myth of the Rule of Law


A calendar of curlers

For Spring, a calendar of curling athletes (link via a round-about way from Jason Kottke—and while the article linked is safe for work, the calendar itself most definitely isn't).

Friday, February 17, 2006

From the “I kid you not department”

And yet another link for Spring: a mixture of your two favorite things in movies—a Bollywood version of “Fight Club” (link via The Ferrett).

Saturday, February 18, 2006

“Now THAT'S a keyboard!”

Dan Lyke linked to several manual typewriters used as computer keyboards (the ElectriClerk perhaps being the coolest of the three, going all Brazil with an old Macintosh SE). As I'm reading about the typewriter-keyboard conversion, I was struck that the person doing it might now know how keyboards work:

Like I said earlier, each key is a connection between two terminals. Some terminals have lots of keys connected to them. For example, connecting terminal 4 and terminal 19 might produce “A” but connecting terminal 9 and terminal 19 might produce “F”. Since 1-13 always connected to 14-26 and vice versa (i.e. no terminal from 1 to 13 connects to any other terminal from 1 to 13), I arbitrarily decided that the levers would all connect to 1 13 and the crossbar would connect to 14-26.

putting it together

A keyboard is basically a matrix of switches. Here's the schematic of the keyboard used on the Color Computer 2 (a very simple 53-key keyboard):

[Schematic of Color Computer 2 keyboard interface]

(“EN” is the Enter key, “CL” is the Clear key, “BR” is the Break key, “SP” is the Spacebar and “SH” are the Shift keys)

You would write a “0” to each column (so, to read the rightmost column, you would write a value of 254 (in binary—11111110) and then read the rows. In each case where there is a 0 there is a key being held down along that row. So, again, for the right most column, if you read in 187 (or 10111011 in binary) the Shift key (either one, since they're wired together) and the “W” key are being pressed.

There's a bit more to it than that—the code to read the keyboard would scan through each column, and it would have to know to flag the Shift key as being up or down, and once it detected a key (or two) being down, it would have to pause for a bit, then re-scan for that key (which is called “debouncing”—as you press the key the electrical contact may switch on and off as the key is being hit)—but that's basically how all computer keyboards work (more or less—your standard PC keyboard these days are very simple computers themselves that scan the keyboard matrix and send a standardized code for each key to your computer).

Sunday, February 19, 2006

A few links on kids today as I moped around the house today not doing much of anything

This past Friday Smirk and I talked a bit about kids and education and we're both in agreement that the educational system today is fubar less than optimal. I found that I don't read these educational blogs all that often, not because they're poorly written, but because of the sheer insanity they document in our educational system today.

I was reminded of this today because flutterby.com linked to an article about parents extorting school districts to pay for private education (this article touches off several buttons of mine that I'd rather not get into, least my head a splode).

Can't we just torch the educational system now? Please?

Monday, February 20, 2006

They'll check ya coming and going

So when I'm faced with the prospect of standing in a long line at the exit to have yet another person rifle through my property, I dodge the line and head for an unused automatic door, countering an insistent “Sir, can I see your receipt?” with a polite “No, thank you.”

I've gotten so used to this trick at Fry's Electronics that I don't really think twice about it. You see, Fry's doesn't trust their underpaid staff manning the cash registers to actually do their jobs right, so they post a door guard to ask people walking away from the registers carrying plastic bags to let them verify that all of the items in the bag were rung up on the receipt.

But this verification step is purely voluntary. Merchants basically have two rights covering people entering and exiting their stores. They can refuse to let you enter the premises and/or to sell you anything, and they can place you under citizens arrest for attempting to leave the premises with any property that you haven't paid for. But the second you hand over the appropriate amount of cash, they lose all rights to the items. They can't legally impair you from leaving the store with your property.

Apparently the employees of my local Best Buy aren't very familiar with annoying pedantic individuals who will choose principals over convenience when walking out with a shopping cart full of expensive home entertainment gear. I manage to get about 5 steps out the door before the door guard catches up to me and grabs my cart, with the “sir” in his “I need to see your receipt, sir” somehow not very complimentary. This is apparently a stalling tactic, as shortly a few more blue-shirted employees make a move to block me from making any more progress toward my car.

Via Jason Kottke, Best Buy Receipt Check

We do half our grocery shopping at Costco (mainly non-perishables and gasoline) and while I like it way more than Wal★Mart there is an aspect that I can't stand about the store, and oddly enough, it isn't their receipt check when leaving the store.

No, it's their insistance on checking for your Costco membership card upon entering the store. Not only does it seem redundant [1] since you have to use the card to purchase the items, but I then have to dig the card out of my wallet and show it to the employee who's job is to interrogate each incoming customer about the presence of the Costco membership card.

Fortunately, tonight there were several people all headed into Costco so I took a chance and rushed right past the employee who's job is to interrogate each incoming customer about the presence of the Costco membership card. As I flew on by, past the 72″ HDTVs for sale, I could hear someone calling out to me, trying to get me to slow down enough to be interrogated for the presense of my Costco membership card—well, it could have been me, or someone else taking advantage of the crowd to slip past this employee. Me? I kept going and didn't bother looking back until I was well past the microwave ovens and deep into the petfood section.

[1] I realize it's their way of making sure that you have the card and waste your time shopping only to find out you forgot it, embarrassing you as you stand there in the checkout line all cardless and what not, and have to put everything back, or their time in putting everything back. I just find it annoying.

Tuesday, February 21, 2006

Tales from The Company

From across the office right behind me, I can hear our accountant as he makes his way through the billing system. “XXXXXXX XXXXXXXXXXXXX piece of XXXX! What the XXXX? XXXX!” A few moments of silence. “XXXX! XXXX! XXXX!” Half the time he's swearing at the computer, and the other half he's swearing at Smirk, which is okay, because Smirk just tells the accountant to go back to XXXX.

It's like watching a married couple.


Snippit of a conversation overheard upon entering Casa New Jersey at the end of a long day laboring over a hot computer keyboard and monitor

“Where's Wlofie?” asked one of The Kids.

“Wlofie?” I said. “Isn't he here?”

“No,” said one of The Kids, eyes wide open.

“He's not?” I said.

“Wlofie isn't with you?” said Spring, rushing into the living room, a look of horror. “You left him at Negiyo⁈”

“No,” I said. “He's outside, smoking a cigarette.”

“Gaaaaah!” said Spring. “Don't do that!

“Ouch ouch ouch ouch ouch!”

Wednesday, February 22, 2006

I should realize the futility in ever thinking I'll get a server configured as I think a server should be configured and learn to love how those jokers at Red Hat or Suse or Debian deem it best to run a server, and oh, by the way, hope you like the Upgrade Dance™ because you'll be doing it for the rest of your life because Red Hat or Suse or Debian say so. So there.

I would have thought that by now, the major Linux distributions, or at least some offshoot of one of the major or even minor Linux distributions, would have targetted LAMP. Really, at this stage of the game, all I really want in a distribution is a base system loaded with the development packages. Most of the servers I'm installing these days (and over the past month I've done quite a few) are doing nothing more than web serving and forwarding email and that's it.

So basically, all I need is a distribution that includes:

Yes, there are ways of taming some of the distributions to only include what you want, but it's quite a bit of work for something that I'm surprised hasn't been done already (or is everyone being lazy and waiting on the Lazy Web to do it?). And what some of these distributions consider “bare bones” I consider “about as bloated as Windows.”

Sheesh.


Arbuckle, which is Jon's last name, by the way …

In 1978, Jim Davis began a newspaper comic strip called “Garfield”. For almost forty years, this strip has endured, primarily because its inoffensive, storyless humour is immediately accessible. It is, if not quite the Lowest Common Denominator of the comic world, at least as close to it as one can get without being obviously mediocre.

The comic changes dramatically when one removes the thought bubbles.

“Garfield” changes from being a comic about a sassy, corpulent feline, and becomes a compelling picture of a lonely, pathetic, delusional man who talks to his pets. Consider that Jon, according to Garfield canon, cannot hear his cat's thoughts. This is the world as he sees it. This is his story.

Arbuckle: Garfield through Jon's eyes.

A while back I mentioned the thoughtless Garfield meme. This person went one futher and is redrawing (with help) Garfield in a more realistic manner.

I wonder what Paws, Inc. will make of all this?

Thursday, February 23, 2006

Don't talk to me about package managers—they're all bad!

So today I get to play around with FreeBSD's ports system, aka a “package manager.”

PORTS(7)           FreeBSD Miscellaneous Information Manual           PORTS(7)
NAME

ports—contributed applications

DESCRIPTION

The FreeBSD Ports Collection offers a simple way for users and administrators to install applications. Each port contains any patches necessary to make the original application source code compile and run on BSD. Compiling an application is as simple as typing make build in the port directory! The Makefile automatically fetches the application source code, either from a local disk or via FTP, unpacks it on your system, applies the patches, and compiles it. If all goes well, simply type make install to install the application.

Okay. Seems simple enough. Do a search (not much better than a simple grep but it's something) and find the package I need to install.

SNMP# cd /usr/ports/databases/mysql41-client/
SNMP# make build
===>  Vulnerability check disabled, database not found
=> mysql-4.1.13.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.easynet.be/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.easynet.be/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.mirrors.cybercity.dk/Downloads/MySQL-4.1/.
fetch: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://netmirror.org/mirror/mysql.com/Downloads/MySQL-4.1/.
fetch: http://netmirror.org/mirror/mysql.com/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://netmirror.org/mysql.com/Downloads/MySQL-4.1/.
fetch: ftp://netmirror.org/mysql.com/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mirrors.ntua.gr/MySQL/Downloads/MySQL-4.1/.
fetch: http://mirrors.ntua.gr/MySQL/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.sote.hu/Downloads/MySQL-4.1/.
fetch: http://mysql.sote.hu/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-4.1/.
fetch: ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-4.1/mysql-4.1.13.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://mirror.widexs.nl/pub/mysql/Downloads/MySQL-4.1/.
^Cfetch: transfer interrupted

SNMP#  cd /usr/ports/databases/mysql50-client/
SNMP# make build
===>  Vulnerability check disabled, database not found
=> mysql-5.0.9-beta.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.easynet.be/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.easynet.be/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.fi.muni.cz/pub/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.0/.
fetch: http://mysql.mirrors.cybercity.dk/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.fh-wolfenbuettel.de/pub/database/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://netmirror.org/mirror/mysql.com/Downloads/MySQL-5.0/.
fetch: http://netmirror.org/mirror/mysql.com/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://netmirror.org/mysql.com/Downloads/MySQL-5.0/.
fetch: ftp://netmirror.org/mysql.com/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mirrors.ntua.gr/MySQL/Downloads/MySQL-5.0/.
fetch: http://mirrors.ntua.gr/MySQL/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-5.0/.
fetch: ftp://ftp.ntua.gr/pub/databases/mysql/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: File unavailable (e.g., file not found, no access)
=> Attempting to fetch from http://mysql.sote.hu/Downloads/MySQL-5.0/.
fetch: http://mysql.sote.hu/Downloads/MySQL-5.0/mysql-5.0.9-beta.tar.gz: Not Found
=> Attempting to fetch from ftp://ftp.rhnet.is/pub/mysql/Downloads/MySQL-5.0/.
^Cfetch: transfer interrupted

SNMP# 

Okay, so how exactly is this better than getting the tarballs?

Friday, February 24, 2006

“You're running ancient and decrepid software. And you're momma dresses you funny.”

Two months ago there was a security scan done against one of our customer's managed servers, and the report came back with a bazillion things they (the security scanning company) didn't like. So we spent the time securing the network path and building a new server from scratch, using the latest versions of Apache, ProFTPd, etc, built from tarballs (the distribution was daring to use ancient, decrepid, months old versions of said software—how dare they!).

So it was earlier this week that a security scan (done by another company this time—the report is only a few pages long instead of the five hundred plus from the other company) and I just now saw the report.

Emphasis added
ProtocolPortProgramRiskSummary
TCP21ftp1The remote host [that's us] is using ProFTPD, a free, FTP server for Unix and Linux. According to its banner, the version of ProFTPD installed on the remote host suffers from multiple format string vulnerabilities, one involving the ‘ftpshut’ utility and the other in mod_sql's ‘SQLShowInfo’ directive. Exploitation of either requires involvement on the part of a site administrator and can lead to information disclosure, denial of service, and even a compromise of the affected system. See also: http://www.proftpd.org/docs/RELEASE_NOTES-1.3.0rc2 Solution: Upgrade to ProFTPD version 1.3.0rc2 or later. Risk Factor: Low
TCP21ftp1The remote ProFTPd server is as old or older than 1.2.10 It is possible to determine which user names are valid on the remote host based on timing analysis attack of the login procedure. An attacker may use this flaw to set up a list of valid usernames for a more efficient brute-force attack against the remote host. Solution: Upgrade to a newer version. Risk Factor: Low

So let me get this straight: the first problem requires the system administrator to be in on the exploit.

Um …

If the system administrator is in on the exploit, you have more serious problems! What? Are all these security scan companies on crack or something?

I found the second problem amusing since it doesn't like ProFTPD version 1.2.10 (or less) even though 1.2.10 is the latest stable release! See, I told you these security scan companies hate currently released software. So I suppose this means I need to upgrade to one of the later release candidates.

Anyway, the problems that were listed (and there were only five total) were sufficiently low risk that we passed the security scan.

Saturday, February 25, 2006

Intervention

Bad stuff.

C12H22O11

Unfortunately, I think we have to stage an intervention. Someone we know has a real bad habit and has gone to great lengths to hide their addiction, including stashes they forgot completely about.

Yeah, it's that bad.

Sunday, February 26, 2006

Just because I have nothing better to link to at the moment

For Spring, ribbed and motorized for your pleasure (I'm guessing, because I fail to see how it can be otherwise).

Monday, February 27, 2006

Is this what they mean by “PC Lusering?”

I'm beginning to really hate email.

No, not my email, span infested as it is. No, I'm beginning to really hate other people's email.

This is semi-related to AOL only because I spent an hour or so with a customer today walking him through configuring Thunderbird to check email on our server since forwarding his email to AOL is a lost cause. And that was bad enough. I'm under Linux, where Thunderbird sees fit to place the Account Manager under the Edit menu option. Whatever operating system the customer was using (I'm guessing Windows) had the Account Manager under the Tools menu option. And we were using different versions, which meant the dialog boxes I was seeing did not match the diaglog boxes the customer was seeing. Compound the fact that the customer's primary interface to the Internet seemed to be exclusively AOL, and his propensity to quickly click ahead made for a trying experience.

But then I spent another hour or so trying to figure out where the heck his email was going. The test messages to his account where simply not showing up. The sending server (my workstation and my home computer) showed sucessful delivery of the message to the MX host, which is our spam firewall (a service we offer). The spam firewall showed a sucessful delivery of said test emails to the actual server. It was when I checked the mail logs on the server that I saw his emails were still being forwarded. I checked the (shudder) control panel (Insipid)—nope—his emails shouldn't be forwarded.

But they were.

Turns out there were some .forward files. And since the control panel didn't see fit to remove them, I had to wonder how they got there in the first place (or I found an actual bug in a control panel! Fancy that).

Hate.

Hate.

Hate.


“You know, I actually new a kid in high school that sniffed this stuff … ”

As if today wasn't bad enough, at 5:59 pm, just a minute before I'm out the door, the phone rings. I hesitate a second, debating whether I should answer it or not.

“Hello,” I said, silently cursing myself. “Technical Support. How may I help you?”

“Yes, this is C from XXXXXXXX.” It's the customer with the Cisco router that we're tunnelling a connection to. “Yeah, our provider just gave us our new IP address and we need our router reconfigured before midnight tonight.”

Looks like it was the wrong week to quit sniffing C12H22O11

Tuesday, February 28, 2006

This entry has two oblique references that only make sense if you know the full story, but I can't tell the full story since it's not mine to fully tell so it may make it seem worse than it really is, but I'm still shaken (but not stirred) by all of it and am still trying to process the whole thing, so that's why the oblique references in this entry (with a title that is entirely too long but that's besides the point)

As a kid, I remember my Granddad (Dad's dad) watching the news, and only the news, on television. And the occasional episode of “60 Minutes”. As a result, I was exposed to the media side of “ambush interviews”—you know, Mike Wallace and some camera man lying in wait for some businessman, politician, doctor, lawyer or controversial public figure about which some bit of scanal or law suit is pending and as they're walking past to or from their car kidney punching with a camera and asking a slew of embarassing and pointed questions.

Such “ambush interviews” always made the ambushee look really bad—why couldn't they answer what always seemed to be a few simple questions and their response was always “No comment” or “I have nothing to say” or a kidney punch back at Mike with a brief case and a comment that was inevitably bleeped out.

What was never said by Mike Wallace or any other reporter involved in an “ambush interview” is that the ambushee might not be legally allowed to answer such questions, or they might not even know how to answer the question and figure the best course of action is not to say anything for fear of looking worse than they already are (or will, when the interview is edited for television).

Such interviews tend to be a “damned if you do, damned if you don't” type of affair.


My friend Hoade is an expert on collection agencies, having done extensive research in the field for his first (and still unpublished) novel. By the time a company approaches a collection agency (or the collection agency approaches a company) the company has pretty much written off the debt (the loss is considered an “operating expense” and can be used to offset any taxes the company pays) and anything the collection agency collects (minus their “fee”) is pretty much gravy (since the offset taxes more than make up for the atual income of any debt so collected).

As a result, there isn't much legally a collection agency can do to actually collect on the debt. Sure, they can trash your credit rating, but it's a fair assumption that if you have collection agents on your tail, your credit rating is pretty much gone anyway. They can't garnish wages, or place liens on property (only the court system can do that, and a company is only going to go through the court system if it's a metric buttload of money involved and skip the collection agency entirely). About the only recourse a collection agency has is intimidation. And surprise. The only two recourses are intimidation and surprise and an almost fanatical devotion to the Pope. The three recourses are intimidation, surprise …

Oh. Um. Sorry about that.

So yes, short of the comfy chair and a ruined credit rating, they can't do anything to you.


And as I'm constantly reminded of, don't sweat the small stuff, and it's all small stuff.

Wednesday, March 01, 2006

More tunneling issues

At the end of January, I called out to the Lazy Web for advice on how to get a Cisco 2611 to authenticate a PPPoE connection and well, it's finally working (with no input from said Lazy Web):

interface ATM0/0
 description XXXXXXXXXX Secondary Internet Connection
 no ip address
 no atm ilmi-keepalive
 pvc 6/42
  encapsulation aal5snap
  protocol ppp dialer
  dialer pool-member 1
 !
 dsl operating-mode auto
!
interface Dialer0
 description Authentication Happens Here
 ip address XXX.XXX.XXX.XXX 255.255.255.0
 encapsulation ppp
 dialer pool 1
 dialer-group 1
 ppp chap hostname XXXXXXXXXXXXXXXXX
 ppp chap password 7 XXXXXXXXXXXXXXXXXX
!
dialer-list 1 protocol ip permit

But I do have to admit some confusion over why it suddenly started working. I had this configuration pretty much in place by the end of January but I just couldn't even see the customer's router by DSL (which, as you can see there, is a backup connection in case their router's primary connection goes down). It's hard to debug this since you don't even see the traffic unless you pass an authencation request through the physical lines owned by The Monopolistic Phone Company, and because the radius authentication server wasn't getting any requests, that meant that our Cisco router wasn't seeing any DSL traffic from the customer.

Very annoying.

Then earlier this week BAM traffic suddenly was getting through. It's almost as if The Monopolistic Phone Company took their own sweet time in actually enabling the DSL circuit on our customer's phone line.

Good thing too, since their current provider is having issues with connectivity (and twice this week I've had to reprogram their router's primary IP address). Now the issue is why the router is prefering the DSL connection over their primary connection (which is the exact opposite of what is supposed to happen).

Update on March 2nd, 2006

I found out why why the DSL was being prefered over the Ethernet connection.


Stupid student tricks, now that the statutes of limitations has expired

When I saw the video of Atlanta students driving the speed limit (link via Instapundit) I was reminded of the time I participated in such a stunt about a decade ago.

It wasn't consciencely planned; it just more or less happened, and it wasn't on an interstate highway (or any type of highway) but on a road (major road, but road nonetheless). There were three of us, each in our cars, spanning the road all driving the speed limit and watching (much like in the video) the traffic piling up behind us. Periodically, one of us would slowly creep ahead (which is something the students above didn't do), but not so much as to let anyone pass us, and watch as all the cars behind us would start shuffling, attempting to get behind the slightly faster car. The one driving just slightly faster would then slow down to match speed again, and someone else would start to pull ahead, and the car shuffle would start yet again.

We found it very amusing, and I'm surprised, it being Lower Sheol and all, that we weren't forcibly shoved off the road and shot.

Thursday, March 02, 2006

Watching the searches go by

A lot of visitors walk into the Googleplex lobby and stand mesmerized by the scrolling display of search queries crawling across the large monitor suspended over the receptionist's desk. It inspires journalists to wax poetic and dig deep for metaphors about the international impact of Google and the deepening role search plays in all our lives. They're so in awe of this peek into the global gestalt that they don't even read the NDA they automatically agree to by signing in for a visitor's badge.

The query scroll is fascinating, though it's carefully screened for offensive terms that might clash with the wholesome decor. Screened for offensive terms written in English, anyway. I seem to recall a group of Japanese visitors pointing and smirking at some of the katakana queries floating across the page.

Hey! I just saw my search go by!

Back when I wrote GeoFind (originally “Brainstorm” although I think the term “Brainstem” may have been bandied about) one of the features I added was a live feed of all the search terms being submitted (as a network service, no less)—I think at the time there were a few search engines that allowed one to check the queries being submitted (although I suspect all of this was before Google's time). It wasn't difficult to add the functionality, and it was fun interesting to watch the queries being made (except for the disturbing ones).

But one time I'm sitting in my office, watching the live search requests when I see “Hi Sean” flow past. It was one of my fellow cow-orkers having a bit of fun.


“Why yes, I'd prefer my packets to take the slow connection”

Yesterday, the Cisco router preferred the secondary circuit (a DSL line) over the primary circuit (an Ethernet port) and I couldn't figure why. I had programmed in weighted routes but the Cisco seemed to read “take the Ethernet port over the DSL port” as “take not the Ethernet port over the DSL port.”

First attempt at a fix: weight the routes heavily (as in fifteen times) in favor of the Ethernet port. Still the Cisco took it as “take not at all the Ethernet port over the DSL port.”

Second attempt at a fix: who knows? Maybe I have the weights backwards? So, reverse the weight values. It was then I realized that the Cisco was in fact hearing “do not even think of the Ethernet port unless the DSL port is down.” Didn't matter how I weighed the routes, the Cisco would refuse to route over the Ethernet unless the DSL was down.

Which is the exact opposite of what we want.

So G, our Cisco consultant took a look into the problem and came up with the answer—that's the way Cisco's work.

Basically, the Cisco router will select a route according to the following:

  1. All connected interfaces go first.
  2. Route to the most specific subnet second.
  3. Only now are weighted routes considered.

The DSL connection was being routed on a connected interface, so we could have weighted the DSL connection with 17 tons and made the Ethernet interface weightless, but because the DSL route is directly connected, it would be preferred.

The problem was fixed by changing the DSL routing destination, so it was neither directly connected, nor a specific subnet.

Sigh.

Friday, March 03, 2006

Like quicksand through the hourglass, these are the time wasters of our lives

Yet another timesink (this time, thanks to flutterby).

Saturday, March 04, 2006

Spore

There's this facinating video (about an hour long—there's also a 30 minute highlight) about Will Wright's new simulation/game called “Spore.”

What is “Spore?” Well, watch the video(s), but short of that, imagine a simulation where you start out as a single cell organism, evolve into multicellular life, then intelligent life, go tribal, then get civilization, go exploring locally, then globally, then into space and eventually go on to create life on other planets, only there are other people doing the same thing as you are, either on the same planet as your, or in a different star system or even galaxy.

That's “Spore.”

It's a meta-simulation, if you will.

But I'm not doing it justice—watch the video(s)!

Sunday, March 05, 2006

“… and some call me … Bubba!”

Running a weekly D&D game isn't all that easy, and for the past two Sundays, I've cancelled the session namely because I was burned out (that, and the last game we did play three weeks ago blew up).

I'm having to balance the game for both The Kids and the adults that are playing, while making sure I have fun doing it all, and I ran out of ideas.

Sure, I can use pre-written scenarios, but the few times I've done that, it felt a bit forced (and I'm saying this as the DM!) and constrained (“um … ” reading the module, then in a monotone voice, “you feel the heavy dampness of the dungeons close in on you as you descend into the inky blackness of Mygwrn Castle”) and as it is, I'm constantly flipping through the various rule books—who needs that and constant flipping through a pre-canned module?

I almost called it off this week, but one of the adult players, Rob (not my ex-roomate the Jolly Goth Rob, but a friend of Wlofie's) was so looking forward to the game (this is his first time playing D&D and he absolutely loves playing as the Wizard Bubba that I just couldn't not do the game. How could you not play a D&D game with Bubba the Wizard?

Monday, March 06, 2006

My fingers know

I don't know the password to any of my accounts.

Really.

Wlofie and I were at Costco, doing the weekly shopping when Smirk called on my cell phone. There may be an issue with the DSL connection and could I check it out. I told Smirk that I would when I get home and hung up, by which time Wlofie had his cell phone out, flipped open the keyboard.

“We can diagnose it from here,” he said, holding out his cell phone.

“You got traceroute?”

“No, but we can ssh into a system and traceroute from there.”

So we attempted to log into my workstation (the one at The Company) but when it came time to type in my password—I couldn't.

I didn't know it.

I don't know it.

My fingers, however, know the password.

It's a very wierd thing too.

If I think too much about typing in the password I can't do it. If I consciencely try to type my password, I inevitably screw it up. And it didn't help that the layout of Wlofie's cellphone keyboard was non-standard enough to really throw me off.

We were about to give up when I realized where we were—Costco. They sell everthing here, so there must be a “real” keyboard I could type my password on—even if it was Notepad so I could see what the password was. And there were—Costo had a bunch of laptops set up for demonstration purposes.

That's when I realized something else—not only do I not know my password, but unless it's an IBM PS/2 keyboard, my fingers can't type the password. It just doesn't feel right otherwise.

We never were able to check the problem out from Wlofie's cell phone (but it turned out not to be a DSL issue at all, but a problem with a customer's computer).

Tuesday, March 07, 2006

Ever since my little kitty died / I have been locked in the chamber / of sadness and melancholy

I was reading some pages of Engrish (and being highly amused—the title up there comes from a billboard for the Backstree Boys) when I had an odd thought: are there webpages in Taiwan or China or Japan mocking our use of their language? I'm just curious.


Fox goes to South Park

For Mark, who is a big South Park fan—how the Fox Network handles South Park (which, in a way, I find just as amusing as the original episodes).


This never happened.

On an unspecified day last week an employee of a federal agency that cannot be revealed delivered a document that cannot be identified to a company that cannot be named seeking information that cannot be discussed.

The aforementioned federal agent left the unidentified document with an employee of the unnamed company. That employee then called the owner, who must remain anonymous, to inform him that the document that could not be identified sought information that could not be discussed. The owner who must remain anonymous instructed the employee to deliver the unidentified document to a lawyer whose name is protected by attorney-client privilege.

The lawyer whose name is protected by attorney-client privilege examined the unidentified document and then reviewed the information that could not be discussed with the owner who must remain anonymous.

With the approval of the owner who must remain anonymous, the lawyer whose name is protected by attorney-client privilege contacted a U.S. attorney who demanded that his identity be concealed.

The U.S. attorney who demanded that his identity be concealed then claimed the owner who must remain anonymous violated a law that could not be disclosed and faced arrest for charges that could not be specified because he had referred to the document that cannot be identified in an article for a certain, but unnamed, web site.

The lawyer whose name is protected by attorney-client privilege argued that his client could not be charged under the undisclosed law because he had been acting as a journalist at the time of the alleged publication and not as the owner of the company that cannot be named. He had, in fact, learned of the existence of the document that cannot be identified from a third-party, who was not named, and was not aware of its exact contents because he had not seen or read the document and, therefore, was not aware of the exact contents that cannot be discussed.

The U.S. attorney who demanded his identity be concealed consulted with others who names are classified and concluded that the owner who must remain anonymous walked a fine line between legal and illegal and would not face arrest for violating a law that could not be disclosed on charges that could not be specified.

So walking this fine line of justice allowed the owner who must remain anonymous to avoid confinement at an institution at an unknown location for an unspecified length of time.

In exchange for his freedom, the owner who must remain anonymous agreed to write a “clarification” of what happened, following the guidelines for publication laid down by the Bush administration.

Which is what you just read.

Telling the ‘approved” story

Nothing to see here. Move along. Nothing to see.

Now that's a problem. I own the company that hosts Capitol Hill Blue. So, in effect, the feds want me to turn over information on myself and not tell myself that I'm doing it. You'd think they'd know better.

Bush declares war on freedom of the press

Of course, this never happened. But if it did happen, then President Bush is in good company.

Wednesday, March 08, 2006

Basket weaving for the math teachers

Carson said long division “was completely excised from the programs for quite a while until the backlash got so large that they at least had to make nods toward teaching it.

“In 5th grade they're still drawing pictures to solve problems in multiplication and division.”

Her son, who attends the public schools in New York City, was drawing clumps of sticks to solve multiplication problems in the 6th grade, she said.

In the 7th grade, he and his classmates were asked to find the area of a circle. Four weeks were devoted to the task. Traditionally, children were given the formula, but apparently these junior Archimedes were supposed to rediscover the uses of pi.

Via Gene Expression, View: The ideology of math education

This article was linked to by Gene Expression in a long follow-up about anti-racist math (I kid you not), who also posted an entry with the syllabus from a gradulate level multi-cultural math class, involving … well …

The julekurv is a Norwegian Christmas basket. The Norwegians fill these baskets with treats and put the filled baskets on their Christmas trees for family and friends. You may want to make a basket for any holiday, such Valentine's Day, or for no special day at all. In any case, you will beautiful, hand-made object.

Multi-Cultural Math— Teaching the Teachers

Basket weaving.

In a gradulate level course!

As I stated last month, can't we just torch the educational system now?

Please?

Thursday, March 09, 2006

RACTER, generative text and Lisp. Oh my!

It figures.

I make disparaging remarks about Lisp, and it turns out to possibly be the best language to use for a project I'm working on.

Sigh.

The project (or projects—there are a few things I want to work on that can use this) deals with computer generated text (or “generative text” as it's called). Textual mashups if you will, like Crow Haiku Generator or my own Quick and Dirty B-Movie Plot Generator. There are plenty more out there if you look.

A lot of these are nothing more than arrays of strings and a slew of code to sling the pieces together. Something like:

temp = Newsflash[rand(Newsflash.length)] + "\n"
       + Location[rand(Location.length)] + " was attacked at dawn by "
       + Monsters[rand(Monsters.length)] + " "
       + From[rand(From.length)] + " "
       + Lowersheol[rand(Lowersheol.length)] + ".  Our hero "
       + Hero[rand(Hero.length)] + " " 
       + Fought[rand(Fought.length)] + ".";

Which would generate output like:

******* FLASH! FLASH! FLASH! *******

Disneyland was attacked at dawn by giant green worms from the lowest levels of The IRS. Our hero Tim Conway told their mothers they were naughty.

This is probably one reason why so many generative text programs don't generate all that much different text—they're too tedious to program.

I wanted an easier way to create the data and sling the words around—I wanted a “program” I could write that could then be processed, much like INRAC, the compiler used to create RACTER (which supposedly wrote The Policeman's Beard is Half Constructed), but using INRAC, to generate something like this:

Bill Gates bit Winston Churchill, but Winston Churchill just smiled. Bill Gates snarled, “Saint Winston Churchill, I presume”. “That's a Bill Gatesesque remark” replied Winston Churchill.

You write this:

*story code section
a %PEOPLE #
b >HERO*person[&P] >VILLAIN*person[&N] #
c $VILLAIN #RND3 bit robbed hit $HERO , #
d but $HERO just #RND3 smiled laughed shrugged . #
' new:
e $VILLAIN snarled >X=Saint,HERO "> $X , I presume <*. #
f "That's a !Y=VILLAIN;esque remark" replied $HERO .

Um … yeah.

Thanks, but no thanks.

Building upon my own Quick-n-Dirty B-Movie Plot Generator, I wrote two further prototypes, one in Perl and one in C; both can use the same input files (and are not restricted to just generating B-movie plots). Why a version in C? Because the one in Perl consumes an insane amount of memory and takes almost 600 times longer to generate the output (since the C version can process the input files once into an intermediate format that is quicker to use whereas the Perl version has to re-read the input files for each invocation; but even when I include the preprocessing time in the C version it's still four times faster than Perl). The format I came up with is much easier to deal with:

# declare an array of text, which, when
# referenced, will return one of the lines
# at random.  It ends with a semicolon alone
# on a line.

:MayYou
	I pray thou shalt
	I hope you will
	;

:HaveBadThingsHappen
	be plagued with gnats, flies and locusts
        be taunted by the king's concubines
	;

:OhYou
	thou
	O thou
	O ye
	;

:OfLittleFaith
	incompetent tax-collector
	lazy Babylonian
	;

:HearThis
	Listen
	Hear this
	Take heed
	;

# to reference an array, use %a-arrayname% #
# one of the following lines will be used

%a-MayYou% %a-HaveBadThingsHappen%, %a-OhYou% %a-OfLittleFaith%!
%a-HearThis% %a-OhYou% %a-OfLittleFaith%, for you will %a-HaveBadThingsHappen%!

(I pulled these from a webpage that generated Biblical taunts, but I've since lost the link).

So that's the point I am now—I can replicate most of the generative text programs I've seen on webpages pretty quickly (about as quick as I can copy the text out and into this format). Star Trek technobabble, fake Nostradamus quatrains, crow haikus, all easy now.

Except I'm still not at the level of INRAC. I have no way of generating variables and article generation (“a” or “an”) is still a bit problematic. The syntax I'm currently using, while better than anything else I've seen, is still clumsy (it's a holdover from the initial Perl version. So I've been playing around with syntax a bit, making it easier, and adding variables and functions (say, to generate the appropriate article for a word, or a random number). So far, I like what I have for the new syntax:

# assume we're using the Bible Taunts

# declare a variable TheProphet, which
# is a randomly choosen Bible name

{TheProphet=[biblenames]}

[MayYou] [HaveBadThingsHappen] [OhYou] [OfLittleFaith]!
[HearThis] [OhYou] [OfLittleFaith], for you will [HaveBadThingsHappen]!
{TheProphet} had a dream-you will [HaveBadThingsHappen].  So says {TheProphet}.

But things are progressing to where I'm reaching for lex and yacc to handle the parsing and processing of the input files.

I am, in effect, writing a programming language.

Want to know something?

Any sufficiently complicated C or Fortran program contains an ad-hoc, informally-specified bug-ridden slow implementation of half of Common Lisp.

Greenspun's Tenth Rule of Programming

For all my misgivings about Lisp, I'm finding myself starting to write an ad-hoc, informally-specified bug-ridden slow implementation of Lisp.

Heh.

Friday, March 10, 2006

“Do not ask for whom the bell tolls—it tolls for thee”

Ring.

I looked at the clock. It said 5:53 pm. I leave the office (on Friday's) at 6:00 pm. I seriously debated whether I should answer the phone or not.

Ring.

I checked caller-id. One of our larger customers—servers, DSL connection, managed routers.

Ring.

Maybe it'll be a quick question, I thought, picking up the phone. “Hello, technical support,” I said.

“Yes, this is C from XXXXXXXX” said the voice at the other end of the phone line. “We need to change our IP address again. Like right now.”

My head hit the desk with an audible thump. I've got plans for tonight. I was planning on going out the door in another seven minutes. “Now?”

“Now. We need to cut over tonight.”

“You know,” I said, “it would be nice if we got a bit more lead time on these type of issues. I've got plans tonight, I was planning on leaving in another … six minutes.”

“I'm sorry, but this shouldn't take long, right?”

“You've got six minutes. Do you have the new IP address, netmask and gateway?”

“Yes,” said C. He gave them to me. Thankfully, the backup DSL connection was working so we wouldn't loose the connection. I reprogram the router and verify that the changes took. “Did we finish in time?” asked C.

I looked at the clock. “30 seconds over,” I said. “And next time?”

“Yes?”

“Don't ever do this on a Friday.”

Saturday, March 11, 2006

Generative text in guile

I'm amazed at how quickly I was able to cobble up a generative text program in Lisp. Well, Scheme. Technically guile, the GNU version of Scheme. I didn't bother with parsing the existing datafiles—instead I did the “arrays of strings and a slew of code (actually, very little) to sling the pieces together, but it was darned near trivial. The entire program, sans array declarations, comes down to:

(define rndstate 0)
(define refn     array-ref) ;; return an element from an array

(define (main args)
        (set! rndstate (seed->random-state (current-time)))
        (display (racter))
        (display "\n\n")
        (exit 0)
)


;; return the size of an array
(define (nref a) (car (array-dimensions a)))

;; return a random element from an array
(define (ref a)  (array-ref a (random (nref a) rndstate)))

;; sling those strings
(define (racter)
  (eval (cons 'string-append (array->list (ref default-template)))
        (interaction-environment)
  )
)

The code itself is mostly array declarations (and this particular bit of code is a translation from Games Ataris Play—hey, it was a couple of bucks from a used book store) with this bit of code at the bottom.

There are some features I want to add to this, but they shouldn't take all that much code. Once I get this working how I want it, it should be pretty straightforward to convert the existing datafiles I have into LispSchemeguile.

Sunday, March 12, 2006

Living underground

I just finished watching Dark Days, a facinating documentary on a very unique neighborhood—one that existed in the subway tunnels of New York City. Granted, these were formerlly homeless people, but can you really call them homeless when they made their own homes (okay, huts made out of found plywood) and had electricity (and at one point, running water)?

Equilly fascinating was the making of the documentary, where the film maker, Marc Singer, managed to rent camera equipment, bum B&W film, use the subjects of his film as film crew (and he himself had no experience in making films) and solely on the subject matter of his film, get it developed, edited and scored for an incredibly low amount of money, where it went on to win several awards at Sundance 2000.

Monday, March 13, 2006

RACTER, generative text and Lisp. Oh my! Part II

I found programming in LispSchemeguile to be quite frustrating—partly due to it being an unfamiliar environment to program in and partly due to not fully understanding the implications of my design decisions for the generative text platform I'm developing.

Ideally, I wanted something like:

(define firstname
  #(
  	"Alice"
  	"Bob"
  	"Carol"
  	"Dave"
  )
)

(define lastname
  #(
  	"Smith"
  	"Jones"
  	"Conner"
  )
)

(define heros	;; from scifi.scm from the other day
  #(
        "Tim Conway"
        "Big Bird"
        "The Fonz"
        "Wonder Woman"
        "Kareem Abdul Jabar"
        "Tom Selleck"
        "Lucille Ball"
	#((ref firstname) " " (ref lastname))
  )
)

Where heros will be one of “Tim Conway” or a generated named like “Carol Jones.” And it was handling this “second level” of references where I had difficulty (lots of unbound and/or undefined references—God I can't stand dynamic languages). I spend hours trying to figure out how to iterate through an array. I mean, in a C-like language it would be something like:

for (i = 0 ; i < array.length ; i++)
{
  if (typeof(array[i]) == string) 
    result.append(array[i]);
  else if (typeof(array[i]) == array)
    result.append(expand_array(array[i]));
}

But LispSchemeguile is rather lacking in the loop department; instead you're supposed to use tail recursion or one of the mapping functions and LispSchemeguile's support of arrays isn't quite as dynamic as say, Perl, and well …

I found the experience rather trying.

But in the end the code turned out to be rather simple. Well, once I “fixed” the data structures being used:

(define firstname
  #(
  	"Alice"
  	"Bob"
  	"Carol"
  	"Dave"
  )
)

(define lastname
  #(
  	"Smith"
  	"Jones"
  	"Conner"
  )
)

(define heros	;; from scifi.scm from the other day
  #(
        "Tim Conway"
        "Big Bird"
        "The Fonz"
        "Wonder Woman"
        "Kareem Abdul Jabar"
        "Tom Selleck"
        "Lucille Ball"
	((ref firstname) " " (ref lastname)) ;; look! a list!  Not an array!
  )
)

(define rndstate 0)
(define refn     array-ref) ;; return an element from an array

;; need this to get random numbers out of (random)
(set! rndstate (seed->random-state (current-time)))

(define (nref a) (car (array-dimensions a)))
(define (ref a)
  (let
    ((result (refn a (random (nref a) rndstate))))
    (cond
      ((string? result) result)
      ((list?   result) (eval
                                (cons 'string-append result)
                                (interaction-environment)
                        ))
    )
  )
)

Now that this is working, adding additional functions and variables should be straightforward. And today's example is a guile version of my Quick-n-Dirty B-Movie Plot Generator.

Tuesday, March 14, 2006

Evil thoughts

I thought briefly of moving to Boston, way back in 1998 or thereabouts, for a possible short term contracting job. I didn't get the job (but I did get the title to this journal from it), thankfully, because I came to realize that I hated didn't like Boston. It was old, cold and a twisty maze of one-way streets all alike (it wouldn't surprise me of the maze of ADVENT was based upon Bostonian streets).

And today, I'm especially glad I didn't move there, as the political atmosphere there would have driven me insane. Okay, perhaps mAss Backwards is a one-sided view of all things Massachusetts, but still (all examples taken from mAss Backwards) …

The Massachusetts House voted yesterday to legalize over-the-counter sale of hypodermic needles to curb the spread of HIV and other blood-borne infections, potentially setting up a political showdown with Governor Mitt Romney over whether the bill will save lives or promote drug use.

House votes to allow sale of syringes (November 15th, 2005)

Well, there is the potential of promoting drug use, but …

Yes, the same legislative body that would have you believe there's no legitimate use for a handgun, even in the hands of the most law-abiding citizens, just voted to legalize the sale of hypodermic needles to known lawbreakers—in an effort to “save lives”.

Now, we could debate the legalization of drugs until the proverbial cows come home, but off the top of my head, I can only think of two groups of people that will benefit by passage of this bill: people who use heroin and other illegal intravenous drugs, and people who would be inclined to use a hypodermic needle as a weapon in the commission of a crime.

mAss Backwards (November 16th, 2005)

And now?

SALEM, Mass.—Police in Salem are on the hunt for a convenience store robber who used a syringe as his weapon. The robbery has gone down as a first, they said.

In fact, police warn that syringes are fast becoming a weapon of choice for criminals.

Via mAss Backwards, Police Hunting For Syringe Robber

But it's comforting to know that guns are still illegal in Massachusetts. But least you think it's just syringes being used in the commission of crimes:

Cheap and easily bought, machetes in America have commonly been reserved for underbrush and sugar-cane cutting. But now, in a spreading trend that so far has drawn little national attention, criminals are using machetes as weapons, striking fear in cities and towns across the country. …

That was the case as well in the Boston area, where a rise in gang violence involving machetes occurred in the past several years. The surrounding towns of Revere, Everett, Lynn and Chelsea have banned machetes, and there is now a bill before the Massachusetts Senate that would prohibit the carrying, sale and manufacture of the tool-turned- weapon.

Via mAss Backwards, Machetes cutting a wider swath of fear in U.S. communities

Although some sanity crept into the Massachusetts Senate so now you may have to get a permit from the police to carry a machete.

Yeah, that'll show them machete wielding criminals.

Granted, there may be silly things like that happening down here in Lower Sheol (and there are plenty of people who live on our street that carry machetes, but then again, we are surrounded on three sides by plant nurseries) but Florida allows concealed guns, and allows their use! Perhaps Massachusetts should consider relaxing some of their gun control laws …

Oh wait, who am I kidding? This is Taxachusetts we're talking about—a state filled with well meaning Government workers who are here to help. No, really! Heaven forbid ordinary citizens take care of themselves.

Oh, sorry about those evil thoughts there. The Nanny State is only looking out for our interests and security.


More evil thoughts

After years of idealism, I have finally decided that I am sick and fucking tired of helping the disenfranchised and oppressed. I have a master's degree in social work, and I've worked in a number of different settings. I've been a social worker for Children's Protective Services, a therapist on a psych ward, and I've worked as a case manager for a non- profit that shall remain nameless. I've had a number of clients over the years that I would now like to thank for helping me come to the realization that certain people are beyond help. …

4) The crackhead mother with 27 cats: I called you in advance to set up our appoinmet. You KNEW I was going to be at your house that day and that I would be evaluating your progress in making your home habitable so that your kids could be returned to you. So why, oh why did you answer the door with a CRACK PIPE IN YOUR HAND???? Oh, it's not yours? You were just holding onto it for your neighbor? Sure, I'll buy that. Let me ask you something though. Are those your neighbor's cat turds overflowing in the kirchen sink? No, you're right, those litter boxes ARE expensive. Perhaps you shoud consider getting rid of a few of the cats so there will be room for your children. Just a thought. By the way, is that your neighbor's blood coagulating over there on the couch?

Via Mostly Cajun, A social worker finally snaps

The evil thought that this brings to mind?

Lots really. And none kinds towards welfare or it's recipients (but I realize that the six cases mentioned in the rant above are perhaps the extreme cases and don't represent the norm—at least I hope they don't represent the norm).

But the main thought is that the people mentioned above need a swift really XXXXXXX hard kick to the ass head ass all over and reality shoved in their face.

Or perhaps we could ship these people to the Massachusetts Senate—they can help! They're from the Government!

(Oh my—am I turning … conservative?)

Wednesday, March 15, 2006

“Don't Be Evil”

… there are many reasons one might want to buy a share of a company. The company might pay dividends, or it might offer the potential of paying dividends in the future. If you buy a big enough share you can have a real say in how the company is run. Even if you don't have the wherewithall to buy a big enough share to let you run the company, your small share might be sought out by someone who does have the means to buy a controlling interest. Or being a shareholder might entitle you to certain special privileges. (We own some stock in a winery that gives a 30% discount to its shareholders. We've made back our original investments many times over on wine discounts alone. The stock also pays dividends.)

But with Google, none of those reasons apply. Google has explicitly stated that it will never pay dividends. They have explicitly said that they will offer no guidance to investors. Their stock structure is such that even if you bought every single publicly traded share of Google stock, Larry and Sergey would still control the company because their privately held stock has ten times as many votes as your publicly traded shares. So there is no hope that your shares will ever be of value to someone attempting a hostile takeover of Google. Such a thing is simply not possible, so no one will ever try.

Xooglers: Speaking of trouble …

I had given pass to Google over the whole China censorship thing primarily because they're a public company and as such, they are practically required by law to increase shareholder value, and by passing up China, they would be negligent in not entering one of the largest and fastest growing economies in the world (if not the largest and fastest).

But I have to question Google's status as a public company. If buying stock yields no dividends (not unusual for growing companies) nor gives influence or voting rights (and I can't think of any other stock like that), can the company be considered “public?” And if Google isn't “public” then why even enter the China market as it goes against their “Don't Be Evil” ethic? (as far as the stock market goes, I'm guessing this is Larry Page and Sergey Brin giving the finger to Wall Street, which I don't think is a bad thing in and of itself, but China? What are they thinking?)

Thursday, March 16, 2006

Mad libs in novel format

You know that's how these were actually written, right? Edward Stratemeyer and his factory/warehouses full of typists following the exact same outline, substituting details and names. It worked for his other creations, like Hardy Boys and Bobbsey Twins. There's been some books written about him and his process. He created hundreds of series, and within each series was its own pattern.

(Of course, the rumor is that Harlequin used to work this way too, sending out Mad-Lib like “outlines” that required the “writer” to just insert new names and synonyms to create each book with the same sensibility!)

Via theferrett, a comment about The lost outlines of “Carolyn” “Keene”

It's not like the thought of doing something like this hadn't crossed my mind.

Friday, March 17, 2006

Yeah, and a cigar is just a cigar

There are times when I wish I was still running my sites on tower, a 486 based system running at 33MHz with 32M of RAM and a 17G harddrive. That way, when somebody complains that their server isn't a quad-4GHz CPU monster with 3G of RAM and a few terabytes of diskspace, I can shove tower where the sun don't shine and mock their inadequacies, unless, of course, they're running a site like Slashdot (which of course, they're not).


“You mean they sell more than just this type?”

Of course, not all is bad:

I wrote about the state of the Thin Mint two years ago. I promised an all-natural Thin Mint recipe for you. It took me two years, but as promised, here it is … No shortening, no trans-fats from partially hydrogenated vegetable oils, no weird, processed cake mix cookies—just good old-fashioned butter, cocoa, vanilla, sugar, chocolate, whole grain flour! and peppermint turned into delicious, thin minty goodness.

Via flutterby, Thin Mint Recipe— homemade and all-natural

These are one of my favorite cookies (and for the last few years we've bought an entire case of 'em and stored 'em in the freezer so we could have delicious Thin Mint Goodness all-year round) but an actual recipie?

Oh my!

There's only one down side …

Saturday, March 18, 2006

A comedic series of setbacks

[The events described herein actually happened yesterday, but technically spilled over into today, so there you go. —Ed]

Well, that was certainly pleasant.

What was supposed to be a simple upgrade dominoed into a full scale fiasco.

But first, a bit of setup.

At The Company, we have seven name servers. Two are used by all the computers here to resolve DNS queries only; no configuration changes are required on these two machines and therefore are not part of this story.

Four of the name servers are authoritative name servers for our domains. These machines will only respond to queries on the domains we host; all other queries (like recursive DNS queries) are ignored.

To make things easier on us, the remaining name server actually hosts all the zone files and pushes them out to the four authoritative name servers (in effect, the four authoritative name servers are slaves of this one server, but the outside world will never see this server). Therefore, we can make changes to the zone files on one server and have the changes automatically pushed out.

That still leaves the problem of new zones being added (which is a sore point with me with reguard to bind). Any new zone that's added, the configuration of not only the one master server needs changing, but the configuration file of the four authoritative (aka “slave” servers) also require changing. While I have a script that will generate all five configuration files, we still need to copy four of the configuration files to each of the servers.

So I wanted to automate the copying of the new configuration files and restarting the name servers on all the authoritative name servers when the configuration files are created. And to do that, I needed to set up a trust mechanism so that the server that has all the zones can copy a configuration file and restart the nameservers without intervention. Easy enough to do with ssh.

But there were some … interoperability issues between the various machines with respect to their various instances of ssh (bascially, scp (secure copy) didn't work due to protocol differences). Easily solved by installing the latest version of OpenSSH on each machine. Well, actually, installing the latest version of zlib, then OpenSSL and then OpenSSH.

This master server, the one with all the zones, didn't need this upgrade, so I didn't bother with that. The four authoritative name servers, however, needed the upgrades. Now, I should mention at this point that the four authoritative name servers are all Cobalt RaQs—sure they're pretty old, but at 1U high and a low power consumption, they're fine for doing the dedicated task of resolving DNS queries.

The upgrade went smoothly on three of the machines—pretty much:

# cd zlib-1.2.3
# ./configure
# make
# make install
# cd ../openssl-0.9.8a
# ./configure
# make
# make install
# cd ../openssh-4.3p1
# ./configure
# make
# make install
# /etc/rc.d/init.d/sshd stop
# /etc/rc.d/init.d/sshd start
#

On the fourth machine (which happened to be the primary of our authoritative name servers) the make install of OpenSSH failed. Of which I didn't notice.

Oops.

The result of which was a borked program that refused to run, and no backup of the working version.

Oops.

Somehow, I ended up being logged out of the machine. And without a working sshd there was no way I could log back into the machine.

Well, not easily.

You see, the Cobalt RaQs don't have video or keyboard ports. They're designed as servers—they don't really need such devices. They do, however, have a serial port you can log in through.

So I hook up a serial cable from a nearby server to the RaQ in question and that's when I got hit with Murphy's Law yet again—the serial login was disabled.

Hrm.

Okay. Take the machine out of the rack, take the drive out of the machine, hook it up to my workstation, change it so one can log in through the serial port, put the drive back in, power up the machine and log in through the serial port.

So I start to take the machine out of the rack when I get hit with Murphy's Law for a third time—one of the screws is stripped, so therefore I can't get it out of the rack.

Okay, now what?

I know that Linux (which is what runs on this Cobalt RaQ) can support a serial console. Maybe I can boot into single user mode and go from there.

Nice idea, but apparently the Linux kernel for these boxes don't support the serial console (as incredible as that may seem). Yes, I can see the shell prompt in single user mode, but everything I type just goes into the bit bucket (and this I try several times, with different arguments to the Linux kernel to try to get it to use a serial console). And each time I do this, I end up having to shut the machine down, which leaves the file system in an inconsistant state, requiring the use of fsck to fix.

Okay, so I really need to get the machine out of the rack. But how to do that? I'm looking at the situation when I get an idea: I'll attack the problem from a different angle. Literally! The Cobalt RaQ has two “wings” (one on either side) which are attached by screws, and it's these “wings” which are then screwed into the rack. I can get access to the screws holding the wing in place. So, I effectively remove the wing from the RaQ and it slides right out.

Then it's to my workstation. Open up the Cobalt RaQ, remove the drive, attach said drive to the external USB drive case, turn it on, run fsck on the drive, edit the configuration to allow logins from the serial port, umount the drive, power it down, remove it from the USB drive, put it back into the RaQ, power it on and—

—have it fail to boot.

You see, when I “fixed” the drive using fsck on my workstation, it marked the drive as being a newer version of the filesystem. Which the fsck on the Cobalt RaQ doesn't support (as part of the boot up sequence, it automatically checks the drives using fsck).

Murphy strikes again.

Okay, attach the drive to my workstation, copy over a newer version of fsci, move the drive back to the RaQ and power up—

—only to have it fail yet again. Apparently, the old version of fsck used options that the new version of fsck doesn't like. So back to the workstation, modify the startup scripts to remove the options fsck is bitching about, try again, move the drive back to the workstation because I apparently edited the wrong startup scripts and try again only to find out I mucked it up again, so back to the workstation …

It was about half an hour of moving the drive back and forth before I got the RaQ to finally finished booting and to the point where I can log in sucessfully through the serial port.

Start the OpenSSH install from scratch.

# tar xzvf ../archive/openssh-4.3p1.tar.gz
# cd openssh-4.3p1
# ./configure

Only now configure failed!

Huh?

I check, and gcc failed with an internal error!

I try a quick C program and yup, gcc is totally borked now.

At this point, the only thing left is to reinstall the operating system.

Now, the installation procedure for the Cobalt RaQ 3 and 4s requires another PC, which you boot using a special CD. The PC in question must have a single network port and one (1) CD drive. Anything else will confuse the installation CD. Once this CD is booted, you then force the Cobalt RaQ to do a netboot. Ths PC will see the netboot request, and feed it an installtion program which will install Linux on the Cobalt RaQ.

Because of the requirements of the installation CD, I have to use P's computer as it fits the requirements of the installation CD. But P's computer is on its last legs, sounding much like a dying diesel engine. But it's not dead yet.

Only it hung during the installation, having difficulty reading the CD.

I try it again. Same thing.

I turn off P's computer for half an hour. You know, let it cool down. Try it again. Same thing.

Smirk then suggested another computer in the office.

Same thing—it hangs.

It was then I remembered something from my past experiences with installing Cobalt RaQs: don't use the Cobalt RaQ 3 installation disks! They don't work. Use the Cobalt RaQ 4 installation disks instead (even if you are installing on a Cobalt RaQ 3, which I was).

That worked.

So now I had a fresh install of the operating system.

But no ssh.

Now, how to get files to the box … okay, the Cobalt RaQ has ftp. Okay, compile an FTP server on my workstation. Then use ftp to transfer zlib, openssl, openssh and bind to the Cobalt RaQ. Spend the next couple of hours compiling.

Finally had it back up and running and could finish the job I started some eight hours previously.

Blarg.


Sucess

Yes!

Every few months for the past year or two, I've been trying to make cornbread.

My Great Aunt (my Mom's Aunt) Freddie (yup, that is her real name) would made this wonderful cornbread and the thing was—I knew how she made it too. Using two packages of Martha White's Cotton Pickin' Cornbread™ Mix (just add water) baked in a hot skillet in the oven (you pre-heat the skillet).

Only that has never worked for me. Either they came out too flat (used too big of a skillet) or stuck like crazy to the skillet and the results where okay at best.

Tonight, I went ahead and made cornbread from scratch (flour, corn meal, baking power, baking soda, salt, egg, butter milk, shortening) and made sure the skillet (the 8″ one) was well greased.

It popped right out of the skillet and was the right thickness.

Woot!

And boy, did it go fast!

Sunday, March 19, 2006

Living la vida future

[Panoramic of my desk]

Woot!

Earlier last week Spring mentioned something about our cell phone plan allowing us to get new phones for free. I wasn't interested unless one of the new free phones came with a camera.

There was—the Sony Ericsson Z520a.

One of the features is the “panoramic picture” (as you can see above), which is something that my current camera can't do.

But like all digital cameras, it tends to suck in low light conditions, as you can see from my first photo I took:

[First Post!]

And with no camera mount, it'll be difficult to take low-light shots with this thing. But hey, it's a camera, in a phone. It's the future, now.

Now all I want is my flying car.

Update on Thursday, May 11th, 2006

Don't bother getting one of these phones. While the features are nice, they're quite fragile and the display is prone to wig out if dropped.

Monday, March 20, 2006

Not that it might help all that much

I suddenly realized something. About two and a half years ago I made a change to the way robots can index my site and as a result, the main page (the one you get to when you go to http://boston.conman.org/) should not be indexed at all (but links followed).

This probably had an effect on the ads Google AdSense served up for that page (or any other page that had more than one entry on it).

Hmm.

It's a quick change so that the main page is indexed, but I wonder if this will have any effect to the effectiveness of Google AdSense.

I'm guessing … no.

But I might as well try it anyway.

Tuesday, March 21, 2006

Unintended consequences

While in the process of solving a secure certificate issue with one of our customers I ended up having to debug an email issue for the same customer before continuing with the resolution of the primary issue (just have to love those “one-step forward, two-steps backwards and a sidestep” issues).

Anyway, the email issue involves SPF and it's a situation that frankly, never crossed my mind.

conman.org has an SPF record that basically states: “only hosts listed as MX hosts for conman.org and IP addresses XXX.XXX.XXX.XXX through XXX.XXX.XXX.XXX are allowed to send mail from conman.org and no others.” No problem there, until email is forwareded!

I sent a test message from sean@conman.org to root@XXXXXXXXXXXX, which is then forwarded to an account (that all root@<the various servers at The Company> get forwarded to) that ultimately ends up in my work mailbox. Now, all email for The Company goes through a spam firewall, which, among other things, checks for SPF. So, the mail message I sent went sean@conman.orgroot@[customer]rootmail@[The Company root catch-all account], but when it hit the spam firewall at rootmail@[The Company root catch-all account] the mail was still from sean@conman.org, but it was coming from the customer's server, which isn't listed in my SPF record (see above), so it was blocked from being delivered.

Lovely.

Draconian SPF records break in the face of email forwarding. Email forwarding is a standard feature of email. SPF is pretty pointless without draconian records (well, non-draconian records means one can mark an email as suspicious but without support for such tagging why even bother?).

So why bother using SPF then?

Sigh.


Two Pictures from The Corporate Offices of The Company

[The Walkway outside The Corporate Offices]

I'm still having fun with the camera phone and its ability to take panoramic pictures (wow! What a neat feature!). Anyway, the shot above is of the walkway just outside The Corporate Offices of The Company, where you can bask in the expanse that is … The Company.

[The Office I share—that's my computer on the right]

This shot is of The Office I share with P. That's P on the left (he's been feeling a bit pixelated all week) in front of his computer, and that's my computer on the right. The text you see is the screen saver, displaying some code I've written.


A long night in the office

For both my friends from college (especially those that were at the New Year's Eve 1992/New Year's Day 1993 party) and for the Sunday Gamers crashing Gregory's office every few months between 2000 and 2002 (or there abouts) is a long night in the office (via Amanda Robbins).

Wednesday, March 22, 2006

Once more into the tarpit

It's been a while since I last reported on the Labrea Tarpit we're running. In the almost two months since I've mentioned it, it's just been sitting on a shelf, tarpitting away. As I reported back then, it seems that it's more effective at telling us what's attacking us (IP address) and where (port number) than actually slowing down the attacks.

Yesterday, Dan the Network Engineer asked if he could get regular reports of what IP addresses are hitting us hard. So I modified ltpstat to generate the requested information (I'm not bothering to mask the offending IP addresses):

Attacking IP addresses
IP AddressNumber of “connections”
81.248.42.1337207
160.79.143.98846
59.21.72.1691
216.48.7.19552
82.76.161.38487
217.132.178.97484
193.15.92.167421
66.131.62.208370
64.182.81.74329
216.82.220.172323

I also had it generate a list of ports being attacked. Again, nothing surprising here:

Top 6 ports captured by Labrea since the last purge
Port #Port description# connections
Port #Port description# connections
4899Remote Administration8,892
139NetBIOS Session Service5,081
1433Microsoft SQL Server1,644
135Microsoft-RPC service1,071
445Microsoft-DS Service914
80Hypertext Transfer Protocol850

(Just a note—I was able to generate this data from the existing reports that ltpstat generated, but pulling just this information out of said reports required at least three processes per report. It was just as easy to have just the information required for this to be generated by ltpstat itself)

Dan the Network Engineer is planning on taking these reports and automatically blocking the offending IP addresses from scanning our network. Should be a pretty sweet setup once it gets going.


Two Pictures from The Data Center at The Company

[Look!  Blinken lights!]

Two more photos, this time from the Data Center.

[Yeah, the color balance is off.  It's a camera phone!]

Can you tell I really like this panoramic feature of the phone camera?

I also decided to add this vertical panoramic shot I took to the sidebar there to the right. Just because.

Thursday, March 23, 2006

Internal Corporate Malfeasense

This is all types of messed up.

Negiyo had an internal trouble ticket system, called TTTS. Built in-house it wasn't a bad system and since it was developed within Negiyo, it was pretty well integrated workflow wise.

But a few years ago it seems it because too slow to be usable and so a search for a replacement commenced. And this is where things become unclear. A new system, Cowbell was found to replace TTTS. Hefty new hardware was bought. Hefty new software (Oracle for one) was bought. And Cowbell was bought (and whoever was responsible either received a hefty kick-back, received incredible sex or was totally blinded by the “Silver Bullet” bill-of-sales they were presented with).

Much wailing, knashing of teeth and late night hacking sessions and Cowbell was on the floor for all of Negiyo to use.

Now, when TTTS was in use, it was expected that Level 1 Technical Support Person (L1TSP) would be able to handle (either resolve or escalate) 60 cases in average per day (around 7.5 minutes per case). Unfortunately the expectations of Cowbell vastly exceeded what Cowbell could actually handle and the average number of cases a L1TSP was expected to handle dropped to about 20 (or one case every 22.5 minutes).

And even that is pushing things. A person new to the system might be lucky to get one case out per hour.

It's not that the technical issues the L1TSPs are expected to troubleshoot are harder. In fact, they haven't really changed since TTTS was in use, and in most cases, the technical issues only take about five minutes on average to troubleshoot. It's looking up customer information, gathering notes, collecting notes, writing the case history and wrapping things up that takes fifteen minutes or more under Cowbell. Cowbell requires IE (whereas TTTS could use any browser) and to get anything done (say, looking up related tickets) you have to have a separate instance of IE running (not window—an actual second copy of the program running) and often times, three or more instances of IE are required. As such, there is currently a three month backlog of cases due to the time required to handle such cases under Cowbell.

A few months ago some mid-level manager realized that if the hardware bought for Cowbell had been used for TTTS, then the whole issue of TTTS being too slow to use would never have been an issue. Too late to change back now.

Until Negiyo got a second bill from Cowbell for five figures.

It turns out that one just doesn't buy Cowbell, one leases Cowbell for five figures a year, every year, year in and year out.

Any savings for buying a pre-canned solution over maintaining an in-house built solution just went out the window (and the parties responsible for selecting Cowbell can no longer be found, presumedly they were either sucessful in spreading the blame around, or left the company two days after the purchase to rape and pillage other companies for greener pastures).

So beginning in April they're going back to TTTS.

But they're still abusing training new hires on using Cowbell. And out of about a dozen new people hired, I think there's only one that remained in training (yes, Cowbell is that bad).


Some more thoughts on Internal Corporate Malfeasense

The whole thing with Negiyo and Cowbell is just an example of a much wider phenomenon (do doo bee doo doo) whereby some high-up muckity muck (or even some mid-level muckity muck) makes a sweeping change that costs the company (or heck, government agency or even a non-profit organization) gobs of money, time and energy with no repercussions happening to the person making the change.

Now, I'm not saying a person should be fired for making a mistake, because Lord knows I've made plenty of mistakes, some of them real doozies that cost the company I was working for lots of money. We (hopefully) learn from our mistakes and for a while today I was real conflicted on this because I wanted to take the person reponsible for Cowbell out back and apply a hefty clue-by-four upside their head.

And it might have been a mistake on their part.

But I was able to identify the dichotomy I had—on the one hand, I felt that releasing the lawyers hounds lawyers on this person was fully justified for loosing thousands, if not millions, of dollars, yet on the other hand, it might have been an honest mistake on their part—TTTS was slowly dying and by going to an outside source for the trouble ticket system, the company might have lowered their operating costs and gotten better performance which turned out not to be the case (and like I said, I've made mistakes, like using Java for Project Brainstorm). The resolution I found is in living with the mistake!

Had the person (or people) responsible for choosing Cowbell (switching back to Negiyo here) had to use Cowbell on a daily basis and been forced to admit “Yup, this was a mistake. A million dollar mistake, but a mistake nonetheless,” I don't think I would have nearly the hatred for the person (or people) as I do, since (from what I hear) it's plainly clear that the person (or people) responsible for the decision aren't obligated to live with the results (and in my case, the Java version of Brainstorm didn't pan out, so I had to go on and implement it two more times).


An Open Letter to Marlene

From: Marlene Bender <scanforlife@webband.com>
To: sean@conman.org
Subject: Link exchange with your site http://boston.conman.org
Date: Thu, 23 Mar 2006 23:14:22 -0500

Dear Webmaster,

My name is Marlene Bender, and I run the web site Work at Home Ideas and Opportunities:

http://XXXXXXXXXXXXXXXXXX XXXXXXXXXX/

I recently found your site http://boston.conman.org and am very interested in exchanging links. I've gone ahead and posted a link to your site, on this page:

http://www.XXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXX/resources_business_2.html[that's the wrong page, it's actually on http://XXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXX/resources_business_4.html but who cares?]

As you know, reciprocal linking benefits both of us by raising our search rankings and generating more traffic to both of our sites. Please post a link to my site as follows:

Title: Work at Home Ideas and Opportunities
URL: http://www.XXXXXXXXXXXXXXXXX XXXXXXX/
Description: Work at home ideas and opportunities

Once you've posted the link, let me know the URL of the page that it's on, by entering it in this form:

http://www.XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXX

You can also use that form to make changes to the text of the link to your site, if you'd like.

Thank you very much,

Marlene Bender

Dear Marlene,

I may call you Marlene, right? Okay.

Dear Marlene,

Thank you so much for your email. But i seriously have to wonder what you are thinking to include me on a site about at-home businesses when I don't have an at-home business. Nor do I have any real insight into making tons of money (much to the consternation of my Dad). I mean, I've only made $3.03 from Google AdSense; I'm not giving up my day job any time soon.

Besides, this is a blatent attempt to raise your own PageRank™ value (which is currently at zero I see) by getting me (who has a PageRank™ of five for The Boston Diaries) to link to you. Normally I'm not stingy with the links, but for this? Especially when you can't even send me the proper link?

Hah!

Oops. I meant—

Sorry, but I'll decline linking to you.

Friday, March 24, 2006

Kicking and screaming

Just heard from a friend that the Cowbell team lost a week's worth of work, which would push the deployment of the original TTTS back a week, maybe two.

Sounds like Cowbell isn't going quietly into the night, but kicking and screaming during the day.


It was never about education

In 1888, the [US] Senate Committee on Education was getting jittery about the localized, non-standardized, non-mandatory form of education that was actually teaching children to read at advanced levels, to comprehend history, and, egads, to think for themselves. The committee's report stated, “We believe that education is one of the principal causes of discontent of late years manifesting itself among the laboring classes.”

By the turn of the century, America's new educrats were pushing a new form of schooling with a new mission (and it wasn't to teach). The famous philosopher and educator John Dewey wrote in 1897:

Every teacher should realize he is a social servant set apart for the maintenance of the proper social order and the securing of the right social growth.

In his 1905 dissertation for Columbia Teachers College, Elwood Cubberlythe future Dean of Education at Stanfordwrote that schools should be factories “in which raw products, children, are to be shaped and formed into finished products … manufactured like nails, and the specifications for manufacturing will come from government and industry.”

The Educational System Was Designed to Keep Us Uneducated and Docile

If true, it would certainly explain the extreme dumbing down of US schools, especially since we no longer really have an industrial base anymore.

Reading the entire article is scary. Very scary, if true. So is the video I linked to above, if only the fact that the stuff that works is being actively ignored by those intrenched in the Educational System.

Saturday, March 25, 2006

Nothing to see. Move along.

I'm afraid there isn't much to write about today. Very quiet, got some good sleep, but other than that, there isn't anything else to say about today. But I felt that I needed to post something here.

Lame, I know.

Ah well.

Sunday, March 26, 2006

It's not everyday you see bikers hanging out with knights

Through a friend of a friend, we all attended a benefit BBQ for a woman in need of an organ transplant. It was a rather odd gathering, being a mixture of bikers and knights held at a local Moose Lodge.

[The BBQ Scene]

Several bands showed up during the BBQ but the first one was memorable if only because he was so white, trying to sing funky 70s tunes like “Play that funky music white boy” (and while he could play it, singing it was another matter entirely). The other bands weren't bad, but not nearly as memorable as Funky White Boy.

[The Char Hut] [A metric buttload of food]

The food itself was your standard BBQ fare, chicken, pork, baked beans, cole slaw, potato salad and pasta salad, all quite good, but way too much.

Spring's friends (who invited us) belong to SCA (the `knights” part of the mixture) and the three knights who did show up donned their armor and fought amongst themselves—I suspect the bikers in the crowd knew better than to tangle with these guys.

[Marching to the field of battle] [Clash of the Knights]

I actually didn't see many bikers, but they were in attendance.

[There were two more rows of bikes behind me]

I suspect all the bikers were inside the main pavillion where the beer and bands were located.


Zombies, mutants … is there really a difference?

After the benefit BBQ Spring and I dropped The Kids off at Casa New Jersey and met up with her friends to see The Hills Have Eyes, the remake of the 1977 “classic” The Hills Have Eyes (at the time, I thought the title sounded familiar, but I had never seen the original, nor knew what either film was about).

During the opening credits, what with all the nuclear Armageddon imagry being bandied about, I thought this was going to be your standard Zombie flick, but I was wrong—it turned out to be your standard mutant flick, about a family travelling through the desert getting waylaid by nuclear-devestated mutants from all the nuclear testing done by the US during the 50s and 60s.

Horror films are not my thing and I personally didn't care for the film all that much, but I was surprised at the number of survivors still standing at the end of the film, but like in most horror films, the “victims” all do very stupid stupid things, like not looking in the back seat, blowing up their only shelter, not telling the rest of the group about a dead pet—stuff that had they been just a tad smarter … well … okay, the movie would have been over in about 40 minutes.

Ah well.

Monday, March 27, 2006

Email tracking

Since Friday, I've been trying to track down an email problem, and I still haven't been able to solve it. Part of it was trying to figure out what the problem was from the initial reporting of it:

Happening again with XXXXXXXXXXX XXXX—this time the email was from EVE [I'll be referring to the individual email addresses by name—they have no relation to the actual email addresses involved, but will make it easier to follow along. Trust me on this, it gets confusing] and it did not come through. Any suggestion?

It took about four exchanges and checking the account information before I had a handle on what exactly was happening. The actual events were something like this: DAVE sends a message to CAROL. The address CAROL then automatically forwards the email to ALICE (a local mailbox on the server) and BOB (somewhere else on the Internet). DAVE's messages get through. EVE (from the same domain as DAVE incidently) sends a message to CAROL. The message is delivered to ALICE, but not to BOB.

I have to figure out why.

And that, my friends, is easier said than done.

We have mail logs going back about a month. Five log files (including the current one) in total, and each one averages about 800M in size (about 4,000,000 lines of logging information each). Log files. Which means a linear search through the file for any type of information needed. Yeah, it takes time, but I can do other things while I'm running a search. The major problem is that the information I need to check a single email through the system is spread out throughout the log. For instance, it took me about 10 minutes to fish the following information out of the log files for a single message (manual search, output formatted by hand):

message-id: 200603271643.k2RGhesn032068

	queue-id: k2RGheP6012025	
		from: DAVE
		to:   CAROL
		stat: queued
		at:   11:43:40

	queue-id: k2RGhesn032068	
		from: DAVE
		to:   CAROL
		stat: sent 
		at:   11:43:40

	queue-id: k2RGheP6012025
		to:   ALICE
		stat: sent 
		at:   11:43:42

	queue-id: k2RGhgR2032089
		from: DAVE
		to:   ALICE
		to:   BOB
		stat: sent
		at:   11:43:45

This single message took a total of five seconds to be processed. In that five seconds, the information was spread across eight lines of the log file, among 30 such records made in that five second period. It took me four searches to retrieve the eight lines from the log file. You see, each email message (and this is true globally) has a unique message-id, but sadly, only two of the log records had the message-id. The message ended up with four different queue-ids (and that's my term for it) within the system (which is why it took multiple searches to obtain all the information).

And since we don't have a program to analyse the mail logs, this has to be done manually right now.

It also turns out that the mail from EVE isn't logged as being from EVE, but from MALLET, due to the software EVE's using to send email. DAVE is also being logged as coming from MALLET (same software, or email server), which is further confusing the issue (and since the message 200603271643.k2RGhesn032068 was delivered sucessfully, I'm assuming it's from DAVE and not EVE).

Sigh.

Even the thought of writing a program to analyze the logs is giving me a headache.

Update on Tuesday, March 28th, 2006

Never did figure out where the supposed missing emails went.

Tuesday, March 28, 2006

Where have all the Salon articles gone?

I just had a weird thought—I haven't seen a link to a Salon article in a long time. They're still around (I just checked) but I have to wonder—why haven't I seen a link to a Salon article in a long time? Is it because the quality of the content has fallen? Or is it (what I suspect) that the content is hidden behind annoying ads and bloggers are relunctant to link to such an annoying site?

Wednesday, March 29, 2006

You see, it's with this attitude that I'll never make money with my journal/blog.

From: XXX XXX <XXXXXXXXXXXXXXXXXXXXXXXX>
To: "sean@conman.org" <sean@conman.org>
Subject: We want to buy links from your http://boston.conman.org/ website
Date: Wed, 29 Mar 2006 15:50:31 +0200

Dear Webmaster

My name is XXX XXX, I am the Business Development Manager for XXXXXXXXXXXX XXXX

XXXXXXXXXXXX is currently offering several business opportunities for your website. We will pay you $5–$25 per month to place one or more links on various pages of your website to our clients' sites.

I would like the link placed at the bottom of the page. But, if you are unable to place the link at this exact location, I am certainly willing to find other areas that are acceptable for you.

If you are interested in becoming a partner with us, I will send you a detailed list of the available link advertisements, along with a breakdown of the different amounts we will pay for the links.

Please feel free to contact me with any other questions or comments at my email address.

Best Regards,

XXX XXX

Business Development Manager

XXXXXXXXXXXXXXXXXXXXXXXX

The last time I received a solicitation, I only made $3.03 a year, but this one is willing to pay $5 per month (yeah, I really expect to get the full $25). Hmmm … bottom of the page, eh? I doubt anyone really reads that far down and the likelyhood of anyone seeing those ads are pretty slim so I'm guessing they're using me only for my PageRank™.

But I think I'll play along, and see just how far they're willing to go for a little PageRank™ juice. Who knows? I may even make enough to get two cups of coffee.


Good Lord, Douglas Adams may have been on to something!

This unexpected connection [that quantum physics and prime numbers are inextricably linked] has given us a glimpse of the mathematics that might, ultimately, reveal the secret of these enigmatic numbers. At first the link seemed rather tenuous. But the important role played by the number 42 has recently persuaded even the deepest skeptics that the subatomic world might hold the key to one of the greatest unsolved problems in mathematics.

Via YARGB, PRIME NUMBERS GET HITCHED (emphasis added)

I'm sure it was purely coincidental that Douglas Adams picked 42 as the Ultimate Answer to Everything, but still … it's … mind boggingly weird for this to happen.

Thursday, March 30, 2006

I wonder how the Sunday D&D players would react to mapping a 9-dimensional dungeon?

As a kid (we're talking middle school here) I was really interested in time travel and higher dimentions (but I never liked the theory that time was the fourth dimension since it's not orthoganal to the three spatial dimenions we live in—for one thing, time only goes in one direction). I read such books as Flatland, the Planiverse and Geometry, Relativity and the Fourth Dimension and I got to the point where I could fairly easily visualize the various geometries in my head (the fourth dimension is hard to verbalize and I don't have a full mental image of it, but I can grasp at it).

So it's understandable that I was up way too late last night (or way too early this morning—take your pick) pouring over the Starmaze, an incredible 9-dimentional maze and the efforts required to map such a construct. It's an incredible map—half the size it normally would be due to it being hightly symetrical, so it's folded in on itself and each “room” actually represents two distinct locations represented by the colors red and blue (if you enter a room through a red passage, you can only leave through a blue passage, and vice-versa).

Also interesting (at least to me—I'm under no delusion that this has any interest whatsoever to anyone but a very select few) was the description of walking through such a space (if it actually existed).

The description gets a bit too metaphysical at times, dipping into Astrology and the I-Ching, but that may have been a technique used by the author to help him map the space and provide a logical structure. Still, it comes across as being a bit too New-Agey for my liking.


Now this is funny

I'm sorry, but this has got to be the most incompetent spammer I've seen yet:

From: "Geoffrey" <nicholas@paramed.biz>
To: <sean@conman.org>
Subject: *****SPAM***** Full of health? Then don't click!
Date: Thu, 30 Mar 2006 06:58:30 +0100
X-Spam-Flag: YES
X-Spam-Checker-Version: SpamAssassin 3.0.4 (2005-06-05) on mymail.superclick.com
X-Spam-Level: ********************
X-Spam-Status: Yes, score=20.7 required=5.0 tests=AWL,BAYES_80, DOMAIN_RATIO, HTML_90_100, HTML_IMAGE_ONLY_08, HTML_MESSAGE, MIME_HTML_MOSTLY, MIME_QP_LONG_LINE, MPART_ALT_DIFF, PLING_QUERY, URIBL_AB_SURBL, URIBL_JP_SURBL, URIBL_OB_SURBL, URIBL_SBL, URIBL_SC_SURBL, URIBL_WS_SURBL autolearn=no version=3.0.4

Spam detection software, running on the system “mymail.superclick.com”, has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details.

Content preview: […]

Content analysis details: (20.7 points, 5.0 required)

Spam Analysis
Points Rule Name Description
Points Rule Name Description
0.4 PLING_QUERY Subject has exclamation mark and question mark
3.2 DOMAIN_RATIO BODY: Message body mentions many internet domains
2.0 BAYES_80 BODY: Bayesian spam probability is 80 to 95% [score: 0.9223]
0.0 HTML_90_100 BODY: Message is 90% to 100% HTML
1.0 MIME_HTML_MOSTLY BODY: Multipart message mostly text/html MIME
0.0 HTML_MESSAGE BODY: HTML included in message
3.0 HTML_IMAGE_ONLY_08 BODY: HTML: images with 400-800 bytes of words
0.1 MPART_ALT_DIFF BODY: HTML and text parts are different
0.0 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars
1.0 URIBL_SBL Contains an URL listed in the SBL blocklist [URIs: famefed.net]
0.4 URIBL_AB_SURBL Contains an URL listed in the AB SURBL blocklist [URIs: famefed.net]
2.5 URIBL_JP_SURBL Contains an URL listed in the JP SURBL blocklist [URIs: famefed.net]
1.5 URIBL_WS_SURBL Contains an URL listed in the WS SURBL blocklist [URIs: famefed.net]
3.2 URIBL_OB_SURBL Contains an URL listed in the OB SURBL blocklist [URIs: famefed.net]
4.3 URIBL_SC_SURBL Contains an URL listed in the SC SURBL blocklist [URIs: famefed.net]
-1.8 AWL AWL: From: address is in the auto white-list

The original message was not completely plain text, and may be unsafe to open with some email clients; in particular, it may contain a virus, or confirm that your address can receive spam. If you wish to view it, it may be safer to save it to a file and open it with an editor.

Original message:

From: "Geoffrey" <nicholas@paramed.biz>
To: <sean@conman.org>
Subject: Full of health? Then don't click!
Date: Thu, 30 Mar 2006 06:58:30 +0100

I should note that I don't run any anti-spam software on my email server. Nothing. No filters. No scanning. No analyzing. It all arrives in my inbox.

And this is how this wonderful piece of spam came in, pre-spam marked and analyzed for my convenience.

Ah, if only all such spam came this way …


Charles Ponzi would be so proud

Google's stock has rebounded strongly since the S&P 500 inclusion announcement (going from about $340 to $395 in under a week). With already 8 BILLION dollars in the bank, Google just filed to sell 5.3 million more shares, which may add another 2.1 billion to the cash hoard. They also announced they completed the AOL deal.

Google Nears $400—Completes AOL Deal, Files to Sell More Stock!

The more I read about Google stock, the less I understand it. No dividends, no voting rights, yet a few billion dollars worth of stock is trading hands daily (and according to this calculation it adds up to about 15% of the GDP of the US (only it's not really counted).

OK look. What this means in real terms: 5 times more money is traded JUST IN STOCK BUYS/SELLS each day in GOOG than their entire yearly net profit. THAT is insane. If I were a GOOG employee who had my raises regulated to GOOG stock options (apparently they don't even own stocks they get a "goog coupon" to buy stocks over 4 years if their performance is good.), I'd be seriously stressing; and that would certainly hurt my job performance.

Stock Calculus (emphasis in original)

I know my Dad would say this is operating purely on the “Larger Sucker Theory” of stocks (which he also claims is a form of legalized gambling) whose only value is that which is perceived, but come on! At least other stocks give the some impression of being worth more than the iron oxide coating on some harddrives storing the ownership information (actual paper certificates? How 19th Century!). But GOOG? People actually buy it?

Then again, the explanation may lie in our crumbling educational system

Friday, March 31, 2006

It appears to be more common than I would have expected

A 20-month-old boy died after he swallowed magnets that twisted his small intestine and created a blockage, federal officials said. Three other children, between the ages of 3 and 8, suffered intestinal perforations that required surgery and hospitalization in intensive care. And a 5-year- old boy inhaled two magnets that had to be surgically removed from his lungs.

Nearly 4 million magnetic toy sets recalled (link via an email from Bunny)

Our own little magnetic episode wasn't caused by these toys (although we do have some of these toys) but by some actual refrigerator magnets, I'm surprised that this happens this often (and inhaling? As if swallowing wasn't bad enough?).

Saturday, April 01, 2006

Arlo Lipof's Gold

I was searching through my (physical) files when I came across this letter I found in a library book twenty years or so ago. It's not a complete letter—it appears to be from the second page and it included a hand drawn diagram.

On its surface, the [Banach-Tarski] paradox resembles the well-known puzzle involving tangrams, little pieces of paper cut into simple geometric shapes. Four such shapes can be assembled into a square that has an area of 64 square inches. Yet the very same pieces can also be assembled into a rectangle that has a greater area—65 square inches, to be precise. If you do not believe such a thing is possible, try cutting up the pieces as shown in my drawing.

If the little pieces of paper were instead pieces of gold, there would seem to be an automatic increase in wealth in going from the square to the rectangular configuration. Start with a square of gold, say, eight inches on a side and an inch thick. Then cut it according to the first figure. If the pieces are reassembled according to the second figure, an extra cubic inch of gold will have appeared. The extra cube would weigh approximately 4.3 ounces and at current prices would be worth about $160.

[64 square units, with specific cuts]
[65 square units, with specific rearrangement]

It goes on from there in increasingly dense prose and mathematics and it's signed “Arlo Lipof,” whom I never heard of, nor could I find any information about him at the time (nor can I even today).

Like I said, I found this some twenty years ago but there's no telling how old the actual letter is. I mean, I could figure out when gold was last $35 an ounce, but that still wouldn't tell me anything about the letter.

I remember my amazement at the time, to find such an incredible means of generating wealth, but being unable to even act upon it. I mean, here I am, a teenager. What was I going to do? Go to my parents? “Yeah, can I borrow a fifty thousand dollars? I want to buy 64 ounces of gold.” Like that would happen. Besides, where would one even buy bars of gold? Can one even buy gold bullion?

So the paper was filed away and forgotten.

But now that I'm an adult, it should be easier for me to get gold. Let's see … 64 cubic inches … 4.3 ounces per cubic inch … $580 an ounce … $159,616.00! Ouch!

Wonder if I can get a second mortgage on Casa New Jersey?

Sunday, April 02, 2006

“I'm fooling you and you don't like it!”

Biggest reaction yet to an April Fool's LayoutSpring liked it, Bunny (who does not have a website as far as I know, but she sent email, and yes, that's her real name) didn't care for it, and Mike had problems viewing it correctly, which I suspected as much, given the rigidity of the layout (any window less than 900 pixels across and the layout would be screwed up).

This years theme was drawing paper and the graphics were ones I stole from another blog (and I lost the link—sorry). I liked the look, but it proved to be less flexible for layouts than I wanted. It was an interesting experiment in CSS, and if you are using Mozilla or Firefox you can view this year's April Fool's layout (or the past ones I've done) by going to the menu and selecting “View → Page Style”.


Now, about Arlo Lipof's gold …

Yesterday I posted about cutting a square of gold in such a way that when reassembled, it appeared that you get more gold than you started with, and that it's related to the Banach-Tarski Paradox (which is a real mathematical theorm by the way).

I'm sorry to say that the cuts suggested won't generate any more gold (least everybody would be doing it and the price of gold wouldn't be anywhere near $585 an ounce (up $5 since yesterday I see). The Banach-Tarski Paradox works on mathematical cows, not real world matter. Had one actually cut gold as specified, you would still end up with 64 cubic inches of gold, with a slender 1 cubic inch gap in the middle. I remember as a kid spending a few hours proving that to myself (lots of algebra, slops, Y-intercepts, area of triangles, that type of stuff, all on a sheet of graph paper) because, you know, I wanted to make sure before asking the 'rents for $50,000.

Boy, talk about disappointing.

Monday, April 03, 2006

It'll never happen again, unless it does happen again …

From: Dad <XXXXXXXXXXXXXXXXXX>
To: The Kid <sean@conman.org>
Subject: SOMETHING THAT WILL NEVER HAPPEN AGAIN …
Date: Mon, 3 Apr 2006 03:02:06 EDT

On Wednesday of next week,

at two minutes and three seconds after 1:00
in the morning,
the time and date will be
01:02:03 04/05/06!

That won't ever happen again.

Hate to say this Dad, but it will happen again, next month, in Europe, when it will be 01:02:03 04/05/06 (they print dates DD/MM/YY instead of this crazy backwards US way of MM/DD/YY).

Also, according to Mark Evanier, it'll happen once a century and for those of you using non-military time, it'll happen twice!

Tuesday, April 04, 2006

What a slacker

I just found out that Smirk is in the hospital. He's been pretty sick for the past few weeks and was out of the office all last week, so it's not terribly surprising he's there.

On the plus side—he didn't swallow any magnets.

Update later today

After visiting him in the hospital, he sounded much better than he did on the phone. And he's only expecting to stay there for a few days, thankfully.

Wednesday, April 05, 2006

Failed to get the memo

So I'm still working with Lisp Scheme guile, and I'm still questioning if Lisp Scheme guile is a HLL or a HHL-wannabe.

I'm at a point where using a structure would be the best thing to use. A structure is nothing more than a collection of data (possibly of different types) that can be treated as a unit. In C, a typical structure definition would be (example from my own code):

/* data associated with a web-request */

struct http
{
  URLHTTP url;
  List    headers;
  Stream  io[2];
  int     version;
  int     status;
};

Pretty straight forward.

I check the the documentation and yes, it supports structures.

Cool!

So, here's how you define a “simple” structure with only two elements:

(define ball-root (make-vtable-vtable "pr" 0))
          
(define (make-ball-type ball-color)
  (make-struct ball-root 0
	       (make-struct-layout "pw")
               (lambda (ball port)
	         (format port "#<a ~A ball owned by ~A>"
                         (color ball)
                         (owner ball)))
               ball-color))
        (color ball) (struct-ref (struct-vtable ball) vtable-offset-user))
        (owner ball) (struct-ref ball 0))

What? Did Lisp Scheme guile take lessons from Forth? I have to manually construct the structures? This is a HLL? And not only do I have to write code to create structures, but I also have to write code to populate them. Anyone remember BASIC?

10 DIM A(20):FOR I=1 TO 20:READ A(I):NEXT I
20 DATA 3,4,23,88,2,3,4,9,10,12,44,87,8,7,6,13,33,8,29,0

(Which, incidentally, is another pet-peeve of scripting languages—the inability to have pre-initialized data at run time.)

I suppose I could always write code to make structures easier, but why should I have to abstraction to what is arguably the highest level programming language in existance? (although structures might be easier to use in Common Lisp, I don't have a Common Lisp environment to test it) Have structures fallen out of vogue in HLLs? Did I fail to get the memo?

Thursday, April 06, 2006

… 1500 webpages be reviewed for futher understanding and contextual perspective of the primary documents presented.

For academics, researchers, students and others who may wish to get to the “gist of the matter” immediately, there is a SHORTCUT MENU to the Primary Documents on this website located just below on this Opening Page. It is, however, recommended that the entire website's 1500+ webpages be reviewed for further understanding and contextual perspective of the primary documents presented.

The OPENING PAGE: QUFD: Einstein's Legacy!

I just love Crank Dot Net, a site that links to a slew of crankpot websites, tags them (the one above is tagged “grand unification,” “quantum mechanics,” “philosophy,” “consciousness,” “new age” and “religion”) and ranks them (the above: “crankiest”).

What caught me above was the bit about reviewing the 1500+ pages to understand what the site is about, but the site as a whole only ranks as “crankiest.” The best sites are those labeled “illucid” (and yes, the site being linked is … well … the individual words are in English but I can't quite say I understand what they mean in conjunction with each other, which pretty much defines the word “illucid”).

1500 pages.

Heh.

Friday, April 07, 2006

I think I love New Hampshire

[Art.] 10. [Right of Revolution.] Government being instituted for the common benefit, protection, and security, of the whole community, and not for the private interest or emolument of any one man, family, or class of men; therefore, whenever the ends of government are perverted, and public liberty manifestly endangered, and all other means of redress are ineffectual, the people may, and of right ought to reform the old, or establish a new government. The doctrine of nonresistance against arbitrary power, and oppression, is absurd, slavish, and destructive of the good and happiness of mankind.

Via Fans of the Adventures of Brigadier General John Stark, New Hampshire State Constitution, Article 10

If one had to change the wording on the Second Amendment of the United States Constitution, this is what should replace it. And if you think I'm a crazed radical for thinking such thoughts, then I'm in good company (“God forbid we should ever be 20 years without such a rebellion … What country can preserve its liberties if rulers are not warned from time to time that their people preserve the spirit of resistance?” –Thomas Jefferson, author of the Declaration of Independence and the Third President of the United States; he's also quoted as saying, “I hold it that a little rebellion now and then is a good thing, and as necessary in the political world as storms in the physical. Unsuccessful rebellions, indeed, generally establish the encroachments on the rights of the people which have produced them. An observation of this truth should render honest republican governors so mild in their punishment of rebellions as not to discourage them too much. It is a medicine necessary for the sound health of government.”)

Perhaps a move to New Hampshire is in order?

Saturday, April 08, 2006

I think Forth is a higher level language than Lisp

The preceding chapter discussed the list, Lisp's most versatile data structure. This chapter show how to use Lisp's other data structures: arrays (including vectors and arrays), structures, and hash tables. They may not be as flexible as lists, but they can make access faster, and take up less space.

Chapter 4, ANSI Common Lisp

I'm tempted to read that paragraph as:

The preceding chapter discussed the list, Lisp's most versatile only data structure. This chapter show how to use Lisp's other badly implemented data structures: arrays (including vectors and arrays), structures, and hash tables. They may not be as flexible slow as lists, but they can make access faster and at the same time, more tedious, and take up less space.

Chapter 4, ANSI Common Lisp

But I'm better than that.

Yes, structures in Common Lisp are a bit easier than in guile:

(defstruct foo
	x
	y)

You have the name of the structure and each field. The (defstruct) function, however, will go ahead and make several functions for you to help “manage” the structure, such as (make-foo), (foo-p) (foo-x) and (foo-y).

Yes, by declaring a structure, one ends up with a function per field, plus two additional functions. So one goes:

(defstruct foo
	x
	y)

(setf a (make-foo))
(setf (foo-x a) 42)
(setf (foo-y a) 12)

Which to me doesn't make any sense. And to describe why it doesn't make sense, I have to go into some depth about Common Lisp symbols. A symbol in Common Lisp is what most people would consider a name. In (setf x 42) both setf and x are symbols. But internally symbols are just more than a name. Way more.

A symbol is also a type unto itself in Common Lisp (as in Scheme, but there, they're way simpler) and contain more than just its name:

Layout of the Common Lisp Symbol foo
Name foo
Value 42
Function(some internal pointer to code)

There are a few other fields, like which package it's in, and property lists (a series of name/value pairs, much like Common Lisp's associated lists, but aren't stored or implemented as associated lists—go figure) that aren't germane to this discussion, so they're left out.

But notice that each symbol has both a “function” and a “value.” That means one can define setf to have a value, like:

(setq setf 42)

A parenthetical aside: “But wait a second,” you say, “didn't you use (setf) above to set the value?” Yes, but one can also use (setq) to make sure one sets the “value” of a symbol to a given value. (setf) is now preferred over (setq) because it's more generalized:

(setf {place value}*

A generalization of setq: stores in the locaiton associated with each place the value of the corresponding value expression. If a value expression refers to one of the preceding places, it will get the new value. Returns the value of the last value.

A valid place expression may be: a variable; a call to any function designated here as “settable” so long as the relevant argument is a valid place; a call to apply whose first argument is #'aref, #'bit, or #'sbit; a call to an accessor function defined by defstruct; a the or values expression in which the argument(s) are valid places; a call to an operator for which a setf expansion has been defined; or a macro call that expands into any of the preceding.

Hey! I didn't write this crazy language! And thus ends the parenthetical aside.

Now, given that each symbol can have both code and data associated with it, why one couldn't have done:

(defstruct foo
	x
	y)

(foo a)
(setf (a x) 42)
(setf (a y) 12)

Something like that is the first think a programmer in Forth (yet another language where one has to implement common data structures by hand, yet it never claimed to be a HLL to begin with, and one can write a Forth compiler in about 1k of code, so it's a very simple langauge).

But no, we get a profusion of “special functions” created for each structure. And heaven help you if you create a structure with a field named “p”!

Oh, what does (foo-p) do?

By Common Lisp convention, functions that end in “p” or “-p” are queries, such as (string-greaterp) (is one string greater than another?) or (equalp) (one of the five or so equality functions) or (complexp) (is a value a complex number?) so in this case, (foo-p) is asking if the value is a structure of type foo (and since I don't have a Common Lisp environment, I can't see what happens if one does create a structure with a field named “p”).

Yeah, I'm really begining to agree with John McCarthy about Lisp.


American Splendor

I just watched American Splendor, a biography of Harvey Pekar, writer of the comic book American Splendor which chronicles his life as a file clerk (and he remained a file clerk while writing the comic—I guess you could say he was a blogger before blogging was invented, using comics as his vehicle instead of a huge ever growing pulsating webpage that rules from the center of cyberspace).

The movie wasn't a documentary. I think.

I mean, it starred Paul Giamatti as Harvey, and Hope Davis as his third wife, Joyce, but it was narrated by Harvey Pekar (who commented that Paul Giamatti doesn't look anything like him), and had interviews with both him and his wife, and even some commentary from Harvey's friend Toby Radloff (played by Judah Friedlander in the film).

A real mind-bending scene was when Harvey (as played by Giamatti) and Joyce (played by Davis) went to the opening of a play based upon the comic book (which is based upon the life of Harvey)—so Harvey is providing narration, we're watching Giamatti and Davis (portraying Harvey and Joyce) watching Donal Logue and Molly Shannon playing Harvey and Davis.

It was probably the most self-referential film I've ever seen.

Overall, it was a good film (Spring was expecting to suffer through watching it, but ended up enjoying it) and a very unique way of handling the subject matter.

Sunday, April 09, 2006

Editing text on a webpage

This demonstration of a web-based editor (link via DECAFBAD) looked promising and the instructions for including it withing a webpage were easy enough that I decided to give it go.

Turns out I don't really care for it that much, as it doesn't suit my style of writing on the web. The HTML it more WYSIWYG than structural, and I write structural HTML. I suppose I could modify the code (written in JavaScript) to make it more my liking, but I'm not up to slogging through 60,000 lines of JavaScript to fix a few problems for something I may end up using.

It might, however, make editing of existing entries pretty sweet, to fix typos and word choice from within the browser instead of the method I use now (which involves logging onto the webserver and editing the raw entry in an editor). I might have to try that.

Monday, April 10, 2006

IN-bloody-SANE

Ticket in the support queue: “Hey, can't check my email since my account is overquota!”

Hey, I think someone clued in enough to know what the actual problem is! Wonderful! Okay, it's not wonderful that he's overquota due to spam, but it is wonderful because it's more than just “the Intarweb is broke!”

I log into the server, check his mail spool files. Yup, a couple of mailboxes are over 100M in size; one is over 200M. I run a script (which I wrote) that moves the spool file to a backup (and changes ownership of the spool so the space doesn't count against the customer) and creates an empty spool file. The backup is so that if there were any legitimate email (which, frankly, isn't likely in most cases, since these mailboxes are often not checked by the customers since they are unaware of the existance of said mailboxes, or forgot, or just don't care) we can retrieve them if necessary. So I run the script on the largest spool file.

After it runs, I check. 12K spool file, when it should be 0K. Check again. 42K. Check again, 63K. The spam is just pouring in. I check through the <shudder> control panel and yes, unless specified otherwise, all email for the customer's domain will end up in this mailbox. I change it to /dev/null (the bit bucket) and check back with the spool file. 1.5M, less than two minutes.

Now, perhaps over an hour later, the spool file is 22M in size, and apparently, setting this mailbox to /dev/null in the <shudder> control panel didn't work. I may have to link the spool file to /dev/null myself.

Tuesday, April 11, 2006

There's gold in them thar art stores!

So I'm reading a sales flyer for an art supply store when I see they're selling books of gold leaf, normally $80.00 for the low, low price of $18.99.

Wait a second!

They're selling 23.5kt gold for ¼ the normal price‽ Are they insane?

I'm planning on running down to the store as soon as it opens and snapping up as much gold leaf as I can, what with gold breaking the $600/ounce, then selling it to make a 400% profit when sanity smacks me over the head. I had better figure out how much gold is in a typical book of gold leaf before I loose my shirt on a half-cocked scheme.

Some Google searches and I learn that gold leaf is sold in “books” of 25 leaves, or “boxes” of 500 leaves, and that there is anywhere from 15–23 grams of gold per 1000 leaves. Okay, but this is the United States, where we buy and sell using the archaic Troy ounces for metal. Another search reveals 31.103477 grams per Troy ounce. So, 600 (latest price I have is $601.50 per ounce) divided by 31.103477 gives us $19.29 per gram. Let's be optimistic here and say we have “heavy” gold leaf (23 grams per 1000 leaves) … 23 divided by 1000 (giving us the gold per leaf) times 25 (number of leaves per “book”) times 19.29 give us … $11.09 worth of gold per book.

THAT'S IT‽

Maybe $10 worth of gold?

And this normally sells for $80?

What a racket!

Ah well … so much for gold fever.


We could have done that

Via YARGB are some interesting password recovery times based upon password content, length and type of computing resources one has.

I remember back in college (in the early 90s) we had access to a MasPar with, I think, 4,096 processing nodes. There was talk of writing a password cracking program for the machine, which was a perfect use for the machine, being a SIMD architecture (same program on each processing node, but different data). The default Unix password scheme (at the time) used a 12 bit number to “randomize” the password, so there could be 4,096 different encryption results for any given password. A perfect fit for the MasPar—instead of having to do 4,096 serial encryptions of a guess, all 4,096 possible values could be tested at once. An incredible increase in speed (it could do in an hour what it would take a conventional computer about 24 days to do).

But alas, we never got around to it; I'm suspect it was because no one really wanted to program in FORTRAN.

Wednesday, April 12, 2006

“I … am not left handed.”

Ouch.

I hurt.

The Kids have boffers, practice swords made of PVC pipe, padding and duct tape which they made with help from a friend of Spring's who's in the SCA.

When I got home yesterday, they were outside practicing sword fighting and asked if I wanted to try it out.

I admit it was fun, but all the running, lunging and swinging has left me rather sore.


Death and Taxes

Ouch.

I hurt.

I did my taxes last night.

Let me just say that Schedule SE just plain sucks. Getting hit with 7% Social Security as an employee and 7% as an employer really hurts. Especially given that as an employer I can't write off the 7% as a business expense in this case.

Thursday, April 13, 2006

Leaky abstractions at hot spots

Wlofie mention clive, a C-based Live Journal client, was vastly slower than jlj, a Perl based Live Journal client. Having encountered some weirdness in the past like this, I thought it might be fun to profile the code and see where the problem might lie.

Results of profiling
% time cumulative seconds self seconds calls self µs/call total µs/call name
% time cumulative seconds self seconds calls self µs/call total µs/call name
73.33 0.11 0.11 3693 29.79 29.79 getalloc
6.67 0.12 0.01 18630 0.54 0.54 lj_debug
6.67 0.13 0.01 3323 3.01 3.55 hash
6.67 0.14 0.01 1483 6.74 10.78 getp
6.67 0.15 0.01 4 2500.00 34335.39 delete_hash
0.00 0.15 0.00 3693 0.00 29.79 lj_free
0.00 0.15 0.00 1841 0.00 0.00 chomp
0.00 0.15 0.00 941 0.00 10.78 get
0.00 0.15 0.00 936 0.00 0.00 grow_alloctable
0.00 0.15 0.00 936 0.00 0.54 lj_malloc
0.00 0.15 0.00 936 0.00 0.00 newalloc
0.00 0.15 0.00 924 0.00 1.07 next
0.00 0.15 0.00 920 0.00 137.20 del
0.00 0.15 0.00 920 0.00 6.23 put
0.00 0.15 0.00 12 0.00 0.00 MD5Update
0.00 0.15 0.00 11 0.00 35.15 geti
0.00 0.15 0.00 11 0.00 35.15 getpi
0.00 0.15 0.00 7 0.00 0.38 lj_set_config
0.00 0.15 0.00 6 0.00 0.00 MD5Transform
0.00 0.15 0.00 4 0.00 0.00 MD5Data
0.00 0.15 0.00 4 0.00 0.00 MD5End
0.00 0.15 0.00 4 0.00 0.00 MD5Final
0.00 0.15 0.00 4 0.00 0.00 MD5Init
0.00 0.15 0.00 4 0.00 0.00 MD5Pad
0.00 0.15 0.00 4 0.00 0.00 closeconn
0.00 0.15 0.00 4 0.00 0.54 create_hash
0.00 0.15 0.00 4 0.00 0.00 getconn
0.00 0.15 0.00 4 0.00 1556.88 lj_send_request
0.00 0.15 0.00 4 0.00 0.54 md5_hex
0.00 0.15 0.00 4 0.00 0.00 reset
0.00 0.15 0.00 3 0.00 0.54 lj_realloc
0.00 0.15 0.00 3 0.00 1.07 lj_urlencode
0.00 0.15 0.00 2 0.00 36006.75 lj_getchallenge
0.00 0.15 0.00 2 0.00 36009.43 lj_setauth
0.00 0.15 0.00 1 0.00 0.00 create_getfriends_request
0.00 0.15 0.00 1 0.00 1.07 create_login_request
0.00 0.15 0.00 1 0.00 0.77 lj_ask_username
0.00 0.15 0.00 1 0.00 0.54 lj_config_file
0.00 0.15 0.00 1 0.00 76284.83 lj_getfriends
0.00 0.15 0.00 1 0.00 4.83 lj_init_config
0.00 0.15 0.00 1 0.00 73708.73 lj_login
0.00 0.15 0.00 1 0.00 150000.00 main

In looking over the results, it's obvious the problem spots are in delete_hash(), lj_getchallenge(), lj_setauth(), lj_getfriends() (the option I used to test the program with) or lj_login. A quick glance at delete_hash() didn't show any problems, and commenting it out didn't solve anything.

So do the next best thing—run the program under a debugger and follow the execution to see where it might be hanging. A breakpoint in lj_login() (another possible hot spot) and following the code there lead to the following bit of code (from lj_send_request()):

/*
 * First we ditch the headers...if we ever wanted to do
 * anything with the headers this is where we 'd put the code
 * I'm using key here because it' s just as good as any other buffer
 * I could set up a buffer just for this, but let's not waste memory
 */
while (fgets(key, LJ_BUFFER_MAX, conn) && strcmp(key, "\r\n"))
{
#ifdef DEBUG3
  int i = strlen(key);

  if (!strcmp(key + (i - 2), "\r\n"))
    key[i - 2] = '\0';
  lj_debug(3, "[%s]\n", key);
#endif
}

/*
 * Now we read in the key-value pairs.  We're making the
 * assumption that neither the key nor the value will exceed
 * 1024 bytes.  REVISIT THIS
 */
while (fgets(key, LJ_BUFFER_MAX, conn)
       && fgets(value, LJ_BUFFER_MAX, conn))
{
  chomp(key);
  chomp(value);
  lj_debug(3, "Putting [%s]->[%s]...", key, value);
  put(lj_hash, key, value);
}

closeconn(conn);

The code was blocking in the second loop to a call to fgets(). And I pretty much knew what was happening: leaky abstractions (and it's fitting that the article talks about TCP, which is exactly where the leaky abstraction is happening in this very piece of code).

fgets() is a nice function, since it reads in a line of text; if there's no more text to read, it returns NULL indicating there is no more input. But fgets() is (in the case of Unix) written on top of lower level code, notably read(). When applied to a disk file, if there is no more data to be read, read() returns a 0, meaning “no more data.”

But we're not reading from a file. We're reading from a network connection. And therein lies a difference. The function read() also works for network connections, but it behaves just a bit differently in that case. In the case of a disk file, it's pretty apparent when there is no more data to read. But in the case of a TCP connection, it's not clear-cut when the other side has stopped sending data. So read() will just sit there, waiting for data to come in. If there's no data after a period of time (about 30 seconds on my computer) read() will finally conclude that there's no data to be had. That result then bubbles up to fgets() and the loop finally terminates.

But not until a long 30 seconds per request goes by.

No wonder clive is slow (and no, it has nothing to do with “keepalives” in the HTTP protocol—I tested that hypothesis).

The fix is to parse the headers for a “Content-Length” header and read only those number of bytes, but since Wlofie is now using another program, and I don't really post to my LiveJournal (except once a year) there's no incentive to really fix the program (but I did find the problem, which is what I set out to do).

Friday, April 14, 2006

Styling feeds

Yesterday's entry on profiling brings up a topic I've been thinking of recently. You see, when I post code samples, they're coded up as:

<blockquote class="code">
<pre>
#include <stdio.h>
#include <stdlib.h>

int main(int argc,char *argv[])
{
  printf("Hello world\n");
  return(EXIT_SUCCESS);
}
</pre>
</blockquote>

Notice that bit with class="code" there? I use CSS to format the pages here (which allow me flexibility in how things look), and for <BLOCKQUOTE>s marked as such, they get the following bit of CSS associated with them:

BLOCKQUOTE.code
{
  overflow:             auto;
  margin-bottom:        1.5em;
}

Which in browsers that support CSS, mean that those <BLOCKQUOTE>s, if the content exceeds the calculated width of said <BLOCKQUOTE>, then scroll bars will appear just for said <BLOCKQUOTE> (and not as a page as a whole), thus preserving the layout (and yes, I could do away with the <PRE> tags, there's a reason why I don't—keep reading).

And that's fine if you read my blog at my site.

But if you read it through an aggregator (like, say, at LiveJournal) then all the careful styling I came up with is lost, lost, lost. And there's a good chance that if I post code with some really long lines it'll seriously mess up the layout you use to read my RSS feed (and because the CSS doesn't follow the RSS feed, that's why I still use <PRE> tags when I quote code least the code look really strange).

Now, short of including CSS within the tags themselves (using the STYLE attribute, and I really don't want to do that) I don't know of any way to otherwise influence the layout of my RSS feed. It's not that I'm trying to preserve my “look” in RSS aggregators, but it would be nice if I could give “hints” at least. I mean,

THIS

doesn't quite have the same impact as

THIS

See? (and yes, I do have a style for the former defined—“hotflamingdeath” if you must know)

Saturday, April 15, 2006

The Ides of April

Ouch.

I hurt.

I paid my taxes today.

And as a mild protest, I wrote the following on my check:

In this world nothing can be said to be certain, except death and taxes.

Hope I don't get audited.

Sunday, April 16, 2006

The other 364 days of the year

Ever wonder what the Easter Bunny does the other 364 days of the year?

Now you know (link via Tryss).

Monday, April 17, 2006

I guess it's the train wreck syndrome at work

I came across something I wanted to link to today, but I had to get caught up first.

By the time I got caught up, I forgot what I wanted to link to.

But then I found it again:

I didn't really understand the parody in Lost in Translation until I saw the real Tara. At one point she's riding through Europe on a Gondola, explaining Sex in the City references as if she were some kind of tour guide.

I found myself unconsciously picking out sniper positions in the surrounding buildings. This … this is why people hate America.

Tara Reid ate my soul

I guess since the United States does not have an aristrocratic class to make fun of, we have to make do with what we got (and frankly, it's pretty pathetic).

Tuesday, April 18, 2006

Sugar, spice and power tools

It's always nice when I have dinner with a friend. And normally, this isn't something I would necessarily blog about, but said friend sprung a surprise on me—she (and yes, it is a she) has a wood working shop in her garage! It's rare enough to find anyone with a decent wood working shop in their garage, and it's even rarer to find a woman with a wood working shop.

There is nothing cooler than a woman with power tools.

A wood working shop!

How cool is that?

I'm still amazed.

Wednesday, April 19, 2006

Found another deck

It's not a popular or a common game, so it's always neat when I come across some other group that's playing 1000 Blank White Cards (link via Shadesong).


Eulogy for a dead python

If you are going to have singing done at your funeral, why not have it be Eric Idle singing “Always Look On The Bright Side of Life”? Oh, and I suppose it wouldn't hurt to have John Cleese calling you a free loading bastard either.

Thursday, April 20, 2006

A Dead Ringer

For the past few months, Smirk has been working to set up a VoIP system for work so all of us at the Office could opt to work from home if we so choose—all office calls would be forwarded appropriately to our various homes. I personally would rather work mostly from home as it's more comfortable, and I save a 38 mile round trip.

So Smirk is doing his part to be enviromentally sound.

I say all of this because the phone system here at the Office is wonky. Our main 800 line is non-functioning and Smirk is still trying to figure out what's going on with The Monopolistic Phone Company about that. And the phone on my desk has been acting weird—or it could be the answering machine it's plugged into. The phone doesn't ring and the only indication that there's a call is the answering machine suddenly kicking on.

As this was happening, I just figured it had something to do with Smirk working on the VoIP for the office (I run the network—I don't run the phone system) or The Monopolistic Phone Company having fun at our expense (not the first time). Or the answering machine is going.

I just now got a call from Smirk and I informed him of the odd behavior with the phone on my desk.

“Did you check that the ringer is on?” he asked.

“The what?”

“The ringer. On the phone. Is it turned on?”

“The ringer?”

“The ringer.”

I checked.

It was turned off.

D'oh!


Speaking of phone systems

Later on in the day, Smirk dropped off the new VoIP unit I'll be using at home. It's a Linksys PAP2 and the installation couldn't be easier—it was literally plugging the power cable in, the Ethernet cable in and the phone cable into phone plug #1 (I initially plugged it into phone plug #2 and when I went to make a call, I heard a computerized voice telling me I had plugged the phone into the wrong port). I was then ready to go.

Of course, Smirk had already signed up the unit for Vonage so I'm not sure of all the details about that, but I was impressed with the hardward after it was delivered to my hands.

The few calls I tried were fine quality wise. Smirk has been using the same unit for a few days now and I hadn't even noticed. All in all, it seems like a decent unit.

Update on Friday, April 21st, 2006

About the only complaint I have so far about the unit is the unnaturally bright LEDs on the front of the unit. They were so bright I had thought I left my curtains open and the street lamps where shining through when I turned out the lights to go to bed. I turned the unit off so I could sleep.

I'm going to have to find some way of cutting the light down a bit.

Friday, April 21, 2006

“So how is this any different than a cell phone?”

At the weekly D&D game this week, I mentioned to everyone there the new VoIP phone I received for work, and how the unit can be plugged into any network and still receive calls for the phone number assigned to it.

“So why not use a cell phone?” asked Marco, ever the smart one in the group.

“Um …” I said. “I don't know.”

Um … I suppose it might have something to do with forwarding tech support calls, but honestly, I don't know.

Saturday, April 22, 2006

Make Zillions on the Intarweb

A few weeks ago durring my daily web surfing habits, I came across one of those “Make Zillions on the Intarweb” type pages. I read through the typical sales pitch when I saw that I could order a free book on how to make zillions.

The fine print? Shipping and handling charges that totalled maybe five bucks. I figured that at the price of lunch, it might be worth it to see what the typical “Make Zillions on the Intarweb” book might be like and blog about it. So okay, I ordered it.

Consider it five bucks for bloging material.

The package arrived today.

It came with some fliers, a book and eight (!) audio CDs on “Aggressive WealthSM” with typical scenarios like real estate, Internet income and stocks. On the back of one of the fliers is:

Accepting our offer was a great decision!! [sic] Now make another one … listen to the FREE Making Money audio CD “Selling Yourself Wealthy” and begin reading your free copy of “I Got Here, You Can Too!”SM That's right, those two products are yours FREE, no matter what you decide. You received these two products FREE for considering the Aggressive WealthSM program, the proven money making audio collection that is at your fingertips.

YOU WILL BE BILLED A ONE TIME CHARGE OF ONLY $99.90 AT THE END OF YOUR 30 DAY CONSIDERATION PERIOD ONLY IF YOU DECIDE TO KEEP THE ENTIRE BRUCE A. BERMAN AGGRESSIVE WEALTHSM PROGRAM.

Okay, I get 30 days to decide to keep the entire package and if I don't want it, I can send it back. But wait? What's this? Printed else where on the flier is this bit:

During your 30 day consideration period, please take the time to read your free book, “I Got Here, You Can Too!” and also listen to your free Making Money Audio CD, “Selling Yourself Wealthy.” These two products will give you a free, no obligation demonstration of our program. If you do not wish to keep the entire Aggressive WealthSM program at the discounted price, simply call our toll free customer care line at 1-877-XXX-XXXX for your return authorization number and return instructions. Return the Aggressive WealthSM Audio Collection, which is in your hands, and you will never be charged for them. However, after 30 days from our shipping date, you will be charged one payment of only $99.90 for the entire audio collection.

(emphasis added)

Nice—30 days from when they shipped it, not from when I received it. So it's probably more like 25 days or so. And it's probably best I not break the seal on any of the CDs least I can't return them. And I probably pay shipping costs back.

Nice racket.

I'll be making posts from time to time as I go through the materials. Stay tuned …

Update on April 28th, 2006

The price of admission drops $85 … I think I'll stick around.

Sunday, April 23, 2006

The Mysterious Key Ring Separation at IHOP

Gregory invited all at Casa New Jersey out to dinner, so we hopped on over to the local IHOP. After eating we were hanging out in the parking lot talking. As we were talking I was spinning my keychain on my finger (a nervous habit).

About ten minutes go by when The Younger finds something a few feet away from me. “What's this?” he asks, holding up a small key ring with some keys and a grey frob.

I took a look at it when I realized it was part of my keychain! (the grey frob is the key to the server room) It had somehow flew off! How I do not know, given that these are key rings, the type that you have to really force apart to get keys on.

Very strange indeed.

Monday, April 24, 2006

A reasonable judgement

NEW YORK (AP)—Surfing the Web at work is equivalent to reading a newspaper or talking on the phone, an administrative law judge said in recommending the lightest possible punishment for a city worker accused of disregarding warnings to stay off the Internet.

Judge: Employee Web surfing not unreasonable

Wow!

An actual, reasonable decision from a judge dealing with computers.

Who'd a thunk it?

Tuesday, April 25, 2006

Ch-ch-ch-changes

Ring.

Ring.

“Hello, Technical Support,” I said.

“Hey, this is F from XXXXXXXX.” It's the cusomter we set up the IP tunnel with DSL backup a few months ago. “Our T-1 was just installed.”

“Okay,” I said, unsure of the implications of what F just said. What does that have to do with us? I'm thinking.

“I was wondering if the T-1 has been installed on your end yet?” asked F.

Excuse me? I thought.

“The T-1 on your end. We're getting a T-1 through you guys,” said F.

“Oh, was that my ‘out loud” voice?”

“Yes,” said F.

“Ah.”

So.

That was how I found out about the new T-1 installation for our customer about a week or so ago. They dropped the IP tunnel and decided on a dedicated circuit with us. And they're keeping the DSL backup connection.

Now, the DSL circuit on our end comes in one Cisco router. The dedicated T-1s on our end come into another Cisco router. In this case, the T-1 is the primary circuit and the DSL is the secondary circuit.

Well, either we go static routing and I'm on call 24/7 and can never be more than two minutes from an internet connection so I was rewroute things if the T-1 fails, or we use a dynamic routing protocol like OSPF to handle these things for us.

I'm having to learn to configure OSPF across four routers to get this accomplished.

OSPF is not entirely new to me, but we only have it running between two routers, one on our side, and one to another customer. This customer though, requires OSPF configurations across four routers.

Fortunately, it wasn't that hard to set up, but it's not complete yet.

[Portion of our  network running OSPF]

That firewall between our core router CORE and our DSL router DSL is keeping OSPF from communicating across all the routers—OSPF communicates directly with neighboring routers, and that firewall isn't a neighboring router.

To fix that, I need to:

  1. Set up a virtual OSPF link between CORE and DSL, but that apparently involves multiple OSPF areas, which is something I don't care to get into with a network this small (and frankly, we can get by entirely with static routing if it weren't for the redundant links).
  2. Set up OSPF on the firewall. Easier than the first option, but still requires some work.
  3. Remove the firewall entirely. Nearly all the customers on DSL already have a firewall locally (heck, nearly everything that hooks up to the Internet has a firewall) so removing the firewall isn't that much of an issue.

Of those, the third option is the easiest one to handle.

Once the firewall is out of the way, and the T-1 functions between us and XXXXXXXX, then OSPF will handle the changes in routing in case any of links to our customers go down.


A reason for VoIP

About the Vonage phone I recieved a few days ago:

From
Jeff Cuscutis <XXXXXXXXXXXXXXXXXX>
To
Sean Conner <sean@conman.org>
Subject
Voip phone
Date
Tue, 25 Apr 2006 16:17:28 -0400

Those are very useful. After the hurricanes last year, we relocated the company to a hotel in Orlando with wifi and just forwarded the office number to the vonage number. It was pretty cool.

Jeff

Okay, there is that.


Styling feeds II

The previous entry brings me back to the styling feeds topic I brought up a week or so ago.

Normally, I tend to quote email headers in posts as:

<p>
<b>From:</b> John Doe &lt;<span class="cut">XXXXXXXXXXXXXXXXXXX</span>&gt;<br>
<b>To:</b> Sean Conner &lt;sean@conman.org&gt;<br>
<b>Subject:</b> You know, your posts are boring<br>
<b>Date:</b> Date: Tue, 25 Apr 2006 17:17:17 -0400
</p>

<p>You know, your posts are getting awfully dull lately ... </p>

Which would be rendered as thus:

From: John Doe <XXXXXXXXXXXXXXXXXXX>
To: Sean Conner <sean@conman.org>
Subject: You know, your posts are boring
Date: Tue, 25 Apr 2006 17:17:17 -0400

You know, your posts are getting awfully dull lately …

But there was an entry last month that made me rethink how I wanted to construct the headers when quoting email—basically, long email headers can span multiple lines but each subsequent line of a header should be indented with white space, and with the formatting I have above, that distinction isn't preserved (as well as the headers inherit the full justification I have for all my paragraphs, which shouldn't happen either).

So I thought about it, and I decided that really, headers could be construed as a type of dictionary list—a list of terms (the header name) and their definitions (the header contents). So the above would be encoded in HTML as:

<dl>
<dt>From</dt>
<dd>John Doe &lt;<span class="cut">XXXXXXXXXXXXXXXXXXX</span>&gt;</dd>

<dt>To</dt>
<dd>Sean Conner &lt;sean@conman.org&gt;</dd>

<dt>Subject</dt>
<dd>You know, your posts are boring</dd>

<dt>Date</dt>
<dd>Tue, 25 Apr 2006 17:17:17 -0400</dd>
</dl>

Which I would like to render as:

From
John Doe <XXXXXXXXXXXXXXXXXXX>
To
Sean Conner <sean@conman.org>
Subject
You know, your posts are boring
Date
Tue, 25 Apr 2006 17:17:17 -0400

Only if you aren't viewing this on my site with a CSS-capable browser, you won't see the intent I have for formatting, which gets us back to the post I made last month.

Am I the only one that has this concern over how my entries are presented?

Anyway, if the quoted email in the previous entry looks a bit odd, that's why—you aren't seeing it how I intended it to be seen.


A night of bogarts

While the T-1 may have been installed at XXXXXXXX, the router there (that we supplied) doesn't have a T-1 interface. So after work I drove over there to install one.

I had been in the process of setting up OSPF and installing some firewall rules (they are one of the few DSL customer that didn't have a firewall) when I lost the connection for a minute or so. It came back up before I left, but as I was driving over there, I received a call from F at XXXXXXXX saying the connection was down. I said I was on the way over and I'll take a look when I get there, so I didn't think too much on either incident.

Once there, I powered down the router, installed the interface and powered the router back up. A minute or two to let it boot up, and yes, they are down. I couldn't even ping the router, much less surf the Intarweb. I could see that the router was up and running, but without the special console cable, I couldn't diagnose the problem.

I then drove back to The Office. I couldn't reach their router from our side, so I grabbed the special console cable and headed back to their office.

Once back there with the ability to log into the router, I could see the problem—plugging the T-1 card in renumbered some other interfaces, including their DSL interface. When it powered back up, the configuration for interface ATM0/0 (the DSL interface) was ignored because interface ATM0/0 didn't exist. And consequently, interface ATM1/0 wasn't configured because there was no configuration data for interface ATM1/0.

And silly me, I didn't have a copy of the router configuration on hand, so it looked for a minute like I would have to drive back to The Office, print out the configuration for this router (I have backups of all our routers on my workstation) then drive back to the XXXXXXXX office, but then I had a better idea: I called Wlofie, had him log into my workstation and read off the DSL interface configuration.

That done, the connection came right back up. Then I could turn my attention to configuring the T-1 interface.

Only it didn't come up an interface, but a “controller.”

Okay.

Didn't think much of it until I realized I couldn't assign an IP address to the T-1 interface controller. So I did what I always do in such a situation and called G, our Cisco consultant.

Turns out that the interface card we had was a voice T-1 card and not a data T-1 card.

Well.

Not much I can do until I get the right card (and we don't have a data T-1 card for this particular router at the office). But since the DSL was back up and running, I decided to call it a night.

Until half an hour later when I got a call from Smirk—they were still down. Fortunately, I was still in the area and had access to a computer. A quick test showed the DSL was up, but that anything else on their network was unaccessible. I called XXXXXXXX and talked to their IT manager C.

Now C is a nice guy and I'm sure he knows his computer stuff, but networking is not one of his strong points. And it because clear to me that I was going to have to go back and debug their network.

I knew the router was okay, since I could get to it from the Internet. And when I got to their office, I checked out their Linksys wireless unit (which does NATting) and found nothing wrong with it. That left the only thing sitting between the two—a switch.

On a lark, I power cycled the switch.

Their network started right back up.

It seems they've been having some power “issues” recently.

Sigh.

Everything else had been powercycled.

But the switch.

Of course.

Wednesday, April 26, 2006

That sick feeling in your stomach when you know you created a huge mess

I thought I would go ahead and remove the firewall between our core router and the DSL router. I made as much preparation as I could before 5:00 pm, the end of the business day.

At about 5:05 pm I swapped some network cables around.

And the Internet broke.

I'm not sure why it didn't work. At first, I thought maybe it was the VLAN I created on the core router for the DSL router port (to segregate the network traffic and cut down on broadcasts) and reverted that.

The DSL circuit was still down, and my phone started ringing.

I then thought that I needed a crossover cable, but I was getting a link light when using the existing cable.

And the DSL circuit was still down.

The routing changes I had to make looked good, but still, no DSL.

Clearing the ARP tables didn't help [but I just now realized, in writing this, that I only cleared the ARP table on the core router, and not on the DSL router—hmmmm].

So I had to revert everything back while trying to keep myself from getting sick.

Blah.

Thursday, April 27, 2006

More reasons to use VoIP

Smirk finally read the entry about cell phones vs. VoIP and gave me five reasons for using it over a cell phone:

  1. It saves me from wasting my minutes on my cell phone—or rather, it saves my other boss cell phone minutes since he pays for the cell phone.
  2. We get unlimited local calling and the international rates are cheap (which is important to us since we have a few international customers).
  3. Once we transfer the tech support lines to the new number, it will always follow us no matter which network we plug the VoIP unit into.
  4. Because it's cool!
  5. Because Smirk wants to keep me awake at night with the bright lights on the unit.

So, now I know.

Friday, April 28, 2006

“We REALLY want your money”

Last Saturday I received my information package on “Aggressive Wealth” by Bruce A. Berman with 30 days (since they shipped) to hold onto the material before being charged $99.90 for eight audio CDs. Today I got around to calling the toll-free number to start the return and not get charged.

Amazingly I was talking with a human operator in less than 30 seconds, but I couldn't quite place the accent (Jamaican perhaps?), but the operator spoke clearly enough that I could understand even over a cell phone. I had to verify my name, zip code and email address before we could continue with the return process. Right then, the price dropped to $74.90.

“No, I want to return the CDs,” I said.

So then came the instructions—write the return code on the return package, please use a padded envelope and insure the CDs for $100 value. Am I sure I want to continue. Yup, and I got a return code.

And another price drop to $49.90.

“No, I still want to return the CDs,” I said, amused that the price of the eight CDs, retail price of over $300 has dropped yet again.

Okay, please send the package to the given address, which I had to read back to ensure I had it correct, but what about another $25 off? I can keep them for only $24.90.

“No, I'd rather return the CDs,” I said.

I was then asked why I wanted to return them. I said I was only interested in the book and wasn't expecting to get an additional eight CDs (even though the operator said they were listed on the website), and that I'll go through the hassle of returning them.

But what about $14.90? That's it, account closed.

$14.90 … so far I paid about $5.00 (lunch) and another $15 would bring it up to a nice dinner and heck, I am curious. So why not? I'd probably spend about $5 anyway sending the darned things back, and I'm still under the price of the book from Amazon.

Although I have to wonder … had I stayed on the line a bit longer, would the price have dropped even more?


Just because we work with computers does NOT mean we clean Windows!

Someone from a neighboring office just walked in and started going on about his computer system getting a Trojan and how his virus scanning software let it slip though and his IT guy mentioned something about getting some other virus scanning software and could we (“we” being the resident computer experts in our office building because “we” do “stuff” with computers) recommend software they should get.

“Um,” I said. “Don't use Windows?”

I don't think he heard me because he then asked me what I use.

“Not Windows,” I said.

“What?” From the tone, I gathered that such a statement has no validity in his world view and that everyone uses Windows. “What do you use, DOS?”

“I use Linux,” I said, pointing to my workstation. “At home I use Macs. I just don't have virus problems.”

“So can you recommend anything?”

“I'm sorry, but I'm not the person to ask.”

He then said good-bye and walked away, mumbling something that I couldn't hear.

Saturday, April 29, 2006

Time to do networking right

Unlike Wednesday, I have all the time I want to remove the firewall between our core router and the DSL router.

It went much smoother if a bit longer than I expected. The big stumbling block wasn't cached ARP entries like I suspected, or even the wrong type of cable but the phyical port configurations. When one side (the DSL router) had a link light, but not the other side (our core router) it hit me that it might be the port settings. Our core router had the port pegged to 100Mbps, full duplex with no autonegotiation of port settings, and didn't care for the DSL router attempting to autonegotiate the settings. Once I reconfigured the port on the core router to autonegotiate, the link came up, and OSPF worked flawlessly across all five routers running it.

So now all that remains is getting the T-1 install for XXXXXXXX and weighing the routes appropriately.

Sunday, April 30, 2006

Poor defaults in a user interface

I was on my cell phone when it chimed. At the time I thought it was someone trying to call me, but afterwards, there was no indication of a missed call and nothing new on my voice mail.

Wierd.

Then, maybe an hour or so later, it chimed again. By the time I could get to it, there was no indication of what happened to cause my cell phone to chime.

Then another hour or so later, it chimed yet again. This time I was able to get to it to see it flash the “Low Battery You Idiot! Recharge Me!” message for about two seconds before it went away.

While it's nice that the message will go away unattended, it's not nice that it goes away in two seconds. Five seconds, I might have caught it the second time (when I wasn't chatting away on the phone). Ten seconds might be better.


I wish I could do networking right

I may have spoke too soon.

Smirk called and said he was experiencing DSL issues—his connection dropped several times today for up to a minute or so. I told him it might be a port configuration problem (which is what caused the problems on Wednesday) and that I would talk to Dan the Network Engineer about it (Dan being the expert on the type of router we use for our core).

But I took a look, and from what I can see, it may not be a port issue but an OSPF issue:

May 01 00:07:12 XXXXXXXXXXXXXXXXXXXXXXX %OSPF-I-ADJCHGFROMFULL, Process 0, Nbr XXXXXXXXXXXXX on interface XXXXXXXXXXXXX changed from state FULL
May 01 00:07:12 XXXXXXXXXXXXXXXXXXXXXXX %OSPF-I-ADJCHGTOFULL, Process 0, Nbr XXXXXXXXXXXXX on interface XXXXXXXXXXXXX changed to state FULL, Loading Done
May 01 00:09:25 XXXXXXXXXXXXXXXXXXXXXXX %OSPF-I-ADJCHGFROMFULL, Process 0, Nbr XXXXXXXXXXXXX on interface XXXXXXXXXXXXX changed from state FULL
May 01 00:09:36 XXXXXXXXXXXXXXXXXXXXXXX %OSPF-I-ADJCHGTOFULL, Process 0, Nbr XXXXXXXXXXXXX on interface XXXXXXXXXXXXX changed to state FULL, Loading Done

The interface in question is the one between the core router and the DSL router. It doesn't seem to have anything to do with one of the OSPF routers participating is at the end of an authenticated PPPoE connection over DSL since the only complaints seem to be isolated with the connection between the core router and the DSL router.

Looks like I'll be doing some heavy reading in the next day or so.

Monday, May 01, 2006

Oh, so that WAS the problem

The problem wasn't with OSPFit was with the port settings.

Sigh.

I keep forgetting that on Cisco routers, interfaces named “Ethernet” are only 10Mbps, while “FastEthernet” are 100Mbps. Also, 10Mbps interfaces are not full duplex, but half duplex.

Now that I've made those changes, the problem seems to have gone away.

I have to remember: Ethernet are 10Mbps, FastEthernet are 100Mbps.


“I promise—THIS is a webkiller!”

From
"Its Here" <XXXXXXXXXXXXXXXXXXXXXXX>
To
sean@conman.org
Subject
Web Killer
Date
01 May 2006 12:38:34 -0500

Web Killer is the code name for V2, a new technology that will eventually replace the World Wide Web. We finely have a technology to take us to the next level of online computing.Find out where its going, what it means for you and how you can be apart of the journey. (www.OsiXs.org)

Welcome to the First Phase …

There isn't much to the site that actually describes what V2 is, or does, or how it accomplishes or wishes to accomplish what it wants done, or much of anything other than “Hey! The Internet as you know it is dead! And we're the ones that are going to replace it with our cool technology! Please donate!”

Believe are not, you are witnessing history in the making. Write here and write now we are preparing to launch a totally new online world apart from the World Wide Web.

From OsiXs.org and what you see is exactly what appeared on the website.

There's even less here than at the website of the fastest proprietary 80x86 based operating system (at least at the time, you got something that booted), and from the looks of things, V2_OS (I doubt there's a relation between the two, but you never know) it failed to take the Internet by storm (in the seven years since I first linked to it).

They have some lofty goals (“It will eventually cut your taxes because government will be streamlined and a lot more efficient in utilizing and administering its resources.”) but until I see something more substantial (“show me something!”) I personally don't see this going anywhere fast.


The Google Conspriacy A-go-go (for lack of a better title)

The more I read this site that's critical of Google, the less I understand what the heck Google is trying to do (and yes, I realize the site in question is heavily biased against Google, but unlike some other sites, this one doesn't come across like a conspriacy laden crack pot).

I always thought that Google made their money selling intranet (read: large private networks) search appliances and that the IPO was a legal requirement due to their number of outstanding shares. But from their recent filing (link via this page) they're no longer making the money they once were—perhaps they saturated the intranet search market?

I just don't understand what's going on inside Google.

Anyways, I decided to check how the Google AdSense is doing, and lo! I've made some money! I'm now up to stratospheric $8.19! I can afford lunch! Woot! I'm guessing some of the changes I've made behind the scenes have actually worked (basically, adding <!-- google_ad_section_start --> and <!-- google_ad_section_end --> around the actual content) so the Google Ads get to stay for the moment.

I also checked Amazon and while I'm doing way better with them, it's actually less money than I made in the same amount of time last year—I think the “mad money” I made with Amazon had more to do with timing than anything else.


One of the few bands that I'll bother to see in concert

I don't care for concerts and I've only been to a handfull in my life (well, excluding the ones I worked when I worked for the FAU auditorium stage crew) but there are a few bands (half a dozen) that I might make an exception and actually attend a concert.

I'm not sure what I dislike about concerts—the crowds of people, the huge venues (although I've only been to once arena concert—the rest have been at clubs) or the opening acts (none of the opening acts I've seen have been worth it—in fact, for once concert there were two opening acts; the first sucked, and the second one sucked loudly—fortunately the actual band we came for more than made up for the horrible opening acts) or the fact that concerts never start at the time printed upon the ticket.

And last night, there was an hour wait (tickets said 7:00 pm, things didn't start until 8:00 pm) and the opening act was … eh. Half the friends I went with found the opening act (forgot his name, but he played a ukelele and most of the songs seemed to have the same melody but different lyrics) and the other half hated the guy. Mercifully he only played for half an hour.

Half an hour later—

They Might Be Giants

—took to the stage.

Woot!

[They Might Be Giants, but they seem much bigger to me] [Confetti, shot during the song James K. Polk]

You'll have to excuse the pictures—those are the best ones that my cell phone took during the concert.

It's been awhile since I last saw them in concert—90? 91? 92?—back then it was just the Johns. This time it was the Johns and the Dans (although the drummer wasn't a Dan, oddly enough). And since it's been awhile, about half the material was new to me, which was nice.

But oddly enough, of what I consider their “signature” songs, Particle Man, Instanbul (was once Contantinople) and Birdhouse in your Soul, they didn't play Particle Man. Minor nit-pick though.

And they were certainly worth the horror of the ukelele playing opening act.

Tuesday, May 02, 2006

Silver change II

I saw the price of silver today (over $14/ounce) and I recalled that I have an actual silver quarter dollar. Back when I first found it, it was worth 59¢ (just in terms of silver content). On a lark, I recalculated the value today, and it came out worth a bit over $1.90, just in terms of silver content, enough for a cup of coffee.


Another one for the Cracker Files …

/*
* expand_stack SMP race local root exploit
*
* Copyright (C) 2005 Christophe Devine and Julien Tinnes
*
* This program is quite unreliable - you may have to run it
* several times before getting a rootshell. It was only tested
* so far on a bi-xeon running Debian testing / Linux 2.4.29-rc1.
*
* Vulnerability discovered by Paul Starzetz <ihaquer at isec.pl>
* http://www.isec.pl/vulnerabilities/isec-0022-pagefault.txt

Nice try, I'll give them that.

I got a call from Dan the Network engineer that a machine I manage had registered a large network spike overnight. When I heard that it was a large spike from the machine, I knew it wasn't a DoS attack, but was probably participating in one.

I unplugged the machine from the network then logged in from the console. I was able to find the rouge process (masquerading as an Apache process—nice job!) listening in one some randomly picked port, giving anyone that connected to that port a commande line:

#!/usr/bin/perl
# Telnet-like Standard Daemon 1.0
#
#    Dark_Anjo - dark_anjo666@hotmail.com
#            - dark_anjo@nucleozero.com.br
#            - www.xn.rg3.net
#            - www.red.not.br/xn
#
#  For those guys that still like to open ports
#  and use non-rooted boxes
#
#  This has been developed to join in the TocToc
#  project code, now it's done and I'm distributing
#  this separated
#
#  This one i made without IO::Pty so it uses
#  only standard modules... enjoy it
#
#  tested on linux boxes.. probably will work fine on others
#  any problem... #expl0its@irc.brasnet.org
#

But fortunately, the exploit (quoted at the top) didn't work on the machine so the shell obtained was a non-root shell.

Apparently, the customer account information was leaked and the crackers were able to FTP their scripts onto the server. Not much that can be done about that, other than telling the customer to keep a tighter lid on their login information.

And as I like to remind myself, it could have been worse

Wednesday, May 03, 2006

Styling feeds III

A comment I received about styling feeds:

If you are concerned about the people reading your entries via RSS, change your feed to only include a subject, a link, and maybe a small snip of the entry so they will be forced to view your site to read the full entry.

That's how I've seen most RSS feeds do it these day's anyways

Squeaky

I responded that doing so would cut my readership (those that read through RSS would drop, and yes, it would. Some of the experiments I've read about, providing just the titles, or titles and an extract of the post, garners fewer readers than providing the entirety of the post in the feed.

And I have a nice number of people that read my site through my feed (Squeaky included). I'm also surprised this hasn't been addresses yet. Or if it has, I haven't come across anyone addressing this issue yet.

(Yes, today was a rather quiet day—why do you ask?)


Gives a whole new meaning to the term “war driving”

The expert gang suspected of stealing two of David Beckham's BMW X5 SUVs in the last six months did so by using software programs on a laptop to wirelessly break into the car's computer, open the doors, and start the engine.

Via Instapundit, Gone in 20 Minutes: using laptops to steal cars

Wow … that's pretty slick.

I wonder how long until a car gets a virus?

On second thought … I wish I didn't have that thought …

Thursday, May 04, 2006

And of course, it was related to spam

OK, so why is any of this information—about a company completely unrelated to Six Apart—important background? Because according to a post on the North American Network Operators Group mailing list, at some point yesterday the people at Blue Security decided that the best way to deal with the attack was to point the hostname www.bluesecurity.com to their TypePad-hosted weblog, bluesecurity.blogs.com.

Via shadesong, The dishonor of Blue Security

Changing DNS records to fend off a DDoS attack is certainly a novel approach to the problem. And from reading up on Blue Security, their spam fighting approach seemed to have pissed off the major spammers enough to launch a DDoS against them.

But I suspect this has much larger implications than just if Blue Security was right in what they did or not—it gives more fuel to the AT&Ts and Comcasts that want to carve up the Internet into fiefdoms of classed services, for our protection of course.

The little conspriacy theorist inside me wonders if the likes of AT&T and Comcast aren't indirectly funding spamming companies in the hope of pushing people over the edge into accepting a more tiered service plan for our protections, of course.


Less bogarts this time

The T-1 card for XXXXXXXX came in today, and around 5:30 I showed up at the office to install it. And of course F, who I informed earlier in the day I was coming over, had neglected to inform anyone until after I showed up.

It was rather amusing actually. I was in the server room with C when F called C to say I was coming over. C said okay, then hung up. C then told me to install the card, which requires turning off the router (most Cisco routers have hot-swappable parts—not this particular model though). Less than a minute F calls C saying the network was down. C then said yes, might it have something to do with Sean, who already showed up, installing the T-1?

Okay, perhaps you had to be there.

But it was amusing to see just how addicted to the Internet everyone at XXXXXXXX is.

Anyway, I came prepared with the configuration printed out in case the interfaces were renumbered (they were) and with the special console cable (which I did use to configure the T-1 card). The T-1 circuit however, failed to come up, and remained down even after poking at it from The Office (I could still get to XXXXXXXX's router from the DSL connection). In the end, I had to call in a trouble ticket with The Monopolistic Phone Company.

Later in the evening I got a call back from The Monopolistic Phone Company—their stuff is perfect, it must be something from the T-1 jack onwards at the XXXXXXXX side. Cable, misconfigured T-1 card, not their bailiwick.

Sigh.

Friday, May 05, 2006

It's the fifth of something …

At times, all it takes to ruin the rest of the day is a small event.

Today, I dropped my cell phone.

I've accidentally dropped my previous phone multiple times, and it never suffered any damage (other than cosmetic scuff marks). But not so with my new phone. No scuff marks, but the display is now malfunctioning—half the scan lines are now white, making it hard to read anything on the display.

I just want to crawl back into bed.

Update on Tuesday, May 9th, 2006

I should have stayed in bed. Just after writing this, I called Smirk telling him I was too sick to stay at work—I had barely enough time to make it to the bathroom before making my offering to the Great Porcelain God.

Traffic driving back home was bumper to bumper.

I don't remember much after hitting the bed.

Blarg.

Saturday, May 06, 2006

Pings from a Plane

[Spent most of yesterday in bed—when I wasn't in bed, I did some surfing and came across this link worthy of being mentioned, but didn't have the energy. Good thing, since I can use it for today when I, thinking I was feeling better, did stuff I probably shouldn't have and paid for it later on. Oi. —Editor]

I just saw my plane cross the mid-Atlantic, not by looking out the window, but by watching routing updates cascade across the Internet. I'm writing from a Lufthansa jet right now, travelling from Munich to Boston. This plane offers the (relatively) new Connexion by Boeing wifi + satellite Internet service. It's seriously cool stuff—high latency, but absolutely functional. I've been aware of it for a while since the Boeing folks did a NANOG presentation about it last year. But this is the first time I've been able to use it.

Via jwz, Tracking Plane Flight on Internet

Now that's just darned neat. I know that Dan the Network engineer is playing around with BGP (setting up a dedicated BGP server to handle the full BGP routing table instead of trying to shoehorn the full BGP routing table into our routers) and I think it would be neat to see an Internet visualization via BGP routing (which is more a policy based routing protocol through autonomous systems than a technical based routing protocol like OSPF).

Sunday, May 07, 2006

Stiff, sore, sick.

Yesterday's activities (which, while a good idea, was probably something I shouldn't have done but did anyway, sigh) left me incredibly sore which meant I had a lovely night trying to sleep, leaving me this morning feeling quite ill—almost, but not quite to the level I was on Friday.

I'm beginning to think I should have stayed in bed both Friday and Saturday.

Monday, May 08, 2006

Nothing like a Monday to start off the week

Feeling much better today , except that the box that was hacked last week was hacked again this week (box was involentarily serving up files of dubious legality). The customer on said box mentioned the possibility of an insecure PHP script and this time, I threatened to shut off PHP if the script isn't fixed or removed the next time I had to fix this problem.

I also tested the cabling of the non-functioning T-1 and it's okay, which leaves a misconfigured T-1 card to muck with.

Nothing quite like Mondays.

Tuesday, May 09, 2006

Notes about a cold call received on a tech support line

“Hello, technical support,” I said.

This was followed by a two minute schpiel extolling the benefits of obtaining, free, for 30 days, a special hands-free phone that allows one to walk up to 300′ away from the base unit and all they need to do is confirm out mailing address at such-n-such a street.

“We're not interested,” I said.

This in turn was followed by two more minutes imploring me to consider the benefits of a hands-free phone and that yes, truely, we can try it out for 30 days and return it no obligation if we so care to, and we were located in Boca Raton, right?

“Still not interested,” I said.

I was then subjected to two minutes of a hard sell, imploring us to accept the unit least the employers will release the hounds upon them least they fail to send us the special hands-free phone that works up to 300′ away from the base unit and to confirm that we are indeed located in Florida.

“Still not interested,” I said.

This in turn was followed by much wailing and sobbing and then the caller thanked me for my time.

“You're welcome,” I said. I could have sworn I hear baying in the background as I hung up the phone.


Can't I just sleep until next week?

It turned out to be the cable after all.

Sigh.

Now I just need to figure out how to get OSPF to communicate over the DSL link (which it isn't) and that will be that.

Wednesday, May 10, 2006

I think Nigeria has run out of money—a rash of dying government officials leaving millions to be siphoned off from banks will do that to a country.

From
Jamil Troure <jamil_troure88@hotmail.com>
To
sean <sean@conman.org>
Subject
Urgent Response Needed
Date
Fri, 5 May 2006 17:55:00 -0400 (EDT)

Goodday Sir/Madam,

I am pleased to introduce a business opportunity that will be beneficial to both you and me. It involves transferring to your overseas account the sum of ($7.5;US Dollars) Seven Thousand, Five Hundred Dollars [emphasis added], from one of the Fidelity Finance & Security Company here in Dakar-Senegal.

I am Jamil A. Troure the Auditor General in the Fidelity finance & Security Company here in Dakar Senegal west Africa, During the course of our auditing , I discovered a floating fund in an account opened since 1982 and till date no body has operated or filed papers to claim the fund.

After going through the records I discovered that the owner of the account, Engr. Mahmoud Al-Salem Shafiq an Iraqi oil merchant, died in the month of October 2005 in an auto crash. Since there was not infomation concerning additional members of his family, next of kin or known relation, the fund has been declared floating and if nobody comes forward for it, will be forfeited to the government.

Since I hardly know any foreigner,I am only contacting you as a foreigner to stand and apply as his next of kin because this money can not be approved to a local person here as his next of kin.

I need your full co-operation to make this work fine because the management is ready to approve this payment to any foreigner who has correct information of this account, which I will give to you upon your positive response and once I am convinced of your capability and assurance that you will never never let me down.

At the conclussion of this project ,we may proceed into an investment as equal partners with you in charge, pending my resignation from the company, but method of sharing profit should be based on 15% for you and rest for me and my colleague.

Regarding moral justification of the fund ,i wouldn't want you to consider it sinful. If you had being the victim ,Certainly you wouldn't be happy having your hard earned fund shared among government as an unclaimed deposit I believe they are many other aspects of life we may contribute with this fund to help the less priveledged and the needy in our society .

Furnish me with your direct telephone & Fax number for easy comminucation and please reply to me on this emails:

jamil_troure88@yahoo.com
jamil_troure@she.com

I look forward to your earliest response.

Jamil A. Troure

Man, they must have run out of money in Nigeria because this is the lowest amount I've ever seen in a 419 scam—only 7½ thounsand dollars? I'm supposed to be tempted to help someone gain illicit funds for only $1,125?


Although, with people like these, maybe Nigeria isn't running out of money

An enduring trait of Nigerian letter scammers—indeed, of most con artists—is their reluctance to walk away from a mark before his resources are exhausted. On February 5, 2003, several days after the checks were revealed as phony, after Worley was under siege by investigators, after his bank account had been frozen, after he had called his partners “evil bastards,” Worley received one more e-mail from Mercy Nduka.

“I am quite sympathetic about all your predicaments,” she wrote, “but the truth is that we are at the final step and I am not willing to let go, especially with all of these amounts of money that you say that you have to pay back.” She needed just one more thing from Worley and the millions would be theirs: another three thousand dollars.

“You have to trust somebody at times like this,” she wrote. “I am waiting your response.”

Via Flutterby!, THE PERFECT MARK

Nothing more to add other than it's a scam, people!

Thursday, May 11, 2006

“Looks like I picked the wrong week to quit sniffing glue.”

From this point, things can only go up.

I'll skip the blow-by-blow details since even I don't care to remember them. But briefly:

  1. Of the three carriers we have for Internet connectivity, one suffered not one, but two (2) fibre cuts today, so our connection to them was pretty much toast; the second one was suffering massive network connectivity issues themselves, but declined to go into more detail than just “shut up! Yes! We have issues!” And the third one wasn't announcing all our routes properly, so we were pretty much dead in the water.
  2. Because of the one above, we in the office were dead in the water because of DNS issues on our own XXXX network! (we use resolving only DNS servers, and if they can't get to the root servers, then … well … yeah, can't even resolve local domains all that well). So even checking email locally wasn't an option.
  3. Because of the one above (don't ask), I was reminded of just how much I hate the labelling of ports on the Riverstone router/switch we use. It's way to easy to mix up ports on the Riverstone.
  4. Control panel. Webmail. IMAP/POP server. None of which are working together on a server for a customer. Enough said.
  5. The display on my phone took a turn for the worse. Of course, it didn't help things when I slammed it on the floor because I couldn't deal with two phone calls on the thing at the same time and lost both calls. More on this later.

I could never get the hang of Thursdays.


Methinks they missed the point

“For Spanish, press one.”

From an actual voice mail system I called today.

One of the few amusing bits from today.


I have it good.

“I don't see what you have anything to be upset about,” screamed Smirk. I guess he heard me bitch about control panels one too many times today. “You have it good! You still have all your hair!

This was one of the other amusing bits from today.


Now, about that cell phone …

Last week I dropped my new cell phone. Maybe three feet total. And the display went wonky. Over the week it got worse. Oh sure, I could still send and receive calls and still take pictures. But I couldn't read anything on the phone. Now my previous phone has been dropped countless times and it still works (I still have it and it's currently in service, for reasons that will become apparent in a moment). But the new phone?

Pretty much unusable.

So I called the service number for my provider.

Let me state that their phone mail system is a twisty maze of voice mail boxes, all alike. Really. I thought I got into a loop the first time I called. The second time I peristed enough to talk to a Real Live Operator.

Where I learned that any physical damage to the phone, such as liquids being spilled on it, being dropped more than one inch, being breathed on too hard, is not covered by the warentee (the service provider warentee—the warentee from the manufacturer might be different), but that I might have insurance to cover a replacement phone.

So a transfer, and another twisty maze of voice mail boxes and I'm now talking to the insurance department of my cell phone provider where I'm told that no, my account does not have insurance on the phones.

Well.

Good thing the darned thing was free to begin with.

You can see the outside display was pretty bad—pretty looking image, but it's supposed to be displaying stuff like the battery status, time, photos of people that call; not an abstract painting.

[The outside screen is pretty, but it's also pretty badly damaged]

And the inside display is even worse off.

[Ooooh ... pretty ... ]

Mr. Cellphone, meet Mr. Hammer.

[Beauty and the Beast]

Yes, that's right, snuggle up close now.

[Don't they make a cute couple?]

I realize that this cell phone wasn't the cause of my problems today, but it certainly didn't help matters either. And the fact that Sony Ericssons are known to be rather fragile and can't handle drops from more than a few inches doesn't help either.

[As my friend Gregory would say, “RMA THIS!”]

But it sure felt good.

Friday, May 12, 2006

Calm

Much to my relief, today was a much calmer day than yesterday. Yes, I had to answer a backlog of tickets and a backlog of voice mail messages due to the network outtage, but other than that, it was quite quiet today.

And really, the only outstanding problem right now is getting OSPF working over the DSL link.

Saturday, May 13, 2006

When the far right and far left agree on a topic, you know something is rotten in the city of Washtingon, D.C.

The Gun Owners of America sent out an op ed piece to conservative news outlets Monday explaining why it has teamed with the bane of the far right, Moveon.org, in the fight for network neutrality.

Network neutrality, or how much control broadband networks have over their pipes, is one of the key issues in telecommunications reform legislation currently being debated in Congress.

Via Flutterby, Gun Owners Make Neutrality Case To Conservatives

Smirk and I were talking about this the other day and it has him quite worried—worried enough to entertain the notion of nationalizing the phone lines in this country (and if you know Smirk, that's a radical position for him to take—very radical). He asked me what my opinion on this was, and my thought was that instead of breaking Ma Bell into RBOCs (a geographic breakup), we should have instead broken it up into the physical infrastructure and services (a service-oriented breakup). The physical company would have the pipes to the homes (and the right-of-way) and let them charge people for transferring whatever they want (phone, TV, data) over the wires.

Or better yet, get rid of Federal corporate subsidies and let companies actually compete on service and price instead of competing with lobbyists in Washington.

Sunday, May 14, 2006

Another calm day

It's another calm day today (as it should be); I took Spring & Co. out for dinner (squid eyeballs—it's her favorite food) but otherwise, it's been a very relaxing day.

squid eyeballs
What some people call “sushi” I call “squid eyeballs.”

Monday, May 15, 2006

It's just another manic Monday

If Mondays keep being like this I may just not bother getting out of bed on this particular day of the week.

It started out innocently enough when M, who has a few co-located servers here, came over for some help with a Linux server that wasn't booting. It would start to boot then freeze hard at a certain point when running the start up scripts. Even booting into single user mode with a backup kernel would fail at about the same point.

It was then that I received a call from Dan the Network Engineer that our entire network was melting down.

Sure enough, our network was hosed.

Thus began several tortuous hours trying to track down the target of the attack. Much madly rushing about, unplugging network connections, probing the routers, the switches and various servers trying to track down the target of the attack, or even the source (or sources) of the attack.

Turns out it was M's machine that had problems booting. It was the target for the denial of service attack (well, no wonder it couldn't boot—it probably crashed when the network interface came up and it was faced with half a millions packets per second).

We found the attacking IP address and Smirk called the people responsible for that address. He ended up talking to some “just hired this week” junior network admin who knew next to nothing about networking; all I got was Smirk's side of the conversation, but it was amusing in a schaudenfraude kind of way.

Once we identified the source and target, we were able to stop the attack rather quickly.

And I got to install a new server to replace the one that was slagged by an onslaught of hostile network activity.

Joy.

Tuesday, May 16, 2006

Spillover from yesterday

Today started out like yesterday ended. I was awaken by a call early this morning because a server I manage was down. I call over to the datacenter to have it rebooted, only to have it still down half an hour later.

Sigh.

Get into the data center to find: Keyboard error. Press <F1> to continue across the screen.

Sigh.

After that, I had to give the new server the old IP address, only it kept refusing to accept the new IP address, saying that some other machine was using it. That's odd, I thought. I could have sworn the old machine was unplugged from the network. And lo, when I checked, it was.

Turns out Smirk had moved the site that was on the old server to one of our servers temporarily, but neglected to inform me of that little detail.

Sigh.

Then a rash of calls and support tickets screaming about email. Over and over again I had to inform our customers that because of the denial of service attack, email got backed up and our email server was having to process a huge backlog of emails just please be patient.

Sigh.

Things calmed down after that.

And I'm not saying anything past that—I don't fancy jinxing myself.


That little routing issue

I also did manage to find a work-around for the little OSPF problem I've been having. What's happening is that on the customer's router, when the T-1 link is up, the routes, including the all important default route, are populated through OSPF. If the T-1 goes down, then all the OSPF generated routes disappear, including the all important default route.

Upshot—if the T-1 goes down, the customer can't see the Internet.

But oddly enough, when the T-1 goes down, OSPF still shows a neighbor connection through the DSL link. But it won't populate the routes.

The work-around? A static default route through the DSL connection but weighted so heavily that the default route through OSPF (in which case goes through the T-1) is preferred if it exists.

So now, the T-1 goes down, the OSPF routes disappear, leaving the static default route over the DSL so the customer can still see the Internet.

It works, but I don't like it.

Wednesday, May 17, 2006

Is this anything like “Snakes on a Plane”?

[Chum in a Drum]

“Just when you thought it was safe to go back into the water …” (oh wait … that's been used! Drat!)

Thursday, May 18, 2006

Is it okay to say that white men can't jump?

I should really quit reading education oriented blogs, because of stuff like this:

Cultural Racism:

Those aspects of society that overtly and covertly attribute value and normality to white people and Whiteness, and devalue, stereotype, and label people of color as “other”, different, less than, or render them invisible. Examples of these norms include defining white skin tones as nude or flesh colored, having a future time orientation, emphasizing individualism as opposed to a more collective ideology, defining one form of English as standard, and identifying only Whites as great writers or composers.

Via Right on the Left Coast, Seattle Public Schools: Definitions of Racism

“Having a future time orientation” is racism?

Hello?

Planning for the future?

Did no one on the Seattle School Board read The Ant and the Grasshopper? (My thought—these people should be forced to drive cars they themselves designed and built—sheesh!)

And I have to wonder what they'll make of this:

UPDATE: The Senate has agreed to the Inhofe Amendment by a vote of 63- 34.

Another quick post to let you know that I am co-sponsoring Senator Inhofe's amendment to declare English as the national language of the United States.

This amendment also makes English is the default language for government communication and redesigns the naturalization exam.

Via Instapundit, English Should Be Declared America's National Language

[Personally, I'm conflicted about this bill and deep down, I feel this shouldn't even be an issue (and given that even the Founding Fathers decided against a national language (which would have been German of all things) should count for something) but given the recent illegal immigration issues cropping up, I can see why this is happening, but getting back to the Seattle School Board …]

Even their definition of “racism” comes across as racist to me:

The systematic subordination of members of targeted racial groups who have relatively little social power in the United States (Blacks, Latino/as, Native Americans, and Asians), by the members of the agent racial group who have relatively more social power (Whites). The subordination is supported by the actions of individuals, cultural norms and values, and the institutional structures and practices of society.

Via Right on the Left Coast, Seattle Public Schools: Definitions of Racism

So, only whites can be racist.

Yeah.

I should really stop reading those educational blogs.

Friday, May 19, 2006

Florida Ghosts

It has come to my attention (thanks, Lorie) that the TV show “Ghost Hunters” recently did a show about ghosts in North Florida. Much like I did six years ago with my friend Kurt.

And from what I understand, the “Ghost Hunters” got the same results as we did: nothing. I'm also to understand they not only work for Roto-Router during the say (“Call Roto-Router, that's the name, and all your ghosts go down the drain”) but they take a skeptical view of ghosts—wish we had cable to watch the show. Sounds interesting.

Also, in doing some searching for this entry, I came across The Florida Ghost Hunters, which I need to check out futher when I have some time.

Saturday, May 20, 2006

… and oddly enough, the movie was better than the book.

My friend Bunny and I went to see The Da Vinci Code. I had read the book a couple of years ago, and as I explained to my friend Hoade (who's written a book) that the writing was bad—amateurish, choppy, simple vocabulary, chapters that were at most four pages or so, wooden charaters, and I was able to guess the next “reveal” before the characters did (except for the identity of “The Teacher”).

In short, a really bad book.

But, as I futher explained, one that I (and fourty zillion other people) couldn't put down. Not only a fast read, but a real page turner (so Dan Brown, the author, did something right).

So it was with rather low expectations that I went to the film, and given such low expectations, it was rather good. A decent mindless escapist entertaining piece of film, but not for those of you who don't want the divinity of Jesus Christ called into question.

Sunday, May 21, 2006

A little fire never hurt anyone

This weekend was definitely a film weekend for me. Today I got around to viewing my current Netflix (which has been sitting on my desk for a good month or so) The Wicker Man, a low budget intelligent horror film starring Christopher Lee as the Scotish Lord Summerisle that worships the old Pagan (or Druidic) gods and Edward Woodward as a God fearing police officer sent to investigate a missing child on the Lord Summerisle's island.

It was a rather refreshing horror film—more of an essay on clashing values between Christianity and Paganism than a sea of blood and gore. In fact, there's very little gore in the film at all and only one death (at the very end). There is however, a decent amount of nudity as various Pagan rights are shown but it doesn't come across as gratuitous but as something these people do.

And to Spring's delight, it also has several musical numbers, but unlike most Bollywood films (or musicals in general) these numbers don't feel forced at all since again, it's part of their culture and the music happens organically in the film (at a pub, during a festival and during attempted seduction by Britt Ekland (who's very easy on the eyes) of Edward Woodward's character).

Now, I've forgotten why I put the film in my queue, but it was definitely worth seeing.

Monday, May 22, 2006

I guess it beats spam

PandaLabs has detected a network of computers infected with the bot Clickbot.A, which is being used to defraud “pay per click” systems, registering clicks automatically and providing lucrative returns for the creators. According to the data collected so far, the scam is exploiting a global network comprising more than 34,000 zombie computers (those infected by the bot).

“Renting and selling of botnets has become a genuine business model for cyber-crooks. The scam we have now uncovered exploits infected systems to generate profits through ‘Pay per Click’ systems, instead of by installing spyware sending spam,” explains Luis Corrons, director of PandaLabs. “Given the proliferation of these networks, it is highly advisable for users to scan their systems with fully up-to-date anti-malware solutions, as bots like those involved in this case can be perfectly concealed on computers”.

“Pay Per Click” fraud botnet discovered

It's almost refreshing that using zombie machines to defraud AdWords and AdSense is more lucrative than sending spam (and from what I've been reading, it's no really within Google's best short term interest to stop this).

Tuesday, May 23, 2006

If this is realistic, I'd hate to see what an unrealistic techno-thriller would be.

Digital Fortess is the best and most realistic techno-thriller to reach the market in years … A chilling thrill a minute.”

–The Midwest Book Review

My friend Bunny had mentioned reading Digital Fortress and finding it quite good. I had my doubts, given my feelings towards Dan Brown's The Da Vinci Code but I said I would read the book (which I borrowed from Bunny) and take notes.

Well, I'm about a quarter the way through the book and boy, do I have notes. Aside from the poor writing style, radical shifting of viewpoint, choppy sentances and short chapters (I'm on page 123, in which Chapter 29 starts), I'm alternating between laughter and screaming at the book.

Often times simultaneously.

His recounting of recent computer history is anywhere from five years too early (widespread interest in public key cryptography started in 1992 with the release of Phil Zimmerman's PGP and not in 1987) to nearly 15 years (he has the public Internet as being available in the early 80s when it was 1994 when the commercial restrictions were lifted and the Internet because publically available on a national scale) and at the same time, he has the NSA with quantum computing, which is still in its infancy (and speaking of the NSA, one of his major characters supposedly never heard of the agency even though it was outted in 1982's The Puzzle Palace—sheesh!).

Then there's the little fact that Dan Brown has absolutely no clue about programming. The NSA's prize computer, TRANSLTR, a custom built machine with 3,000,000 processors to brute force encrypted messages, has a virus checker! As if! There's no way a virus could run on the thing unless it was specifically written for the computer and this thing doesn't officially “exist.” Even if the thing was built using off-the-shelf processors like the Intel Pentium, a Windows based virus wouldn't get very far, not finding Windows on the machine (I suppose—it's never stated what operating system it runs, but I can't see Windows scaling to a 3,000,000 processor system).

Then there's the email tracer a main character uses to track where an email messages finally arrives. I'm sorry, but if I received such an email it wouldn't “automatically” detect the IP address and scurry back to the NSA without a trace; my email client doesn't execute anything coming in from email (doesn't even understand HTML) and there's certainly nothing in SMTP that even mandates a return receipt.

Sorry Dan.

And the whole premise of the book, that the NSA's little computer TRANSLTR can't crack a message because of a newly found “unbreakable” encryption system, is bogus because there already exists such an ecryption system! Obviously Dan Brown never heard of one-time pads (or if he did, ignored them outright).

A one-time pad where you generate purely random data (preferably from some external source like neutron decay or static from a dead television) and use as many bits of said random data as the encryption key as there are bits in the messsage. What you get out is a stream of random data (obviously the recipient has to have the randomly generated key to decrypt the message but that's inherent in all non-public key encryption systems).

So I'm having fun with this book, taking notes in order to rip it apart.

More on this when I finish.

Wednesday, May 24, 2006

Snippit of a conversation overheard between an American and a Swede about nothing in particular

“I have a few questions for you.”

“I have an alibi. I didn't do it. You can't prove it.”

“How about I torture it out of you? … Ah, I see you have no answer to that!”


Apropos of nothing in particular but that I think it's neat and to flush out a pretty spare day with another rather silly entry whose title is longer than the actual content.

There's nothing quite like learning how to do a blind hem stitch on a surger.

Thursday, May 25, 2006

The wierd things we like

My friend Bunny slightly mistook my entry on Dan Brown's Digital Fortress, thinking I was looking down on her for liking the book. Not in the sightest—I personally don't like the book, but hey, people have raved about Gravity's Rainbow, claiming it a literary masterpiece of the 20th Century; I couldn't get past 50 pages. Heck, I couldn't get into Lord of the Rings and that pretty much makes me a pariah in Geek Circles.

On the flip side, there are things that I like that I am hesitant to even mention liking that I know are bad, such as my fascination with the singing career of William Shatner (it's not that I like it … oh heck, yes! I like it! There!). So while Bunny likes Digital Fortress, I like a guy that can't even sing properly.

Sigh.


Towel Day

Hmm … seems today was Towel Day, in tribute to Douglas Adams (link via Wil “I'm over Weasley Crusher—No, really!” Wheaton).

Darn.

Well, maybe next year.

Friday, May 26, 2006

Road Trip

I'm a few hours away from a road trip with Gregory & Co. to visit a friend of ours who lives in Blountstown, Florida (a nine hour trip and we're still haven't left the state).

The last time I went on a road trip through North Florida, it was with my friend Kurt (who is also going with us to Blountstown) it was to hunt ghosts (which we never found).

But the last time I went on a road trip with this crew (more or less), there were five of us (and we're not small people) crammed into a Dodge Neon as we travelled to Orlando and Tampa to visit various theme parks. That trip ended up being a miserable trip for me as I got quite ill (and had to make multiple offerings to the Porcelain Gods).

Hopefully this trip won't be quite as bad as that one (for one thing, we're travelling in a van, not a Dodge Neon).


Entry from a Personal Data Assistant

So here I am, writing an entry using a Pocket PC to test this out before Gregory arrives to kidnap pick me up. The intent is so that I can make entries from the road.

Although I'm finding the keyboard on this thing very annoying. Typing letters is okay, but any type of punctation short of the comma and period is highly annoying , not to mention other non-punctuation symbols. It's taking me about five times as long to use this Pocket PC to make an entry as it does with a computer with any type of computer. The most annoying aspect is the virtual keyboard one can bring up—a small window that has more or less a real layout one can then tap using the stylus. But the second you use the actual (if very small) keyboard on the device (which I find faster for letters) the virtual keyboard goes away, which I don't want—I want the virtual keyboard to stick around for the non-letter keys.

There may be a setting for this; I'll hunt around to see.


Finally on the road.

It is now 8:06 pm and we are now on our way to Blountstown, now that we aren't driving around in circles.

This high tech stuff is pretty cool—I'm making this entry from the Florida Turnpike (aka the Ronald Reagan Turnpike) as we're watching “The Cannonball Run.”

Cool.


Traffic Jam at the Reststop

We're at the Fort Drum Service Plaza (it's 10:00 pm) and the place is insanely crowded for a Friday night—perhaps its the throngs of people headed to the Temple of the Rat God.


Pulp Fiction

Since I'm sitting shotgun I can't watch “Pulp Fiction” but that's okay since it's the type of film with such great dialog that it doesn't matter that I can't see it.


It's obviously a wrong number but I think you're too stoned to realize it. Or something like that.

I missed a call, so when I called back, the person was horribly confused, asking me how I had Becky's phone. I had to keep telling him that no, I didn't have Bucky's phone, that this was Sean.

And no, I didn't have Bucky's phone, and the only reason I had his number is because he called me.

He then asked me myu age and location, because, as he relayed to me, there was a girl there with him, that wanted to meet me (wink wink nudge nudge),but since I was travelling, they would call me back.

Wierd doesn't even cover this.

Saturday, May 27, 2006

Finally There

We have finally arrived at Joe's house!

It's only 4:00 am!

Woot.

Now, sleep.


Cast of Characters

So, to make things clear, here's the cast of characters on this little trip.

So with that, I can continue with the trip.


Birds

Sometime during the night, we stop off at some gas station somewhere in North Forida. Tom gets out of the van and as he's looking around, notices the ground is covered in bird droppings. He then looks up.

[The Birds, although Hitchcock himself is nowhere to be found]

“Um, guys,” he says. “I think we better move the van.”

[The Birds, a detail]

We moved the van.


Talk about rural

[Using this hose is going to be a lot of hard work]

Joe lives in a rual place.

A very rural place.

So rural that you need a hand pump to water the lawn.


A day in the country

So here we are, Gregory, Tom, Russ, Jeff, Kurt and myself, really in the middle of nowhere, visiting our friend Joe for the weekend. We awoke around 8:00 am to Joe's son running into the living room, jumping into the huge king size 3′ thick air mattress Gregory was sleeping on, and yelling “You are realy him?”

There wasn't much point in sleeping any longer.

Heck, there wasn't much quiet to sleep any longer.


An hour or so later and a party of seven (Gregory, Tom, Russ, Jeff, Kurt, Joe and myself) are in Joe's van headed towards a local restaurant for breakfast. The only remarkable things about the restaurant was the vast choice of food (two eggs, two eggs and bacon, two eggs and ham, two eggs and saugage, two eggs with grits, two eggs with grits and bacon, two eggs with grits and ham, two eggs with hashbrowns, two eggs with hashbrowns and bacon, two eggs with hashbrowns and sausage, two eggs with hashbrowns and ham, and even two eggs with pancakes! Wooooo) and the inability of our waitron to keep our orders straight (I wonder why).


[The Crew: Gregory, Russ, Tom, Joe, Kurt]

Left to right: Gregory, Russ, Tom, Joe, Kurt (and behind Joe, you can just make out Jeff)

By early afternoon we found ourselves on Joe's Family Farm (owned by his parents for over 30 years). The original homestead had long since fallen apart, leaving only the chimney, but it's not like the farm is in disuse. There's a new house on site, and a replacement barn (steel with a reinforced concrete foundation to support a car lift) and a lot of heavy equipment (Gregory got to take the tractor for a spin—we weren't allowed to drive the backhoe).

[Farm living is the life for me]

While there, we met up with our friend Larry, who just quit his job as an insurance agent (which now means I have to find a new agent) to follow his dream of selling hot dogs. It beats having to talk to angry customers on the phone.

[Larry's dream job]

Foreground: Larry showing off his hotdog stand

Background, left to right: Russ, Greg


On the way to lunch, Gregory expressed concern over the state of the back tires on Joe's van. Joe shrugged the concern off, saying the tires have lasted this long—they'll certainly last until we get back to his house.

After having lunch at Sunny's BBQ, we were headed back to Joe's house when we heard a large thump and the van started to shake violently. Joe maneuvered the van off the side of I-10 and yup. We had a blowout.

[A rather bad blowout] [Jeff, as Vanna White, marks the spot of the blowout] [Kurt pries the tail pipe back into position]

Fortunately, eating at Sunny's probably saved our lives, as the increase in weight stabalized the van to keep it from flipping over (anyone from Sunny's take note: we're available for an add campaign—Sunny's saved our lives!). The outer thread of the tire flew right off and much of the steel band was exposed. Once Kurt got the tail pipe untangled from the wheel, the changing of the tire went pretty quickly, and we safely made it back to Joe's.


The rest of the day was spent playing a role playing game, and those that weren't playing were catching up on sleep. Around dinner time, those that weren't asleep (sleeping: Gregory, Kurt) nor having to attend to a bunch of kids (Joe) headed out for dinner (Tom, Russ, Jeff, myself). We first thought of going to this Mexican restaurant we saw in downtown Blountstown, but upon a closer inspection, it looked more like a bar than a restaurant (and the patrons sitting outside looked a bit rough), so instead we went across the street to the local Chinese buffet.

The Chinese place certainly catered to their clientel—not only your typical American-Chinese fare (sweet-n-sour pork, fried rice, egg rolls) were some Southern touches (greens, okra, etc). The food wasn't bad, given the price.

Then it was back to Joe's, where we finished out the night playing games. Then to sleep.

Sunday, May 28, 2006

A long way to go

[Why is it taking me so long to write these entries? I don't know … I don't feel like writing lately. The past few weeks have been interesting, in the Chinese “may you live in interesting times” kind of interesting rather than the “this is very neat” interesting and I have to work myself up to writing these. I'll get caught up eventually. —Editor on Sunday, June 4th, 2006]

I think we were all tired this morning as none of us stirred as a thundering heard of kids ran throughout the house in preparations for Sunday Church services. I think we slept for another hour or so after Joe, Kelly and their kids had left. The last person to get up was Gregory, and I had been joking that we should just leave him to sleep as he really needed it.

Joe & Co. arrived back home just as we were leaving so we were able to say our final farewells before heading on the road back to South Florida and in search of a Waffle House for breakfast.

About an hour later, we found ourselves at a very crowded Waffle House with maybe a half hour, hour wait for a table for six (or two booths—it wasn't a very big place). After a few minutes of discussion, we decided to try a Sonic Drive-in that's in the area. Gregory started to drive, but wasn't feeling all that well, so I took over for him.

I've been to other drive-ins (years ago), but not a Sonic. Interesting that they had “walk up” boards you could order from, next to several picnic tables. I'm also impressed that they were able to find workers that could actually calculate change in their heads (the staff had “coin belts”—I'm not exactly sure what they're called, but four steel cylinders that one wears on a belt for giving out change). The food wasn't bad either, and the weather was nice for eating outdoors.

After that, it was driving. Eight hours of driving. I lasted another three to three and a half hours before I started getting too loopy to drive. Russ then took over. I don't recall what movies were watched, as I was either driving, or napping [and I now realize, I could have written these entries then, since I did have my laptop, and Gregory provided a power strip in the van for laptop use. Ah well. —Editor]. Gregory also slept most, of not the entire, way back. I even took over driving from Russ after he (Jeff and Kurt) were dropped off.

Monday, May 29, 2006

The Parody Code

Some cute links for this Memorial Day Holiday. They have nothing to do with Memorial Day, but hey, it's worth an entry.

Anyway, first up is The Norman Rockwell Code (link via Flutterby)—a parody of The Da Vinci Code. I will say that the main actor does a killer impression of Don Knotts as Barney Fife (only here, he's playing Barney Fife's son).

The second one is The Albino Code (link via kisrael.com), yet another parody of The Da Vinci Code, only not as good as the first one (it could have stood a rewrite and some serious editing) as it tries to show how silly it is to have an albino monk as your stealth assasin.


Plan 9 from Outer Space wasn't quite as silly

Well, I've finished reading Digital Fortress and I have to say, much like The Da Vinci Code, the writing was amateurish, with very short sentances in very short chapters, probably written with our current attention deficit population in mind. It also read like a movie, with each chapter being a scene. And it certainly doesn't hurt that it has several chase scenes and a major explosion towards the end.

But dispite the poor writing, poor characterizations, poor research and a plot that closely follows The Da Vinci Code (reknown male is killed in the opening scene, a handsom and yet very intelligent professor gets a call to help investigate some conspriacy involving said dead man who has a gorgeous bombshell with a Ph.D. helping him over the next 24 hours) I still found it to be a real page turner.

I think because I was curious as to just how bad it could be.

It was pretty bad (and don't read if you don't want spoilers).

Tuesday, May 30, 2006

Fat fingers

Today was a really bad day.

All I was trying to do was switch the servers from their normal power outlets to managed power outlets so we can do remote reboots if necessary. Things were going along smoothly until I got to our internal office server (that is also runs our trouble ticket system), a server with redunant power supplies.

I managed to somehow kill it.

Along with taking down (unbeknownst to me) half our name servers because I accidentily unplugged the power strip they were on; it also took down the video switch box, so with all this equipment suddenly not working, I thought thing were way worse than they were.

Sigh.

Fortunately, we had a little used server with identical hardware to the one I killed, so bringing that system back up was easy. And once Smirk found the unplugged power strip that fixed a whole slew of problems there.

I don't handle stress well.


Graphing websites

HTML consists of so- called tags, like the A tag for links, IMG tag for images and so on. Since tags are nested in other tags, they are arranged in a hierarchical manner, and that hierarchy can be represented as a graph. I've written a little app that visualizes such a graph, and here are some screenshots of websites that I often look at.

Via YARGB, Websites as graphs

He's even made the applet available for use. It's pretty cool. Here's the structure of my homepage:

[Graph of http://www.conman.org/people/spc/]

A fairly simple structure, and that grey blob in the upper left hand corner is the <HEAD> section with all the metadata for the page. For comparrison, here is The Boston Diaries:

[Graph of http://boston.conman.org/]

And again, that grey blob in the lower right hand corner is the <HEAD> section, with the multitude of metadata. This page is still well structured, but with a lot more content.

It's a pretty cool app.

Wednesday, May 31, 2006

Bright side of life

Today's Irregular Webcomic reminds me of an office rule Smirk enforces: all news, irreguardless of how bad it is, has to be stated as good news.

So, for instance, for yesterday's debacle, I would have to state it to Smirk as: “I was able to save ourselves about an hour's worth of electricity, and our main office server is no longer able to be hacked at all!”

Always look on the bright side of life and all that.

Speaking of bright sides, starting today I get to work mostly from home. Smirk has finally gotten the phone system straightened out, and is forwarding the office lines to whomever is on shift at the moment. And the office phone is working out quite well.

At least now it'll be easier for me to make it to work on time.


Some memories of telecommuting

The last time I telecommuted was in January-February of '96. I had just lost my car in the middle of Georgia (halfway between Christmas and New Year's Eve, on a Saturday no less!) so I was more or less forced to telecommute until I could find a car.

I was, oddly enough, the most productive I've ever been at work.

Then again, there wasn't much else I could do, being without a car at the time.

Thursday, June 01, 2006

No, I'm not really looking forward to this

Woot!

Today is the first day of Hurricane Season!

Wake me when it's December.


Oh my … the white elephant just stepped into the room

I swear the gremlins are out to get our servers.

Since I last talked about “Project White Elephant”, P had taken on the project and set up the pair of redunant servers that live somewhere in the Great Plain States (aka “fly-over country”). Ever since, I haven't had to deal with it, and from what I understand, it's been running quite smoothly over the past year, year and a half.

Until this week.

Wouldn't you know it, the backup machine, which has a RAID system, blew up. RAID system got totally borked, so it had to be rebuilt and reinstalled.

Normally, this wouldn't be a problem.

But see, if P wasn't on vacation in another hemisphere of the globe for the past month (and he won't be back until the middle of this month), it probably wouldn't have blown up.

So now Smirk phoned me and said “Fix this.”

Aaaaaaaaaaaaaah!

Not only does it involve control panels (hssssssssssssss) but MySQL replication, automatic fail over, blah blah yada yada …

Hsssssssssssssssssss.

As if the past few weeks haven't been horrible enough.

Friday, June 02, 2006

Pulp Valley of the Fiction Dolls

From
"Mel" <XXXXXXXXXXXXX>
To
sean@conman.org
Subject
Beyond The Valley Of The Dolls on DVD
Date
Fri, 02 Jun 2006 16:22:48 -0700

Hi,

I just found your Pulp Fiction blog entry: http://boston.conman.org/2006/05/26.5 and I think you may be of some help to me. I'm reaching out to you on behalf of Fox Entertainment and M80 regarding the DVD release of Russ Meyer's film Beyond The Valley Of The Dolls and Mark Robson's film Valley Of The Dolls. Since you mentioned Pulp Fiction, I thought that you might be interested in posting the press release or a review of the film on your blog? You seem like a reputable influencer, so I think you'd be a big help to us.

Please let me know if you're interested!

Thanks!

Mel, M80
XXXXXXXXXXXXX
www.m80im.com / www.m80teams.com

Wow … that was certainly quick, given that I wrote about “Pulp Fiction” only last week.

But I have to wonder what the heck “Valley of the Dolls” and “Beyond the Valley of the Dolls” have to do with “Pulp Fiction”. Is it perhaps because “Valley of the Dolls” and “Beyond the Valley of the Dolls” are based upon pulp fiction books? All three deal with crime, drugs and large cities? They all are Fox Entertainment properties?

Who knows? Mel certainly didn't explain how “Pulp Fiction” has anything to do with the “Valley” films, nor why I would necessarily care.

In any case, I haven't seen either of the “Valley” movies, so I can't review them (nor do I have any desire to see them) and I don't know why he thinks I'm a “reputable influencer” (thanks anyway!) given that my readership is perhaps a few dozen people at best.

It's even more puzzling in that I think I found the search Mel used to find me, and it's mostly links to posts about actual pulp fiction books, not the film “Pulp Fiction.” I wonder how many sites Mel sent email to? [but no, I did not respond to him, because 1) it's puzzling, and 2) I'm writing this several days after the fact. —Editor]

And it's snarky comments like these that mean I'll probably never make any real money at blogging.

Saturday, June 03, 2006

Money for nothing and your clicks for free

From
"Clarice Sears" <XXXXXXXXXXXXXXXXX>
To
Webmaster <webmaster@conman.org>
Subject
We need your traffic
Date
Sat, 3 Jun 2006 19:11:42 -0060

We buy trafficWe buy iframe traffic

Earn $0.085 ($85.00/1000 installs) and more for each unique iframe installs You only put the short one line iframe code on your page(s) and start to MAKE MONEY WITHOUT any Active-X console or any pop-ups … It means that you will not lose your unique visitors with our iframe!

The best percentage of installs (10-40% from the total traff or it's $4-$15 FOR 1000 UNIQUE VISITORS)

DAILY updated soft
Real-time statictic of your work
Payment via: Fethard, Webmoney, Wire, E-gold and Western Union (WU)
Friendly support service
HIT ME ICQ XXXXXXXXX or XXXXXXXXX
MSN XXXXXXXXXXXXXXXXXXXXXX

If I read this correctly, it's 8½¢ per impression for adding one line of HTML to all of my pages. Using The Boston Diaries (since it's its own domain) as a reference point—last month I had 75,466 hits which works out to $6,414.61!

Woot!

Oh wait a second … filter out the bad requests and I have 67,641 hits last month, which works out to $5,749.48.

Okay, I can deal with that—

Oh wait.

Remove hits from myself (to be fair), requests other than GETs, RSS agregators and web spiders and now I'm only down to 3,301 views, which works out to $280.58.

Bummer.

There go my plans for early retirement.

Oh wait … what if I include all my sites?

35,287 visits … $2999.39?

35,000 visits? Still sounds a bit high to me, but in looking over the results, it's probably close enough. There may be something to this then …

Although, if it sounds too good to be true, it probably is …

Update on Tuesday, June 6th, 2006

Just a few minutes ago I actually responded to this email asking for details, using the email address listed in the body of the message. Imaging my surprise when my message bounced back, saying that no such address existed.

Makes me wonder how they plan to actually rope people in on this scam.

Sunday, June 04, 2006

Driven by a white elephant

Ring.

Ring.

“Hello,” I said.

“Sean,” said Smirk. “I need you to continue working on ‘Project White Elephant’ as I drive down to the data center to reboot a server.” Yup, it was still down and being reconstructed.

“Um … ” I said. Smirk could hear the hesitation in my voice. This wasn't something I wanted to deal with right now.

“Well, unless you want to drive down to the data center and reboot the server.” Deal with “Project White Elephant” or drive 20 miles to the data center, spend two minutes rebooting a server and driving 20 miles back home. “Project White Elephant” or driving. “Project White Elephant” or driving.

“I'll drive,” I said, walking out the door …

Monday, June 05, 2006

A thought on static types vs. dynamic types

The simple fact is, I would never choose to write shell scripts in a strongly type-checked language (unless someone were to write a scripting language that is as cheap and dirty as, say, bash). And I would never use a torque wrench to change a light bulb in my house when a crescent is handy. Type checking simply isn't a critical feature for the scripts that I write, and there is a certain cost in using languages that check types rigorously.

On the other hand, I would never be fully confident in a large system built on a DT language. It's not because I don't trust the language. It's because I don't trust myself. An ST language constrains the types of things you can say in a way that helps you avoid erroneous constructions. But the cost is that you have to consciously choose the types, and sometimes you have to build the types from scratch. This cost is not zero, and it's not negligible, which is why I prefer to write shell scripts in an untyped language.

But the larger the system, the more the type system of a language gives me confidence that the components are being used correctly. Since tests get more expensive to write the larger the pieces to be tested become, it is very nice to have the compiler tell me right away that I've done something stupid or made a simple error than to wait for a test to tell me that. Although type checking does not necessarily imply correctness, for many types of algorithmically simple program components, it gets you 90% of the way there.

Johnny Come Lately

Which pretty much sums up why I prefer to use statically typed langauges (I was probably the only one in college that liked programming in Ada). I tend to think of programmers that prefer dynamic typed languages as sloppy thinkers, but perhaps that's because all the languages I learned early on were statically typed (especially Assembly were you had to explicitely reserve memory for your variables).


Finally fixed

I just spent the past few hours on the phone with Smirk, acting as backup as he finally got “Project White Elephant” back up and running, with the control panels, MySQL replication, automatic backups and failover switching. P had left notes, but they lacked some crutial details that took P about a week to discover (the information was there in some configuration files, but getting the MySQL replication working with Blech (the control panel) was the major sticking point.

So it's back up and running, which is a load off our minds.

Tuesday, June 06, 2006

Conditional Advertising

We hope they'll get over it, because they could conceivably take advantage of the same information themselves. A feature we toyed around with and got working (but have been too preoccupied to exploit) was a system that could change the contents of the page you were looking at depending on where you came from to get there. The idea was to take advantage of the context that was being set-up for us by someone else. In an “overlinking” environment, an author could exploit the same information being gathered by the third party and use it to do anything from improving his site's official navigation structure to the information his site offers. For example, if the server saw the visitor arriving by a route that suggests she has technical proficiency, then layman's explanations for jargon and concepts could be omitted.

Via ThoughtS torms: One Way Links, Ghosts of Xanadu

The idea isn't exactly new—SEOs feed targetted content to webspiders in the hopes of getting better search engine rankings, but this method (described four years ago) parallels an idea I had just the other day.

Google AdSense seems to work better on static pages than it does on dynamic pages (and it fails completely on my blog—even individual entries get wierd ads), so I thought that I might put Google Ads on my other websites, but only if the user follows a link from Google.

It's easy enough to do (untested code follows):

<!--#if expr="$HTTP_REFERER = /.*\.google\.com\/.*/" -->
  <div class="ad">
    <script type="text/javascript">
        google_ad_client    = "<i
class="cut">XXXXXXXXXXXXXXXXXXXX</i>";
        google_ad_width     = 120;
        google_ad_height    = 240;
        google_ad_format    = "120x240_as";
        google_ad_channel   = "<i
class="cut">XXXXXXXXXX</i>";
        google_color_border = "CCCCFF";
        google_color_bg     = "CCCCFF";
        google_color_link   = "000000";
        google_color_url    = "000077";
        google_color_text   = "000000";
    </script><script>
        type="text/javascript"

src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
  </div>
<!--#endif-->

And voilà! Ads only when someone follows a link from Google to my page.

Now, it's not without its associated costs. First, all my pages now have to be processed by Apache instead of being statically served, so the load goes a bit higher. And I actually have to add this to each page on all my sites (in some cases this is trivial—in others, not so trivial).

And I could even expand this—for links from other search engines, I could serve up ads from Amazon say (using part of the query as the query to Amazon, like I do for The Boston Diaries) and from other links, no advertising at all.

But do I really want to commercialize all my pages thusly? Would doing this break the Terms and Conditions of AdSense? Is it even worth doing? Is the effort involved worth the selling out? And am I spending too much time worrying about this?


Proof that Hollywood is creatively bankrupt

[This is not Burning Man]

Wierd timing. About two weeks ago I saw “The Wicker Man”, a movie made in 1972 about a Christian cop investigating a missing child on an island of pagans.

Today, via Mike Sterling's Progressive Ruin, I learn that Hollywood has a remake of The Wicker Man, staring Nicolas Cage, that is darker, bloodier and probably more “scarier” than the original (but alas, it looks like with much less nudity).

And the only thing I can ask is “Why?”

Wednesday, June 07, 2006

Hairless monkey chow

Imagine going to the grocery store only once every 6 months. Imagine paying less than a dollar per meal. Imagine never washing dishes, chopping vegetables or setting the table ever again. It sounds pretty good, doesn't it?

But can a human subsist on a constant diet of pelletized, nutritionally complete food like puppies and monkeys do? For the good of human kind, I'm about to find out. On June 3, 2006, I began my week of eating nothing but monkey chow: “a complete and balanced diet for the nutrition of primates, including the great apes.”

Maybe I'll lose weight. Maybe I'll gain superhuman monkey strength. Maybe I'll go crazy. Maybe it's too late. Check back here every day to follow along with the Monkey Chow Diaries. Comments, criticisms, questions and advice can be left on the blog.

I'm tired of cooking. I hate scrubbing pots and pans. I've wasted too much time in the checkout line. It's time to eat chow.

Via Kisrael.com, The Monkey Chow Diaries

The Monkey Chow Diaries is for Spring, who I know will be interested in this.

This also reminds me of my weekly Costco trip this past Monday. While there, I came across this five gallon bucket of “Emergency Food Supply”—275 portions of kosher vegetarian meals for about $110.00 (which works out to 40¢ per meal). Ten different meals and enough food to last one person three months (if you can stand eating the same 10 meals over and over and over again), with a supposed shelf life of 20 years.

I was almost tempted to get it. Almost.

Update on Monday, June 12th, 2006

Found the makers of the “Emergency Food Supply” buckets. It's Nutristorage.


Upgrading

Only a few people reading this (like Ken and Rob my old roommate) will find this amusing (and even surprising) but I'm posting about it anyway.

Today I've finally stopped using elm after using it for some seventeen years.

Yes, I've finally bitten the bullet and upgraded my primary email client to something that actually sees active development—mutt (and if you know me, you know that I tend not to upgrade if at all possible—“if it ain't broke, don't fix it”; heck, my main development machine at home is at least eight years old). Since I've been using mutt at work for several months now, I'm somewhat used to it and figured it was about time to switch. Besides active development, mutt does have a few features that elm lacks that I've grown used to.

Thursday, June 08, 2006

It's good to be the telecommuter

So far, it's been quite nice working from home, what with the 30 second (if that) commute, well stocked refridgerator (heck, well stocked kitchen) and window office (granted, I have a window office at work). Things at “The Office” have finally calmed down to the normal level of problems (i.e. not many), so that's good.

And I still have nearly a full tank of gas from Monday.

[Hopefully, this entry will get through without problem. When I switched email clients the software that accepts entries via email started core dumping on me. Turns out it's a bug totally unrelated to the email client and was just coincidentally triggered by my switch. I haven't fixed the bug but I now know what triggers it (and it's amazing that I haven't triggered it in the four and a half years I've been using the software!). Contrary to what Mr. Brown thinks, software is hard.]

Friday, June 09, 2006

We could use it …

I'm at the office today (which doesn't bother me, since I have to drive further south to get to the weekly D&D game today anyway) playing around with the MegaRAC® K1 (which I played around with a few months ago). The intent is to hook the MegaRAC® K1 into the Beklin OmniView™ PRO 16 port KVM switch so we can view the console of our servers remotely.

That's the theory anyway.

In theory, there is no difference between theory and practice. In practice, there is.

And in this case, the MegaRAC® K1 doesn't quite play well with the Belkin OmniView™ 16 port switch. It does work in that yes, I can see the console of one of our servers remotely, but the second I attempt to switch to a different server (there's a certain keyboard sequence that you need to hit) the MegaRAC® K1 crashes. It doesn't crash on the keyboard sequence (that works since the sequence ScrollLock ScrollLock Space will bring up the Belkin menu allowing you to select the server to display) but the actual switching that kills the MegaRAC® K1, which then requires a power cycle to fix.

I suppose I could plug the MegaRAC® K1 into the the managed power strips

Saturday, June 10, 2006

Ratatouille

“You know, if you could sorta muscle your way past the gag reflex, all kinds of food possibilities open up.”

Ratatouille (and vastly taken out of context here)

The next Pixar film (due out next year) is very cute and if it's anything at all like the trailer, this is something I definitely want to see.

Now only if the rest of Hollywood could take a lesson from Pixar

Sunday, June 11, 2006

“Yeah, what she said … ”

I'm actually amazed.

It's a funny Saturday Night Live sketch.

It's actually funny. A funny take on MySpace.

When was the last time Saturday Night Live was funny? What? 1987 or so?

Monday, June 12, 2006

Human chow

Last Wednesday I mentioned seeing a five gallon bucket of “Emergency Food Supply” at Costco, but at the time, I didn't see any branding information on the bucket, nor could I find it on the Costco website.

Today, however, I finally found it—Nutristorage where you can buy it direct from the manufacturer (what a wierd thing to say about a food maker) for about twice the price.


Enron: The Smartest Guys in the Room

I just finished watching the documentary Enron: The Smartest Guys in the Room (a reference to what Ken Lay and Jeff Skilling were called by the traders at Enron) based upon the book of the same name.

The documentary made pretty clear what went on at Enron: they booked projected (read: “made up”) future revenue (read: “haven't collected yet”) the moment they closed the deal (read: “our stock just went up”) and they had to keep moving, keep booking projects to maintain the fiction of their company, which started out trading natural gas, then expanded into electricity (most notably on the west coast) and even into Internet bandwidth (which didn't go at all, but that still didn't stop them from booking projected future revenues at the time).

What I did not realize was the extent of the scandal. Not only was Enron and Arthur Andersen (who shredded anything dealing with Enron during the investigation) but to major banks as well. Billions of dollars were floating around lining everybody's pockets, except for those that atually invested in Enron.

It's guys like these that make me sad that debtor's prisons don't exist anymore (and if ordered to make full restitution, you know that's where these guys would end up).

The movie itself was made in 2005, and since then, Lay and Skilling have been found guilty of fraud and conspiracy. Now all that remains to be seen is how much they have to give back, how much time they'll spend in Federal prison and who they'll end up “marrying” while there.

Tuesday, June 13, 2006

Oh, so THAT'S how that works

From
"iframeMONEY" <leonex@iframemoney.biz>
To
<sean@conman.org>
Subject
UP TO 500USD per 1000 trojaned computers. Fresh undetected exploits only.
Date
Tue, 13 Jun 2006 16:14:46 -0700

IframeMONEY.biz is traffic converting program was organized in 2003. Always only fresh exploits, best anti AV modules, our loader and all other exe files not detected by ANY antivirus program! You simply add our iframe code to your sites, and we pay you from 80 usd and up to 500 usd per 1000 trojaned computers. Realtime statistics, weekly payouts! Read more on our site.

SIGNUP TODAY!
http://iframemoney.biz/


IframeMONEY,
Email: alexander007@iframemoney.biz
ICQ: 48481384
TEL: +79202501419

Earlier this month, I received some spam saying I could earn 8½¢ per impression for adding a line of HTML to my pages. At the time, I was curious how it worked, it sounding too good to be true.

Well, with this spam email, it all becomes clear—it's not 8½¢ per impression, it's 8½¢ per infected machine I'm able to deliver. Apparently, there's big money in botnets defrauding Google AdSense.


Audible cheats

Apparently, kids are using a ringtone that adults can't hear to send messages to each other during school (link via Shadesong). Well, we have some kids around here, so I thought I'd try it.

I couldn't hear it. Neither could Wlofie. The Kids—they could hear it plainly.

It does remind me of one story from high school. One of my science teachers was color blind, and some enterprising students (and no, it wasn't me) used that fact to cheat—they would write the answers in red on a red folder that was left out in plain sight. The poor teacher wouldn't notice, but the students could (darn! Now why didn't I think of that?).

Wednesday, June 14, 2006

Yeah, I kind of saw this coming

Yet more reasons I hate control panels.

I had to move a site last night from one server, hades to another server, marion, and both servers are running Insipid, which has a backup and restore feature. So the plan was to backup the site from hades, then restore it on marion.

It took several attempts on my part to get this process to work. One has to realize that when Insipid says the operation was “sucessful” all that was “sucessful” was your request for the operation—the operation itself is a separate process that will notify you of the actual sucess (or failure thereof) via email.

Hate hate hate.

Now, one aspect of this site is that it has its own IP address. And lo', once I got the site on marion, marion was listening in on the IP address.

Good.

But hades was still listening in on the site as well.

Bad.

Not wanting to actually remove the site from hades until I know this is working, I then decided to manually remove the IP address (not knowing how one even approaches this using Insipid).

ip addr del XXXXXXXXXXXXXX/24 dev eth0

Try to view the site, and the request is going to hades.

Okay, the switch it's on is probably still sending traffic to hades. Clear the ARP cache on the switch.

Try to view the site, and the request is going to hades.

Check hades and see that it really wants to hold onto that IP address. Use both ip and ifconfig to nuke the IP from hades.

Try to view the site, and the request is going to hades.

Clear the ARP cache on the switch.

Try to view the site, and the request is going to hades.

Okay, shut down the port that hades is plugged into on the switch, clear the ARP cache.

Try to view the site, and the request is now going to marion.

Good.

Now, that was late last night (between 3:00 and 4:00 am during which I stupidly answered the phone and took a tech support call around 3:30 am dealing with an email issue—sigh).

This morning, requests for said site are now going to hades.

Hate hate hate hate hate.

Okay, nuke delete the site from hades, make sure it doesn't have the IP address, shutdown the port it's plugged into on the switch, clear the ARP cache on the switch and okay, requests are now going to marion.

I even double check to make absolutely sure that no other sites are on this IP address. There aren't.

Hate hate hate hate hate.

I know why I hate control panels—I don't feel in control. And when something breaks, I have no idea how to fix it. Oh, I typically know what's wrong, and how one could fix it, if one weren't running a control panel. How to fix it within the context of the control panel? That, I don't know (oh, I suppose one could dive into the internals of the control panel but a) that kind of defeats the purpose of a control panel, which supposedly makes Unix administration easy and b) we use three or four different control panels, which all work differently, which means we need to become experts in using all these control panels which again, kind of defeats the purpose of a control panel. Either that, or I'm bitter that all my experience in administrating a Linux system is no longer applicable and that I have to relearn all this crap four new times, just to administrate a Linux system).

Hate hate hate hate hate.

Subject
No subject
Posted-by
Sean (Staff)
Date
06-14-2006 3:25am EDT

Moved site to marion. It”s disabled on hades and hopefully, hades won't try to reassert the IP address.

Response to trouble ticket last night after moving the site

I fully expect that in a few hours, I'll have to revisit this situation again.

An hour and a half later …

hades took control again. This time, we found a process, ntpd (Network Time Protocol—which keeps the clocks on all the servers in sync) had explicitely bound to each IP address on hades, as well as Apache apparently still configured for the site in question (then what the XXXXXXX XXXX good is Insipid if it doesn't restart Apache?).

Okay, maybe now hades won't take over the address.

Update three hours after the previous update

It's happened twice since the last update. Short of rebooting hades the next time it happens, I can't think of what else might be causing it to respond to an IP address it's no longer programmed to respond to.

Update about half an hour later

Found the script buried in /etc that had the IP address and nuked it. That seems to have taken care of the problem.

For now.


“It was my rerouting to circuit B that saved him.”

[We've gone back and forth several times today about this issue. This is the latest message in the trouble ticket system. I'm not trying to make fun of the customer, but man, it is so tempting … —Editor]

Our clients can not update their sites and they are suffering … Can't you route the communication to that server in a different way?

One of our resellers

Dear XXXXXX,

You know, you're right. We haven't tried rerouting FTP packets to the server. Let's see … we can peel off the FTP traffic from the HTTP traffic at the Primary Intarweb Interface Matrix and feed it through the secondary sub-intranet bridge instead of through the primary LAN tokenizer substation hub … hmm … while the FTP traffic is now going to the secondary sub-intranet bridge it's not getting past the IEEE 802.3 CSMA/CD packet scrubber. Odd.

Okay, instead, let's see if I can reroute the traffic from the secondary sub-intranet bridge through the dual-Φ power transformer at … let's see … probably need to make sure the bits are phased at 60Hz at 51.5° (to induce harmonic pyramidal overtones), making sure to bypass the GFCI (dangerous, I know, but if you know what you are doing, and are very careful, it should be okay) and then tap the secondary coil on the server in question, couple it to the APCI DMA via the unused SCSI controller and then finally into the TCP/IP stack … and—

Cool!

It worked!

Try it now!

Now, off to repair the primary LAN tokenizer substation hub.

[And no, despite how tempting it might have been, I did not send this as a reply, but instead restarted the FTP server.]

Thursday, June 15, 2006

“I'm from the government. I'm here to help.”

The Home School Legal Defense Association's (HSLDA) Chairman and General Counsel, Michael Farris, warns that even though the U.S. has never ratified the United Nations Convention on the Rights of the Child, the convention may still be binding on citizens because of activist judges.

According to a new “interpretation” of what is known as “customary international law,” some U.S. judges have ruled that, even though the U.S. Senate and President have never ratified the Convention, it is still binding on American parents. “In the 2002 case of Beharry v. Reno, one federal court said that even though the Convention was never ratified, it still has an ‘impact on American law”,” Farris explained. “The fact that virtually every other nation in the world has adopted it has made it part of customary international law, and it means that it should be considered part of American jurisprudence.”

Under the Convention, severe limitations are placed on a parent's right to direct and train their children. As explained in a 1993 Home School Court Report by the HSLDA, under Article 13, parents could be subject to prosecution for any attempt to prevent their children from interacting with material they deemed unacceptable. Under Article 14, children are guaranteed “freedom of thought, conscience and religion”—in other words, children have a legal right to object to all religious training. And under Article 15, the child has a right to “freedom of association.” “If this measure were to be taken seriously, parents could be prevented from forbidding their child to associate with people deemed to be objectionable companions,” the HSLDA report explained.

International Law Threatens Home Schooling Warns Home School Legal Defense

I found the link to the above article from this article:

Yesterday my husband Paul Belien, the editor of this website, was summoned to the police station and interrogated. He was told that the Belgian authorities are of the opinion that, as a homeschooler, he has not adequately educated his children and, hence, is neglecting his duty as a parent, which is a criminal offence. The Ministry of Education has asked the judiciary to press charges and the judiciary told the police to investigate and take down his statement.

It appears that the Belgian authorities are again considering prosecution—the second time in barely two months. This time the claim is not that my husband posted allegedly “racist” texts on this website but that he is failing his children.

My husband, a lawyer by training, and I, a former university lecturer, have homeschooled four of our five children through high school. These four have meanwhile moved on to university. Our youngest child is also being homeschooled, but she has yet to obtain her high school certificate, for which she is currently taking exams. Like her four siblings she takes these exams before the Central Examination Board (CEB), an institution run by the Ministry of Education. The Belgian Constitution, written in 1831, allows parents to homeschool. The CEB exists to enable people who have not attended or who have failed school to obtain an official high school certificate.

Via Instapundit, Brussels Journal Editor Threatened with Prosecution over Homeschooling

And I'm conflicted on this.

On the one hand, I don't think the government should stick its business into the private affairs of families and that a family should educate its kids as it sees fit. And if said family wants to indoctrinate educate their kids as xenophobic racist Fundamentalist Evangelical Christians who believe that credit cards are the Mark of the Beast™ that's their business—let their kids have a hard time dealing with the rest of society.

On the other hand, child abuse is a horrible thing that no kid should suffer through and in that case, the government (or some other authority) is right to step in and move the kids to safety.

But on the gripping hand, what is “child abuse?” Obviously sexual abuse, or constant “corporal punishment” that leaves marks is child abuse. No question there. But can raising a kid as a xenophobic racist Fundamentalist Evangelical Christian be construed as “child abuse?”

And yet on the … um … yet another hand (running out of hands here) the government does have an interest in how kids are raised, if only to ensure domestic tranquility—an uneducated kid grows up as an uneducated adult that, if said uneducated adult doesn't turn to a life of crime, does enact a toll on the rest of society (by say, welfare or chronic homelessness).

Then again, on the … um … fifth limb (heck, why not?), what if my (purely hypothetical) kids want to become homeless beach bums? Isn't that their right? At least here, in the United States, home of “life, liberty and the pursuit of happiness”? Heck, what if I want to become a homeless beach bum as part of my “pursuit of happiness”?

But deep down, I don't like this, the government having final say in how kids are educated because deep down, I still believe that the government that governs the best, governs the least.

Friday, June 16, 2006

Capitalism sucks, but not as bad as all other systems

His philosophy at the time, he explains, wasn't exactly pro-profit or pro-capitalist: “Politically, I drifted to the Left and embraced the ideology that business and corporations were essentially ‘evil” because they sought profits. I believed that government was ‘good” (if the ‘right” people had control of it) because it altruistically worked for the public interest.”

He'd been taught, Mackey explains, that “business and capitalism were based on exploitation: exploitation of consumers, workers, society and the environment.” After a year in business, he saw a reality that didn't mesh with his decades of anti-business indoctrination.

“I believed that ‘profit” was a necessary evil at best and certainly not a desirable goal for society as a whole,” he writes. “However, becoming an entrepreneur completely changed my life. Everything I believed about business was proven to be wrong.”

Via Business Pundit, The Transformation of John Mackey

While the whole Enron thing makes me feel that Ken Lay, Jeffry Skilling and Andy Fastow should be tarred, feathered, stripped of everthing they own (including the tar and the feathers after they've been applied) and then placed naked in stockades in the middle of Wall Street because of corporate excesses, not all companies are like that.

This bit is telling:

That's not the way Mackey's customers and employees saw it. Despite losing half his initial investment in the first year of business, Mackey was nevertheless accused of greed and exploitation. “Our customers thought our prices were too high, our employees thought they were underpaid, the vendors would not give us large discounts, the community was forever clamoring for donations, and the government was slapping us with endless fees, licenses, fines and taxes.”

Via Business Pundit, The Transformation of John Mackey

That tells me that a lot of people don't understand basic business or basic economics (and if they did, something like Enron might not have happened). Running a business isn't easy, nor cheap.

Saturday, June 17, 2006

Chanel the Gathering

Today I visited my friend Shadesong who was visiting her parents in South Florida. Also in attendance were (and for this entry, I'm using their LiveJournal user names) enderfem, felisdemens and we_happy_few.

Now, I thought we were getting together to hang out.

It turns out I ended up smackdab in the middle of a “BPAL greet-n-sniff.”

What is a “BPAL greet-n-sniff?”

Well, BPAL is Black Phoenix Alchemy Labs and they've applied the methods of Magic the Gathering (which is a collectable card card game) to the equivalent of Chanel №5—in other words, a collectable fragrance line.

[a thousand imps of BPAL right here …]

Yes, the group of people I hung out with tonight are BPAL junkies, sniffing their way through a thousand different scents trying to find the perfect one (or hundred) that will complement their body chemistry. Apparently BPAL has been quite the phenomenon since they started two years ago, driving sales of their perfume line by making limited edition perfumes, selling small sample sizes called imps which drive a thriving secondary market.

Crazy stuff.


The Hellmouth of Davie

During the BPAL the Gathering, Shadesong's husband yendi ordered pizza from a local pizzaria just down the street, the number for which he got from his father-in-law. Since both yendi and I were not all that enamoured with all things BPAL we both decided to head out an pick up the pizza.

We get to the restaurant only to find out our order was not only not ready, but not even at that store! Apparently, yendi's father-in-law gave us the wrong phone number and the store in question was a bit further away.

I checked the map. The other store was about five miles away, so I figured it would be just as easy to pick up the pies from the other store.

Little did I realize just how wrong I was.

The “other store” was at the confluence of State Road 84, I-75, I-595 and the Sawgrass Expressway, a horribly complicated exchange system designed by dropping ink-stained spaghetti on paper where we ended up driving about an extra four miles trying to extricate ourselves from the vortex of overpass hell.

Afterwards, we both agreed that it might have been quicker to order new pies at the closer store.

Sunday, June 18, 2006

Memories of the proto-Hellmouth of Davie

Driving through Hellmouth of Davie last night, I recalled when that particular area was still under construction. This must have been around 1989, 1990 or thereabouts.

It was very odd driving through it at the time, because the ramps were still under construction and there would be these huge pilons with short, unconnected segments of highway on top littering the landscape. For months it seemed that construction had halted on this forest of proto-highway.

Quite surreal.

And I never did get a picture of it, although I kept meaning to.

Monday, June 19, 2006

Test launches

I'm sitting here at Casa New Jersey and suddenly I'm in the middle of a fireworks show as one of our neighbors is testing out his fireworks in preparation for the Fourth of July (I'm guessing). While it's laudible that he's testing his fireworks early, I hate to tell him that he's not going to have much sucess launching them later.

Tuesday, June 20, 2006

Test Launches II

Our neighbor is apparently testing fireworks again today. Only this time, it seems he wants to see how well they work during the day time.

Um …

While the audio portion of the fireworks is not diminished any, I think he's going to be rather disapointed in the visual aspect of said fireworks.

Wednesday, June 21, 2006

Well … THAT'S interesting

At 5am on April 18, 2005, the CEO of the Ubiqua Seraph corporation … emerged through a stargate in the Haras system, accompanied by her most trusted lieutenant. She wouldn't leave alive …

By 6am it was over. Every Ubiqua Seraph office in the galaxy was raided, the contents of every hangar—including the corporate coffers—ransacked. [The CEO's] ship was destroyed, her escape pod nuked and her vacuum-frozen corpse scooped into the cargo bay of [the attacker's ship]. This was the only proof their client had requested.

Via this comment on theferrett's livejournal and through this page we get Murder Incorporated: Contract killers devastate mega-corporation ( page 2, page 3, page 4)

Sounds like a science fiction movie, right?

Nope.

Or maybe a science fiction book?

Nope.

Not real life either.

Well, not quite. But close enough.

It happened on a massively multiplayer role playing game called EVE Online and it wasn't a scripted event by the company, but rather, an actual event that happened between players and planned for over a year.

Nice to know that greed, vice, crime, betrayal and assasinations are not limited to the real world but will also follow us into the virtual realms we create. Heh.

Still, a very interesting turn of events in a virtual game, and unlike traditional role playing games where you know the game master (and are sitting around a table with a bunch of friends) this time you don't know the game master, and you probably have not even met your “partners” in real life.

User driven stories.

Probably the only way that MMORPGs will survive in the future.


To go with your five dollar shake

At about 5½ inches across and 2½ inches thick, the mound of meat comprises beef from three continents—American prime beef, Japanese Wagyu (Kobe) and Argentine cattle.

“Heaven on a bun,” [restaurant owner Marc] Sherry said.

Bu rger in Boca a mere $124.50

And at $124.50 per burger, it had better be a XXXX good burger! (link via my friend JeffK).


Test Launches III

Our neighbor was once again firing off fireworks tonight. I mentioned to Wlofie that I must be missing some sort of holiday because this is the third day in a row they were firing fireworks. Wlofie mentioned that it's the Summer Solstice, which is a big holiday in Finland and Sweden.

There's a rather large Finish population here in Lake Worth.

That makes more sense than test firing fireworks for the Fourth of July.

Thursday, June 22, 2006

My life as a lame Three's Company episode

[I'm typing this on the absolute worst keyboard we have here at The Office. It's actually in the Data Center and it's the small rack-mounted keyboard. It has an okay feel, but the layout sucks. I'll try not to bitch too much as I'm writing this.

[Why am I typing this entry from the Data Center? Well, that's answered in the next entry, not this one. This one details the beginning of the end of the day here at The Office (XXX XXXXXX XXXXX XX XXXX XXXXXXXX X XXXX XXXX X XXXX XXXX)]

I was stuck in a lame episode of “Three's Company”.

Working from home, while nice, does have its drawbacks, and one of them is the breakdown of communication between myself, Smirk and P (since none of us are at The Office on any regular basis). Smirk thought I would be going into The Office yesterday, but nope, I worked from home. He wanted me in the office to configure a DSL unit for an employee of XXXXXXXX (yes, that company, the one I did all the router configuration for).

So into the office I go.

Smirk also wanted me to drop off the DSL unit at XXXXXXXX, and while I was there, I might as well drop in the managed firewall that I set up for them that's been sitting above my desk for the past two or three months (eek!). I get the DSL unit configured, check the firewall to make sure it's ready (it was) and plan on going over to XXXXXXXX around 5:30 pm.

Around 4:45 pm I get a call from F, who works at XXXXXXXX. One of their colocated machines is not responding and could I reboot it? That's not a problem, so before I simply power cycle the box, I hook the crash cart up to the unit to see what might have caused it to crash.

A bad hard drive.

Tons of hard drive errors are flashing past on the screen, so fast, so furious, that I hit the Big Red Switch and reboot the box. F was happy with the machine responding normally after rebooting, so we hung up.

A few minutes later, F calls back.

Now, before I continue, I have to digress and explain a few things. “Smirk” is not my boss' real name—it's a pseudonym (obviously). So, for the sake of this story, while I call him “Smirk” his “legal” name is actually “Smirkittius” (hey, you try to form a “formal name” from a pseudonym) and he prefers people to call him “Smirkittius,” but I've been calling him “Smirk” since I met him in college and habits die hard.

The computer guy at XXXXXXXX is also called “Smirk.” And sometimes it's hard to remember if “Smirk” referrs to “Smirk” from XXXXXXXX or “Smirkittius” [and if you can't see where this is headed, then count yourself lucky that you haven't been subjected to endless repeats of “Three's Company”].

So F calls back, saying that Smirk is coming over to the office with a new server to replace the one that's dying, and could I help him? Well … yes … but Smirk knows how to setup and copy files from one Linux system to another. I can already feel the day getting worse. So I'm expecting Smirk to drive down to XXXXXXXX, pick up the new server, then head over to The Data Center and copy files.

It's the time I had originally planned on driving over to XXXXXXXX to drop off the DSL unit and install the firewall. I figure I'll go over there, then come back here and continue helping Smirk with the dying server.

I get over to XXXXXXXX to find a surprised F. He had just sent over Smirk with the server and had expected me to be there.

Smirk?

Oh … XXXXXXXX's Smirk, not my boss Smirkittius.

Sigh.

F was also confused when I handed him the DSL unit. He had no idea who it was for. I called Smirk Smirkittius to make sure I was supposed to drop it off at XXXXXXXX. Yup, Smirk was going to install the DSL unit for B. Okay.

Then there was some confusion about serial ports but largely, the firewall install went smoothly with minimal problems. I then headed back to the office to meet with Smirk about the dead server problem.

Even he hadn't heard about the DSL unit.

At that point, I half expected Mr. Furley to rush in [I did mention the communication problems stemming from working at home, right?].


It was my rerouting to switch B that saved the files.”

[So now we get to learn why Sean is using a crappy keyboard in the Data Center to write these entries and not a real keyboard. I would also advise you to read that entry for the necessary background of events leading to this situation. —Editor]

The idea is to copy the files from the dying server to the new server. XXXXXXXX had a spare computer lying around, already pre-installed with Linux. So the easiest thing would be to copy the critical files over (the server in question is just a mail server—that's it). Should be a simple operation.

Should.

There's that word again.

We get the new server on a temporary IP address and start copying files. One of the directories we need to copy over is the mail spool directory, but copying the files is taking way too long.

As in “at this rate, this 10M file will take two hours to copy across the local 100Mbps network” too long. Something was wrong with XXXXXXXXX's switch, and no amount of mucking with either server's network card settings would get the connection to go any faster.

I then grabbed a spare switch sitting above my desk and plugged both machines into that.

Nothing.

I then realized that both machines were technically in different networks. Once I put then into the same network the copy proceeded at a much faster pace.

It still took over an hour to copy the files though.

[And that's why I was sitting in the Server Room making entries. Thankfully, everything worked after that.]

Friday, June 23, 2006

“I'm so bad, I vacation in Detroit.”

So it's cold and dark and people are out of work, and there isn't any public transportation. And the air is polluted and the streets are dirty. Not so much “1996” as it is “Detroit.”

Stu pid Comics #58

Very funny comment about a Canadian comic from the 70s, but at the same time, quite true.


Ah, the joys of medical insurance

I was there to pick up a renewal on a prescription and the man behind the counter fetched it and announced, “That'll be $91.88.” I said … well, here. I'll let you listen in on what I said …

ME: What? I've been getting that prescription for two years and it's always been ten bucks.

PHARMACIST: (after consulting his computer) You're renewing it ahead of schedule. Your insurance doesn't pay unless you're within seven days of running out.

ME: And when will I be within seven days of running out?

PHARMACIST: (after consulting his computer again) June 20.

ME: It's 11:54 PM. In six minutes, it'll be June 20.

PHARMACIST: And in six minutes, it'll be ten dollars.

ME: I suppose there's no point in mentioning that I'm not going to be taking that pill tonight. I am just as “out of it” as I will be in six minutes.

PHARMACIST: Right. There's no point in mentioning that. At this moment, it's $91.88.

I went to the end of the line and saved eighty bucks. Makes you wonder what the mark-up is on these pills. And the funny/sad part of it is that this particular drug is also sold over-the-counter without a prescription for $23. I'd hate to think there are uninsured people out there who don't know that and are paying the $91.88, but I'll bet there are.

news from me: Odds 'n' Ends

My take: the pharmacist probably had to enter the prescription on a computer and couldn't fudge the time and date (much like in the 70s, people would get a bill for $0.00 and when they didn't pay, got sent to collections until they actually sent in a check made out to $0.00—yeah, probably an urban legend, but computerized systems are often funny like that).


A grilled cheese sandwich without cheese

“Would you like a grilled cheese sandwich?” asked Spring.

“Yes,” I said.

“How many? One, or two?”

I thought for a moment. “Two,” I said. Spring headed off towards the kitchen.


“Here you go,” said Spring, handing me a plate with two grilled cheese sandwiches.

“Thank you,” I said. It was then I noticed that Spring had brought me one grilled cheese sandwich, and one grilled cheese sandwich without cheese. I'm used to getting a hamless ham and cheese without the cheese, but this is the first time I got a grilled cheese sandwich without cheese (I should note that upon hearing that she made me a grilled cheese sandwich without cheese that she took said sandwich back into the kitchen and added the missing cheese).

Saturday, June 24, 2006

Okay, now I HAVE to see this film

But in hindsight I can recognize that the conditions of its making were almost miraculous. An independent X-rated filmmaker and an inexperienced screenwriter were brought into a major studio and given carte blanche to turn out a satire of one of the studio's own hits. And “BVC” [I think he means BVD here —Editor] was made at a time when the studio's own fortunes were so low that the movie was seen almost fatalistically, as a gamble that none of the studio executives really wanted to think about, so that there was a minimum of supervision (or even cognizance) from the Front Office.

Via news from me: This is My Happening …, Beyond The Valley of the Dolls

Both Mark Evanier's and Roger Ebert's review of Beyond the Valley of the Dolls (even though Ebert's review isn't a review since he co-wrote the movie) was intriguing enough that I now want to see this train wreck of a movie, even if, my Mark Evanier's review, I don't have enough people to watch it with me.

Maybe then I can see what it has to do with Pulp Fiction.


Bicycle of the Apes

What?

Nine blocks?

No helmets?

Wearing monkey masks?

Eight kids in horrible accidents and no one bothers to stop?

[Who knows what darkness lurks in the hearts of kids?]

Then again, it was the 60s, so maybe that explains this creepy bicycle safety film from 1963 (via Robert Lee).

Sunday, June 25, 2006

High Dynamic Range Imaging

I was catching up on dETROITfUNK when I came across a new digital manipulation method called HDR. The resulting images have this haunting clarity and otherworldliness to them.

The method is simple enough—take several photographs of the same scene at different exposure levels (from underexposed to overexposed) and then average the results. Sure, in traditional photography one could always burn the underexposed portions and dodge the overexposed portions of a negative to even out the luminance of the image but this is the first I've seen it applied easily to digital photographs.

This is something I'll have to play around with.

Monday, June 26, 2006

Experiments in HDR

I downloaded and installed some software (trial version—it fully works but leaves a visible watermark in the resulting image) so I could do some experiments with HDR images.

First image: from my desk (at Casa New Jersey) looking out the window. I took a total of nine images from total overexposure (shown below) to total underexposure, then averaged those images using the installed software.

[Overexposed shot]

Overexposed shot, to get detail on the desk.

[Normal exposure]

Normal exposure—desk is too dark and the scene outside is too light.

[Underexposed shot]

Underexposed shot—you can see outside just fine, but inside is too dark to make out any detail what so ever.

[Average of 9 photos, auto settings]

The result of averaging the luminosity of the nine photos I took, using the automatic settings. Inside is fine, but outside is ever-so-slightly washed out.

[Average of 9 photos, mildly aggressive settings]

This time, I used some more aggressive settings. The outside is a bit darker (but still lighter than on the overexposed shot), but the inside is a bit darker too.

[Average of most underexposed and overexposed photo]

This time, I just averaged the two extreme photos and the result is a bit better than the other two (and notice the missing watermark) although the outside is a bit flat in this image.

The second experiment was taken completely outdoors. Again, I took nine shots (of the neightbor's mailbox across the street) and took the average of them (just the automatic settings) and the average of the two extreme photos.

[Outside overexposed shot]

Outside overexposed shot. Note the total lack of detail in the sky (this was taken around 8:00 pm Eastern by the way).

[Outside normal exposure]

Outside normal exposure. You can now make out some detail in the sky, but the foreground is dark.

[Outside underexposed shot]

Outside underexposed shot. More detail in the sky (althought it's getting a bit dark) and the foreground is nearly devoid of any detail whatsoever.

[Outside average of all 9 shots]

The average of all nine outside shots. The foreground is a tad dark (compared to the next shot) and the sky, while the correct color, is a bit blurred—or rather, the clouds are a bit blurred, due to movement as I was taking the nine shots. There's also a noticible bit of halo around the two trees.

[Outside average of the two extreme shots]

The average of the two extreme shots. It's easier to see the foreground in this one, but overall, the image is a bit flatter than the previous one, and the color of the sky is a bit odd, although you can see great detail in the clouds. The halos around the two trees are less visible in this shot as well.

These were very hasitly done experiments and I'm sure I can do better as I play around with the software. And it's also nice that the software can do this “dodge-n-burn” automagically.

Tuesday, June 27, 2006

Terminal insanity

Smirk is preparing to set up a network presence in Charlotte, North Carolina and this week I have to configure a router, a management server and some managed power strips. To help manage some of the equipment (like the router and managed power strips) Smirk purchased a terminal server.

Now, when I hear the term “terminal server” I picture in my mind a small box like device with one network port on one side, and a bunch of serial ports on the other side. A person can then log into the “terminal server” from the network and access any serial device hooked up to it. Conversely, someone can use a serial device to access the network. Sure, there might be some configuration settings to be made on the “terminal server” but pretty much, you plug devices into it, and that's that.

The unit Smirk got, however, resembles a “terminal server” in that yes, it has a network port on one side, and a bunch of serial ports on the other side (said serial ports being RJ45 with their own special wiring—fortunately the manual came with wiring diagrams but I was stuck talking to the device with some scissors, a bit of wire and a paper clip, but I digress) but there any simularity ends.

The thing comes with drivers.

As in, to use this external network based device I need to install special device drivers on my workstation before I can use it. For Linux, that involved installing the Linux kernel sources (which was a major project in and of itself no thanks to the package manager yum) and compiling the driver (which was a major project in and of itself no thanks to the incompatibilities of various versions of RPM), realize that yes indeed, it is a Linux kernel module which promptly caused my machine to die on the spot.

The computer didn't freeze. It didn't kernel panic. The screen went black and that's all she wrote.

Upon reading further, this “terminal server” uses this “driver” to make the serial ports appear as if they were physically part of the computer, which is not like any “terminal server” I ever had to deal with. Smirk is sending the unit back as it's not what we want.

So instead, I'm bringing the terminal server I have and using that.

What?

Doesn't everybody have an old terminal server they aren't using anymore?

Okay, maybe Mark …

Monday, July 10, 2006

Ketchup

My cell phone rang.

I went to answer it, but I couldn't read it. At first, I thought the screen was upside-down, but when I rotated the phone, the screen was backwards! It was flipped and reversed. After the phone call, I powercycled the device (by removing the battery) and it's fine now.

Wierd.

But yes, I'm posting again!

I've been sick since June 29th with a cold and as typical with me, when I get a cold, I get a cold. Almost two weeks with gallons of snot, sleep, liquids and Vitamin C and I'm finally better.

And even had I been posting, it would mostly have consited of entries looking much like “Still sick. Gallons of snot. Tired. Going back go sleep.”

Though between bouts of unconscienceness, I did manage to collect a few links I wanted to throw out, so here they are, in no particular order:

Via Instapundit comes The Energy Family, a blog about a family trying to convert their house to run entirely off the grid.

Also via Instapundit comes this report about the lack of tornadoes in Nebraska and Kansas this year (well, at least until the fifth of July). This year we've only had one tropical storm so far, unlike last year when at this time we were at two tropical storms and two hurricanes with a third hurricane up and coming, so maybe this year will be quiet (although, looking at the 2004 season the first storm didn't form until the end of July and that was the year Florida got slammed with four storms).

Anyway.

Via Yet Another Really Great Blog comes … this … and really, I don't want to spoil the fun, but if you like Star Trek and Star Wars, then you should get a kick out of the video (and please, do watch it through the end, it's very amusing—it's got dancing Stormtroopers for crying out loud!).

And finally, via Michael Duff is this David Hasselhoff video (amusing in as far as it stars his old TV partner KITT).

I did mention I was sick, right?

With a cold.

Okay.

(Amusingly enough, my boss Smirk called me up to inform me that I had been neglecting my duty and not updating The Boston Diaries often enough, so get on it, pronto! And to think, most people are worried about being fired for blogging, not for lack of blogging … )

Tuesday, July 11, 2006

The Piper at the Gates of Dawn

Syd Barrett, one of the original members of legendary rock group Pink Floyd, has died at the age of 60 from complications arising from diabetes.

Via metaphorge, Pink Floyd's Barrett dies aged 60

For the few of you who I know are Pink Floyd fans, this sad news is for you.


Bricks and mortar from a website

Wlofie directed me towards the Hirst Arts Fantasy Architecture which allows you to build your own miniature castles (primarily for role playing games, but used for other reasons as well).

The whole site excites me on two levels.

One level, that of going out, buying molds, plaster of paris, some glue, and going to town making cathedral or two.

And on the second level, the sheer amount of information given on the site on model building. Not only the number of projects you can make, but tips to help the building process and instructional videos on the various techniques used to build the models. And even more great (given that the company just sells the molds) are how the molds are made, with instructions on making your own molds.

That, I really like. Bruce Hirst (owner of the two person company) is not afraid of telling you how he makes the molds. Given the time and complexity I'm sure it's easier and cheaper to buy the molds from him, but still—the fact that he goes into such depth on how he makes them is very neat. The site is well worth the few hours it'll take to go over everything.


Cultural implications of the Princess Leia bikini indeed …

So Spring mentions the Princess Leia bikini (from Return of the Jedi although I doubt I really needed to mention that) so I click over to the article and immediately check out the pictures (what? Bother reading an article about Princess Leia's bikini? Yeah, right).

As I'm drooling looking over the pictures, one of the models looks awfully familiar to me. Looking closer and yes, I know her! Amazing.

Wednesday, July 12, 2006

The fit hits the shan

It's the scheduled day at the office. Prior to sitting down at my desk:

  1. I get a call from R (for whom I manage a few servers). One of R clients is mentioning the terms “proxy,” “multiple IP addresses” and “redundant servers,” which to me screams “reverse proxy” which means at best, a recompile of Apache (since I never compiled in reverse proxy support) or worse, a complete reinstall of the latest version of Apache. Oh, and the client wants it done by tonight.
  2. There are no parking spots available at the office. None. I have to drive to the end of the building and around the corner before I'm able to find a parking spot. This has never happened in the few years I've been working with Smirk.
  3. The three-phase power system to the Data Center is blown. We're running on the backup generator and the three A/C units in the Data Center are off line.

It can only get better from here, right? Right?

Thursday, July 13, 2006

The teflon shan

Okay, yesterday wasn't quite as bad as I made it out to be.

  1. I'll get to this in a moment, but it did involve installing a new version of Apache.
  2. I could use the exercise anyway.
  3. There wasn't much I could do about the power that hadn't already been done (except for running around in a mad panic).

So, that leaves setting up a “reverse proxy” as per request. The server was running Apache 1.3 (at the time of install, there were still some issues pertaining to PHP and Apache 2.0, and I'm a very firm believer of “if it ain't broke, don't fix it!” theory of management) and what they were asking required features only available under Apache 2.0 or higher.

So I downloaded the latest version (2.2.2) and spent several hours getting it compiled correctly. It's not that it didn't compile cleanly, but in setting it up, I would have expected:

./configure --enable-mods-shared=all [other options not important]

to, you know, compile all the available modules. Only, it doesn't. It compiles most of the modules. I had to explicitely include support for SSL, proxy and the caching modules. Go figure.

The only other rough spot I encountered was a rash of 403 Forbidden result codes when trying to browse the websites normally on the box. Going back to Apache 1.3 they all worked. Apache 2.2? All the sites were forbidden.

Now, the configuration files between 1.3 and 2.2 haven't changed that much (thankfully! There's over a thousand sites on the box) but still, it took me several hours to track down the problem which is due to some changes in the default configuration. Apache 2.2 has the following as part of the default settings:

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

Apache 1.3 doesn't.

And since the websites are not under the default location, but elsewhere, that bit of configuration meant that none of the sites were accessible by anyone. Yes, sometimes the obvious things take awhile to notice.

But that's all working now.

Friday, July 14, 2006

“Your page must contain not more than 15 outbound links”

From
"Edward Taylor" <ed@e-viagra-pills.com>
To
sean@conman.org
Subject
Links partnership request to http://boston.conman.org
Date
Fri, 14 Jul 2006 09:49:08 +0400

Hello,

My name is Edward Taylor, and I want to propose you triangle (three way linking) link exchange. I can place your link on the one of the following home pages:

Page where you place my link must meet next requirements:

  1. Page Rank of the page is not less than Page Rank of our Page - 1
  2. Your page is not the page in site link directory
  3. If your page has less PR than PR of our page, then you page must be home page.
  4. Your page must contain not more than 15 outbound links.

Here is my linking info:
<a href="http://www.phentermine-information.us" alt="Phentermine">Phentermine</a>

Waiting for your decision, and responce.

Regards, Edward Taylor.

I get quite a bit of these from time to time (and I could have sworn I quoted one of these before here, but I can't seem to find it). What's funny is that Edward here is obviously using software that finds pages with a Page Rank of 5 or above (and the Page Rank of The Boston Diaries is 5), at least pulls the page down to grab any mailto: links (which I do have on the page) and sends an email to said address requesting said link exchange, but it doesn't check the number of outbound links! If it did, I wouldn't even get these as I have, at a minimum of fifty-three (53) outbound links (which is before you count links in the individual entries).

And least you think that Edward there pulled the number 15 out of the air, all the link exchange requests I get in this form all require 15 or less outbound links, as if there's some scientific explaination that says that 16 or more outbound links is bad for Page Rank (which I frankly don't care about, which is another reason why I probably won't ever make any money on this thing).

Sigh.

If only these people would bother to look at the pages before they spam, but alas, that would probably take too much effort.

Saturday, July 15, 2006

Toilet woes

[Not much to it, is there?]

I've spent the day trying fix a toilet problem.

The problem is that water is slowly leaking from the tank to the bowl, and once the water level in the tank gets to a certain level, the ballcock assembly (the thing to the left in the photo above) kicks in, refilling the tank. The noise isn't much, but it's annoying enough when trying to sleep.

So it's obvious that the flapper (the red round thing in the center of the photo above) isn't making a proper seal (unless you flush the toilet just right, which not everyone in Casa New Jersey does). Replacing the flapper isn't difficult at all, so one trip to Home Depot later, and I have a new flapper.

Only it isn't making a decent seal. So it looks like I need some form of gasket to go between it and the pipe beneath it.

It took two trips to Home Depot, and I still don't have a gasket that will fit (the only other gasket I didn't buy I know won't fit). So it looks like I'll have a bit more work to do to get this fixed properly.

Ah, the joys of home ownership.

Sunday, July 16, 2006

It is now 61 AA

It was 61 years ago today that the first nuclear bomb was tested, thus making it 61 AA (link via wcg).


Viva Lost Wages

Besides being 61 years since Oppenheimer became Shiva, it was one year ago today that I flew out to Las Vegas with my friend Hoade.

I must not have finished Harry Potter and the Half-Blood Prince since I haven't finished (or even started) the write up of the trip. I still have the notes, on 88 5×3″ pages (a small wirebound notebook).

Penny slots no longer
take pennies but
nickels. They are being
phased out for more money
making machines.

595 Prime rib
    Salad
    potato

pix 42–43 Carpet of
Hôtel San Réno [mispelled in notebook, it's supposed to be Rémo —Editor]


Dancing Bartenders
Centerfuge @
  MGM Grand.

Notes from page 18 of “Viva Lost Wages!” notebook

[Yes, all casinos have carpet like this]

pix 42 mentioned above

[I think it's designed to confuse people]

pix 43 mentioned above

I really need to finish up writing about the trip, which included a sidetrip to Rachel, Nevada which was eerily quiet (quiet enough to hear our shoes squeaking as we walked). I also forgot about the Chinese cook who threatened us with his mad martial knife arts at the Hôtel San Rémo buffet.

I really need to get this written up.

Monday, July 17, 2006

Snippits from Lost Wages

I have yet to start writing about my trip to Las Vegas last year. So to hopefully encourage me, today's snippit is from one year ago today:

[There's an arrow that starts at the top of the page, past the first paragraph and pointing to the second paragraph. I don't know how to simulate it here, so I'm describing it—it is an important part of the notes though, as you'll see. —Editor]

I tried a quarter machine
(quarter from Hoade). I go
to pull the arm. Nothing.
I have to press the button.


Before the above, Hoade
puts a quarter in a slot machine
and hits the button. I berate
him for not pulling the arm.


The one arm bandits take
your money, and the arm
doesn't even work!


Hoade paid 50¢ for
Friday's newspaper. [It was a Sunday when I wrote this note —Editor]

Notes from page 21 of “Viva Lost Wages” notebook

This was the day we visited some Buddhist temples in the area. At one of the temples I lost an argument with some scrub brush across the street and spent the next hour or so picking needles out of my arm and legs.

[Ouch]

Later in the day, we ended up in the Luxor, the pyramid shaped hotel at the southern end of the Strip. While there, we snuck aboard the “inclinators” (which move both up-down and left-right along the edges of the building) and managed to get a few vertigo-inducing photographs.

[Floor 24 looking out into the hotel]

Life, wheat, mildew

From
"Judson Combs" <JudsonCombs@0733.com>
To
sean@conman.org
Subject
Life, wheat mildew
Date
Mon, 17 Jul 2006 19:12:28 0000

Your cre dit doesn't matter to us! If you OWN real est ate and want IMMEDIATE5 cash to spend ANY way you like, or simply …

The spam itself is nothing special, but for some reason, I love the subject line—“Life, wheat mildew” although I think it would scan better with the addition of a comma: “Life, wheat, mildew.”

What a cool thought: Life, wheat, mildew.

Yes, at times I am easily amused.

Tuesday, July 18, 2006

Snippits from Lost Wages

Still have yet to get the write up started, so yet another snippit from notes I took:

Road [US-93 in Nevada —Editor] actually has more
traffic than I expected.


Stuck in traffic just outside
Alamo—doing a slow 30mph
A wide load spanning both
lanes is slowing us down


Bumper to bumper traffic
outside Alamo—400 population.
Rush hour 8:30am


Alamo has a motel
with showers and telephone.

Notes from page 36 of “Viva Lost Wages” notebook

Yup, we hit rush hour traffic in a town of 400 along US-93 with only two towns between Las Vegas and the turn to Rachel.

[Even out here there's traffic!]

Rush hour traffic just outside Alamo, Nevada

But once we hit the Extraterrestrial Highway the traffic cleared up and it was smooth sailing to Rachel, Nevada.

[Yup, the road just kind of vanishes like that]

The road to nowhere Rachel, Nevada.

Along the way, we passed one of the access roads to the mysterious Area 51, which in this case, is a one lane dirt road heading off into nowhere (in the photo below, it's the white line on the right side of the picture).

[Abandon all hope, ye who enter here]

Area 51 is just beyond the mountains in the distance, at the end of the dirt road.

We nearly missed Rachel as it's a small cluster of trailers on the south side of State 375 (aka “The Extraterrestrial Highway”) with only three permanent buildings, one being the Little A'Le'Inn, one being the gas station/super market (who's proprietor drives into Las Vegas each week and buys supplies from Wal★Mart) and the third being a thrift store/community center.

[Earthlings welcome]

The infamous Little A'Le'Inn.

[The vast supermarket in Rachel]

The Gas Station/Supermarket

[Dig the old style gas pump, back when gas was below $1/gallon]

The old style gas pump. So old it doesn't have display dollars, hence the handwritten “2.” Gas was $2.89/gallon (this was last year—it's probably higher this year).

For me, this was probably the highlight of the trip, even though we only spent about an hour, hour and a half in Rachel. The next time I'm in Nevada, I would definitely like to spend more time out here.


Wil “Not William Shatner” Wheaton

[Take two. First time through, the keyboard got stuck in uppercase that some how survived a reboot. It took a powercycle to get the keyboard unstuck. Go figure. —Editor]

It's funny.

Wil Wheaton is currently in Las Vegas, one year after I was there. Hoade and I had just missed World Series of Poker when we went, which probably explains this entry on page 22 of the “Viva Lost Wages” notebook: “I don't think we'll be running into Wil Wheaton anytime soon.” It would have been quite funny to go up to him and mistake him for William XXXXXXX Shatner.


Postfix, Dovecot and Ravencore! Oh my!

I think I've finally calmed down.

Rough day at “The Office” (even if it was from home). SMTP authentication problems, control panels and horrible documentation.

Let's see … can't uninstall the control panel probably because I modified it so that it would actually work with the Apache installation, which means I couldn't reinstall it with the updated versions of Postfix and Dovecot since the system installed versions do not support SMTP authentication (with Postfix providing the SMTP part, and Dovecot providing the authentication portion). Finally had to upgrade to the latest version, uninstall that, upgrade Postfix and Dovecot, reinstall Ravencore and still have it fail (although I figured out the immensely bizarre method Ravencore uses to store the Postfix configuaration file, and the cached copy of the Dovecot configuration file so at least using Ravencore won't break SMTP authentication).

Then there was getting Dovecot to authenticate not against /etc/passwd but another password file. Turns out you need to specify the file twice under different options:

auth default {
  
  passdb passwd-file {
	args = /etc/dovecot-passwd
  }

  userdb passwd-file {
	args = /etc/dovecot-passwd
  }
}

Yeah, I don't understand it either.

Postfix wasn't a problem—good documentation there. The only problem with it was Ravencore overwriting the configuration file with its own copy without the proper SMTP authentication settings. It was just a matter of tetting the proper settings into the bizarre format Ravencore uses to store the Postfix configuration (each line gets its own file—sigh).

Hours! (You paying attention, Smirk? Hours!)

Update on Wednesday, July 19th, 2006

Smirk just called to remind me that I was the one that picked Ravencore. So there you have it.

Wednesday, July 19, 2006

The Wynn: the Disneyfication of European Elegance

Power outtage @
Rio just as dinner
was ending. Very dark
and quiet.


XXXXXXX XXXXX
    XXXXXXX.[What happens in Vegas, stays in Vegas. And that's all I'll say about this note. —Editor]


The Wynn: the Disneyfication
of European Elegance.

Notes from page 44 of the “Viva Lost Wages” notebook

Upon returning from Rachel, Nevada, Hoade and I met with my Dad (who drove in from Palm Springs, California to meet us) and we headed off to the Carnival World Buffet at the Rio for dinner.

The buffet was huge and we spent quite a bit of time running around gathering food and stuffing our faces. Just as we were getting ready to leave the power at the Rio goes out.

Casinos are never quiet—at the very least there is the background radiation of a casino is the constant din of “Money money money money money” from the slot machines (next time you're there—just listen to them—I swear they say “Money money money money money”) and the they're lit so you can easily make your way through the maze of beckoning gambling games, but a dark and silent casino?

Nothing is scarier than a dark and quiet casino. For perhaps a full ten to fifteen seconds there's total quiet then the slot zombies come shambling out. “Slots …. slooooottttttsssssss.” Fortunately for us, we had the buffet chairs to fend off the slot zombies as we made our way outside.

The title for this installment comes from the observation I made about The Wynn, where we headed to calm down after the attack of the slot zombies. Yes, the Wynn is very elegant. But it has this … Disneyesque feel about the place. Heck, most of modern Las Vegas has this Disneyesque feel about it, now that I think about it.


Snippits from Lost Wages

What was interesting about this day last year is that I have the most notes (a full twenty pages) from today, but that Hoade and I really didn't do anything today. We hung around the hotel room for several hours, then went out to visit a bunch of casinos the in the area.

[That's the Bellagio in the background]

Hoade in front of Disneyesque European Elegance.

Guy sleeping in the doorway of
the unused entryway of the
restaurant. Dad and I had
breakfast.


The waitress was a bit snarky.


Kid on a leash. What is that
telling the kid? What does that
say about the parent? Why
would parents bring kids to
this place [Las Vegas —Editor] anyway?


Plane after plane after plane
is landing at the airport.
I've seen a dozen planes in
a few moments.

Notes from page 45 of the “Viva Lost Wages” notebook

I think we were both getting burned out by this point, as we had already done everything we wanted to do on this working vacation (Hoade came to Las Vegas as research for a book he was writing. Since he's never been and I had, he tagged me to come along with him).

[And there's a bit of a faux Paris in the back ground. Much like Disney.]

Me, in front some Disneyesque European Elegance.

A really large and obnoxious
American is bitching about the
size of the $595 prime rib.
He is about as tall standing as
he is lying down.


I may have to write a simulation
of Keno, just to get a feel for
the odds. Although the payouts
are probably the odds.


Hoade and I pretended to play
Keno. 20 # out of 80 are selected
the player can select up to 15.
There is a variation where you
win quite a lot for getting
0 #s. Hoade and I still
lost.

Notes from page 46 of the “Viva Lost Wages” notebook

Most of the notes I took today were personal in nature, observations about Las Vegas, the band playing at the Hôtel San Rémo that night, that type of thing.

Thoughts on Vegas:

Notes from page 60 of the “Viva Lost Wages” notebook.

That last note reminds me of Easter Island—the natives built larger and larger heads to bring favor back from the gods as their habitat slowly died around them.

Yup, this day was a rather depressing day in Las Vegas.

Thursday, July 20, 2006

Snippits from Lost Wages

It was one year ago today that Hoade and I spent our last day in Las Vegas. We checked out early, but had an entire day to kill, seeing how our flight didn't leave until 10:40pm.

One of the towels at the
Hôtel San Rémo is from
Harrahs.


[Hoade and I decide to take the stairs down instead of the elevator. —Editor]
The stairs going down only
go to the second floor, then
lead outside. Hoade and I
run into someone else who was
lost within the utility
Jeffries Tubes of the Hôtel
San Rémo.


Going down to the lobby,
I got into the elevator. Inside
were two elevator engineers.
The door would close, then
open. Three times. By the
time we finally started
down, one said, “We're
not responsible for these
elevators. We're working on
the building next door.”


Checking out, the guy [the desk clerk –Editor] said
“There is still four ninety-
five.” Is that 400 and
95 dollars? What? It was
$495, for the hour of Internet
Hoade used.

Notes from pages 67–68 of the “Viva Lost Wages” notebook

The Hôtel San Rémo was under construction at the time, being turned into the Hooter's Casino, and the day we left the elevators were a bit “problematic.” After checking out and bidding adieu to the hotel, we then headed out to Hoover Dam.

We ended up parking on the Arizona side of Hoover Dam, walking down several flights of stairs (embedded in the landscape) and walking across to the Nevada side to check out the Tourist Center.

[The thing is immense]

Hoover Dam, from the Arizona side looking over to the Nevada side.

[Water collection towers]

The backside of Hoover Dam (taken from the Arizona side).

[Lake Meade is looking a bit low]

That white stripe signifies the old water level of Lake Meade.

After looking around it was late morning and the temperature was rising. We nearly collapsed on the way back to the car; having to climb several flights of stairs damn near killed us.

The trip out to Hoover Dam killed the morning, but that still left the afternoon and evening to kill.

[There it is.]

So. Nevada University. There it is.

I just like the picture.

Lunch. Drove about an hour to the very edge of Las Vegas (northwest corner) and killed a few hours in a book store. Then back towards the airport, dinner, then a few hours at the terminal.

I was lucky however, to get an upgrade to First Class (for both legs of the trip home) for only $100. Yup, I took it and yes, First Class is much nicer than coach, although the weather back was bad, so there wasn't much to look at out the window, and given the time of day, I ended up sleeping most of the way home.

Oh, and did I mention
the pillows? Hoade is
really going to hate me.


And there are television
screens, but I don't know
if that is a 757 thing
or a 757-1st C [class —Editor] thing.


Fortunately, I have a headset.
God, I could actually like flying.


I am certainly happy to be
going home. I think I will
close today out here. It's
past midnight @ home.

Notes from page 75 of the “Viva Lost Wages” notebook


Of limited interest

John Molino and Patricia Warren formed an Arizona internet company, the Free Yellow Pages Corporation, in 1997. Relations soured between them. Molino negotiated to buy out Warren's interest. Without reaching a final agreement with Warren, Molino moved the assets of the company to Florida. There, he incorporated a similar company, FreeYellow.com, Inc. He transferred the assets of the Free Yellow Pages Corporation to FreeYellow.com, without paying any compensation to Warren or the original company. Warren had a strong claim to a 50 percent beneficial ownership interest in FreeYellow.com and its assets because it was essentially the same business as the Free Yellow Pages Corporation. Nevertheless, when Go2Net sought to acquire FreeYellow.com in 1999, Molino represented that he was the sole owner. …

Go2Net and Molino finalized the merger agreement near the end of October 1999. About two months later, Warren contacted Go2Net and informed them that she was a 50 percent shareholder of FreeYellow.com's predecessor corporation. She demanded that Go2Net cease using FreeYellow.com's property until resolution of the matter. It is unclear whether, and how, Warren's demands against Molino and Go2Net were ultimately resolved. Go2Net's immediate reaction to Warren's claim was to negotiate with Molino over the course of nine months for the protection of a larger escrow account, while at the same time advising Molino that Go2Net was 'prepared to pursue all rights and remedies available to it.' The negotiations seemed promising at first but ultimately failed in September 2000, when Molino informed Go2Net that he did not intend to enter into an escrow agreement. Molino demanded $16 million from Go2Net. Go2Net did not complete the registration of Molino's Go2Net stock, and Molino was not able to sell it.

Go2net, Inc., Res./Cross-App. v. Freeyellow.com, Inc., App/Cross-Res.

Unless the name “John Molino” means anything to you, don't bother reading this. On the other hand, if it does (and I know a few of my readers will be interested in this), then this will make for some facinating reading.


Too much time on his hands

In these days of “fast” and “convenient” I decided to commence a work of “painstaking” and “craftsmanship”, making my own wristwatch. I have had the idea for a certain arrangement of the watch dial, as on the image at the right, for a while now. My investigations into available movements showed that no production movement would give me this layout. After a long period of indecision and wondering what I was really getting myself into I decided to make my own movement, followed by the case and dial.

Via The Mess That Greenspan Made, Making a Watch by Hand

I also have a few readers that might be interested in making a wrist watch by hand. I personally would have gone with a pocket watch, but that's me.

Friday, July 21, 2006

Snippits from Lost Wages

Technically, the last day of the trip, although I technically wasn't in Las Vegas, or even Nevada, but aproximately 37,000 feet above the United States sitting in First Class.

Wow, the steward call
button worked though. [Neither the light nor the radio worked in my seat, dispite being in First Class. —Editor]


I will definitely be
processing this trip
for a while to come. [A year anyone? —Editor]


We flew over a thunderstorm.
Very beautiful. And frightening
not that we were in any position
to get hit but the disg ts
display of raw power. And
so frequent too.

Notes from page 83 of the “Viva Lost Wages” notebook

And flying over a thunderstorm reminded me of a time years before when I was flying home (from Hoade's wedding) on July 4th at night. The weather was clear and from about 35,000 feet I was able to see hundreds of firework shows dotting the landscape. Little flower explosions popping all over the place.

Both the storm and the firework shows were wonderful to watch from above.

I arrived at West Palm Beach around noon on the 21st and very happy to finally be home.

And thus ends the “Snippits from Lost Wages.”

Saturday, July 22, 2006

The Anything RPG

Risus is a complete Role Playing Game (RPG) designed to provide an “RPG Lite” for those nights when the brain is too tired for exacting detail. Risus is especially valuable to GMs assembling a quick convention game, or any late-night beer-and-pretzels outing. While it is essentially a Universal Comedy System, it works just as well for serious play (if you insist!). Best of all, a Risus character takes about 20 seconds to create!

Risus: The anything RPG

Actually, I had to do a search for “Risus” after seeing this image which was from this series of motivational RPG posters which I got from a mailing list I'm on, to get to the page quoted above.

It does look like it's a fun game and charater creation is simple, although it probably takes a bit longer than just 20 seconds to create a charater (maybe a minute or two). And the mechanics are pretty easy— just role some dice and if the sum meets or exceeds to value picked by the GM you succeed, else you fail. It might not be a good system for a long campaign, but for a one shot or having nothing else to do, it'll do.

Sunday, July 23, 2006

The Adventures of Alfredo

I've never heard of Alfredo, nor of adventures but I have to admit, they're rather amusing in a “stick figure from the home computer wave of the 80s as animated by a bored 13 year old” way (link via kisrael).

Monday, July 24, 2006

Me on cold medication, II

In the directory where I keep draft versions of entries, I found one labled cold.medication dated July 7th which contained the following:

I've been coming down with a cold so I ended up going to bed early last night. At about 3:30 am I found myself unable to sleep so I took some cold medication that's a cheap knockoff of Ny-Quill in a pill formulation, and then drifted off to sleep.

At 6:30 I found myself wide awake in a red convertible doing about 130 out of Barstow conversing with Hunter S. Thompson about the finer points of wumpus hunting as a swarm of bats trailed behind us.

Yes, when it comes to drugs I am such a lightweight that what some people pay hundreds, nay, thousands of dollars for better living through chemistry I can experience with cheap OTC stuff meant to fight off a cold.

And hating every moment of it.

There is no way I'm making it in to work today.

Funny, I thought. I don't recall writing that. But I must have, since it was written when I was sick. And I am a lightweight when it comes to OTC medication.

Then I noticed that the file was dated June 7th, not July 7th. Which was odd, since I wasn't sick on June 7th. It was then I noticed that it was June 7th 2005 and it all made sense. Yes, I was sick then so that's when I must have written it.


Imminent death of Las Vegas is a bit premature

Fifty years ago a Life magazine cover asked—“Las Vegas—Is Boom Overextended?” After all, three hotels had opened in the spring of that year costing a total of $15 million and two more were opening that summer including the $5 million Dunes. “Had Las Vegas pushed its luck too far?” Life wondered.

Nearly 30 years later, Malcolm Baldrige, while serving as Secretary of Commerce in 1984 was quoted as saying, “the current boom in Las Vegas could last four more years.”

But, of course here we are 20 years later, and Sin City continues to boom.

What Life Magazine and Poor Malcolm failed to grasp is what really makes Las Vegas—Las Vegas. The town is ground zero for high time preference. People go to Las Vegas to have a good time, blow their money and maybe be a little bit naughty. After all, “what happens in Vegas, stays in Vegas (or according to the Palms casino “didn't happen at all”)”. Let's face it you don't go to Vegas to be civilized or prudent, just the opposite. As Las Vegas Mayor Oscar Goodman told the Denver Post: "People don't come here from the Midwest to go to an AA meeting.”

via ThoughtStor ms: Las Vegas, High Rises and High Time Preferences

An interesting article about Las Vegas and the seemingly perpetual prediction of its demise and how it never comes about. Although the article does go into depth into the real estate slowdown happening in Las Vegas even as it continues to grow.

Tuesday, July 25, 2006

She doesn't even have Katrina to blame …

In 2003, Bridget Green was thrilled to learn she would be the valedictorian of her New Orleans high school. Only days later, however, she learned that she had failed to pass the Louisiana graduation exam. Eventually, on her seventh attempt, she passed—by a single point.

Green's story makes the case that state graduation exams serve as useful checks on the value of a diploma. In this case, her school failed her by handing out A's for material that was never learned.

Via Mostly Cajun, All American and Opinionated, Tests expose flawed diplomas

It used to be that in the US, students would be enrolled in regular (if maybe very basic or remedial) classes and taught in English only; today an immigrant student is more likely to be taught in their native language (well, most likely if Spanish) and no (or very little) immersion in English.

Curious, I asked Wlofie about immigrant education in Sweden and (if I get this right) Sweden will have a student to a year or so of full immersion in learning the Swedish langauge, then go into regular class rooms, which seems much better than either the old US “sink or swim” method, or the “native language teaching” the US is using now.

I don't know why I thought of that when reading the above article (well, other than the abysmal drop in quality of US primary schools over the past few decades when even a valedictorial can't even pass a graduation exam) but at some point the educational system has to implode, right? Right?

Please?

Wednesday, July 26, 2006

The joke's on me

Gregory came over last night (okay, technically this morning but really, if it's before 5am, it's last night, but since it's technically today I'm posting it here) and we all went out to IHOP for dinner (yes, we keep strange hours). While there we told very bad jokes.

As we were leaving, I told the following joke: “A long time ago two guys decided to build a house on the side of a mountain. During the design, they figured they would need 100,000 bricks to build the house and ordered that many. When the bricks arrived, they started. At the end, they found they had one brick left over. What did they do with that brick?”

“I don't know,” said Gregory.

“Threw it off the side of the mountain,” I said.

“Wha?”

“That's the punchline,” I said.

“That's like your other joke,” he said. “Why is an orange?”

“What?” I said.

“Why is an orange?” asked Gregory.

I, for the life of me, couldn't remember ever telling that joke. “I don't know. Why?”

“Because motorcycles don't have windshields,” Gregory said.

“That was my joke?”

“Yes,” he said. “You wrote it in one of columns.”

“I did?”

“Don't you remember?” asked Spring, “this exact same joke came up a few years ago and we checked it.” I have a hardcopy of all my columns (what's on my site is only about a third of the columns—the rest range from “eh” to “burn it. Burn it all to Hell! I never wrote such trash!”). “It was there,” said Spring.

“I certainly don't remember it,” I said.

And I certainly can't find it.

The only thing that's even remotely close is this bit from the “High tech brings low-down tricks, big mess” column of April 27th, 1988 (which isn't online by the way):

Shut up! Let me get back to my column. Now, where was I? Ah yes, the cafeteria … the cafeteria is okay, if you like institutionalized food. So what if the pizza is schizo? I don't mind, as long as the psychotic chicken is kept in the straightjacket.

What if it was 7–1?

I liked it better as 7–2. And I also like 5–10 records.

But that's it. I can't find any occurances of “oranges” or “motorcycles” in any of my columns.

I may have to let Spring look for it.


Looking into the library and Check-point-Charlie

While looking for the source of last night's joke I did come across some really good bits from otherwise “eh” to “burn it. Burn it all to Hell! I never wrote such trash!” columns) like the following from “Looking into the library and Check-point-Charlie” (a commentary on the bag search the FAU library had instituted at the time):

Curses! Trapped again by Check-point Charlie. I open my knapsack, which was ransacked by the man.

“Right! You're cleared.”

“Can I ask what you're looking for?” I cautiously ask.

“Any material that belongs here in the library that has not been properly checked out, government forms, periodicals, microfilm, that sort of stuff.”

“What about rifles, shotguns, sub-machineguns, knives, numchauks, Chinese stars, cocaine, marijuana, heroine, pornographic material or bombs that I may have?”

“As long as you don't hijack the library, it's fine.” Well, ask a silly question …

Murphy's Law, December 9th, 1987

Or this bit, from “Conner's rash of bad luck” whereby I talked about working at Radio Shack back when they actually carried all sorts of electrical devices:

“Hello, can I help you find some particular item?” I ask, after my manager throws me in the customer's direction.

“Yes, I'm trying to hook up my VCR to my car battery and 8mm movie projector, so I can record my home movies while I drive to Hueytown, Alabama. But I'm not entirely sure how to do it? Do you sell anything that I could possibly use?” is the usual request of the customer.

“Uhhhhhhh …” I say, looking around the store for something that looks remotely like a VCR-car battery/8mm movie projector connection kit and seeing nothing. “Do we have any VCR-car battery/8mm movie projector connection kits?” I end up asking the manager.

“Yes, right here,” he says, walks over to where I am standing, and holds up a cable. “One end goes into the VCR, this end goes into the 8mm movie projector, and these two ends (four ends on a cable?) hook on the car battery,” he says, holding the strange looking cable. “And over here we have the Radio Shack Universal Mounting Kit that goes with the cable, but we sell them separately to get more money.”

“Fine, I'll take it,” says the customer. And then my manager writes up the ticket and get the 6.25% commission.

Murphy's Law, October 5th, 1988

And this bit, from “Time for a checkup and a nasty shot of novocaine:”

“How was the dentist?” mom asked when I got home.

“Tewwible,” I replied.

“Oh well, I rented you a movie to make up for the visit,” said mom, handing me a video tape.

“Wha' is it?” I asked.

“Marathon Man.”

Murphy's Law, November 16th, 1988

Trust me, the rest of the quoted columns? You don't need to read. And the columns not here? You don't need to read those either.


If this keeps up, I might not come into the office on Wednesdays

Two weeks ago the fit hit the shan. It hit again today. The power was out in The Office for perhaps an hour. Now that the power is back on, the A/C doesn't work, either in The Office or in the Data Center (and not having A/C in The Data Center is not a GoodThing™).

And to top it all off, one of the servers I manage for R is dead due to the heat, and I have about a thousand sites to move to a new server.

Lovely.

Oh, and on top of that, one customer can't send emails to anyone at AOL, I can't log into one of the servers because the control panel is asking for a licensing key, and I have to come back into the office tomorrow because I can't seem to configure this XXXXXXX DSL unit to save my life (and I might have to go to the client site to troubleshoot it, which is in Boca Raton).

Thursday, July 27, 2006

The joke's on you

So a long time ago a gentleman gets on an airplane smoking a cigar (which tells you this is a long time ago when one could do such things). The passenger next to him was an older lady with a small lap dog.

“Excuse me sir,” said the lady. “But your cigar is upsetting me. Could you please get rid of it.”

“Well, ma'am,” said the man, “your lap dog is yipping up a storm and I find it very annoying. If I get rid of the cigar, you have to get rid of the dog.”

“Well, I never!”

“That, I can believe,” said the man. “But get rid of the dog, and I'll get rid of the cigar.”

The airplane takes off. The dog yaps. The guy keeps puffing on his cigar. The lady asks again for the man to get rid of the cigar. And the man answers the same way: “Get rid of the dog, and I'll get rid of the cigar.”

This goes on for most of the flight until the lady finally has it with the cigar. She opens the window (again, back when one could do such a thing on an airplane) and tosses the dog out. “There,” she said, “I got rid of the dog. Will you now get rid of the cigar?”

“As a gentleman, I keep my word,” he said, and with that, tosses the cigar out the window.

A short time later, the plane is making its landing and when the woman looks out the window, she sees her dog, clinging on with its life to the wing of the airplane, its claws buried deep to keep from being blown away. And guess what she saw in the dog's mouth?

No, not the cigar! The brick!


All's quiet on the cyberian front

The A/C is working, the dead server is now live and running (I think the video card overheated—it's been replaced with a cooler card), the DSL unit has been configured (apparently, it can't handle NATing at all—go figure), Smirk is taking care of the licensing issue, and since I haven't heard back from the customer with the email problems, I'll assume it's been handled as well.

Friday, July 28, 2006

It's a thankless job, but someone has to do it

Happy System Administrator Appreciation Day! (via Rob my old roommate)

[Do not meddle in the affairs of sysadmins, for they are subtle and quick to anger.]

Make sure you show your appreciation. For me, a few liters of Coke or a good quality tea (heck, even dark semi-sweet chocolate) would be nice.


“And I drive …”

An incredible oratory piece by Eric Burns (at about 17 minutes or so, but worth the listen) about artistic endevours, or rather, the lack of artistic endevours (and the Match Game) that I suspect quite a few people I know can intimately relate to.


Make that Fridays as well …

It was good for about a day. Now, the A/C is out again, and R's server that died on Wednesday is dead again.

Aaaaaaaaaaaaaaaah!

Saturday, July 29, 2006

And this is a light page

Last May I took a trip to North Florida to visit a friend of mine over the weekend, and I took a Pocket PC with me to make entries during the drive.

Well, I just got a call from Smirk, who provided said Pocket PC. He just got the bill for said Pocket PC. The Monopolistic Cell Phone Company is claiming 4MB were transferred and therefore $100 is owed for data transfered. Smirk called me to ask if I actually used that much data.

I said that sounded high and I couldn't think of what I might have browsed that caused 4MB of data to be transferred, and that I pretty much just used the device to post the few entries during the drive up there and that at worst, it could have only been maybe 300K or so of data transfer. Smirk asked if I could generate a decent approximation and I said I would and get back with him.

I thought of maybe doing a test entry as if I were doing it from the Pocket PC but having the firewall keep track of the data trnansfers, then multiply that amount by the number of entries I actually posed through the thing when I realized that I still have the log files from May.

So I pulled all the requests made to my website via the Pocket PC and added all the data transfered.

Oh my.

The result was a rather sobering 2,586,760 bytes transferred via 161 requests.

Ouch.

And here I thought my site was rather light, what with using CSS for layout and the mostly text based nature of the site.

So I guess it's conceivable that I could have used 4MB of transfer in a few days.

Ouch.

Sunday, July 30, 2006

A boring Sunday

The Kids are grounded and it really affects The Younger the most. He kept hanging around me, which is a sure sign that he's bored.

“So let me guess,” I said. “You're bored.”

“Yup.”

“Well, look behind you,” I said. We were both in the kitchen at the time, with The Younger standing in front of the kitchen sink. He turned to face the sink, which was full of dishes. I nodded towards the sink.

“But I'm not that bored,” he said.

Later on in the day, he got that bored and did the dishes without prompting.

Monday, July 31, 2006

Besides, it all ends in 2011 anyway …

Sadly, this includes every denomination and congregation ON THE FACE OF THE EARTH! No matter how faithful they claim to be, all churches can be faulted for at the very least a corrupt authority. Such as relying on the Bible plus their confessions and other such writings. More than this, 99.999999% of churches today use counterfeit, fake, ersatz, perverted versions of the Bible. These include: The NIV, ASV, the Living Bible, the Rainbow Bible, the Extreme Teens Bible, the Spongebob Squarepants Bible and who can fathom what else is out there.

The Church Age Is Over

But that still leaves the King James Version as a non- counterfeit, non-fake, non-ersatz, non-perverted version of the Bible ( just to let you know that both the HTML and CSS are not valid on that page and wouldn't render at all under Firefox (I had to select “View → Page Style → No Style” to see anything at all)—IE might be another story).

But seriously …

A few weeks ago I was contacted by the Peacemaker Ministries asking if they could link to my Electric King James Bible. I was flattered actually, that someone found it useful in the seven years that it's been up and running. Durring that time, a few glaring ommissions and typos were found (mod_litbook was fine— it was a few typos in the configuration files) and fixed and a few days ago I got an email saying the site is now live.

Now, I don't fully agree with the contents of the site. Okay, I don't think I agree with the site at all, but as far as I can tell, they are free to link to the Electric King James Bible all they want—it's out there publically available.

I'm just stoked that someone (even one I don't agree with) found my site useful!

Tuesday, August 01, 2006

Ask a silly question …

I received the following from a mailing list, and I thought it amusing enough to post here.

From
XXX XX” <XXXXXXXXXXXXXXXXXX>
To
XXXXXXXXXXXXXXXXXXXXX
Subject
OT: Purina Diet
Date
Tue, 01 Aug 2006 17:35:56

Purina Diet

I was in Wal-Mart buying a large bag of Purina for my Labrador retriever and was in line to check out. A woman behind me asked if I had a dog? On impulse, I told her that no, I was starting The Purina Diet again, although I probably shouldn't because I'd ended up in the hospital last time. But that I'd lost 50 pounds before I awakened in an intensive care ward with tubes coming out of most of my orifices and IV's in both arms. I told her that it was essentially a perfect diet and that the way that it works is to load your pants pockets with Purina nuggets and simply eat one or two every time you feel hungry & that the food is nutritionally complete so I was going to try it again. I have to mention here that practically everyone in the line was by now enthralled with my story. Horrified, she asked if I'd been poisoned. I told her no, that I'd been sitting in the street licking my butt when a car hit me.

It also reminds me of monkey chow for some reason …

Wednesday, August 02, 2006

A clue-by-four in search of a victim

From
mr Ken Ahmed <kenahmedmd1@yahoo.co.uk>
To
info@frogs.fr, info@fsck.com, info@fsf.org, info@fsp.usp.br, info@ft.com, info@ftjh.tcc.edu.tw, info@ftstour.com.tw, info@fuelcellscn.com, info@fuelcellworld.org, info@fuji.com.tw, info@fulllifeonline.com, info@fun-lists.com, info@funcamp.unicamp.br, info@fundaj.gov.br, info@fundsinteractive.com, info@funredes.org, info@funsms.net, info@furg.br, info@fusebox.org, info@futures.jrc.es, info@futuro-group.org, info@fybus.com.tw, info@fygroup.com, info@fz20.com, info@g-vision.com, info@gadsdentimes.com, info@gaes.tc.edu.tw, info@galilee.com.tw, info@gallax.ru, info@galliver.com, info@galvnews.com, info@game186.com, info@games-networks.net, info@gamesgroup.com.tw, info@gamespot.net.cn, info@gangsofamerica.com, info@garfield.library.upenn.edu, info@gartner.com, info@gatetech.com.tw, info@gatoborracho.com, info@gattaca.cs.cornell.edu, info@gazetadolinux.com, info@gcolpart.com, info@gddj.com, info@gdesplac.free.fr, info@gdjh.tcc.edu.tw, info@gdsp.org.cn, info@g eappliances.com, info@geccom.bizland.com, info@gedanken.demon.co.uk, i@conman.org, nfo@geiko.net, info@gein.de, info@gemeenteamsterdam.info, info@genderline.de, info@geness.ufsc.br, info@geneve-tourisme.ch, info@genex.tie.cl, info@genicom.com, info@genomics.nl, info@gensource.com, info@geocities.com, info@geocities.yahoo.com.br, info@geodsoft.com, info@geog.okstate.edu, info@geohazards2003.eba.ca, info@geohohai.com, info@geometry.net, info@georouter.com, info@germany.polpred.ru, info@germanyauto.ru, info@getbirdbrains.tripod.com, info@getinfohere.com, info@getransportation.com, info@getty.edu, info@gfes.tcc.edu.tw, info@gfi-aerospace.com, info@gftours.com.tw, info@ggogo.com.tw, info@ggsd.com, info@gibradio.net, info@gifmaniac.net, info@gillgues.free.fr, info@gima-gmbh.de, info@ginac.de, info@gipi.kg, info@gissky.net, info@gita.org, info@gksoft.com, info@gles.tnc.edu.tw, info@globair.com.tw, info@global.lao.net, info@globalamphibians.org, info@globalarchive.ft.com, info@globa lideasbank.org, info@globalisationguide.org, info@globalknowledge.org, info@globalpsychics.com, info@globalpublicpolicy.net, info@g.area51.conman.org, lobalsight.com@conman.org, info@globe-pequot.com, info@globeedu.com, info@globeimmi.com, info@globosat.com.br, info@glucerna.com.tw, info@glyphweb.com, info@gm.com.fj, info@gmlets.u-net.com, info@gmts.com.tw, info@gnjykeovar.kpth.us, info@gnu.org, info@gnubis.com.br, info@gnulon.agatetepe.com.br, info@gnuteca.codigolivre.org.br, info@go-edinburgh.co.uk, info@godcanunlimited.com, info@goerie.com, info@gogreenbay.com, info@goheels.com, info@goinhell.skyblog.com, info@gokartrecords.com, info@gold-home.com, info@goldenmark.com.tw, info@goldwaterinstitute.org, info@golive.com, info@gomath.com, info@good35.com, info@google.com, info@google.com.ph, info@google.com.tw, info@google.fr, info@google.stanford.edu, info@gosdar.com, info@gotofcm.com, info@gots.com.tw, info@gouv.bj, info@gouv.mc, info@gov.ai, info@gov.bw, info@gov.cn, info @gov.harvard.edu, info@gov.si, info@government.gov.ru, info@govonline.gov.au, info@govspot.com, info@gpp.ks.edu.tw, info@grad.washington.edu, info@grants.nih.gov, info@grants1.nih.gov, info@grants2.nih.gov, info@gra.area51.conman.org, phicslink.demon.co.uk@conman.org, info@graphon.com, info@grasptax.com, info@gravityprobeb.com, info@greating.com.cn, info@greenedu.com.tw, info@greenguerillas.org, info@greens.org, info@grieflossrecovery.com, info@grmuseum.org, info@groups.google.com, info@gsanetwork.org, info@gsmweb.cz, info@gswd.gov.cn, info@gtz.de, info@guardian.co.uk, info@gvtour.com.tw, info@gwydiondylan.org, info@gwyn.tux.org, info@gwytb.gov.cn, info@gyes.chc.edu.tw, info@gzeryun.com, info@gzes.tc.edu.tw, info@gztransport.com, info@h000874e55879.ne.client2.attbi.com, info@h18000.www1.hp, info@h215.235.40.162.ip.alltel.net, info@h2sport.com.hk, info@h48.n219-68-201.adsl.giga.net.tw, info@ha.org.hk, info@habeas.com, info@hachina.com, info@hackologie.tk, info@hadassah.or g.il, info@haes.cy.edu.tw, info@hal2001.org, info@halhigdon.com, info@ham.kiev.ua, info@hamradio.hr, info@handa-cci.or.jp, info@handelsblatt.com, info@handicap-international.org, info@hantoy.co.kr, info@hao123.com, info@haodeli.com, info@haodeli.com.cn, info@hardeplasser.info, info@harmonyhousehk.org, info@harrassowitz.de, info@harts.org.hk, info@harvard.edu, info@haworthpress.com, info@hbbear.com, info@hboc.com, info@hboi.edu, info@hbsp.org.cn, info@hc2grc.org.ec, info@hces.tc.edu.tw, info@hcidhaka.org, info@hclist.de, info@hdw-inc.com, info@he.wikipedia.org, info@healthcarealternatives.net, info@healthopps.com, info@healthpromotionjournal.com, info@healthy.net, info@heartinfo.com, info@hechtdesign.com, info@heins.de, info@hellas.com.tw, info@henryford.cc.mi.us, info@herald-mail.com, info@herbalworld.biz, info@herc.com, info@heritage.edu, info@hermitagemuseum.org, info@herneed.com.tw, info@hero.loxa.edu.tw, info@heryen.com.tw, info@hess.com.tw, info@hf-gmbh.de, info@hf-inst .co.uk, info@hftravel.com.tw, info@hhgproject.org, info@hhof.com, info@hic.wayne.edu, info@hickoryfarms.com, info@hicss.hawaii.edu, info@highcountrygardens.com, info@highgrow.us, info@highwire.stanford.edu, info@hindawi.com, info@hini.quendi.free.fr, info@hintmag.com, info@hiphop.kralupy.net, info@hirondelle.org, info@hk-leather.com, info@hk.pg.photos.yahoo.com, info@hkairport.com, info@hkce.com, info@hkcfs.com, info@hkl-xray.com, info@hkmenshealth.com, info@hktk.com, info@hljh.tcc.edu.tw, info@hmcnet.harvard.edu, info@hoermann.de, info@hokia.com.tw, info@hollandtruck.ru, info@hollinger.com, info@home.csjh.tcc.edu.tw, info@home.globalcrossing.net, info@home.kimo.com.tw, info@home.pchome.com.tw, info@home.sou.edu, info@homebizedge.com, info@homeloansonline.com.au, info@homes.ukoln.ac.uk, info@hongsbearing.com, info@hopemag.com, info@horizons-dz.com, info@horse-service.com, info@horses-best-friend.de, info@host217-42-173-123.range217-42.btcentralplus.com, info@hosun.com, info@ hot-forum.org, info@hotel-tourism.gov.mm, info@hotfilm.com.cn, info@hottinger-kg.com, info@house.gov, info@housing.gov.kw, info@hovercarracer.com, info@howtopickupgirlsatfunerals.com, info@hpes.tc.edu.tw, info@hpfyu.biz, info@hpjh.tcc.edu.tw, info@hpl.hp.com, info@hrbhouse.com, info@hrmediji-online.com, info@hsc-online.de, info@hses.tc.edu.tw, info@hses.tyc.edu.tw, info@hsjh.chc.edu.tw, inf@conman.org, o@hsm.com.cn, info@hsph.harvard.edu, info@hsxy.com, info@ht88.com, info@htjh.chc.edu.tw, info@htmldoc.org, info@htmlprimer.com, info@htppa.com, info@httrack.com, info@hua.smes.tnc.edu.tw, info@huaou.com, info@huihwa.com.tw, info@hul.harvard.edu, info@hulu.com.tw, info@humantrafficking.org, info@humorsearch.com, info@hungchang.com.tw, info@hungcheng.com, info@hunter.com.tw, info@hwaming.tsis.com.tw, info@hwit.net, info@hycom.com.tw, info@hydrathallium.free.fr, info@hyes.tyc.edu.tw, info@hzes.mlc.edu.tw, info@hzky.com, info@i-cablecomm.com, info@i-rox.net.ph, info@iadb.org, in fo@iahf.com, info@iakm.kent.edu, info@iaks.info, info@iana.org, info@ias.berkeley.edu, info@ibaby.org, info@iberia.vassar.edu, info@ibict.br, info@ibict.br.cionline, info@ibope.com.br, info@ibphoenix.com, info@ibva.com, info@icamericas.net, info@icann.org, info@icarisk.gp, info@icde.org, info@icdrc.org, info@ici.ufba.br, info@icicic06.njtu.edu.cn, info@icie.zkm.de, info@icmc.usp.br, info@icmje.org, info@icoletiva.com.br, info@iconenet.com.br, info@icpla.edu, info@ics.mq.edu.au, info@icsep.info, info@icsti.org, info@icthus.net, info@idca.org, info@idcyber.com.tw, info@idea.int, info@ideadata.org, info@ideas.repec.org, info@idict.cu, info@idp.com, info@idra.org, info@idrc.ca, info@ids.ac.uk, info@idv.tw, info@iei.ie, info@iei.pi.cnr.it, info@iesalc.unesco.org.ve, info@if.sc.usp.br, info@ifcss.org, info@ifp.fr, info@ighawaii.com, info@ihc.net, info@ihlresearch.org, info@iia.net.au, info@iigov.org, info@iiisci.org, info@ijm.it, info@iksr.org, info@ilionacharts.bansidhegraphi cs.com, info@illc.uva.nl, info@ilmessaggero.it, info@ilo.org, info@ilslaunch.com, info@imageworks.com, info@imakenews.com, info@ime.usp.br, info@imfsite.org, info@imitrvl.network.com.tw, info@immed.org, info@immilink.com, info@immunosource.com, info@imo.hr, info@imp3.net, info@impress.co.kr, info@ims-gmbh.de, info@ims.usm.edu, info@inbar.int, info@incidentresponse.com, info@incom-creation.net, info@independent.co.uk, info@indiana.edu, info@indianajones.com, info@indianrail.gov.in, info@indiavotes.com, info@indigo-ne.area51.conman.org, t.com@conman.org, info@indivisible.org, info@industrystock.com, info@indy500.com, info@indymedia.nl, info@inep.gov.br, info@ineris.fr, info@inf.barddal.br, info@inf.puc-rio.br, info@inf.ufpr.br, info@infanthearing.org, info@info-books.co.uk, info@info-student.info, info@info.ba, info@info.com, info@info.croatiabiz.com, info@info.gov.hk, info@info.tuwien.ac.at, info@infoplease.com, info@inform.nu, info@infotoday.com, info@infototal.ind.br, info@ infowarrior.org, info@ingrambookgroup.com, info@inlightimes.com, info@inmetro.gov.br, info@innb.uscourts.gov, info@innerauto.com, info@innerbonding.com, info@innerchangemag.com, info@innerjourneyministries.org, info@innovapacific.com, info@innovations-schule.com, info@inrp.fr, info@inrs.fr, info@insa-rennes.fr, info@insightbio.com, info@insp.mx, info@inspiredliving.com, info@instantbookstore.com, info@insun.com.cn, info@int-evry.fr, info@intac.com, info@intellectualcapital.com, info@interactivated.com, info@intercom.org.br, info@interdetal.com, info@interex.org, info@interland.com.tw, info@inte.area51.conman.org, rlinkelec.com@conman.org, info@intermedica.se, info@international.qut.edu.au, info@internazionale.it, info@internet-at-work.com, info@internet-radar.net, info@internet.sacen.co.yu, info@interscience.wiley.com, info@interscope.com, info@intimal.edu.my, info@intio.or.jp, info@intojob.co.kr, info@intosd.com, info@intra1.jhsph.edu, info@intranets.com, info@intuitive-con nections.net, info@inventorfraud.com, info@invisiblelibrary.com, info@invisibleweb.com, info@inwent.org, info@inxight.com, info@io.com, info@iodbc.org, info@iol.ie, info@ioloso.it, info@ionic.be, info@ioyzikbvjw.gono.us, info@ip-wv-24-151-151-116.charterwv.net, info@ip-wv-24-151-156-225.charterwv.net, info@ip.pt, info@ipd.gov.kw, info@ipej.fr, info@ipen.br, info@ipgp.jussieu.fr, info@ipma.ch, info@iqtop.com.tw, info@ir.dcs.gla.ac, info@ira.is, info@iraqi-ars.org, info@irei.com, info@iris.sgdg.org, info@irts.ie, info@irvinghouse.com, info@is.lse.ac.uk, info@is.twi.tudelft.nl, info@isa-appraisers.org, info@isat.info, info@ischool.utexas.edu, info@iscsp.utl.pt, info@iseaweb.o, rg@conman.org
Subject
Good day.
Date
Wed, 2 Aug 2006 17:14:26 +0400 (MSD)

FROM THE DESK OF KEN AHMED,
UNION BANK OF NIGERIA

Good day,

I am KEN AHMED, Bank Manager of the UNION BANK OF NIGERIA PLC,ikeja branch, nigeria. I have an urgent and very confidential business proposition for you.

So confidential that you need to send it to over 500 honest and truthworthy people? Smooth move there, KEN AHMED.

Thursday, August 03, 2006

WARNING: metablogging ahead!

I've been working on the blog the past few days, mostly background programming stuff. A bunch of little things here and there that you might notice if you actually view the site at http://boston.conman.org/ (such as changing the search engine I use to Clusty, which is returning better results than Google (please! Stop with the Las Vegas ads!) for the searches I'm doing) but the biggest change has been adding support for Atom, a better defined site syndication format than RSS (so those of you reading me through my RSS feed might want to switch over to my Atom feed, but I'll keep both around for now).

There was also a problem with the Obligatory Email Notification that prevented anyone from signing up that I had to fix (webserver configuration issues than an actual programming issue) so anyone trying to sign up for email notifications (like that's a real common occurance) should be able to now.

Friday, August 04, 2006

Code filled with cobwebs

Well, I misspoke. The Obligatory Email Notification still wasn't functioning properly (the actual notifications are sent fine—it's just signing up that was borked). And I suspect it's been broken since it was moved to this server (or even broken on the server previous to this one). The code was written when this site was running on tower.

It took a bit to find the actual source code (since it was written a long time ago) and I decided to update the code while I was at it (it was compiled against an older version of a library I wrote). Then it was a rather painful process of debugging the program, which mostly had to deal with typos and permission problems.

Sigh.

But it's now working properly.


Clusty

I mentioned I switched to Clusty, but I want to go into depth as to why I switched to Clusty.

I actually found Google to be rather poor at finding particular entries. I try to do a search for “tower” and Google would maybe return a entry or two, but almost never the one I was looking for. When I did a test at Clusty though—it returned a plethora of results, much better than Google (although now Google is returning more results, they still aren't as good as Clusty).

Google is also loosing its appeal to me. What with the poor results of AdSense, its inability to search my site properly, and … well … I like the way Clusty clusters results (hense the name). And if that means Google kicks me out of Google AdSense, oh well … it wasn't paying that much anyway.

Saturday, August 05, 2006

The cooking god that is Alton

Today was pretty much an Alton day. I've introduced Bunny to the wonders of Alton Brown and his show Good Eats. We made his very basic bread (which ended up a bit dense—I think due to not finding the right type of yeast) which ended up very good (despite the wrong type of yeast) and his hamburger recipe which was, as Bunny put it, “the best hamburger I've ever tasted” (and it's a very simple recipe).

We also watched his new show Feasting on Asphalt, which is a very interesting look at American restaurants off the main Interstate highway (and by god I want the soundtrack to that show—the main theme has earwormed its way into my brain in in this case, that's not a bad thing). Just watching Alton's reaction of pickeled pigs feet or a brain sandwich is just priceless (“Amazing thing about [the pickeled pigs feet]—I'm no longer hungry!”).

Sunday, August 06, 2006

I never pegged Gregory as the NASCAR type

When Gregory invited us out to see Talladega Nights: The Ballad of Ricky Bobby I was a bit leary. I wasn't much in the mood to watch a movie, much less a Will Ferrell vehicle (pun intended). But the movie had its moments, which to me, is all the comment the movie is worth.

Monday, August 07, 2006

Lost pictures

Man, am I pissed.

I'm copying the pictures I took yesterday off the digital camera:

[spc]marvin:/Volumes/NO NAME/DCIM/100OLYMP>scp * \
	/Volumes/WORKGROUP\;LINUS/images/2006/0806/

And as I always do after transfering the images (I had assumed the pictures copied okay):

[spc]marvin:/Volumes/NO NAME/DCIM/100OLYMP>delete *

(in this case, delete is an alias for /bin/rm and rm is an alias for echo "This command doesn't exist"—don't ask).

Only the copy didn't work out as expected (okay, who's bright idea was to include semicolons in Mac OS-X mounted volumes? Especially for those of us who like working at the command line?). I ended up with one (1) picture, named /Volumes/WORKGROUP. The last picture on the camera, which was of the cheeseburger I had yesterday after the movie (should have used cp but mistyped).

Lost: pictures of the 50s decorated Denny's. Those of Gregory, Spring, The Kids, Wlofie, some random customers at said Denny's. And two reserved spots in a parking garage protected by two of those automated arms that go up and down.

Sigh.

Tuesday, August 08, 2006

A long, slightly rambling, but deeply technical, entry follows, so if you aren't interested in software internationalization, character sets and variable type systems, you might want to skip this entry entirely; you have been warned.

how could Planet RDF do things better?

Danny, you can see the problem above.

Is the Planet RDF code available? I would gladly provide a patch.

The problem is not in your input feed. You contain the following code: &#8217;. Planet RDF converts that into binary, which I will express in hex: xC3A2C280C299. The correct formulation would be xE28099. I've got a good idea about what is going on under the covers as

In other words, for some reason, RDF Planet is effectively doing a iso-8859-1 to utf-8 conversion, on utf-8 data.

Sam Ruby

It's a mess.

Part of the problem I'm sure is that not many programmers are used to i18n. And part of it is not many programmers are aware of what data is in what format at what part of the processing. And that is related to variable types in programming.

The first problem is i18n. I won't say it's trivial, but it does take some forethought to handle it. Thirty years ago it was simple—you use the character set of whatever country you were in and that was that. Since computers work with numbers, a “character set” is just a mapping of values (say, 1) to a visual representation of a character, a “glyph” (say, “A”). Here in the US, we used ASCII, where in this case, the character “A” is internally represented with the value 65 (and the lower case “a” by a different value, 97 since technically, it is a different glyph). The character “A” in say, Freedonia might be stored as the value 193.

No problem. Well, unless your software was sold internationally, then you had a problem of handing different character sets. And there are a lot of them.

So a solution (and it's a pretty good solution) is to use some internal representation of every possible character set as the programming is running (say, Unicode, which was defined to handle pretty much any written language) and do any conversions on input and output to the locally defined character set (I've found the GNU iconv library to be pretty easy to use and it can handle a ton of different character sets). Yes, there are some really obscure corner cases doing this, but for the most part, it'll handle perhaps 95% of all i18n issues.

But web based documents—or rather, documents based upon HTML/XML—present a wrinkle. HTML/XML use the “<” character (value of 60) to start the beginning of tag, like <P> (in this case, this particular tag denotes the start of a paragraph). But what if the content (that is, non-tag portion) actually requires a literal “<”? What then? Well, HTML/XM use another character, “&”, to encode characters that you would otherwise be unable to use. So, to get a “<” you would write it (or “encode it”) as &lt;, which means that to use a “&” in your document, you need to write it as &amp;.

But you can use this form, called “entities” (or HTML entities) to include other characters that might otherwise not be part of your local character set, such as the much nicer typographical quotes “” (compare to the computerish ""), or even the star in the middle of Wal★Mart.

Now, most of these entities, like &amp; are named, such as &ldquo; for the nice looking opening double quotes, or &rarr; for a right arrow. But a lot don't have names, like the star in the middle of Wal★Mart. To get those, you need to use a numeric value, like &#9733;.

But, where do you get these values?

Well, they're Unicode values.

So, even if you're writing your page in a Slavic langauge (using for instance, the character set defined as ISO-8859-5), the “á” can still be encoded as &#225;, using the Unicode value for “á” (since ISO-8859-5 doesn't contain that glyph). To further confound things (and seeing how for this example, we're using ISO-8859-5) the character “Љ” can be inserted as a character with value 169 (whereas if viewed as an ISO-8859-1 character, it would be “©”) or as &#1033; (which would work reguardless of the character set you are using for your document).

Got it?

If not, you're in good company with lots of other programmers out there. And that's even before we get to the issue of submitting text to a CGI script (I'll get to that later).

And that leads to the second problem, where programmers don't know what's what where in their program. And that's related to variable types. Or rather, the lack of variable types. Or rather, the rather lackadaisical approach to typing most modern computer languages have today (Python? Perl? I'm looking at you).

In today's modern languages, unlike slightly older languages like C or Pascal, you don't really need to declare your variables before you use them— you can just use them. Sure, you can predeclare them (and if you are smart, you do) but you don't have to, and even when you do, you just declare that foobar is a variable, not what it can hold (well, granted, in Perl, you have to tell it if the variable can contain a single value, or a list of values, or a table of values). As Lisp programmers are wont to say: “a variable doesn't have a type, values do.”

Now, why is that such a problem?

Well, other than muddle headed thinking, there's overhead at runtime in determining if the operation is permitted on the type of the value held in a variable and if not, what can we do with the value in the variable to make it the right type for the operation in question. So, in the following Perl code:

$result = $a + $b;

at run time the computer has to determine the types of the values of the variables $a and $b—if numeric it can just add them; if strings, it has to convert the strings to a numeric value and then add them. And what if $a contains the string “one” and $b contains the string “two”? $result will have the numeric value of 0 because “one” and “two” do not convert to numeric values (the ol “Garbage in, garbage out” saying in Computer Science; oh, you were expecting maybe “onetwo”? That's a different operator altogether).

But even if we just stick with strings (and HTML processing is a lot of string handling) we're not really out of the woods. Even if we were to use a computer language with stonger typing (say, Ada) that wouldn't even help us because the type systems of any language today just aren't up to it.

For instance, given a simple HTML form that accepts input, we can feed it the following:

“This—is–a★test”

Now, when the data is submitted, the browser will encode the data in yet another encoding scheme (application/x-www-form-urlencoded to be precise), which can contain HTML encoded entities (see above) in any number of character sets (although, unless otherwise stated, in the same character set the browser thinks the page that has the form uses). Using the latest version of Firefox (1.5 as of this writing), if instructed to send the data using charset US-ASCII the data I get is:

%26%238220%3BThis%26%238212%3Bis%26%238211%3Ba%26%239733%3Btest%26%238221%3B

Which, when decoded, is:

“This—is–a★test”

But, if the data is sent as charset ISO-8859-1:

%93This%97is%96a%26%239733%3Btest%94

Which, when decoded, is:

“This—is–a★test”

The quotes and dashes (the “mdash” and “ndash” respectively) are single characters but the star is still sent as an HTML entity. Yet if the browser is told to send the data as UTF-8:

%E2%80%9CThis%E2%80%94is%E2%80%93a%E2%98%85test%E2%80%9D

Which, when decoded, is:

“This—is–a★test”

So, what does all this have to do with variable types and the weakness of typechecking even in a language like Ada?

Well, if we could declare our variables with not only the type (in this case, “string”) but with additional clarifications on said type (say, “charset ISO-8859- 5 with HTML entities” or “charset UTF-8 encoded as application/x-www-form-urlencoded”) it would clarify the data flow through a lot of web based software and prevent stupid mistakes (and yes, it would piss off a lot of muddle-headed programmers but this would at least force them to think for once).

Update a few moments after posting

All this talk about encoding issues, and I still blew it and had to manually fix some encoding issues on this page.

Sigh.

Wednesday, August 09, 2006

Musings on typechecking

I was thinking a bit more about yesterdays post on variable types and character sets. I mean, yes, one could conceivably make subtypes of strings with specific character sets:

class String { /* ... */ } ;
class StringISO8859d1 : public String { /* ... */ } ;
class StringISO8859d5 : public String { /* ... */ } ;
class StringUTFd8     : public String { /* ... */ } ;

String          foo = "Hello";	// perhaps a warning here
StringISO8859d1 bar = "Hello";
StringISOUTFd8  baz = "Wal★Mart";

bar = baz;	// two things could happen here
		// 1. compiler spits out a warning
		// or error because you are trying
		// to store a variable of one type
		// into another without an explicit
		// conversion step, or
		// 2. The compiler does the conversion
		// for you, much like an int &rarr; double
		// conversion.  Problem here is what if the
		// source string has characters not
		// representable in the destination string.

But that doesn't work that well when you want to determine if the string has been converted to HTML entities or not, as it gets unwieldy fast:

StringISO8859d1NoEntities foo;
StringISO8859d1Entities   bar;
StringISO8859d5NoEntities baz;
StringUTFd8Entities       fubar; // Silliness!  Silliness I say!

And even more importantly, what if you don't know the character set of the data until runtime? In that sense, the character set and the encoding is a type of attribute of the string, or a sub-type of the string.

Yes, such information could be added to the base String class with appropriate methods to check and set this sub-type (or attribute-like) information, but I'd still like to get compile time checks whenever and where ever I can. For instance:

StringEntity   foo = "Johnson & Co.";
StringNoEntity bar = "American Telegraph & Telephone";
String         baz;

baz = foo + bar;	// now what?  We're adding a string where
			// "&" is encoded as "&amp;" to a string
			// where the "&" appears as is.  Do we
			// 'de-entify' foo or 'entify' bar?  And
			// what is the programer expectation?
			// Probably not much, given this piece
			// of code.

I hope you can see where I'm trying to go with this, and track a form of intent throughout the code. Variable types are more than just annoying muddled headed programmers and producing fast code—it's also a statement of what we (or at least I, as a programmer) can do to the variable—what methods of manipulation we want done and having the computer find that at compile time where it's certainly cheaper and easier to fix than at the customer site.

I think what I'm aiming for is a way of annotating a variable with more than just type information and having those annotations checked and enforced by the compiler. Another example might be unit tracking. Say, making sure that you add a LENGTH to a LENGTH but that a LENGTH times a LENGTH is an AREA, and you can't add LENGTH to an AREA. Or that this variable is in inches, that in millimeters, and have the computer keep track of multiplying or dividing by 25.4 as the value moves from one variable to another (I think there are some specialized computer languages that can do this, but I don't know of any general computer language supporting this).

Thursday, August 10, 2006

“And the difference between Vox and LiveJournal is … ?”

How is Vox different from … LiveJournal?

LiveJournal has grown to be an amazing community of fiercely independent bloggers. Over the past seven years, that community has developed in both its scope and its need for powerful customization. We think that Vox will be a great choice for bloggers looking for a more turnkey environment that balances community and privacy.

VOX—See it. Hear it. Vox it.

But notice how they don't actually answer the question. How does Vox differ from LiveJournal? Not even LiveJournal has an answer.

And both are owned by Six Apart.

So why would Six Apart offer yet another blogging/journaling service when they have Livejournal and Typepad? A couple of reasons. One, despite what they're saying, they're probably trying to buy into the MySpace realm of website while it's still a hot market to get into (“What's hot? MySpace. What's not? LiveJournal.”).

Two, anyone can snag the source code that runs LiveJournal and set up your own service (like DeadJournal or InsaneJournal—although both don't have the mindshare of LiveJournal). You can even download the code for Moveable Type (which is what they use for Typepad) and while you aren't exactly free to do anything with the code, you can still (with appropriate licensing) set up a comparable service (although I don't know of any off the top of my head). And there's still nothing from letting you download either codebases and doing your own personal thing with them. With Vox, I doubt you'll ever see the source code.

You don't get to see the code that runs Google. You don't get to see the code that runs MySpace. You don't get to see the code that runs Flickr. It seems that all the cool Web 2.0 kids are into services and not into sharing code (granted, you can use their services through a web based API they provide, but that's not the same as sharing the actual code).

Now, why don't you get to see the code to Vox? (and this is pure speculation on my part—who knows? When they formally launch Vox they might provide the source code, but I'm doubting it). Because I suspect that Six Apart are planning on going public soon (reason three). They've been receiving fun ding from vulture venture capitalists over the past few years, building themselves up and my guess would be that the investors feels it's a harder deal to go public when the core of your business, your product, is available for free for anyone to set up competition using your own product!

I would not be surprised at all to hear Six Apart announce (at the same time, or shortly after, they announce Vox) they're planning on going public.

And that, in my opinion, is how Vox is different from LiveJournal.


Obligatory Cat Blogging

[Mama always told me not to look into the eyes of the sun / But mama, that's where the fun is]

Spodie, curious as to what I was holding in my hands, leared the hard way what a “flash bulb” is.

He didn't like it very much.

Friday, August 11, 2006

Day 10

Some days you're the windshield.

And some days you're the bug.

Today, I felt like the bug.

Oh, I've had worse days. It's just that today wasn't all that great. Smirk called as I was heading into work to warn me that one of our servers was dead. The one that wasn't backed up because we kept meaning to move sites off that server because we knew it would fail at some point in time (but we got it working later in the day and backed up).

P was still recoving from having done an upgrade on another server; he broke the cardinal rule: “if it ain't broke—don't fix it!” Although all he was trying to do was upgrade to PHP 5 but well, Insipid, the control panel didn't like that one bit—at least, on that version of the control panel on that version of the operating system.

Which meant I couldn't turn the server that overheated a little over a week ago back on (I kept it off until I was sure the A/C wouldn't fail), since I needed the crash cart, and P was too busy using that to recover from the upgrade.

[At least the guard rail was down this time]

R (I manage a few servers for him) called a few times about the lack of email. His ISP is The Monopolistic Phone Company, and they will, at the drop of a hat, refuse to accept email from the outside, and since his email address is through his domain, hosted on his server, all this lovely spam gets directed through his server towards The Monopolistic Phone Company, which doesn't like that very much (this has only happened about a bazillion times this month alone).

Then there was the new customer circuit. It sounded promising at first—they have a Cisco router and don't need us to manage it. And it's an ethernet connection (they're in the same building, just down the hall) so it's nothing terribly complicated—I have them some IP addresses (earlier this week) and truthfully, wasn't expecting much problem.

Only they weren't as clueful as I expected—it's Ethernet, not a T-1, connection. Which necessitated a rethink on the IP routing (I have them two small blocks thinking they'd be routing through their Cisco, but since they couldn't use it, they wanted a single larger block), and all this at around 5:30 pm (of course!).

The whole day at the office was like this—small problems that just wouldn't go away.

Smirk calls such days “Day 10,” as in “they only happen every ten days or so.”

I hate Day 10.

Saturday, August 12, 2006

An otherwise lazy Saturday that was punctuated by a visit to The Office

Since I didn't get a chance yesterday, I headed into the office today to bring the offline server (which overheated) back online. Thankfully, everything went according to plan and I was only there for half an hour or so.

Sunday, August 13, 2006

Dive into Accessibility indeed

Validated XHTML

This ensures that the code that we have used on this site validates against the W3C's strict standard. As more and more assistive technology (such as a Braille reader, a screen reader, TTY, etc.) is using this standard to build against, we can be sure of making our site accessible to the widest audience.

Validated CSS

Again, by validating our style sheets against the W3C gold standard, we can make our site accessible to everybody with a DDA compliant browser or other assistive technology.

W3C Web Content Accessibility Guidelines 1.0

All pages have been validated against standard using “Bobby.” This service allows us to test web pages and help expose and repair barriers to accessibility and encourage compliance with existing accessibility guidelines, such as Section 508 and the W3C's WCAG.

Section 508 Guidelines

The Section 508 guidelines have been reviewed and implemented. All pages are in compliance.

All pages on this site use structured semantic markup. H2 tags are used for main titles, H3 tags for subtitles. For example, on this page, JAWS users can skip to the next section within the accessibility statement by pressing ALT+INSERT+3.

Via Mark Pilgrim, Accessibility Statement @ SoundsDirty.com (not safe for work)

I'm not sure why I found it surprising that a porn site (need I even bother mentioning this isn't work safe?) would bother with web accessibility standards, but I did. Porn sites in general have always pushed the limits of web technology (they were early adoptors of micropayment schemes, web subscriptions, flash, Java Applets) and I suppose that making a site accessible to everyone is just an opportunity to make more money (Playboy in braille anyone?).

So if a porn site can be accessible, then gosh darn it! So will my site! So I've been playing around with accessibility validator and adding some more markup to make my site here a bit more accessible.

Why not?


None are worthy to park in this spot

Last week I lost some pictures, including a few of some heavily protected parking spots in a parking garage. Well, tonight Spring and I went back to City Place (where the aformentioned parking garage is located) for some window shopping (“Would you just look at the contents of that store? What hideous furniture!”) and this time, I got the picture:

[None shall pass!]

I also got this lovely shot of the warning sticker clearly saying that pedestrians are not allowed to stand in the space, and of course, the only way to see such warning was to stand in the disallowed space.

[It can slice!  It can dice!  It can even julienne!]

Figures.

Monday, August 14, 2006

Timesink

I don't play computer games all that much (heck, I don't play regular games all that much) but sometimes … sometimes there's a game (via kisrael.com) that just sucks me in.

There are no rules presented, but if you've played Risk you should be able to figure out the game play. Oops, gotta go, being attacked on my left flank by green …


Vertical writing

Spring was able to drag me away from my game long enough to take me to Scibal Night, a class held by members of the SCA, which involves calligraphy.

[I don't think it was originally written in a Gothic script]

The main problem I have with calligraphy is that the fonts are right handed and I'm not (I had the same problem with the Chinese Calligraphy class I took in college, but at least there, it's a brush and it's not as difficult getting the strokes looking “right”). The methods I can use are:

  1. Use a special left-handed nib (tried, didn't really care for it, and it's expensive)
  2. “Hook” my left hand (such that it's pointing back at me). I don't normally use a “hook” when writing and it feels very uncomfortable.
  3. Write backwards. Da Vinci did this. I am no Da Vinci. And besides, the script is still backwards.
  4. Write vertically—that is, turn the paper 90° clockwise and pen the letters sideways, working down the paper. I used this method almost exclusively (I did try a few left-handed nibs—didn't care for them).

Writing vertically wasn't that weird (although some strokes are still difficult to do) and given that this was pretty much my first time at western calligraphy, I don't think I did half bad (certainly close with some of the samples that were passed around the table).

I promised Spring I'd go at least one more time to see if I'm interested in keeping up with this. But under no cirsumstances am I dressing up in 14th Century garb (or any garb other than what can be found today).

Tuesday, August 15, 2006

“Robots other than the ones in Star Wars?”

I'm not sure how the topic of conversation came up, but Wlofie asked me to “name a robot that wasn't in Star Wars,” and you know what?

It's harder than it looks.

Wednesday, August 16, 2006

Renumbering

For several reasons we need to consolidate a large portion of our IP addresses so that Smirk can transfer a sufficiently sized block to the new Charlotte, North Carolina data center we're moving into. It's never easy to renumber, and I knew this was coming up, but I didn't realize that Smirk would require it done today.

We had already reassigned a block to a customer, leaving us with The Office machines, and the DSL units to renumber. The Office would be trivial compared to renumber the DSL units.

Renumbering the DSL units.

Which includes one particularly annoying unit, who had to have their DSL unit reconfigured twice!

Sigh.

Now, unlike residential DSL, we manage both sides of the connection. Also, we give out static IP addresses (and blocks of IP addresses, although the larger block of IP addresses per DSL customer isn't changing, it's the IP address of the individual DSL unit that is). So it's not like we can call our customers and say “just power cycle your DSL unit.”

On our end, not only do I have to reconfigure the DSL unit, but change some routing entries on our DSL router, and make changes to the radius database (which customers get which IP addresses) and make sure to do the changes in the correct order or else I'll have to end up talking to the customer at the far end, trying to talk them (invariably non-computer literate) through the steps to change the DSL configuration.

I manged to do it, but it wasn't smooth (mostly loosing connection to the far end, which is an occupational hazzard when you are trying to do this remotely). And I ended up talking to all the customers (and even visiting the site of that one particularlly annoying unit) and now we have a bunch of IP addresses to assign to the Charlotte, North Carolina site.


One Classic Car

While out to dinner with my friend Bunny, we came across a 1962 (well, it had a 1962 Florida license plate) Chevrolet Corvair 95.

[Nice grillwork] [Nice colors too] [Roomy interior] [The Corvair 95]

The Big Three certainly made some nice looking vehicles in the 60s.


Oh.

“I neglected to mention this earlier,” said Smirk. He had called me on my cell phone. “But we're leaving for North Carolina on Saturday.”

Oh.

So that's why whole renumbering thang earlier today.

Thursday, August 17, 2006

Hypertext editing, Part III

Nearly three years later and it still hasn't gotten any easier.

Yesterday at dinner Bunny and I had a conversation about the difficulty I have in writing these entries—mostly about the time it takes and how the writing process gets interrupted by the editing process of adding links and tags and acronym expansions and what not.

Like today, which has been “catch-up” day. Sunday's entry not only required the usual hand-made markup, but it required the transfer of the images to my laptop where I have the image manipuation program (my normal desktop Linux system chokes on the large images, and the Mac mini doesn't have any image manipulation programs at all) for the cropping and resizing, then sending the results to the web server.

In other words, the work flow for producing entries here sucks, which partially explains why I fall behind on the entries as much as I do.


Notes on a program

This entry is less a polished entry and more just notes on a project I've been given. If it seems somewhat random and hard to fathom, that's why.

Smirk is drowning in email. As such, he's looking for a filtering solution whereby he can run a job daily that scans his email (using IMAP) and shuffles email to different folders. The criteria is something like “I've read it and it's older than seven days, move to this folder. If it's unread and older than three days, move to this other folder. If I've read it and replied to it, move it to yet another folder.”

procmail won't really handle that, as it's meant more for initial delivery and filtering of email. He also rejected sieve as it apparently doesn't handle date parsing that well (or something like that). So he asked me if I could write such a program, preferrably using PHP since he knows that language (and since I equally hate Perl and PHP, it's six of one, half dozen the other, and I would prefer C, but that's me).

So, the design of the program. Given some input file describing the filtering to do on email:

account imap://alice:zahg34!@mail.example.net/
{
  mailbox INBOX
  {
    foreach message
    {
      if (header.subject =~ /[Vv][Ii1][Aa@][Gg][Rr][Aa]/)
	moveto Trash;
      if (status = REPLIED) moveto Replied;
      if (header.date ~ "3 days ago" && status = UNREAD)
        moveto Archive;
      if (header.date ~ "7 days ago" && status != UNREAD)
        moveto ReadArchive;
    }
  }

  mailbox Archive
  {
    if (messages > 5000)
      sendmail("Yo!  There are too many messages in the archive!");

    if ((messages > 3000) 
    || (message[1].header.date >~ "6 months ago"))
      sendmail("Yo!  Check your archive!");
  }
}

Okay, maybe nothing quite so grandiose, but some file to explain the rule sets for moving messages from one box to another, run as a job periodically (a cron job).

We need to retrieve information via IMAP. We need to parse the email headers. We'll need regular expressions, as well as date processing utilities (“3 days ago,” “less than 5 hours,” etc). We'll need to read and parse the rules file (using whatever syntax I come up with). Oh, I would like to translate all the text to some intermediary character set so we can filter consistently, which means using iconv (and parsing MIME specific headers and MIME-encoded headers).

So the main program flow for processing each message would look something like:

get headers for next message
convert to consistent character set (probably UTF-8)
for each rule to check again
	check conditions of rule against message
	if all conditions apply, apply action

The hardest parts appear to be getting a version of PHP with all the required exentions installed. Next would be defining the input file and parsing that into some internal format for processing. The rest pretty much just falls into place.

Most of the time will be spent in building the required version of PHP, and in playing with the various modules to figure out how they work and what exactly one gets. I would also need to set up a play IMAP account to test the program against (there's no way I want to run this on my email account, or on Smirk's for that matter).

Friday, August 18, 2006

Equipment preparations

In preparation for the upcoming North Carolina jaunt, I found some new equipment on my desk for testing and configuration.

[Power strip controllers and terminal servers] [Inside the unit] [Swapping cards around]

The plan is to load up and leave tomarrow around 1:00 pm, placing us in the Charlotte, North Carolina area about twelve hours later. Sunday is installing the equipment and if there is time left over (hopefully, there will be) drive around the area taking in the local atmosphere. Monday I'll get the credentials to enter the data center (since Smirk is adament about not running one, we're renting space in an existing place) then return home. We should be back late Monday night.


Expendability

[Expendability: Kirk, Spock, McCoy, and Ensign Ricky are beaming down to the planet.  Guess who's not coming back.]

Star Trek Inspirational Posters (link via Sean Tevis).

Go. You know you want to.

Saturday, August 19, 2006

I can wait to get on the road again …

I'm packed and ready to go.

I'm just now waiting for Smirk to pick me up.


On the road again

Smirk says high to all the readers out there.

Well, we're finally on the road. The plan: pick me up around 1:00 pm, get the SUV, then go to the office, pick up the equipment (which ended up being six servers, four 1000′ spools of CAT-5 cable, a bunch of tools, adaptors, cables and what not, plus our laptops and, unlike my last trip, I have an unlimited data connection via Smirk's laptop, so the posts will be much better (while the keyboard sucks on the laptop, at least it's a keyboard)). But Smirk was running a bit late, having to drive back from Orlando this morning (it's best not to ask about that).

The clerk at the car rental agency was a hoot—he chided Smirk for making two reservations (even going so far as slapping Smirk's wrist) and then launching into an extended rant about the virtues of Clint Eastwood's western films. Quite amusing.

By the time we got to The Office we were running about an hour late, but in gathering the equipment we ran into some snags (one of the servers we're taking wasn't booting up properly), then after loading, we had to stop by Smirk's storage unit for some rack shelving and then a stop by Radio Shack for some cable strippers.

So we're running about 3½ hours behind schedule.

But we're on our way.


On the road again, II

Two notes (at 7:45 pm):

  1. Wow, very heavy rain, very light visibility.
  2. Two, need to adjust the web form a bit—preview mode resets one of the fields, and another field isn't set to the correct value.

Anyway, back to talking to Smirk and checking out Google Maps.


On the road again, III

In our quest to find a Starbucks (hey, Smirks wants a Venti® White Chocolate Mocha Frappuccino® Blended Coffee, what can I say?) we found ourselves driving through downtown Daytona, Florida (who needs a GPS when you have Google Maps?) in heavy traffic.

We finally found one, and while there, I managed to take a picture of the local fauna (and yes Smirk, I'll post the picture when I get a chance to download it from the camera and we have broadband access) while Smirk was obtaining his Venti® White Chocolate Mocha Frappuccino® Blended Coffee.

By 10:00 pm we were on our way again, headed north from Daytona.

Update at 11:59 pm

[The Fauna of Daytona]

The aformentioned picture of fauna in Daytona

Sunday, August 20, 2006

Off the road

Oy.

It's 7:00 am.

We're here.

Where to begin.

When we last left off, I had just uploaded a picture of the local fauna found in Daytona, Florida. Around Jacksonville, the connection was fast enough to download the Gimp and necessary files to install it on Smirk's laptop (as we were travelling 80mph—the bits where slamming into us), get the pictures off the camera (which involved some extreme contortions on my part to get the cable out of my laptop bag in the back) and upload said pictures to my home computer. By the time that finished, the connection had slacked off (the bits were now having to catch up with us) but I was still able to get the picture of the local fauna uploaded.

About halfway through Georgia we lost the connection at about the same time we almost lost the SUV—it suddenly dropped speed and all sorts of engine lights flared up and klaxtons went off.

It wasn't a pretty sight.

Thinking we overtaxed the battery (laptop, iPod) we shut the electrical equipment and pulled off at the next exit, stopped the car, let it rest for a few moments. When started, only one warning light remained lit, so we drove it, hoping to make it to Charlotte (about 3½ hours away). The laptop remained off (partly explaining the lack of posts).

Once into South Carolina, I took over driving (further explaining the lack of posts) and at the next refueling stop (first exit in South Carolina) all the warning lights remained off. Smirk then took this opportunity to use the laptop, but a solid connection remained elusive.

The plan: Arrive at the data center. Unload the servers into our cabinet (just dump them there), hit the hotel. Sleep. Drive around the area and in the early evening, set the servers up. Hit the hotel. Sleep. Hit the data center one last time to get my access to the data center set up. Drive home.

At 4:30 am we arrived at the data center. Mayhem ensues as we try to gain entry. Smirk realized the PIN contains an extra zero. Gain entry. Forgets which finger to give the next set of doors. Finally gain entry. Forget combination to the cabinet. I stand there trying each combination while Smirk calls to get the combination. Help finally arrives and we find out we were doing it wrong. Servers dropped off.

At 5:30 we arrive at the hotel. Get our keys. Go to car. Nearly get accosted by a drunk trying to scam some money from us. Dump stuff in room. Both of us are hungry and tired. Hunger wins. We walk next door to the IHOP. No signal for the laptop there (more reason for the lack of posts).

At 6:30 head back to our room. The A/C barely works, and the wireless access barely exists. Now it's the start of musical rooms. This one too wireless. This one too hot. This one just right.

At 7:15 I crash.


Observations about a room at a Howard Johnson

Actually, I didn't get to sleep until 8:00 am. One of our servers had crashed and we had to remotely reboot it. Anyway, it's now 12:45 pm and the 4½ hours of sleep really did wonders, and now I'm cognizant enough to give you some observations about our room here at Howard Johnson:

Anyway, time for the shower.


Scufflaws

Long day today (and no links for this entry—I'm too tired to even consider links right now; do your own XXXX searching).

After leaving the hotel, we drove around the state a bit, including Lincolnton, where Smirk is thinking of moving to soon. After that (and a very cool antique store with the Obligatory Velveteen picture of Our True Lord and Savior Elvis Aaron Presley and old tin advertising signs) we headed out to Brevard.

Yup, the town I grew up in.

It hasn't changed a bit, yet everything is different. The old drug store on the corner of Main and Broad St. where I used to buy my Uncle Scrooge comics is now an upscale toy store (not the Porche type toy store, but a train set and teddy bear toy store—back in 1988 when I last visited it, it had split into a two stores, one being a Hallmark store). Yet the townhome we lived in was still called “Shepards Square” and was still the same redwood color (although the actual townhome that I called “home” now had an access walkway across the lawn).

We then drove out to Connestee Falls. At first we couldn't find it since the area had built up in the past few decades. We stopped at a realty office specializing in Connestee Falls realestate (not only is it named for a spectacular waterfall, but a housing development in the same area) but found it closed. I then walked to a nearby house and asked the very friendly resident were the falls were. He pointed out that they were still about two miles further down the road.

Two miles later we found the falls. What had once been a series of octagonal shaped buildings holding the sales offices and restaurant is now long gone (only one lone octagonal building is still there and it was the home to some other local business) with the paths leading to Connestee Falls long gone into disrepair.

The only portion still “open” was the upper observational deck, with the semi-natural stairs that lead to the base of the main falls closed off with a no trespressing warning sign. We found the rements of a path that lead around the gate and being the scufflaws that we were, made a very careful descent down to the base of the main falls.

Connestee Falls is rare among falls in that two falls, nearly opposite each other, meet and run off into a perpendicular stream. The path we followed down looked like it hadn't been maintained since my last visit to the falls in the summer of 1988, and we only made it to the base of the main falls (and were about twenty feet away from the lower observational deck that was otherwise behind unreachable forest.

The weather in Brevard was drizzly, but that made it all the more vibrant around Connestee Falls, the rain bringing out deep greens and browns of the forest. Very beautiful and very tranquil setting, making me wish I had a house overlooking the falls.

After an indeterminate amount of time, we relunctantly made our way back up the trail to our vehicle and made our way back to the data center to finish setting up our equipment.

By the time we got back from Brevard (and dinner) it was after 10:00 pm when we headed directly into the data center. We mounted the servers, reran the power cables and were about to make the actual network cables when we found one of our servers DOA. By then it was after 2:30 am (okay, I'm backdating this entry a bit) when we figured we'd call it a day.

We cleaned up, and left one server backing up another one since we need to reinstall the operating system. We have a full day ahead of us tomorrow and it's expected we might not make it back on Monday.

It's now almost 4:30am and I'm getting ready to crash.

Monday, August 21, 2006

Oh, one more thing …

The Howard Johnson we're staying at can't configure their wireless network.

[spc]darkstar:~>netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.8.1     0.0.0.0         255.255.255.255 UH        0 0          0 eth0
192.168.255.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U         0 0          0 lo
0.0.0.0         192.168.8.1     0.0.0.0         UG        0 0          0 eth0
[spc]darkstar:~>

Yes, I was assigned an IP of 192.168.255.101 (with a netmask of 255.255.255.0) yet my gateway was defined as 192.168.8.1.

No XXXXXXX wonder I couldn't connect out. I just reassigned myself the IP of 192.168.8.240 (netmask of 255.255.255.0) and it worked just fine.

Sheesh!


On the road again, IV

[Always seems to happen—I travel, and for the first day or so I manage to keep up making posts then suddenly I drop off the face of the earth for a week or so. Sigh. Anyway, what follows will be a rather quick recap of the Hellish nightmare that was last week.]

So, where was I?

Ah, yes. Charlotte.

We checkout out of our hotel, then proceed to the data center (after making our obligatory stop at Starbucks that's just around the corner from the data center) with a full day's plan ahead of us, only to have it shot down mere seconds after walking inside.

Now, let me explain a bit about the setup of the data center in Charlotte. You walk in the main lobby. You then have two data centers, one ahead (data center #2) and one to the left (data center #1). Each data center has a keypad on the door that you wave a featureless white card at, then enter your PIN. This leads into a waiting area—the data center #1 vestibule (as this waiting area is called) has cubes set up for work, as well as a work table, while the vestibule in data center #2 (where our cabinet is stored) is just a large featureless room. Nonetheless, there's another set of doors in each vestibule with a small cylinder vertically mounted by the doors. You wave your card in front of this, then place your finger on the top of the cylinder, then you can enter the data center proper.

Our plan had been to set up a cable assembly line in vestibule #1 since we had a large number of networking cables to make. Smirk was also planning on checking the dead server in this area and see if he could get it working.

Well …

The table was in use in the lobby for a blood drive. And all the cubes in vestibule #1 were in use by another customer (or customers). Not a good start. An hour goes by as Smirk talks to the various employees there about where we can set up. We're told that we can snag the table at 2:30 pm and take it into data center #2 where we can work. So we have to wait around until 2:30 to get the table …

So we're running late.

2:30 comes, we set up the table in the data center, and I proceed to manufacture cables while Smirk checks up on the dead server, which turns out is dead because of defective memory. Smirk then goes out hunting computer memory while I stay behind making cables.

And cables.

And more cables.

Smirk returns, puts the new memory in the server, and it works. He then helps me make cables.

We made a lot of cables.

And spent quite a bit of time hooking up said cables.

And doing some quick tests.

We finally get out of the data center around 10:00 pm. The plan now? To drive until we can't drive any futher, get a hotel room, then resume travelling tomorrow.

On the way through Columbia, South Carolina, we stop by and visit an old friend of Smirk's who just recently moved to the area.

The apartment I lived in in Boca? The one I jokingly refered to as “The Facility in the Middle of Nowhere?”

Smirk's friend, J—his house is in the freaking “Middle of Nowhere!” We must have driven about 40 or so minutes through dark winding back country roads that met at odd angles until we reached J's house. And for being in the freaking “Middle of Nowhere” it was a nice house. A house like that down here, with that much land, would probably be in the half million dollar range easy.

Cheap up there though.

Tuesday, August 22, 2006

On the road again, V

We left J's house around 2:00 am and I immediately fell asleep in the car (fortunately, I was not the one driving). Some time later I awoke to find ourselves at a hotel, some no name hotel Smirk found along I-95 somewhere in South Carolina. He was hungry, and right next to the hotel was a Huddle House, which is a chain of diners through this part of the country. I wasn't all that hungry, but I did join Smirk and had some shrimp and a salad.

Shortly thereafter we were both asleep.

The hotel we stayed at was much nicer than the Howard Johnson we stayed in. No epileptic light fixtures. Working A/C (if it did appear to be a bit on the small side). We didn't check for wireless access, but since neither one of us were in a state to really care, we let that slide.

Our wake-up call was at 10:30 am.

And I woke up sick.

I felt horrible, and wanted nothing more than to climb back into bed and sleep (well, that's what I feel like doing every morning, but this morning I had a pounding headache and was feeling quite nauseated).

And at 10:40 am, we got a call from P (who was still holding down The Office in Boca Raton)—we had a customer T1 down. Worse, the backup circuit, a wireless shot between them and us, was also down. Needless to say, the trip back wasn't all that great.

I was on the phone with the Monopolistic Phome Company for maybe four hours, trying to get the T1 back up and running. The initial conversation went like this:

“Hello, the Monopolistic Phone Company Business Repair Unit. Can we have the circuit ID of the connection?”

“Yes, it's eight zero Whiskey Tango Foxtrot niner niner two four zero sixer. It's currently down and we need it back up.”

“Are you sure that's the circuit ID? I'm not finding it in our database.”

“I'm sure, but I'll double check.”

I call P. I have him read off the circuit ID from The Monopolistic Phone Company box on the wall, as well as the tag attached to said line, plus the number recorded in our database: eight zero Whiskey Tango Foxtrot niner niner two four zero sixer. Smirk calls the customer and has them read off the circuit ID off the invoice: eight zero Whiskey Tango Foxtrot niner niner two four zero sixer. So I call back.

“Hello, the Monopolistic Phone Company Business Repair Unit. Can we have the circuit ID of the connection?”

“Yes, it's eight zero Whiskey Tango Foxtrot niner niner two four zero sixer. It's currently down and we need it back up.”

“Are you sure that's the circuit ID? I'm not finding it in our database.”

“Yes, I'm sure. It's written on the box from you, on the tag from you, in our database, and on the invoice sent to our customer.”

“That's wierd,” said The Monopolistic Phone Company Represenative (and that would be the first of many said Monopolistic Phone Company Represenatives that said that very thing). “Let me transfer you over to billing to double check.”

“Billing. How can I help you?”

“Do you have circuit ID eight zero Whiskey Tango Foxtrot niner niner two four zero sixer?”

“Yes we do.”

“Okay, thanks. Can you transfer me back to Technical—hello? Hello?”

I never did talk to the same Monopolistic Phone Company Represenative twice, but towards the end my conversations with them would start:

“Yes, I can give you the circuit ID, but let me preface this with the fact that you will be unable to find said circuit ID in your database. Yes, I am sure that the circuit ID I am about to read to you is indeed the correct one, since it's on the box, on the tag, in our database, and according to your billing department, that indeed, is the circuit ID. It's eight zero Whiskey Tango Foxtrot niner niner two four zero sixer.”

“That's wierd, I can't find it in our database.”

Aaaaaaaaaaaah!

About an hour later, my conversations started with: “You guys can't find the circuit ID. I want to talk to your manager. Now.”

“But he's in a meeting right—”

“I don't care. Get him! Now! On the phone!”

“Can he call you—”

“Look, I've been on the phone with you guys for over three hours now. You lost or otherwise misplaced a circuit ID within your database. We have our customer screaming at us to get the T-1 up and running, and now, I'm screaming at you. Get. Your. Manager. On. This. Phone. Right. Now!”

“But sir—”

“Do. You. Want. Me. To. Continue. With. This. William. Shatner. Impersonation?”

“But sir—”

“Khaaaaaaaaaaaaaaaannnnnnnnnnnnnnnnn!”

All of this with a screaming headache and wanting to throw up at any second.

Meanwhile, Smirk was trying to get a hold of our wireless guy, and when both our cell phones weren't dying on us, we did manage to our wireless guy out to the site and the wireless connection going. And with G's help (he's our Cisco consultant and knows which people to talk to at The Monopolistic Phone Company) we got some techs to look at the down T-1 line.

Like I said, it wasn't a good day at The Office, even if The Office was screaming down I-95 at 105mph.

[As it turns out, we were giving The Monopolistic Phone Company the wrong circuit ID. Incredible that P mixed two different circuit IDs and have it match the one off the invoice and have the Billing Department verify it is just too much. Sigh.]

Wednesday, August 23, 2006

Home again

I got home around 6:30 pm yesterday, finished up some last minute details with the new wireless shot we got going, and then crashed.

I woke up today feeling much better. Went to The Office and spend the day making lists of what still needs to be done to the servers in Charlotte, plus notes on what needs fixing next time we're there (the serial console port on the router isn't working, nor is the serial console port to one of the servers; simple stuff that would be nice if they worked but aren't that much of a concern).

Thursday, August 24, 2006

Busy beaver

It was a very busy day today, finishing up installing and configuring the servers up in Charlotte. Just look at what I've been doing over the past two days:

set up resolving name server on lumbergh [this is our management server—bonus points for figuring out why it's named “lumbergh”]
" P
" SP
" SH
" R
clean up startup scripts P [shutting off scripts that we don't need stated at boot time]
" SP
" SH
" R
check port descriptions
reset up VLANs
set up reverse DNS in IPs
set up reverse DNS on private network
set up hosts file for critical machines lumbergh
" ns8
" ns2
" P
" SP
" SH
" R
set up DNS for CTL [“CTL” is the airport code for Charlotte] private network
set up DNS for CTL
save configuration for U (router)
" T (router)
" E (router)
" A (router)
" S (router)
" W (router)
update network map for BCT [and “BCT” is the airport code for Boca Raton]
create network map for CTL
create VLAN for 225 block
configure eth0 for P [All this refers to making sure the port settings, like speed and duplex, are set correctly for each server, not what the IP it has]
" eth1 " P
" eth0 " SP
" eth1 " SP
" eth0 " SH
" eth1 " SH
" eth0 " R
" eth1 " R
" eth0 " lumbergh [can't do that for these servers, as I found out]
" eth1 " lumbergh
" eth2 " lumbergh
" eth0 " ns8
" eth1 " ns8
" eth0 " ns2
forward root mail lumbergh
" ns8
" ns2
" P
" SP
" SH
" R
set ns2 port auto negotiation
check version of sendmail on lumbergh
" ns8
" ns2
" P
" SP
" R
" SH
set ns8 port for auto negotiation
set ns8 private port for auto negotiation
set lumbergh private port for negotiation
set up NTP on lumbergh
" ns8
" ns2
" P
" SP
" R
" SH
set up SNMP on lumbergh
" ns8
" ns2
" P
" SP
" R
" SH
reconfigure sysconfig on lumbergh
set up Apache + PHP + MySQL on lumberg
set up Cacti on lumbergh
set up /etc/resolv.conf on lumbergh
" ns8
" ns2
" P
" SP
" R
" SH
" U (router)
" D (power controller)
" A (power controller)
disable SELinux for P
" SP
" R
" SH
update IPTables for SNMP P
" SP
" R
" SH
update IPTables for NTP P
" SP
" R
" SH

The order is in the order I wrote it down (on a small notepad—it's five pages long) and not the order I need to do these things on. It's quite hard to reorganize hand written notes like that. And the items not checked off can wait a bit for implementation (under the category of “it'd be nice, but it's not critical”).

But we're ready to start using the servers up in Charlotte.

Friday, August 25, 2006

Busy beaver II

Still busy with work. Now that the majority of the Charlotte build out has been completed, we're now catching up on some loose ends that frayed during our trip out there.

[Attempting to configure a long range wireless access point] [To get inside only required removing a bazillion screws] [And my desk is getting a bit … messy]

One of the big projects today was trying to configure some long range wireless access points we have. I initially thought one of the units was defective, but it turns out that the serial adaptor, even though it's keyed, has to be plugged in very carefully, because the keying is worthless (and it's way too easy to plug the cable in wrong).

It also required removing about a bazillion screws to get inside the thing.

And there were also a zillion other smaller projects problems issues that kept cropping up today.

Saturday, August 26, 2006

“But they all ate organic rice!”

“What we're learning now is that natural traditional saturated fats like butter, lard, the fats in beef or chocolate, don't do anything bad for you— in fact—the main thing they do is raise HDL, which is the so-called good cholesterol.”

“In fact, I lost 25lbs going from a no-fat, vegan diet—beans and rice and vegetables—to real foods, fish, poultry and butter and so on.”

Via Instapundit, Nina Planck on “Real” Foods—YES!

Catching up on some websites, I came across an page about real food and it doesn't surprise me. I was my slimmest when my Great Aunt Freddie (yes, her real name) lived with us, and she fed us what could be considered “country food,” which meant heavy meats, fried chicken, real butter (and none of this “margarine” crap), cream, gravies (thick brown gravy, milk gravy (made with full milk—none of this “skim” or “2%” crap) and what not), mashed potatoes (not this “smashed” crap) and vegetables cooked with saltpork.

Mmmmmmmmmmmmmmmmmmmmmm.

And it reminds me of this bit from the movie Sleeper:

Dr. Melik: [puzzling over list of items sold at Miles' old health-food store ] … wheat germ, organic honey and … tiger's milk.

Dr. Aragon: Oh, yes. Those are the charmed substances that some years ago where thought to contain life-preserving properties.

Dr. Melik: You mean there was no deep fat? No steak or cream pies or … hot fudge?

Dr. Aragon: [chuckling ] Those were thought to be unhealty … precisely the opposite of what we now know to be true.

Dr. Melik: Incredible!

Sunday, August 27, 2006

“It has begun!”

Sigh.

It had to happen sometime

Monday, August 28, 2006

Tiny Bubbles

Proof that the housing bubble has burst in this area, or that the past few hurricane seasons have scared people away from moving to this state.

[McMansion for sale!  Quick!  Hurry!  I'm hemoraging money here!]

 

[The hurricanes!  They won't stop!  Get me out of here!]

 

Tuesday, August 29, 2006

Bad weather

Still frightfully busy at work (we moved a bunch of sites to the Charlotte data center and broke email in the process—sigh) but on the plus side, Tropical Storm Ernesto will probably remain Tropical Storm Ernesto and not get any stronger. It's also passing a bit west of us (still over Florida, but up through the middle of the state) so we'll probably get little more than a bad storm here.

In any case, Spring, The Kids and Wlofie are staying at Negiyo (her workplace, and hurricane shelter rated) while I'm going to stay here at Casa New Jersey and hold down the fort (and had Ernesto been a Class-3 monster I probably wouldn't stick around here myself).

Update a few minutes later

Turns out the email issue was a firewall issue, in that the POP and IMAP services were being blocked.

Sigh.

So much for my checklist.


Perhaps this cellphone wants to meet Mr. Hammer?

I went back to my old cell phone because my new one developed a bad display. Unfortunately, it seems that my old cell phone is now exhibiting odd display behavior itself.

[I think I have Da Vinci's phone here]

The display is wont to cut out entirely, or the bottom half appears at the top, and the top half appears at the bottom, or (as in the case in the photo above) upsidedown and reversed.

Powercycling the phone fixes it for a while, but it's becoming more and more common.

Sigh.

Wednesday, August 30, 2006

Still bad weather

With the non-event that is Tropical Storm Ernesto, Spring & Co. came back to Casa New Jersey instead of roughing it at Negiyo.

I think we're just going to get a ton of rain, that's all.


Amusing electric ham-like food product, Frontpage, Frontpage extensions, Frontpage hate, Frontpage sucks

Still busy with work as we're now in the process of moving sites to the servers in Charlotte and breaking tons of stuff in the process (“ooh, the firewall is blocking all FTP traffic, and for the life of me, if I have to reinstall Frontpage extensions one more time …”) so some of the posts I want to write will have to wait a bit.

Meanwhile, I've received a ton of spam (“So, like, what else is new?”) and some of it just tickled my fancy. I received one that had:

Subject
Standard Input:

Seems like these spammers didn't understand how to run their software properly, along with the difficulty these people have:

From
modifying HTML

(Clue-by-four, people! Look it up!) Then there's this one I received (and mind you, I do no filtering of my email—none—so this is exactly how they sent it):

Subject
[spam] (100) Restore your PayPal account access !

I wish all spam came conveniently pre-labled as such. But it seems some spammers are tailoring the subject lines to the domain, because I received this one:

Subject
DC Replacement of Cisco Routers- stay tuned

Which had nothing to do with Cisco routers, but given that I've talked about Cisco routers, they probably felt it would get me to open it. But my favorite one so far, is this one:

From
Pancakes
Subject
Spaghetti Wonton

I don't know—something about pancakes sending spaghetti wontons at me just struck me as being cute. Or something.

Thursday, August 31, 2006

The First Noel

Last year it was early Sempember.

This year late August (I had meant to blog about this last week, but alas, forgot. I happened to be going to Costco today, and remembered to bring the camera).

[Aw come on!  It's not even September yet!] [What are these?  Christmas onions you put on the tree?] [I suppose it's something for the Linux lover in your family] [And the obligatory Santa crap]

I give it another five years before there's Christmas items being sold year round.

Friday, September 01, 2006

“Failure to plan ahead on your part does not create an emergency on my part.”

Do You Give Out a Study Guide?

Hmm. The textbook simplifies a vast amount of material, then I simplify it more in lecture. Then you want me to extract the most important ten per cent of that and put it on a study guide, so if you know most of it you can get an A.

So what you're saying is the cutoff grade for an A should be 10%, right?

Via Columbia, Top Ten No Sympathy Lines (Plus a Few Extra)

An acerbic wit and also a university professor?

I'm surprised he's lasted this long.

I remember a few years ago talking to a friend of mine about the decline of the Computer Science and Engineering Department at FAU and I was told, point blank (since this friend worked in the department) that the department intentionally dumbed down the courses because too many students were complaining about the difficulty of the course, and the non-industry slant (I think they were teaching C at the time when C++ and Java were hot) of the courses (my response was, “What? They expect a university to be a trade school?”).

I'm still waiting for the day when people remember that an education is a priviledge and not a right.


Blogs as Marketing Tools

Smirk approached me at The Office. “Sean,” he said. “I'm thinking of starting a company blog.”

“Really?” I said. “A company blog?”

“Yes, J started one,” said Smirk. J owns the other company we share the Data Center with. “and he's using it to drive traffic to his company website.”

“So it's a marketing device,” I said.

“Yup. J said it's working too.”

“So who will have access to write on the company blog?”

“Well,” he said. “You. You know how you write what's going on with The Company?”

“Yes.”

“You'll do that, only with a more positive spin, and you'll have to be careful about what you say.”

“Of course.”

So there may be a Company Blog Real Soon Now.

Saturday, September 02, 2006

Obstensibly to collaboratively edit documents anywhere, but in reality, the new paradigm in software distribution, installation and upgrades

What does Writely do?

Writely allows you to edit documents online with whomever you choose, and then publish and blog them online.

Via Ceejbot, Writely Help Center

Yup, a word processor you use via your web browser. Google also has a spreadsheet and calendar program. And of course, who can forget Gmail.

About the only thing missing is a Powerpoint clone.

So what's with all this web based office productivity software? Or even sites like Flickr? I see this as the confluence of three things happening at once.

First off, in most cases, it's cheaper to ship a program via wire than it is via a disk. A producer does not need to invest in a ton of phyical material and the equipment to copy the bits to said physical material, nor does it need to invest in boxes, paper, postage and shipping. Of two programs sold at the same price, one only through a website, and one only through a retail chain, the company selling the program via the website will experience a higher profit margin than the company selling via the retain chain (in fact, about the only time shipping bits via a disk is cheaper is when the program being sold is of sufficient size that it would take longer to ship it via wire than by FedEx).

Second off, a producer of commerical software is under attack from three different fronts. First are the software pirates, that sell illegal copies of software at dirt cheap prices (why not? They didn't have to spend any money developing it, and copying bits are cheap cheap cheap). The more popular the software is, the more likely it'll be pirated. Software producers do have some recourse in organizations like the BSA, which, on the behalf of software companies, can levy hefty fines on corporations (and to a lesser degree, individuals) that haven't properly licensed the software they use, but in emerging markets like China, there isn't much a US or even Europoean software company can do.

The second front is the relunctance of customers to actually order and install upgrades. It's not like there's a vast difference between Microsoft Word 97 and Microsoft Word 2000 (much less Microsoft Word 2003) to warrent the price of an upgrade. Especially when upgrades can be disruptive (not always, but there are times when it is). Let's face it, the largest competeter to Microsoft is Microsoft of three years ago.

The third front is open source. There are more and more free (as in beer) alternatives to the major software packages and they are improving. And while they might not be able to compete at a high professional level (the GIMP vs. Photoshop? No contest: Photoshop. On price? The GIMP) but for most people, the free alternatives are Good Enough™.

And the third confluence relates to open source. There are several open source licenses out there, and one, the GNU General Public License, will tend to drive the actual purchase price of software towards zero. Also, companies that release programs licended under the GNU GPL are required to make the source code available at nominal charge, to those that have bought and used said program (heck, even if you just use one library licended under the GNU GPL you have to make the rest of your source code available in most cases). So it's a bit more difficult to make money using open source.

Google (along with other companies like Yahoo, who own Flickr and Six Apart, who own VOX) have found a way around these problems. There's no software to actually ship, since it all runs on computers owned and operated by the respective companies and all are accessed via the web. Second, there's no issues of customers not upgrading because the customers don't install the software to begin with. They can leverage the vast amount of code available as open source and by being careful to avoid any GNU GPL libraries, they can avoid having to give out the source code. Revenue can come via advertising, or by offering access to more functionality (much like LiveJournal).

And hey, if it causes Microsoft fits, so much the better.

Sunday, September 03, 2006

So when can we expect the velvetine pictures of Einstein?

As a scientist, Albert Einstein made great contributions in physics that have enriched our view of the universe. Many of his theories and postulates were received through his clairvoyance and thus advanced our scientific world to the threshold of a fourth-dimensional or an interdimensional physics. The concept of mass being nonexistent and an illusion, and that, in reality, an expression of pure energy; and the concept that the velocity of light was not a static, constant expression of energy but was relative to the plane of expression upon which the viewer exists are two examples that will be understood as precursors in our twenty-first century science.

Via James Randi's Swift—August 25, 2006, The Genius of Einstein: Where did it Originate?

Man, I just can't get enough of the crankpots on the Internet. The stuff they write makes for some highly entertaining reading (that is, if you can understand it).

For the record, Einstein's Theory of Relativity (both Special and General) state that the only thing constant in the Universe is the speed of light (at 186,282.39mph) and far from being received by clairvoyance it's the culmination of Newtonian physics and finishes the work started by Hendrik Lorentz.

Monday, September 04, 2006

Is that TODAY?

Oh.

I guess today was some sort of holiday.

Fancy that.

Guess that explains the relative lack of traffic today when I went to the office.

And it explains the relative lack of cars in the parking lot at The Office.

And the lack of critical participants in a meeting scheduled for today (no, not Smirk or P).

Ah well.

Tuesday, September 05, 2006

Perhaps the solution is to disable any form of bounce back message

I awoke to a phone call from a frantic Smirk, trying to get one of our new servers under control from a deluge of email (if I sounded angry today Smirk, that's because I got up a bit early, and it took nearly two hours for me to eay my way through lunch, so let me apologize).

The end result will probaby take as long to explain as it took to handle.

The server was drowning in email being sent to nicholas@seaton.biz. We don't host the website for seaton.biz. Nor do we handle email for seaton.biz. In fact, we have nothing, nada, zip, zilch, nothing what so ever to do with seaton.biz, except for a ton of email trying to be delivered to nicholas@seaton.biz from our server.

Got that?

Read that paragraph again.

Good.

Now, why were we trying to send email to nicholas@seaton.biz? Good question. At the time, the MX record for seaton.biz (which contains the address of the server(s) that handle email for seaton.biz) were resolving to 127.0.0.1.

Now, the IP address 127.0.0.1 is a special IP address—it's the “loopback” address; any network traffic sent to IP address 127.0.0.1 is sent to the box doing the sending—the data “loops back.”

So our server sent the email to nicholas@seaton.biz to IP address 127.0.0.1, which, since that's the “loopback” address, was sent right back to our server. Our server accepted the email because, hey, it has the permission to send email to itself. But since we don't host seaton.biz, or in fact, have anything to do with seaton.biz, the email got requeued up for delivery again.

Which begs the question why we were trying to send email to nicholas@seaton.biz in the first place. In checking the email logs, it seems that one “Nicholas,” who has the email address of nicholas@seaton.biz, sent a bunch of spam to all the sites on our server. And in typical spam fasion, it was sent to a whole bunch of addresses, the majority of which don't exist!

That's right. “Nicholas” here was sending email to alice@example.net, bob@example.net, carol@example.net, dave@example.net, etc. etc. with a return email address of nicholas@seaton.biz.

Now, our email server, like every other email server in existance, is configured to send an error notification back to the sender when the email address doesn't exist. So each spam that “Nicholas” sent that didn't get delivered because the destination address didn't exist created a message to nicholas@seaton.biz saying as much.

So that's why we had thousands upon thousands of messages attempting to be delivered to nicholas@seaton.biz, which, because the email server for seaton.biz was set to the “loopback” address, were being delivered right back to our server for yet another attempt at delivery.

Beautiful, huh?

Now, that's not to say that the owners of seaton.biz were the actual spammers—most likely they're not and they're the victim of a “joe job.”

So now the question is: who's doing more damage here? The original spammer “Nicholas?” Or the owners of seaton.biz when they changed their MX records to 127.0.0.1? (not that I can blame them for doing that—it keeps a bunch of useless email from being sent to them and wasting their bandwidth) And what can we do to keep this from happening in the future?

I suppose one way would be to immediately delete any email destined for a site we have nothing to do with, but with an MX record of 127.0.0.1.

Does anyone know how to get sendmail to do that?


You know, Google DOES have an incentive to spam, but not for the reason you think so

I was replying to a thread on Flutterby and about to mention how we here at The Company are this close to just shutting email off and telling customers that they can use Gmail when this weird thought just crossed my mind: Google has an insentive to spam, in order to take over everyone's email!

Now hold on!

Hear me out.

Google started archiving USENET and eventually offered an interface to it. Now, I can tell you that from an ISP point-of-view, USENET sucked. You needed gigs of space, and the server software that supported NNTP was not only a bitch to setup (much like UUCP) but also a bitch to maintain and keep running (it wasn't unusual for the server to collapse under the load of USENET, which meant finding and nuking whole portions of USENET to free up some space) and the users always bitched about how we didn't carry alt.fan.furry.disenchanted.vixen.sex.sex.sex and could we please increase the queue time for alt.sex.pictures.erotica and not delete the group every six hours, even though it could consume 75% of the disk space in six hours?

So Google taking it over meant that ISPs didn't have to anymore (okay, so there are companies that specialize in USENET, like Giganews and PowerUSENET, but free USENET access? It's Google).

And now we get to email.

Google is in a position to take over email much like it's taken over USENET. Take on the hassles (and they have the infrastructure to handle it) and slap on a decent interface (although the Gmail interface is way better than the USENET interface by far), and using the indexing and searching capabilities from the web search engine stuff, and you have a pretty compelling email engine and probably does a killer job on spam (I'm guessing—not using Gmail I can't say one way or the other).

Sure, there are companies now specializing in email (like AuthSMTP and SMTP.com) but for free email access? It's probably Google) but really, Google can make a ton of money on email, if only by selling targetted advertising on email (and hopefully, it's better than it's AdSense program) and until that point, Google can probably make a ton of money by spamming (I'm not saying Google is spamming, but that they have a nice insentive to spam).

Okay, wierd thoughs are over—back to fighting spam.


You know, setting the backup MX to 127.0.0.1 might not be such a bad idea after all …

From
Mark Grosberg <XXXXXXXXXXXXXXXXX>
To
sean@conman.org
Subject
Unung heroes …
Date
Tue, 5 Sep 2006 13:28:08 -0400 (EDT)

Hey Sean,

I just read your blog post about seaton.biz. Good lord! What an ingenous way to XXXX things up! I never thought of setting an MX to localhost. That reminds me of the Apple mail disaster story from the UNIX haters handbook. The bounceback caused more problems. I guess in 20 years the reluctance to update E-mail software is still biting people in the ass. [HTML added —Editor]

I was thinking about this while I was shopping tonight.

The spammers are still sending spam to my MX server and about once an hour or so, my primary email server (which is my main machine here at Casa New Jersey) gets whacked with a ton of spam all at once. All my legitimate email? Comes directly to the primary MX server. Most (if not all) of the spam? Goes through the backup MX server.

Hmmmm …

It's sooooo tempting to set my backup MX record to point to 127.0.0.1. Soooo tempting.

I think I'll keep my spam for the next 24 hours, and see just how much comes through my backup MX server, and then make that change. It'll be interesting to see how much that effects my spam.

If I break the Internet, blame the spammers.

Wednesday, September 06, 2006

Speaking of spam

The Court of Appeals of Virginia upheld yesterday what is believed to be the first conviction in the nation under a state anti-spamming law that makes it a felony to send unsolicited mass e-mails.

A North Carolina man was convicted in Loudoun County two years ago of illegally sending tens of thousands of e-mails to America Online customers. Prosecutors said Jeremy Jaynes flooded the servers at the Internet company's headquarters in Loudoun with bulk e-mail advertisements for computer programs and stock pickers.

Jaynes was sentenced last year to nine years in prison on three counts of violating the state's anti-spam law and was allowed to remain free on $1 million bond while his case was appealed. Thomas M. Wolf, an attorney for Jaynes, said he plans to appeal yesterday's decision.

Via Wlofie (in email), Anti-Spam Conviction Is Upheld

The headline is a bit misleading—it should be “Spam conviction is upheld” not “Anti-spam conviction is upheld” as it's a spammer that was arrested and sentenced to jail, not an anti-spammer.

But that nitpick aside, the good news is that spammers can now see their day in jail. The bad news—spam will probably not be done from the US much longer.


What I expect to happen

Do I really expect to mess up spammers that much by setting my backup MX record to 127.0.0.1? To cause their servers to melt under the load of ever lasting spam circulating through their servers, perpetually delivered back to themselves for anohter round of attempts?

Not really.

First off, the spammers that are sending email to the backup MX server is already using custom (or customized) software to begin with—the SMTP spec states that servers contact the MX servers in priority order (with the highest priority one being considered the primary), which is something the spammers aren't doing.

Second, it's likely that they're using botnets (large collections of compromised machines) to do the actual sending of email, and the chances of the machine in question running an SMTP server are pretty low. So the likelyhood of me causing their servers to melt down are very low.

What I am expecting to see is a drop in the number of spams I receive. And possibly causing a headache or two (hopefully).

Thursday, September 07, 2006

I learned a long time ago that no matter how much you think you know a person, you really don't

Via Flutterby comes this short and interesting article about Warren Buffett. I know that both Spring and Bunny would find it interesting to read (since both have an interest in Mr. Buffett) but not for the reasons you might expect.


Project: LOOPBACK SPAM started

I collected spam for 24 hours. 40% of the 275 spams I collected were delivered through my backup MX server, which was somewhat disapointing as I was expecting a larger percentage of spammers to use that techique.

But no matter.

I've gone ahead and changed the backup MX records to point to 127.0.0.1. I'm relunctant to leave it that way for very long (what happens if my primary MX server goes down?) but it will make for an interesting experiment for the next day or so.

And I hope to give a few spammers some headaches.

Friday, September 08, 2006

The Proto-Company Blog

When I wrote about the posibility of doing a company blog, Spring wrote (in a locked journal entry, so that's why there's no link here):

… though how on earth you're going to do the company blog is what I am wondering. I don't think you're the man for that job, not due to any inadequacy, but due to area of focus. I just don't see you getting that excited about the sorts of things that should be in a blog like that.

But in discussing this with Smirk, about 70% of what I write (as he said, probably taking about 70% of what I mention about The Company) is fine for The Company Blog, but that I would need to steer clear from certain topics (like complaining about customers) that really, I have no problem with. Also, the direction I'm thinking of going with The Company Blog is a “behind the scenes” type of blog, where I describe what goes on at a web hosting company, how this whole Intarweb thang works, stuff like that, with the hope that it'll give people a realistic expectation of what they can expect from a web hosting company.

I have a prototype up and running but there are still broken links, pages not finished, and I'm still playing around with the layout and even the name of the blog. If you are interested in seeing this prototype and giving me some feedback (and even a potential name) just send me an email and I'll reply with the link back to The Company Blog.

Saturday, September 09, 2006

So if I don't double my money, do I get a refund?

From
beowulf hamlet <kathreen37@mrg.com>
To
sean@conman.org
Subject
Bug in E-bullion system - double your bullion in seconds
Date
Sat, 09 Sep 2006 15:25:30 +0300

I found a bug in E-bullion system, which allows you to double your e-bullion deposit in seconds!

The bug is in the special administration account, all transfers sent to that account are not withdrawn from your account, but paid back to you instead.

Please send me $50 E-bullion currency to my account C49355, and write your email in the memo field. I'll send you the instructions by email. What I wrote is true, that really works!!!

Frank.

So, Beowulf “Frank” Hamlet (by the way, neat name, but an odd email address), that's a nice little scam you got going there. I send you $50 bucks from the system you claim to have a hack for, and you'll send me back instructions.

Hmmm …

Yeah.

Right.

So, let me ponder this for a second. There's a special account at E-bullion that supposedly adds any amount to transfer to this special account back to your account. Is this a bug that can be done only one time? Because if not …

I start with 1¢. Twenty “transfers” later I have $10,485.75. Sweet. And yes, I can see E-bullion not finding out about this bug at all.

But tell you what, I got this email from Dr. Luisa Estrada, wife of the former head of state and President of the Philippines Joseph Ejercito Estrada, who wants help transferring $18,000,000.00 and is looking for help.

Interested?


Project: LOOPBACK update

Project: LOOPBACK doesn't seem to be doing all that much good actually. I have 24 hours of spam since I started (well, a few hours after I started, to make sure the DNS records got propagated, and I have the same amount of spam now that I did prior to the start of this little experiement.

Sigh.

The results make me wonder if someone else tried this and the spammers have already taken this into account.

I could try changing the IP address I use (say, to a private address, or one of the link testing addresses), but I'm not sure if it's actually worth the effort now.

Sunday, September 10, 2006

Playing a SAX

There's a project that might start up at The Company involving lots of XML and C programming, so I've been poking around libxml. I'm thinking I might even want to use this for mod_blog to validate HTML (since libxml has an HTML parser, and about a quarter of the time I blow the coding on an entry and have to fix it).

One problem that crops up is the difficulting in getting errors as libxml is reading the document into memory. Sure, I can suck the HTML in with one call:

htmlDocPtr doc = htmlParseFile(filename,NULL);

(yes, it is that simple). But not seeing how to change the underlying reporting mechanism (not that I looked all that hard), I decide to switch to the SAX interface for parsing. The SAX interface allows you to register functions to be called during portions of the HTML (or even XML) parsing. Yes, I can grab the errors as they happen, but now I have to resort to building the document into memory myself (more or less). But that's okay, since in theory, this will allow me to not only capture the errors, but filter the HTML as I see fit.

Two thing that popped right out at me.

First, the callback when a tag is found:

void startElement(void           *user_data,
			 const xmlChar  *name,
			 const xmlChar **attrs);

void endelement(void          *user_data,
		       const xmlChar *name);

In these callbacks, the name parameter is the name of the element. The attrs parameter contains the attributes for the start tag. The even indicies in the array will be attribute names, the odd indicies are the values, and the final index will contain a NULL.

Using the SAX Interface of LibXML (a tutorial)

Okay, seems simple enough. I write some code:

static void start_tag(void *data,const xmlChar *name,const xmlChar **attr)
{
  int i;

  /*--------------------------------------
  ; similar to printf() but functionally
  ; a bit better.
  ;
  ; And yes, this is how I format comments
  ; in C.
  ;--------------------------------------*/

  LineSFormat(StdoutStream,"$","<%a",name);

  for (i = 0 ; attr[i] != NULL ; i+= 2)
  {
    LineSFormat(StdoutStream,"$ $"," %a=\"%b\",attr[i],attr[i+2]);
  }
}

And the first time this code runs it crashes.

It seems that the documentation is a bit misleading—attr is only valid if there are attributes. Otherwise a NULL is passed in, which means you have to explicitely check attr for NULL!

Aaaaah!

Would it have been that difficult for the authors of libxml to always pass in a valid attr, even if it's two elements long that both contain NULL? (I suppose most programmers would check anyway just because, and the bloat continues)

The second thing. Catching the errors. Yeah. The call backs for those?

void sax_error(void *data,const char *msg, ... );

The errors (and warnings, and fatal errors) are passed back as a printf() style message.

So forget about intelligently handling the errors unless you want to parse the actual error messages.

Aaaaaaaarg!

Monday, September 11, 2006

Another Project: LOOPBACK update

I went through another 24 hour period of spam and it looks like Project: LOOPBACK SPAM has cut the spam down a bit—only 194 spams from the last 24 hour period. I don't know if this is due to setting the backup MX server to 127.0.0.1 or the natural ebb-and-flow of spam. I'm hoping the former since in the past two weeks or so we've been inundated with spam problems at The Office.

Tuesday, September 12, 2006

“Why'd it have to be Outlook?”

For the past two weeks or so one of our customers (with a dedicated server) has been having trouble either sending emails or receiving emails (or both!). The customer in question uses Microsoft Lookout Outlook (of course—sigh) so Smirk has been looking into the issue and couldn't for the life of him get Outlook to work.

Thunderbird?

Yes.

Webmail?

Yes.

Outlook?

Outlook not so good.

He spent so much time he decided to reinstall the server (there are some other issues with the server—namely centered around the control panel Ravencore) and start over with a fresh slate.

I had just finished installing a new server when P asked if this was the customer that had the security audit.

Oh.

Um.

It is.

XXXX!

I then talked with Smirk to get an exact clarification of the problem and it's a problem with one (1) email account. Just one. Everything else works fine. So Smirk left it up to me—if I could fix the original server, fine. Or if I could get the new server working, fine. Just get it working.

I did some tests on the original server and checked the logs.

Sep 12 16:31:23 XXXXXXXXX dovecot: POP3(XXXXXXXXXXXXXXXXX): pop3_uidl_format setting is missing from config file

pop3_uidl_format? What's that all about?

# POP3 UIDL format to use. You can use following variables:
#
#  %v - Mailbox UIDVALIDITY
#  %u - Mail UID
#  %m - MD5 sum of the mailbox headers in hex (mbox only)
#  %f - filename (maildir only)
#
# If you want UIDL compatibility with other POP3 servers, use:
#  UW's ipop3d         : %08Xv%08Xu
#  Courier version 0   : %f
#  Courier version 1   : %u
#  Courier version 2   : %v-%u
#  Cyrus (<= 2.1.3)    : %u
#  Cyrus (>= 2.1.4)    : %v.%u
#  Older Dovecots      : %v.%u
#
# Note that Outlook 2003 seems to have problems with %v.%u format which was
# Dovecot's default, so if you're building a new server it would be a good
# idea to change this. %08Xu%08Xv should be pretty fail-safe.
#
# NOTE: Nowadays this is required to be set explicitly, since the old
# default was bad but it couldn't be changed without breaking existing
# installations. %08Xu%08Xv will be the new default, so use it for new
# installations.
#
#pop3_uidl_format =

Outlook.

Why'd it have to be snakes Outlook?

Needless to say, it worked after making the required configuration change (and then it was getting it so that the control panel wouldn't wipe out said configuration change)

Wednesday, September 13, 2006

I think I'd prefer snakes at this point

It took a bit more than just setting pop3_uidl_format to get Microsoft Lookout Outlook to fully work with the email system on the dedicated server. The customer could receive mail, but not send.

I'll spare you the details (namely because I want to spare myself the details) but to get Outlook to work with dovecot and postfix.

In /etc/postfix/main.cf:

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sasl_path = private/auth
smtpd_sasl_security_options = noanonymous
smtpd_sasl_type = dovecot

And in /etc/dovecot.conf:

ssl_disable = no

auth default {
  mechanisms = plain digest-md5 cram-md5 login
  passdb passwd-file {
    args = /etc/dovecot-passwd
  }
  
  # and because once isn't enough ... 

  userdb passwd-file {
    args = /etc/dovecot-passwd
  }

  socket listen {
    client {
      path = /var/spool/postfix/private/auth
      mode = 0660
      user = postfix
      group = postfix
    }
  }
}

# and from yesterday ... 

pop3_uidl_format = %08Xu%08Xv

Oh, and make sure saslauthd is running.


“We have a customer that uses that?”

The other surprise today.

We've moved a few sites to new servers and as always, there are bound to be a few issues here and there. So it wasn't that unusual to get a ticket from a customer complaining about some missing content on their site. From the look of the page, it's the type of content that's dynamically generated, so it's either a database issue (“but we copied all the databases over!”), some configuration problem like different file locations (“but the layout is exactly the same on the new server”) or something easy like that.

The customer in question doesn't have a MySQL database, so I was expecting some file locations to have changed. So imagine my surprise when I found the following:

$MM_mdtap_HOSTNAME = 'localhost';
$MM_mdtap_DATABASE = 'postgres7:XXXXXXXXXXX_db';
$MM_mdtap_DBTYPE   = preg_replace('/:.*$/', '', $MM_mdtap_DATABASE);
$MM_mdtap_DATABASE = preg_replace('/^[^:]*?:/', '', $MM_mdtap_DATABASE);
$MM_mdtap_USERNAME = 'XXXXXXXX';
$MM_mdtap_PASSWORD = 'XXXXXXXX';

PostgreSQL?

We have customers using PostgreSQL?

We're have PostgreSQL running?

I guess so.

Well, that explains that problem then.

It then took me a few hours to get the database over and running, not having any experience with PostgreSQL.

It was a very hectic day today.


Beyond Beyond the Valley of the Dolls

I finally got around to viewing Beyond the Valley of the Dolls (rented from Netflix and it's been sitting on my desk for over a month now) and well … it wasn't a good film, but it wasn't a bad film either. In short, three girls form a rock band and with their manager (who's the boyfriend of the lead singer) they head out to Hollywood to make their fame and fortune, only to fall to sex, drugs and rock-n-roll. The ending comes completely out of left field (but it does explain the “out of left field” opening scene during the credits) and it was surprising in that “I can't believe they broke with the cliché” type way (but all the women in the film were very easy on the eyes—hubba hubba).

I think Mark Evanier's review is probably spot on.

And about the only thing it has in common with Pulp Fiction is kind of ending at the same point it started.

Kind of.

But not really.

But did I mention the women in the film? They were definitely worth watching.

Thursday, September 14, 2006

“Um … because it sucks?”

thanks, for your attention to this letter. add, I have another question … Why this problem in [contact form] is presented frequently? … I expecting about your answer.

Trouble ticket from this afternoon

Fractured English aside (English is not this customer's first language) I don't know how to answer his question.

Well, I do, because the reason he has constant problems with his contact page is that it's Frontpage, and that Frontpage sucks as it's a very fragile program that if you even look at the files wrong all the Frontpage extentions break and they have to be resintalled (which is pretty easy—just disable the extentions on the server, delete the Frontpage specific files, then reinstall the Frontpage extentions). It's so bad that even Microsoft has finally given up on it. Not many web hosting companies like Frontpage (because it's so fragile) and even those that do don't like it that much.

But how to tell the customer this, without pissing off the customer or Smirk with my answer?

Friday, September 15, 2006

Death and Taxes

There are only two certainties in life, death and taxes.

And today, taxes are due.

Yes, I realize it's not April 15th, the traditional date that Uncle Sam holds out his hands least he release the hounds IRS but September 15th.

Most people here in the US have their employers do the withholding (form W-2) and only have to square away once a year. But if you're self employed (or considered self employed, like I am) then you have the privilege of making estimated tax payments four times a year to Uncle Sam.

Aren't I lucky?

Saturday, September 16, 2006

Making Comics

I've always had an interest in cartooning. As a kid, I wanted to be a cartoonist and I could have probably become one, except I lacked the patience to actually do a daily comic strip (and never mind the fact that newspaper comics are nearly impossible to break into and are dying anyway) but I still have a soft spot for cartooning.

So when I heard that Scott McCloud had just released his new book Making Comics, I had to get it.

And I'm glad I did. He covers material that I've never seen covered in any of the “making comic” books I have. More than just drawing characters or how to use an ink pen, he goes into page layout, lettering, pacing, story telling, emotions (or rather, a theory of drawing emotions in chracters) and a dozen other topics I've never seen covered before.

It's also a logical extention of his other two books, Understanding Comics and Reinventing Comics (which is the weakest of his three books in my opinion).

Sunday, September 17, 2006

A low key day

Today is The Younger's birthday and it's been a low key type of day. I didn't go all out and make a cake like I did last year (we celebrated his birthday early last year because he was flying out to visit his dad). I did, however, make Sweet-n-Sour Chicken for dinner, which is one of the few meals I make that The Kids like.

Monday, September 18, 2006

Earwormed

Yesterday we were listening to a bunch of medival music (stuff from the SCA) and it reminded me quite a bit of Gordon Lightfoot.

And today?

I am now earwormed with The Wreck of the Edmund Fitzgerald.

I suppose it could be worse.


Ya know …

I'm turning yet another Cobalt RaQ into a firewall. It requires the use of another PC (with a particular setup—basically, the Cobalt RaQ CD boots off a PC which enables you to to a network boot of the RaQ, and that boot will reformat and install the operating system on the RaQ) which I didn't have on Friday. I have (or rather, Wlofie has) the proper setup at home, but when he did it, the install didn't care for the harddrive.

So now I'm at The Office. We dug out the computer I used to use for this (an older PC in a large case that sounds like a diesel truck that badly needs a tuneup). For the past two hours I've been trying a series of harddrives and none of them seem to work. I try different installation disks (thinking maybe one of them is bad) and still, none of the five harddrives I'm trying are working.

Then Smirk notices that the Cobalt RaQ has two IDE cables. “Sean, humor me,” he said. “Try plugging the drive in the other cable.”

“I don't think it should matter,” I said, not noticing that I said The Word.

“But maybe it does.”

“Maybe,” I said, plugging the drive Smirk wanted to use in the other IDE cable.

It mattered.

It's now working.

Sigh.

Tuesday, September 19, 2006

Arg. Aarg. Me … me mateys.

Aarg.

It's Talk Like A Pirate Day today … me … mateys (and it helps if you think of this as being spoken by Bob Newhart, who did a fantastic sendup of pirates in his show Newhart).

Avast, ye … ye … ye swabbies (what is “avasting” anyway?).

Update later this night

Bunny wrote in saying that “avast” is a nautical term meaning “to stop.” How that term came about I don't know (nor did Bunny mention in her email).


The Saltmine Chronicles

When I last wrote about The Company Blog, I was still working on the prototype.

Well, no more.

The Saltmine Chronicles, the Company Blog, has gone live. So if you're interested in knowing which company I work (and sometimes grouse about) now you can finally confirm your suspicions and know which company I work for.

Oh, I'll still call it The Company here, and I still work for Smirk with P as a fellow cow-orker, but if you're curious …

My plan is to write entries there on Tuesdays and Thursdays, and the entries there will be more about how webhosting works, how the Internet works—basically, the behind the scenes of how a webhosting company works (is that enough linkage for you, Smirk? That should boost the Google Page Rank of the sites a bit).

And yes, don't expect to see any grousing over there about the stuff I do. That's what this site is for.

Wednesday, September 20, 2006

That was certainly quick

From
"john keane" <XXXXXXXXXXXXXXXXXXXXXX>
To
<sean@pickint.net>
Subject
Book Reviewing
Date
Wed, 20 Sep 2006 13:29:04 -0400

Sean,

I am chronicling my journey to publication http://gettingpublished2006.blogspot.com/ and want to get an idea of the book review process. I believe today's authors need to understand how best to navigate the new publishing paradigm.

As you know, the old filters [agents, publishers, reviewers, bookstores] are being bypassed via a direct connection of authors to readers—with reviewers remaining as the major screeners of gold from dross.

I'd like to know at what stage [.doc, .pdf, paperback, et al.] a self-publishing author should seek a review—on-line and in print—and what are the odds of getting a serious review. I intend to explore the review stage and report on my findings.

Please join me at my Blog. I'm sure readers will profit from your comments.

V.N.

PS You and I share a common view of Dan Brown, technically clueless.

The Saltmine Chronicles, the unofficial official Office blog, is live less than one day, and I get email addressed from it. My own blog was live for months before I got an email from someone I didn't know.

Not that I'm complaining, mind you. I just found this amusing, that's all.

But it's nice to know that John also reads this blog, for which I'm grateful. And I'm sure that reading about the publishing industry will make for interesting reading.

Good luck, John.

Thursday, September 21, 2006

Two small tickets

Yeah … look into two tickets before I go home.

Sure.

I had come to The Office today to attend a networking meeting between us and the other company we share Internet resources with. At the end of the meeting I had asked Smirk if I could go home.

“Yes, but before you do,” he said, “could you look into two tickets?”

Sigh.

Both were networking issues, and both were along the lines of “the Intarweb is kinda broke.”

“Kinda?”

Oh, I also had to stick around to let R, our wireless guy into the Data Center as he did some wireless stuff.

By the time R left, I hadn't gotten anywhere. The one issue with XXXXXXXX was odd—they could get to some sites, but not others. And I was having major difficulty in getting into their managed firewall (we manage it for them). The other issue, with another company, was even worse—the Intarweb just … pauses … from time to time. There was nothing I could see from our side of the network.

So once R left, I decided to leave as well.

Just as I pulled into the driveway at Casa New Jersey, I got a call from R—he needs access to the Data Center.

Sigh.

And just before I pulled out of the driveway, Smirk called back. He was at a customer site trying to troubleshoot a networking issue.

More sighage.

Back to the office. Help R powercycle the wireless device. While there, help Smirk troubleshoot the networking issue at the customer site.

I got home around 9:30 pm.

Blah.


Loud and cheap. Expensive and quiet. Both are quite nice.

From Flutterby comes the link to the Ariel Atom, a sporty little car (for only £30,000) with a 300hp engine that can do 0–60 mph in 2.9 seconds.

Oh, and it only weights about a thousand pounds.

Also from the same Flutterby post is a link to the Tesla Roadster, another 300 hp sportscar that is entirely electric.

Although it's a bit more pricey than the Ariel Atom, at about $80,000.

Both of which I wouldn't mind owning.

Friday, September 22, 2006

The broadcast address is NOT the netmask

I was able to finally solve the issue with XXXXXXXX. It was an odd problem though—they could get to some sites, not to others. Even wierder, I could get to their router from outside, but not their firewall, even though both were in the same network block. I could ping the firewall from the router, but the implementation of ssh on Cisco routers is … well … pathetic so that's not really an option.

I was able to ping the firewall from an ISP in Boston.

Yup.

Boston (by the way, thanks Eve for not getting rid of the account—it comes in handy from time to time).

And since I could ping it, I tried to ssh into it.

Success.

A few minutes later, and I'm looking at the routing table of the firewall.

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
XXXXXXXXXXXXX   0.0.0.0         255.255.255.252 U        40 0          0 eth0
66.0.0.0        0.0.0.0         255.0.0.0       U        40 0          0 eth1
0.0.0.0         XXXXXXXXXXXXX   0.0.0.0         UG       40 0          0 eth0

How odd. Every IP address between 66.0.0.0 and 66.255.255.255 is being routed back to XXXXXXXX's firewall. How did that happen?

I come to find out that they had a power outtage a few days ago, and that's when their problems started. I check the startup scripts and lo', I had specified a broadcast address in lieu of a netmask. The command to configure the interface rejected the value for the netmask and picked a default mask based upon the IP address (the address falls into the old class “A” network, which has a default mask of 255.0.0.0).

Ah.

Well then.

That would certain explain why they were able to get to some sites but not others. And it would explain why I was unable to get into their firewall from The Office or Casa New Jersey (as both locations fall into the 66.0.0.0/8 network block).

Ahem.

It was an easy fix.


There's that word again …

“It should only take a minute,” said Smirk.

That was almost an hour ago.

It still isn't done.

Murphy strikes again.

Saturday, September 23, 2006

Spooky music from the Ether

I saw the documentary Theremin: An Electronic Odyssey with Bunny today.

The Theremin is the first all-electrical instrument made (in 1919) and is the only instrument (as far as I know) that does not require any physical contact to play, just near proximity.

In watching the documentary, I was struck that not only does the Theremin sound similar to a violin, but a melancholy, soulfull violin (with an electronic bent) and as such, it seems perfectly reasonable that it would be invented in Russia. But that may be because most of the music presented was melancholy to begin with (about the only exception being Good Vibrations where it wasn't the only instrument, or even lead instrument).

But the movie was as much about the Theremin as it was about Leo Theremin, the inventor. Both Lenin and Stalin were intrigued by the instrument and it's that intrigue that probably let him tour the States in the late 20s, only to be later kidnapped back to Russia and be forced to work with the KGB while in prison (possibly making electronic spying devices).

It was also interesting to note that Robert Moog (inventor of the Moog synthesizer) got his start in high school making Theremins.

Bunny also had several albums of Theremin music, but unfortunately has no way of actually playing the records, they being 78s. Nor do I have a way of playing such records. Pity, because it would be interesting to hear the music.

Sunday, September 24, 2006

Some more ramblings on editing HTML

Between the expanding scope of the Unofficial Official Company Blog (and yes, I realize I haven't updated that much since the Official Launch, but this past week at The Office has been rather horrendous) and discussion with Bunny about how I create entries (the physical act of writing, not the fact that I buy my ideas wholesale from a store in Schenectady) has me worrying over the mechanics of writing entries yet again.

Now, while I'm willing to suffer the limitations of my blogging software (and lament about them from time to time) I don't think others will. When I thought that I might be the primary author for The Saltmine Chronicles the rather poor state of hypertext editing wasn't much of an issue. But given Smirk's intent to have other people make entries (or comments—I'm still not entirely sure what he wants; heck, I don't think even he knows entirely what he wants) is another matter entirely.

The main problem is maintaining well formed HTML in the face of human editing. When I make a mistake, I can go in and fix the mistake, but that currently involves editing the entry on the server and regenerating the main page (if the entry in question appears on the main page). The workflow for mod_blog doesn't have much support for post-editing of entries (I think—and you would think that as the author of the software in question I would know, but there are some features that I just don't use that often), nor for queuing entries for later editorial aproval (a feature I never really thought of, to tell the truth).

I may have to switch The Saltmine Chronicles over to a more mainstream blogging tool, which is something I'd hate to do, and it's only partially due to having to admit defeat. One feature I haven't seen is the support of new entries via email (which is my preferred method of creating new entries), since my email client supports drafts, it rarely crashes and if it does, I can salvage anything I was editing at the time of the crash. No so if I have to edit in a browser (never mind that I can't stand editing in a browser). And one other small reason I don't like other blogging engines—I have to learn yet another templating system.

But if I have to switch, I have to switch.

And that still doesn't fully fix the editing problems though—it's endemic to blogging and most blogging editors seem to lie between “you write the HTML yourself” and “you never see HTML so you're stuck with what we give you.” And none of them look like they would work well with mod_blog (for example—they assume too much about tags, which are free form in mod_blog, not limited like in every other blogging system I've seen).

This is a hard problem.

Monday, September 25, 2006

It's magic!

One of our client's customer's site was being used for a phishing scam. The site itself had nothing to do with the scam, it's just that someone had uplaoded some pages that looked like a PayPal login screen. Our client wrote in:

We rec'd a call saying that a phishing scam was using XXXXXXXXXXXXXX (a site on XXXXXX) This is the email they rec”d:

Ticket from our client

And yes, the email was a typical phishing email. I had some exchanges with the client. It ended thus:

Did you already remove the problem files? If not, what should we do? And what can we do to prevent this in the future. I'm sure the client didn't know what was going on.

Response from our client

I didn't remove the files, as it's inaccessible anyway due to the Apache configuration. If you want, I can delete them.

As for prevention, remind the client not to let out their account information. Another thing to check is for insecure CGI scripts (PHP, etc) that might allow someone to upload such items.

My response

I think it's best to remove the infected files to prevent the site, or the server, from being blocked or placed on any blacklists or anything. Thank you.

Client respnose

“Infected files?”

These are not “infected files”—they contain no virus. They don't propagate on their own. They don't infect other files (I'm also tempted to question their reading comprehension, as I clearly stated the files were “inaccessible due to the Apache configuration” but I won't). These files were placed there by someone.

Does no one truely understand this stuff anymore? Does anyone read anymore?

Sigh.

Update a few minutes later

Why am I being so harsh?

I think it's because the client that wrote in is a web design and hosting company (and we do some of the hosting for them). If it was the end customer, the one who's site was being used, that wrote in, I would be more forgiving (or rather, I'd roll my eyes, fix the problem, and go on). But for a company that does web design? That also hosts some of their sites? Them, I would expect a bit more from.

In the end, I rolled my eyes, fixed the problem, and then went on to make a post about it.

Tuesday, September 26, 2006

“Am I done yet?”

Blarg!

That certainly took a long time.

I just finished a long article aimed at our customers into partially troubleshooting why their site is down (most times it's because of network issues between them and us) and it took entirely too much time to write.

Then again, I wasted a bunch of time making that XXXX table at the end. And I still can't figure out why I can't get the right margin larger than it is.

Ah well.

I'm also finding it amusing that Google AdSense is advertising Frontpage on the site.

Wednesday, September 27, 2006

Frustration

One of the things that really pisses me off is, when trying to troubleshoot one problem, I'm forced to sidetrack and solve a totally unrelated problem that's preventing me from troubleshooting the first problem.

This came up today at The Office. We received a bunch of equipment today, a Cisco router, some Cobalt RaQs. I also needed to get a managed power device configured for the Data Center Core Room. All these devices can be configured via a serial port. This is something I've done plenty of times before.

Only I can't talk to the Cisco router.

So I try one of the Cobalt RaQs.

Can't talk to it.

Try another Cobalt RaQ.

Can't talk to it either.

Try the managed power strip.

Again, can't communicate with it.

Okay, maybe the cable is bad. That happens.

Attempt to find a replacement cable.

Now, the cable I have is female-female. I have a male-male adaptor that I use, depending upon what I'm connecting to.

I can't find another female-female cable.

Male-male cables, yes.

Male-female cables, yes.

But not a duplicate of the one I have.

So my initial problem (testing the new equipment) is compounded by another problem—either the cable is bad, or the serial port is bad.

It is times like these that get me upset.

(Turns out it's the serial port on my workstation, which could either be a loose connection inside, or the serial port itself is completely burned out.)

Thursday, September 28, 2006

The “S” in “SMTP” is slowly going away …

Lots of major ISPs block outbound TCP port 25. Don't you support Port 587 (the message submission port)?

Customer in a support ticket

Really?

Oh … um … looky there.

Basically, it's running a restricted version of SMTP over port 587 and from what I can find, it's only been in the last two years or so has it been widely implemented, although this is the first I've heard of it.

Interesting. Looks like I'll be reading up on this.

Friday, September 29, 2006

Notes on a conversation between employer and employee about the relative organizational skills of various people in The Office

“Ah, so you found it! Great!” said Smirk. I was standing outside, behind the building looking for a document that he dropped when leaving the office.

“Yup, have it right here in my hand,” I said into the cellphone. “And I'll put it … um … ” Thoughts of Smirk's office danced in my head. And it wasn't a pretty sight. “I'll put it on my keyboard.”

“Yeah,” said Smirk, “don't put it on my desk. I'll never find it.”


“… with our use or exploitation of any Posting.”

You may not use any computerized or automatic mechanism, including without limitation, any web scraper, spider or robot, to access, extract or download any Content from our Service, and as an express condition of your use of our Service, you warrant to us that you will not use the Service for any unlawful purpose or purpose prohibited by this Agreement. If you violate any part of these Terms of Use, your permission to use Content automatically terminates and you must immediately destroy all Content in your possession or under your control.

DADA.NET™ SERVICES—TERMS OF USE (emphasis added)

So … I can't use a computer with a web browser to access the site?

Guess not.

We require all our users, including Registered Users and Subscribers, to respect all copyrights, service marks, trademarks and other intellectual property rights of ours and others. On notice, we will act expeditiously to remove Content that infringes the copyright rights of others and will use all reasonable commercial efforts to deactivate and disable access to our Service of anyone who uses our Service to repeatedly infringe the intellectual property rights of others and if you wish to send us such a notice, please use the following procedures: If you believe our Service contains elements that infringe your copyright or the copyright of anyone else, please click on the following link to go directly to our Notice and Procedure for Making Claims of Copyright Infringement and follow the procedures that are described. Of course, if you believe any Content violates any of our Terms of Use, please send us a message about it at mobi.us@dada.net. We cannot guarantee we will respond to your message and we reserve the right to take or refrain from taking any or all steps available to us once we receive any such message.

DADA.NET™ SERVICES—TERMS OF USE (emphasis added)

And there's no link to be found on that page.

Clue-by-four anyone?

If you have downloaded Content, it is your responsibility not to destroy or damage such Content because we are not responsible if any Content you download is lost, destroyed or damaged. We have no obligation to restore your Content if that happens or to maintain records for the purpose of our or your doing so and that is solely your responsibility. Once Content is transferred to your portable device as permitted, you may not copy, distribute, transmit or transfer it from that portable device to any other portable device or media. You are also prohibited from sharing downloads, enabling or allowing the sharing of downloads, with anyone else. Our Community Requirements contain additional rules, requirements and guidelines concerning your obligations with respect to Content, our Communities and the Service.

DADA.NET™ SERVICES—TERMS OF USE (emphasis added)

Now I'm beginning to think that English isn't their first language (then again, lawyers are not known to speak any known human language to begin with).

The rest of the document is your standard “we don't own your content but we can exploit it, resell it, use it, abuse it, or anything else we can think of without remuneration on our part” and “we don't really guarantee anything on this site will work at all” but the parts I quoted—quite clueless about this stuff.

Sheesh.

I'm also having a difficult time finding out what the site actually does or why anyone would sign up—the site itself is very unwieldy and horribly confusing.

Then again, given their Terms of Use, it's no wonder.

Then there's this beauty from their requirements page:

You acknowledge and agree that Postings from you, from your wireless or mobile device or from your User ID are your responsibility and therefore, you, not us or any other party are entirely responsible for the consequences of your Postings. We assume no responsibility for Postings, their deletion or any failure to store, transmit, receive, make available, display, forward or deliver Postings in any manner, timely or otherwise, even if due to our Service or Website, so don't rely on us, our Website or our Services for any Posting. With respect to each and every one of your Postings on our Website or in connection with our Services, you agree, represent and warrant to us that:

(a) you are placing your Posting in the public domain without reserving any rights or further control over your Posting or its use. You specifically, unconditionally and irrevocably authorize us, at our option, to use your Posting, in whole or in part, throughout the universe, in perpetuity in or on any and all media, now known or hereafter devised, discovered or developed, whether alone or together, in combination or as part of other information, content and/or material of any kind or nature, without compensation, notice or any accounting or accountability to you or anyone else;

(b) if your Posting incorporates a name, logo, brand, service or trademark, voice, likeness, image or other distinctive identification or reference to any person, firm or enterprise, you have the right to place that Posting in the public domain and grant us the right to use that Posting as described in our Terms of Use, including these Community Requirements;

(f) neither we, nor any other party, shall be required to pay or incur any sums or compensate you or any person, firm or enterprise as a result of or in connection with our use or exploitation of any Posting.

DATA.NET™ SERVICES—OUR COMMUNITY REQUIREMENTS" (emphasis added)

See? Exploitation.

I actually enjoy reading these Terms of Services, privacy statements and disclaimers because inevitably, they sound like they're written by people who have no clue how the Internet or even computers work. They even state all the evil things they'll be doing, like installing spyware, selling your information, and restrict what you can do on your own computer.

Clue-by-four.

Make that a clue-by-six.

Saturday, September 30, 2006

“In practice … ”

One of the services we offer is Internet connectivity and we have a few clients in this very building, and one of said building customers is freaking out because their firewall (which is managed by a third party) is blocking (and reporting as much) traffic from our network and of course such activity is causing problems on their network. I doubt it's our network causing the problem since:

  1. They are an exclusive Microsoft Windows shop.
  2. They have about 100 Microsoft Windows desktop computers in their offices across two floors.
  3. Their network is flat. As in, one logical segment.
  4. Microsoft Windows, espcially if you have file sharing enabled (aka NetBIOS), tends to be very chatty on a network segment (lots of broadcast packets looking for other machines with which it can talk to).
  5. It is my understanding that the majority of users on their network use a web-based application.
  6. This whole mess is behind a single firewall, which is connected to our network.

My diagnosis is that periodically, their firewall gets swampped with broadcast packets (even if the machines send out a broadcast at random intervals, given enough machines and time, you'll get a brief broadcast storm) or with a lot of people making requests with the web-based application they use (a similiar situation).

I was in their office yesterday with the network analyzer, and plugging it into a port on their switch revealed that about 33% of the traffic is broadcast, with peaks up to 80%. On a flat network, each station (and this includes the firewall) receive all the broadcasts.

This is not good.

But, seeing how they've even outsourced their network to a third company (and not the one that makes the firewall) fingers are being pointed everywhere, so that's why I'm in The Office at midnight on a Friday (technically, Saturday) trying to segment off their traffic.

You see, our network is rather flat at the moment. Not as flat as our customers, nor with the number of machines, but still, they're seeing some of our traffic (not a lot mind you—I've seen their logs) but enough to freak them out.

Now, we have managed switches, and it's easy enough to create a VLAN to isolate traffic (I've done so to a limited degree) but while it's easy on an individual switch, it's not something I've done between network switches, although in theory I know how it's done.

In theory you program the ports on either side of the connection that it's a tagged port (or “trunked”—I've seen both terminology used) and that Ethernet packets being sent down this cable are to be tagged with the appropriate VLAN they belong to.

So I spent much of Friday afternoon double checking my network maps and making sure I knew which ports of which switches had which network traffic, and planning on which VLANs go where.

I figured if I'm going to do this for one customer, I might as well go ahead and do it for everything, since the next chance I get to do this might be quite a while.

Physically, they're plugged into a switch, which is then plugged into a switch/router. If they were plugged directly into the switch/router then I would just isolate that port and be done with it, but since there's another swith between them and us, I have to set up the trunking port (or tagged port, or whatever the terminology is).

Three hours later, and it's not working. I can't get the switch and the switch/router to communicate when using VLANs.

Turn off the VLAN sharing and they talk fine.

And I think it has something to do with the terminology problems I'm having. The switch talks about tagged and untagged ports. The switch/router talks about having trunks. I'm not entirely convinced they're the same thing.

So for now, things are status quo.

Update later today

I talked to Smirk, and he suggested I just go ahead and plug that customer directly into the switch/router and isolate their port, and do that on Wednesday when I'm in The Office.

So, why didn't I do the simplist thing that could possibly work?

Well … because the way I originally wanted to be done would technically be better, as it keeps network traffic from straying.

Sunday, October 01, 2006

“Um … what was I thinking?”

One of the problems with writing entries after the fact (like I'm doing now—this being written on October 4th) is that sometimes I can't remember what exactly I wanted to write about, unless I took some notes, which in this case, I didn't.

Next time, I'll have to take better notes.

And plan on keeping up to date on this thing.

Monday, October 02, 2006

“We're afraid of getting blown up.”

“That's where we kind of agree with some of the people who've criticized our show,” Stone says. “Because it really is open season on Jesus. We can do whatever we want to Jesus, and we have. We've had him say bad words. We've had him shoot a gun. We've had him kill people. We can do whatever we want. But Mohammed, we couldn't just show a simple image.”

During the part of the show where Mohammed was to be depicted—benignly, Stone and Parker say—the show ran a black screen that read: “Comedy Central has refused to broadcast an image of Mohammed on their network.”

Other networks took a similar course, refusing to air images of Mohammed even when reporting on the Denmark cartoon riots—claiming they were refraining because they're religiously tolerant, the South Park creators say.

“No you're not,” Stone retorts. “You're afraid of getting blown up. That's what you're afraid of. Comedy Central copped to that, you know: ‘We're afraid of getting blown up.’”

Via Instapundit, ABC News: Secrets of ‘South Park’

Another problem with writing entries after the fact, even with notes, is forgetting about the notes. I had ment to blog this last week.

Sigh.

Anyway, I have respect for the creators of South Park—they go after everybody eventually, even if it means loosing a cast member (and they were aware that it was a possible outcome).

It also doesn't hurt that the show is uproariously funny.

And yes, they do have a point—criticise Islam and deal with death threats (even The Last Temptation of Christ never garnered its author or filmmakers a governmental and religiously sanctioned death threat).


Damage. Censorship. What's the difference?

The Net sees censorship as damage and routes around it.

John Gilmore

One of the services we offer is a manged firewall, and of course we have a few customers that have taken us up on this offer. Smirk called (Friday? Saturday? I forgot to take notes) saying that one of our customers wanted us to block access to MySpace. At the time I told Smirk I'd have to think about how to go about doing that, and when he called today asking for an update, I had to go ahead and do it.

The problem is though, that this is a stopgag measure. As it was, I just blocked access to MySpace IP addresses (found courtesy of host and whois) but what of the future, if (or when) they change IP addresses? Okay, we can fix that, but that's a reactionary response, not proactive.

Well, I could extend the fix through DNS—they use our DNS servers and I'm sure it's possible to put in a zone file such that anything at MySpace resolves to nothing (or say, to 127.0.0.1) such that if MySpace does change IP addresses it's still inaccessible unless you happen to know the new IP address.

So I could check the IP address periodically (say, every hour or so) which would probably work well.

But that still leaves the Google cache—I certainly can't block Google now, can I?

Okay, just blocking the IP address will probably suffice for this customer, and it takes someone with enough technical savvy to avoid these tactics, but you get an idea of just how hard it is to block a site.

Then there's the whole issue of companies treating employees like children but I won't get into that right now.

Tuesday, October 03, 2006

Image from a webcam I found at The Office and took home to play around with

[Captain Napalm at The Home Office]

Smirk got this D-Link DCS-900W Wireless 2.4GHz Internet Camera to monitor the Data Center, although we already have a security webcam in the Data Center so this little beauty has been sitting around for quite some time.

So I brought it home last week to play around with it. It was pretty easy to set up—just plug it up and go. The image quality is okay as far as webcams go.


“Just one more round … ”

Oh, and one reason why I'm late with the updates here?

This silly thing.

Yes, I'm horribly addicted.

But then again, so is Smirk (muahahahahahaha!)

Wednesday, October 04, 2006

It must not be his area of expertise

It was a busy day today and I almost got everything done I wanted to today—the only thing I didn't get done was configuring the Cisco router that was on my desk, because I can't get into the device to configure it. It's not that my serial port doesn't work—rebooting my workstation seems to have fixed that problem—it's got a password on there that I don't have.

I've tried following the recovery procedure but I don't get the rommon prompt, but something that appears to be even lower, like a simple resident debugger where you can change CPU registers, flip bits in memory and set breakpoints.

That's not rommon.

I called G, our Cisco consultant about the problem. “Did you press Ctrl-Break?” he asked.

“No, that does nothing,” I said, hitting Ctrl-Break repeatedly. “I'm not using Windows, G.”

“Oh, that's right,” he said. “You use that Linux stuff.”

“So what does Ctrl-Break actually send?” I asked. “I can then get minicom to send it.”

“Um,” said G, “I don't know what it sends.”

Sigh.

A Ph.D, and he works with computer communications for a living, and he doesn't know what Ctrl-Break under Windows send.

Sigh.

I suspect that it sends a BREAK character (which isn't a character per se but a condition created on a serial line) and that's what I'm sending from minicom and getting dumped into this debugging monitor.

“Can you hook it up to a Windows box?” asked G.

I took one look at the only Windows box in The Office, which is in Smirk's office. “Nope. But I'll take it home and try it there.” I have access to some Windows boxes at home, and I figure I can humor G here.

Thursday, October 05, 2006

Bad secrets

I humored G.

And as I suspected, I need to send a BREAK character, which I was originally doing.

Without getting into rommon, there's no way to recover or reset the password.

Sigh.

Update on Friday, October 6th, 2006

I think I found the solution.

Woot!

Friday, October 06, 2006

Your Friendly Neighborhood Police Officer

It's 1:30 am and I'm driving Gregory home. We had just finished having dinner at the local IHOP and we're headed west along Lake Worth Ave when I notice something flashing in the rear view mirror. I look up.

The police.

Behind me.

Requesting via its lights to pull over.

Oh XXXX! I'm going to jail.


My birthday is in January. Between December 2004 and March 2005, my driver license expired, car registration expired and we moved from The Facility in the Middle of Nowhere to Casa New Jersey.

So it was a very busy time for me.

I also do not suffer bureaucrats, and the thought of dealing with the DMV wasn't high on the list of things to do.

So …

My car registration lapsed.

I did send in a check through the mail, but apparently, the check is still in the mail (although I was able to renew my license online).

So, the car registration is a year and a half overdue.

The last time I was pulled over for an expired registration, eleven years ago, it was nine months expired and it required an immediate court appearance (of course, that time, I also had no proof of insurance and the car wasn't even in my name).

A year and a half though?

I'm expecting a trip to the Friendly Neighborhood Police Station.

XXXX!


“Sir, do you realize your tag has expired over a year ago?” asked the Friendly Neighborhood Police Officer.

“Yes,” I said. “I just … haven't gotten around to renewing it.”

“Well,” the Friendly Neighborhood Police Officer said, “I pulled you over because since [some street that I don't recall now] I've seen you swerve over the lane four times.” Ouch! “Where were you coming from?”

“We just finished eating at the IHOP at … ” And at that moment I achieved what many Buddhists spend years training for—that perfect Zen moment when all thought is vanquished. “Um … um … ”

“Congress,” said Gregory from the passenger side.

“And … um,” I said, pushing through the perfect Zen moment, “… Military!”

“Okay,” said the Friendly Neighborhood Police Officer. “And before that?”

I was still struggling through that perfect Zen moment. “I picked up my friend from the Dirty Dwarf.” A local pub. “Um … I … um … wasn't there. I … just picked … him,” and I pointed to Gregory, “up. From ‥ there.” Great, I thought. I sound completely drunk!

“Have you had anything to drink?” asked the Friendly Neighborhood Police Officer.

“Um … no.” Aaaaaah! I'm not drunk! Really!

“So I need your driver's license.”

“Here you go, and proof of insurance,” I said, handing these over. “And the … um … registration.”

“The expired registration,” said the Friendly Neighborhood Police Officer.

“Yes … the … expired … um … registration.”

The Friendly Neighborhood Police Officer heads back towards the cruiser.

I'm seeing money fly out of my bank account.

I'm seeing myself in the back of a police cruiser.

This is not good.

XXXX!


It's most likely 1990. Or 1991. It's 1:30 in the morning, and I'm driving. With me are three friends. I'm doing 55 in a 35 zone when I get pulled over. It's the first time this has happened to me.

And back then, I achieved that perfect Zen moment. Every answer was stuttered. Nearly incoherent. Fumbling with the wallet. Very nervous. Very horrible experience.

Amazingly enough, I just get a warning.


A few minutes go by. The Friendly Neighborhood Police Officer comes back. “I'm not going to run you through the sobriety test. Your eyes are not bloodshot and I don't smell alcohol.” Thank you! “So I'm just going to give you a warning.” What? He's handing back my license, insurance card and expired registration. “Just get this taken care of, okay?”

I'm not getting arrested?

<blink>

<blink>

I'm not getting a multi-thousand dollar fine?

<blink>

<blink>

I'm not getting a written warning?

<blink>

<blink>

I'm just getting a verbal warning?

WOOT!

“Thank you,” I said. “And yes, I'll get this taken care off. Thank you.”


As we're driving away, Gregory convinces me that I should blog this.

Nah. I doubt I will.


A pie in my pocket

Between playing with Cisco routers and being pulled over by The Man, I decided to try my hand a making Alton Brown's Pocket Pies, only instead of mangos or chocolate, filling them with curry chicken (lunch type stuff).

It wasn't difficult (a bit on the messy, sticky side, and not at all perfectly round); I ended up with 10 curry chicken pocket pies and two filled with appricot preserves (since I ran out of curry chicken).

I took two of the curry chickens and one of the appricot preserve one for lunch. Quite tasty if I do say so myself.

Saturday, October 07, 2006

“A Møøse once bit my sister …”

There's nothing more enjoyable than introducing Mønti Pythøn ik den Høli Gräilen (vulgarly known as “Monty Python and the Holy Grail”) to someone that's never seen it (in this case, Bunny).

In my circle of friends, that's not a large group of people (at this point, I think there's only one other friend that hasn't seen the film).

Less known, however, is the original plotline. In that, King Arthur & Co. are questing for the Holy Grail throughout the ages and in the end, it turns out that the Holy Grail is in a Catholic Church, which God can't enter because he's Protestant …

Sunday, October 08, 2006

Now you cooked them, then they're gone

I baked a dozen pocket pies on Thursday/Friday. I took three (two chicken curry, one apricot preserves) to work on Friday. Today, there was one (a chicken curry) left.

Looks like they went over well.

Monday, October 09, 2006

Elevator pranks

Since it's been at least ten years, possibly twelve, I'm guessing the Statute of Limitiations has kicked in and I'm free to discuss such matters now, although to be on the safe side, I won't mention my co-conspirators in this.

Anyway, over a decade ago, on March 31st, some friends and I found some crime scene tape somewhere on the FAU campus. Realizing a good opportunity when it arrives, we took it upon ourselves to festoon the ground floor elevator in the Computer Science and Engineering Building with said tape. We also took a roll of masking tape, and placed a body outline in said elevator, only with the hand sticking out of the door. One would have had to get off on the second floor to see the matching tape outline of the hand.

It was a sucess for as long as it lasted, as we did scare the cleaning crew, but alas, it was cleaned up fairly quicking the next morning, April 1st.

I was reminded of that when I saw this elevator and thought, man! That's much cooler than what we did!.

Although, that looks like it took some time to plan and execute.

Tuesday, October 10, 2006

I guess this means no more living in a Gibsonian novel …

At the 11th hour, Senate Majority Leader Bill Frist managed to attach his anti-gambling bill to the Ports Security Bill and both bills were subsequently passed through the Senate.

The bill now only needs to be signed by President George Bush to become law, and it is widely expected he will sign it before congressional elections early in November to gain support from the political right.

There are those that believe the Republican moves to restrict the accessibility of payments to online gambling institutions is more likely to be due to a desire to restrict the flow of money to overseas-owned gambling institutions, many of which are publicly listed on the UK Stock Exchange.

Anti-Online Gambling Bill Approved by Congress

I received a call from R today, saying he got my message (about something else unrelated to this entry) and to ask if I had been following recent gambling related legislation. I told him no, I haven't, so he related the news (see above) to me.

Normally, this would elicit another “government can't tax it, so let's ban it—typical government” comment from me before going on with my life, but in this case, it does affect me. I've mentioned once or twice that I help manage some servers with hundreds of gambling related marketing sites, and if this is actually passed into law and has any level of enforcement, it looks like R may be closing up shop in 270 days (number of days sites have to become compliant with the new law), since the majority of his income is from hosting said hundreds of gambling related sites.

Sigh.

I'd hate to see it go, since despite a few problems, it's not a hard job and it makes for some nice supplimental income (and some good stories; I also doubt R makes much from the hundred or so non-gambling related sites he also hosts).

But we'll see how this situation pans out in the coming months.


“So, does that mean blogs4god.com is a tool of Satan?”

Should teenagers and others in the Church express themselves to the world through blogs? Because of the obvious dangers; the clear biblical principles that apply; the fact that it gives one a voice; that it is almost always idle words; that teens often do not think before they do; that it is acting out of boredom; and it is filled with appearances of evil—blogging is simply not to be done in the Church. It should be clear that it is unnecessary and in fact dangerous on many levels.

Let me emphasize that no one—including adults—should have a blog or personal website (unless it is for legitimate business purposes).

Via metaphorge, Blogs—and God's Youth

And from over-reacting government to over-reacting religion, we have this—blogs are the work of the Devil (unless it's work related, then it's God's work).

Sigh.

Wednesday, October 11, 2006

I remembered to bring everything else to the office …

I'm getting ready to configure the router when I realize—I left the serial cable at home!

Sigh.

Let's see if I can work with what I got …

Update about an hour later …

Yup, I was able to configure the router with what I had. A bit inconvenient to work with, as the router had to be sitting on top of my workstation, but yes, I was able to finally get it configured.

Thursday, October 12, 2006

Well, there goes that idea for a million bucks

Netflix is sponsoring a contest to improve it's recommendation engine and in doing so, it releasing 480,000 (scrubbed) customer records to help contestants create better recommendations.

I heard about this a few days ago and I've been mulling over the possibilities, and while I have little experience in writing such engines, that also means I have less preconceived notions of what is and isn't possible, which means I might have a breakthough method that others working on this problem professionally might not even conceive of.

I mean, it could happen, right?

My idea (and yes, I'm giving it away here for reasons that will become apparent in a bit): Netflix allows one to rank genres (for instance, I've ranked “documentaries” highest, followed by “comedies” and “science fiction/fantasy” (in no particular order). My thought—find other people who have ranked genres the same as I and see what they like. I'm also assuming that genre “influence” might bleed over, such that I would prefer a humorous documentary over a more serious one.

For instance, Alice has ranked “science-fiction” highest, followed by “horror.” Bob has ranked “science-fiction” highest, followed by ”action & adventure,” therefore, Alice would probably enjoy “Alien” over “Aliens” as the former is more horror based than the action based latter. While both are classified as “science-fiction” by Netflix as the “primary genre” each has a different “sub-genre” that are picked up by viewers (most likely subconsciously), so Carol, who has ranked genres similarly to Bob would probably prefer “Aliens” over “Alien.” And Dave, who ranked his genre preferences as “science-fiction” and “drama” respectively would probably like “Alien3.”

Well, that was the idea.

I signed up, and downloaded the two gigabytes of data and was disappointed.

You see, they scrubbed the customer data so much, all you get basically, is that on such-n-such a date, customer number so-n-so rated this-n-that film four stars.

That's it.

Okay, you get a list of the 17,000 films and when each customer rated said film, but that's it. No genre information about either.

Granted, I could go in and find the Netflix classification on each film, then try to suss out the genres each customer probably likes, but frankly, that's a whole lot of work for some unreliable reconstruction of data, so I can't even test my idea with any confidence.

And what's to say that Netflix (or rather, Cinematch™) isn't doing that already?

So then I decided to see if I could find anyone working on this contest and blogging about it. In my limited (two) searches, I've only found Harry Chen to have any comments on the contest worth reading, and he makes a point I didn't consider:

Although I have no evidence to prove my theory, but I believe Netflix's user rating data assumes that user ratings came from the same Netflix account were made by a single person. I believe that's not true for most of the Netflix accounts. Many families only subscribe to a single Netflix account. In my family, my wife and I share a single account. We both actively manage this account and rate movies. It's inappropriate to consider our combined ratings as the ratings of a single person. Just because I like action movies and my wife likes comedies, one can't conclude with full confidence that we as a single Netflix account user like both action movies and comedies.

People Rent Movies for Others to Enjoy

Another problem associated with a single account usage is that a user who rents all the movies may not be the same person who actually watches them. For example, parents may rent movies on the behaves of their children. While they rent movies, but they may not watch all of them. In fact, parents may not even enjoy watching them at all. If a parent rents a half dozen of cartoons and 1-2 action movies a month, should the recommendation engine automatically assume that cartoons are the user's favorite? What if the user continues to rent cartoons but at the same time rate those movies with very low scores (1 out of 5 stars), is cartoon still the user's favorite movie?

Why Netflix movie recommendation doesn't work

That might skew the results a bit.

Also, in discussing this with Wlofie, he felt that the single ranking was too limited. Why did I rate, say, “Plan 9 From Outer Space” ★★★★? It's certainly not a good film (worth, maybe, maybe ★) but it's one of those films that are so bad that's it's actually fun to watch in a MST3K way. So having multiple rankings per film can lead to better recommendations.

But by making the ranking system more complicated, it means less uers will bother to rank a film (and really, Netflix has made it dead simple to rank a film—about as simple as you can get it). Heck, even I didn't bother ranking films when I first started at the site. Making it harder means less data. Maybe better data, but does it help if there's so little? (for reference, Wlofie has yet to rank genres he likes at Netflix, and perhaps that's one of the reasons why it scrubbed—not enough people have ranked genres).

It would have been nice to have additional data from Netflix, but given privacy concerns, I can see why they might have scrubbed as much data as they have. Ah well. Perhaps I'll mull this over a bit more and play with the data a bit.

Friday, October 13, 2006

Me? I'm not superstitious …

Despite two near traffic accidents on the way to work, this hasn't been a bad Friday the 13th. It's been a quiet day at The Office and I spent time moving the corporate blog to a new server and domain name. About the only bad thing I could report happened to be Smirk and I having a difference of opinion on what an “enterprise system” is.

So, I'm happy to report that noth—…øääää…

Saturday, October 14, 2006

Alphabet soup and an inability to type

DSL, DSU, it's all alphabet soup, and I find that it's easy to get confused (much like I'm confused typing this entry—I can't type for some reason) about what's really going on (man, I really can't type for some reason).

Sunday, October 15, 2006

Note for myself

[Still can't type. I'm actually typing this on (and the the previous entry) on Tuesday the 17th and I'm finding it really hard to type. Must have had something to do with the little incident Monday evening. Hopefully this inability to type will pass.]

Just a note for myself—make sure the network cable I'm using is the proper type. It's easier to use the Fluke to check the cable than it is to swap out a network switch.

Monday, October 16, 2006

“And this is why I use these keyboards …”

This video tests the myth that a Model M keyboard can be used to kill a man and you can still type on it afterwards.

Model M vs Zenith Bull—Keyboard Carnage

While the proper designation is the Model M keyboard, I know them as the “IBM PS/2 keyboard” and it's the only keyboard I use on my computers.

And yes, they are very tough.

About the only keyboard tougher than the IBM PS/2 keyboard is the original IBM PC 84-key keyboard—forget the high impact plastic, this keyboard was made of metal!

But alas, you can't use those on modern machines, so the next best thing are the PS/2 keyboards.

Tuesday, October 17, 2006

Building blocks

After spending several hours wiring up a few customers to our network, Smirk and I ended up at Denny's (funny how no one ever sets out to go to Denny's, but inevitably end up there) and the topic of Coral Castle and how Edward Leedskalnin, weighing all of a 100 pounds, could build such a structure by himself (where some of the blocks used weigh as much as nine tons).

I mentioned to Smirk that I came across a possible technique which basically uses leverage, counter weights and pivot points but that I didn't remember the actual details. So imagine my surprise when I found a video of the technique while reading Jason Kottke's blog.

It was then that I remembered that I mentioned this technique two years ago.

So there you go Smirk—a way that Edward Leedskalnin could have built Coral Castle (secret message to Spring: maybe this is it, and maybe it's not).


Something else I might need to code around

For those that read the LiveJournal feed of this site, I apollogize for sending a flood of entries your way.

It's something I have to remember—that the <title> element of the RSS feed cannot contain named HTML entities since RSS is messed up that way. I need to use the numeric versions.

What happened is this—I titled an October 7th entry “A Møøse once bit my sister …” and used &oslash;&oslash; in the title. The LiveJournal RSS parser rejected the feed because of that. And because of that, my entries since the 7th haven't been showing up.

I just became aware of the situation and fixed the title (by replacing &oslash;&oslash; with &#248;&#248;) which means a sudden influx of twelve (or thirteen if this gets in with the current batch) entries.

Sorry about that.


Notes from a conversation about various and sundry things between myself and Smirk

“We need to set up a server running Cacti on SXXXXXX's network because they're having major network problems. I put the Fluke on their network and it found broadcast storms up the wazoo.”

“SXXXXXX? Are you sure it wasn't NXXXXXXXXXX? They're the ones with the networking problems.”

“Nope, it was SXXXXXX.”

“Wait! Let me guess … they run Windows?”

“Full Windows shop. Flat network.”

Of course!

Wednesday, October 18, 2006

One more Bill Watterson interview

Q: What led you to resist merchandising Calvin and Hobbes?

A: For starters, I clearly miscalculated how popular it would be to show Calvin urinating on a Ford logo …

Via kisrael.com, Fans From Around the World Interview Bill Watterson

Woot! Another Bill Watterson interview! The interview seems to be related to the release of The Complete Calvin and Hobbes, the collection of every single “Calvin and Hobbes” strip every published.

Thursday, October 19, 2006

“But would you veto it if the Democrats had control of the Houses?”

A few days ago I was having a semi-political conversation with some friends and the topic of executive power came up. One of my friends said that either the Legislative or Executive Branch be given certain powers (I don't recall which branch by the way) and countered with: “Okay, your party has that power. Do you trust the other party with that power?”

My friend said I had an excellent point.

With that, I wonder if President Bush will feel safe if the Democrats gain the White House in 2008? And more importantly, will the Democrats repeal the law in question? (link via News From Me)

Friday, October 20, 2006

Firewalls

It's been a firewall type of week this week.

Today I'm configuring the fifth firewall for Smirk's home network, allowing him to work from home. Let's see … the first two attempts were Cobalt RaQs that I couldn't get working. The third was a 1U PC that sounded like a jet airplane and the fourth was another 1U PC that sounded more like a Cesna, but was still too loud.

This latest one is yet another Cobalt RaQ but since it's already in sevice as a firewall, it'll pretty much be good to go (and it's being replaced with the PC that sounds like a jet airplane since it'll be sitting in an equipment room for one of our clients).

Saturday, October 21, 2006

Pink flamingos and burrowing owls

The plastic pink flamingo may go the way of the dodo bird.

The iconic lawn ornament is on the verge of extinction after 49 years of existence.

Union Products Inc., the Leominster maker of the kitschy rendition of the long-legged tropical creature, is scheduled to shut down Nov. 1.

Not a leg to stand on: Plastic flamingos face extinction

Wow.

An American (if kitschy) icon is going away.

It reminds me of an idea I had. I wanted to run for the FAU Student Government under the Silly Party, given the antics the Student Government was going through at the time. My plan was, once elected, to buy thousands of pink flamingos and use them to form the FAU logo on the lawn in front of the Administration building. After a month or so, I would then sell off each pink flamingo as “an Official Florida Atlantic University Pink Flamingo Logo Pink Flamingo” (yeah yeah, I know—the mascot of FAU is the burrowing owl. Details, details).

It never got past the idea stage (and I never mentioned it to anyone) and now—now it'll never happen under any Student Government.

Pity.


Parts unknown

A few weeks ago Spring lamented that she was jonesing for a trip, any type of trip. So last week I announced that we were going on a trip.

“We're going on a trip next weekend,” I said. And by “weekend” I meant Spring's weekend, which extends to Monday.

“Cool,” she said. “Where to?”

“I'm not saying,” I said. “I want it to be a surprise.” Because, you see, I wanted the destination to be a surprise. “But we'll be gone Sunday and Monday.”

And so tomorrow morning, well, late morning and quite possibly early afternoon, we're leaving for parts unknown.

Well, unknown to all but me.

Muahahahahahahaha!

Sunday, October 22, 2006

Leaving for parts unknown

We're leaving within the hour to parts unknown.

At least this way, you're getting fair warning that there might not be a post for a day or two (it depends if we can find an open wireless hot spot at our destination).


On the Road

We're currently in Lake Wales, Florida, just a short (very short) distance away from our final destination. Along our very circuitous route (I-95 south to I-595 west to US-27 north) we saw some interesting sights—the sea of grass, burning of sugar cane fields, Lake Okeechobee, Gatorama, the Placid Tower (which surprised us—a three hundred foot tower/restaurant) in Lake Placid (home of the 1980 Winter Games—who'd've guessed Florida would have housed the Winter Games) and even a dome house for sale.

[Nestled in the trees] [A cylinder with a dome]

Unfortunately, the house apparently has been abandoned for quite some time, as there were hundreds of huge spiders with large fangs rawr rawr rawr.

[Arachnophobia anyone?]

We're talking feet across looking like something right out of J. R. R. Tolkien. We didn't stay long.

The hotel we're staying at is under serious renovation, or perhaps it's still under construction, or something like that. Drywall, cinder blocks, exposed lumber, guys in hardhats walking around (very odd on a Sunday). That must be why the room was so cheap for the night.

Tomorrow, we hit the final destination.

And then home.

And I'll be bringing video of our travels back with us.

Monday, October 23, 2006

A visit to Isengard

Make you the world a bit better or more beautiful because you have lived in it.

Edward W. Bok

I was worried about the weather this morning, afraid it might rain and ruin the plans I had for our destination was an outdoor destination. But the weather cleared up enough not to rain and it made the day an enjoyably cool one.

And our destination?

[Welcome to Isengard]

The Historic Bok Sanctuary which houses one of the largest musical instruments I've ever seen, the carillon (basically, a large tower with bells—this one has 60 bells of various sizes which are played via a specialized keyboard).

[A keyboard with which to play bells] [Cutaway view of the tower—the bells are at the top] [Just a sample of two of the bells]

The grounds around the tower are a conservatory and are well maintained, lending themselves to the serene feeling one gets when walking around the site.

[Lush vegitation abounds] [More lush vegitation] [But let's not forget the spooky trees!]

But I picked the destination simply because of the tower. As a kid I came across photographs of the place my maternal grandfather had taken, and I was always intrigued by the place and have been wanting to visit the place for years. When I decided to take a trip I knew just the place—Bok Tower.

[Behold Isengard!] [It's too light to be Barad-dûr] [“It's only a model!” “Shh!”] [Of course it's pink!  This is Florida after all!]

What was disappointing was the music. I mean, we're talking 60 bells of various sizes, but whether it was the fact that it was 60 bells, or the player of the carillon still learning to play the instrument, the music just didn't do anything for me.

[That's a brass door, not a gold door, but it's still impressive]

I would have liked to have stayed a bit longer and soaked in the environment a bit more, but The Kids … they got hungry.


Yeehaw! We're at a junction!

For the trip back home, I decided we'd take State-60 east (even though the scariest drive of my life had been along State-60, but that was at 1:00 am with 50′ visibility and a semitruck doing 100mph right behind me—that was then, this is now, in the middle of a sunny day) and at Yeehaw Junction take US-441 south all the way back home.

[They sell good food bars there] [Steven Spielberg must have been inspired by this truck for his film “Duel”]

For such a small one building town it sure was noisy with all the truck traffic passing through.

Now, before the trip, I was told that US-27 was a very dangerous route to take, but I found State-60 and US-441 to be way more frightening than US-27 ever was on this trip (maybe because US-27 was two lanes each way the entire trip, whereas State-60/US-441 were two lanes total through this part of the state).

[North shore of Lake Okechoobee] [The lake is around here somewhere] [Ah, there's the lake!]

As we were driving home, the weather off towards the south east looked rather ominous, although the threatening rain never did materialize.

[The sky is getting darker] [and darker …]

Now, for this trip, I borrowed Smirk's digital video camera and took about an hours worth of footage over the past two days.

[Me directing the video—photo by Spring Dew]

The intent is to edit the raw footage into a video blog entry that (hopefully) will be coherent and amusing. We shall see.


Not quite in the nick of time

Congratulations!

You are now the proud owner of a genuine Tucows Squishy Cow.

I'm sorry it took such a long time to get to you—I announced the Squishy Cow giveaway right as our stock of Squishy Cows went bone dry. Thanks for being so patient!

Your Squishy Cow should provide years of entertainment not only as a desk accessory, but also as an amusing prop in your photographs and home videos.

Remember, if you post Squishy Cow photos on Flickr, please give them a tag of SquishyCow or SquishyCows so everyone can find them!

Enjoy your cow!

Joey deVilla
Technical Evangelist / Squishy Cow Wrangler
Tucows
XXXXXXXXXXXXXXXXXXX

Way back in July I'm reading The Adventures of Accordion Guy in the 21st Century when I see this entry on getting an official Tucows Squishy Cow and all I have to do is take photos with the Squishy Cow in interesting places in Florida.

So I sign up.

And wait.

And wait.

And eventually forget about the whole thing.

But what should I find waiting for me when I finally get home?

[Mooooooooo!]

My Official Tucows Squishy Cow.

Had it arrived but two days earlier I would have taken it with me to Bok Tower.

Heck, I could have taken photos of it next to real Holstein cows.

Sigh.

Tuesday, October 24, 2006

Spooky music from the ether, redux

A few weeks ago, Bunny sent her Theremin albums to CVC Productions to get them converted from 78s to CDs and they finally arrived back from the company.

The album, Music Out of the Moon, is interesting if only because the Theremin is not the dominant instrument. In fact, one has to listen closely to find it in some of the jazz-like tracks on the album. The music itself is okay, and I found myself liking two of the tracks.

Wednesday, October 25, 2006

Uh oh …

I think I'm coming down with a cold.

Not surprising since I spent two days in a car with various people who have all had, or had, a cold.

Thursday, October 26, 2006

An explanation for the lack of updates for the past few days

Yup, I have … have … a … a … achoo! … a cold.

Gosh darn it.

Friday, October 27, 2006

The guy can solder

As the video above shows, he also knows how to solder …

Fabio on Technology: A Brief Interview

Fabio?

An electrical engineer?

I'm not sure what to think …

Saturday, October 28, 2006

The appropriate device for cooking dead things

Just what we need now—one dead stove.

Then again, given that Halloween is just around the corner, perhaps it's fitting. Nothing like a dead stove to cook dead things.

Sigh.

One the good side, I think I'm over my cold.

Sunday, October 29, 2006

The Ritualistic Carving of the Jack O' Lanterns

[The selected victims]
[Lobotomy central]
[Larry, Moe and Curly (not their real names)]
[Larry (he's a jelly fish) by Spring]
[Moe by The Older]
[Curly by The Younger]

Monday, October 30, 2006

Alien packets from outer space

I finally got monnet, my simplistic network monitor/dumping program, working under Linux kernels higher than 2.2. I wrote it a few years ago, both as an educational experience, and as a tool to see what activity existed on the network at work. I like it better than tcpdump or ethereal because it shows the traffic in real time with a concise summary:

S:02608CD87517 D:0014BF4DECE5  ARP         A:request ETH:IPv4 10.0.0.1        10.0.0.160     
S:0014BF4DECE5 D:02608CD87517  ARP         A:reply   ETH:IPv4 10.0.0.160      10.0.0.1       
S:02608CD87517 D:000D935D6D86  ARP         A:request ETH:IPv4 10.0.0.1        10.0.0.13      
S:000D935D6D86 D:02608CD87517  ARP         A:reply   ETH:IPv4 10.0.0.13       10.0.0.1       
S:0040332E103C D:02608CD87517  IPv4        S:10.0.0.3        D:10.0.0.1         UDP            S:NTP        D:NTP        62
S:02608CD87517 D:0040332E103C  IPv4        S:10.0.0.1        D:10.0.0.3         UDP            S:NTP        D:NTP        62
S:0014BF4DECE5 D:02608CD87517  IPv4        S:10.0.0.160      D:69.59.240.102    UDP            S:(10000)    D:(10000)    
S:02608CD87517 D:0014BF4DECE5  IPv4        S:69.59.240.102   D:10.0.0.160       UDP            S:(10000)    D:(10000)    
S:0040332E103C D:000D935D6D86  ARP         A:request ETH:IPv4 10.0.0.3        10.0.0.13      
S:000D935D6D86 D:0040332E103C  ARP         A:reply   ETH:IPv4 10.0.0.13       10.0.0.3       
S:000D935D6D86 D:0040332E103C  IPv4        S:10.0.0.13       D:10.0.0.3         TCP      AP    S:(52643)    D:SSH        58
S:0040332E103C D:000D935D6D86  IPv4        S:10.0.0.3        D:10.0.0.13        TCP      A     S:SSH        D:(52643)    10
S:000D935D6D86 D:0040332E103C  IPv4        S:10.0.0.13       D:10.0.0.3         TCP      AP    S:(52643)    D:SSH        58

That's the output from my home network for a few seconds of activity. I find it interesting to see the traffic that floats across the network, and I've already found some interesting stuff at work—like the Cisco router one of our customers is running (he forgot to turn off the Cisco Discovery Protocol, and it's leaking out onto our network), or the ICMP router discovery packets (again, from said customer), IGMP packets (from yet a different customer with a talkative router), the Spanning Tree Protocol the various switches use to communicate, and then there's the weird stuff.

S:00E0B0641863 D:00E0B0641863  (9000) 60

And then there's:

S:00E0B0641862 D:AB0000020000  DNARC       63

I have this as the “DEC DNA Remote console,” but as far as I know, we have no DEC equipment anywhere on our network. And from the looks of it, both alien packets derive from the same (or similar) equipment, but the really odd thing about this (as if things weren't weird enough) is that I can't reconcile the locations I saw these two packets—different segments of our network (i.e. the network segment I saw the first wierd packet is physically disjointed from the network segment I saw the second weird packet).

I wonder …

Did I perhaps discover the mysterious Halloween Packets?

What was that noise?

It came from the wiring closet—

Excuse me while I go check it out.

Tuesday, October 31, 2006

The appearance of Captain Marvel

Shazam! That must have hurt (link via Sean Tevis). No wonder Captain Marvel picks an out of the way spot to transform.


“And twice-times-a-thousand glares and winks and blinks and leerings of fresh-cut eyes.”

[Ooooh … scary …]

The Younger Pirate, A Friend Screaming, The Older Karate Master

[Arg!  There be booty!]

The score (which The Kids will be taking with them tomorrow when they fly to visit their father).


Christine lives

Spring came home. “Grab your camera,” she said. “You have to see this!”

And with that, I grabbed the camera and we headed back out along back streets to a patch of land that had recently (as of that day apparently) been cleared (local harvesters, I guess, given the season).

[Come on—restore me so I can eat you!] [Just ripe for the picking!]

And there, unearthed from the vegetation (um … yeah) was the ghastly sight of Christine awaiting her next victim.

Halloween is such the odd holiday.

Wednesday, November 01, 2006

Fifteen hundred words a day. No problem.

Today is November 1st.

And that can mean only one thing: the start of National Novel Writing Month.

And like many years gone past I will yet again attempt to write a novel.

Maybe this time I'll finish.

Ha! I slay myself!


A quiet melancholy

As alluded to yesterday, The Kids are off to see their father in some far off western state for the holidays (and yes, the entire holiday season, which means we won't see them until January), armed to the teeth (and then some) with mini sugar bombs in the form of two bags of Halloweed swag and a bag of Halloween themed sugar cookies (courtesy of Bunny). But despite the quiet, and the clean kitchen sink, Spring is concerned about their absence; understandable since they're her children. So while the next two months will probably pass relatively quickly for me, they will undoubtedly pass slowly for her.


Wired

Today was a rather crazy day at The Office. First were some email issues (I'm really beginning to dislike email sendmail, dovecot and saslauth.

Then there were the network switches for a customer. Two 50 port Cisco switches (48 Ethernet and 2 gigabit Ethernet). The configuration was easy (trunked the two together via the gigabit Ethernet ports and four Ethernet ports for backup, a few ports VLANed for the public side of the network, and the rest under a separate VLAN for the private network)—it was the installation that was … troublesome.

We knew about the two 24 port switches we were replacing. We didn't know about the two cheap consumer grade switches behind a table and underneath a pile of CAT-5 cable.

So there was mounting of equipment on the wall. Ripping out of old network cables. Plugging in new network cables (we couldn't use the majority of the old cables as they were too short for our use). Tracing down some other cables. Swearing when we found the other two switches. The dangling power strip we ended up mounting on the wall. The table that fell apart and had to be reassembled.

The full installation took about four hours.

And as usual, we didn't plan on going to Denny's, but that's where we ended up.

Thursday, November 02, 2006

Yet another Day 10

It was a crazier day at The Office and I wasn't even at The Office; I was working at home.

And it's official—Ihate sendmail, dovecot and saslauth.

I think the pinnacle of the mess was this lovely bit of sendmail—from the configuration file /etc/mail/access on the server as installed:

# Check the /usr/share/doc/sendmail/README.cf file for a description
# of the format of this file. (search for access_db in that file)
# The /usr/share/doc/sendmail/README.cf is part of the sendmail-doc
# package.
#
# by default we allow relaying from localhost...
localhost.localdomain RELAY
localhost             RELAY
127.0.0.1             RELAY

And the format of said file from /usr/share/doc/sendmail/README.cf:

The table itself uses e-mail addresses, domain names, and network
numbers as keys.  Note that IPv6 addresses must be prefaced with "IPv6:".
For example,

        From:spammer@aol.com                    REJECT
        From:cyberspammer.com                   REJECT
        Connect:cyberspammer.com                REJECT
        Connect:TLD                             REJECT
        Connect:192.168.212                     REJECT
        Connect:IPv6:2002:c0a8:02c7             RELAY
        Connect:IPv6:2002:c0a8:51d2::23f4       REJECT

Notice anything … different … about the two?

Hmmmm?

Yeah.

XXX XXXXXX XXXXXXX piece of XXXX!

I think I got it working (the reason I think I have it working is that I have no easy way of actually testing this crap! All my email (both work and personal) is checked on the respective email servers locally, using mutt since I find it faster that way. I don't use POP or IMAP. While POP is pretty easy to test using telnet, IMAP isn't. Toss in SMTP AUTH (which goes from difficult to downright impossible to test via telnet) and I'm practically forced to use some bloated piece of XXXX like Lookout Outlook. Or Thunderbird, which makes me pine for the days of checking my email as 1200 baud).

(Can you tell this stuff makes me rather cranky?)


My head es splode

One last bit of unfinished business from yesterday's switch installation—setting up Cacti to monitor the network usage.

But I should know better than to use a package manager to install required packages, but hey, I was a bit frazzled at this point.

I know that Cacti requires the use of RRDTool, and knowing that just doing the straightforward yum install rrd would never work, I did the next best thing:

[root@netmon ~]# yum search rrd
Searching Packages: 
Setting up repositories
update                    100% |=========================|  951 B    00:00     
base                      100% |=========================| 1.1 kB    00:00     
addons                    100% |=========================|  951 B    00:00     
extras                    100% |=========================| 1.1 kB    00:00     
Reading repository metadata in from local files


gpg-pubkey.None                          443e1821-421f218f      installed       
Matched from:
—–BEGIN PGP PUBLIC KEY BLOCK—–
Version: rpm-4.3.3 (beecrypt-3.0.0)

mQGiBEIfIY8RBACIjFavOQNbs4bjTtOblq4X5/oxuTJtv41nfqSFNeUAQke0qoxxAUlBesWx
DsOXp5VppgNEA07hGjPvzoxabLAsTccQplvHMNzmRezyukYrSTVR/F7gywpvlhaAFkL9jZxo
dXzWKk2cmBLVWvuyzlLEUBeijm2amyEHcIGAczxPawCgmVcM9WpA6SOKivd9qTXK2XP+9BUD
/2xV4OR4L7q8CSiaDMwPLo6P6D6VDc9LpVy16WmuiYPFJIcIpp309biKZhGZgd+gHDhld9EJ
cZ3A2v43GY/xCdJqZ7Uh5QIGDafnil872AbMIBYpcOpvAshTM10S3Qj06pIQE47oONZT5A80
O/hn+Yd8ySCEswpbWCmtAxnciNw3A/0Qk/bKrhT6J9Um2JhMfxx/nB80mM+Jlsn58B8i4sjr
IVdzc3b45Y2wbXN3uVGuvvAFolAco3cpVy3oY1wMVuh8UlJFNESmxZL/Z7BXyKhiKUZrNxEv
Qt9OtD1Fd36ur8Ky8zFE5GL903Nx/dEVBvIDq2/2K3Wy9Yq3YIC0PW7fkrQlQ2VudE9TLTQg
a2V5IDxjZW50b3MtNGtleUBjZW50b3Mub3JnPohfBBMRAgAfBQJCHyGPBQkSzAMABAsHAwID
FQIDAxYCAQIeAQIXgAAKCRClPQurRD4YISH0AJ9zmx2JPGt8ELKo3aE0YoGg6EYipwCdH3kR
VJHQtDeRs/5v5Ghn92XZS4KITAQTEQIADAUCQh8hxAWDEswCywAKCRA4whYWOWygpCumAJwO
seF0mAV+j/0kGrKXf/FKboFScgCdEITVqtB1CCyn+q+IqnCmgEF8rYy5Ag0EQh8hqhAIAKwN
u60J+AnfVjNk0eN26sKBQOHFVQX9M3bdNBVWruocb7dro6DG4daPVB66ZI9RqBusll0jz5nU
hBO3GZ3rn/KLVhMO2uCtvdcwWYtY6188lO6lOm3aYadIqafcPPiiLnF3zm/E8hI/trbPpaoW
1dFBOiSlOY4bSpSCnTuHYd5fjYu77wQhnSsl19XfqwuvHQKW1vhXCaM2GrsLA5tgjLOlJhYJ
4yPY2LToyxoWC/JMMM0Vwi7BaVoa/G2uamC6sL5f6KXei5QftemUvw1uM/2fkLbuHtwETq6Z
yUZlsL1H5K5G4h+GDVByBF6Y2P1csi7oXK13sdzhkewLaMjmah8ABAsH/3zhD0Gy1jlMs9dG
KSi9kq3jcUE/4o3vvjOPbxqT9psJu0jMEAfUVCWX9BWgZXyE2u+nBxcYAnNyqdmQzs6wTgJW
GeGKpyC1jIKtO888RpPShvXtt/aNF4LaoielWZY9xu5oYEhnmBoww3VTbVxFNaPjglZOWnTx
WfysHwG0H/dnXMp1sJjfdNsiB7zNniRRurlIiy0xhQSkDLe4tUr9Q9u4ztZKbwVX/fBzJC/u
4Smi4VYx+HfOAP3OqzcGKNcb68GpIVo31RUQq1JqpPSM5U41kW8u+S5n+zhjZsb/Ix3ks18g
I8wz5u5yzfGacqp65NLisqVeOKEf/MQ1xWytG4SITAQYEQIADAUCQh8hqgUJEswDAAAKCRCl
PQurRD4YIXC1AKCF3t5xKJnEXJfgvhvldOzDIFjajwCgkX/MZI0O0SxYQAc2hEQJqCI/LJV=
=Qsai
—–END PGP PUBLIC KEY BLOCK—–

[root@netmon ~]# 

What the—

Okay, try a more focused search:

[root@netmon ~]# yum search rrdtool
Searching Packages: 
Setting up repositories
Reading repository metadata in from local files
No Matches found
[root@netmon ~]# 

Why did I even bother with the package manager?

So it's off to manually track down dependencies.

About an hour later, I finally get around to installing Cacti 0.8.6h (yes yes, I know they're up to 0.8.6i but I had the 0.8.6h tarball handy). It goes pretty smoothly, except that it's not generating any graphs. I run the cron job by hand, and yes, it's polling data from the network devices. Everything else is running smoothly.

Just no pretty pictures of network usage.

A few hours of pointless activity go by (I even inlist the help of Wlofie to see if I may have overlooked something) when I check the instance of Cacti we're running at The Office against the one I installed. We're running 0.8.6g. I happen to have the tarball of that handy.

I install that.

It works. I get pretty pictures.

A blood vessel in my brain explodes.

I'm found lying in a pool of my own blood, dead.

Oh wait! This isn't for NaNoWriMo

Friday, November 03, 2006

This blog entry brought to you by the letter “X” and by the number “13”

I was planning on writing an entry for The Saltmine Chronicles about how one should keep their business related blog updated if they want people to actually keep coming back and then linking to it from here, but I never got a round to it today.

So instead, I'm writing an entry here outlining what I had planned to write, even though it's considered “bad form” to blog about not blogging but I don't care, because otherwise there wouldn't be an entry here (which may be preferable but it's my blog, gosh darn it, and I'll do what I want here).

Saturday, November 04, 2006

The only inspiring thing at an uninspired computer show

Bunny invited me along to a computer show at the War Memorial Auditorium in Ft. Lauderdale, Florida (and personally, I found the War Memorial Auditorium to be eerily reminiscent of Soviet style architecture—an uninspired box like construction painted in institutional shades—very ugly). The computer show itself was about as inspired as the building, which wasn't much.

Bunny did not find anything she wanted at the show, but amazingly enough, I did:

[Tripod designed by Doc Ock]

This small desk tripod designed by Dr. Octopus.

Back in August, I lost my small desk-top tripod. Actually, I didn't lose it as much as it fell apart while taking pictures of Connestee Falls. I had originally picked it up at Wal★Mart a few years ago and since August, I've been to a few looking to replace it, and apparently, no one makes that particular desk-top tripod anymore.

So when I saw these at the computer show, I was ecstatic. Even more so as they were $2.00 a pop, so I picked up a few.

And that's the only thing we found worthwhile there.


The Brothers Grimm

I saw The Brothers Grimm (directed by Terry Gilliam) with Bunny. It's an interesting take on the historical Grimm Brothers. In real life, they were academics who transcribed old German folk tales whereas in the film, they're con men who perform fake exorcisms to allay the German peasants (who in the film, are under French occupation) and to make money of course. Of course there's a town under a real magical curse, and they are forced to deal with the situation by the French government.

It's by far not Terry Gilliam's best work, but it's not his worst either. It's an okay story, no real surprises either (but the computer graphic special effects will age quickly). It's an excuse for interesting characters to interact with each other.

Sunday, November 05, 2006

Not surprisingly, this was made after Shaft

I got on this matial art kick a while ago and signed up for a bunch of kung-fu flicks at Netflix. I haven't mentioned any of the ones I've seen so far, because, hey—they're 70s kung-fu flicks—that's all you need to know.

But “Goyôkiba” (known as “Hanzo the Razor: Sword of Justice”) was just … just …

It wasn't a kung-fu film, since it's Japanese.

About the only thing I could compare it to is “Shaft,” right down to the funky 70s sound track and film style. But, not having seen “Shaft” I can't quite say if it was as exploitative as “Hanzo the Razor” was.

How exploitative?

The subtitle, “Sword of Justice?”

He uses two types of swords in this film—the sharp pointy type against male suspects, and a more … personal … personally … attached … one, against female suspects (when they … um … start begging for more, he stops and … um … then asks questions ahem).

And from the trailers on the DVD it looks like the two sequels are … um … similar in nature.

Oh my (just to let you know, you don't actually see anything, but it's heavily implied).

Monday, November 06, 2006

More photography of heavenly bodies

A few months ago Smirk was about to sell his Olympus C-5500 Zoom digital camera on eBay when I decided to buy it (price was right—about $100) for Spring, who had been wanting one for a long time.

It turns out that Spring didn't really like it—she preferred my digital camera. And looking over hers, I found it had many features I missed having in a digital camera—manual shutters, manual aperture, manual focus, higher resolution, better performance in low light, blah blah blah, that I preferred her camera.

So we traded.

[Loony over a digital camera]

Can you believe that's without a telescope? Just the Olympus C-5500 zoomed all the way out.

It's a nice camera.

Tuesday, November 07, 2006

Network slow? It might not be the network …

For the past two months or so I've been fighting a problem on one of our DNS resolvers—the server is still up, and from what I can tell, DNS is still up and running (it's one reason why I got monnet working oddly enough) but the system load shoots up and consequently it gets slower and slower to respond.

At first I thought it was slowing down due to logging every little lame server out there, so I dropped the logging down to only severe errors, and that didn't help one bit.

I've been having to go in and restart named every other day or so. I'm relunctant to set that up as a cron job, as that only masks the issue; it doesn't solve it.

Meanwhile, one of our clients has been experiencing some network “issues” since we reworked their network (to be fair, they were having issues before we reworked their network, hence our reworking their network) and even more puzzling, we haven't seen anything abnormal from our monitoring their network (although some close scrutiny did reveal that the wireless shot there is still a bit flaky, even though we re-aimed the shot—now we've set the routing to prefer the T-1 over the wireless).

We then received email about possible DNS issues, and they're using our DNS resolvers.

Hmmmm.

A non-responding DNS could be mistaken for a slow network, or a network that appears to have outtages (as the DNS queries take time to time out). Our problematic resolver could be causing them to have problems.

In describing the issue with Wlofie, it came to light that the problematic server only has 32M of RAM.

Oh.

On a rather busy network.

The other resolver, the one not having an issue, has 128M of RAM.

I think I found the problem here (and honestly, it never occured to me to check memory on the box—sigh).

Wednesday, November 08, 2006

“We charge twice as much for half the service”

I think it says something when I would love to switch to the Monopolistic Power Company known as FPL because Lake Worth Utilites should properly be called Lake Worthless Utilities.

Update a few minutes later …

And it's not like I'm alone in this

Thursday, November 09, 2006

But I've always published by email …

From
"Jeff Cuscutis" <XXXXXXXXXXXXXXXXXXXXXXX>
To
"Sean Conner" <sean@conman.org>
Subject
Doesn't your blogging software already do this?
Date
Wed, 8 Nov 2006 09:16:34 -0500

http://blogs.msdn.com/craig/archive/2006/11/08/post-to-your-blog-by-simply-sending-an-email.aspx

I seem to remember you writing about how your stuff worked.

Jeff

Yes, my blogging software already does this, and has since … oh … October of 2001 or thereabouts. But, unlike blogmailr (which is the service mentioned in the link above) I do not support the MetaWeblog API (so all this is is an email-MetaWeblog API gateway with some additional code to handle attachments, which is something else I don't support) since, at the time, it didn't exist (I think) nor have I any real need to support the MetaWeblog API.


I might have to write a bit about DiceWars strategy …

From
"Bunny Reynolds" <XXXXXXXXXXXXXXXXXXXXXX>
To
"Sean Conner" <sean@conman.org>
Subject
DICEWARS!!!
Date
Thu, 9 Nov 2006 03:11:21 -0500

Okay, what do I do when I'm ahead by quite a few territories, it's down to two players, and we both have 8 dice on all of our territories? If I'm not mistaken, it pretty much comes down to the luck of the roll, by then. I try not to leave any frontlines vulnerable, but honestly! I had four head-to-head confrontations, and I lost all four of them! Talk about crappy rolls! Is there anything else I can do except try? Or should I just keep ending my turns, see what my opponent can do?

bhr (Oh, nice, it's 3 a.m. and I'm playing Dicewars. Thanks ever so. 8-P

First I got addicted. Then Smirk. Now Bunny.

I wonder who's next?

Muahahahahahahahahahahaha!


Silver change III

Via The Mess That Greenspan Made comes a link to an interesting site noting the intrinsic metalic value of US coins. Now, I have old quarter (mostly silver) that's now worth quite a bit of money, but it's more than I expected.

In doing some research, I realized I got the actual weights wrong back when I first calculated its worth.

Well then.

But, with pre-1982 pennies worth twice their value in copper alone, perhaps it's time to go through my penny collection …

Friday, November 10, 2006

It's still there

It's not dead, and I haven't forgotten about it—it's just been … busy at The Office. That's all.


“You want me to close the program? Sí”

It's D&D night, and I forgot to bring my laptop (we use kLoOge during game play). So Bob (the DM) lent me his laptop computer to use.

It runs Microsoft Windows.

So okay. I can deal.

I spend about an hour pounding on the machine to get it running semi-decently when all of a sudden half the message boxes pop up in Spanish.

Then back to English.

Then Spanglish.

“Do you really want to end the application? No

Sigh.

Saturday, November 11, 2006

“Office Space” Recut

Last year, Robert Ryang recut a trailer for “The Shining” to make it appear as a romantic comedy, which lead to a rash of recut trailers for various films placing them in different genres—Robert Ryang's work was the best of the lot.

Now comes this (and Mark should appreciate this)—“Office Space” Recut (link via Jason Kottke).

Sunday, November 12, 2006

Addiction

I know that as of this day, I've hooked two more people on Dicewars. Muahahahahahahahaha!

Now … if I could only kick myself of the habit …


Son of a Witch

I just finished reading Son of a Witch, the sequel to Wicked: The Life and Times of the Wicked Witch of the West, and overall I found it lacking.

The book follows Liir, who may or may not be the son of Elphaba, the Wicked Witch of the West, from moments after Dorothy kills the Witch (quite by accident) for the next ten years. At the start, he's unsure of everything—unsure if he's the son of the Witch, unsure what to do, uncertain about what he can do. And after following him for ten years in the aftermath of Dorothy's visit and the poltical upheavel it brings upon Oz, he's still unsure if he's the son of the Witch, unsure what to do, and unsure of what he can do.

I think what made Wicked work was the recasting of the Wicked Witch of the West as the heroine; we get to see her side of the story in a politicized Oz. And while Son of a Witch carries on that story after Elphaba dies, it doesn't feel as tied into the Oz mythos as the first one. It's too far from any characters we know from Oz.

It just didn't work for me.

Monday, November 13, 2006

“Lights! Camera! Action!”

I wonder if kids today realize how good they have it?

One of the many careers I was interested in as a kid was a film maker (along with my friend Hoade—we were both ga-ga over the likes of George Lucas and Steven Spielberg—they had such cool jobs) but back then, our only options were 8mm or Super-8. 50′ of 8mm film would give you 3′20″ of film (3 minutes, 20 seconds) whereas 50′ of Super-8 film got you 3′40″ (a additional 20 seconds) but the equipment for 8mm was easier to come by (as by that time, it was obsolete, and even Super-8 was fast headed towards obsolescence in the up-and-coming home video revolution of the 80s).

Oh, and I should mention—this was silent film.

You'd buy the film in 50′ canisters. Shoot it. Have it developed. Once back, you'd go through, cutting the film up and splicing it back together into your epic film masterpiece. And all of your budget (at least, back then) went into film and film processing, which wasn't cheap for a kid (each canister would set you back about $10—$30 bucks today). And given the shoot-to-edit ratio of about 2-to-1 (two feet of shot film to one foot of finished film—typical Hollywood rates are 3-to-1 or even 4-to-1) and you'll have to have very understanding parents to indulge in this hobby (and let's not get into the requirements for video editing, which requires even more specialized equipment).

Heck, in the early 90s, my friend Hoade and I tried a few times to make an actual film but the expenses got way out of hand.

But today?

Even a relatively cheap digital camera (like the one I have) can record video clips (I have enough memory to shoot about ten minutes worth). And my Mac mini came with video editing software (albeit basic editing software, still, it's something I can use).

And therefore, with video equipment and software that just about anyone can afford, you get some really innovative stuff going on (and a bunch of crap, but hey, the same can be said for network television only, you pay more for it).

So, with all this creativity going on, and an unfulfilled goal, I have been in the process of making a small video.

[Herr Direktor]

The above is just a small clip from the final results. And I'm finding that editing is still a time consuming process, but at least I'm not having to sweep up little bits of film afterwards.

And what follows is a transcript of the movie.

Why?

It's that accessibility thang.


HERR DIREKTOR

[From behind a movie camera] And … action!

HERR ACTOR

[Sitting at a work desk. Several seconds go by as he tries to remember his lines.] What was my line again?

[CUT to HERR DIREKTOR, who stops filming, and shakes his head at the incompetence of HERR ACTOR.]

[CUT to CLOSE-UP of HERR COMMENTATOR]

HERR COMMENTATOR

Oh, and that camera? [CUT to CLOSE-UP of camera, then back to HERR COMMENTATOR] It's just a Hollywood prop. See? [CUT to CLOSE-UP of camera, and HERR COMMENTATOR opening the camera with his hand. CUT back to HERR COMMENTATOR] I mean it's a real camera but I wasn't really using it.

[CUT to CLOSE-UP of camera]

HERR COMMENTATOR

It looks good.

[CUT to CLOSE-UP of HERR COMMENTATOR]

HERR COMMENTATOR

That's why.

Tuesday, November 14, 2006

Cutting room floor

The clip I made yesterday, all 34 seconds of it, took perhaps an hour and a half to make, but that's including the time it took for me to film the all 18 bits that day (second day of filming).

The sample you saw required the cutting of four individual clips (raw footage: 73 seconds) into the 10 cuts shown and took about half an hour of actual editing time to create (about 1 minute editing time for each second of resulting footage) but I had a clear outline of what I wanted to do for that clip.

The rest of the video?

I'm making it up as I go along, unfortunately.

[I speak goodly English]

Outtakes … um … and for a good … um … reason.

I don't even have all the bits I wanted filmed yet (I'm only in The Office two days a week) and there's a strong tempation to reshoot a bunch of what I already have (oh, and a transcript? “Uh … uh right there. Blah! Take 37. Ahem. Yeah, right.”).

I wonder if I will ever finish this …

Wednesday, November 15, 2006

“How many words per day was that again?”

So, here it is, November 15th, which marks the halfway point of NaNoWriMo, and the expectation of having 25,000 words done by the end of the day.

My current count?

Let's see … la de da … carry the one … dum de dum … and I have a total word count of …

Zero.

The Magic 8 Ball says: Outlook not so good.

Sigh.


A night at the carnival

[Carnival—American style]

“We have to go on the Ferris Wheel,” said Bunny. “We just have to.”

“Okay,” I said. It's one of the few rides I don't mind at carnivals. “Although it's pretty big.” I also have a fear of hights but it doesn't always manifest itself—it's a fear that is partially situational, but that, as Alton Brown would say, is another show).

The carnival itself was in the parking lot of a large strip mall along US-441 and Glades, in Boca Raton, Florida. There are few fields left empty here in Lower Sheol anymore, so I guess they set up where ever they can these days.

[Look at all the people] [Where do they all come from?] [You'll shoot your eye out, kid!]

It was rather slow by the time we showed up, near 9:00 pm. Whether it was due to the hour of the day, or the day of the week, I don't know. But there were hardly any lines to speak of. Bunny picked up the tickets and as we waited (there was one rider on the Ferris Wheel when we queued up) we bantered with the carney. The carnival is operated by a larger company that has several “units” out at any one time (one here in Boca Raton, another one in Ft. Lauderdale, and a few down in Miami) and that what we were looking at wasn't just a Ferris Wheel, but a huge Ferris Wheel, some 90′ tall.

A few minutes go by, and the wheel stops. We get into one of the gondolas, the wheel lurches forward a few cars, and a group get into another gondola; the carney explaining to the other group that the groups need to be spaced to keep the wheel in balance.

And we're off …

And it's clear by the time we peak over the top and are on the way down again that this isn't just a Ferris Wheel, but the Ferris Wheel. Vertigo kicked in and I just had to get off, but it took another three trips to get the carney's attention, and then me waving off Bunny as she tried to help (we were walking down a plank off the ride) but I really needed to get grounded, as in “standing on solid ground, now.”

[All the deep fried heart attack specials you could want]
[Time to make the funnel cake]

After calming down a few minutes, we headed off to the Funnel Cake booth. I'm neutral towards deep fried dough but Bunny loves the stuff [Update Friday, November 17th—Bunny wishes to let it be known that she loves funnel cakes and not just any old type of fried dough –Editor], so she got a funnel cake (she found it good but she's had better—I found it okay myself) and I got a soft-serve ice cream cone (I didn't get sick on the Ferris Wheel, I just couldn't take it).

[Back and forth, round and round …]

Next to the Ferris Wheel was this outrageous ride. Not only does it swing back and forth, but the end, where you sit, spins. I found it horribly disorienting just looking at the thing, but it was very pretty with all the lights. It looked like something you would find in Las Vegas. Or on the set of Close Encounters of the Third Kind.

[Ohh … look at the pretty lights] [Close Encounters of the Third Kind] [Fling them all to outer space]

High Anxiety

About that Ferris Wheel ride

I have acrophobia (and not vertigo as I always thought, much to my surprise) but it doesn't always manifest itself. In fact, I've ridden Ferris Wheels before without problem, although I don't think I've ridden one quite as large as the one earlier tonight.

[“There's no place like ground …”]

It was not a pleasant experience.

As a young kid, I remember hanging out with my friend Duke and we would climb and walk along this fallen tree spanning a rather large hole in the ground (as a young kid, I would have sworn that the hole was 50′ deep but in reality it was probably not more than 10′ or so) without thought. We would also clamber up and down hills with a 70% grade or so (although at that point they cease to be hills and more like “cliffs” or “stupid kids—you'll fall and shoot your eye out on that cliff!”).

In high school, as part of Drama, I would set lights and to reach the FOHs I had to go outside the auditorium, enter the electrical breaker room, and climb up a vertical ladder. The only portion of the ladder you could see was at the bottom, in the electrical breaker room, where it went up past the ceiling. Once past the ceiling of that room, it was a) pitch black as there was no lighting, b) the ladder was surrounded by a steel cage and c) there were walls on two sides of the ladder (front and back). So not only were you cocooned on the way up, but the lack of light actually helped as you couldn't see anything, up or down. So the acrophobia never got a chance to kick in there.

And once up at the FOHs, I was too busy setting lights to really think that the only thing keeping me from a fall of about 60′ was chicken wire.

At FAU I also worked on the stage crew for the auditorium, and while it was no biggie to go up in the catwalk system that extended out over the audience, and even work spotlights from a platform about 40′ up in the center of the audience, waiting an hour for my cue could get … interesting (“Hmmm … I wonder how I'd survive if those four bolts right there were to fall out … oook”).

I also used to hang out on the roof of various buildings with friends at FAU, and even climbed out through the observatory (on the top floor of the Science and Engineering Building) onto the roof (where one mistep meant a real nasty fall) but I could never work up the courage to go out onto the top of the Social Sciences Building (and when my friends did that, I had to physically lie down on the ground the acrophobia kicked in so hard).

But I'm fine in airplanes. In fact, I love window seats and I get a thrill when the plane takes off and lands (I love watching the ground fall away, and watching us descend to land—go figure).

I've also ridden in cable cars, but the last time I did that I was 11 or so. I had a chance a few years ago in Palm Springs, California but declined when I actually saw the grade (and I'm getting short of breath just reading the specs on the website—sheesh!).

Last year in Las Vegas, Hoade and I snuck up to the upper floors of the Luxor Hotel and on each level is a floor to ceiling window overlooking the interior of the hotel. I couldn't even get within 10′ of the window, and even Hoade was apprehensive at approaching to take pictures.

So yeah, having ridden Ferris Wheels before, I thought I could handle it.

Apparently, I could not.

Thursday, November 16, 2006

“The Jedi are extinct, their fire has gone out of the universe. You, my friend, are all that's left of their religion.”

Some recent musings on Star Wars (Losin' It (via Jason Kottke) and Wil Wheaton's Geek In Review: Han Shoots First (via … well, Wil Wheaton himself) has got me thinking thoughts of Star Wars myself and one of my central questions of Star Wars: Why do we believe Darth Vader when he tells Luke he's his father?

So we have this movie where the Bad Guys are telling the truth (apparently) and the Good Guys have lied (Obi-Wan, I'm looking at you!). What exactly is George Lucas trying to say here? (and here I was, ready to write this whole diatribe, when I found that I had already written it a few years ago—heh)


Name dropping

Spring and I were watching The Guru, a humorous and amusing, if predictable, little film about an Indian (dot, not feather) who comes to the United States to become a famous Hollywood actor and instead becomes a famous sex guru.

Anyway, we're watching the film.

“Hold on,” I said. “back that up!”

“What? Oh, okay,” she said. She rewound the film a bit.

“Yes,” I said, rewatching the previous shot. “I know that guy! That's Bobby Cannavale. We went to high school together.” Not only that, but we were both in Drama. I have a cool story about him, but if you want it, you'll have to ask …

Friday, November 17, 2006

The Aluminum Tree and Aesthetically Challenged Seasonal Ornament Museum & Research Center

There's a scene in A Charlie Brown Christmas where Charlie Brown and Linus are shopping for Christmas trees and all they find are these triangular metal trees. I always found that scene to be pretty surreal what with the extreme artificial nature of the artificial trees. The trees I was familiar with were made of green plastic needles embedded in a metal wire frame.

You know, real artificial trees, as opposed to the artificial artificial trees shown in the Charlie Brown Christmas special.

Yeah.

Anyway, the thought that there were ever artificial artificial Christmas trees never crossed my mind until I came across the Aluminum Tree and Aesthethically Challenged Seasonal Ornament Museum & Research Center.

Oh my.

It just wasn't a surreal moment made up by cartoonist Charles M. Schulz and animator Bill Melendez.

Oh wait! That's right! It was the 60s.

Saturday, November 18, 2006

“I mean, if they're stupid enough to buy it … ”

I sometimes think I'm in the wrong line of work.

Each week I read James Randi's weekly newsletter where he mentions the latest scams and fuzzy New Age thinking going on in the world, and some of the scams are just …

People believe and pay money for this stuff?

One of the many recent scams is this CD, DVD and LP demagnetizer.

Yes.

It's a degausser for plastic discs.

Demagnetizing both sides of optical media before play results in a greater sense of power, dynamics, and resolution, with cleaner, blacker backgrounds and a larger, more stable soundstage, vivid tonal colors and deeper extension at both ends of the frequency range. Demagnetization also allows the delicacy, refinement and nuance of a performance to shine through, along with micro- and macro-dynamics you need to realize the full potential of music and movies.

“Blacker backgrounds?”

We're talking about sounds, right? Not paintings, right?

“Blacker backgrounds.”

Sheesh.

And here's a demagnitizer that sells for $400.00! What a deal! $400.00 for “four patented electromagnetic beams that penetrate the disc during rotation; in addition to this the rotation speed has been increased for an even dispersion of the specialized beams. What this means is that you can expect far more hidden information to be retrieved. The patented processes ability to reduce the noise floor even further, allows you to enhance your listening pleasure to the extreme.”

As I asked Wlofie the other day, “Is it morally wrong to separate a fool from his money?”

Is it?

Sunday, November 19, 2006

“Just gotta have a little faith … ”

I remember as a kid watching David Copperfield making the Statue of Liberty disappear and always wondering how he managed to do that. It was only years later when my friend Hoade told me how he did it (okay okay, here's the Straight Dope).

Well, that feeling of wonderment came back when I saw Criss Angel walking on water, across a crowded swiming pool at a Las Vegas casino. It's an amazing trick, however he managed to do it.

Monday, November 20, 2006

“I mean, really stupid … ”

The theory of LRL operation is to transmit a signal into the ground that will excite the distant buried target. A “signal line” is established between the transmitter and the target, and the dowsing rods are used to detect and track the signal line. Because the receiving half of the VR-800 is just a pair of simple dowsing rods, it stands to reason that the transmitter half somehow justifies the suggested retail price of $1995. Let's start with a look at the transmit box.

Geotech— LRLs—Reports—VR-800

I forgot to link to this page detailing the inner workings of some questionable devices I mentioned on Saturday. I got so sidetracked on the audiophile scams that I totally neglected the whole long range location devices.

What's neat about that site is it goes into quite a bit of detail of just how shady these things are, and how they work (or rather, don't).

It's just amazing that people fall for this type of stuff.

Tuesday, November 21, 2006

Perhaps Spring is right, we should tell our customers to use Gmail because we no longer support email

So much for a quiet day at the office.

A little background: a while ago I set things up so that all the email that the various programs send out, on all the servers we have, gets funneled into a single account, which is then forwarded to me for review: output from cron, the mailscanner software, bounces, etc.

Yes, it generates a large amount of email, but mostly it's stuff I can quickly scan and dump as all I'm really doing is looking for anything out of the ordinary. Except for the bounce or non-deliverable messages, bitching about the inability to send emails to non-existant accounts across the internet (XXXXXXX spammers) and for those, I funnel those into a single folder (using procmail) which I then delete on a daily basis (why don't I just delete them as I get them? There is the rare occasion when I need to check those messages and because of that, it's easier to just delete them manually than recofiguring the email client when I need to actually search for those messages).

So it was surprising to find such messages in my default inbox. More surprising was the sheer number: over a thousand.

And not only in my default inbox, but in just about every incoming email folder. Hundreds. Thousands. Jamming up my email.

Checking the procmail log file, I found thousands of instances of:

procmail: Error while writing to "in-mailerdaemon"
procmail: Truncated file to former size
procmail: Error while writing to "in-mailerdaemon"
procmail: Truncated file to former size

Hmmm …

The folder itself was 51,200,000 bytes in size. Inside were nearly 6,000 messages, all the bitching about the same thing:

   ----- The following addresses had permanent fatal errors -----
<root@XXXXXXXXXXXXXXXXXXXXXXXXXXXXX>
    (reason: 554 5.4.6 Too many hops)
<admin@XXXXXXXXXXXXXXXXXXXXXXXXXXXXX>
    (reason: 554 5.4.6 Too many hops)

   ----- Transcript of session follows -----
554 5.4.6 Too many hops 26 (25 max): from <root@XXXXXXXXXXXXXXXXXX> 
via localhost, to <root@XXXXXXXXXXXXXXXXXXXXXXXXXXXXX>

which was trying to inform me that it couldn't deliver the following email message:

From
root <root@XXXXXXXXXXXXXXXXXX>
To
admin@XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Subject
CRITICAL:Current disk space consumption has reached a critical limit.
Date
Sat, 18 Nov 2006 04:23:27 -0500
Cc
root@XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
X-Yoursite-Mailscanner
Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details, Not scanned: please contact your Internet E-Mail Service Provider for details
X-Yoursite-Mailscanner-Information
Please contact the ISP for more information
X-Mailscanner-From
root@XXXXXXXXXXXXXXXXXX

What's even funnier is that this is a customer of one of our resellers. Even funnier is that the site in question has been suspended for non-payment.

Wheee!

So I delete the overflowing inbox, and the incoming email starts flowing properly again, and I start investigating the problem further.

A few hours go by, and I start finding bounce messages in the wrong inboxes. Same error. And the folder is again 51,200,000 bytes in size.

Gee, guess I found some internal procmail limit or bug or something.

In the meanwhile, I find out that not only does the site belong to one of our resellers, and has been suspended, it has also moved servers!

Wonderful!

And the mail is originating from the original server, bouncing around the new server and after bouncing around too many times, bounces towards me.

Now, have I mentioned I hate control panels?

Yup, they show up here, because the makers of Insipid have modified sendmail to handle their method of virtual servers and the command I'm used to using to check mail queues, mailq, is broken. So I have to track down where on God's Green Server they stuck the outgoing email queue and clean it up on two servers.

And yet I'm still getting bounce messages from the server, dating back to Saturday!

It was then I realized that our Office Email goes through yet another server, a spam firewall appliance. And it probably has a huge backlog of messages headed my way. And unfortunately, there's no way to flush the outgoing queue, because we have no access, because it's an appliance.

Sigh.

So for now, I have the email directed towards the bit bucket. I just hope that for the next few days, I don't miss a really important message.

Wednesday, November 22, 2006

How To Write A Fugue

Since Bunny is such the musical buff that she is, she might get a kick out of this instructional video: How to Write a Fugue, based on Brittney Spears'Oops I Did It Again.”

Not only is it an instructional video on constructing a fugue based on a pop song, the video itself is a fugue, and to understand that, you have to watch the video.

Thursday, November 23, 2006

And now for something completely retro

                              ,+*^^*+___+++_
                        ,*^^^^              )
                     _+*                     ^**+_
       _+^^*+_    (     ,+*^ ^          \+_        )
      {       )  (    ,(    ,_+--+--,      ^)      ^\
     { (@)    } f   ,(  ,+-^ __*_*_  ^^\_   ^\       )
    {:;-/    (_+*-+^^^^^+*+*<_ _++_)_    )    )      /
   ( /  (    (        ,___    ^*+_+* )   <    <      \
    U _/     )    *--<  ) ^\-----++__)   )    )       )
     (      )  _(^)^^))  )  )\^^^^^))^*+/    /       /
   (      /  (_))_^)) )  )  ))^^^^^))^^^)__/     +^^
  (     ,/    (^))^))  )  ) ))^^^^^^^))^^)       _)
   *+__+*       (_))^)  ) ) ))^^^^^^))^^^^^)____*^
   \             \_)^)_)) ))^^^^^^^^^^))^^^^)
    (_             ^\__^^^^^^^^^^^^))^^^^^^^)
      ^\___            ^\__^^^^^^))^^^^^^^^)\\
           ^^^^^\uuu/^^\uuu/^^^^\^\^\^\^\^\^\^\
              ___) >____) >___   ^\_\_\_\_\_\_\)
             ^^^//\\_^^//\\_^       ^(\_\_\_\)
               ^^^ ^^ ^^^ ^^

Gobble gobble.

Friday, November 24, 2006

For a black Friday, it's pretty sunny outside

Our Thanksgiving was a quiet affair, just us, no one else. It was quite nice and relaxing (and I played way too much Dicewars). We did have a bit of fun picking up a new (well, used) stove that involved moving a stove down stairs, lots of driving back and forth, and running out of gas but it actually sounds more amusing than it was. But how did we cook? The use of lots of electric cooking devices, including a rotisserie. I will, however, miss the flat top of our old stove.

Anyway, today is Black Friday. And there's no way I'm going shopping today. No way.

Saturday, November 25, 2006

Dynamic DNS

Bunny has BellSouth as a DSL provider. They give her a dynamic IP address. A dynamic IP address makes it difficult for her to get back to her computer when she's at her office.

I know Wlofie uses DynDNS and he's used it for several years with no problems. So I figure I'd check it out and see if it could be used.

Looking around, it seems their clients assume the computer in question has the public IP address. Which in Bunny's case, isn't the case. Her DSL router has the public IP address.

Not to worry though—there's a Linux system at her house as well. But the Linux client isn't officially supported. Okay, but it appears to work anyway. But it's a Perl based client and call me a computer language bigot (“you computer language bigot!” thanks) but the idea of running a daemon written in Perl just doesn't sit well with me.

Besides, it too requires the computer in question to have the public IP address. Oh sure, you could configure the Linux client to use their CheckIP server, but when I tested it, I get the private IP address, not the public IP address (but see below for an update).

Great CheckIP server there, guys.

So I figure I'll roll my own. It doesn't look that hard actually. Have a simple client program connect to a DNS server I control. The server side can grab the public IP address from the actual connection, and if the appropriate bits are sent across the wire, the server will then update the IP address in the appropriate zone file and that's that.

And I'm definitely overengineering the program.

But then again, in college I was told by a professor to stop the overkill on my programs.

Update on Monday, November 27th, 2006

Seems I made a mistake when I tested the CheckIP page. It works fine unless you use a web proxy, which I do.

Oops.

Sunday, November 26, 2006

“What color are your toxins?”

Are you dealing with chronic illness, fatigue or have you have chemotherapy or radiation treatment?

Detox footbaths will help!

You will witness the stunning cleansing process before your own eyes!

This process can simply be described as “sweat” in water!

What color are your toxins?

BBS™ Ionic Detoxification Footbaths

Man alive, what you can find out on the Intarweb these days. And these units are not cheap either! Just amazing that these people get away with such nonsense (I'm betting the detoxification footbaths work along the same principles as ear candles (scroll down the page—the actual bit about ear candles is near the end).

What's really funny is the disclaimer in this really itty-bitty font—the “product is not intended to treat … any medical condition … so no medical claims are made.”

Warning: Body Balance System™ is not recommended for pregnant or nursing mothers, persons with pacemakers, implanted organs, epilepsy or open wounds on the feet. Body Balance System™ is a product of Lifestream Medical Corporation. The product is not intended to treat or diagnose any medical condition but is provided for you in your own research about bioactive frequencies and the desire to eliminate toxins and heavy metals from the body. These devices are pending FDA approval, so no medical claims are made. Any BBS™ devices being sold are for experimental use only as a service to you and does NOT imply or can be construed as medical advice, diagnosis or a SELF-HELP prescription for any individual or any specific health condition.

BBS™ Ionic Detoxification Footbaths

Oh, why am I looking up detoxification footbaths? I'm not—it just came up in some information I was looking for and found it too amusing not to blog about it.

Monday, November 27, 2006

Never again will I live in a place with Condo Commandos

The subdivision's rules say no signs, billboards or advertising are permitted without the consent of the architectural control committee.

Kearns [president of the Loma Linda Homeowners Association —Editor] ordered the committee to require Jensen to remove the wreath, but members refused after concluding that it was merely a seasonal symbol that didn't say anything. Kearns fired all five committee members.

Via Wil Wheaton, Subdivisi on Bans 'Divisive' Wreath With Peace Sign

Boy, and I thought the Condo Commandos where I lived were bad …

Tuesday, November 28, 2006

A request

From
Spring Dew <XXXXXXXXXXXXXXXXXXX>
To
"Sean 'Captain Napalm' Conner" <sean@conman.org>
Subject
googling
Date
Tue, 28 Nov 2006 16:19:55 -0500

Hi honey. I was looking for Bicycle World's website, and tried to Google things like:

Lots of Yellow Pages listings, but no results for the actual website. I finally found the site by going to

http://www.wildernessenergy.com/retail_locations_florida.html

and getting the link from there.

Most of the pages on their site don't have much for keywords or description; most don't mention Florida. But if you were to link to

http://bicycleworldonline.com/page.cfm?PageID=12

do you think Google might pick up the result? That page actually has place names in it. The home page doesn't.

Working backwards, the only way I could find it was to Google for results directly from that URL. Heh.

Certainly I'll link to that page. But it's iffy if Google will index the page. It depends upon the sites robots.txt file, if there are any appropriate <META> tags on the page, and will Google spider a site that is most likely the output from a CGI program (that can have bad consequences—infinite loops, lost data, etc.).

But it can't hurt to try.


Today's issue

Nothing worse than trying to debug FTP issues in the presense of firewalls.

FTP is a really old protocol that due to the way it works, makes it difficult to support properly when there are firewalls at both the client side and the server side, primarily because by default, whenever the server wants to send data to the client, the server initiates a connection back to the client. Sure, there's passive mode, but that just means that the server tells the client to connect on a different (and usually blocked) port on the server for the data.

It's especially frustrating when these things suddenly stop working.

Grrrrr.

Wednesday, November 29, 2006

“I'm sorry, but Donald Duck did it first.”

There is a famous story (among patent attorneys, at least) about a Donald Duck story being used as prior art against a patent. This concerned an invention in which sunken ships can be raised by pumping buoyant bodies into them, which eventually will provide sufficient upward lift to bring the ship back to the surface. In a 1949 Donald Duck story, titled The Sunken Yacht a ship is raised by stuffing it full of ping-pong balls. But whether the story was actually used by a patent office to refuse the patent application remains unclear.

Via news from me, The “Donald Duck as prior art” case

I think that's really neat, and even better, the story itself was written and drawn by my favorite Disney cartoonist Carl Barks.

I also remember him doing an Uncle Scrooge comic where the Ducks use old inner tubes to raise a riverboat (a charming story about Scrooge McDuck raising a riverboat to finish a riverboat race with a rival).

Heck, I remember another Carl Barks story which had a credible explaination for the Flying Dutchman myth. Heck, all the Carl Barks stories were great.

Thursday, November 30, 2006

The changing of the seasons

Today is a very special day—it's the end of freaking Hurricane Season!

Woot!

Only nine storms through October (the November stats haven't been released yet by the National Hurricane Center) and of those, five were hurricanes, and none hit the United States (and only one, Hurricane Ernesto, seems to have done any damage whatsoever).

All in all, it's been a quiet hurricane season, for which I am thankful.

And in other hurricane related news:

The World Meteorological Organization (WMO) has just released two updated statements on the state of science on tropical cyclones and climate change. The statements have been released today through the Instituto Meteorologico Nacional, San Jose, Costa Rica. Anyone referencing this post or the statements, please do acknowledge them as the source.

We are pleased that the WMO statements are 100% consistent with the views on this subject that we have been sharing over the past few years. In particular, it should now be completely unambiguous that those who are representing hurricane impacts as being related to greenhouse gas emissions, without acknowledging that this is not a widely shared perspective among scientists, are either cherry picking the relevant science or misrepresenting the community consensus. As a matter of policy, those interested in addressing the impacts of tropical cyclones on people and economies necessarily should be focued on adaptive responses. We have obviously made this case for a while, now there is no ambiguity.

Via Flares Into Darkness: Yet Another Really Great Blog, WMO Consensus Statement on Tropical Cyclones and Climate Change (emphasis added)


“And now for something completely different … ”

The Star Wars Saga as Presented by Three Guys in 30 minutes.

(Link via tryss)

Friday, Debtember 01, 2006

Blah

It must have been something I ate. I'm nauseated, but not so much that I feel like giving up an offer to the Great Porcelain God. Mostly I'm flipping between feeling sick, and sleeping.

Blah.

Saturday, Debtember 02, 2006

Non-blah

Whatever was in my system has finally passed (out the right oriface too!) and I'm feeling much better.


Searching for code

From
Mark Grosberg <XXXXXXXXXXXXXXXXX>
To
sean@conman.org
Subject
Search engine…
Date
Sat, 2 Dec 2006 13:15:15 -0500 (EST)

Hey Sean,

I had 5 minutes to myself this month from work and found krugle.com, a code-search engine.

Ever hear of it? Worth blogging about?

Nope, I haven't heard of that particular one (and I tried it, pretty sweet), but I have heard of a few other ones, such as koders, Programming Langauge Research Engine and even Google's Code Search.

Now, Programming Language Research Engine is based upon Google Co-op, which allows you to make a highly targetted search engine—I wonder how many of the other source code engines are based upon that?

Sunday, Debtember 03, 2006

From the “Flogging the Dead Horse” Department

I know, I know, you like your GPS unit Gregory.

But then I read stores like these, where an ambulance takes five hours to reach a hospital eight miles away, or of the poor German fellow who drove right into a closed offramp and I have to wonder, are we getting too dependant on technology?

Sorry for flogging that dead horse.

Monday, Debtember 04, 2006

What I'd really like is to cause coulrophobia in our customers …

There are times when I'm so tempted to send customers this link. I really would.

And yes, I do need to update the other site more often.

Sigh.

Tuesday, Debtember 05, 2006

Nothing much to see unless you're a programmer

It was a quiet day today and I spent it reading a series of articles on programming. The articles are mostly about topics that have yet to reach the mainstream (although, given what Lisp looks like in addition to some other issues, I doubt Lisp will ever hit “mainstream”) and also provide some of the most coherent explanations I've seen for concepts like continuations, closures and currying.

Wednesday, Debtember 06, 2006

“Education is basically a series of rent-seeking rackets”

Towering over all these lesser scams is the college racket, a vast money swollen credentialing machine for lower-middle-class worker bees. American parents are now all resigned to the fact that they must beggar themselves to purchase college diplomas for their offspring, so that said offspring can get low-paid outsource-able office jobs, instead of having to descend to high-paid, un-outsource-able work like plumbing, carpentry, or electrical installation.

Similarly with “incentives to bring the best teachers to the worst schools.” Setting aside the fact that you are dealing with a line of work whose labor union is armed with thermonuclear weapons, even supposing you could establish a free market in public-school teachers, how could the worst schools—inner-city schools serving black neighborhoods—ever outbid leafy, affluent suburbs for those “best teachers”? And how many “best teachers” are there, anyway? As the Thernstroms point out, a lot of these prescriptions for school reform assume an unlimited supply of “saints and masochists”—teachers like those in the KIPPs schools, who, Mr. Tough tells us, work 15 to 16 hours a day. I am sure there are some people who enter the teaching profession with the desire to crunch their way daily across the crack-vial-littered streets of crime-wrecked inner-city neighborhoods in order to put in 15- hour working days, but I doubt there are many such.

Via Flutterby, The Dream Palace of Educational Theorists

I found it to be a rather amusing rant against the current American educational system, because, hey, who doesn't like a rant against the current American educational system?

Thursday, Debtember 07, 2006

Still nothing much to see unless you're a programmer

Those of us who deal with programming and are suspicious enough to see that our daily professional life could be improved, are often confronted with functional programming. There is a great misunderstanding going on regarding what functional programming is and what are its benefits, and where and how imperative programming is wrong. Supporters of functional programming claim it is the best thing since slice bread, but I beg to differ, and that's why I decided to write this blog.

A sincere comment on functional programming

Yet another article about programming, related to the post on Tuesday.

I have a bunch of thoughts on this, but they're all half-formed, and I've already spent over two hours trying to get something coherent written, but haven't. This will have to wait until another day.

Update around 1:30 am Friday, Debtember 8th, 2006

Of course, in writing that post, I forgot to mention Coverity (link via Flutterby), which appears to be a form of lint on steroids. It's a commercial product based off the Meta-Level Compilation Project. Pity that it's already gone commercial, but at least they give an indication of what it can do (Mark would probably say something like, “Finding bugs in Linux? Isn't that like shooting fish in a barrel?”).

Update a few minutes later

My thoughts were so unfocussed that I found vocalless music too distracting.

Friday, Debtember 08, 2006

I suspect email isn't long for this world

I'll go out on a limb here and make a prediction: By January of 2009, email as we know it will be dead. It will have to be, given these current stats at The Company (which is a small webhosting company):

Amount of spam through our spam firewall
Total % Day % Hour %
Blocked 53,632,194 94 47,855 96 2,425 95
Blocked: Virus 17,276 0 0 0 0 0
Quarantined 54 0 0 0 0 0
Allowed: Tagged 658,888 1 177 0 7 0
Allowed 2,807,144 5 1,957 4 119 5
Total Received 57,115,556 100 49,989 100 2,551 100

As a friend said (on a private post—hope he doesn't mind me posting it here):

But really I hope you all, being support and customer care, really know that we, being server ops, are doing everything we can to keep up with the dramatic increase in mail volume internet wide.

Yesterday alone we saw a temporary spike of email volume that was measured at 100Mb/sec for about 2 hours. This is really really hard to keep up with, and has a lot to do with why I am getting out of the webhosting industry all together.

And another friend (not the same as quoted above) is seriously looking for another job away from webhosting as well, although I don't know if it has to do with the email volume or not.

Saturday, Debtember 09, 2006

Two pictures taken at night with a 15 second exposure while walking down a neighborhood looking at the outside season decorations somewhere in South Florida

[Lightbright I]

 

[Lightbright II]

 

Sunday, Debtember 10, 2006

Bah, humbug

Scrooge has been called ungenerous. I say that's a bum rap. What could be more generous than keeping your lamps unlit and your plate unfilled, leaving more fuel for others to burn and more food for others to eat? Who is a more benevolent neighbor than the man who employs no servants, freeing them to wait on someone else?

Oh, it might be slightly more complicated than that. Maybe when Scrooge demands less coal for his fire, less coal ends up being mined. But that's fine, too. Instead of digging coal for Scrooge, some would-be miner is now free to perform some other service for himself or someone else.

Via Instapundit, What I Like About Scrooge: In praise of misers.

I've always felt that Ebeneezer Scrooge got a bum rap (than again, that could be my inner “Bah, humbug!” speaking). Several years ago, after watching about the five billionth rehashing of A Chrismas Carol, I got the idea of writing a short story about Scrooge that takes place seven years after the events in the book. In the story idea, Scrooge is once again visited by the ghost of his ex-partner Marley, wherein he learns that not only has he lost all his wealth to philanthropy, but that the very people he was helping were taking advantage of him.

Monday, Debtember 11, 2006

On the menu tonight: spam

I had dinner with my old roommate Rob tonight, and the main topic of conversation was, if you can believe it, spam.

Rob, who works at Negiyo, is dealing with similar issues that I am at The Company, only a few orders of magnitude worse (Rob was amused at the low volume we have to deal with at The Company). They have over a 150 email servers slowly melting under the strain of spam coming into their network.

Given the load, I mentioned to Rob that it sounds like Negiyo is having C10k problems with email, and that they should talk to Google. Rob didn't think that was likely.

“I've noticed that about 40% of the spam I get comes through the secondary MX record.”

“We only use one MX record,” said Rob.

“Can you set up a secondary and just dump all mail to it?”

“With over a million zones, I don't think management will accept that.” Basically, they won't change a million zone files.

“How about greylisting?”

“Too much programming,” he said. “I doubt management will go for it.”

“What about telling your customers to use Gmail?”

“It would cost too much money to partner with Google,” Rob said.

“No,” I said. “Just tell your customers to use Gmail.”

“Oh, an indirect partnership,” said Spring.

“I don't think our customers will go for that,” said Rob. “We can have 100% uptime on the webserver, but if email goes down for even five minutes, our phones light up.” Spring concurred (since she too, works for Negiyo) and yes, I have to admit, our customers are the same way.

“You could always just dump bounce messages, and messages sent to <>,” I said.

“We do that already,” said Rob.

“You guys are screwed,” I said.

“I know.”

Tuesday, Debtember 12, 2006

You mean it's another one of those talk like days?

“So where are the Christmas decorations?”

“Not here.”

“I can see that.”

“So why ask?”

“Because … because it's Christmas. It's the holiday season!”

“There are other holidays this time of year other than Christmas.”

“You have got to be kidding me.”

“No, I'm not. Chanukah, Kwanzaa, Saturnalia—”

“Saturnalia?”

“Saturnalia.”

“What the XXXX is ‘Saturnalia?’”

“Please, don't cuss in my blog.”

“Sorry.”

“Accepted.”

“Okay, but what the … beep is—”

“You just said ‘beep.’”

“Yes.”

“Why did you say ‘beep?’”

“Because you just told me not to cuss in your blog.”

“So instead of reworking your sentance to exclude the swear word, you actually beeped yourself?”

“Yes.”

“You're weird.”

“Be that as it may, you still haven't answered my question.”

“Which is—”

“What the beep (and please, don't make a fuss about me beeping myself; I'm not the one with problems cussing) is ‘Saturnalia?’”

“Okay, remove the religious overtones of Christmas.”

“Okay.”

“And what do you have left?”

“Eating. Giving presents. Decorating. Buying stuff you don't need and going horribly into debt.”

“And that is Saturnalia.”

Blink. Blink.

“Okay, move it to ancient Rome and you have Saturnalia.”

“And you called me wierd?”

“Hey, modern Christmas is all but Saturnalia in name.”

“Okay, so where are the Saturnalia decorations?”

“Not here. Too much trouble.”

“Too much trouble tossing up a tree and a few lights?”

“Too much trouble. Especially following The Rules.”

“The Rules.”

“The Rules. No 50s lights. No multicolored lights. Restrictions on wicker reindeer. Stuff like that.”

“There are restrictions on wicker reindeer?”

“Yup. Neighbors get upset at reenactments of The Wicker Man.”

“Reenactments of—wait a second!”

“Hello, yes?”

“Our bantering.”

“Yes.”

“Back and forth.”

“Yes, we're bantering back and forth.”

“It wouldn't happen to be ‘Talk Like Michael Bendis Day’ today, would it?”

“It would so happen to be ‘Talk Like Michael Bendis Day’ today.”

“What a geek.”

“Why thank you.”


“Well, you have to know these things when you're a king, you know.”

After spending some time last month trying to develop alternate graphic presentations for kinematic ratios in winged flight, I decided to try to answer one of the timeless questions of science: just what is the airspeed velocity of an unladen swallow?

Via Flares into Darkness, Estimating the Airspeed Velocity of an Unladen Swallow

And now you know.

“Know what?”

“Pardon?”

“Know what?”

“Hey, I already did the post about Talk like Michael Bendis Day.”

“No you did not.”

“Yes I did.”

“No you didn't.”

“Yes I—hey, wait just a second …”

Wednesday, Debtember 13, 2006

How long until enough admins say “Enough is enough!”?

The Email Situation is getting worse. From a mailing list I'm on:

From
"Jay West" <XXXXXXXXXXXXXXXXXXXX>
To
"General Discussion: On-Topic and Off-Topic Posts" <XXXXXXXXXXXXXXXXXXXXX>
Subject
classiccmp list (sort of) help requested
Date
Wed, 13 Dec 2006 15:51:49 -0600

Listowners perogative to ask a question that is only halfway on topic … ;) I figure some people here may have some good suggestions—offlist please.

There is a SpamAssassin machine(s) filtering spam being sent to the list that sits in front of the classiccmp server (we're also making use of Pyzor, Razor, milter-ahead, and clamav). It's been doing a wonderful job, such that most spam is kept out of the moderators faces. However, over the past few months I've noticed that more and more is getting through (not to the list, but to the moderators eyes who have to kill it all manually). Same goes for many of my customers.

What concerns me is that 99% of the new spam making it through is vaguely sensible english phrases (apparently automatically pulled from online books, or from usenet post archives, etc.). If there was also an advertisement text, Spamassassin could catch that. However, the text is all just english phrases (I've noted them to be targeted phrases, like having to do with computers, sometimes old ones) but … the advertisement is a graphic attachment. Since SpamAssassin can't do OCR on the small gif or jpg attachment that says “buy viagra here” … I am not sure what to do about this. It comes from all over, not just a few servers, etc.

Before you say “just kill all emails with graphic attachments” [the mailing list this appeared on is geared for older computer systems and as such, the general population of the list frown on email attachments, being “old school” and all that; thus this comment from the list owner —Editor] … keep in mind that these spamassassin machines do their job for thousands of domains that I host, not just classiccmp.org. So just killing all emails with graphic attachments is simply not an option. If anyone can give me a few ideas that will work well for ISP/hosting-class environments, I'd love to hear it. Off-list please! Thanks in advance for any advice.

Best regards,

Jay West

I can't see this continuing for much longer before most ISPs and webhost companies simply give up on email entirely (or some people get real serious about solving the spamming problem and we end up with a rash of spammers dying due to excessive rapid lead poisoning).

I wrote the following back to Jay:

From
Sean Conner <sean@conman.org>
To
Jay West <XXXXXXXXXXXXXXXXXXXX>
Subject
Re: classiccmp list (sort of) help requested
Date
Wed, 13 Dec 2006 17:26:24 -0500

I work at a webhosting company, and we're getting swamped. I have a friend who works for Negiyo (huge web hosting company) and they're getting swamped as well. And we both ran out of ideas.

What you might want to start with is disallowing catchalls (all email to a domain going to a single email account). That will probably cut some of the spam down. Another thing you might consider is setting backup MX records to 127.0.0.1. I tried that for my own domain and it cut spam 40% (I don't filter spam to my personal domain, but by the same token, I don't have a catchall for my domain either). You could also try looking into greylisting although it might not scale for a few thousand domains.

Another idea I just had—perhaps do an MD5 hash over the body of the email and store the result. If you get a match (or some number of matches) then it's probably spam and can be deleted (although it may be a mailing list; try applying some heuristics).

Short of that, I don't have many other ideas.

-spc (beginning to think that email will be dead in a few years … )

I wish him luck.


Night lights

It was four years ago that I last photographed lights at night (I absolutely love Christmas lights), so it's been more than long enough. Tonight Bunny took me to the Holiday Fantasy of Lights at Tradewinds Park, where I managed to get some spectacular photos this year.

[Englightened road] [Green streaks] [The car moved right at the end of this picture] [Englightened Christmas Colored Trees] [Setting the scene for “Englightened Christmas Colored Trees’] [What Number Six never told anyone is that the Village was quite nice at night …] [Wavy light tree] [Yellow Streaks] [1.21GW @ 88mph] [Tunnel of light] [Work continues on a nearby mountain (what?  A mountain in Florida?)] [Someone call the NBA!] [Silver Streaks] [Magic Kingdom] [Damn bears were impossible to photograph!] [Squiggles] [Squiggles II] [Squiggles III] [“Photon torpedos fired, sir!”]

It's funny. I lived practically across the street from this for almost fifteen years and not once did I ever bother to go. Now that I live about fourty-five minutes north … I go.

Go figure.

[Merry Christmas to all …]

Thursday, Debtember 14, 2006

Crazy Day

Today was a rather crazy day.

The email woes continue to pile up (complaint one: not receiving email, but a check of the logs show a successful delivery of email—go figure. Complaint two: another customer says emails aren't going out. Upon further inquiry, it seems he's trying to send out a few hundred emails to his clients, wishing them a happy holiday season. Sigh) as I was attempting to finish up some household chores before driving into The Office for a dinner meeting.

[Ooh, pretty doodles]

Then it was the drive down to The Office and then a three hour meeting (with dinner). Much talk, not much resolution as XXXXX XXXXX XXXXXX XX XXXXXX XXX XXXX XXXXXXX XXX XXX XXXXXXXXX XXXXXX XX XX XX XXXX XXXXXXXXXX XX XX XXXXXXX XX XXXXXXX XX XX XXXX (best not to ask—it's still starting up).

Then back home for a family finance meeting (the home insurance is skyrocketing and our property taxes have tripled!) for a few hours (fun fun fun).

Only then did I get a change to finish up yesterday's entries (sorting through a lot of photos, and writing code to help generate the entry) and then this entry.

So, now to relax and get to bed.

Friday, Debtember 15, 2006

A one time tax break

When it comes time to prepare and file your 2006 tax return, make sure you don't overlook the “federal excise tax refund credit.” You claim the credit on line 71 of your form 1040. A similar line will be available if you file the short form 1040A. If you have family or friends who no longer file a tax return AND they have their own land phone in their home and have been paying a phone bill for years, make sure they know about this form 1040EZ-T.

What is this all about? Well the federal excise tax has been charged to you on your phone bill for years. It is an old tax tha t was assessed on your toll calls based on how far the call was being made and how much time you talked on that call. When phone companies began to offer flat fee phone service, challenges to the excise tax ended up in federal courts in several districts of the country. The challenges pointed out that flat fee/rate phone service had nothing to do with the distance and the length of the phone call. Therefore, the excise tax should/could not be assessed.

Via Shadesong, A Geek in Beantown: Special One Time Tax Credit on 2006 Tax Return for Excise Tax

Not only will I have to remember this for April 15th, but I'll also need to check my cell phone bill—I seem to recall some rather suspicious looking taxes on that.

Saturday, Debtember 16, 2006

“There's nothing better than camel head soup … ”

I hate travel.

No. Too strong.

I really dislike travel.

It's not that I hate the destinations—often times I'm ambivilent about the destination and I'm only going because of people I know (although there are exceptions). I hate travel because of the getting there (and boy, do I have plenty of travel horror stories to tell).

Travel in and of itself is not my thing.

So I'm finding Michael Palin's Sahara to be very amusing, in a schadenfreude type of way. From trains that run over a day late where the first class accomidations means you share a bunk with one other person (and steerage class means you share a bunk with a ton of iron ore) to river boats that run aground. Where you get to sample such delicacies such as camel head and sheep testicles.

Yum.

Yes, watching the show is definitely re-enforcing my biases against travel. And truely, there is no better way to travel than through the small screen (in much the same way that I appreciate nature best through the Animal Channel).

Sunday, Debtember 17, 2006

Lucky

“I'm afraid we're going to have to call it off,” I said to Spring over the phone.

“Why?”

“Because I'm talking to Mr. Officer here,” I said, looking up and out the car window at the State Trooper as I handed over my drivers license, insurance card and registration.

I was rushing home from rebooting a recalcitrant server, doing about 80mph on I-95 so that Spring and I could catch the Tri-Rail down to Opa-Locka; Spring thought I might like to take pictures of the City Hall, and in order to do this, we needed to make the 5:00 pm train.

But I suspect Mr. Officer overheard my comment to Spring. He glanced at my papers, then pulled a pen out. “Would you rather have a warning, or a ticket?” he asked.

Well. That's certainly a no-brainer. “A warning?”

“Okay,” said Mr. Officer. “Just keep it slow, and you'll want to check out your tire there.” He pointed to the front driver side tire. “That looks to be, what? 20 pounds of pressure. A bit low.” I climbed out of the car and took a look.

Yup, it was low.

“So please, get it fixed.”

“Thank you,” I said, taking the written warning from him. “Merry Christmas.”

And I'm trying hard not to get cocky (and yes, the car is now legal to drive).

Afterwards, I called Spring back, saying that we could probably make it afterall, but that we would have to meet at the station.


“Don't forget the passport.”

Spring felt I might like to take pictures of the Opa-Locka City Hall. She also felt it would be nice if we took the Tri-Rail down to the Opa-Locka station, about a block away from the City Hall.

I almost didn't make it but I parked at the Lake Worth Tri-Rail station and as I was walking (the parking lot is about a block away from the station itself) I heard the train pulling into the station. I started to run (boy, am I out of shape) but it turned out to be a maintenance train going through the station.

Spring had already bought my ticket and I had a few minutes to catch my breath before the actual Tri-Rail train pulled up.

[The Tri-Rail is a'coming] [Spring asking the security guard about the neighborhood (outlook not so good)] [Opa-Locka Tri-Rail station] [Platform 9 3/4] [Hmmm … a Batman villian must be nearby] [Watch out!  Train coming through] [Bert's been overfeeding his pigeons] [Train still coming through]

But Spring has miscalculated the timing and was unaware that we would arrive at Opa-Locka after it got dark. And because the neighborhood of Opa-Locka is less than stellar, we decided to stick around the train station until we could head back north.

Monday, Debtember 18, 2006

Oh how I long for the Monopolistic Power Company here in Florida

Beeeeeeeep.

Beeeeeeeep.

Beeeeeeeep.

It wasn't my alarm, in this case, my cell phone (the actual alarm clock long having died on me) as that starts out very soft and gradually gets louder (a very cool feature that).

Nope, this was a loud inscessent beep.

It was then I realized it was the UPS.

Yup. Power failure.

I roll out of bed, confirm the power outage (yup—bathroom lights don't turn on—we's got no power) and start the process of shutting down the computers.

Blah.

I later learn that Lake Worthless Utilities were doing maintenance on the power lines in our neighborhood and hadn't bothered to inform anyone they where doing that.

Lovely bunch of fellows there.


alt.spammer.die.die.die

I swear, I'm getting ready to tell our customers to shove it and use GMail; we don't handle email anymore.


Parable of the Stairs

The other day a young girl came to the door to solicit my support for her presidential candidate. I asked her why I should vote for this man. She was very nice and earnest, but if you got her off the talking points she was utterly unprepared to argue anything, because she didn't know what she was talking about. She had bullet points, and she believed that any reasonable person would see the importance of these issues and naturally fall in line. But she could not support any of her assertions. Her final selling point: Kerry would roll back the tax cuts.

Then came the Parable of the Stairs, of course. My tiresome, shopworn, oft-told tale, a piece of unsupportable meaningless anecdotal drivel about how I turned my tax cut into a nice staircase that replaced a crumbling eyesore, hired a few people and injected money far and wide—from the guys who demolished the old stairs, the guys who built the new one, the family firm that sold the stone, the other firm that rented the Bobcats, the entrepreneur who fabricated the railings in his garage, and the guy who did the landscaping. Also the company that sold him the plants. And the light fixtures. It's called economic activity. Whatss more, home improvements added to the value of this pile, which mean that my assessment would increase, bumping up my property taxes. To say nothing of the general beautification of the neighborhood. Next year, if my taxes didn't shoot up, I had another project planned. Raise my taxes, and it won't happen—I won't hire anyone, and they won't hire anyone, rent anything, buy anything. You see?

“Well, it's a philosophical difference,” she sniffed. She had pegged me as a form of life last seen clilcking the leash off a dog at Abu Ghraib. “I think the money should have gone straight to those people instead of trickling down.” Those last two words were said with an edge.

“But then I wouldn't have hired them,” I said. “I wouldn't have new steps. And they wouldn't have done anything to get the money.”

“Well, what did you do?” she snapped.

“What do you mean?”

“Why should the government have given you the money in the first place?”

“They didn't give it to me. They just took less of my money.”

That was the last straw. Now she was angry. And the truth came out:

“Well, why is it your money? I think it should be their money.”

Then she left.

And walked down the stairs. I let her go without charging a toll. It's the philanthropist in me.

James Lileks: A minor political note, if you're interested in such thing

My guess, the girl worked for a PIRG where knowledge of a particular issue isn't a requirement to work for them (link from Jane Galt).


Archie in the 21st Century

So I learn that Archie Comics are getting a face lift with a new direction in art. It seems odd to think that Archie & Co. will have a whole new look—what caused this to happen? Wasn't the old house style good enough?

But when you look closer at past (70s) Archie (50s and 80s) comics (60s) you can see the style has changed over time—it's not as static as people make it out to be.

And perhaps the Archie company realized they needed to update the look of the comic to remain relevant (and more importantly—solvent!) in these modern days. After all, they know their market better than I do (heck, I don't even buy Archie comics anymore) and it's the obsessive catering to the hard-core fan that has gotten DC and Marvel into the mess they're in today (wherein the story lines are hopelessly messy, and any new time buyer is going to be totally lost without buying about a thousand dollars worth of back issues across all their titles—in other words, they aren't new reader or casual reader friendly).

But it sure would go down easier if the artwork was even halfway decent.

Ick.

Tuesday, Debtember 19, 2006

Bad Hair Day

Today was so bad at The Office that I've blocked it out of my mind (read: the only notes I have for today were “bad hair day” and since I'm writing this nearly a week later, I've forgotten all the details).


I bet David Rhodes wishes this would die

My name is David Rhodes. In 1992, my car was repossessed and bill collectors were hounding me. I was laid off work and my unemployment ran out. In October 1992, I received a letter telling me how to earn $800,000 anytime I wanted. O fcourse, I was skeptical, but because I was so desperate and virtually had nothing to lose, I gave it a try. In January of 1993 my family and I went on a 10 day cruise. The next month I bought a brand new Mercedes with cash. I am currently building a new home in Virginia and will never have to work again. This money program really works perfectly every time. I never failed to receive less than $500,000. This is a legitimate moneymaking opportunity. It does not require you to sell anything or come in contact with people. And, best of all, you only leave the house to mail the letters. If you have always thought that someday you would get a lucky break, then simply follow the instructions and make your dreams come true.

Blah blah blah … fairly typical pyramid chain letter, except that it came via postal mail!

Yes, I received a David Rhodes letter via the post office (I can only hope that Brian W., Carrissa P., Christopher J., Shira K., Carla G. and Melody B. aren't taken away by the authorities (at least, until after Christmas) as such chain letters are illegal).

How neat is that?


Data center in a box

Oh my! It looks like Sun is doing what Google was rumored to be doing.

Wednesday, Debtember 20, 2006

These people should know better

Went into file manager and went to edit one quick thing on an html page and got this error. It worked previously. Please check it out. Thank you.

getpwuid(): uid not found: 508

The complete ticket from one of our resellers

This is from one of our resellers. They have scores of sites with us. Across a few servers.

They know this. Apparently, what they don't know is that I'm not psychic.

I replied the only way I could:

What server? What website? What file?

Sigh.

Thursday, Debtember 21, 2006

It's easy to make, so of course I burn it

Hummus is easy to make. And a heck of a lot cheaper to make than to buy. How easy? Cook some chick peas in boiling water. Drain water. Mash. Add tahini (which is crushed seaseme seeds, and it's pretty easy to get here in Lower Sheol), water and lemom juice (keep adding until the consistency is nice and smooth). Optionally throw into a blender or food processor to make it even smoother.

That's it.

So of course, I start the cooking process, and forget about it for four hours!

What I ended up with was a bunch of carbonized chick peas (which, as Alton Brown would say, are not Good Eats™) and one rather burnt pan.

An hour of hard scrubbing later, and I'm on my second attempt.

Only this time, I have a timer I'm carrying around to remind me to check up on things every twenty minutes or so.

The result: some gosh darn good hummus (I added garlic and olives to the mixture, as Spring likes her hummus that way).

Friday, Debtember 22, 2006

The spam just keeps rising

Spam levels rose by another 35% in Novemeber. This really does prove to me that I made the right decision in leaving the webhosting business. Its getting to a point now were email is going to no longer be cost effective to host. Now where I am at now has their own problems with spam, it's nothing to the level of where my last employeer was at. Here we get about 200-300 spam messages a day. Though we do get too many false positives but that is going to be a big part of what I am going to be doing here early on.

I'm 100% sure I made the right decision

Looks like my prediction might happen sooner than I expected.

Saturday, Debtember 23, 2006

Two amusing musical links

I've got two musical links for today.

First one, from Bunny: Straight No Chaser—12 Days. A twelve man a-cappella group sings “The Twelve Days of Christmas” but it's no Twelve Days you've ever heard (I do feel sorry for the one Jewish guy in the group, but you'll have to watch it to see what I mean).

The second one: Pachelbel Rant—a rant on Pachelbel's one hit wonder, Canon in D (and yes, it surprised me that the Classical World had one hit wonders), and amazingly enough, one can't get away from Pachelbel's Canon in D. Even today.

Sunday, Debtember 24, 2006

Catsup on Christmas Eve

I wasn't feeling all that well yesterday so when I finally got home from a last minute dinner meeting (set up a few weeks ago by Smirk, but only today did he remember it—sigh) I fell asleep.

Slept a long time, but when I did get up, I felt much better.

So I spent the day taking it easy (hey, it's Christmas Eve), catching up on all the entries I've missed here for the past week, and even made some brownies (Spring's sister is arriving here tomorrow for a few days).

Now, time to veg even more.

Monday, Debtember 25, 2006

An old fashioned Merry Christmas

.qggL     .gggr.
  PMML    /|MM
  |!MM,  /`|MM   .d/"q,  qgg;+Ml qgg;+Ml vgg. .y.
  | YMM,j' |MM   MM;.jMl |MM` "  |MM` "   qM| j`
  |  qM#'  |MM   MM|     |MM     |MM       MMg'
.j|.  qF  .+MM.. 'MMbxr` jMM.    jMM.      'MF
                                         x, /
                                         v#'
  .x/--\xxl ,xx               ,gb           .
.dMT    'q| |MM               '"'         .dM
dMM       ` |MM/dMg,  qgg;+Ml qgg  j/"`+  qMM-. ,g'`fg,  qgg/dM#,w#Mb  j/"`+
MMM         |MM  MM|  |MM` "  |MM  MMbx/  |MM   `P'.jM|  |MM  |M|  MM  MMbx/
'MMl      . |MM  MM|  |MM     |MM  .`vMMl |MM   ,gP`|M|  |MM  |M|  MM  .`vMMl
 'vMb...r/` jMM..MM|. jMM.    jMM. +,.,P' 'MMx: MM|r+M|. jMM..dM|..MM, +,.,P'
     ""

[Yes, I know it's misspelled. That's how I found it. But it took me about ten tries just to get it posted—I'm not about to muck with it further trying to correct the misspelling. Sigh. --Editor]

Tuesday, Debtember 26, 2006

Well, that was Christmas

Christmas as only slightly chaotic as the plans to pick up Spring's sister changed at the last minute.

But dinner went well and the rest of the evening was spent watching a very hokey Hebrew Hammer (think an Orthodox Jewish version of Shaft—I guess that makes it a Judexploitation film) and several episodes of Torchwood (a spinoff of Dr. Who) that was better than I expected it to be (basically, man who can't die heads a team recovering alien artifiacts that show up on Earth).

And today was a quiet day. Not much of anything noteworthy happened today.

Wednesday, Debtember 27, 2006

It was the best of ideas; it was the worst of ideas

From Spring comes news that Val Kilmer is signing up for a sequel to “Real Genius” and I for one, have mixed feelings about this news.

On the one hand, I loved the film, the lines (“What are you looking at? You're laborers; you should be laboring. That's what you get for not having an education.”), the characters (especially Michelle Meyrink's Jordan)—everything about the film. So why shouldn't I want to see more of these characters?

And then we come to the second hand—“Real Genius” was self-contained. There were no dangling plot lines to tie up. The Good Guys got the girls, the Bad Guys got a home filled with popcorn, all was right with the world. What possible story could they do after twenty years? Mitch, Chris, Jordan and Ick go in search of Lazlo and Sherry Hollyfeld before Jerry Hathaway and Kent get to him first?

I'm having problems seeing a possible sequel. Sometimes, no sequel is better than a sequel.

And I think this is one of those times.

But I hope (if this pans out) to be pleasently surprised.

Thursday, Debtember 28, 2006

What? Another gamer film?

Bunny wanted to see “The Gamers” again, but my copy isn't a full copy—it's missing the commentary so I told her that she might want to rent it from Netflix. And apparently, in looking for it, she came across “Gamers” which has some big name stars for such a niche market film.

But I'm finding the clips to be very cringe inducing indeed and I'm thinking I'll probably just skip this one entirely.

Friday, Debtember 29, 2006

Schlepping bits

It amazes me sometimes what we go through to move bits from one computer to another.

I wrote my humor column on an old Tandy TRS-80 Color Computer using VIP Writer. When the time came to put it online I had the distinct pleasure of copying the files, which involved the following steps:

  1. Creating a specialized serial cable to go from my Color Computer, which used a 4-pin DIN plug, to my Amiga 500, which used the more standard DB-25.
  2. Load up VIP Writer, and select the “Print” option.
  3. Load up a terminal program on the Amiga, open up a capture buffer and then hold down the space bar to fool VIP Writer on the Color Computer that indeed, it was talking to a printer. Once the column finished “printing” I then saved the buffer into a file. I did that for every column you see.

That was just to get the files off the Color Computer. I still had to get them to the webserver in question, which, at that time, was my workstation at FAU. That involved one of the following steps (which I don't recall, since it's been about fourteen years):

  1. Dial into the FAU modem bank (this was way back before ubiquitous Internet access like we have now) and connect through an intermediary system (the dialup modems were hooked into a terminal server, which didn't talk TCP/IP, but DECNET—the intermediary system talked both DECNET and TCP/IP—this was way back when there were other networking standards other than TCP/IP) and then to my workstation, whereupon I had to upload the columns using the Kermit protocol, which was dog slow, but it worked, unlike the XModem, YModem or ZModem protocols.
  2. Copy the files to an MS-DOS formatted floppy using a special program on the Amiga, which reprogrammed the floppy hardware (and caused the computer to act very strangely while doing so), then physically take the disk to FAU, where I then used a Sun Unix workstation in the Computer Science Department to copy the files off, and then use FTP to get them to my workstation, where I could convert them to HTML and so place them online.

Thankfully, such days are long past us, and the ability to copy data is indeed easier. I'm working on a project at The Company whereby we need to extract data from QuickBooks. This involves:

  1. A program running on the same computer as QuickBooks that talks to QuickBooks using COM, with the data encoded in qbXML.
  2. The same program will then package the data into another form of XML and use SOAP to transfer the data to a webserver.
  3. The webserver is running a program that can accept the SOAP request, then extract the qbXML from inside the SOAP request. It then extracts the data from inside the qbXML and then we can work with the data. Probably by passing it onto yet another program.

Yup. Nothing like wrapping data into two different XML formats, transferring it across the network like a webpage, then extracting the data from within two different XML formats.

Sure is easier than the old days.

Saturday, Debtember 30, 2006

Walt Dismal World

Several months ago my wife and I made the fateful decision to treat our two kids, ages 8 and 3, to a Disney World vacation over Christmas break.

Via news from me, Walt Dismal World: Part 1

And that was his first mistake. It gets worse:

Next we looked for air transportation–and struck out. Delta and Southwest both offer nonstop Raleigh-Orlando service, but Delta wanted $700 per ticket for the 80-minute nonstop flight (less expensive seats were available for an ATL connection). Southwest was cheaper by far, but still set me back $1200 for four tickets.

Gulping hard again, I ponied up the fare.

Lastly, I checked on Walt Disney World tickets. As every parent on earth but me knows, there are four parks at WDW: Magic Kingdom; Epcot; MGM Studios; and Animal Kingdom. My local AAA agency educated me on the ins and outs of WDW ticket options, and we settled on "Magic Your Way" tickets for two adults and two kids with no "Park Hopper" option (if you don't know, don't ask) for five days.

Total Disney ticket cost: $774. I gulped again and proffered my Amex card to the nice AAA lady.

Via news from me, Walt Dismal World: Part 1

And it gets even worse from there. I read parts of this aloud to Bunny, and as I was reading she was imploring me not to read anymore, lest I hate travel even more than I do now. “You don't need to read stuff like that,” she said.

But as I read further (it's a three part article) I began to realize that Will Allen III was particularly stupid in planning his trip to the Kingdom of the Rat God in Central Sheol—this from someone who can find safe taxicab services in the Sudan. Although, I guess when you are used to arranging reliable private overland transport from Mandalay to Bagan in Myanmar, going to Walt Disney World, the American Mecca for kids, during the Holiday Season, appears as a no-brainer.

Hah!

Little did he realize.


Some Walt Disney Stories

Speaking of Disney—I have three travel stories relating to Disney, two horrible (to give an indication of just why I hate travel) and one just plain silly (not to give a totally biased acount against travel).

Disney Horror Story #1

My Mom's cousin and her family had come down to visit us and they wanted to take their kids to Walt Disney World. I was invited to go along, and on Sunday, Feburary 27th, 1983, we drove to Orlando. The adults got to sit in the cab of the pickup truck, while us kids were relegated to the uncovered bed of the truck in back. The trip up there wasn't that bad, and we stayed with some friends of the family, who also worked at Disney.

The following day, Monday the 28th, we went to Epcot, having driven in the back entrance by said family friend, thus avoiding both the long wait to get into the park, and the actual price of admission. We ended up entering and exiting the park through one of the exhibitions.

That part wasn't that bad.

After spending a few hours at Epcot, we left then headed over to Sea World for a bit. Things were going fine until I, sitting in the front row of the Killer Whale show, got drenched by one of the whales.

And I didn't have a change of clothes.

So, on the drive back, there I was, huddled beneath a thin jacket in the back of an open pickup truck, trying desperately to avoid freezing to death. It was a miserable three hour tour trip.

Made all the worse because Monday, February 28th, 1983, was the season finale of M.A.S.H, which at the time, was my favorite TV series.

Which means I missed it.

Well, not entirely—I did see the final two minutes of the episode.

I ended up getting horribly sick that week.

[Okay, technically it wasn't technically a horror story about Disney, but we still visited one of the parks that day. And I've yet to still see the season finale of M.A.S.H., twenty-four years later. —Editor]

Disney Horror Story #2

No date for this one, but it happened sometime during the very late 80s, very early 90s.

During the week, I got a call from my Aunt Kay (Dad's sister) and Uncle Dale that they were going to be at Walt Disney World and would I like to come by and meet them there.

For some obscure reason, I said “yes” (I suspect it was because I had yet to do a road trip on my own, and felt this was as good a time as any—so I guess this would place it sometime in '89 or so). On the appointed day (a Saturday as I want to recall) I got up early, and drove the two and a half hours along the Florida Turnpike to International Drive in Orlando.

It then took another hour to drive the few miles along International Drive to the parking lot of Walt Disney World.

It then took yet another hour to get from the parking lot to the actual park itself.

And then I had the daunting task of finding my familiar relations.

This was back when cell phones weren't quite as ubiquitous as today.

I finally met up with them around 1:00 pm.

Spent the day riding rides and eating hideously expensive food and around 10:00 pm we all headed to the monorail station to leave the park.

Only the monorail system had broken down, thus trapping a few thousand people within the Kingdom of the Rat God for several hours past closing.

It was around midnight that I was eventually back in my car, heading south as fast as my little car could go (I didn't worry about speeding tickets as state troopers blew past me on the Turnpike), with this massive migraine headache for the entire trip.

Not a fun time.

Disney Silly Story

Again, no definite dates, but given the facts of the story, this one happened in the very early 90s, back when I was living at home, working a job that paid me ridiculous amounts of money, meaning I had large amounts of discretionary funds to burn through.

My friend Sean Williams announced one Friday that instead of the usual Saturday plans, he instead, had to drive up to the University of Central Florida (in Orlando) to pick up a pair of shoes from his brother. Not having much else planned for that Saturday, Bill Lefler, Mark Hamzy (which is a different Mark than the one I normally mention here) and I invited ourselves along for the ride.

So Saturday morning we all piled into a car and headed north.

We arrived at Sean's brother's dorm room, picked up the pair of shoes, and were back in the car in less than half an hour. Sean was ready to drive all the way back; Bill, Mark and I were simply amazed that that was it.

Drive three hours to pick up a pair of shoes?

Yup.

So Bill, Mark and I browbeat Sean into going to Epcot.

Now, mind you, it was around 5:00 pm when we did this.

And it was around 6:00 pm when we paid for, and entered into, Epcot.

Most people wouldn't have bothered to enter any of the Disney parks past 2:00 pm, but not us. We (actually, now that I think about it, I think it was mostly Mark) wanted to see Epcot, and gosh darn it, we were going to see Epcot.

We walked around a bit, discussing where we should eat (and that's another story for another time, the whole “Where Should We Eat” ritutal we went through every Friday and Saturday) and ended up in the Mexican Pavilion (where I had Chocolate Chicken—a very unusual but rather tasty dish).

Afterwards, we stuck around for the fireworks show, then left.

So, not only did we have enough money for a fairly expensive Mexican dinner, but enough money to get into Epcot for a fairly expensive Mexican dinner.

But like I said, I was living at home at the time, making obscene amounts of money. So was Bill. And Mark. And Sean.

Sunday, Debtember 31, 2006

Rocket's Red Glare

Given the amount of fireworks going off, you'd expect it to be the Fourth of July. Or some other celebratory holiday.

Go figure.

Obligatory Picture

An abstract representation of where you're coming from]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

Obligatory AI Disclaimer

No AI was used in the making of this site, unless otherwise noted.

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: https://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

https://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.