<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8830206281726092271</id><updated>2012-02-15T23:43:30.660-08:00</updated><category term='linux'/><category term='volunteer'/><category term='retro'/><category term='pclinuxos'/><category term='atari'/><category term='ash'/><category term='bsd'/><category term='silicon valley'/><category term='giving'/><category term='robots'/><category term='homeless'/><category term='bulletin board system'/><category term='bash'/><category term='bbs'/><category term='help'/><category term='a.m.i.s.'/><category term='usb missle launcher'/><category term='shell'/><category term='wireless'/><category term='unix'/><category term='script'/><category term='inspiron 1526'/><category term='amis'/><category term='elvis'/><category term='sh'/><title type='text'>Life on Castro</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>25</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-7518252029516667050</id><published>2009-07-04T09:23:00.000-07:00</published><updated>2009-07-05T17:23:27.892-07:00</updated><title type='text'>Bash Scripting</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_M5S1P7S4Xq8/SlFD-7z51DI/AAAAAAAAABo/RaxPyUtU0rg/s1600-h/grmpn.gif"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 320px; height: 320px;" src="http://4.bp.blogspot.com/_M5S1P7S4Xq8/SlFD-7z51DI/AAAAAAAAABo/RaxPyUtU0rg/s320/grmpn.gif" border="0" alt=""id="BLOGGER_PHOTO_ID_5355136180406572082" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So here I was, all set to start getting all of my notes into one place on bash scripting, when I came across an obscure note in my pile of paper.  Something I had actually scribbled in there some time ago, but either a) forgot I wrote it there, and as such never referenced it, or b) glanced down at the note and couldn't immediately make out what it said.  See, some of my note taking occurs at 3AM, or thereabouts, under the influence of a tremendous amount of coffee and tea, making my notes a bit un readable by most humans in this particular plane of existance.&lt;br /&gt;&lt;br /&gt;The original note said: LDP - bash programming howto.&lt;br /&gt;This was crossed out in green crayon, and written directly below was: LDP - ABS.&lt;br /&gt;&lt;br /&gt;Intuitive.  &lt;br /&gt;&lt;br /&gt;LDP - bash programming howto: &lt;a href="http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html"&gt;http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html&lt;/a&gt;&lt;br /&gt;LDP - ABS (Advanced Bash Scripting) : &lt;a href="http://tldp.org/LDP/abs/html/index.html"&gt;http://tldp.org/LDP/abs/html/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The latter actually has everything that is in my notes, with the exception of my notes pertaining to whatever problem I was attempting to solve at the time, and the examples in teh ABS are generic, and thus "More gooderer"(tm) than my notes.&lt;br /&gt;&lt;br /&gt;Why did I bother writing all this drivel if my intent was to merely point the reader to those two resources? Only so I could use the term "Giant Monkey Robot Ninja Pirate Viking" in a sentence. And also, so there was a place for me to go look in the event I ever need to find these resources again.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-7518252029516667050?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/7518252029516667050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=7518252029516667050' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/7518252029516667050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/7518252029516667050'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2009/07/bash-scripting.html' title='Bash Scripting'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_M5S1P7S4Xq8/SlFD-7z51DI/AAAAAAAAABo/RaxPyUtU0rg/s72-c/grmpn.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-9181471943925841442</id><published>2009-01-15T07:54:00.000-08:00</published><updated>2009-01-15T07:59:27.828-08:00</updated><title type='text'>Update to "The Best Hotdogs on Planet Earth"</title><content type='html'>The original blog post here: &lt;a href="http://lifeoncastro.blogspot.com/2008/01/best-hot-dogs-on-planet-earth.html"&gt;http://lifeoncastro.blogspot.com/2008/01/best-hot-dogs-on-planet-earth.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, a couple of folks wanted to know exactly where it was - my childhood hot dog stand, the ultimate in what makes a dog a dog.. hot dog mecca.&lt;br /&gt;&lt;br /&gt;&lt;iframe width="425" height="240" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.com/maps/sv?cbp=11,1.2745500559648804,,0,6.302774427020505&amp;amp;cbll=40.763058,-74.178131&amp;amp;panoid=&amp;amp;v=1&amp;amp;hl=en&amp;amp;gl=us"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=d&amp;amp;source=embed&amp;amp;saddr=Bloomfield+Ave,+Newark,+NJ&amp;amp;daddr=40.763101,-74.178164&amp;amp;hl=en&amp;amp;geocode=CbKQnLnoBMVkFe0BbgId6h6U-w%3B&amp;amp;mra=mi&amp;amp;mrsp=1&amp;amp;sz=19&amp;amp;sll=40.763099,-74.178156&amp;amp;sspn=0.001414,0.002224&amp;amp;ie=UTF8&amp;amp;ll=40.763099,-74.178156&amp;amp;spn=0.001414,0.002224&amp;amp;t=h&amp;amp;layer=c&amp;amp;cbll=40.763058,-74.178131&amp;amp;panoid=6nwBfZe7QQxHNjJRCZqz4g&amp;amp;cbp=11,1.2745500559648804,,0,6.302774427020505" style="color:#0000FF;text-align:left"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;There it is - in all of it's glory.  If you have business in Newark, or live in the tri-state area (really, it's that worth it!) go.  For the sake of your soul, go.&lt;br /&gt;&lt;br /&gt;Plus - you can pick up an "Eat Me" t-shirt while you are there.  Oh.. and you should also fedex me a dozen or so of those bad boys.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-9181471943925841442?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/9181471943925841442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=9181471943925841442' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/9181471943925841442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/9181471943925841442'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2009/01/update-to-best-hotdogs-on-planet.html' title='Update to &quot;The Best Hotdogs on Planet Earth&quot;'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-8499138401975320808</id><published>2009-01-09T07:18:00.000-08:00</published><updated>2009-01-09T12:36:03.069-08:00</updated><title type='text'>Linux Interview - Just when you thought you knew it all.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_M5S1P7S4Xq8/SWe1LJx7RCI/AAAAAAAAABA/1AlnoKPUVTI/s1600-h/monkeyrobot.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 307px;" src="http://1.bp.blogspot.com/_M5S1P7S4Xq8/SWe1LJx7RCI/AAAAAAAAABA/1AlnoKPUVTI/s320/monkeyrobot.jpg" alt="" id="BLOGGER_PHOTO_ID_5289395490578449442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have recently found myself in a search for the perfect job.  What might that be? Well, I would say a job where I get to operate 200 foot tall giant robots in some cool inter-galactic robo-monkey-gladiator-swordfight type sport.  I'm reasonably sure that I won't be running into one of those anytime soon.  So, failing that, I think the perfect job is a Linux Systems Administration gig, working for a company that is doing something really cool, really needed, and really open.  I would want to be surrounded by a group of people who are there for the same reason I am: make those systems run at peak performance, find new ways of achieving those goals, and scaling them out as needed. I need the people around me to have ideas to share, and be happy to hear mine.&lt;br /&gt;&lt;br /&gt;Well, that's enough of the "What I want in a perfect world".  The meat of this article is really to list out some of the most common questions I have been asked along this journey (which I am still on as of this writing).  There are things we, as Linux Administrators, do every day.  Using ls, ps, df, du, who, w, last, top, vmstat, cat, blah blah blah...  but there are things that we know, we just get caught offguard having to describe them to people who ask.  Hopefully this list will help you along with your search.&lt;br /&gt;&lt;br /&gt;Warning: If you do not know a certain level of Linux, Unix, BSD, or shell scripting, this is not a cheatsheet for you.  I make a lot of assumptions here, and hope that you will go off and research how to write scripts on your own.&lt;br /&gt;&lt;br /&gt;Standard questions/exercises:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What is an inode? An inode is a data structure holding information about filesin a file system. There is an inode for each file, and a file is uniquely identified by the file system on which it resides and its inode number on that system.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Write a script that does "X". Using the shell you are most familiar with will help you here.  We all execute oneliners every day, several times a day.  Simply string those commands together in a most unelegant manner - it should not matter to the interviewer; obviously you know what you are doing. Example - a script that counts up to 10 without using count:&lt;/li&gt;&lt;/ul&gt;#!/bin/bash&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;br /&gt;ten=0&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;br /&gt;while [ $ten -le 10 ]&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;br /&gt;do&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;     echo $ten&lt;span style="font-family:monospace;"&gt;&lt;br /&gt;&lt;/span&gt;     ten=$((ten+1))&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;What tool would you use to detect the OS of a remote machine, and what is the command line to do it? Tricky.  Could use rsh in an insecure environment and do:  &lt;span style="font-family:monospace;"&gt;&lt;/span&gt;rsh -l username hostname "uname -r" ... or, the equivelent in ssh, assuming ssh keys are in place; ssh hostname uname -r ... or, and this would be my first try - install nmap and do a sudo nmap -O -v hostname&lt;/li&gt;&lt;li&gt;Show the failed attempts to login via ssh. It's dirty, but it's a first pass that gives an indication of who tried to pop the top off your box: sudo grep Failed /var/log/messages&lt;/li&gt;&lt;li&gt;What system call signals are available in linux? If you can memorize and ramble off 64 available signals, and their names.. maybe you should get out more.  I rely on "man kill" and "kill -l" (thats a lowercase "L", not a ONE)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How do I find what network connections are active, and what program is using them? netstat -ap -or- netstat -anp (if there is a problem with name resolution, the "n" will use the ip rather than perform a hostname lookup)&lt;/li&gt;&lt;li&gt;What are setuid/setgid in relation to file permissions? Yikes.  I love the short questions with the long answers.  Don't stumble, mutter, or ramble here - it's easy to do.  setuid on an executable file allows a user to run that program with the permissions of the owner of the file rather than the person who executed it.  setguid is the same thing; only with the permission of the group the file is a member of.&lt;/li&gt;&lt;li&gt;What is init? Init is the program that runs after the kernel loads that spawns all other processes.  It runs as PID 1, and on RH, CentOS, Fedora, looks to the rc#.d/* files for stuff to launch.  The # is the current runlevel, and the * is anything executable that is in there - either symlinked by hand or using something like chkconfig --level ##### PROGRAM on/off&lt;/li&gt;&lt;li&gt;What are the standard runlevels? This is totally tricky, there's only 3 runlevels that are the same across all UNIXs/Linux's/BSD's - 0(Halt), 1(Single user), and 6(Reboot).  Typical of the newish modified systems (Redhat and its derivitives), standard runlevels 3 (no X), and 5 (X) are default - set in inittab.&lt;/li&gt;&lt;/ul&gt;I need to get to a few things.. I didn't realize how long this list was going to end up being..&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-8499138401975320808?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/8499138401975320808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=8499138401975320808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/8499138401975320808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/8499138401975320808'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2009/01/linux-interview-just-when-you-thought.html' title='Linux Interview - Just when you thought you knew it all.'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_M5S1P7S4Xq8/SWe1LJx7RCI/AAAAAAAAABA/1AlnoKPUVTI/s72-c/monkeyrobot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-1166430909413228860</id><published>2008-12-12T15:57:00.000-08:00</published><updated>2008-12-12T16:10:34.831-08:00</updated><title type='text'>Trapping in bash</title><content type='html'>Scenario: You are running a code deployment to a small server farm of maybe 10-15 servers.  Too small for something like tentakal, but too big to just ssh and deploy, logout, wash - rinse - repeat.&lt;br /&gt;&lt;br /&gt;So you write a simple while; do loop and roll your stuff out that way.&lt;br /&gt;&lt;br /&gt;The problem comes up when you realize that the deployment is hanging on a particular function, and you want to exit from that session, but want to continue your deployment on the rest of the machines - or whatever...&lt;br /&gt;&lt;br /&gt;Enter my friend "trap".&lt;br /&gt;&lt;br /&gt;Trap can pick up a variety of signals, and act on those in whatever way you wish.&lt;br /&gt;&lt;br /&gt;Example:  You want to stop someone from hitting ^C:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;trap "echo 'tsk tsk - no ^cing!'" 2&lt;br /&gt;while true; do&lt;br /&gt;  echo "I dare you to press ^C"&lt;br /&gt;  echo ""&lt;br /&gt;  sleep 15&lt;br /&gt; done&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;So - this will wait for the signal 2 (INTerrupt), and print &lt;span style="font-style: italic;"&gt;tsk tsk - no ^cing!&lt;/span&gt; to the screen everytime you hit ^C.&lt;br /&gt;&lt;br /&gt;Now, how do you stick this into a script so that it will execute that portion until it gets a ^C?&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;# some code.. do what you want here...&lt;br /&gt;&lt;br /&gt;#Trap code:&lt;br /&gt;&lt;br /&gt;# First trap - if ctl-c is hit, it will go to the next function:&lt;br /&gt;while [ trap -ne 2 ] ; do&lt;br /&gt;# your commandline/script code here&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;# The next function:&lt;br /&gt;&lt;br /&gt;while [ trap -ne 2 ] ; do&lt;br /&gt;# your commandline/script code here&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;...and so on...&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-1166430909413228860?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/1166430909413228860/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=1166430909413228860' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/1166430909413228860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/1166430909413228860'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/12/trapping-in-bash.html' title='Trapping in bash'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-385784674135081243</id><published>2008-12-04T14:50:00.000-08:00</published><updated>2008-12-05T11:24:28.976-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='inspiron 1526'/><category scheme='http://www.blogger.com/atom/ns#' term='pclinuxos'/><category scheme='http://www.blogger.com/atom/ns#' term='wireless'/><title type='text'>PCLinuxOS on the Dell Inspiron 1526</title><content type='html'>The Dell Inspiron 1526 was too inexpensive for the power to pass up.. but I did not want to run Windows on it, and I didn't want to run Ubuntu (nothing against it, just not my cup of tea).  I also didn't want to force my favorite linux (Slackware) to work on it, since this was to be used for everyday work.&lt;br /&gt;&lt;br /&gt;PCLinuxOS seemed to offer exactly what I wanted.&lt;br /&gt;&lt;br /&gt;I installed it and it just worked.  That is, except the wireless.  If there was anything that I would have be an issue, it is the wireless - since there are so many ways to hack that to work.&lt;br /&gt;&lt;br /&gt;Step-by-Step (as root, to avoid having to sudo every time):&lt;br /&gt;&lt;br /&gt;1) echo -e 'blacklist bcm43xx\nblacklist wl' | sudo tee -a /etc/modprobe.d/blacklist&lt;br /&gt;&lt;br /&gt;2) wget ftp://ftp.us.dell.com/network/R174291.exe&lt;br /&gt;&lt;br /&gt;3) mkdir bcm-drivers&lt;br /&gt;&lt;br /&gt;4) cd bcm-drivers&lt;br /&gt;&lt;br /&gt;5) unzip ../R174291.exe&lt;br /&gt;&lt;br /&gt;6) ndiswrapper -i bcmwl5.inf&lt;br /&gt;&lt;br /&gt;7) depmod -a&lt;br /&gt;&lt;br /&gt;8) modprobe ndiswrapper&lt;br /&gt;&lt;br /&gt;9) echo 'ndiswrapper' | sudo tee -a /etc/module&lt;br /&gt;&lt;br /&gt;10) Click Control Center -&gt; Network -&gt; Set up a new network interface -&gt; Wireless&lt;br /&gt;&lt;br /&gt;11) Follow the prompts, and use the Broadcom driver that now shows up (or should)&lt;br /&gt;&lt;br /&gt;12) You should be taken through the process of configuring the wireless network.&lt;br /&gt;&lt;br /&gt;13) In your terminal window, as root, type: ndiswrapper -ma&lt;br /&gt;&lt;br /&gt;14) in your terminal window, open /etc/rc.d/rc.local and add:&lt;br /&gt;&lt;br /&gt;depmod -a&lt;br /&gt;modprobe ndiswrapper&lt;br /&gt;ndiswrapper -ma&lt;br /&gt;&lt;br /&gt;15) All done.  Now when you reboot,  your wireless interface will be there.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:monospace;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-385784674135081243?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/385784674135081243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=385784674135081243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/385784674135081243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/385784674135081243'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/12/pclinuxos-on-dell-inspiron-1526.html' title='PCLinuxOS on the Dell Inspiron 1526'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-922265678249937007</id><published>2008-06-02T15:11:00.000-07:00</published><updated>2008-06-02T15:41:21.039-07:00</updated><title type='text'>Five favorite tools</title><content type='html'>Everyone has their lists. Here's my list of "top 5 tools every linux admin needs to know intimately":&lt;br /&gt;&lt;br /&gt;5) screen ( &lt;a href="http://www.gnu.org/software/screen/"&gt;http://www.gnu.org/software/screen/&lt;/a&gt; )  I love the ability to log in to a box, work a bit, detach my screen, go home, re-attach to the screen, and it's like I never left the session (technically, I didn't)&lt;br /&gt;&lt;br /&gt;4) lsof ( &lt;a href="http://people.freebsd.org/%7Eabe/"&gt;http://people.freebsd.org/~abe/&lt;/a&gt; ) - gives info about all open files. This is one of the standard troubleshooting tools for finding network issues, "why cant I rm that file?", and a host of other annoyances.&lt;br /&gt;&lt;br /&gt;4) strace ( &lt;a href="http://sourceforge.net/projects/strace/"&gt;http://sourceforge.net/projects/strace/&lt;/a&gt; ) - need to find out why a running process is hanging? strace -p [PID] that bad boy.  Like lsof, I cannot live without this.&lt;br /&gt;&lt;br /&gt;3) splitvt ( &lt;a href="http://www.devolution.com/%7Eslouken/projects/splitvt/"&gt;http://www.devolution.com/~slouken/projects/splitvt/&lt;/a&gt; ) - I am always needing to compare two files side by side, and sometimes I just don't want to go through the series of logins to get to a specific machine to do it.  SplitVT will give you multiple usable windows to work in inside of a single VT.  Very cool.&lt;br /&gt;&lt;br /&gt;2) awk ( &lt;a href="http://www.gnu.org/manual/gawk/"&gt;http://www.gnu.org/manual/gawk/&lt;/a&gt; ) - when im in a situation where I want to grab specific data from something, this is my best friend.  Like when I need to grab the MAC address of my eth0 device: /sbin/ifconfig eth0 | grep HWadd | awk '{ print $5 }'&lt;br /&gt;&lt;br /&gt;and finally - Rick's number one.. the single most oft used utility I have.. and the one that is going to get me branded as being on "THAT SIDE" -&lt;br /&gt;&lt;br /&gt;1) vim ( &lt;a href="http://www.vim.org/"&gt;http://www.vim.org/&lt;/a&gt; ) - vi .. improved.. :) it's a tool; it's my preferred tool for editing nearly anything (except this blog, cause the web interface is also a tool - and handy)  I can't expand on this any further.. either you use it or you don't..&lt;br /&gt;&lt;br /&gt;:wq&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-922265678249937007?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/922265678249937007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=922265678249937007' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/922265678249937007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/922265678249937007'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/06/five-favorite-tools.html' title='Five favorite tools'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-2896120975287179101</id><published>2008-05-17T07:33:00.001-07:00</published><updated>2008-06-03T07:39:54.978-07:00</updated><title type='text'>Locking down a RedHat based box</title><content type='html'>It has been a long time since I wrote anything here - I've been extremely busy.  We're doing some pretty darn cool stuff at work technology-wise, which keeps me excited (it helps when a fellas boss is a tech junkie, and like to see your ideas and then add to em..).  So, yesterday I had to harden a box for an undisclosed purpose, and it made me think "Hey! I can stick this on the blog!"&lt;br /&gt;&lt;br /&gt;This should work with any RPM based (redhat, fedora, centos, whitebox, etc) Linux distro.&lt;br /&gt;&lt;br /&gt;Here's a not so brief overview: First, we need the local (non-root) account created, make sure we're booting to runlevel 3, drop the number of tty's to 2, lock the filesystem, remove unimportant services, fixup (not in that special IOS way, but in the southern phrase way) a few of the etc/* files, lock down some not-so-secure services, make ssh a little more secure, removing a metric good lot of un-used RPM's,  locking down the services we do use, perform a little tcp hardening, some IPTables Rules.. eh.. a lot of stuff.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE: 06/02/2008:&lt;/span&gt; ... I wrote that about 2 weeks ago - since then, I've whipped this up:  &lt;a href="http://freshmeat.net/projects/lockdown/"&gt;http://freshmeat.net/projects/lockdown/ &lt;/a&gt;&lt;br /&gt;It needs some outside eyes, a little TLC, and some good ol' community contribution to be worthy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-2896120975287179101?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/2896120975287179101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=2896120975287179101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2896120975287179101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2896120975287179101'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/05/it-has-been-long-time-since-i-wrote.html' title='Locking down a RedHat based box'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-899800638704414753</id><published>2008-02-06T09:00:00.000-08:00</published><updated>2008-02-06T09:10:03.386-08:00</updated><title type='text'>In the midst of Tornadoes and Super Tuesday.. the Cat Rules.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_M5S1P7S4Xq8/R6no2xAe1hI/AAAAAAAAAAg/P1XMpfFsOVA/s1600-h/catrules.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_M5S1P7S4Xq8/R6no2xAe1hI/AAAAAAAAAAg/P1XMpfFsOVA/s320/catrules.jpg" alt="" id="BLOGGER_PHOTO_ID_5163914475322922514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;It's good to have things in perspective.  All applaud Surfing Cat.&lt;br /&gt;We have tornadoes, we have the primaries,  we have death and destruction, global warming, and new technology.  What rates top 3 news stories for CNN?&lt;br /&gt;&lt;br /&gt;I have no idea why this is so funny to me.  It just is.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_M5S1P7S4Xq8/R6npoBAe1iI/AAAAAAAAAAo/TP94FVKh4Ek/s1600-h/supercat.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_M5S1P7S4Xq8/R6npoBAe1iI/AAAAAAAAAAo/TP94FVKh4Ek/s320/supercat.jpg" alt="" id="BLOGGER_PHOTO_ID_5163915321431479842" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The linkie to the surfing cat is &lt;a href="http://www.cnn.com/video/#/video/offbeat/2008/02/05/vo.peru.suring.cat.new.ap"&gt;here &lt;/a&gt;(with commercial - yay!)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-899800638704414753?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/899800638704414753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=899800638704414753' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/899800638704414753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/899800638704414753'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/02/in-midst-of-tornadoes-and-super-tuesday.html' title='In the midst of Tornadoes and Super Tuesday.. the Cat Rules.'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_M5S1P7S4Xq8/R6no2xAe1hI/AAAAAAAAAAg/P1XMpfFsOVA/s72-c/catrules.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-4973842838271109228</id><published>2008-01-25T15:02:00.001-08:00</published><updated>2008-01-25T15:02:33.292-08:00</updated><title type='text'>Best Hot Dogs on Planet Earth</title><content type='html'>seriously.&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/VEKnAFYcKxM&amp;amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/VEKnAFYcKxM&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-4973842838271109228?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/4973842838271109228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=4973842838271109228' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/4973842838271109228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/4973842838271109228'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/best-hot-dogs-on-planet-earth.html' title='Best Hot Dogs on Planet Earth'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-3337608945254607616</id><published>2008-01-21T07:46:00.000-08:00</published><updated>2008-01-21T07:49:24.189-08:00</updated><title type='text'>Postgres Replication: Elvis is not dead.</title><content type='html'>Much like the cat, there has been some speculation on the death of the king.   He is alive and well in the Postgres SQL Replication mechanism called ELVIS.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/bruce/"&gt;https://sourceforge.net/projects/bruce/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Keep an eye on this, the code will be uploaded, the binaries made available, and "it will be a  good thing."(tm)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-3337608945254607616?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/3337608945254607616/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=3337608945254607616' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/3337608945254607616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/3337608945254607616'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/postgres-replication-elvis-is-not-dead.html' title='Postgres Replication: Elvis is not dead.'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-5754186035333305984</id><published>2008-01-17T22:18:00.000-08:00</published><updated>2008-01-17T22:19:02.617-08:00</updated><title type='text'>nothing new</title><content type='html'>Schroedinger's cat is: &lt;blink&gt;NOT&lt;/blink&gt; dead.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-5754186035333305984?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/5754186035333305984/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=5754186035333305984' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5754186035333305984'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5754186035333305984'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/nothing-new.html' title='nothing new'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-1884207456742789171</id><published>2008-01-15T08:56:00.000-08:00</published><updated>2008-01-15T09:46:22.245-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='retro'/><category scheme='http://www.blogger.com/atom/ns#' term='bbs'/><category scheme='http://www.blogger.com/atom/ns#' term='a.m.i.s.'/><category scheme='http://www.blogger.com/atom/ns#' term='atari'/><category scheme='http://www.blogger.com/atom/ns#' term='amis'/><category scheme='http://www.blogger.com/atom/ns#' term='bulletin board system'/><title type='text'>A.M.I.S. Source code.</title><content type='html'>Seriously, I don't know why I'm posting this; but I think it is awesome to see how we had to juggle stuff in the 80's to make something like this.  This is the source code for the AMIS BBS written for the atari 8-bit line of computers.  I ran mine on an Atari 800.  The code for my BBS was heavily modified to do things like not crash (woot!), use 4 character passwords and have a real users database, it had 26 message bases, and 10 file areas.  All this ran from a pair of 126K (Yes, K.. as in KILO byte) floppy disks.&lt;br /&gt;&lt;br /&gt;---------------BEGIN CODE--------------------&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;5 GOTO 29000:REM AMIS.BBS 07-01-83 FLAGCITY VERSION #2.2&lt;br /&gt;&lt;br /&gt;8 STATUS #MODEM,X:IF PEEK(749)&gt;C0 THEN GOTO C8&lt;br /&gt;&lt;br /&gt;9 IF PEEK(INK)=C255 THEN IF NOT PEEK(INM) OR LOCAL THEN RETURN&lt;br /&gt;&lt;br /&gt;10 GOSUB GETCHR:IF X&lt;&gt;19 THEN RETURN&lt;br /&gt;&lt;br /&gt;12 GOSUB GETCHR:RETURN&lt;br /&gt;&lt;br /&gt;20 TOUT=C0:IF LOCAL THEN GET #C3,X:RETURN&lt;br /&gt;&lt;br /&gt;25 STATUS #MODEM,X:IF PEEK(INM) THEN GET #MODEM,X:? CHR$(X);:RETURN&lt;br /&gt;&lt;br /&gt;30 IF PEEK(INK)&lt;c255 then="" get="" return="" 40="" tout="TOUT+C1:IF"&gt;1000 THEN GOSUB OPM&lt;br /&gt;&lt;br /&gt;50 GOTO 25&lt;br /&gt;&lt;br /&gt;70 L$="":IF PEEK(CON)=C5 THEN POP :GOTO 13000:REM GLINE&lt;br /&gt;&lt;br /&gt;80 GOSUB GETCHR:X$=CHR$(X)&lt;br /&gt;&lt;br /&gt;90 IF ((X$=BS$) OR (X$=CHR$(C127) AND AMODE=C0)) AND L$&lt;&gt;"" THEN ? #MODEM;BS$;" ";BS$;:L$(LEN(L$))="":GOTO 80&lt;br /&gt;&lt;br /&gt;100 IF X$=DEL$ AND L$&lt;&gt;"" THEN FOR X=C1 TO LEN(L$):? #MODEM;BS$;" ";BS$;:NEXT X:L$="":GOTO 80&lt;br /&gt;&lt;br /&gt;110 IF X$=CR$ THEN ? #MODEM:RETURN&lt;br /&gt;&lt;br /&gt;120 ? #MODEM;X$;:L$(LEN(L$)+C1)=X$:IF LEN(L$)&lt;il-3 130="" 140="" goto="" 80="" 160="" xmode="" rem="" send="" 165="" if="" cap="" hit="" to="" start="" transfer="" gosub="" getchr="" 170="" not="" l="LEN(BUFFER$):IF" then="" return="" 190="" f="C1:T=C0" 200="" t="T+C8:IF"&gt;=L THEN ? #MODEM;BUFFER$(F,L);:RETURN&lt;br /&gt;&lt;br /&gt;210 ? #MODEM;BUFFER$(F,T);:F=F+C8:GOSUB C8:IF X=C24 OR X=152 THEN ? #MODEM;CR$;"+++ Interrupted +++";CR$:RETURN&lt;br /&gt;&lt;br /&gt;220 GOTO 200&lt;br /&gt;&lt;br /&gt;250 TRAP ERR:IF PEEK(864)=C255 OR LOCAL THEN RETURN&lt;br /&gt;&lt;br /&gt;260 STATUS #MODEM,X:IF PEEK(749)&gt;C0 THEN 260&lt;br /&gt;&lt;br /&gt;270 X=C1^C1:CLOSE #MODEM:RETURN&lt;br /&gt;&lt;br /&gt;300 POKE 77,C0:GOSUB CLM:IF LOCAL THEN RETURN :REM OPM&lt;br /&gt;&lt;br /&gt;310 OPEN #MODEM,13,0,"R:":XIO C36,#MODEM,C0,C1,"R:":XIO C34,#MODEM,240,C0,"R:":XIO C38,#MODEM,AMODE+LMODE,C0,"R:"&lt;br /&gt;&lt;br /&gt;320 TOUT=C0:STATUS #MODEM,X:IF PEEK(747)&lt;c8 pop="" waitring="" 325="" c6="" 330="" poke="" x="MODEM*C16+832:POKE" then="" return="" 340="" goto="" opm="" 350=""&gt;&lt;y n=""&gt;";:GOSUB GETCHR:IF X&gt;96 THEN X=X-C32&lt;br /&gt;&lt;br /&gt;360 IF X=89 OR X=C121 THEN X=C1:? #MODEM;"Yes":RETURN&lt;br /&gt;&lt;br /&gt;370 IF X=78 OR X=110 THEN X=C0:? #MODEM;"No":RETURN&lt;br /&gt;&lt;br /&gt;380 GOSUB OPM:GOTO YN&lt;br /&gt;&lt;br /&gt;900 GOSUB RFILE&lt;br /&gt;&lt;br /&gt;910 GOSUB SEND&lt;br /&gt;&lt;br /&gt;920 IF X=24 OR X=152 THEN CAP=C0:GOTO 950&lt;br /&gt;&lt;br /&gt;930 IF CAP THEN CAP=C0:GOSUB GETCHR&lt;br /&gt;&lt;br /&gt;950 ? #MODEM&lt;br /&gt;&lt;br /&gt;1000 TRAP ERR:GOSUB OPM:? #MODEM;CR$;PROMPT$;:IF NOT LOCAL THEN ? :? PROMPT$;&lt;br /&gt;&lt;br /&gt;1010 IL=C40:GOSUB GETCHR:L$=CHR$(X):? #MODEM;L$;CR$:? :IF X=33 THEN ? #MODEM;"&gt;";:? "&gt;":GOSUB GLINE:GOTO MAIN&lt;br /&gt;&lt;br /&gt;1020 IL=C40:IF X=13 OR X=155 THEN 9810&lt;br /&gt;&lt;br /&gt;1030 IF X&gt;95 THEN X=X-C32&lt;br /&gt;&lt;br /&gt;1040 X=X-C64:IF X&lt;c1 then="" 1090="" 1050="" if="" x=""&gt;&lt;11 x="X-C10:IF" x="X-C10:IF" x="C10" xmode=" NOT"&gt;":GOTO MAIN&lt;br /&gt;&lt;br /&gt;1510 ? #MODEM;"NORMAL USER MODE":GOSUB 1520:GOTO MAIN&lt;br /&gt;&lt;br /&gt;1520 PROMPT$="A,B,C,D,F,G,H,I,L,M,N,O,P,T,U,W,X,Y"&lt;br /&gt;&lt;br /&gt;1530 PROMPT$(LEN(PROMPT$)+C1)=CR$:PROMPT$(LEN(PROMPT$)+C1)="or &lt;ret&gt; ":RETURN&lt;br /&gt;&lt;br /&gt;1900 GOSUB 2000:X=TIMEON:GOSUB 2100:REM T&lt;br /&gt;&lt;br /&gt;1910 ? #MODEM;CR$;" On at ";TIME$;:X=ABS(A-TIMEON):GOSUB 2100:? #MODEM;" ";TIME$;" On Sys.":GOTO MAIN&lt;br /&gt;&lt;br /&gt;2000 GOSUB TIME:? #MODEM;DAY$;" ";TODAY$;" ";TIME$;" CST":RETURN&lt;br /&gt;&lt;br /&gt;2010 T=PEEK(20):X=((PEEK(18)*256+PEEK(19))*256+PEEK(20)):IF T&gt;PEEK(20) THEN 2010&lt;br /&gt;&lt;br /&gt;2020 IF X&lt;5184000 x="X-5177000:F="INT(X/65536):X="X-(F*65536):T="INT(X/256):X="X-(T*256):POKE" dow="DOW+C1:IF"&gt;7 THEN DOW=C1&lt;br /&gt;&lt;br /&gt;2050 IF TODAY$(5,5)&gt;"9" THEN TODAY$(5,5)="0":TODAY$(4,4)=CHR$(ASC(TODAY$(4))+C1)&lt;br /&gt;&lt;br /&gt;2060 LI=VAL(TODAY$)*2:IF TODAY$(4,5)&lt;=MTH$(LI-C1,LI) THEN 2010  2070 IF TODAY$(4,5)="29" AND VAL(TODAY$(7))/4=INT(VAL(TODAY$(7))/4) THEN 2010  2080 TODAY$(4,5)="01":TODAY$(2,2)=CHR$(ASC(TODAY$(2))+C1):GOTO 2010  2090 X=X/60:A=X:DAY$=DAYS$(DOW*9-8,DOW*9)  2100 T=X:X=INT(T/3600):F=INT(T/60)-X*60:T=T-X*3600-F*60  2110 TIME$=STR$(X+100):TIME$=TIME$(2,3)  2120 TIME$(3,5)=STR$(F+100):TIME$(6,8)=STR$(T+100)  2130 TIME$(3,3)=":":TIME$(6,6)=":":RETURN  3600 ? #MODEM;CALLNO;" Callers.":GOSUB CLM:CLOSE #FILE:OPEN #FILE,C4,C0,CDF$:NOTE #FILE,A,I:REM C  3605 POINT #FILE,CSECT,CBYTE:INPUT #FILE,PAS$:TRAP 3606:GOTO 3607  3606 POINT #FILE,A,I  3607 INPUT #FILE,PAS$:IF PAS$&lt;&gt;"+" THEN 3607&lt;br /&gt;&lt;br /&gt;3608 INPUT #FILE,TEMP$,A$,DATE$,TIME$&lt;br /&gt;&lt;br /&gt;3610 GOSUB OPM:? #MODEM;"First Date:";DATE$;"-Last Date:";TODAY$;CR$;"ENTER Starting Date &lt;mm dd="" yy=""&gt;";&lt;br /&gt;&lt;br /&gt;3612 GOSUB GLINE:IF LEN(L$)&lt;&gt;8 THEN GOTO MAIN&lt;br /&gt;&lt;br /&gt;3616 IF L$(C3,C3)&lt;&gt;"/" OR L$(C6,C6)&lt;&gt;"/" THEN 3610&lt;br /&gt;&lt;br /&gt;3617 IF L$&gt;=DATE$ AND L$&lt;=TODAY$ THEN 3619  3618 GOTO 3610  3619 ? #MODEM;"SEARCHING CALLERS...":IF XMODE THEN ? #MODEM  3620 IF L$&lt;&gt;DATE$ THEN GOSUB 3680:GOTO 3620&lt;br /&gt;&lt;br /&gt;3622 IF NOT XMODE THEN GOSUB OPM:? #MODEM;CTRL$:? #MODEM&lt;br /&gt;&lt;br /&gt;3625 GOSUB OPM&lt;br /&gt;&lt;br /&gt;3630 ? #MODEM;"CALLER: ";TEMP$;CR$;"FROM: ";A$;CR$;"AT: ";TIME$;" ON: ";DATE$;CR$&lt;br /&gt;&lt;br /&gt;3640 GOSUB C8:IF X=C24 THEN GOTO MAIN&lt;br /&gt;&lt;br /&gt;3650 GOSUB 3680:GOTO 3625&lt;br /&gt;&lt;br /&gt;3670 POINT #FILE,A,I&lt;br /&gt;&lt;br /&gt;3680 GOSUB CLM:TRAP 3670:INPUT #FILE,PAS$,TEMP$,A$,DATE$,TIME$:TRAP ERR:IF PAS$&lt;&gt;"*" THEN RETURN&lt;br /&gt;&lt;br /&gt;3690 POP :CLOSE #FILE:GOSUB OPM:GOTO 950&lt;br /&gt;&lt;br /&gt;5000 GOSUB 5100:L=X:GOSUB CLM:CLOSE #FILE:TRAP 5800:OPEN #FILE,C4,C0,FILE$:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;5010 TRAP ERR:GOSUB TIME:IF L THEN 6000&lt;br /&gt;&lt;br /&gt;5020 LPRINT "DL ";FILE$;" ";TIME$&lt;br /&gt;&lt;br /&gt;5030 GOSUB 5900:GOSUB OPM:? #MODEM;"FILE: ";FILE$:CAP=C1:GOSUB SEND&lt;br /&gt;&lt;br /&gt;5040 IF BFLAG OR X=C24 OR X=152 THEN 920&lt;br /&gt;&lt;br /&gt;5050 GOSUB CLM:BUFFER$="":GOSUB 5920:GOSUB OPM:GOSUB 170:GOTO 5040&lt;br /&gt;&lt;br /&gt;5100 FILE$="D2:":? #MODEM;"RETURN=Exit, File Name &gt;";:IF LEN(L$)&gt;1 THEN IF L$(2,2)="1" THEN FILE$(2,2)="2"&lt;br /&gt;&lt;br /&gt;5110 GOSUB GLINE:IF L$="" THEN POP :GOTO MAIN&lt;br /&gt;&lt;br /&gt;5120 IF LEN(L$)&gt;C8 THEN L$(9)=""&lt;br /&gt;&lt;br /&gt;5130 FOR X=C1 TO LEN(L$):IF L$(X,X)&gt;"Z" THEN L$(X,X)=CHR$(ASC(L$(X,X))-C32)&lt;br /&gt;&lt;br /&gt;5140 IF L$(X,X)&gt;="A" AND L$(X,X)&lt;="Z" THEN FILE$(LEN(FILE$)+C1)=L$(X,X)  5150 IF L$(X,X)&gt;="0" AND L$(X,X)&lt;="9" THEN FILE$(LEN(FILE$)+C1)=L$(X,X)  5160 NEXT X:FILE$(LEN(FILE$)+C1)=".UDL":IF FILE$(C4,C4)&lt;"A" THEN POP :GOTO MAIN  5170 IF LEN(FILE$)&lt;c8 then="" pop="" goto="" main="" 5180="" are="" you="" using="" amodem="" xmodem="" file="" transfer="" protocol="" 5190="" return="" 5200="" gosub="" close="" rem="" u="" 5210="" open="" xxx="" 5220="" input="" if=""&gt;&lt;&gt;" F" THEN 5220&lt;br /&gt;&lt;br /&gt;5230 BUFFER$(LEN(BUFFER$)+C1)=CR$:CLOSE #FILE:GOSUB OPM:? #MODEM;BUFFER$:GOSUB 5100:L=X&lt;br /&gt;&lt;br /&gt;5240 GOSUB CLM:GOSUB TIME:CLOSE #FILE:FILE$(2,2)="2":IF L THEN LPRINT "XUP ";FILE$;" ";TIME$:GOTO 5260&lt;br /&gt;&lt;br /&gt;5250 LPRINT "UP ";FILE$;" ";TIME$&lt;br /&gt;&lt;br /&gt;5260 TRAP 5290:OPEN #FILE,C4,C0,FILE$:TRAP ERR&lt;br /&gt;&lt;br /&gt;5270 CLOSE #FILE:GOSUB OPM:? #MODEM;CR$;BEL$;"FILE ALREADY EXISTS!!!"&lt;br /&gt;&lt;br /&gt;5280 GOTO MAIN&lt;br /&gt;&lt;br /&gt;5290 CLOSE #FILE:GOSUB OPM:TRAP ERR:BUFFER$="":IF L THEN 6500&lt;br /&gt;&lt;br /&gt;5300 GOSUB CLM:OPEN #FILE,C8,C0,FILE$:GOSUB OPM&lt;br /&gt;&lt;br /&gt;5310 ? #MODEM;"Upload --- Enter file &lt;cr&gt;=Exit "&lt;br /&gt;&lt;br /&gt;5320 ? #MODEM;"&gt;";:IL=C120:GOSUB GLINE&lt;br /&gt;&lt;br /&gt;5330 IF L$="" THEN GOSUB CLM:CLOSE #FILE:GOTO MAIN&lt;br /&gt;&lt;br /&gt;5340 GOSUB CLM:? #FILE;L$:GOSUB OPM:GOTO 5320&lt;br /&gt;&lt;br /&gt;5400 GOSUB CLM:CLOSE #FILE:FILE$="D2:*.UDL":IF LEN(L$)&gt;C1 THEN IF L$(2,2)="1" THEN FILE$(2,2)="2"&lt;br /&gt;&lt;br /&gt;5410 OPEN #FILE,C6,C0,FILE$:BUFFER$="":TEMP$="FILE DIRECTORY---":GOTO 5440&lt;br /&gt;&lt;br /&gt;5420 INPUT #FILE,TEMP$:IF TEMP$(C4,C5)=" F" THEN 5470&lt;br /&gt;&lt;br /&gt;5430 TEMP$(11,C13)=" -"&lt;br /&gt;&lt;br /&gt;5440 BUFFER$(LEN(BUFFER$)+C1)=TEMP$&lt;br /&gt;&lt;br /&gt;5450 BUFFER$(LEN(BUFFER$)+C1)=CR$&lt;br /&gt;&lt;br /&gt;5460 GOTO 5420&lt;br /&gt;&lt;br /&gt;5470 BUFFER$(LEN(BUFFER$)+C1)=CR$&lt;br /&gt;&lt;br /&gt;5471 BUFFER$(LEN(BUFFER$)+C1)="* = BINARY FILE"&lt;br /&gt;&lt;br /&gt;5472 BUFFER$(LEN(BUFFER$)+C1)=CR$&lt;br /&gt;&lt;br /&gt;5475 BUFFER$(LEN(BUFFER$)+C1)=CR$&lt;br /&gt;&lt;br /&gt;5480 CLOSE #FILE:GOSUB OPM:GOSUB SEND:GOTO MAIN&lt;br /&gt;&lt;br /&gt;5800 TRAP ERR:GOSUB OPM:? #MODEM&lt;br /&gt;&lt;br /&gt;5810 ? #MODEM;"Can't find that file"&lt;br /&gt;&lt;br /&gt;5820 GOTO MAIN&lt;br /&gt;&lt;br /&gt;5900 GOSUB CLM:CLOSE #FILE:OPEN #FILE,C4,C0,FILE$:REM INF. BUFF&lt;br /&gt;&lt;br /&gt;5910 POKE 195,C0:A$(C255)=" ":BUFFER$=""&lt;br /&gt;&lt;br /&gt;5920 TRAP 5930:FOR I=C1 TO C4:XIO 7,#FILE,C4,C0,A$:BUFFER$(LEN(BUFFER$)+C1)=A$:NEXT I:BFLAG=C0:RETURN&lt;br /&gt;&lt;br /&gt;5930 IF PEEK(856) THEN BUFFER$(LEN(BUFFER$)+C1)=A$(C1,PEEK(856))&lt;br /&gt;&lt;br /&gt;5940 BFLAG=PEEK(C195):RETURN&lt;br /&gt;&lt;br /&gt;5950 T=LEN(BUFFER$):F=((T/C128)-INT(T/C128))*C128&lt;br /&gt;&lt;br /&gt;5960 FOR I=F+1 TO C128:BUFFER$(LEN(BUFFER$)+1)=CHR$(F):NEXT I&lt;br /&gt;&lt;br /&gt;5970 RETURN&lt;br /&gt;&lt;br /&gt;6000 CLOSE #FILE&lt;br /&gt;&lt;br /&gt;6010 LPRINT "XDL ";FILE$;" ";TIME$&lt;br /&gt;&lt;br /&gt;6020 GOSUB 5900:IF BFLAG THEN GOSUB 5950&lt;br /&gt;&lt;br /&gt;6030 GOSUB OPM:? #MODEM;"FILE: ";FILE$;" Ready to Send":? #MODEM;"^X to cancel"&lt;br /&gt;&lt;br /&gt;6040 BLOCK=C1:GOSUB GETCHR:IF X&lt;&gt;21 THEN GOTO MAIN&lt;br /&gt;&lt;br /&gt;6050 AM=AMODE:LM=LMODE:AMODE=C32:LMODE=C0:GOSUB OPM&lt;br /&gt;&lt;br /&gt;6060 DIR=C0&lt;br /&gt;&lt;br /&gt;6070 FOR T=C1 TO C10:PUT #MODEM,C1:PUT #MODEM,BLOCK:PUT #MODEM,C255-BLOCK:F=C0&lt;br /&gt;&lt;br /&gt;6080 A=DIR*C128+ADR(BUFFER$)&lt;br /&gt;&lt;br /&gt;6090 FOR I=C0 TO C127:X=PEEK(A+I):PUT #MODEM,X:F=F+X:NEXT I&lt;br /&gt;&lt;br /&gt;6100 F=ASC(CHR$(F)):PUT #MODEM,F:GOSUB GETCHR:IF X=21 THEN 6120&lt;br /&gt;&lt;br /&gt;6110 T=C10&lt;br /&gt;&lt;br /&gt;6120 NEXT T:DIR=DIR+C1:BLOCK=BLOCK+C1&lt;br /&gt;&lt;br /&gt;6130 IF X&lt;&gt;6 THEN 6300&lt;br /&gt;&lt;br /&gt;6140 F=(DIR+C1)*C128:T=LEN(BUFFER$):IF F&lt;=T THEN 6070  6150 IF BFLAG THEN 6200  6160 IF F=T THEN BUFFER$="":GOTO 6180  6170 BUFFER$=BUFFER$(DIR*C128+C1,T)  6180 GOSUB CLM:GOSUB 5920:IF BFLAG THEN GOSUB 5950  6190 GOSUB OPM:GOTO 6060  6200 PUT #MODEM,C4:GOTO 6350  6300 ? #MODEM:? #MODEM;"* ABORTED *"  6350 DIR=C0:AMODE=AM:LMODE=LM:GOTO MAIN  6500 AM=AMODE:LM=LMODE:AMODE=C32:LMODE=C64:L=21:NSEC=C0  6510 TRAP 6700:A$(131)=" ":A=ADR(A$):GOSUB CLM:OPEN #FILE,C8,C0,FILE$  6520 GOSUB OPM:? #MODEM;"FILE: ";FILE$;" Ready to Receive,":? #MODEM;"^X to Cancel"  6530 FOR T=C1 TO C10:TOUT=C0:? CHR$(L);  6540 STATUS #MODEM,X:IF PEEK(INM) THEN GET #MODEM,X:GOTO 6540  6550 PUT #MODEM,L:L=6:GET #MODEM,SOH:F=SOH:IF SOH&lt;&gt;C1 THEN 6620&lt;br /&gt;&lt;br /&gt;6560 FOR I=C0 TO 130&lt;br /&gt;&lt;br /&gt;6570 STATUS #MODEM,X:IF PEEK(INM) THEN GET #MODEM,X:POKE A+I,X:F=F+X:NEXT I:GOTO 6600&lt;br /&gt;&lt;br /&gt;6580 TOUT=TOUT+C1:IF TOUT&lt;100 f="F-X:F="ASC(CHR$(F)):IF" x="F" nsec="NSEC+C1:GOTO" l="C1" l="21:TRAP" t="C10" soh="C1" l="6" 6640="" nsec="NUMSECT" 6530="" 6650="" soh="C4" and="" l="C6" 6700="" aborted="" 6710="" 6800="" put="" saving="" file="" 6810="" trap="" gosub="" then="" close="" goto="" 6890="" 6820="" x="ASC(X$)" 6830="" for="" i="LEN(BUFFER$)-C127+X" to="" if=""&gt;&lt;&gt;X$ THEN X=C128&lt;br /&gt;&lt;br /&gt;6840 NEXT I&lt;br /&gt;&lt;br /&gt;6860 ? #FILE;BUFFER$(C1,LEN(BUFFER$)-C128+X);:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;6890 I=C1:T=C1:AMODE=AM:LMODE=LM:GOTO MAIN&lt;br /&gt;&lt;br /&gt;7000 MSGNO$="0000":MSGNO$(5-LEN(STR$(FROM)))=STR$(FROM):REM SEARCH&lt;br /&gt;&lt;br /&gt;7020 T=INT(LEN(BUFFER$)/C40):F=INT(T*0.5+0.5):Y=F&lt;br /&gt;&lt;br /&gt;7040 FOR X=C1 TO CLOG(T+2)/CLOG(2)&lt;br /&gt;&lt;br /&gt;7060 TSS=F*C40:Y=INT(Y*0.5+0.5)&lt;br /&gt;&lt;br /&gt;7070 IF MSGNO$&gt;BUFFER$(TSS-C39,TSS-C36) THEN F=F+Y+Y&lt;br /&gt;&lt;br /&gt;7080 F=F-Y:IF F&lt;c1 then="" 7100="" if="" f="C1"&gt;T THEN F=T&lt;br /&gt;&lt;br /&gt;7120 NEXT X:TSS=F*C40&lt;br /&gt;&lt;br /&gt;7130 IF MSGNO$&gt;BUFFER$(TSS-C39,TSS-C36) AND DIR=C1 THEN F=F+C1&lt;br /&gt;&lt;br /&gt;7140 IF MSGNO$&lt;buffer$(tss-c39,tss-c36) and="" dir="-C1" f="F-C1" 7150="" 7200="" then="" return="" rem="" parse="" 7220="" x="C0:FROM=X:TU=X:DIR=X:IF"&gt;LEN(L$) THEN 7300&lt;br /&gt;&lt;br /&gt;7230 IF L$(X,X)&gt;="0" AND L$(X,X)&lt;="9" THEN FROM=FROM*C10+VAL(L$(X,X)):GOTO 7220  7240 IF L$(X,X)&lt;&gt;"-" THEN 7300&lt;br /&gt;&lt;br /&gt;7250 X=X+C1:IF X&gt;LEN(L$) THEN 7310&lt;br /&gt;&lt;br /&gt;7260 IF L$(X,X)&gt;="0" AND L$(X,X)&lt;="9" THEN TU=TU*C10+VAL(L$(X,X)):GOTO 7250  7270 GOTO 7310  7300 TU=FROM:DIR=C1:GOTO 7320  7310 DIR=C1:IF TU&lt;from then="" dir="-C1" 7320="" if="" x=""&gt;&lt;len(l$) 7330="" return="" 7500="" loading="" rfile="" 7510="" msgs="INT(LEN(BUFFER$)/C40):L=MSGS*C40:IF" l="C0" 7520="" f="VAL(MSGNO$):MSGNO$=" t="VAL(MSGNO$)" 7530="" gosub="" numbered="" t="" 7540="" message="" section="" ain="" if="" not="" local="" then="" mc=""&gt;";&lt;br /&gt;&lt;br /&gt;7550 ? #MODEM;"(Q)uick scan, (R)etrieve, (S)ummary";CR$;"?&gt;";:L$=" ":GOSUB GETCHR:L$=CHR$(X):IF X&gt;90 THEN X=X-C32&lt;br /&gt;&lt;br /&gt;7555 ? #MODEM;L$;CR$&lt;br /&gt;&lt;br /&gt;7560 MC=X:IF MC=69 THEN 9000&lt;br /&gt;&lt;br /&gt;7570 IF MC=77 THEN GOTO MAIN&lt;br /&gt;&lt;br /&gt;7580 IF MC=75 OR MC=81 OR MC=82 OR MC=83 THEN 7610&lt;br /&gt;&lt;br /&gt;7590 GOTO 7510&lt;br /&gt;&lt;br /&gt;7610 ? #MODEM;"First Msg ";F;" - Last Msg ";T&lt;br /&gt;&lt;br /&gt;7620 ? #MODEM;"Enter Msg# (From-To)&gt;";:GOSUB GLINE:? #MODEM:IF L$="" THEN GOTO 7510&lt;br /&gt;&lt;br /&gt;7630 GOSUB 7200:IF DIR=C0 THEN 7620&lt;br /&gt;&lt;br /&gt;7640 GOSUB 7000&lt;br /&gt;&lt;br /&gt;7645 IF F&lt;c1 or="" c40=""&gt;LEN(BUFFER$) THEN 7630&lt;br /&gt;&lt;br /&gt;7650 MSGNO$=BUFFER$(F*C40-C39):T=VAL(MSGNO$):IF DIR=C1 THEN IF T&lt;from or="" t=""&gt;TU THEN 7630&lt;br /&gt;&lt;br /&gt;7660 IF DIR=-C1 THEN IF T&lt;tu or="" t=""&gt;FROM THEN 7630&lt;br /&gt;&lt;br /&gt;7670 IF MC=81 THEN ? #MODEM;T;". ";BUFFER$(F*C40-35,F*C40-C4):GOSUB C8:GOTO 7690&lt;br /&gt;&lt;br /&gt;7680 GOSUB CLM:CLOSE #FILE:OPEN #FILE,C4,C0,MDF$:GOSUB 7700:IF MC=75 THEN 7900&lt;br /&gt;&lt;br /&gt;7690 IF X=C24 THEN 7620&lt;br /&gt;&lt;br /&gt;7695 F=F+DIR:GOTO 7645&lt;br /&gt;&lt;br /&gt;7700 BYTE=ASC(BUFFER$(F*C40)):SECT=ASC(BUFFER$(F*C40-C2))*C256+ASC(BUFFER$(F*C40-C1))&lt;br /&gt;&lt;br /&gt;7710 POINT #FILE,SECT,BYTE:INPUT #FILE,MSGNO$,SUBJ$,PAS$,DATE$,TIME$,FROM$,FR$,LI&lt;br /&gt;&lt;br /&gt;7720 MSG$="MSG# ":MSG$(C6)=MSGNO$:MSG$(C10)=" DATE:":MSG$(16)=DATE$:MSG$(24)=" TIME:":MSG$(30)=TIME$:MSG$(38)=CR$&lt;br /&gt;&lt;br /&gt;7730 MSG$(C39)="FROM: ":MSG$(45)=FROM$:MSG$(LEN(MSG$)+C1)=CR$:MSG$(LEN(MSG$)+C1)=" TO: ":MSG$(LEN(MSG$)+C1)=FR$&lt;br /&gt;&lt;br /&gt;7740 MSG$(LEN(MSG$)+C1)=CR$:MSG$(LEN(MSG$)+C1)="SUBJ: ":MSG$(LEN(MSG$)+C1)=SUBJ$:MSG$(LEN(MSG$)+C1)=CR$&lt;br /&gt;&lt;br /&gt;7750 IF MC=75 OR MC=83 THEN MSG$(LEN(MSG$)+C1)="=========":GOTO 7770&lt;br /&gt;&lt;br /&gt;7760 FOR X=C1 TO LI:INPUT #FILE,TEMP$:MSG$(LEN(MSG$)+C1)=TEMP$:MSG$(LEN(MSG$)+C1)=CR$:NEXT X&lt;br /&gt;&lt;br /&gt;7770 L=LEN(MSG$):GOSUB OPM:Y=C1:T=C0&lt;br /&gt;&lt;br /&gt;7771 IF FR$="ALL" OR LOCAL THEN 7780&lt;br /&gt;&lt;br /&gt;7773 IF FR$&lt;&gt;NAME$ AND FROM$&lt;&gt;NAME$ THEN ? #MODEM;" MESSAGE #";MSGNO$;" IS PRIVATE";CR$:RETURN&lt;br /&gt;&lt;br /&gt;7780 T=T+C8:IF T&gt;=L THEN ? #MODEM;MSG$(Y,L);:GOTO 7810&lt;br /&gt;&lt;br /&gt;7790 ? #MODEM;MSG$(Y,T);:Y=Y+C8:GOSUB C8:IF X=C14 OR X=C24 OR X=152 THEN ? #MODEM;CR$:RETURN&lt;br /&gt;&lt;br /&gt;7795 IF X=3 THEN ? #MODEM;CR$;CR$;"+++ Canceled +++";CR$;CR$:RETURN&lt;br /&gt;&lt;br /&gt;7800 GOTO 7780&lt;br /&gt;&lt;br /&gt;7810 ? #MODEM;" ":IF LOCAL THEN ? "PRINT &lt;y n=""&gt;":GET #C3,X:? :IF X=89 THEN LPRINT MSG$&lt;br /&gt;&lt;br /&gt;7820 RETURN&lt;br /&gt;&lt;br /&gt;7900 ? #MODEM;"ENTER Password &gt;";&lt;br /&gt;&lt;br /&gt;7910 GOSUB GLINE:IF LOCAL AND L$="KILL" THEN 7930&lt;br /&gt;&lt;br /&gt;7920 IF L$&lt;&gt;PAS$ THEN ? #MODEM;"INVALID PASSWORD";BEL$:GOTO 7510&lt;br /&gt;&lt;br /&gt;7930 IF F*C40+C1&gt;LEN(BUFFER$) THEN BUFFER$(F*C40-C39)="":GOTO 7950&lt;br /&gt;&lt;br /&gt;7940 BUFFER$(F*C40-C39)=BUFFER$(F*C40+C1)&lt;br /&gt;&lt;br /&gt;7950 GOSUB CLM:CLOSE #FILE:OPEN #FILE,C8,C0,MIF$&lt;br /&gt;&lt;br /&gt;7960 ? #FILE;BUFFER$:CLOSE #FILE:GOSUB 28100&lt;br /&gt;&lt;br /&gt;7970 LPRINT "KILLED MSG ";MSGNO$:GOSUB OPM:? #MODEM;"MESSAGE DELETED":GOTO 7510&lt;br /&gt;&lt;br /&gt;8000 GOSUB CLM:CLOSE #FILE:OPEN #FILE,C4,C0,FILE$:REM RFILE&lt;br /&gt;&lt;br /&gt;8010 TRAP 8070:A$(C255)=" ":BUFFER$=""&lt;br /&gt;&lt;br /&gt;8020 XIO 7,#FILE,C4,C0,A$:BUFFER$(LEN(BUFFER$)+C1)=A$:GOTO 8020&lt;br /&gt;&lt;br /&gt;8070 TRAP ERR:IF PEEK(856) THEN BUFFER$(LEN(BUFFER$)+C1)=A$(C1,PEEK(856))&lt;br /&gt;&lt;br /&gt;8080 IF PEEK(C195)&lt;&gt;136 AND PEEK(C195)&lt;&gt;139 THEN 8120&lt;br /&gt;&lt;br /&gt;8085 TRAP ERR:IF PEEK(C195)=139 THEN POP :POP :POP :POP :POKE C195,C1:GOTO WAITRING&lt;br /&gt;&lt;br /&gt;8100 GOTO OPM&lt;br /&gt;&lt;br /&gt;8120 ERROR=PEEK(C195):GOSUB CLM:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;8130 LPRINT "Error- ";ERROR;" LINE # ";C256*PEEK(187)+PEEK(186)&lt;br /&gt;&lt;br /&gt;8140 GOSUB OPM&lt;br /&gt;&lt;br /&gt;8150 ? #MODEM;CR$;"SYSTEM ERROR --- TRY AGAIN."&lt;br /&gt;&lt;br /&gt;8160 POP :POP :POP :GOTO MAIN&lt;br /&gt;&lt;br /&gt;9000 FROM$=NAME$:? #MODEM;"Enter Message:":? #MODEM;"SUBJECT: ";:GOSUB GLINE:IF L$="" THEN GOTO 7510:REM ENTER&lt;br /&gt;&lt;br /&gt;9010 SUBJ$=L$:? #MODEM;"TO: &lt;return&gt;=All ";:GOSUB GLINE:IF L$="" THEN L$="ALL":? #MODEM;"TO: ";L$;CR$&lt;br /&gt;&lt;br /&gt;9020 FR$=L$:? #MODEM;"Enter PASSWORD Required to Kill Msg:":GOSUB GLINE:PAS$=L$&lt;br /&gt;&lt;br /&gt;9030 LI=C0:? #MODEM;"Enter Message, Two &lt;cr&gt;s when done"&lt;br /&gt;&lt;br /&gt;9040 IL=C80:LI=LI+C1:IF LI&gt;C16 THEN 9080&lt;br /&gt;&lt;br /&gt;9050 IF LI&gt;C13 THEN ? #MODEM;"Only ";17-LI;" Lines left"&lt;br /&gt;&lt;br /&gt;9060 ? #MODEM;LI:GOSUB GLINE:IF L$="" THEN 9080&lt;br /&gt;&lt;br /&gt;9070 MSG$(LI*C121-C120)=CHR$(LEN(L$)):MSG$(LI*C121-C119)=L$:GOTO 9040&lt;br /&gt;&lt;br /&gt;9080 LI=LI-C1&lt;br /&gt;&lt;br /&gt;9100 GOSUB OPM:? #MODEM;CR$;"(A)dd, (E)dit, (L)ist,";CR$;"(Q)uit, (R)ead, (S)ave ?";:GOSUB GETCHR&lt;br /&gt;&lt;br /&gt;9105 IF X&gt;96 THEN X=X-C32&lt;br /&gt;&lt;br /&gt;9110 ? #MODEM;CHR$(X);CR$:IF X=65 THEN 9040&lt;br /&gt;&lt;br /&gt;9120 IF X=69 THEN 9200&lt;br /&gt;&lt;br /&gt;9130 IF X=76 OR X=82 THEN 9300&lt;br /&gt;&lt;br /&gt;9140 IF X=81 THEN ? #MODEM;"MESSAGE ABORTED":GOTO 7510&lt;br /&gt;&lt;br /&gt;9150 IF X=83 THEN 9400&lt;br /&gt;&lt;br /&gt;9160 GOTO 9100&lt;br /&gt;&lt;br /&gt;9200 IF NOT LI THEN 9100&lt;br /&gt;&lt;br /&gt;9210 ? #MODEM;"EDIT WHICH LINE 1-";LI;" ?";:GOSUB GLINE:IF L$="" THEN 9100&lt;br /&gt;&lt;br /&gt;9220 TRAP 9210:Z=INT(VAL(L$)):TRAP ERR&lt;br /&gt;&lt;br /&gt;9230 IF Z&lt;c1 or="" z=""&gt;LI THEN 9210&lt;br /&gt;&lt;br /&gt;9240 ? #MODEM;"OLD LINE ";Z;" READS:";CR$:? #MODEM;Z;" ";MSG$(C121*Z-C119,C121*Z-C120+ASC(MSG$(Z*C121-C120)))&lt;br /&gt;&lt;br /&gt;9250 ? #MODEM;"CHANGE TO: &lt;return&gt;=NO CHANGE";CR$;Z;" ";:GOSUB GLINE&lt;br /&gt;&lt;br /&gt;9260 IF L$&lt;&gt;"" THEN MSG$(Z*C121-C120,Z*C121-C120)=CHR$(LEN(L$)):MSG$(Z*C121-C119,Z*C121)=L$&lt;br /&gt;&lt;br /&gt;9270 GOTO 9210&lt;br /&gt;&lt;br /&gt;9300 MC=X:IF NOT LI THEN 9100&lt;br /&gt;&lt;br /&gt;9310 FOR I=C1 TO LI:IF MC=76 THEN ? #MODEM;I;" ";&lt;br /&gt;&lt;br /&gt;9320 ? #MODEM;MSG$(I*C121-C119,I*C121-C120+ASC(MSG$(I*C121-C120))):GOSUB C8:IF X=C24 THEN I=C24&lt;br /&gt;&lt;br /&gt;9330 NEXT I:GOTO 9100&lt;br /&gt;&lt;br /&gt;9400 IF NOT LI THEN 9100&lt;br /&gt;&lt;br /&gt;9410 HMSG=HMSG+C1:MSGNO$="0000":MSGNO$(5-LEN(STR$(HMSG)))=STR$(HMSG):? #MODEM;"SAVING MESSAGE...."&lt;br /&gt;&lt;br /&gt;9420 GOSUB CLM:GOSUB TIME:CLOSE #FILE:OPEN #FILE,12,C0,MDF$:NOTE #FILE,A,I:POINT #FILE,MSECT,MBYTE&lt;br /&gt;&lt;br /&gt;9430 SECT=MSECT:BYTE=MBYTE&lt;br /&gt;&lt;br /&gt;9440 ? #FILE;MSGNO$;CR$;SUBJ$;CR$;PAS$;CR$;TODAY$;CR$;TIME$;CR$;FROM$;CR$;FR$;CR$;LI&lt;br /&gt;&lt;br /&gt;9450 FOR X=C1 TO LI:? #FILE;MSG$(X*C121-C119,X*C121-C120+ASC(MSG$(X*C121-C120))):NEXT X:NOTE #FILE,MSECT,MBYTE&lt;br /&gt;&lt;br /&gt;9460 CLOSE #FILE:FILE$=MIF$:GOSUB RFILE:GOSUB CLM&lt;br /&gt;&lt;br /&gt;9470 TEMP$=" ":TEMP$=MSGNO$:TEMP$(5)=SUBJ$&lt;br /&gt;&lt;br /&gt;9480 T=INT(SECT/C256):SECT=SECT-T*C256&lt;br /&gt;&lt;br /&gt;9490 TEMP$(C38)=CHR$(T):TEMP$(C39)=CHR$(SECT):TEMP$(C40)=CHR$(BYTE)&lt;br /&gt;&lt;br /&gt;9500 BUFFER$(INT(LEN(BUFFER$)/C40)*C40+C1)=TEMP$:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;9510 OPEN #FILE,C8,C0,FILE$:? #FILE;BUFFER$;:CLOSE #FILE:GOSUB 28100&lt;br /&gt;&lt;br /&gt;9512 IF FR$&lt;&gt;"ALL" THEN OPEN #FILE,C9,C0,"D:M":? #FILE;" ";FR$;"MSG#";MSGNO$:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;9520 LPRINT "MESSAGE ";MSGNO$;" ";MSECT-A:GOSUB OPM:MSGS=MSGS+C1&lt;br /&gt;&lt;br /&gt;9530 ? #MODEM;"SAVED AS MSG#";MSGNO$&lt;br /&gt;&lt;br /&gt;9540 GOTO 7510&lt;br /&gt;&lt;br /&gt;9800 FILE$="D1:BULL":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9810 FILE$="D1:FUNC":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9820 FILE$="D1:HELP":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9830 FILE$="D1:INDX":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9840 FILE$="D1:NEWU":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9850 FILE$="D1:OBBS":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9860 FILE$="D1:WELC":GOTO JMPT&lt;br /&gt;&lt;br /&gt;9900 ? #MODEM;"Any Comments or Suggestions?";:GOSUB YN:IF NOT X THEN 9940&lt;br /&gt;&lt;br /&gt;9910 ? #MODEM;"Please, what are they?":GOTO 9920&lt;br /&gt;&lt;br /&gt;9915 ? #MODEM;"Enter PRIVATE Message to SYSOP":DEW=C1&lt;br /&gt;&lt;br /&gt;9920 ? #MODEM;"&gt;";:GOSUB GLINE:IF L$="" THEN 9935&lt;br /&gt;&lt;br /&gt;9930 GOSUB CLM:LPRINT L$:GOSUB OPM:GOTO 9920&lt;br /&gt;&lt;br /&gt;9935 IF DEW THEN DEW=C0:GOSUB CLM:GOTO MAIN&lt;br /&gt;&lt;br /&gt;9940 ? #MODEM;"Log-Off now?";:GOSUB YN:IF NOT X THEN GOTO MAIN&lt;br /&gt;&lt;br /&gt;9950 GOSUB CLM:GOSUB TIME:LPRINT "LOG-OFF ";TIME$:GOSUB OPM:X=ABS(A-TIMEON):GOSUB 2100:? #MODEM;"On for ";TIME$&lt;br /&gt;&lt;br /&gt;9960 ? #MODEM;"Thanks for calling ";NAME$;CR$;"Please call again soon..."&lt;br /&gt;&lt;br /&gt;9970 ? #MODEM;CR$;"Log-Off: Hang up your phone now.":GOSUB 2000:? #MODEM&lt;br /&gt;&lt;br /&gt;10000 LOCAL=C0:REM WAITRING&lt;br /&gt;&lt;br /&gt;10010 GOSUB CLM&lt;br /&gt;&lt;br /&gt;10020 WAITRUNG=WAITRUNG+1:IF WAITRUNG&gt;21 THEN XIO C34,#MODEM,C128,C0,"R1:":WAITRUNG=19&lt;br /&gt;&lt;br /&gt;10030 XIO C38,#MODEM,C0,C0,"R:"&lt;br /&gt;&lt;br /&gt;10040 XIO C34,#MODEM,C128,C0,"R1:"&lt;br /&gt;&lt;br /&gt;10050 GRAPHICS C0:GOSUB TIME:LPRINT "====== ";TODAY$;" ====== ";TIME$;" ======"&lt;br /&gt;&lt;br /&gt;10060 XIO C34,#MODEM,192,C0,"R1:"&lt;br /&gt;&lt;br /&gt;10070 XIO C36,#MODEM,C0,C0,"R1:"&lt;br /&gt;&lt;br /&gt;10080 OPEN #MODEM,C13,C0,"R1:"&lt;br /&gt;&lt;br /&gt;10090 XIO C40,#MODEM,C0,C0,"R1:":GOSUB 10900:FOR X=1 TO 50:NEXT X&lt;br /&gt;&lt;br /&gt;10100 ? #MODEM;"ATZ":LOCAL=C0:AMODE=C32:LMODE=C0:XMODE=C0:GOSUB 1520:GOSUB 10980:X=C8^C8:GOSUB 10800&lt;br /&gt;&lt;br /&gt;10110 POKE 752,C1:X=C8^C8:? #MODEM;"ATE0 S2=255 S4=24 S7=15":GOSUB 10800&lt;br /&gt;&lt;br /&gt;10120 ? MSGS;" MESSAGES, LAST MESSAGE # ";HMSG;" ";CALLNO&lt;br /&gt;&lt;br /&gt;10150 GOSUB TIME:POSITION C2,C9:? "TIME: ";TIME$;" DATE: ";TODAY$:I=PEEK(CON):IF I=C3 THEN 28000&lt;br /&gt;&lt;br /&gt;10160 IF I=C5 OR I=C6 THEN ? #MODEM;"AT H1 M0":GOSUB CLM:LOCAL=C1:OPEN #MODEM,C13,C0,"E:":GOTO 10999&lt;br /&gt;&lt;br /&gt;10165 IF I=4 THEN 10500&lt;br /&gt;&lt;br /&gt;10170 STATUS #MODEM,X:IF PEEK(INM) THEN GOSUB 10900:GOSUB 10910:GOTO 10500&lt;br /&gt;&lt;br /&gt;10180 GOTO 10150&lt;br /&gt;&lt;br /&gt;10500 ? "ANSWERING CALL"&lt;br /&gt;&lt;br /&gt;10510 ? #MODEM;"ATA"&lt;br /&gt;&lt;br /&gt;10520 STATUS #MODEM,X:IF NOT PEEK(INM) THEN 10520&lt;br /&gt;&lt;br /&gt;10530 STATUS #MODEM,X:IF PEEK(INM)=C0 THEN TRAP ERR:GOSUB OPM:GOTO 11000&lt;br /&gt;&lt;br /&gt;10540 GOSUB GETCHR:IF X=73 THEN GOTO WAITRING&lt;br /&gt;&lt;br /&gt;10550 GOTO 10530&lt;br /&gt;&lt;br /&gt;10800 STATUS #MODEM,X:IF PEEK(INM) THEN GOSUB GETCHR:GOTO 10800&lt;br /&gt;&lt;br /&gt;10810 RETURN&lt;br /&gt;&lt;br /&gt;10900 STATUS #MODEM,X:IF PEEK(INM) THEN GOSUB GETCHR:GOTO 10900&lt;br /&gt;&lt;br /&gt;10910 IF TIME$(C1,C2)&gt;"07" AND TIME$(C1,C2)&lt;"22" THEN ? CHR$(C253);  10920 RETURN  10940 AMODE=C32:GOSUB OPM:GOSUB 10950:GOTO MAIN:REM A  10950 ? #MODEM;"A.S.I.A. B.B.S. HIT &lt;return&gt;";:GOSUB GETCHR:IF X=13 OR X=141 THEN AMODE=C0:GOTO 10960&lt;br /&gt;&lt;br /&gt;10955 IF X&lt;&gt;155 THEN 10950&lt;br /&gt;&lt;br /&gt;10960 GOSUB 10980:GOSUB OPM:IF AMODE THEN ? #MODEM;CR$;"ÁÔÁÒÉ Íïäå":RETURN&lt;br /&gt;&lt;br /&gt;10970 ? #MODEM;CR$;"ASCII Mode":RETURN&lt;br /&gt;&lt;br /&gt;10980 IF AMODE THEN BEL$=CHR$(C253):DEL$=CHR$(156):BS$=CHR$(C126):RETURN&lt;br /&gt;&lt;br /&gt;10990 BEL$=CHR$(7):DEL$=CHR$(C24):BS$=CHR$(C8):RETURN&lt;br /&gt;&lt;br /&gt;10999 IF I=6 THEN NAME$="SYSOP":GOTO MAIN&lt;br /&gt;&lt;br /&gt;11000 GOSUB 10950:IF AMODE THEN 11025&lt;br /&gt;&lt;br /&gt;11010 ? #MODEM;CR$;"Do you require Line Feeds";:GOSUB YN&lt;br /&gt;&lt;br /&gt;11020 IF X THEN LMODE=C64:GOSUB OPM&lt;br /&gt;&lt;br /&gt;11025 FILE$="D:LOGO":GOSUB RFILE:GOSUB 170&lt;br /&gt;&lt;br /&gt;11026 ? #MODEM;CR$;"If you are a frequent caller and wish";CR$;"to skip the intros hit (Y) ";:FR$="":SKIP=C0&lt;br /&gt;&lt;br /&gt;11027 ? #MODEM;"==&gt; ";:GOSUB GETCHR:? #MODEM;CHR$(X);CR$:IF X=89 THEN SKIP=C1:FR$="SKIP":GOTO 11040&lt;br /&gt;&lt;br /&gt;11030 ? #MODEM;CR$;"Please enter your computer or";CR$;"terminal type for my records!":FR$=""&lt;br /&gt;&lt;br /&gt;11035 ? #MODEM;"==&gt; ";:GOSUB GLINE:? #MODEM;CR$;"Thank you!":FR$=L$&lt;br /&gt;&lt;br /&gt;11040 GOSUB TIME:TIMEON=A&lt;br /&gt;&lt;br /&gt;11042 ? #MODEM;CR$;SAY$;CR$&lt;br /&gt;&lt;br /&gt;11045 IF TIME$(C1,C2)&lt;"11" THEN PERIOD$="Morning"  11050 IF TIME$(C1,C2)&gt;"16" THEN PERIOD$="Evening"&lt;br /&gt;&lt;br /&gt;11055 IF TIME$(C1,C2)&gt;"10" AND TIME$(C1,C2)&lt;"17" THEN PERIOD$="Afternoon"  11060 ? #MODEM;CR$;"Good ";PERIOD$;"!"  11065 ? #MODEM;"Logged on:":GOSUB 2000:? #MODEM  11100 IF SKIP THEN 11110  11105 FILE$="D:WELC":GOSUB RFILE:GOSUB 170  11110 IL=C40:? #MODEM;CR$;"Enter your Name &gt;";:GOSUB GLINE:IF LEN(L$)&lt;c3 then="" 11110="" 11130="" 11140="" from="" state=""&gt;";:GOSUB GLINE:IF LEN(L$)&lt;c3 11140="" 11160="" 11180="" you="" are="" calling="" 11190="" correct="" 11200="" yn="" 11210="" 11110="" 11240="" callno="CALLNO+C1:?" modem="" 11250="" logging="" 11260="" 11270="" open="" trap="" 11290="" note="" close="" 11295="" point="" 11280="" 11300="" lprint="" term=";FR$  11305 LPRINT " caller="" 11310="" following="" people="" have="" message="" 11312="" skip="" 11315="" send="" 11320="" 1500="" 11400="" your="" first="" time="" this="" bbs="" 11410="" jmpt="" 11500="" feed="" rem="" l="" 11510="" lmode="C64-LMODE:GOSUB" on="" 11520="" off="" 12000="" i="" ll="" see="" 12010="" from="" press="" select="" end="" 12020="" f="C1" 12025="" for="" t="C1" to="" 12030="" next="" is="" not="" here="" at="" the="" 12040="" try="" later="" or="" leave="" rivate="" 13000="" in="" chat="" mode="" c255="" status="" 13020="" gosub="" poke="" main="" 13040="" 13010="" 13050="" get="" if="" x="" then="" 13060="" put="" goto="" 13030="" 27000="" sysop="" options="" 27010="" disk="" directories="" 27020="" 27040="" nlock="" 27055="" ype="" a="" file="" 27060="" enter="" option=""&gt;";:GET #C3,X:? CHR$(X):? :TRAP 27000&lt;br /&gt;&lt;br /&gt;27070 IF X=68 THEN I=33:? "DELETE; ";:GOTO 27900&lt;br /&gt;&lt;br /&gt;27080 IF X=76 THEN I=35:? "LOCK; ";:GOTO 27900&lt;br /&gt;&lt;br /&gt;27090 IF X=82 THEN I=C32:? "RENAME; ";:GOTO 27900&lt;br /&gt;&lt;br /&gt;27100 IF X=85 THEN I=C36:? "UNLOCK; ";:GOTO 27900&lt;br /&gt;&lt;br /&gt;27110 IF X=84 THEN GOTO 27600&lt;br /&gt;&lt;br /&gt;27120 IF X&lt;49&gt;52 THEN GOTO MAIN&lt;br /&gt;&lt;br /&gt;27500 TRAP 27530:FILE$="D1:*.* ":FILE$(2,2)=CHR$(X):OPEN #FILE,C6,C0,FILE$&lt;br /&gt;&lt;br /&gt;27510 TRAP 27520:INPUT #FILE,L$:? L$:GOTO 27510&lt;br /&gt;&lt;br /&gt;27520 ? "PRESS RETURN FOR MENU ";:GET #C3,X&lt;br /&gt;&lt;br /&gt;27530 TRAP 27540:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;27540 GOTO 27000&lt;br /&gt;&lt;br /&gt;27600 ? "Enter file name";:INPUT FILE$:? "On Printer? ";:GET #C3,X:IF X&lt;&gt;89 THEN GOTO JMPT&lt;br /&gt;&lt;br /&gt;27610 GOSUB RFILE:LPRINT BUFFER$:GOTO 27000&lt;br /&gt;&lt;br /&gt;27900 ? "Enter Filespec ";:INPUT FILE$:XIO I,#FILE,C0,C0,FILE$:? "DONE":GOTO 27000&lt;br /&gt;&lt;br /&gt;28000 ? #MODEM;"AT H1 M0":GOSUB 28100:POKE 752,C0&lt;br /&gt;&lt;br /&gt;28020 END&lt;br /&gt;&lt;br /&gt;28100 GOSUB CLM:CLOSE #FILE:OPEN #FILE,C8,C0,"D:CONFIG"&lt;br /&gt;&lt;br /&gt;28110 ? #FILE;CSECT;CR$;CBYTE;CR$;CALLNO;CR$;MSECT;CR$;MBYTE;CR$;MSGS;CR$;HMSG:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;28120 RETURN&lt;br /&gt;&lt;br /&gt;29000 C0=0:C1=1:C2=2:C3=3:C4=4:C5=5:C6=6:C7=7:C8=8:C9=9:C10=10:C13=13:C14=14:C16=16:C24=24:C32=32:C34=34&lt;br /&gt;&lt;br /&gt;29010 C36=36:C38=38:C39=39:C40=40:C64=64:C80=80:C119=119:C120=120:C121=121:C126=126:C127=127:C128=128&lt;br /&gt;&lt;br /&gt;29020 C195=195:C253=253:C255=255:C256=256&lt;br /&gt;&lt;br /&gt;29030 FILE=C1:MODEM=C2:LET GETCHR=20:GLINE=70:SEND=160:CLM=250:OPM=300:YN=350:INM=747:INK=764:JMPT=900:MAIN=1000&lt;br /&gt;&lt;br /&gt;29040 CLK=1030:TIME=2010:RFILE=8000:ERR=8080:WAITRING=10000:CON=53279&lt;br /&gt;&lt;br /&gt;29050 DIM L$(C120),FILE$(C16),NAME$(C40),ADDRES$(C40),CTRL$(C40)&lt;br /&gt;&lt;br /&gt;29060 DIM MSG$(2100),PROMPT$(60),FROM$(C40),FR$(C40),MSGNO$(C4),SUBJ$(33),TEMP$(C120),PAS$(C40),SAY$(C80),A$(C255)&lt;br /&gt;&lt;br /&gt;29070 DIM SCIO$(C7):SCIO$="hhhªLVä"&lt;br /&gt;&lt;br /&gt;29080 DIM CR$(C1),BEL$(C1),DEL$(C1),BS$(C1),X$(C1),TODAY$(C8),DATE$(C8),TIME$(C8),PERIOD$(C9)&lt;br /&gt;&lt;br /&gt;29090 DIM MIF$(C14),MDF$(C14),CDF$(C14):MIF$="D1:MESSAGE.ISM":MDF$="D1:MESSAGE.DAT":CDF$="D1:CALLERS.DAT"&lt;br /&gt;&lt;br /&gt;29100 DIM DAYS$(63),DAY$(9):DAYS$=" Monday TuesdayWednesday Thursday Friday Saturday Sunday"&lt;br /&gt;&lt;br /&gt;29105 DIM MTH$(24):MTH$="312831303130313130313031"&lt;br /&gt;&lt;br /&gt;29110 CTRL$="(^=CTRL ^S PAUSE, ^Q RESUME, ^X QUIT":CR$=CHR$(155):? CHR$(125);" AMIS.BBS, 5/20/83 FLAGCITY Ver."&lt;br /&gt;&lt;br /&gt;29120 TRAP 29120:? :? "Enter day of week (1-7)";:INPUT DOW&lt;br /&gt;&lt;br /&gt;29130 TRAP 29130:? "Enter date as: mm/dd/yy ";:INPUT TODAY$:? "Enter time as: hh:mm:ss ";:INPUT TIME$&lt;br /&gt;&lt;br /&gt;29135 TODAY$(6,8)="/85":TIME$(6,8)=":00"&lt;br /&gt;&lt;br /&gt;29137 ? "Enter saying of the day&gt;":INPUT PAS$&lt;br /&gt;&lt;br /&gt;29138 SAY$=" Saying of the day: ":SAY$(39)=PAS$&lt;br /&gt;&lt;br /&gt;29139 IF PAS$="" THEN SAY$(39)=" If you can't be good, Be Careful!"&lt;br /&gt;&lt;br /&gt;29140 X=((VAL(TIME$(C1,C2))*60+VAL(TIME$(C4,C5)))*60+VAL(TIME$(C7,C8)))*60:F=INT(X/65536):T=INT(X/256)-F*256&lt;br /&gt;&lt;br /&gt;29150 X=X-F*65536-T*256:POKE 20,X:POKE 19,T:POKE 18,F&lt;br /&gt;&lt;br /&gt;29155 ? "Put WORK disk in drive!!!":INPUT PAS$:TRAP 40000:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;29160 TRAP 29155:OPEN #FILE,C4,C0,"D:CONFIG":INPUT #FILE,CSECT,CBYTE,CALLNO,MSECT,MBYTE,MSGS,HMSG:CLOSE #FILE&lt;br /&gt;&lt;br /&gt;29170 X=FRE(C0)-100:LPRINT "BUFF = ";X:DIM BUFFER$(X):NUMSECT=C8:REM INT(X/C128)-C1&lt;br /&gt;&lt;br /&gt;29180 OPEN #C3,C4,C0,"K:":GOTO WAITRING&lt;br /&gt;&lt;/c3&gt;&lt;/c3&gt;&lt;/return&gt;&lt;/return&gt;&lt;/c1&gt;&lt;/cr&gt;&lt;/return&gt;&lt;/y&gt;&lt;/tu&gt;&lt;/from&gt;&lt;/c1&gt;&lt;/len(l$)&gt;&lt;/from&gt;&lt;/buffer$(tss-c39,tss-c36)&gt;&lt;/c1&gt;&lt;/numsect&gt;&lt;/cr&gt;&lt;/c8&gt;&lt;/mm&gt;&lt;/ret&gt;&lt;/c1&gt;&lt;/y&gt;&lt;/c8&gt;&lt;/il-3&gt;&lt;/c255&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-1884207456742789171?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/1884207456742789171/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=1884207456742789171' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/1884207456742789171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/1884207456742789171'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/amis-source-code.html' title='A.M.I.S. Source code.'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-2284607767128170884</id><published>2008-01-14T14:43:00.000-08:00</published><updated>2008-01-14T15:38:58.717-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sh'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='ash'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><category scheme='http://www.blogger.com/atom/ns#' term='bsd'/><category scheme='http://www.blogger.com/atom/ns#' term='script'/><title type='text'>Collection of stupif UNIX tricks</title><content type='html'>(some people just don't get the silliness of stupif and dumf stuff...)&lt;br /&gt;&lt;br /&gt;I'm a user of bash and linux/bsd.  YMMV with this stuff.&lt;br /&gt;&lt;br /&gt;Copy files to a bunch of boxes:&lt;br /&gt;&lt;pre&gt;&lt;/pre&gt;&lt;blockquote&gt;&lt;pre&gt;BOXEN="box1 box2 box3"&lt;br /&gt;for b in $BOXEN&lt;br /&gt;do&lt;br /&gt;scp FILENAME OTHERFILENAME username@${s}:/path&lt;br /&gt;done&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-2284607767128170884?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/2284607767128170884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=2284607767128170884' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2284607767128170884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2284607767128170884'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/collection-of-stupif-unix-tricks.html' title='Collection of stupif UNIX tricks'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-5593745397611180526</id><published>2008-01-12T23:39:00.001-08:00</published><updated>2008-01-12T23:43:30.756-08:00</updated><title type='text'>Everex Cloudbook: $399.00 USD At Walmart</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_M5S1P7S4Xq8/R4nA5ZEYAoI/AAAAAAAAAAY/sgAfwlZl3NQ/s1600-h/everex_cloudbook_CE1200V.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://1.bp.blogspot.com/_M5S1P7S4Xq8/R4nA5ZEYAoI/AAAAAAAAAAY/sgAfwlZl3NQ/s320/everex_cloudbook_CE1200V.jpg" alt="" id="BLOGGER_PHOTO_ID_5154863340716556930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Mmm.. this looks like a lot of fun.  Someone needs to buy me one to play with.  Touted as a GREEN notebook - I'm kind of excited about this one...&lt;br /&gt;&lt;br /&gt;&lt;span class="style3"&gt;9 Inches, 2 pounds, 5 hours of battery life.               Surf, email, blog, IM, Skype, compute. Cloud computing makes              it simple and easy for everyone.&lt;br /&gt;           &lt;br /&gt;            Based on the latest gOS Rocket operating system, the ultra-mobile              Everex PC comes with popular applications from Google, Mozilla, Skype,              OpenOffice.org and more.&lt;br /&gt;            &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;From the website:&lt;br /&gt;&lt;br /&gt;&lt;span class="style3"&gt;&lt;b&gt;             Additional Preinstalled and Linked Software&lt;/b&gt;&lt;br /&gt;            Mozilla Firefox, gMail, Meebo, Skype, Wikipedia, GIMP, Blogger, YouTube,              Xing Movie Player, RythemBox, Faqly, Facebook and OpenOffice.org 2.3              (includes WRITER, IMPRESS, DRAW, CALC, BASE)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-5593745397611180526?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/5593745397611180526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=5593745397611180526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5593745397611180526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5593745397611180526'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/everex-cloudbook-39900-usd-at-walmart.html' title='Everex Cloudbook: $399.00 USD At Walmart'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_M5S1P7S4Xq8/R4nA5ZEYAoI/AAAAAAAAAAY/sgAfwlZl3NQ/s72-c/everex_cloudbook_CE1200V.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-5462253107232542464</id><published>2008-01-12T10:00:00.001-08:00</published><updated>2008-01-12T10:00:47.912-08:00</updated><title type='text'>Not too tech - but dang cool</title><content type='html'>I wish I'd thought of something as simple as this when I lived there.&lt;br /&gt;&lt;br /&gt;Beautiful...&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/KZmUaFBCoa0&amp;amp;rel=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/KZmUaFBCoa0&amp;amp;rel=1" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-5462253107232542464?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/5462253107232542464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=5462253107232542464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5462253107232542464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5462253107232542464'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/not-too-tech-but-dang-cool.html' title='Not too tech - but dang cool'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-5128428678164527066</id><published>2008-01-08T13:22:00.000-08:00</published><updated>2008-01-23T19:51:08.939-08:00</updated><title type='text'>E-Mail Deliverability Using Postfix + DKIMProxy Part I: Getting the stuff</title><content type='html'>Notes: I am using a CentOS 4.3 testbox.&lt;br /&gt;&lt;br /&gt;This isn't a tutorial, it's just an account of what I'm doing so I don't lose my place as I go.&lt;br /&gt;&lt;br /&gt;Install the following stuff:&lt;br /&gt;&lt;br /&gt;postfix&lt;br /&gt;openssl-devel&lt;br /&gt;&lt;br /&gt;Installing the required perl modules was a little bit of a pain, since the VMWare install I had didn't have vmware tools or X running.. so not cut&amp;amp;paste from the webpage for me...  but, feh.. I needed the finger exercise.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Crypt::OpenSSL::RSA&lt;br /&gt;Mail::Address&lt;br /&gt;MIME::Base64&lt;br /&gt;Net::DNS&lt;br /&gt;Net::Server&lt;br /&gt;Test::More&lt;br /&gt;Error&lt;br /&gt;Digest::SHA&lt;br /&gt;Digest::SHA1&lt;/blockquote&gt;There were &lt;span style="font-weight: bold;"&gt;&lt;span style="font-style: italic;"&gt;lots &lt;/span&gt;&lt;/span&gt;of dependencies that will auto-resolve just by saying "yes".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;...to be continued..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-5128428678164527066?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/5128428678164527066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=5128428678164527066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5128428678164527066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5128428678164527066'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/e-mail-deliverability-using-postfix.html' title='E-Mail Deliverability Using Postfix + DKIMProxy Part I: Getting the stuff'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-720187849162053052</id><published>2008-01-07T22:15:00.000-08:00</published><updated>2008-01-07T22:25:15.745-08:00</updated><title type='text'>New Firewall for Rick: Part II - Options, Options, Options</title><content type='html'>We're now on day 2 of the pfSense Firewall/Router.  So far I've rebuilt it once - probably because I can't quit screwing with things.&lt;br /&gt;&lt;br /&gt;There are a few items I'd like to have in my little device that most people don't give a rats hiney about.  First thing I'd like is to explain that I have not got unlimited room for the projects I once had room for.  Gone is the day of having a rack or two of goodies in the house.  No more room all to myself where lie an assortment of hardware goodness from the likes of Sun, SGI, Apple, and several other vendors.&lt;br /&gt;&lt;br /&gt;Now I need to cram as much crap onto a single box as I can.&lt;br /&gt;&lt;br /&gt;So, I'd really like to have a BBS on the little pfSense machine.&lt;br /&gt;&lt;br /&gt;No; not phpBB or something like that - we're talkin' Synchronet ( http://synchro.net ) here.  But to do that, and some other stuff, I need a dev environment on the little box.  DANGER DANGER DANGER!! Yeah.. whatever.. this ain't no corporation I'm protectin' here.  It's a couple of boxes I use to play Everquest II on, or ssh out to work, or .. well.. write this ether-poo.&lt;br /&gt;&lt;br /&gt;I installed the dev package (hey.. it was right there in packages..).. and then something occured to me: I had not rebooted the thing since it was configured.  I had better stop now, before I actually do anything with it and reboot for sanity's sake.&lt;br /&gt;&lt;br /&gt;Reboot - no web interface.  Eep!&lt;br /&gt;&lt;br /&gt;Ok.. so I rebuild the thing again - this time I decide to use the config wizard.. which works without a hitch.&lt;br /&gt;&lt;br /&gt;Now.. until I figure out what killed the web interface, I think I'll wait on the BBS.  Bummer..  well.. actually, I do have a license for APE and a spare Atari 130XE lying around.. maybe I'll make use of the port forwarding, and setup my BBS on my Atari 8-bit..  it's a way more fun hack anyway...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-720187849162053052?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/720187849162053052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=720187849162053052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/720187849162053052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/720187849162053052'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/new-firewall-for-rick-part-i-options.html' title='New Firewall for Rick: Part II - Options, Options, Options'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-1433605397389177614</id><published>2008-01-07T11:36:00.000-08:00</published><updated>2008-01-09T21:55:41.169-08:00</updated><title type='text'>E-Mail Deliverability : SPF and SenderID</title><content type='html'>First, the links:&lt;br /&gt;&lt;br /&gt;http://www.openspf.org/&lt;br /&gt;&lt;br /&gt;This relies entirely on DNS being set up correctly.  You must have your MX records correct, you must have reverse lookups working right (ie: pointed to your mail server).&lt;br /&gt;&lt;br /&gt;It's all about the text records. &lt;br /&gt;&lt;br /&gt;Here might be an example forward zone for your domain, which has a few dns servers, a mail server, and a web server:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ORIGIN mydomain.com.&lt;br /&gt;@ IN SOA dns1.mydomain.com. primary.mydomain.com. (&lt;br /&gt;                2008010900 ; serial&lt;br /&gt;                1800 ; refresh&lt;br /&gt;                3600 ; retry&lt;br /&gt;                604800 ; expire&lt;br /&gt;                86400 ; minimum&lt;br /&gt;                )&lt;br /&gt;; DNS SERVERS&lt;br /&gt;mydomain.com.        300    IN    NS    dns2.mydomain.com.&lt;br /&gt;mydomain.com.        300    IN    NS    dns3.mydomain.com.&lt;br /&gt;mydomain.com.        300    IN    NS    dns4.mydomain.com.&lt;br /&gt;&lt;br /&gt;;MX RECORDS&lt;br /&gt;mydomain.com.        300    IN    MX    5 mail.mydomain.com.&lt;br /&gt;mail.mydomain.com.        300    IN    MX    5 mail.mydomain.com.&lt;br /&gt;&lt;br /&gt;;A RECORDS&lt;br /&gt;mail.mydomain.com.        300    IN    A    10.1.1.10&lt;br /&gt;dns1.mydomain.com.        300    IN    A    192.168.1.2&lt;br /&gt;mydomain.com        300    IN    A    10.1.1.2&lt;br /&gt;;CNAME RECORDS&lt;br /&gt;primary.mydomain.com.    300    IN    CNAME    dns1.mydomain.com.&lt;br /&gt;www.mydomain.com.        300    IN    CNAME    mydomain.com.&lt;br /&gt;&lt;br /&gt;; TEXT RECORDS&lt;br /&gt;mail.mydomain.com.        300    IN    TXT    "v=spf1 a -all"&lt;br /&gt;mydomain.com.        300    IN    TXT    "v=spf1 ipv4:10.1.1.10 mx -all"&lt;/blockquote&gt;&lt;br /&gt;...continued...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-1433605397389177614?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/1433605397389177614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=1433605397389177614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/1433605397389177614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/1433605397389177614'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/e-mail-deliverability-spf-and-senderid.html' title='E-Mail Deliverability : SPF and SenderID'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-4771586033334100391</id><published>2008-01-06T10:09:00.001-08:00</published><updated>2008-01-06T10:17:09.083-08:00</updated><title type='text'>New Firewall for Rick: Part I - Selection</title><content type='html'>ARGH! My Linksys WRT54GS keeps randomly breaking.  By breaking I mean "my wired net connections stop working as advertised".  This is a royal pain when you are trying to complete things for work... or you happen to be on call and watching your Nagios monitoring stop refreshing (yay!).&lt;br /&gt;&lt;br /&gt;The entire reason I went to the WRT is because I just didn't have room for a whole computer dedicated to firewalling.  Well; I now officially give up. After some careful browsing and comparison (in between losing internet access, that is), I've settled on either pfSense again or UnTangle.  I had run m0n0wall, then pfSense when it was an openbsd based system, and pfSense as based on freebsd. It's super simple to setup, it's easy to maintain, and it "just works".&lt;br /&gt;&lt;br /&gt;The one drawback for me though, is that it has to be connected to the live network during installation (correct me if I'm wrong).  This is a real drag for folks like me who tend to pop online regularly to check a setting or fail to print out the notes on installation/configuration. &lt;br /&gt;&lt;br /&gt;Untangle is a relatively new one, that has application modules that plug right in - the only thing about this one that I fear is the slowness associated with this many filters applied.&lt;br /&gt;&lt;br /&gt;We shall see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-4771586033334100391?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/4771586033334100391/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=4771586033334100391' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/4771586033334100391'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/4771586033334100391'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/new-firewall-for-rick-part-i-selection.html' title='New Firewall for Rick: Part I - Selection'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-5687450444383102136</id><published>2008-01-04T14:08:00.000-08:00</published><updated>2008-01-04T14:15:20.450-08:00</updated><title type='text'>scripting mailq output for error handling</title><content type='html'>So, I was in need of a way to parse mailq on a postfix box and remove all mail that was sitting there waiting indefinately because of an error.  Since setting a timeout is not good when email deliverability is king, I had to do this manually.&lt;br /&gt;&lt;br /&gt;I'm not a user of 'tr'.. or rather I wasn't. I so am now...&lt;br /&gt;&lt;br /&gt;Here's the script:&lt;br /&gt;&lt;br /&gt;mailq | tr '\n' '|' | sed "s/MYDOMAIN.COM|/MYDOMAIN.COM/g" | tr '|' '\n' | grep error | awk {'print $1'} | postsuper -d -&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here's what it does:&lt;br /&gt;&lt;br /&gt;take the output of mailq and pipe it to tr&lt;br /&gt;strip all newline chars and replace with pipes&lt;br /&gt;hand this output to sed, and do a regex search and replace on MYDOMAIN.COM| and replace with MYDOMAIN.COM&lt;br /&gt;handoff to tr again, and remove the remaining pipes, and replace those with newlines.&lt;br /&gt;find the error&lt;br /&gt;grab the first "word" in each line (the message id in this case) and pass the output to postsuper&lt;br /&gt;postsuper will then delete the messages based on the message id.&lt;br /&gt;&lt;br /&gt;The internet is held together with pipe and tubes. It's absolutely true.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-5687450444383102136?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/5687450444383102136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=5687450444383102136' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5687450444383102136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/5687450444383102136'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2008/01/stupid-pet-scripts.html' title='scripting mailq output for error handling'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-2696059471335630619</id><published>2007-12-26T20:54:00.000-08:00</published><updated>2007-12-26T20:56:55.120-08:00</updated><title type='text'>Wonder Twins Power Activate: Form of Algae! Shape of Biodeisel!</title><content type='html'>Ok - so there's this cat at work I went to lunch with before the Christmas (ooo! I said the C word!!!) break, who was talking about Biodeisel.  I was instantly interested.  I don't really have a story here, just a link.  A badass link.  The kind of link that you will read, and go "I get it."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://popsci.com/popsci/science/0a9d4d4329703110vgnvcm1000004eecbccdrcrd.html"&gt;http://popsci.com/popsci/science/0a9d4d4329703110vgnvcm1000004eecbccdrcrd.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Go, and be enlightened.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-2696059471335630619?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/2696059471335630619/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=2696059471335630619' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2696059471335630619'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2696059471335630619'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2007/12/wonder-twins-power-activate-form-of.html' title='Wonder Twins Power Activate: Form of Algae! Shape of Biodeisel!'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-3825990544979294182</id><published>2007-12-10T16:16:00.000-08:00</published><updated>2007-12-10T16:21:40.355-08:00</updated><title type='text'>Robo-Hunter</title><content type='html'>Named after one of the brood... I've decided to use google code to house the project.  It has everything I personally need to maintain the source, create the docs, etc.  The project lives at: &lt;a href="http://code.google.com/p/robo-hunter/"&gt;http://code.google.com/p/robo-hunter/&lt;/a&gt; - eventually, I'll allow others to pop in and lend a hand; maybe after I get some basic code in place.&lt;br /&gt;&lt;br /&gt;The plan for now is to use a core C code for the control daemon, and embed PERL into it for extensibility.  I'll probably port in the old Eliza code to give the little guy some level of AI, and hook it into a simple light sensor to keep it from bumping into things.  Once this basic&lt;br /&gt; functionality is there, I'll go ahead and get the code out there for folks to piddle with.&lt;br /&gt;&lt;br /&gt;Thats it for now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-3825990544979294182?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/3825990544979294182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=3825990544979294182' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/3825990544979294182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/3825990544979294182'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2007/12/robo-hunter.html' title='Robo-Hunter'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-8409864138543663156</id><published>2007-12-07T09:09:00.000-08:00</published><updated>2007-12-07T09:26:44.815-08:00</updated><title type='text'>Build your own legal Radio Station</title><content type='html'>When I was a kid, I had a pretty active, diverse, some would even say A.D.D. way of spending my time-while-not-in-school.  Mostly because I spent a lot of my young (birth till 7 years old, and various periods in between)life with a single mom raising me, and she would work any hours she was allowed at the Sharp Microwave factory.  Based on her salary, there weren't a lot of extras for me to go off buying stuff, toys, and electronics were out of the question.&lt;br /&gt;&lt;br /&gt;If I wanted something, I had to find parts for it and build it myself, or get lucky and someone would give me a hand-me-down toy.  Probably the very first thing I ever built (outside of a failed airplane at age 6 that I built from some 2x6 wood and a lawnmower engine that luckily wouldn't start) was an AM Crystal Radio Receiver.  I would go to Radio Shack with my grandfather (he was more like my dad)and drool over the stuff they had for kits there.  Back at this time, the electronics kits were all analog kits, and were lots of fun.  He did get me the AM Crystal Radio kit, and I don't know if it was for a birthday, xmas, or for the heck of it - I do know 2 things; 1) They were really cheap, 2) Really cheap for our family was still too expensive.  So for him to spend money on something like that might have meant he didn't add meat to the goulash he made every now and again.  Looking back - that radio really meant a lot than I realized at the time.&lt;br /&gt;&lt;br /&gt;I was living in Memphis, TN at the time, and man did we have some great radio stations.  I didn't know it then, but that radio eventually led me to being a DJ one day.&lt;br /&gt;&lt;br /&gt;So - with all of that comes this: &lt;a href="http://www.part15.us"&gt;http://www.part15.us&lt;/a&gt; - it is possible for a person to build an actual broadcasting radio station in the garage, basement, local high school, church, or, if you are lucky, business without incurring the wrath of the FCC.  Totally true.  And if you are lucky enough to live in Northern California, your FCC enforcement guys actually &lt;span style="font-weight:bold;"&gt;know&lt;/span&gt; what a part 15 AM transmitter should look like.  Which is cool.  &lt;br /&gt;&lt;br /&gt;I would encourage anyone who happens to sift through this diatribe of "What Rick Is"  to experiment and &lt;a href="http://www.sstran.com"&gt;build a radio transmitter&lt;/a&gt;, &lt;a href="http://www.am1000rangemaster.com"&gt;buy a commercially available one&lt;/a&gt;, go grab  a radio scheduler for your PC, and have some fun.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-8409864138543663156?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/8409864138543663156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=8409864138543663156' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/8409864138543663156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/8409864138543663156'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2007/12/build-your-own-legal-radio-station.html' title='Build your own legal Radio Station'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-2335585709223696820</id><published>2007-12-06T13:45:00.000-08:00</published><updated>2007-12-06T14:05:27.025-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='usb missle launcher'/><category scheme='http://www.blogger.com/atom/ns#' term='robots'/><category scheme='http://www.blogger.com/atom/ns#' term='elvis'/><title type='text'>Christmas Robots</title><content type='html'>&lt;span style="font-size:100%;"&gt;We've seen them - they are all the rage in Silicon Valley right now.. and have been for at least a couple of years: the &lt;a href="http://www.wowwee.com/"&gt;Wow Wee Robots&lt;/a&gt;, Flying toys, and realistic human heads (weird).  Everything from cutesy little rounded robo-sapien, to the Panda pair, a flying remote control dragonfly, and even &lt;a href="http://www.wowweealiveonline.com/elvis/index.html"&gt;the king himself&lt;/a&gt;.  These things are really fun toys, and nice diversions - the Dragonfly is a ton of fun to maneuver.&lt;br /&gt;&lt;br /&gt;One of my favorite places to pickup the odd-to-find office toy is &lt;a href="http://www.ThinkGeek.com"&gt;ThinkGeek&lt;/a&gt;.  A former co-worker of mine gifted me the oh so snazzy &lt;a href="http://www.thinkgeek.com/geektoys/cubegoodies/86b8/"&gt;Missle Launcher.&lt;/a&gt; (insert tire screech sound) ... What do these have in common?  Nada.  Unless you keep on readin'.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;A couple of years ago, I began dissecting a couple of hard drives, an LCD from a CD Duplicator, and a controller board for the CD Duplicator robotics.  I had this notion that I could build a partially autonomous robotic thingie out of those bits and maybe an old Dell CPi or CPx running some sort of BSD or Linux flavor.&lt;br /&gt;&lt;br /&gt;Unfortunately, due to lack of electronics surplus stores in Tucson, I was unable to even begin to build my robo-buddy.&lt;br /&gt;&lt;br /&gt;Since moving back to Silicon Valley, I have re-discovered everything that is circuity-goodness (is that even a word?)  Between Halted, Weirdstuff, Fry's (electronics.. not grocery), CRC, and the multitude of other surplus suppliers I don't even know about yet, I am now able to accomplish what I was previously unable to accomplish: I will build my bot.&lt;br /&gt;&lt;br /&gt;So - to tie it all together: Fry's has groovy robot toys, which made me think about my robot project, which is now enabled by the USB control system built into the ThinkGeek Missile Launcher toy :)&lt;br /&gt;&lt;br /&gt;Stay tuned.. either I will build a groovy robo-thing - or I'll be electrocuted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-2335585709223696820?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/2335585709223696820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=2335585709223696820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2335585709223696820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/2335585709223696820'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2007/12/christmas-robots.html' title='Christmas Robots'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8830206281726092271.post-25205469855980150</id><published>2007-12-01T09:51:00.000-08:00</published><updated>2007-12-02T09:52:07.631-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='silicon valley'/><category scheme='http://www.blogger.com/atom/ns#' term='giving'/><category scheme='http://www.blogger.com/atom/ns#' term='volunteer'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='homeless'/><title type='text'>Tis the season - to....?</title><content type='html'>So here we are, smack dab in the middle of "The Season for Giving", and I've done zero good-for-humanity.  Usually I have something going on where I'm teaching martial arts to at-risk youth, or picking up trash off of th side of I-10 around Tucson, AZ..  but what do you do in the Silicon Valley to help out?  Look around, there's only a hand full of obvious homeless here, there's virtually no apparent unprivileged families in the area, so again - what to do?  I found something, and I'm going to give it a shot: http://www.csacares.org .&lt;br /&gt;&lt;br /&gt;"..providing vital social services for residents of Mountain View, Los Altos and Los Altos Hills.."&lt;br /&gt;&lt;br /&gt;This sounds interesting, and they seem to need volunteers for no-brainer type stuff like stocking shelves, and driving to pickup donations.&lt;br /&gt;&lt;br /&gt;Please check out CSA, and for some added incentive, check out the links below when you are sitting in front of your XBOX 360 or PS3 wishing "man.. I need to make more money some how, I just can play this game in all it's glory on this dinky little 47inch 720p.. I need the 55inch 1080p LCD.."&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mv-voice.com/story.php?story_id=2187"&gt;http://www.mv-voice.com/story.php?story_id=2187&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.siliconvalley.com/mikecassidy/ci_7468061?nclick_check=1"&gt;http://www.siliconvalley.com/mikecassidy/ci_7468061?nclick_check=1&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.csacares.org"&gt;http://www.csacares.org&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8830206281726092271-25205469855980150?l=lifeoncastro.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lifeoncastro.blogspot.com/feeds/25205469855980150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8830206281726092271&amp;postID=25205469855980150' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/25205469855980150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8830206281726092271/posts/default/25205469855980150'/><link rel='alternate' type='text/html' href='http://lifeoncastro.blogspot.com/2007/12/tis-season-to.html' title='Tis the season - to....?'/><author><name>Rick</name><uri>http://www.blogger.com/profile/14724201770978862081</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp3.blogger.com/_M5S1P7S4Xq8/R1Aedx2yPrI/AAAAAAAAAAM/WdHi39nP4OU/S220/0972691.jpg'/></author><thr:total>0</thr:total></entry></feed>
