Tuesday, February 01, 2000
The Purpose of Copyright
Understanding the root cause and the dangers of this shift requires exposing the most fundamental and most common misconception concerning the underlying purpose of the monopoly granted by our copyright law. The primary purpose of copyright is not, as many people believe, to protect authors against those who would steal the fruits of their labor. However, this misconception, repeated so often that it has become accepted among the public as true, poses serious dangers to the core purpose that copyright law is designed to serve.
Open Spaces Magazine - The Purpose of Copyright by Lydia Pallas Loren [via Camworld]
Are we slowing heading towards a time when only corporations can own intellectual property? I'm sure corporations wouldn't mind …
“I drove my Chevy to the levee … ”
I'm in the car waiting for lunch when I hear this new remake of American Pie by this lush female singer. Of course immediately after the song the radio station launches into this extended set of commercials that last the way home so I don't know who did the song.
But everytime I hear that song, even if it is the original version, I can't help but think of Wierd Al's version.
Databases schmatabases …
I know Mark won't agree, but the advice jwz gives about databases agrees with mine.
And his experience in mail summary files is yet another datapoint in his avoidance of databases.
Wednesday, February 02, 2000
A load of Microsoft
Some random Microsoft links from Mark. Read and enjoy.
Not a load of Microsoft
And some more random (non-Microsoft) links from Mark.
Spam spam spam spam!
I'm checking my email when I come across this:
To: Sean Conner
Date: Wed, 2 Feb 2000 13:45:01
Subject: Sean, your website…
This message is for Sean Conner
Ft. Lauderdale Sun-Sentinel
My first thought is Holy Cow! The Sun Sentinel wants to do a story on my site! And they even spelled my name right!
In my excitement I skip a crucial paragraph and pick up here:
While visiting your site I noticed your web pages could use a few simple adjustments to make them easier to find on the search engines. I also noticed your page layout and customer navigation could be optimized to increase customer responsiveness.
Okay, now I know something is wrong. My pages are already easy to find on the search engines. Heck, they're the only agents coming to my website with any regularity and any searches on “Sean Conner” or “Captain Napalm” usually bring back links to my website on the first or second page (at worse). Now, what was that paragraph I missed?
I am writing to you because you are listed as the site administrator at www.sunsent.com and I have some information that should be of interest to you.
What the … ? News to me. Quick check at Network Solutions:
Registrant: Ft. Lauderdale Sun-Sentinel (SUNSENT-DOM) 200 East Las Olas Blvd Fort Lauderdale, FL 33301 Domain Name: SUNSENT.COM Administrative Contact: Meiners, Michael (MM130) meiners@SUNSENT.COM (305) 356-4744 Technical Contact, Zone Contact: Conner, Sean (SC47) firstname.lastname@example.org (407) 395-6655 Record last updated on 16-Dec-1996. Record created on 16-Mar-1994. Database last updated on 2-Feb-2000 03:18:36 EST. Domain servers in listed order: NS.GATE.NET 184.108.40.206 NWFOCUS.WA.COM 220.127.116.11
Ah, now it's clear. Spam.
I was most likely still working at CyberGate when this was registered. At the time, I was Head Sysadmin, Head Programmer, Head Technical Support and Chief Bottle Washer (I left shortly thereafter, that being my first real experience with the whole net.slave thang). The records never got updated.
And I know the email was spam because the site doesn't exist anymore.
Thursday, February 03, 2000
Reply-To Munging: Is it the Right Thing?
There's a major controversy on a mailing list I'm subscribed to. The list in question (about classic computers) had to change hosts and the software used to manage the list changed.
The upshot is that under the old software, the Reply-To: field was set to be the list itself. That meant that if you wanted to send a private reply, you had to change the address the message was being sent to. As a consequence, a few private messages were sent to the list by mistake.
The new software does not set the Reply-To: field. So to reply to the list, you have to ether change the address the message was being sent to, or do a group reply, which sends a copy to the list as well as to the original sender.
A subtle change, but one that has thrown the list in a tizzy. Some people (like me) like the old behavior. Some like the new behavior (and are telling the ones that like the old behavior to deal or upgrade—odd considering that most accessing the list are using computers deemed too old to use by the rest of society).
The new change was justified by the essay “Reply-To” Munging Considered Harmful by Chip Rosenthal (I think Chip is sore because he accidentally sent private mail to a public list by mistake). But then Simon Hill, in his Reply-To Considered Useful notes that RFC-822 allows munging of the Reply-To: field:
4.4.3. REPLY-TO / RESENT-REPLY-TO This field provides a general mechanism for indicating any mailbox(es) to which responses are to be sent. Three typical uses for this feature can be distinguished. In the first case, the author(s) may not have regular machine-based mail- boxes and therefore wish(es) to indicate an alternate machine address. In the second case, an author may wish additional persons to be made aware of, or responsible for, replies. A somewhat different use may be of some help to "text message teleconferencing" groups equipped with automatic distribution services: include the address of that service in the "Reply- To" field of all messages submitted to the teleconference; then participants can "reply" to conference submissions to guarantee the correct distribution of any submission of their own.
(emphasis added). So. There it is.
But that still hasn't settled the list. Sigh.
More than you ever wanted to know about Reply-To munging
More info on the email snafu: Rich Lafferty replied with:
Note: The “Reply-To” field is added by the originator and serves to direct replies, whereas the “Return-Path” field is used to identify a path back to the originator. [This is from section 4.3.1 of RFC-822. But see section 4.4.3 for a different interpretation. -Sean]
Although I'm starting to wonder if this isn't symptomatic of a majordomo bug, or at least a design flaw. It would make sense to me to configure Majordomo such that the Reply-To points to the list *unless* the originator added its own Reply-To, in which case it would leave that there. That way, you'd have discussion on the list except when the original poster intended otherwise, which strikes me as something that the original poster might very well want. This would satisfy the objection of lost information (which strikes me as the only thing that isn't a question of preference or user-agent configuration – when majordomo strips a reply-to, it's *gone*) and the objection of encouraging public discussion (in that unless otherwise specified by the originator, the reply is directed to the list).
Pete Turnbull replied with:
Except that mailing lists are not what RFC 822 defined “Reply-to:” for. Its primary purpose is quite different; it's to force a reply to a valid address when the sender's “From:” is not valid.
Quote: “The 'Reply-To' field is added by the originator”
The RFC 822 method would be to set the “From:” field to [mailing list address], and set the “Sender:” field to the name of the person who originated the message (which is exactly the opposite to what majordomo is doing, I notice, but that's perfectly legitimate).
So, where does this get us? Well, I send a message to a mailing list:
The mailing list software gets it, and when it sends it out:
But, if for some reason I want replies (to me) to go elsewhere, I send:
And what the mailing list software sends out:
But we'll see …
Friday, February 04, 2000
A silly variation
“Welcome to the Bridge of Death. You must answer me these questions three 'ere the other side you see. What is your name?”
“Arthur, King of the Brittons.”
“And what is your quest?”
“I seek the Holy Grail.”
“What year was DOS 3.3 released?”
“What? What do you mean? DOS 3.3 for the IBM PC or Apple ][?”
“Uh, er … I don't know. Aiiiiiiiiieeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee…”
My roomate Rob is rebuilding his workstation that was hacked the other day. He could repair it by rebuilding the damaged directories but he feels it's easier to resintall and I probably would do the same myself. There is stuff he wants to save but since Tom's RootBoot disk doesn't have drivers for his network card he came in asking if I had a spare IDE drive he could borrow.
Possibly, but let's see if there is something easier first. Could he just install without formatting the disks? No, there are some configuration files he wants to save. Hmmmm … he's got this swap partition that's big enough to hold what he wants. fdisk to change it to Linux native, then mke2fs to format it. Copy the files he wants, reinstall, then afterwards, copy the files off, and turn it back to swap space.
It's what I did when I installed Linux on my laptop.
This is EMAIL, not FTP …
The consensus on the mailing list from yesturday about Reply-To: munging is that Reply-To: is The Right Thing. The list is back to the old behavior and everyone has stopped complaining.
The topic now (very light traffic on this) is the removal of HTML in email. Or rather, HTML and attachments altogether, which I am in full agreement with. Attachments are evil (heck, MIME is eeeeeeeeeeeeeeeeeeeeeeeeevil but that's another rant); the worst I saw (when I worked at an ISP) was some guy who blew his disk quota by sending not only the files he was working on, but the application as well, so he could work on them from home.
The ISP allows 10M of disk space, which is quite generous for email (for the record, I currently have 14M of email saved (everything I write gets saved just in case) and it works out to 3,457 messages (or an average of 4k per message and yes, a lot of those can be deleted).
Anyway, one of the requests, from Peter Turnbull, was:
My request-for-enhancement is:
“do something” about HTML, or better still, “do something” about any “multipart/alternative” posting (which would include M$ richtext, with those application/ms-tnef attachments).
Options I can think of:
a) silently discard any such postings (probably not a good idea)
b) bounce them back to the author, with an explanation of why bounced
c) remove the non-text part
d) combination of (b) and (c)
e) accept, but warn the author (who may not realise (s)he's sent HTML)
Can't argue with those.
Yes, the links for other entries here are broken. I'm still working on how I want to actually store and serve all these entries up so until that is done, links for other entries will be broken.
External entries however, are fine.
The status quo must surely hate this
Normally, I just tollerate Dave Wiener and what he says and his Scripting News site comes across as one extended advertising for his software, but maybe what he has to say is worth listening to at times.
Then I realized that such an externally defined vision had already been forced on the technology industry. The standards of the Internet, HTTP, HTML and URLs; and perhaps XML, which is a simple formalization of HTML. To go to the next step the leaders of technology merely have to agree to stop struggling against these standards, and to share the knowledge they have developed around them. The web is ready-made for a shared vision.
First, you should know that there are organizations whose sole purpose is to define and patent new business processes that build on the Internet. Jay Walker, the founder of Priceline.Com, has 60 full-time people working in teams to do nothing more than generate patents. No engineering, no scaling issues, no customer satisfaction requirements (although Walker's company appears to be good at this too), they just a file a claim at various patent offices, and wait for the engineering of the Internet to catch up. A land-grab business.
If you define success in terms of continuing to do the same old thing, you will lose. This is the message that causes so much dissonance at Davos and at Seybold. The people who had a good thing going before the Internet are angry. If they draw a line in the sand, as Sumner Redstone of Viacom did so insistently, sorry it's off to glue factory. But if you're willing to risk it all on your intelligence, experience *and* your enthusiasm for the Internet, you will win. But you have to be willing to change.
Monday, February 07, 2000
There's a casino across the street …
When I moved here 12 years ago, across the street (the main street, Sample Road in Coconut Creek, Florida) was this large field. A rare site in Lower Sheol where any available piece of undeveloped land doesn't remain undeveloped for very long.
But it lasted a few years, until Wayne Hyzinga (sp?), Garbageman Billionair Extrodinaire, financed the building of an AutoNation there across the street, then sold it (for profit mind you) to one of his holding companies. Ah, the wheeling and dealing life of a billionaire.
And so it was until a few weeks ago when the AutoNation suddenly closed its doors across the street. The parking lot, once full of quality used cars at an affordable, no haggle price, was empty.
And so it was.
So I was driving home tonight when I saw these placards along the road, and in primary colors splashed across the face, I saw:
The Coconut Creek Casino! Parking—Turn here!
And all the placards were leading towards the AutoNation parking lot. Great! I thought. They built a casino across the street!
So I decide to check things out. I park the car at home, and amble my way over across the street. I see a few cars parked there, but nothing that looks remotely like a casino. I walk up to the front entrance of the now closed AutoNation and find a security-type guy there in one of those golfcart like vehicles.
“So, where's the casino?” I ask.
“Down the street. Do you know where the Toyota dealership is?”
“Yes,” I said. The Al Hendrickson Toyota Dealership is down the street from me.
“It's right behind there. The parking lot isn't finished yet so they're using this as a temporary parking lot. The shuttle bus should be here in a minute.”
“No, that's okay. I was just curious.” And I walked off.
I guessed that the Seminole Indians had the thing built, and when lo, I was right.
If this thing is open 24 hours like all other casinos I've been to, then that adds one more fine dining establishment to partake of fine food after midnight to the local Clock and Denny's.
As I see it, the Seminole Indians had the thing built.
Searching for Coconut Creek …
We are a
young couple living in Coconut Creek
MAKE THOUSANDS - Coconut Creek Florida [sigh]
FLAUSA Visit Florida - Florida Tour - Southeast Florida and the Keys Attractions [horrible design - took over two minutes to load all the graphics and I have a dedicated 128kbps ISDN line but they do get some points—it looks okay in Lynx (although the HTML file itself is almost 200K in size). And Butterfly World is just down the street from me]
Wednesday, February 09, 2000
“I know I left it here somewhere … ”
I just spent the past few hours working on this journalblog, updating the pages and internal links, getting ready to get this thing live hopefully in the next few days. Internal links are still worthless, but hey, only a few people should be reading this anyway.
Now I just have to find some code I wrote a few months ago in preparation for the Electric King James site. If I can find it, and adapt it to use strings instead of integers, then I can retrofit it into mod_litbook and use it in (tenanively titled) mod_jb.
But that's the problem … I don't even remember what I called it, nor where I stuff the code. And I have a lot of code on this system.
“I have a bad feeling about this.”
On Monday (which I didn't report), I went to Atlantic Internet to do some consulting. One of the salespeople there is involved in some projects and I was brought in to help.
While there, the box being used, a RedHat 6.0 distribution, appeared to have been compromised. No like my roommate's box but still, syslogd wasn't running like it should, and there appeared to be an abnormal amount of httpd's running, but it's a webserver so I didn't think anything of it.
I shut off ftpd and added entries to /etc/hosts.allow and /etc/hosts.deny until it could be patched up or upgraded.
Fast forward to today (way early or way late, take your pick) and I'm reading Slashdot when I come across the article about some recent DoS attacks against some very large sites. In the discussion, I follow one of the links to an analysis of stacheldraht, a program that is suspected to have been used in the DoS. And the code seems to have been written for Solaris 2.x and Linux, specifically the RedHat 6.0 distribution.
Like TFN, C macros ("config.h") define values used for expressing commands, replacement argument vectors ("HIDEME" and "HIDEKIDS") to conceal program names, etc.:#ifndef _CONFIG_H /* user defined values for the teletubby flood network */ #define HIDEME "(kswapd)" #define HIDEKIDS "httpd" #define CHILDS 10
The box in question, like I stated, is a RedHat 6.0. What I haven't mentioned is that it's sitting behind a T3. And there were an abnormally large number of httpd's running.
I have a bad feeling about this.
Finally was able to check the machine today. It's clean.
So where are the fault-tolerant Unix systems of today?
… and by October of 1990 a complete nanokernel was running on the Omron Luna/88K. The current nanokernel contains approximately 20,000 lines of C code and less than 2,000 lines of assembler code….
In addition, the ability to recover all run-time kernel data from checkpointed state means that an interruption of power does not disrupt running programs. Typically, the system loses only the last few seconds of keyboard input. At UNIFORUM '90, Key Logic pulled the plug on our UNIX system on demand. Within 30 seconds of power restoration, the system had resumed processing, complete with all windows and state that had previously been on the display. We are aware of no other UNIX implementation with this feature today….
The paging system is tied to the checkpoint mechanism, and is discussed in the section on checkpointing, below. Persistence extends across system shutdown and power failure. Several IBM 4341 systems ran for more than three years across power failures without a logical interruption of service.
KeyKOS Nanokernel Architecture
Accordingly, KeyKOS also received a B3 security rating, and it's a multitasking, multiuser system. At best, Unix can get a C2, and Windows NT can get that if it's networking is removed. I don't think it's generally available, but one that is based upon KeyKOS, EROS, is available, and GPLed.
I'm so vain. I bet I think this website is about me.
I get curious at times. At one point I wanted to register spc.com, being my initials and whatnot, but Time Magazine registered that one on July 14, 1994. I've never bothered to ask if I could have it, but I can't imagine what they're using it for (nothing, as I can tell).
So I decide to check out spc.org, which seems to be a better domain for my use anyway. When I tried a few years ago, it was taken but I forgot who had it. The current owners registered it June 7, 1997. So I might have gotten it had I been on the ball three years ago, but I wasn't.
They seem to be using though, so I can't complain there.
And that leaves spc.net, which was registered to the Special Products Company on June 22, 1996, and they seem to be using it as well.
I can't have conman.com because that is being sit upon by a domain name speculator company, noname.com.
But the big surprise is conman.net. Last time I checked (a few weeks ago) it was being held by noname.com but that doesn't seem to be the case anymore. It is now held by Conner Huff.
Now, conner.com is owned by Seagate, the harddrive manufacturer. Understandable, Conner used to be a well-known harddrive manufacturer before being bought out by Seagate. conner.org and conner.net are owned by MailBank.com, an organization that gives out email addresses. As of today, email@example.com is available as an email address, but at US$9.95/month, I think I'll stick with what I have.
Thursday, February 10, 2000
“I'm fooling you and you don't like it!”
So, I'm searching through the www.spc.org website when I come to this lovely page with one of those stereograms. I have no problem in seeing the item inside the picture, but I don't think I see it “correctly” so to speak. I say that because while the object (in this case, a jack) does pop out, the parts that pop out are popped inward, not outward. For example, if the object is supposed to be a ball floating off the page, I see the object floating, but I see it as a bowl, not a ball. It's definitely a wierd experience.
I suspect that I see these objects “inside-out” (for lack of a better term) because my left eye is dominant (I'm lefthanded, by the way) wereas most people are right-eye dominant.
You can easily test this by holding your hands out in front of you, at arm's length, using your fingers to make a hole to view through. Focus on an object that's about 20 feet away (or further). Now, close one eye. If you can still see the object, that is your dominant eye (or conversely, if you can't see it, then your other eye is dominant).
Well, Mark finally got his webcam going, completely under Linux.
Earlier today we talked and he was wondering how to get the images up to the server. He didn't want to use FTP as it seems that no one can actually write a version that isn't Swiss Cheese, nor did he want to use scp as that would require him manually typing in a password, or leaving one around in a script on his box.
I offered to write some programs, a client on his end, a server on the server end here that does nothing but copy the image up. Simple enough in theory.
But the details get pretty gory pretty quickly.
But then it hit me—he's running a webserver on his end. Easy enough to have the camera software dump the picture into a web-accessable place on his box, then have the server here use wget to download the image.
The hard part came in configuring Apache.
Problem one: restrict access on his side. Seems to be broken somewhat on his side. Might be a 1.3.3 problem. We're still working on this.
Problem two: Content expiry on the server side. Fixed after some experimentation. In the webpage he has:
<META HTTP-EQUIV="refresh" CONTENT="60">
And in an .htaccess file he has:
ExpiresActive On ExpiresDefault A60 ExpiresByType image/jpg A60
And that seems to do the proper job.
Friday, February 11, 2000
It's not exactly a protocol …
LiveJournal.com is a free service here on the Internet that allows you to create and customize your very own “live journal” … an up-to-the-minute log of whatever you're doing, when you're doing it. It's free, it's fun, it's easy to use!
LiveJournal.com, via Flutterby
The actual link from Flutterby was to the LiveJournal protocol. The protocol itself it nothing more than a documentation of their CGI interface. It's documented with the intention of other people writing software to interface to the CGI, but a webform would work just as well (or at least support the HTTP POST method).
For the individual journals, you can only see an overview of the last X number of entries, in reverse order of course (newest to oldest, and even the entires made within a single day are newest to oldest).
The archive section lists each month, with a link per day (the text of the link is the number of individual entries that day). The day is then presented in chronological order. But, you can't request all the entries for a month. For instance: Bethany's LiveJournal Calendar. Select a day, say today.
Now, take a look at the URL:
Munging it up, I left off the day portion and got:
Errors occurred processing this page:
- Corrupt or non-existant day.
- Invalid day.
(nevermind that is the full text of what I got back—completely non-standard HTML). Okay, what if I change the URL to read:
Would I then get all of February's entries? Nope. Just a 404 error (and an error page that again, isn't HTML compliant). Then again, I don't think anyone is really working on the stuff I'm working on, but when I get this out there, that should raise the bar a bit (hope hope).
LiveJournal isn't a bad service but there doesn't seem to be many journals there I find worth reading (with most entries being a line or two at best).
BML … because it's better
Came across BML, a Better Markup Language. Seems promising actually. And LiveJournal uses it. I'm looking into it—it has some interesting ideas.
Saturday, February 12, 2000
Left side, right side, where do you want the couch?
So for those of you following at home, I'm playing around a bit with the layout here. There is this layout you are looking at right now.
This page has a navigation bar along the right side, pointing to the individual links for the past seven days (none of the links work by the way. It's using a URL scheme that I'm planning on using but isn't functional yet). I did it this way for users of Lynx—it lays out tables that go left to right top to bottom; not the best way to support tables, but hey, it tries. And I felt that innundating a Lynx user with a list of links is bad. Better to bring the content first then a list of (possibly) useless links.
But I did this page, and under Lynx it actually isn't too bad. The first link is to the content (if in fact, the link works). And at the default 80x24 TTY screen size, there's only two, maybe three screens full of links before you get to the content. Oddly enough, I like it.
So, what do you think, oh home audience?
“Next on Yahoo—Websites about narconecrophilaphobia!”
I finally figured out what web portals are—portals are to the web what networks are to television; they want to control what you see and would rather you didn't change the channel.
It's a weak analogy, but I think it's a good one.
(The title for this section if the fear of falling asleep and having sex with zombies, if you must know)
Sunday, February 13, 2000
Via Scripting News comes the news that Charles Schulz died today.
Tuesday, February 15, 2000
Spring cleaning just a tad too early …
So I finally decided to clean the Computer Room.
It's not like I have a death of projects I'm working on, but one of the projects is finally getting NetBSD installed on two HP/Apollo 400's I recieved a few years ago but couldn't because of a few problems.
The original intent was to write an OS for the things, but information about the HPs weren't that easy to get (not that I tried really hard). After a year or two I learned that NetBSD was ported.
That lead to problem number two: I had the wrong keyboard. The HP/Apollos I received had the Domain keyboard/mouse, which NetBSD doesn't support, and apparently the boot process for DomainOS is undocumented enough that no one has really bothered. Had I an HP-HIL keyboard/mouse, then I would be in business.
Well, I recently borrowed one and my friend Mark is working on getting me an HP-HIL adaptor so I can use an IBM keyboard like God intended instead of the abomination that HP calls a keyboard.
Have I mentioned I'm very picky about keyboards? That the only keyboards I use are IBM AT or PS/2 style keyboards? Anyway, I digress …
So, easy enough to proceed, right?
Nope. Problem number three: there is no more space in the Computer Room. I could barely make my way into the room. So, before I can install NetBSD I have to clean the room and rearrange it. It was so bad I didn't even recall how the network was set up (thin-net, aka cheap net. I had black cables running everywhere).
So I spent most of last night schlepping computers out to the living room and dining room. The Computer Room is now clean, but the rest of the house …
So now I'm in the process of schlepping everything back, only I don't want to schlep everything back in. I have no idea what I'm going to do with half the stuff. I don't use half the stuff and that's the problem.
Meanwhile, I'm trying to get NetBSD reinstalled and I'm having to recompile Linux on my primary server here in the Computer Room because it doesn't have RARP (Reverse Address Resultion Protocol) built in, which is needed to do an initial netboot of NetBSD.
Blah … where's a bulldozer when I need one?
An update on the HP/NetBSD front: and that's the only thing that's up.
The boot process requires NFS. I don't trust NFS (never have, never bothered to install it on the home system here). Sigh. Download, install, configure.
So I have rbootd and rarp working on Linus. Turn on the HP. Using some network monitoring software I wrote (a near-clone of tcpdump that outputs in a more concise mannor) I can see the HP making requests of rbootp.
And one lone NFS packet:
IPv4 18.104.22.168 255.255.255.255 UDP 1023 111
So far no luck getting past that.
Wednesday, February 16, 2000
For those complaining that Linux is too easy to install …
Well, the first of two HPs is now online and running NetBSD, thanks to the help of Mark. It seems I needed to have bootparamd running, as well as NFS. Also, the documentation neglected to mention that you might, just might, need to hook a terminal up to the machine.
Lo, there was SYS_INST, running not on the console (the wonderful 21" monitor) but on the serial port. Sigh. After that it was a painfully long process of transfering the installation program via NFS (although that may be due to the logging we were doing) then the actual install process (via FTP, much faster).
Slackware Linux was a breeze to install compared to this. The whole disk labeling is confusing—I find the PC scheme much easier to deal with (although Mark finds the PC scheme too braindead and likes the added complexity that disk labels bring. Go figure). We still haven't figured out how to get the system to boot off the drive, but it is running.
More on the exact steps later …
Thursday, February 17, 2000
Natural Languages and P—- Languages
The moral is that Perl is a great language for implementing haiku … but Python is rather better at implementing functional specs.
Via Slashdot, A comment about Python vs. Perl
A rather good comment about one of the reasons I dislike Perl. I also dislike Python (significant whitespace?) but if I had to choose between the two, I would probably use Python.
A clear and present separation
Iaijutsu sounds interesting, a web server that separates content, presentation and logic, which is what I'm trying to do. But at this time, the website seems to be down. Or rather, DNS is reporting back an error.
Maybe I'll get back to this some other time. Even if it is written in Perl.
Saturday, February 19, 2000
The Battle of the AC, Part I
Whoever designed my condo should be taken out and shot.
The AC is shot. Well, the inside portion thereof. So today it's being replaced.
To replace the unit, the workmen have to tear down a portion of the ceiling where the unit is. Oh that, and take down the front door.
This is why I didn't have the inside part replaced last year when I had AC problems.
The Battle of the AC, Part II
“Hey Sean,” one crewmember asks. “Do you have a bucket?”
“Sure,” I said. Went outside to the utility closet and grabbed a large bucket. “Here you go.”
“Thanks.” He walks over to the unit, holds the bucket up to the unit being replaced, and several gallons of water pour forth.
Sunday, February 20, 2000
A method and aparatus for obtaining quantities comprised of groups of smaller quantities grouped and counted for the larger quantity.
It was never the object of patent laws to grant a monopoly for every trifling device, every shadow of a shade of an idea, which would naturally and spontaneously occur to any skilled mechanic or operator in the ordinary progress of manufactures. Such an indiscriminate creation of exclusive privileges tends rather to obstruct than to stimulate invention. It creates a class of speculative schemers who make it their business to watch the advancing wave of improvement, and gather its foam in the form of patented monopolies, which enable them to lay a heavy tax on the industry of the country, without contributing anything to the real advancement of the arts. It embarrasses the honest pursuit of business with fears and apprehensions of unknown liability lawsuits and vexatious accounting for profits made in good faith.
–U.S. Supreme Court, Atlantic Works vs. Brady, 1882
Via Technocrat.net, this article about software and business patents. One of these days I'll get around to patenting a method and aparatus for obtaining quantities comprised of groups of smaller quantities grouped and counted for the larger quantity.
Or as translated from patent-speak, addition.
Wednesday, February 23, 2000
“Uh, my mouth just exploded.”
My roommate Rob came into the Computer Room this morning and asked if I wanted to go to lunch. He was going out with some of the tech crew from Atlantic Internet (who so kindly provide my connectivity) and wanted to know if I wanted to go along. I wasn't all that hungry, having actually had breakfast before 8am (long hacking run last night, more on that later) but since I decided to stay up anyway (cleaning woman—yes I'm that lazy) why not?
We ended up going to Lucille's, a local BBQ place in Boca Raton. I was feeling a bit sluggish by the time the food arrived, and the waitress, at Shane's request, brought over not one, but two of the hottest sauces currently available.
I remember Endorphine Rush from the last time I was there. The other one was a new one they just got: Blair's After Death Sauce. I was the only one there to actually try it.
The opening was slightly crusted over with dried sauce so it took some coaxing to get a small dab out, which is all I dared. Then dipped my fork into the dab, then tried it.
“Oh—” is all I got out before slamming down my iced tea while motioning wildly at the waitress for more. She quickly returned with a glass of milk, which I slammed down, and by that time she had a refill on the iced tea, which I nearly slammed down. And when I say “slammed down,” I mean chug. Big time. Like I've never chugged before.
I was no longer tired. I was wide awake after that.
And checking the bottle after a few minutes showed the sauce had eaten away at the drived sauce crust over the end of the bottle. Yikes!
Endorphine Rush wasn't that bad. No effect for a few seconds then WHAM! It hits. Pretty hard. Blair's After Death Sauce hits fast and hard. Liquid fire this was. Ouch. Wasabi doesn't hit this hard with so little.
Those Computer Blues …
I haven't updated in the past few days. That's okay, because I have an excuse: my computer was dying.
Well, it wasn't exactly dying, but X Windows—sorry, A Windowing System Called X, was dying. It happened last week when the mouse suddenly went spastic then died. Then shortly thereafter A Windowing System Called X died too. Most horrible. Even worse, I didn't have the CD I installed Linux from (nor a CD-ROM but that's beside the point). Even worse, it was the Metrolink X Server that died.
The system was a RedHat 5.0 system. I did not want to upgrade or install RedHat 6.0 or 6.1. I wanted 5.2. Mark found his copy of RedHat 5.2.
So, I decided it was probably time to do a fresh install. I slapped a 1G drive, backed up what needed to be backed up (and missed /root and /tmp in the process—oh well, probably didn't need those files anyway) and then proceeded to the installation.
I've found out that trying to install RedHat 5.2 across the network from a RedHat 6.1 box is a futile exercise. NFS or FTP the network performance was so poor that doing a disk install of Slackware would be faster.
Then it hit me—I was reinstalling my primary nameserver. This is also the nameserver that resolves reverse lookups. Even my roommate's computer would eventually contact my machine for reverse lookups on the IP addresses.
Quickly fix that, but still find that installing RedHat 5.2 from a RedHat 6.1 box is a futile exercise.
I tried three CD-ROM drives in the computer and not once was it recognized. Of course I was putting the CD-ROM in the second IDE controller on the motherboard but I think the second IDE controller doesn't work. Disconnect the 1G drive and put the CD-ROM in there, and it worked (of course at first I thought it didn't since the BIOS wouldn't recognize it. Mark was like “Duh! It's not IDE! It's ATAPI. The linux kernel will find it.”
The install went smoothly. I repartitioned the drives the way I like (4M /boot, twice the RAM for swap, and the rest for /) and installed RedHat 5.2. I was expecting the Metrolink X server to install, but it didn't.
Twice more and it still didn't. Guess Metrolink stopped shipping their server with RedHat. And XFree86 doesn't support my card (or at least it didn't when RedHat 5.2 came out and like I said, I'm not going RedHat 6.x nor spending hours downloading the current XFree86 and configuring it).
I finally got X working though, and restored from the backup IDE drive.
Oh, and there was that extended hacking session last night.
Hack the Source
So I wound up at Mark's house last night. He wanted to get AppleTalk running so he could mount his Linux drives on his Macs.
He was going to do this on his primary development machine kwalitee, but was relunctant to loose the uptime on it. I suggested ortho, his primary file server.
He was overwhelmed by the sheer obviousness of the suggestion.
Compile kernel. Download userland code. Install. Reboot. Select “Chooser” on the Mac. And there is ortho, ready to serve up files. We were both amazed at how easy it was—especially given the difficulty of Samba, or the insanity that are the automounter documentation (the man pages, how-to's and other documentation for the automounter bear no relationship to the actual program that he used. It's like learning Unix from MS-DOS manuals).
Until he had to make a slight configuration change. The AppleTalk server wasn't returning the correct type or application for MP3s (I'll save the discussion of finding and uncompressing an MP3 player for the Mac for later). Okay, tweak a configuration file and restart the AppleTalk daemon.
Only it won't restart.
Nothing we do will restart it short of a reboot. So we reboot.
And reboot and reboot and reboot and reboot. Any change we make to the AppleTalk configuration file requires a reboot of Linux. Had Mark made the driver a module and unloaded it, then we wouldn't have to reboot. But having a modular kernel as a server is a potential security hole and Mark doesn't want that risk.
So it's reboot reboot reboot.
We then scour the net for updated anything.
It seems it's a known problem that you have to reboot if you change any configuration for AppleTalk.
Linux is Open Source, right?
Mark wants to reconfigure AppleTalk and not have to reboot. He's got this itch, right?
So, he hacks the kernel.
Thursday, February 24, 2000
Back from the Dead
So I finally got linus (my main computer) back in operational status after last week's little fit (starting with a dying and now dead mouse). Yea!
Netscape, version Proxy Authorization Required
Since I installed a later version of RedHat (5.2) on linus that was on there before (5.0) I have a newer version of Netscape. Instead of version 4.04 (the NOTFOUND version) I now have 4.07 (the PROXYAUTHREQ version).
Okay, so you have to be a webgeek to get the joke.
If Bill had a dollar for every blue screen …
If Bill [Gates] had one dollar for every blue screen … oh wait. He does.
Friday, February 25, 2000
Hack the Source, Part II
Mark has written some pages about hacking the Atalk driver in Linux. Another note not noted in the note: he reported that it doesn't work on another of his Linux systems—the major difference being a different network card. Is the Linux kernel that fragile that a difference in network causes a protocol stack to fail?
Mark wrote in today to say that reverse lookups for my domain weren't working properly. And lo, nslookup was having a hard time finding the machine it was running on.
At first I thought maybe it was a problem with what I was trying to do with the latest version of bind. You see, I set things up such that I control the reverse lookup on the 32 IP addresses Atlantic Internet provides me.
This is done via an interesting hack. For the appropriate in-addr.arpa file, I have:
0 IN NS linus.slab.conman.org. 1 IN NS linus.slab.conman.org.
And so on for the 32 addresses I've been assigned. Then, for the namesever here in the Computer Room, I have:
1 IN PTR isdn.slab.conman.org. 2 IN PTR area51.slab.conman.org 3 IN PTR linus.slab.conman.org. 32 IN NS ns1a.aibusiness.net. 33 IN NS ns1a.aibusiness.net. 253 IN NS ns1a.aibusiness.net. 254 IN NS ns1a.aibusiness.net. 255 IN NS ns1a.aibusiness.net.
I've also set the nameserver to think it's a master for the in-addr.arpa zone I appear in.
So anyway, I thought the latest version of bind wasn't liking that. And it turned out that was true, to a degree.
There is no such TLD as .apra. Stupid typo.
Conman Laboratories monitors at Area 51
Not that I'm inviting anyone to try, but good luck trying to break into area51.slab.conman.org. You won't get very far nor is it a very interesting box. A Compaq 486DX/2 running at 66MHz with 20M of RAM and no harddrive.
Yet it is on the network.
It's running a modifed Tom's Rootboot disk distribution with some network monitoring software I wrote. I just thought the name was cute.
Saturday, February 26, 2000
I'm updating my code on tumblers. Tumblers are a crucial portion of Xanadu, the hypertext system designed by Ted Nelson and still being worked on (only 40 years later).
My tumblers work differently than the Xanalogical mode. There they are true numbers on which certain operations like addition and subtraction can be applied to address nodes (and all the nodes contained therein) whereas mine are not numerical at at and the operations that are performed on them do not have mathematical relationships. At least not in the Xanalogical sense.
Both systems (mine and Ted's) do allow ranges to be specified, but the mechanics differ. I'm not going to go into how Xanalogical tumblers work since that's described elsewhere. But I am going to describe what I'm working on.
Basically, my tumblers (for lack of a better term, that's why I'm using it currently) is just a list of node identifiers, with those listed first higher up than those below it, much like USENET groups. You have comp that contain all the computer related discussion groups, and below that you have comp.lang, which contain all the articles pertaining to computer languages to finally having comp.lang.forth, dealing with a particular computer language. And you are not limited to just the period for separating nodes—I also use slash and colon (for several reasons I won't get into right now).
But another aspect is describing ranges. A range specifier consists of left and right sides separated by a dash. The left side specifies the starting node, while the right side specifies the ending node, relative to the starting node. So that:
would specify the nodes A.b.1, A.b.2 and A.b.3. Notice that there are three node segments on the left side and only one on the right. That's important. The missing segments on the right side are inherited from the left. This inheritance only takes place if the right side has fewer segments than the left side. If the right side is longer than the left, it is assumed that the right side is a full specifier, like the left side is.
And so far, the code I have in mod_litbook handles those cases (dealing with the King James Bible for now). What it doesn't handle are separate but related ranges.
The interpretation I use would return nodes A.b.1 and A.b.5 but nothing else in between. In this case, the comma is used to specify to independant nodes, but with the same relationship rules used in ranges. So far so good, but I want to be able to handle something like:
Which is a complex specification for:
1.2.3 1.2.4 1.5.3 through 1.5.5 1.3.8 through 1.4.1 22.214.171.124 126.96.36.199 188.8.131.52
I'm close to getting the parsing done.
I was hanging out with Mark and Jeff and one of the topics of conversation was over filesystems.
Okay, I'll admit up front we tend to be a bit geeky.
Anyway, a conversation about filesystems. I don't like the way Unix handles the filesystem, slapping everything under one tree, but I came from a rather heavy MS-DOS, VMS and AmigaOS background where you had volume labels (okay, so the support under MS-DOS was rather weak and ineffectual). Under AmigaDOS (for instance) if I have a floppy with a name of “StarControl” (which I actually do) and I insert it, I now have a volume I can look through called “StarControl:”. And if there is a program on that disk (which there is) it can reference files from the volume “StarControl:” such as “StarControl:config” or “StarControl:scenarios/galactic war”. And, copy protection concerns aside, I can copy the files off the floppy disk onto the harddrive (“Captain Napalm:”) into a games directory and then set the volume “StarControl:” to be equivalent to “Captain Napalm:games/star.control” and have everything work without problem.
“Ahha!” said Mark. “That's all great and everything but what if you insert two floppies with the same name?” Erm … ah … <cough> <cough> “And what if,” he continued, “I have a lot of volumes? There could be name clashes. Like both the C compiler and Pascal compiler looking for files from volume Compile?” Erm … uh … look! The Sweedish Bikini team!
“And why have a different syntax for the the volume name and then the rest of the filesystem?” asks Mark, avoiding my transparent attempt at changing the subject. “Do you allow slashes in the volume name?”
“Sure,” I said.
“And do you allow colons in filenames?”
“I'm sadistic enough of a programmer to say yes.”
“AAaaaaaaaaaaaaaaiiiiiiiieeeeeeeeeeeeeeeeeee,” he said. But point taken.
Mark, on the other hand, like the One Tree, Über Alles approach to a file system. Other machines on the network would appear under, say, /net. But that seems wrong to me. Each local machine is the top of their respective trees when it seems like it should be the other way around.
“But if I'm on a non-networked machine, just where should the root be? Should it be under /net/machinename?” Mark asked.
“No,” I repled. “It should have a volume name.”
Sunday, February 27, 2000
Spent the day staying up way too late this morning, getting too little sleep and then helping my friends Paul and Lorie move from their two story townhome to a second story appartment all day, then staying up way too late hanging out with other friends.
I arrived at Paul and Lorie's a bit past 10 am. I was running a bit late, but then again, I don't understand how anyone can function before noon on a daily basis.
Jeff and Sarah were already there, helping Paul and Lorie load the truck with boxes. When I arrived, the loading of furniture commensed, along with the majority of remaining boxes.
Getting the furniture downstairs was fun—having to navigate turn halfway down made it all the more fun. Paul wasn't sure what to do with the large entertainment center in the living room—it was huge and there was concern about moving it into the new apartment (remember, it's on the second floor). After a small attempt to move it and have one section separate from another (think of three shelve units bolted together and you get an idea of what this thing was like) I suggested that the unit be taken apart—just remove the top and the sides would just pop off.
No tools, so Jeff and I went to Jeff's house to pick up his tool box. Came back and spent maybe half an hour taking the thing apart. Had to remove the back (well, part of the back) as well as the top but it made it more manageable, but the truck by that point was nearly full so it was left behind (along with some other bulky furniture) for a second trip.
At the new place, the stairs leading to the second floor of the apartment went up half a flight, landing, then continued up the other direction to a walkway, where it was several hundred feet to the apartment door (around three turns no less—large apartment building). Kurt had arrived by this time so an assembly line formed—Jeff in the truck bringing boxes to the loading door, Paul carrying the boxes and lifting them to me, standing on the lower stair landing where I would walk up two or three steps and toss them on the second floor landing, where Kurt, Sarah and Lorie would then pick the a box (or two) up and carry it (or cart it) to the apartment.
After the boxes, any long item would be handed directly up to someone leaning over the second floor railing who would catch and bring it up over the railing and place it for someone to come by and cart it off to the apartment.
Lunch. Then the second trip, much like the first. Then dinner.
By that time everyone was exhausted.
So of course I hung out with Mark and Jeff (a different Jeff) that night.
Monday, February 28, 2000
just a typical monday
The world runs on a different, and worse, an alien clock, to me. I called the A/C repair people because the A/C that was just installed seems to be freezing up. I called around 3:30 pm (I got up around 2 pm) and I got voice mail. Does that mean I'm going to have to get up at some ungodly hour like 10 am or so just to make sure I get actual human beings at the A/C repair company?
It also makes it rather … interesting playing the stock market, seeing how it closes down at 4 pm EST. Supposedly there are “after market” hours but I haven't seen much evidance of that.
It's not that I'm lazy mind you—it's just that I might have a condition known as DSPS, Delayed Sleep Phase Syndrome. Don't laugh, it does exist but there are very few doctors that have heard about it. Sigh.
I also spent the day looking for a stock to invest in as well as updating the journal entry here.
Tuesday, February 29, 2000
Life in Unixland
ytalk doesn't work on linus (my home system). Nor does talk. Strange, I have it enabled, but it just isn't working and it seems to be horribly damaged.
This is Unix. So what else is new?
Seriously. There are at least two different talk protocols, neither one documented (unless you count source code to be usuable documentation, much like uuencode when you get down to it) and both incompatible with each other. Which is why ytalk is nice—it preportedly talks both so it doesn't matter.
Only it's not working.
Over the years I've found it harder and harder to find working implementations of *talk on any system but I did have a working version I could use to talk to a few friends with before the install of RedHat 5.2 on linus (it was running RedHat 5.0 before).
Now it's general braindamage all over the place.
In trying to debug the problem, I found that /etc/inetd.conf had a bogus entry for dtalk (whatever that is) so I commented it out. Still didn't work. Uncomment telnet on the advice of Mark to see if inetd is okay.
telnet isn't working. What the … ? I try killing off inetd and restarting it. Same deal.
Is it possible for a newer release to exhibit so much lossage? That isn't a Microsoft product?
Try re-enabling FTP. Same lossage.
Turns out I had neglected to install TCP-wrappers. Nice that the RedHat install program neglected to make a dependancy on that. But it includes Perl. Goes out of its way to include Perl.
Such is life in Unixland.
I should note that I get easily upset when stuff that should work doesn't. Computers don't have to be this difficult. There shouldn't be this much lossage and braindeath in dealing with computers. But I suspect that most programmers can't cope with such ideas. Programmers give programming a bad name.
Life before noon does not exist
Ring. Eh? I thought.
Ring. Is it already time to get up? Wait a second … that doesn't sound like the alarm clock.
Ring. Crap! The phone! I hoped I wasn't too late—it'll be really annoying if the answering machine picks up. “Hello?”
“Hi. You've reached area code three zero five …” Great. Answering machine got it. Now I have to make the 30 second commute to the Computer Room and stop it. And what bloody time is it anyway? It had better be the A/C guys—I called yesturday and left a message with them. I stumbled around, turned off the machine. “Hello?”
“Hey guy! It's 9:30! We need you here!”
It was C. S., a salesdroid from Atlantic Internet. I've been helping him with some projects lately and he needed help. Good thing he was 15 miles away or he would have needed some help. “When can you come in?”
“After two,” I said. I think. I don't fully remember the conversation. Life doesn't begin before noon.
“Okay, see you then.” He sounded entirely too chippy. What is it with people being up at these ungodly hours?
Computer Art anyone?
“Salvation Army, can you hold?” I don't have enough time to answer before I'm put on hold. Several minutes go by. “Salvation Army, may I help you?”
“Yes, I'd like to donate some old computer equipment,” I said. I have a ton of old computer equipment I'd like to get rid of. About a dozen monitors (mostly monochrome or CGA), a dozen or so PCs (of XT or 286-AT class) and some other miscellaneous equipment I've accumulated over the years.
“Is this an office?”
“No, it's a private house.” I swear I could hear the person on the other end blinking in disbelief. “I have some older equipment I want to get rid of.” More blinking. “Can you pick it up?”
“Are they usable as home computers? If not, then we'll just throw them away and that actually costs us money.”
Interesting question. The monitors work. Most of the PCs work but are large and bulky. About the only thing you can run on them is MS-DOS, maybe up to version 3.3 or so. Throw Procomm or Qmodem and they'll make decent, if bulky, terminals. But who ya gonna call, eh?
“Probably not,” I answer.
“Okay. Thanks for calling.” We hung up.
Maybe painting the whole lot gold and selling it as art on eBay is the way to go.
Conslutting as a way of life
Conslutted with Atlantic Internet. Easy few hundred dollars for a couple of hours work. This, and investing should make it easy for me to avoid real work. Can't complain.
But I can complain that I still haven't been able to get a hold of the A/C guys. Voice mail. Answer it. Sheesh.
Patent yourself for fun and profit
LONDON (Reuters) - A British woman has become the first person to attempt to patent herself, the national patent office said Tuesday.
Woman Files Patent Application on Herself via Flutterby
Interesting concept, but does that mean after the patent expires, people can use her without paying?