Marking Your Cyber Territory?
NoOnesMessiah asks: "I recently finished a relatively major webmail install for a large company and it all went very, very well. I left a '/.cornerstone' file for posterity (with names, dates the disks started spinning, 'asbuilt' notes for apache, php, etc) so that future generations would know who to blame (or call) in 3 to 5 years. I have also done this in various and sundry places within my network infrastructure while I wore the mantel of Senior Systems Engineer and even in bits of a major mp3 player's website while it was growing up on our network. Hell, even the concept of the 'asbuilt' is more than 14 years old to me. How was PHP built? Look at the "asbuilt" file for configure or compile-time options... This got me to wondering; How do Slashdot readers mark their territory so future generations know they were there? Certainly I'm not the only one who does this. I would think that most people do, even in some small way. Do you mark your own personal mailer, web server or desktops in the same fashion as you might for your employers or clients?"
It also helps cool the processors in the summer.
On any machine that I work on, I create a directory similar to '/-Build/' or 'C:\-Build\'. In this folder I keep subdirectories w/ drivers, software, updates, configs, etc. One other thing I include is a file called build.txt. In this file I put some nice information to have:
---
foo.bar.com
Built on 6/20/2003
Built by
Installation notes:
Updates:
6/26/2003 -
---
I am a big fan of making sure everybody knows "who-dun-it" and how to do it again.
First I build most servers from an autoinstall image like Redhat's Kickstart. I'm sure to include the kickstart config in /root. Everything else is built using package management tools and the source rpms/debs are kept on the machine for future generations to easily reproduce the exact same machine. Then finally keep /etc in CVS.
:)
For things that I may not want to take credit for, or not want some people to know who did this work[1] I put a seemingly random string in somewhere, usually out of sight, but visible to anyone who looks for it which is the md5sum of some string. If I want to prove that I wrote it, I can produce the string which generates the same md5sum, nobody else can. Also, if you put the string somewhere out of the way later coders ignore it and/or believe that it's important in some way they don't understand and leave it alone
[1]: I do a lot of work on IRC, you really don't want to put "Trojan detector 2002 By Isomer" all over it coz the kiddies whose trojans it detects will DDoS you instead...
One job I was not particularly happy one day, so I pasted a copy of The Story of Mel into a comment in one particularly annoying part of the code. I wonder if it's still there.
I have directories for HOWOTOs, package install documentation, projects, standards & conventions, and official policies. Although most of the documentation up there is mine, I'm working on getting the rest of the admin team to use the site, too. It has already proven very helpful as an adjunct to my own memory, and as a source of "RTFM" URLs when others ask the same question over and over :-)
Lots and lots of Easter Eggs. One program I wrote had an egg in it where if you typed in "UP YOURS", or any string containing those two words into the password field, the mouse cursor would give you the middlle finger until you rebooted. Of course, most users would never come across that, but I'm hopeful that developers maintaining the code did.
I've installed quite a few dedicated communications systems that, while controlled by computers, leave little room for creative configuration in the "OS". I still find my ways..
On one system, I'd configure the IP address and netmask for an interface that was never enabled, with the ASCII numbers for my initials and the date, 255.78.74.66 / 6.28.20.3 for today, for instance.
On another, it was possible to create files with arbitrary names but not put anything in them. A few zero-length files with a hello-message did the trick.
My favorite machine allows hand-editing of an ARP-like table for an obscure routing protocol. Handily enough, this entire interface is never enabled, so I can stuff the table with things like "INSTALLEDBY-00:00:DE:AD:BE:EF NJBANDCREW-00:00:00:00:00:00 JAN01FEB01-00:00:00:00:00:00".
Even on dumb equipment like wiring blocks, I always scratch my initials into the backside before closing the block, so later when the system is tested and mistakes are found, I can defend myself. I've tried to make it standard protocol among the installers I've trained, since it saves everyone grief and encourages responsibility.
More than once, I've jotted notes on the bottom of steel equipment frames before bolting them to the floor, to be seen by the crew that tears them out in 30 years. Anything from "Kilroy was here" with the accompanying graphic, to "Help! I'm trapped under the rack!".
I've been responsible for installing some things I'm not always proud of. Personalization can also be a way of disclaiming responsibility.
Wiring junction boxes frequently contain notes jotted on gray electrical tape. "Approved by engineer Larry 5/22/01; says the NEC doesn't apply here. Black:Hot White:Neutral Green:Ground BlackW/tape:Messenger WhiteW/tape:Magic. If this box is smokey, check the one at the other end of the aisle too!"
My favorite thing is finding notes and doodles left by previous generations. Once I saw a pile of boards torn out and waiting for material reclamation (gold chipleads and stuff), so I dug through the pile admiring yesteryear's design. One controller board had a profusion of "green wire", added by a field tech to update the board to a new revision. In some unused space in the corner, a little smiley face had been elegantly needlepointed into the perfboard.
Makes you wonder how much personalization goes undetected in the products we use every day! Spend some time in the Silicon Zoo checking out the art inside chips themselves.