home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 35 Internet
/
35-Internet.zip
/
netlitng.zip
/
netlitng.txt
next >
Wrap
Text File
|
1998-11-26
|
30KB
|
588 lines
Net Lightning. For OS/2 and Linux Release VII 11/26/98
Copyright 1998 Stu Mark
http://nyti.spaghetti.com
fordii@j51.com
(keep in mind these word were written a while ago and are timecast
back then. Now was then and now is now. As long as you understand that,
it'll make a lot more sense.)
Release VII was thanksgiving. I didn't have to go to work, and I get more
done in the morning than any other time of day, so I thought I'd fix it
now and be done with it.
If you're used to my normal style of documentation (see
http://nyti.spaghetti.com/murynt.doc) This will probably be a bit of a
letdown for you. I'm in a rush to do a lot of things this past summer, and
documentation is not exactly number 1 on my list.
Sad though really. It's my only useful outlet for my love of writing. I'm
working on a book though. Really. I am. You'll like it. Maybe I'll get more
into it as I start reading the old tomes.
But back to the topic at hand. I just came up with the name, this morning,
inspired by a thunderstorm in North Carolina.
N E T L I G H T N I N G
Now how cool is that. Given the actual function of the program, it would be
better titled "Net Lighting", but a name is a name and a rose has thorns.
Anything is better than the name of the executable: xcontrol.
I'm drafting this file from the Murray docs, of course, so you're going to
find similarities and the really long winded stuff, I'm just going to copy
straight. This isn't a 2-week-in-the-bathroom system though, so it shouldn't
take long to get through the important parts.
As always: I love Roman Numerals.
I. Net Lightning. (The program of the hour)
Release I. I like roman numerals. I'm going to assume that at some point I
will have a fix for one version (os/2 or linux) that the other doesn't
need, so the release numbers will probably eventually separate, but for now,
the first release. They're both Release I.
See below for the change list.
(This is Release VI)
Net Lightning OS/2 and Linux.
Concept and implementation by Stu Mark. But then again, a server is a server.
Copyright 1998.
Net Lighning is a simple server that makes it simple to control your x-10
devices from a computer. Basically I've translated flag files into the x-10
protocol. So all you have to do is create flag files with specific names and
the device will act accordingly. Net Lightning also reads information from
the interface and will execute commands if you want to when a particular
device performs an action.
II. Requirements. (What you need to make it go.)
I require that you read this. I require that you take a look around you and
notice the world. Life's too short for you to spend your time listening to me
preach about how life's too short. Go to Europe. It does wonders. If you live
in Europe, go to India. Don't go to the U.S. It's depressing.
You've got to have a computer running OS/2 2.0 or later, or Linux. I use
2.0.34 of the linux kernel, it's a pretty simple program, it'll probably work
in the 1.x releases, but I'm sure the 2.x will be fine.
You will need power for your computer. I can't help you here. It's a
society/government thing.
But Most Importantly: You NEED The X-10 Computer Interface (CM10A/CM11A)
You've got to have a serial port to hook it up to, and a wall outlet to plug
it in to. Now that I think about it, something tells me they don't have a
European version of X-10. I dunno. Maybe they do. If they don't then you
have little use of this program except to glean whatever little wisdom may be
in this doc file. But assuming there is no European X-10 system, then you
have no need of this program, you aren't reading this and therefore don't
live in Europe so that it's not a problem for you to visit there.
If you don't have x-10 and there's no wisdom in this file, then I highly
recommend you download Murray.
Also, if you don't have X-10. I recommend it. I think it's fun. Another
stupid little hobby of mine. Go visit them at http://www.x10.com
III. Non-Requirements. (What you don't need to make it not go.)
You don't have to be the ruler of the world/country/golf club/lemonade stand.
I don't require any monetary payment for this program. But I wouldn't mind
it :) See below. It doesn't time out or stop working. Credit where credit is
due and all that, but if you want changes, it'll cost ya. (stinky greedy
american)
You don't need a windows machine. They don't make very good servers so I
didn't port this to windows. (Dig #1)
You don't need to wear socks. I don't, and it works fine for me.
IV. Our Forefathers. (There is much to be said for the history of our world)
This was an answering machine message I made up once. Spoken in a very slow
drawling voice:
Four score and seven years ago, our forefathers did not have telephones. They
did not have answering machines and if they weren't there, you couldn't talk
to them. Isn't science wonderful.
V. Great Days. (There is much that we should probably skip when talking
about the history of our world)
It was on the eve of the great day. The Great Day as it was commonly held.
For our parents told us of it. They relished in the memories of the times
when all was good and well. The feel pity for us young ones who will never
know such simple times. Even in the times of plight, their world held such
great beauty and charm as we will never know. They sit in their rocking
chairs and drink their lemonade. They toast each other for all they have
lived through, but they know not of what the world is to bring them. Never
has anybody in all of human history seen what we have seen. Never have they
walked these paths. And they will never know.
And for what. For nothing.
VI. Net Lightning Features (What it's all about)
As stated above, Net Lightning does two things. It will allow you to control
your X-10 modules by simply placing flag files and it will allow you to run
tasks on your PC when it recieves a signal from a remote or a 2-way module.
The specifics: By flag file, I mean the existance of a file. It doesn't
matter what's in the file, just that it's there. Only 2 commands are
supported. On and Off. You can make a device turn on or off just by creating
a file. These files are scanned for once a second. It may seem like a lot,
but it doesn't take very long, the FS caches the directory contents and
really, what else is your machine doing that this is going to cause such a
problem. I'm a big fan of event oriented systems, but when it comes down to
it, polling for files works real well, and it's a lot simpler to write. When
the file is scanned, it will be deleted so that Net Lightning won't pick it
up again. If there is a problem deleting the file (like, oh say, you're
taking a really long time to open/write/close the file) it will keep getting
rescanned. So be quick about making the file. touch works nicely.
The naming convention of the files are as follows. Real simple
D<devicenumber><Y|N>
This means you create a file that starts with "D" for device, then the number
of the device, say "3", then "Y" OR "N". Y is for turning the device on, N
is for turning it off. This is because O for on and O for off doesn't work
well :)
Linux note: Case doesn't matter. Any case will be picked up.
D1n is equivalent to d1N
Ex:
d13y <-- this will turn on device 13 of the housecode set in the config file (see below)
d2n <-- this will turn off device 2.
The other side is the notification. When Net Lightning gets a signal from
the X-10 interface (again, it will only process on and off signals) it will
look in the config file to see if there's something to do for that device
and that function (on/off).
Details about format and naming conventions are below.
VII. Ner Flub. (Nixo Nada Nyet Neigne Nikasa Nipsa No)
Ne'er owen Ner Flub. Hozen plendt mik schlab. Fen herron clek timk dow
jevrohizah mekooloo, feg grintz den habloo. Sie denger dee plankz oriop
Seat Asura, re Renault Twingo, re Fiat Punto. Blehn kerod nact iblee oohoen
gvendel li flena dorenam naepli triepha.
VIII. Sorry about that. (Err...)
Sorry about that.
IX. Installation. (Section 8, section 3)
There is only one copy of this document, but there are two distributions.
One with the OS/2 executable in it, one with Linux Binary in it.
Actually, as of release VII, I find it wasteful and annoying, so there
will be one distribution: 1 doc file, and both binaries. The one with
the .EXE extention is the OS/2 binary, the one without is the Linux binary.
But I expect if you understood any of this so far, you'd have figured that
out by now.
I will describe both cases here.
The Os/2 distribution is a zip file with the exe, this doc file and a short
sample config file. The Linux distribution is a gzipped tar of the same.
This is the doc file. If you're reading this, you're doing pretty good so
far, and I probably don't have to explain to you how to unzip the archive.
In the unlikely event that you managed to unzip just the doc file, let me
assure you that it is quite necessesary for you to unzip/unarchive/extract
the other two files. Preferable into the same directory. Also remember to
look both ways before you cross the street.
What directory you use doesn't matter. The program defaults to the current
directory when it has to do something.
Well, gee what else. Since it's a server, I guess you're going to want to
put it in your startup somewhere.
The program itself accepts one parameter: The name of the config file it
should read from. If you don't specify it, it'll default to xcontrol.cfg in
the current directory. When booting, this is the root path in linux and the
root directory of your boot drive in OS/2. Chances are this is not what you
want, so you're going to want to specify the full path of the config file
on the command line:
Linux: I put it in my /etc/rc.d/rc.local (I use slackware)
The program doesn't run as a daemon by itself so you're going to have to do
something like this:
/usr/local/bin/xcontrol /etc/xcontrol.cfg &
The & is necessary so that it won't hang the rc.local script, because
Net Lightning never exits.
OS/2: I dunno. Make a shadow to it in your startup folder or something. Make
sure in the parameters box you put the full path of the config file.
Something like: c:\netlitin\xcontrol.cfg
Then you can reboot your system to make sure it starts up right. But first
I recommend you run it by hand to make sure everything is done right and
it finds the serial port and all that. Don't do it now, you still have to
set up the config file.
X. The Config File (Like there aren't enough config files in the world
already)
The options are similar between os/2 and linux, few things you should note:
There's an entry for PORT. For OS/2 it should be something like this:
PORT=COM2 or
PORT=COM1
For Linux it should be
PORT=/dev/cua0 or
PORT=/dev/cua1
I've got /dev/modem sym linked to /dev/cua1, so I use /dev/modem
There's an entry for SCANDIRECTORY. Again, fs specific...
OS/2: SCANDIRECTORY=c:\scanme
Linux: SCANDIRECTORY=/data/scanme
The SCANDIRECTORY is the path that Net Lightning will look for the flag
files mentioned above.
It helps a great deal if this directory exists :)
Everything else in the config file is the same between both systems.
HOUSECODE=F
This ones pretty simple. Right now the system only supports one housecode
at a time. Maybe someday it will do more. If I have a need or you pay me.
I can be bought. Set this to the letter of your housecode settings on your
devices and switches.
I have my housecode set to F for Fuck.
In the case of a remote control signal, Net Lightning will not distingush
between housecodes, so if you hit device 4 on, for housecode A and then
housecode B, Net Lightning will percieve it as the same signal. Whoops.
I before E except after c and neighbor. Make that Perceive. I still don't
have a spelling checker.
There are these things called 2-way modules. I don't have one of these yet,
but they tell me that it has the ability to send a notification of its state.
Now I don't know if it has to be polled or not. But it's possible that it
sends a signal just like a remote control does. In this case, you could set
up something like: If you turn on a lamp in your living room (and it sends
a notification that device 2 was turned on) then run a script that waits 30
minutes then creates a file called d2n. The result is that the lamp will
go off 30 minutes after it was turned on. Neat eh? Auto sleep feature.
The format for commands in the config file is this:
"CONTROL"<device number><on/off>=<command>
For example:
control1on=echo "living room lamp. on." > /talk/t.tlk
This will cause a file called /talk/t.tlk to be created when device #1 is
turned on. In my case, the /talk directory gets scanned for files with
the .tlk extention and the contents get read out loud via my sound card.
Neat eh?
Let's face reality here. If you're going to waste money on home automation,
might as well make it really geeky.
Tech details: The Linux version executes the command from the config file
by calling the system() function with "exec " plus whatever's on the config
line. You know more about linux than I do, so you should know what effect
it has.
The OS/2 version does a DosStartSession with mostly defaults so it should
be able to run PM or VIO programs.
Examples:
control13off=reboot
You can guess what that does.
control1on=c:\music\mp123 c:\music\mympeg.mp3
This will play a song for me when I hit the on button for device 1.
XI. Logging. (What the hell was that.)
As far as I know everything works okay, so you shouldn't have any problems.
If there is a problem, something will get logged. The Linux version logs to
syslog, the OS/2 version logs to a file in the scan directory called
xcontrol.log. I think. I use the linux version because that's the machine
with the free serial port. But if I were writing this program (which I did)
I would have made it xcontrol.log, so chances are, that's what it is.
If something goes wrong it will be logged. If it's not obvious what the
problem is email me at fordii@j51.com and I'll try and help you out.
Nobody cleans the OS/2 log file so you may want to download my NYTS II
scheduler and use it to archive the logs every once in a while. Remember,
that's http://nyti.spaghetti.com
XII. Me / distribution / pricing. (Send money :)
This program is free. You can distribute it as much as you like without cost
or penalty, as long as you give it away in the original zip/tgz with all
files intact.
I spent a lot of time and effort on this and I like audience participation
as much as the next guy. So, if you'd like to drop me a line, my
Eddress (e-mail address (I'm trying to coin a new phrase)) is at the end of
this file.
If you're feeling generous, I will gladly accept monetary donations which
will further entice me to continue development on this an other systems
that I'm writing. Especially if you want me to do something custom for you.
I'd probably be willing to do it, I'm usually a nice guy, but time goes by
quickly and it's getting to be summer out and outside is better than inside.
You know how it is. I write this software so more and more people stay home
and play with it, so that there's less people out in the parks and on the
roads. More for me. Call me selfish. Call me Stu.
Like Murray, $5 would be nice. $10 would be even nicer. $50 will get you a
thank you card in the mail. Help support the Free Software Writers by paying
for their software. Heh. Nesting Irony.
If you're in a rush and you have a greater need to pity my financial woes
than to actually use the program RIGHT NOW, and you don't keep your
checkbook on you, here's where you can send monetary donations. (This is
also listed at the end of this file.)
Stu Mark
Attn.: Net Lightning.
P.O. Box 77
Valley Cottage, NY 10989
U.S.A.
If you send money, I'll add you to my mailing list and send out mail
or e-mail with new releases or information about upcoming products,
versions or fixes. If I have any money left over after buying more
hardware (see Murray), maybe I'll be nice and spend some money on the
Ethiopian I use as a doormat.
(Keep in mind I wrote most of this section for Murray, and I can get into
a pretty twisted state of mind when I'm writing. I'm not really that
evil. Usually.)
While we're talking about money... I would say that recently I decided to
purchase a house. In fact, I decided to purchase a house months ago.
A found the perfect house, paid for the inspection, got the termite guy
to come, got a lawyer, did all that neat stuff you have to do when getting
a house. And then I waited. And waited and waited. While I'm waiting I'm
noticing that the time on my lease for my apartment is running out and
soon I will have nowhere to live. What am I waiting for? My bank.
BANK OF NEW YORK. Take note of this bank name and avoid it like the plaugue.
This is what democracy is all about, vote with your dollars. Help me vote
with our dollars and save yourself some grief, and DON'T GO TO BANK OF NEW
YORK FOR ANYTHING. It took them forever to do everything, and when I call
them up and ask what's going on why it's taking so long, I get the phone
system runaround. Or I get hung up on. In one case, a lady was seen running
from her desk to avoid answering my phone call. Truly amazing stuff.
But recently my loan was re-approved (yes, I had a loan, but that wasn't
good enough, I had to do it twice.) And they promised they'd send me a
commitment letter. It never came. I called up, got a few more runarounds,
they said they mailed it. That's all fine and good, but I never got it.
They said they'd fax it to me. They must have had to build the fax machine
themselves, because it took them 6 days to fax it to me.
There's a lot more (they found a wife I don't have/know about that I have
another mortgage with and they won't lend me money until I prove it's not
me) but I'll spare you more details. The point is: save yourself lots
of grief, and go with a different bank. So now you're saying "why not
go to a different bank?" The answer is because all banks take a long time
to lend you a lot of money, and I don't have that much time before
my lease is up (and the house seller gets pissed and goes and sells the
house to somebody else). AARRRGGGH.
So, while we're trying to talk about money. I should hopefully have
this house within the next month. My monthly payments will be a LOT of money
and I'll be broke. Help a house-poor programmer and donate to the cause :)
XIII. UnInstallation. (Now why would you want to delete such a cool program.)
It seems people like to uninstall software. Usually, it's more like they
whack the machine by accident and then have to reinstall.
Well, Net Lightning is pretty benign, it doesn't do anyting that you don't
tell it to. So all you pretty much have to do is delete the xcontrol[.exe]
file, the xcontrol.cfg file and the directory it was in, if it was by itself.
Deleting the exe will cause OS/2 to remove the shadow for you.
The linux people are going to have to remove the line out of the
/etc/rc.d/rc.local file themselves.
XIV. Legalooze. (This is where I copy the vague legal section from the
Murray documentation and twist it so that it sorta applies to Net Lightning.)
Net Lightning is my idea and my program and no matter what, I thought of it
and implemented it first.
This piece of art is not published under the GNU license because, while I
stand for what they're doing, I'm personally not too thrilled with the way
they do it. So let's call it Ford-ware or Stu-ware. I have the source, you
don't. You have the executable, and this DOC file. It all comes in one nice
neat zip, and it's simpler if you distribute it that way. I wrote it. It's
mine. Say what you want, but the copyright belongs to the original creator,
which is me, Stu Mark.
(Here's the irony...)
Give it out freely, but give out the original zip. Please. Be nice.
Be kind. Rewind. Don't be a prick. Rewind this flick.
There is no warranty expressed or implied, and all that other shit. You use
it at your own risk, I make no claims about what it will and won't do.
This software makes every intention of doing nothing but sending data up and
down the serial port you specify and executing commands in the config file.
If you decide to put control1on=rm -rf /*
Well, that's your own fucking fault. Don't come crying to me.
XV. Binaries. (I just HAVE to mention this)
If you're an OS/2 person, I make you an EXE, and you use it. No problem.
If you're a linux person, you probably know all about the GNU people and shit
like that and how I don't agree and all that crap. So if everybody on the
planet gives out source and let them compile it on their own goofy hardware,
why don't I?
Not my gig. I don't want to support programs on hardware I don't have. I
could think up tons of reasons. But I'll spare you. I just don't agree with
the philosophy of busting my ass and then giving everything away to be
ripped off and plagarized. There are very few things that I hold near and
dear to me. This is one of them. Drugs is the other. Go figure. The point
is: No source for You.
Sadly, I can't figure out how to make gcc compile for a 386, so I believe it
made a binary for a Pentium. Try it. If it doesn't work, let me know,
I'll figure something out.
XVI. Future releases/bug fixes. (There are no bugs, only design flaws.)
Net Lightning is a pretty simple program. If I didn't have to spend so much
time fighting with the interface (my 9-25 pin converter had a loose pin) I
could have pounded this out in a day, but it's over and done now, so here
it is. If you have any problems. Let me know, and I'll wait for your
payment to fix them. Just kidding.
email to fordii@evil.spaghetti.com
XVII. Known problems. ("It's not a problem, it's a bug. EVERYBODY has bugs.")
The only problem I know of are the limitations of the initial design. It can
only do on/off and only talks to one housecode.
I did once, however, manage to get my X-10 interface into a state where
nothing would work. Even the windows software they gave me wouldn't talk
to it. I tried unplugging it and taking the batteries out. To no avail.
Then I clicked something on the remote. It shot out some shit data then
went back to normal. Can't reproduce it. Just fyi.
10/19/98 There is a problem I can't quite duplicate enough to figure out
what's wrong and how to fix it. My apartment gets lots of power
failures. This causes the x-10 interface to reset and make
timer requests. I didn't know this until release IV. This
gets the x-10 interface back to a useable state after a power
failure. Unfortunately it doesn't work right 100% of the time
and I don't know why, and the x-10 spec docs are a bit on the
lacking side and in some cases, just plain wrong, so Release
V and VI have little hacks in it to help it recover.
XVIII. Update history.
6/15/98 Net Lightning for OS/2 and Linux Release I
8/17/98 Net Lightning for OS/2 and Linux Release IV
1) There may be some situations where data comes in from the serial port
that doesn't look like an x-10 device (say, oh, a modem for example)
and Net Lightning would jsut sit there and spam the syslog all day, so
now, if there's a 50 consecutive errors, the program will bail out.
2) I didn't notice this until it happened to me. Power failures put the
device into a "send me macros" state, and won't do anything until you
passify it. I wasn't doing this, so the server would be useless after
a power failure. This has been fixed.
10/19/98 Net Lightning for OS/2 and Linux Release VI
1) Net Lightning creates a d7n file. This will get scanned and
executed. So far this has been the trick to make my x-10
interface recover after a power failure.
11/26/98 Net Lightning for OS/2 and Linux Release VII
1) Net Lightning no longer creates a d7n file. It was a cheap
and shitty hack I put in to get around a state problem I was
having. Well, I woke up this morning and decided to fix it
once and for all. It turns out that if you had clicked a
lot of buttons on your remote, they'd queue up and the
program would get into this state where it would keep
executing the last function over and over and over forever.
It was driving me nuts, because my friends would come over
and play with it, not intending any harm and it would go
in to this endless loop. It turned out to be a stupid bug
and not a protocol problem like I thought (which is why I
was avoiding working on it for so long.)
So whereas I always say I don't know of any bugs. I still
don't, and it now works perfectly for me, including power
failures.
XIX. My life saga. (People who like to read about my personal life.)
I'm not going to go into this here. Read the Murray documentation for the
dirt.
XX. Are you paying attention?
Coalition to get everybody to drop 95 and start using OS/2, Linux or NT.
XXI. Movie Reviews
Godzilla was the worst movie I've ever seen in my life.
They made it as nintendo generation tacky as possible. They stole the effects
entirely from Jurassic park: The damn thing didn't look anything like
Godzilla. Godzilla used to have a square head and stood up straight and
had small arms and rested his tail on the ground. What a piece of
cinematic shit.
"Pi" was a very cool movie. It's one of those indy films that play in some
obscure theater in New York City. I happened to catch it during it's very
short run. "When I was a kid my mother told me not to stare at the sun. So
once, when I was 6, I did." Great movie. Highly recommended. The guy's got
his own mainframe.
XXII. Required Reading. (Enhance your view of the world without computers.)
If you have a spare moment and are the kind of person who can actually make
an effort to get things done, I suggest seeking out an article called
"A Week Of Sheer Fakery" by George Will. It was published in the September
15th 1997 issue of Newsweek. They don't seem to have a web page (more power
to them) and I went hunting around for an electronic version and couldn't
find one. If I had a religion, this would be its own chapter in my
"Defines" book. I can't begin to explain what a great article it is,
you're going to have to read it yourself. I leave it as an exercise for the
reader to acquire this issue of Newsweek, read it understand it and preach
it to everybody you know. This article is REQUIRED READING.
(I read recently that Newsweek will [finally] be putting up a website.
Perhaps they will have an archive.)
Newsweek finally got their website up. I wrote to them and they're planning
an archive section, but it's not available yet.
XXIII. Plugs (This is where I advertise for myself)
Come check out all of the other crap I've wasted my time writing.
Most highly recommended (by a lot of people other than me) is Murray.
http://nyti.spaghetti.com
If you like british humor read the doc file for it. I get email all the
time from people telling me they can't use the program, but loved the
documentation.
Murray (Windows 95/NT and OS/2 versions available) is a program that sits
in the background running on your machine and will go out to a server
(my server, at my house, in the mud) and download a new desktop background
or system sound for you, so you don't have to, and you get a surprise
multimedia experience every time you use your machine.
You may have heard me mention Tragic. Tragic is my half done up and coming
project. It's not quite as much fun as Murray in that you can't click
"trigger item now" and get immediate satisfaction, but it does some really
cool things. I'm trying to build hype for it now, so it'll spread like
wildfire when it's done. Net Lightning is another one of the multitudes of
smaller projects that gets in the way of tragic getting done. I'll get to it.
I always do.
NYTS II is a process scheduling utility for OS/2. Yeah, I know there's
lots of schedulers out there, but I like mine. I can change it.
It's small and tight and I get lots of email from all over the world
from people disbelieving I can write a program in 50K that does more than
that piece of crap they ship with OS/2 that loads in half of OS/2 as
a dll.
-----------------------------------------------------------------------------
Net Lightning for OS/2 and Linux Release VII
8/17/98 - 11/26/98 Copyright Stu Mark.
e-mail: fordii@evil.spaghetti.com
telnet nyti.spaghetti.com on port 1111 (24 hours a day)
Check out my web site, it has a cool background.
http://nyti.spaghetti.com
Monetary donations (see section XII) can be made payable to:
Stu Mark Attn: Net Lightning
P.O. Box 77
Valley Cottage, NY 10989
U.S.A.
Latest and greatest versions of all my software are available via ftp
at nyti.spaghetti.com or http down from http://www.bestweb.net/~fordii
Come visit my web page (it's rather sparse right now, all my free time
goes to working on Tragic and I don't have any time to make a nice page)
at (guess where...) http://nyti.spaghetti.com
I don't think I did much windows bashing, but in case I did...
(Any nasty remarks sent in the general direction of Window's capacity to
function, [are fully intentional,] are not opinion, but a statement of fact.
So, don't try to slam me with some bullshit libel suit.)
I've also decided to start a campaign to make it a really loud notion to
compare The Microsoft marketing department to the Marketing department at
Sirius Cybernetics Corp. Anybody with me on this? If so, mail a message
to my BBS at doom@nyti.spaghetti.com
There's more fun to be had where the grass is greener.
It makes you appreciate what you've got more.
Live long, eat shit, prosper, and die.
It's coming to get me, but I can't get in front of it.