<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>LinuxNut.org &#187; Humor</title>
	<atom:link href="http://linuxnut.org/category/humor/feed/" rel="self" type="application/rss+xml" />
	<link>http://linuxnut.org</link>
	<description>Nuts about Linux and Stuff...</description>
	<lastBuildDate>Fri, 09 Apr 2010 15:52:45 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Programmer Jokes</title>
		<link>http://linuxnut.org/2009/08/programmer-jokes/</link>
		<comments>http://linuxnut.org/2009/08/programmer-jokes/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 18:48:33 +0000</pubDate>
		<dc:creator>Bryce</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Links]]></category>

		<guid isPermaLink="false">http://linuxnut.org/?p=145</guid>
		<description><![CDATA[Here&#8217;s a bunch of programmer jokes &#8211; http://stackoverflow.com/questions/234075/what-is-your-best-programmer-joke
]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a bunch of programmer jokes &#8211; <a href="http://stackoverflow.com/questions/234075/what-is-your-best-programmer-joke" target="_blank">http://stackoverflow.com/questions/234075/what-is-your-best-programmer-joke</a></p>
]]></content:encoded>
			<wfw:commentRss>http://linuxnut.org/2009/08/programmer-jokes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unix Recovery Legend</title>
		<link>http://linuxnut.org/2008/03/unix-recovery-legend/</link>
		<comments>http://linuxnut.org/2008/03/unix-recovery-legend/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 23:32:04 +0000</pubDate>
		<dc:creator>Bryce</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://admin.linuxnut.org/?p=39</guid>
		<description><![CDATA[This classic article from Mario Wolczko first appeared on Usenet in 1986.
Have you ever left your terminal logged in, only to find when you came back to it that a (supposed) friend had typed &#8220;rm -rf ~/*&#8221; and was hovering over the keyboard with threats along the lines of &#8220;lend me a fiver &#8217;til Thursday, [...]]]></description>
			<content:encoded><![CDATA[<p><em>This classic article from Mario Wolczko first appeared on Usenet in 1986.</em></p>
<p>Have you ever left your terminal logged in, only to find when you came back to it that a (supposed) friend had typed &#8220;rm -rf ~/*&#8221; and was hovering over the keyboard with threats along the lines of &#8220;lend me a fiver &#8217;til Thursday, or I hit return&#8221;?  Undoubtedly the person in question would not have had the nerve to inflict such a trauma upon you, and was doing it in jest.  So you&#8217;ve probably never experienced the worst of such disasters&#8230;.</p>
<p><span id="more-39"></span>It was a quiet Wednesday afternoon.  Wednesday, 1st October, 15:15 BST, to be precise, when Peter, an office-mate of mine, leaned away from his terminal and said to me, &#8220;Mario, I&#8217;m having a little trouble sending mail.&#8221;  Knowing that msg was capable of confusing even the most capable of people, I sauntered over to his terminal to see what was wrong.  A strange error message of the form (I forget the exact details) &#8220;cannot access /foo/bar for userid 147&#8243; had been issued by<br />
msg.  My first thought was &#8220;Who&#8217;s userid 147?; the sender of the message, the destination, or what?&#8221;  So I leant over to another terminal, already logged in, and typed</p>
<dl>
<dd><code>grep 147 /etc/passwd</code></dd>
</dl>
<p>only to receive the response</p>
<dl>
<dd><code>/etc/passwd: No such file or directory.</code></dd>
</dl>
<p>Instantly, I guessed that something was amiss.  This was confirmed when in response to</p>
<dl>
<dd><code>ls /etc</code></dd>
</dl>
<p>I got</p>
<dl>
<dd><code>ls: not found.</code></dd>
</dl>
<p>I suggested to Peter that it would be a good idea not to try anything for a while, and went off to find our system manager.</p>
<p>When I arrived at his office, his door was ajar, and within ten seconds I realised what the problem was.  James, our manager, was sat down, head in hands, hands between knees, as one whose world has just come to an end.  Our newly-appointed system programmer, Neil, was beside him, gazing listlessly at the screen of his terminal. And at the top of the screen I spied the following lines:</p>
<dl>
<dd><code># cd</code></dd>
<dd><code># rm -rf *</code></dd>
</dl>
<p>Oh, shit, I thought.  That would just about explain it.</p>
<p>I can&#8217;t remember what happened in the succeeding minutes; my memory is just a blur.  I do remember trying ls (again), ps, who and maybe a few other commands beside, all to no avail.  The next thing I remember was being at my terminal again (a multi-window graphics terminal), and<br />
typing</p>
<dl>
<dd><code>cd /</code></dd>
<dd><code>echo *</code></dd>
</dl>
<p>I owe a debt of thanks to David Korn for making echo a built-in of his shell; needless to say, /bin, together with /bin/echo, had been deleted.  What transpired in the next few minutes was that /dev, /etc and /lib had also gone in their entirety; fortunately Neil had interrupted rm while it was somewhere down below /news, and /tmp, /usr and /users were all untouched.</p>
<p>Meanwhile James had made for our tape cupboard and had retrieved what claimed to be a dump tape of the root filesystem, taken four weeks earlier.  The pressing question was, &#8220;How do we recover the contents of the tape?&#8221;.  Not only had we lost /etc/restore, but all of the device entries for the tape deck had vanished.  And where does mknod live?  You guessed it, /etc.  How about recovery across Ethernet of any of this from another VAX?  Well, /bin/tar had gone,<br />
and thoughtfully the Berkeley people had put rcp in /bin in the 4.3 distribution.  What&#8217;s more, none of the Ether stuff wanted to know without /etc/hosts at least.  We found a version of cpio in /usr/local, but that was unlikely to do us any good without a tape deck.</p>
<p>Alternatively, we could get the boot tape out and rebuild the root filesystem, but neither James nor Neil had done that before, and we weren&#8217;t sure that the first thing to happen would be that the whole disk would be re-formatted, losing all our user files.  (We take dumps of the user files every Thursday; by Murphy&#8217;s Law this had to happen on a Wednesday).  Another solution might be to borrow a disk from another VAX, boot off that, and tidy up later, but that would have<br />
entailed calling the DEC engineer out, at the very least.  We had a number of users in the final throes of writing up PhD theses and the loss of a maybe a weeks&#8217; work (not to mention the machine down time) was unthinkable.</p>
<p>So, what to do?  The next idea was to write a program to make a device descriptor for the tape deck, but we all know where cc, as and ld live.  Or maybe make skeletal entries for /etc/passwd, /etc/hosts and so on, so that /usr/bin/ftp would work.  By sheer luck, I had a gnuemacs still running in one of my windows, which we could use to create passwd, etc., but the first step was to create a directory to put them in.  Of course /bin/mkdir had gone, and so had /bin/mv, so we<br />
couldn&#8217;t rename /tmp to /etc.  However, this looked like a reasonable line of attack.</p>
<p>By now we had been joined by Alasdair, our resident UNIX guru, and as luck would have it, someone who knows VAX assembler.  So our plan became this: write a program in assembler which would either rename /tmp to /etc, or make /etc, assemble it on another VAX, uuencode it, type in the uuencoded file using my gnu, uudecode it (some bright spark had thought to put uudecode in /usr/bin), run it, and hey presto, it would all be plain sailing from there.  By yet another<br />
miracle of good fortune, the terminal from which the damage had been done was still su&#8217;d to root (su is in /bin, remember?), so at least we stood a chance of all this working.</p>
<p>Off we set on our merry way, and within only an hour we had managed to concoct the dozen or so lines of assembler to create /etc.  The stripped binary was only 76 bytes long, so we converted it to hex (slightly more readable than the output of uuencode), and typed it in using my editor.  If any of you ever have the same problem, here&#8217;s the hex for future reference:</p>
<dl>
<dd><code>070100002c000000000000000000000000000000000000000000000000000000<br />
0000dd8fff010000dd8f27000000fb02ef07000000fb01ef070000000000bc8f<br />
8800040000bc012f65746300</code></dd>
</dl>
<p>I had a handy program around (doesn&#8217;t everybody?) for converting ASCII hex to binary, and the output of /usr/bin/sum tallied with our original binary.  But hang on&#8212;how do you set execute permission without /bin/chmod?  A few seconds thought (which as usual, lasted a couple of minutes) suggested that we write the binary on top of an already existing binary, owned by me&#8230;problem solved.</p>
<p>So along we trotted to the terminal with the root login, carefully remembered to set the umask to 0 (so that I could create files in it using my gnu), and ran the binary.  So now we had a /etc, writable by all.  From there it was but a few easy steps to creating passwd, hosts, services, protocols, (etc), and then ftp was willing to play ball.  Then we recovered the contents of /bin across the ether (it&#8217;s amazing how much you come to miss ls after just a few, short hours),<br />
and selected files from /etc.  The key file was /etc/rrestore, with which we recovered /dev from the dump tape, and the rest is history.</p>
<p>Now, you&#8217;re asking yourself (as I am), what&#8217;s the moral of this story? Well, for one thing, you must always remember the immortal words, DON&#8217;T PANIC.  Our initial reaction was to reboot the machine and try everything as single user, but it&#8217;s unlikely it would have come up without /etc/init and /bin/sh.  Rational thought saved us from this one.</p>
<p>The next thing to remember is that UNIX tools really can be put to unusual purposes.  Even without my gnuemacs, we could have survived by using, say, /usr/bin/grep as a substitute for /bin/cat.</p>
<p>And the final thing is, it&#8217;s amazing how much of the system you can delete without it falling apart completely.  Apart from the fact that nobody could login (/bin/login?), and most of the useful commands had gone, everything else seemed normal.  Of course, some things can&#8217;t stand life without say /etc/termcap, or /dev/kmem, or /etc/utmp, but by and large it all hangs together.</p>
<p>I shall leave you with this question: if you were placed in the same situation, and had the presence of mind that always comes with hindsight, could you have got out of it in a simpler or easier way? Answers on a postage stamp to:</p>
<p>Mario Wolczko<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Dept. of Computer Science       ARPA:   miw%uk.ac.man.cs.ux@cs.ucl.ac.uk<br />
The University                  USENET: mcvax!ukc!man.cs.ux!miw<br />
Manchester M13 9PL              JANET:  miw@uk.ac.man.cs.ux<br />
U.K.                            061-273 7121 x 5699<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxnut.org/2008/03/unix-recovery-legend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So You Want To Be A UNIX Wizard? (The Loginataka)</title>
		<link>http://linuxnut.org/2008/03/so-you-want-to-be-a-unix-wizard-the-loginataka/</link>
		<comments>http://linuxnut.org/2008/03/so-you-want-to-be-a-unix-wizard-the-loginataka/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 20:10:25 +0000</pubDate>
		<dc:creator>Bryce</dc:creator>
				<category><![CDATA[Humor]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://admin.linuxnut.org/?p=42</guid>
		<description><![CDATA[I first came across this dialogue several years ago, which I believe was originally written by Eric S. Raymond in 1993.
Speak, O Guru: How can I become a Unix Wizard?
O, Nobly Born: know that the Way to Wizardhood is long, and winding, and
Fraught with Risks.  Thou must Attune thyself with the Source, attaining the
arcane [...]]]></description>
			<content:encoded><![CDATA[<p><em>I first came across this dialogue several years ago, which I believe was originally written by Eric S. Raymond in 1993.</em></p>
<p><strong>Speak, O Guru: How can I become a Unix Wizard?</strong></p>
<p>O, Nobly Born: know that the Way to Wizardhood is long, and winding, and<br />
Fraught with Risks.  Thou must Attune thyself with the Source, attaining the<br />
arcane Knowledge and Conversation of the System Libraries and Internals.  Yea;<br />
and such an all-consuming Time and Energy Sink is this as to greatly Imperil<br />
thy Grade Point Average (if one thou hast), not to mention thy Sex Life (if one<br />
thou hast).  But persevere, oh Larval One; rewards beyond the Dreams of Lusers<br />
await thee!</p>
<p><strong><span id="more-42"></span>Speak, O Guru: What books should I study?  Are the O&#8217;Reilly &#8220;Nutshell&#8221;<br />
guides a good place to start?</strong></p>
<p>O, Nobly Born: know that the Nutshell Guides are but the outermost Portal<br />
of the True Enlightenment.  Worthy are they (and praise to the Name of<br />
O&#8217;Reilly, whose books show forth the Hacker Spirit in numerous pleasing ways),<br />
but the Nutshell Guides are only the Beginning of the Road.</p>
<p>If thou desirest with True Desire to tread the Path of Wizardly Wisdom, first<br />
learn the elementary Postures of Kernighan &amp; Pike&#8217;s <em>The Unix<br />
Programming Environment</em>; then, absorb the mantic puissance of March<br />
Rochkind&#8217;s <em>Advanced Unix Programming</em> and W. Richard<br />
Stevens&#8217;s <em>Advanced Programming In The Unix Environment</em>.</p>
<p>Immerse thyself, then, in the Pure Light of Maurice J.  Bach&#8217;s <em>The<br />
Design Of The Unix Operating System</em>.  Neglect not the Berkelian<br />
Way; study also <em>The Design and Implementation Of The 4.4BSD Operating<br />
System</em> by Kirk McKusick, Keith Bostic et. al.</p>
<p>For useful hints, tips, and tricks, see <em>Unix Power Tools</em>,<br />
Tim O&#8217;Reilly, ed.  Consider also the dark Wisdom to be gained from<br />
contemplation of the dread <em>Portable C And Unix Systems<br />
Programming</em>, e&#8217;en though it hath flowed from the keyboard of the<br />
mad and doomed Malvernite whom the world of unknowing Man misnames<br />
&#8220;J. E. Lapin&#8221;.</p>
<p>These tomes shall instruct thy Left Brain in the Nature of the Unix System; to<br />
Feed the other half of thy Head, O Nobly Born, embrace also the Lore of its<br />
Nurture.  Don Libes&#8217;s and Sandy Ressler&#8217;s <em>Life With Unix</em></p>
<p>will set thy Feet unerringly upon that Path; take as thy Travelling Companion<br />
the erratic but illuminating compendium called <em>The New Hacker&#8217;s<br />
Dictionary</em> (Eric S. Raymond, ed., with Guy L. Steele Jr.).</p>
<p>(In this wise shalt thou travel the Way of the Camel.)</p>
<p><strong>Speak, O Guru: To attain Mastery, how many Kernels do I need to take apart<br />
and reassemble?</strong></p>
<p>O Nobly Born: this question reveals that indeed thou hast touched upon an<br />
Ineffable Truth about Unix &#8212; that thou canst not Plumb its Mysteries by<br />
mere Study but must become One with it through Practice.  The true Way to the<br />
Knowledge of the Source is not the timid and footling way of the Student,<br />
but the Divine Foolery of the Hacker.  Hack, then; strive against Mighty<br />
Problems, have joy in thy Striving, and let the Crashes fall where they<br />
may (maintaining the while, for the Good of thy Karma, a Rigorous Backup<br />
Policy).</p>
<p>(In this wise shalt thou travel the Way of the Lion.)</p>
<p>In this day of Boot-Time Autoconfiguration and Dynamically Loadable Device<br />
Drivers, reassembling a Kernel is no longer the daunting Test and Seal of<br />
Mastery that once it was.  However, writing and verifying thine own Device<br />
Driver for some piece of Exotic Hardware is still a worthy challenge to thy<br />
Budding Guruhood.  Indeed, such Challenge may be found the Crafting of any<br />
Program sufficiently Powerful to Extend or Compete with the Tools now<br />
available in Open Source.</p>
<p>Therefore: seek thee out the Open Source Unixes: OpenBSD, FreeBSD,<br />
NetBSD, and most Especially Linux in any of its Incarnations.  Join<br />
the Wizards and Aspirants to Wizardhood who Labor Unceasingly to<br />
Improve these.  Commune with them in their Great Work, their unceasing<br />
Extension and Reinvention of Unix.  In this wise may thou become one<br />
among the Mighty.</p>
<p><strong>Speak, O Guru: Some there are who claim that the sole Path to Wizardry and<br />
the proper Way of every Right-Thinking Hacker is to rewrite the Unix Kernel<br />
from Scratch.  Is this not Sacrilege?</strong></p>
<p>Sacrilege, O Nobly Born?  Nay!  Certainly the Kernel Source is the Inmost<br />
Mystery of Unix &#8212; but there is a Mystery beyond that Mystery.  The Nature<br />
of Unix inhereth not in any one Version but in the Design Tradition of which<br />
all Unixes are Evolving Parts.</p>
<p>The Rite of the Rewrite is not the only Path to Mastery, but it is perhaps<br />
the highest and most Sacred of all Paths.  Few indeed are those who, travelling<br />
it, have crossed the dark and yawning Abyss of Implementation to Delivery.<br />
Many, yea, many in truth stagnate yet in the Desert of Delay, or linger ever<br />
in the ghastly limbo called Perpetual Beta.</p>
<p><strong>Speak, O Guru: What, then, is the True Path to Wizardhood?</strong></p>
<p>O Nobly Born: learn, and seek within thyself.  Cultivate the cunning of<br />
the Serpent and the courage of the Tiger; sup deeply from the Wisdom of<br />
those who came before thee.  Hack, and hack again; grow, by trial and by<br />
error.  Post thy best hacks to the Net and gain in Repute thereby.  Also, O<br />
Nobly Born, be thou grave and courteous in thy speech; be helpful to those<br />
less than thee, quick to succour and slow to flame.</p>
<p>If thou dost these things faithfully, if thou travellest with high heart<br />
and pure intention, soon shall thy callow Newbiehood be shed.  By degrees<br />
imperceptible to thyself shalt thou gain Power and Wisdom, Striving and<br />
Doing all the while.  Gradually shall thy Puissance unfold and deepen.</p>
<p>O Nobly Born, if thou dost all these things, thy Wizardhood shall surely come<br />
upon thee; but not of a sudden, and not until after thy arrogant Mind hath<br />
more than half Forgotten that such was its Aim.  For know this &#8212; you may not<br />
by thyself in Pride claim the Mantle of Wizardry; that way lies only Bogosity<br />
without End.</p>
<p>Rather must you Become, and Become, and Become, until Hackers respect thy<br />
Power, and other Wizards hail thee as a Brother or Sister in Wisdom, and you<br />
wake up and realize that the Mantle hath lain unknown upon thy Shoulders since<br />
you knew not when.</p>
<p>(In this wise shalt thou travel the Way of the Child.)</p>
<p>SHANTIH!  SHANTIH!  SHANTIH!</p>
]]></content:encoded>
			<wfw:commentRss>http://linuxnut.org/2008/03/so-you-want-to-be-a-unix-wizard-the-loginataka/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
