Petter’s Computer Science

Songbook

Petter Reinholdtsen

Revised: July 23, 2003

Contents

1. Write in C, 1

2. Lost Andre, 1

3. g-c-c, 2

4. We are the code crew, 2

5. Whole Lotta Bad C, 3

6. I Wish I Could Be Coding Every Day, 3

7. Womble, 4

8. Let there be hacks, 5

9. Here it is linux kernel, 5

10. Hardware for nothing, 6

11. APL, 6

12. Something, 6

13. Debugging, 7

14. Eternal Flame, 8

15. The Bug Came Back, 9

16. No Backup, 9

17. She’s Always a Goddess, 10

18. The “I got 0wN3d last night” song, 10

19. The webdesigner song, 11

20. Got Them Dot Zero Blues, 11

21. My ogg files, 12

22. What a wonderful world, 12

23. 10 Little Spammers, 13

24. Berkeley California, 13

25. Unix Man, 14

26. Eleanor Rigby, 15

27. The Day SunOS Died, 15

28. Boot It!, 17

29. The C Days of Y2K, 17

30. What if Dr. Seuss wrote technical manuals?, 18 31. The GNU Imagine, 19

32. It is free, 19

33. I/O, 20

34. Not a boolean, 21

35. Nodepekerlistevisa for Pascal, 21

36. Addicted To vi, 22

Introduction

This songbook is a collection of songs related to computers, computer science and the Internet, which I’ve collected during the last few years. I’ve tried to collect the songs I would like to be singing when I meet my fellow computer professionals. Most of them have appeared on some USENET newsgroup, but the exact source have been lost in the mist of time.

Lots of songs where found at http://www.poppyfields.net/filks/ and
http://www.netspace.org/~dmacks/internet-songbook/.

Please contact me if you have comments, questions, suggestions or information on who wrote one of the songs. The latest version of this songbook is available from

http://www.hungry.com/~pere/cs-songbook/.

Petter Reinholdtsen - <pere@hungry.com>

Acknowledgement

Thanks to Ole Aamot, Morten A. Middelthon, Stein Vraale, Jørgen Wahlberg and Mari Wang for helping me finding songs. The songbook is typeset using LaTeX and the Songbook LaTeX style available

from http://www.rath.ca/Misc/Songbook/.

4

Lost Andre  8

Programming

1 — Write in C

\begin{matrix}c \\ ◯ \end{matrix}Unknown

W&M: Music: “Let it Be”, The Beatles

1. When I find my code in tons of

trouble, Friends and colleagues come to

me, Speaking words of wisdom: “Write in C.”

2. As the deadline fast approaches, And bugs are all that I can see, Somewhere, someone whispers “Write in C.”

3. Write in C, write in C, Write in C, write in C. LISP is dead and buried, Write in C.

4. I used to write a lot of

FORTRAN, for science it worked flawlessly. Try using it for graphics! Write in C.

5. If you’ve just spent nearly 30

hours Debugging some assembly, Soon you will be glad to Write in C.

6. Write in C, write in C, Write In C, yeah, write in C. Only wimps use BASIC. Write in C.

7. Write in C, write in C, Write in C, oh, write in C. Pascal won’t quite cut it. Write in C.

8. Guitar Solo

9. Write in C, write in C, Write in C, yeah, write in C. Don’t even mention COBOL. Write in C.

10. And when the screen is fuzzy, And the editor is bugging me. I’m sick of ones and zeroes. Write in C.

11. A thousand people people swear

that T.P. Seven is the one for me. I hate the word PROCEDURE, Write in C.

12. Write in C, write in C, Write in C, yeah, write in C. PL1 is 80’s, Write in C.

13. Write in C, write in C, Write in C, yeah, write in C. The government loves ADA, Write in C.

2 — Lost Andre

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox W&M: Motorhead, Lost Johnny

1. You only a get a single block The drives are very plain Disconnect is well outside The power of its brain You can hear it clunking You can see it far afar Its a pale clone of scsi Just a faded I/O star

We are the code crew

2. And out there in the workroom They’re trying to make it scream By sticking queued tags in a flash And reprogramming the stream Can you find the DMA Can you add it soon Lost Andre’s out there Baying at the moon

3. The time has come for you to

choose You’d better get it right Pulling drives that suck a lot Oh please now make them right But you want to really get some its surely can’t be hard There’s always scsi lurking When your servers underpowered

4. Underneath committees The scsi vendors sing Of how the IDE, it always hangs When someone hacks the thing Can you find the disk block Can you make the tweak Lost Andre’s out there Looking for a leak

5. That spec it looks so evil And you know it never tries And every time they make a hack They have to compromise And shall I find their CPRM In a drive which no one buys They make it big in tricks At the price of broken drives

6. And here inside the server room The UPS still screams And we’re shooting disks up And returning maxtor things Can you find the raid card For god’s sake make it quick Lost Andre’s out there Trying to make it tick

3 — g-c-c

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox W&M: Childrens rhyme

1. g-c-c, g-c-c, see how it runs, see how it runs, it ran all over the swap device, they freed all its ram with a kill -9, did you ever see such a thrash in your life as g-c-c

4 — We are the code crew

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox W&M: We are the road crew Motorhead

1. Another bug, another race Another oops, another trace Another driver I can’t face

2. Reading junk, feeling bad Another night going mad x-jack drivers are so bad

3. But I just love the code I read Another beer is what I need Another bug, my ram is freed We are the code crew

4. Another driver left behind Another hack, completely blind Another bug that I can’t find

5. Another deadlock fix or two Another flaw in our ext2 Another driver to get through

6. Coding like a manaic Coding gone to hell and back Another oops a case to crack We are the code crew

I Wish I Could Be Coding Every Day  Ch:

7. Another driver we can learn Another flaw, another churn Another pile of crap to burn

8. Another bugcheck on the way Another author that I can’t flay Another word I learned to say

9. Another bloody bios post Another fucking box is toast Another set of scars to boast We are the code crew

5 — Whole Lotta Bad C

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox

W&M: Whole Lotta Rosie AC/DC

1. I wanna tell you a story, about a bug I know, when it comes to crashing, oh it steals the show, it aint exactly pretty, aint exactly

small, drivers/media/videodev you could

say its got them all

2. Never had a bug, never had a bug

like this, killing all the things, killing all

the things it does, aint no fairy story, aint no kernel

moan, but you kdb it all a lot, oopsing

on an intel clone

Ch: You’re a whole lot of program A whole lotta program Whole lotta bad c Ah you’re a whole lotta program 3. Oh hacker you can do it

Debug for me all night long Only one to chase Only one to chase it up All through the night time And right around the clock To my suprise Oopses never stop

Ch: You’re a whole lot of program A whole lotta program Whole lotta bad C Ah you’re a whole lotta program

6 — I Wish I Could Be Coding Every Day

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox W&M: Sorry Roy Wood [Are you ready porters .. ]

1. When the hackers bring the code Well they just might like to know They’ve put a great big smile, on

somebody’s face If you boot it on your vax quickly coding up the traps Don’t you lock the bus You know that neat debug tools

are on the way

Ch: Well I wish I could be coding,

every day When the vax starts pinging from

the shell upon the cray Oh I wish I could be coding,

every day Let the code flow out from

hackers

2. When we’re searching in the code For the bug that stops the load Then your config files going to

build my linux bin Now the booting prompts appear And you’re loading from a peer So we’ll stare at the wire Till the shell simply loads up all

the way

\underline{Womble}

Ch: Well I wish I could be coding,

every day When the vax starts pinging from

the shell upon the cray Oh I wish I could be coding,

every day Let the code flow out from

hackers

3. When the hackers bring the code (When the hackers bring the code)

Well they just might like to know (Well they just might like to know)

They’ve put a great big smile, on somebody’s face (They’ve put a great big smile, on somebody’s face)

So if Linux boots that shell (So if

Linux boots that shell) Now running on vaxen well I’ll sign my name on the kernel in

the code Then I may decide to play

Ch: Well I wish I could be coding,

every day When the vax starts pinging from

the shell upon the cray Oh I wish I could be coding,

every day Let the code flow out from

hackers

[Okay you lot- take it!]

Ch: Well I wish I could be coding,

every day (every day) When the vax starts pinging from

the shell upon the cray (oh oh) Oh I wish I could be coding,

every day Let the code flow out from

hackers 4. Why don’t you boot your vax on

Linux ?

7 — Womble

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Alan Cox [Mike Batt gets it this time]

1. Kernel mode, user mode, cvs tree The commiters of cvs patches are

we, Making good use of the code that

we find, Things that the community folks

have in mind

2. Miguel deIcaza

He can remember they days mc wasn’t behind the times With his view for the world Decode the core dumps and

blame them on the gnome tree

3. Coder’s aren’t organised, work as

a team Coder’s aren’t tidy and coders

aren’t clean Kernel mode, user mode, cvs tree The commiters of cvs patches are

we

4. People don’t notice us, they’ll

never see Under their noises a hacker may

be We edit by night and we sleep in

by day Writing up patches to send bugs

away

5. We’re so incredibly utterly

devious Making the most of everything Even asm and strings Pick up the patches make them into something new

is what we do!

Here it is linux kernel  3

6. Kernel mode, user mode, cvs tree

The commiters of cvs patches are

we, Making good use of the code that

we find, Things that the community folks

have in mind

8 — Let there be hacks

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox

W&M: “Let there be rock”, AC/DC

1. In the beginning Back in ninetieen ninety one Man didn’t know about no linux

source code And all thats fun The dos man had no windows The mac man had no tools No one knew what they was

gonna do But the unix hacks had the news,

they said

Ch: Let there be shells, and there

were shells Let there be perl, and there was

perl Let there be gnus, and there were

gnus Let there be emacs, and there was

emacs Let there be hacks

2. And so it came to pass That linux source code was born All across the land every hacking

man Was coding up a storm And the Linus man got famous And the business man got rich And on every list there was a

wannabe With a clue free patch There was fifteen million fingers Learnin’ how to code And you could hear the keyboard

clicking And this is what they had to load Ch: Let there be shells, perl, gnus, ’n

emacs an Let there be hacks

3. One night at a show called OLS There was a linux kernel hacking

band And the hacking was good And the hackers were proud And then well Linus turned and he said to the crowd

Ch: Let there be hacks

9 — Here it is linux kernel

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: “Merry X-Mas Everybody”, Slade

1. Are you posting up a driver there

for all Its the time that every hacker has

a ball Does it keep on breaking paging Does it run slab poisoned eh ? Do the reports keep you coding

for the day

Ch: So here it is, linux-kernel Everybody’s having fun Look for the flaming now It’s only just begun

2. Are you waiting for the flamers to

arrive Are you sure you got the room to

keep archives Does Al Viro always tell ya That filesystems are the best Then he’s off and kernel hacking

with the rest

Ch: So here it is, linux-kernel Everybody’s having fun Look for the flaming now It’s only just begun

2  Something

3. What will Jeff Merkey do

When he sees you now postin’

novell support Aa-Ah ah-ah

4. Are you pulling down a kernel

when you call Are you hoping that the code will

start to rule Do you walk on down the

calltrace With a debugger you have made When they land up in your driver

then you’ve been blamed

Ch: So here it is, linux-kernel Everybody’s having fun Look for the flaming now It’s only just begun

Ch: So here it is, linux-kernel Everybody’s having fun Look for the flaming now It’s only just begun

Ch: So here it is, linux-kernel Everybody’s having fun Look for the flaming now It’s only just begun

Ch: So here it is, linux-kernel Everybody’s having fun Look for the flaming now It’s only just begun

10 — Hardware for nothing

\begin{matrix}c \\ ◯ \end{matrix}Unknown

W&M: “Money for nothing”, Dire straits

1. Look at them coders that’s the way you do it You chat about hackin’ on the IRC. That ain’t workin’ That’s the way you do it. Hardware for nothin’ and your source for free.

2. Now that ain’t workin’ That’s the way you do it. Lemme tell ya them coders ain’t dumb. Maybe get a blister on your typing fingers maybe put on a little weight around you bum

3. We gotta install operating

systems Custom kernel Deliveriiiiies. We gotta solve these user

problems We gotta move these pentium

Threeeeees

4. I want my I want my I want my IRC ...

11 — APL

\begin{matrix}c \\ ◯ \end{matrix}Richard M. Stallman W&M: This uses the tune of “Row, row, row your boat”.

The Greek letter rho (ρ) is an important operator in the APL programming language.

1. ρ, ρ, ρ of X.

Always equals 1.

ρ is dimension; ρ ρ, rank.

APL is fun!

12 — Something

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Tune: “Something” by The Beatles

1. Something in the way it fails, Defies the algorithm’s logic! Something in the way it coredumps...

I don’t want to leave it now I’ll fix this problem somehow

Debugging  3

2. Somewhere in the memory I

know, A pointer’s got to be corrupted. Stepping in the debugger will

show me... I don’t want to leave it now Too close to leave it now

3. You’re asking me can this code

go? I don’t know, I don’t know... What sequence causes it to blow? I don’t know, I don’t know...

4. Something in the initializing

code? And all I have to do is think of it! Something in the listing will show

me... I don’t want to leave it now I’ll fix this tonight I vow!

13 — Debugging

\begin{matrix}c \\ ◯ \end{matrix}Richard M. Stallman

W&M: This uses the tune of “Deck the halls with boughs of holly”.

rms wrote this in the 1970s, when decks of punched cards and thumping line printers were still widely used.

1. Deck the cards that hold the data. (Fa la la la la, la la, la, la.) Hand them to the operator. (Fa la la la la, la la, la, la.) Hear the output printer

thumping: (Fa la la la la, la la, la, la.) 50 k of core are dumping. (Fa la la la la, la la, la, la.)

2. Now you have to start debugging, (Fa la la la la, la la, la, la.) Through the dump for errors

culling. (Fa la la la la, la la, la, la.) If you cannot understand ’em, (Fa la la la la, la la, la, la.) Just change anything at random. (Fa la la la la, la la, la, la.)

3. When it seems your program’s

mended, (Fa la la la la, la la, la, la.) And you think your task has

ended, (Fa la la la la, la la, la, la.) Ware rejoicing prematurely: (Fa la la la la, la la, la, la.) There will be more errors surely. (Fa la la la la, la la, la, la.)

6  Eternal Flame

14 — Eternal Flame

\begin{matrix}c \\ ◯ \end{matrix}Tune: God Lives on Terra by Julia Ecklar W&M: Unknown

1. I was taught assembler in my second year of school. It’s kinda like construction work – with a toothpick for a tool. So when I made my senior year, I threw my code away, And learned the way to program that I still prefer today.

2. Now, some folks on the Internet put their faith in C++. They swear that it’s so powerful, it’s what God used for us. And maybe it lets mortals dredge their objects from the C. But I think that explains why only God can make a tree.

3. For God wrote in Lisp code

When he filled the leaves with

green. The fractal flowers and recursive

roots: The most lovely hack I’ve seen. And when I ponder snowflakes, never finding two the same, I know God likes a language with its own four-letter name.

4. Now, I’ve used a SUN under Unix, so I’ve seen what C can hold. I’ve surfed for Perls, found what

Fortran’s for, Got that Java stuff down cold. Though the chance that I’d write

COBOL code is a SNOBOL’s chance in Hell. And I basically hate hieroglyphs, so I won’t use APL.

5. Now, God must know all these

languages, and a few I haven’t named. But the Lord made sure, when

each sparrow falls, that its flesh will be reclaimed. And the Lord could not count

grains of sand with a 32-bit word. Who knows where we would go to if Lisp weren’t what he preferred?

6. And God wrote in Lisp code Every creature great and small. Don’t search the disk drive for

man.c, When the listing’s on the wall. And when I watch the lightning

burn Unbelievers to a crisp, I know God had six days to work, So he wrote it all in Lisp.

7. Yes, God had a deadline. So he wrote it all in Lisp.

No Backup  5

15 — The Bug Came Back

\begin{matrix}c \\ ◯ \end{matrix}Joel Polowin

W&M: This uses the tune of “The Can Came Back” by Harry S. Miller.

1. The program wasn’t complex, and

it wasn’t very long, Though it seemed a bit erratic, its

results were seldom wrong. But that little error nagged us, so

we stayed up late one night - Found a missing comma, and we

thought that fixed it right -

Ch: But the bug came back, the very

next day The bug came back, we thought it

was a gonner But the bug came back, it just

wouldn’t stay away.

2. We put away our documents,

rewrote the code from scratch To find out where the new and

older versions didn’t match. A subtle shift of logic showed

where we had gone astray; We felt a bit embarrassed, but at

least it ran okay - chorus

3. We wrote in other languages,

from FORTH to APL And ev’ry one ran ev’ry time -

just sometimes not too well. Translation to assembler didn’t

give us any clue; The COBOL version crashed on

ev’ry system it went through - chorus

4. We gave it to the hacker squad -

the folks who code for fun - And asked them if they couldn’t

get the stupid thing to run. But less than one week later, they

no longer wished to play - Three paranoids... one suicide...

and six who ran away... chorus

5. We got a summer student in to check the code by hand, With paper, pen and calculator, run through each command, But suddenly the lights went out – the air went thin and queer – A sudden FLASH! of lightning –

and the student... disappeared..?

chorus

6. We set up an experiment that Schrodinger inspired: A box; a cat; some poison; a computer system wired Such that IF the program failed, the little moggy would be gassed.

A quasar was - almost - the only remnant of the blast...

Ch: But the cat came back the very

next day The bug came back, we thought

they were a gonner But they both came back, they just wouldn’t stay away

System administration

16 — No Backup

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Lill Berg Nordheim

1. Yesterday,

all those backups seemed a waste

of pay Now my database has gone away Oh I believe in yesterday

The “I got 0wN3d last night” song

2. Suddenly,

there’s not half the files there

used to be, there’s a millstone hanging over

me The system crashed so suddenly

3. I pushed something wrong What it was I could not say Now all my data’s gone and I long for yesterday-ay-ay-ay

4. Yesterday,

the need for backups seemed so

far away I knew my data was all here to

stay Now I believe in yesterday

17 — She’s Always a Goddess

\begin{matrix}c \\ ◯ \end{matrix}2001 Illiad

W&M: Music: “She’s Always a Woman”

1. She can kill -9 with a smile As she munches her fries She can crack your account And delete all your files Though she only appeals To the shy ones like me She can code like a pro And she’s always a goddess to me

2. She can root all your boxes Faster than you’d believe You can ask for an ack But you’ll never receive She’ll take code you give her As long as it’s *free* She tinks I’m a dweeb But she’s always a goddess to me

3. Ohhhh. She takes care of her

servers She can play quake if she wants She’s ahead of her game Ohhhh. She never gets stressed

out And she never gets caught She just passes on blame

Security

18 — The “I got 0wN3d last night” song

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Beldon <beldon@scamail.com>

[Apologies to Sam Cooke (and Art

Garfunkel)]

1. Don’t know much about TCP Even less ICMP Don’t know how to make a subnet

class Even script kiddies would kick my

ass But if an OS that can be bought Will install securely by default What a wonderful thing that

would be

2. Don’t know much about LAND

attack Don’t know how to spoof an IP

stack Don’t know much about the port

I’m on Can’t decide to leave a daemon on If I install OpenBSD And it does most of my work for

me What a wonderful thing that will

be

3. Now I don’t claim to be a sys

admin But now broadband’s in my town And I have to put something

between me And the people who know how to

bring me down

4. Don’t know much about DDoS And my shell programming is a

mess Don’t know how to build a

firewall

Got Them Dot Zero Blues  4

Don’t know much about nothin’

at all But if I can shield my root

account Without emptying my bank

account What a wonderful thing that

would be.

Misc

19 — The webdesigner song

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox W&M: Chicken song Grant Naylor

1. Its the time of year, now that

.coms are in the air When those new web gifts, have

become internet aware Make another link for moronic

web displays That nauseate-ate-ate in a million

different ways

2. From the depth of spain to the

southern coast of france No matter where you hide, you

just can’t escape our spams

Ch: Rack a compaq in mid-air, stick a

penguin on your nodes Buy from microsoft and then

debug all their code Make your old code free then

upload your latest tree Write the web content and install

your asp

3. Soon your sites alive, learn to

stream realvideo Climb over a mac, and encode in

indeo Eat a new cookie while your

business disappears Redesign your plan, drink lots

and lots of beers 4. The web page is vibrating, the colour is loud and grating Its truely nauseating, lets use that

blink again

Ch: Rack a compaq in mid-air, stick a penguin on your nodes Buy from microsoft and then debug all their code And there’s no escape, in the news or in the star You would see this site if you holidayed on mars

5. Soon your sites alive, learn to stream realvideo

Climb over a mac, and encode in

indeo Now you’ve done it once, you brain will spring a leak And through you hate your site, you’ll be tweaking it for weeks

Ch: Rack a compaq in mid-air, stick a penguin on your nodes Buy from microsoft and then debug all their code Make your old code free then upload your latest tree Write the web content and install

your php

20 — Got Them Dot Zero Blues

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: by WillSeattle / Will in Seattle (at work)

1. Woke up this morning Crawled out of bed Couldn’t wait to get that Red Hat distro you said

2. Told you to worry Told you to wait But no you want to mirror it from

outside the state

What a wonderful world

Ch: I got the blues Got them old dot zero blues Cause I done installed that distro And it blew up on my shoes

3. Wish I had DSL Wish I had fat pipes But on a 56K modem The download’s such a fright

4. It’s all installed now Servers up and cool But I come back three weeks later And look just like a fool

5. Got burned by Compaq Got burned by Dell Got burned by Microsoft Now I’m in Red Hat dot zero hell

6. Now don’t you worry This one’s ok It won’t drop under loads now Cause if it does we’ll make you

pay!

21 — My ogg files

\begin{matrix}c \\ ◯ \end{matrix}Alan Cox

W&M: To the tune of “My Bonnie”

1. My ogg files lie over the network My ogg files lie over T3 My ogg files lie over the network please icecast my ogg files to me

Ch: Icecast Icecast Oh icecast my ogg files to me to

me Icecast Icecast Icecast my ogg files to me

22 — What a wonderful world

\begin{matrix}c \\ ◯ \end{matrix}Unknown

W&M: Sung to “What a wonderful world” by Lous Armstrong

1. I see cheap cpus and software that’s great and my modem connects... at true 28.2 and I think to myself... ...what a wonderful world...

2. I see people on the net.. who are nice and not ”leet” and hardware that never... becomes obsolete and I think to myself... ... what a wonderful world...

3. The colours of the iMac... so pretty on my desk (these are colors that are testful not ones that are grotesque) I see routers shakin’ hands sayin’ ”who the heck are you?” but they’re really saying ”let the data flow through”

4. Blue screens of death... don’t exist to betray and I decide for myself... where I want to go today and I think to myself what a wonderful world yes. I think to my self what a wonderful world...

Berkeley California

23 — 10 Little Spammers

\begin{matrix}c \\ ◯ \end{matrix}William A. Levinson W&M: Words: William A. Levinson

1. Ten little spammers all went

online; One spammed n.a.n.a. and then

there were nine.

2. Nine little spamhauses spewed at

full rate; An ISP nuked one and then there

were eight.

3. Eight little spammers thought

they were in Heaven; Someone did a traceroute and

then there were seven.

4. Seven little spambots addresses

did pick; One picked a Netscum and then

there were six.

5. Six little spammers playing

’round a hive; Angry wasps stung one and then

there were five.

6. Five little spammers spewed some

more; Someone did an InterNIC whois,

and then there were four.

7. Four little spammers all running

free; Cloaking didn’t work and then

there were three.

8. Three little spammers, didn’t

have a clue; One spewed to Usenet and then

there were two.

9. Two little spammers, thought

they’d have some fun; Antispammers caught one and

then there was one.

10. One little spammer was firewalled

and left all alone; He could only spam himself and

then there were none.

24 — Berkeley California

\begin{matrix}c \\ ◯ \end{matrix}David Barr , Ken Hornstein, Greg Nagy W&M: Tune is “Hotel California” by the Eagles

Written by David Barr and Ken Hornstein and a little help from Greg Nagy.

This is original, written in light of the AT&T-BSDI lawsuit, and the recent trend with Sun towards System V and away from Good Ol’ BSD.

1. In a dark dim machine room Cool A/C in my hair Warm smell of silicon Rising up through the air Up ahead in the distance I saw a Solarian(tm) light My kernel grew heavy, and my

disk grew slim I had to halt(8) for the night The backup spun in the tape drive I heard a terminal bell And I was thinking to myself This could be BSD or USL Then they started a lawsuit And they showed me the way There were salesmen down the

corridor I thought I heard them say

Ch: Welcome to Berkeley California Such a lovely place Such a lovely place

(backgrounded) Such a lovely trace(1) Plenty of jobs at Berkeley

California Any time of year Any time of year (backgrounded) You can find one here You can find one here

2. Their code was definately twisted

But they’ve got the stock market trends

\underline{Unix Man}

They’ve got a lot of pretty, pretty

lawyers That they call friends How they dance in the courtroom See BSDI sweat Some sue to remember Some sue to forget So I called up Kernighan Please bring me ctime(3) He said We haven’t had that tm year

since 1969 And still those functions are

calling from far away Wake up Jobs in the middle of

the night Just to hear them say

Ch: Welcome to Berkeley California Such a lovely Place Such a lovely Place

(backgrounded) Such a lovely trace(1) They’re livin’ it up suing Berkeley

California What a nice surprise What a nice surprise

(backgrounded) Bring your alibies

3. Windows NT a dreaming Pink OS on ice And they said We are all just prisoners here Of a marketing device And in the judges’s chambers They gathered for the feast They diff(1)’d the source code

listings But they can’t kill -9 the beast Last thing I remember I was restore(8)’ing — more(1) I had to find the soft link back to

the path I was before sleep(3) said the pagedaemon We are programmed to recv(2)

You can swap out any time you

like But you can never leave(1)

[ substitute whirring of disk and tape drives for guitar solo ]

25 — Unix Man

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Tune: Nowhere Man

1. He’s a real UNIX Man Sitting in his UNIX LAN Making all his UNIX plans For nobody.

2. Knows the blocksize from du(1) Cares not where /dev/null goes to Isn’t he a bit like you And me?

3. UNIX Man, please listen(2) My lpd(8) is missin’ UNIX Man The wo-o-o-orld is at(1) your

command.

4. He’s as wise as he can be Uses lex and yacc and C UNIX Man, can you help me At

all?

5. UNIX Man, don’t worry Test with time(1), don’t hurry UNIX Man The new kernel boots, just like

you had planned.

6. He’s a real UNIX Man Sitting in his UNIX LAN Making all his UNIX plans For

nobody ... Making all his UNIX plans For

nobody.

The Day SunOS Died

26 — Eleanor Rigby

\begin{matrix}c \\ ◯ \end{matrix}Unknown

W&M: Tune: “Elinor Rigby” by The Beatles

1. Eleanor Rigby Sits at the keyboard And waits for a line on the screen Lives in a dream Waits for a signal Finding some code That will make the machine do

some more. What is it for?

Ch: All the lonely users, where do

they all come from? All the lonely users, why does it

take so long?

2. Guru MacKenzie

Typing the lines of a program

that no one will run; Isn’t it fun? Look at him working, Munching some chips as he waits

for the code to compile; It takes a while...

Ch: All the lonely users, where do

they all come from? All the lonely users, why does it

take so long?

3. Eleanor Rigby

Crashes the system and loses 6

hours of work; Feels like a jerk. Guru MacKenzie Wiping the crumbs off the keys as

he types in the code; Nothing will load.

Ch: All the lonely users, where do

they all come from? All the lonely users, why does it

take so long?

27 — The Day SunOS Died

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Words: N.R. “Norm” Lunde, with apologies to Don McLean

1. Remember when those guys out

West With their longish hair and

paisley vests Were starting up, straight out of

UCB?

2. They used those Motorola chips Which at the time were really hip And looked upon the world

through VME.

3. Their first attempt ran like a pig But is was the start of something

big; They called the next one the

Sun-2 And though they only sold a few It soon gave birth unto the new Sun-3 which was their pride And now they’re singing

Ch: “Bye, bye, SunOS 4.1.3! ATT System V has replaced BSD. You can cling to the standards of

the industry But only if you pay the right fee – Only if you pay the right fee...”

4. The hardware wasn’t all they

sold. Their Berkeley port was solid gold And interfaced with system V, no

less!

5. They implemented all the stuff That Berkeley thought would be

enough Then added RPC and NFS.

6. It was a lot of code to cram Into just four megs of RAM. The later revs were really cool With added values like SunTools But then they took us all for fools By peddling Solaris... And they were singing,

Ch: “Bye, bye, SunOS 4.1.3! ATT System V has replaced BSD. You can cling to the standards of

the industry But only if you pay the right fee – Only if you pay the right fee...”

7. They took a RISC and kindled

SPARC. The difference was like light and

dark. The Sun-4s were the fastest and

the best.

8. The user base was having fun Installing SunOS 4.1 But what was coming no one

could have guessed.

9. The installed base was sound. The software did abound. While all the hackers laughed and

played Already plans were being made To make the dubious “upgrade” To Sun’s new Solaris... And Sun was singing,

Ch: “Bye, bye, SunOS 4.1.3! ATT System V has replaced BSD. You can cling to the standards of

the industry But only if you pay the right fee – Only if you pay the right fee...”

10. The cartridge tapes were first to

go And CDROM’s a must, you know And floppy drives will soon go out

the door.

11. I tried to call and ask them why But they took away my tty and left my modem lying on the

floor.

12. While they were on a roll They moved the damned control. The Ethernet’s now twisted pair. Which no one uses anywhere. ISDN is still more rare– The bandwidth’s even less! But still they’re singing

Ch: “Bye, bye, SunOS 4.1.3! ATT System V has replaced BSD. You can cling to the standards of

the industry But only if you pay the right fee – Only if you pay the right fee...”

13. The worst of all is what they’ve

done To software that we used to run Like dbx and even /bin/cc.

14. Compilers now have license locks Wrapped up in OpenWindows

crocks We even have to pay for gcc!

15. The applications broke; /usr/local went up in smoke. The features we’ve depended on Before too long will all be gone But Sun, I’m sure, will carry on Be peddling Solaris, Forever singing,

The C Days of Y2K  6

Ch: “Bye, bye, SunOS 4.1.3! ATT System V has replaced BSD. You can cling to the standards of

the industry But only if you pay the right fee – Only if you pay the right fee...”

28 — Boot It!

\begin{matrix}c \\ ◯ \end{matrix}Richard M. Stallman

W&M: This filk uses the tune of “Beat it”.

1. When your computer doesn’t do

what you type, And half the screen is covered

with a big white stripe, The vendor won’t pay any mind

to your gripe, So boot it. Just boot it.

2. When you discover that a process

won’t die, If kill -9 won’t work there’s

nothing else to try. Your jobs are dead meat, so kiss

’em goodbye And boot it. 50 hours of work, Just boot it, boot it. And if you can’t boot it, shoot it!

3. When you reboot it, work will be

lost. It doesn’t matter what this will

cost. Just boot it. Just boot it. Just boot it. Just boot it.

4. When all the characters are

coming out weird, And won’t come back right even

when the screen is cleared. You can’t fix such things by

tugging your beard So boot it. Just boot it.

5. If your computer still is running

Windows, And every time it crashes your

frustration grows. When the system’s not free, you will always be hosed. Just boot it. Put a GNU system

on, And boot it, boot it. Or put it in your horn, and toot

it!

6. It doesn’t matter what was to

blame. Till you reboot it, your machine’s

lame. Just boot it. Just boot it. Just boot it. Just boot it.

7. It doesn’t matter what you did

wrong. Till you reboot it, your machine’s

gone. Just boot it. Just boot it. Just boot it. Just boot it.

29 — The C Days of Y2K

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: as performed at LISA 1999 / Seattle, Washington

1. On the first day of Y2K, my server said to me:

It’s January, 1970.

2. On the second day of Y2K, my server said to me:

/var is full, and it’s January, 1970.

3. On the third day of Y2K, my server said to me:

stale file handle, /var is full, and it’s January, 1970.

11  What if Dr. Seuss wrote technical manuals?

4. On the fourth day of Y2K, my

server said to me: hme is down, stale file handle,

/var is full, and it’s January, 1970.

5. On the fifth day of Y2K, my

server said to me: no route to host... hme is down,

stale file handle, /var is full, and it’s January, 1970.

6. On the sixth day of Y2K, my

server said to me: bad magic number, no route to

host... hme is down, stale file handle, /var is full, and it’s January, 1970.

7. On the seventh day of Y2K, my

server said to me: can’t open socket, bad magic

number, no route to host... hme is down, stale file handle, /var is full, and it’s January, 1970.

8. On the eighth day of Y2K, my

server said to me: panic! double panic!, can’t open

socket, bad magic number, no route to host... hme is down, stale file handle, /var is full, and it’s January, 1970.

9. On the ninth day of Y2K, my

server said to me: can’t fork process, panic! double

panic!, can’t open socket, bad magic number, no route to host... hme is down, stale file handle, /var is full, and it’s January, 1970.

10. On the A day of Y2K, my server

said to me: out of ttys, can’t fork process, panic! double panic!, can’t open socket, bad magic number, no route to host... hme is down, stale file handle, /var is full, and it’s January, 1970.

11. On the B day of Y2K, my server

said to me: enter system password, out of

ttys, can’t fork process, panic! double panic!, can’t open socket, bad magic number, no route to host... hme is down, stale file handle, /var is full, and it’s January, 1970.

12. On the C day of Y2K, my server

said to me: ok enter system password, out of

ttys, can’t fork process, panic! double panic!, can’t open socket, bad magic number, no route to host... hme is down, stale file handle, /var is full, and it’s January, 1970.

30 — What if Dr. Seuss wrote technical manuals?

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Words: Unknown

1. If a packet hit a pocket on a socket on a port,

And the bus is interrupted as a

very last resort, And the address of the memory makes your floppy disk abort,

Then the socket packet pocket has an error to report.

It is free  2

2. If your cursor finds a menu item

followed by a dash, And the double-clicking icon puts

your window in the trash, Then your situation’s hopeless, and your system’s gonna crash.

3. If the label on the cable on the

table at your house, Says the network is connected to

the button on your mouse, But your packets want to tunnel

on another protocol, That’s repeatedly rejected by the

printer down the hall.

4. If your screen is all distorted by

the side effects of gauss, so your icons in the window are a

wavy as a souse, then you may as well reboot and

go out with a bang, Cause sure as I’m the poet, the

sucker’s gonna hang.

5. If the copy of your floppy’s

getting sloppy on the disk, And the microcode instructions

cause unnecessary risk, Then you have to flash your

memory and you’ll want to RAM your ROM,

Quickly turn off the computer and be sure to tell your MOM.

31 — The GNU Imagine

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Words: Unknown

1. Imagine there’re no firms, it’s

easy if you try No Windows around us, above us

only sky Imagine all the people coding for

today, ah-ah 2. Imagine there’s no money, it isn’t

hard to do Nothing to hide or lie for, and no

copyright too Imagine all the people coding code in peace, you-oo

Ch: You may say I’m a hacker But I’m not the only one I hope someday you’ll join us And the world will code as one

3. Imagine no possessions, I wonder

if you can No lack for hardware, a brotherhood of man

Imagine all the people sharing all the sources, you-oo

Ch: You may say I’m a hacker But I’m not the only one I hope someday you’ll join us And the world will code as one

32 — It is free

\begin{matrix}c \\ ◯ \end{matrix}Unknown W&M: Music: “Let it Be”, The Beatles

1. When I find myself in front of

Windows, Father Torvalds comes to me, Speaking words of Linux, ’It is

free!’. And when hackers crack my

system through some strange NT

obscurity, he gives me the source-code, ’It is

free!’.

Ch: It is free, it is free, it is free, it is

free. Linux is the answer, and it’s free.

\underline{4 I/O}

2. When the broken systems crashes and blue screens of death I see. There is one true rescue, and it’s

free. For though there may be doubts

first it will sure bring life to your PC ’Cause Linux is the answer, and it

is free.

Ch: It is free, it is free, it is free, it is

free. You even get the source-code, it is

free.

3. In the darkest night, when

hacking, Xfree stares right back at me, Now I’ve installed Linux, I feel

free. No longer mad with my computer, No more does it crash on me Now I’ve installed Linux, it is free.

Ch: It is free, it is free, it is free, it is

free. Open-sourced true power, it is

free.

33 — I/O

\begin{matrix}c \\ ◯ \end{matrix}Unknown

W&M: Music: “Hi Ho” by the seven dwarves

1. I/O, I/O, We watch the data flow, We never know where it will go, I/O, I/O, I/O,

2. ... To IBM we go.

Command reject and then recheck, ...

3. ... This teletype’s too slow. If you need more speed, get a

CRT ...

4. ... it’s fun to hack, you know. It’s nice to be, under DDT ...

5. ... It’s off the bus we go.

No better place than an interface ...

6. ... To hack the VAX we go.

We’ll first dump core, and then run more ...

7. ... To hack the VAX we go.

We use EMACS, since we’re true hacks ...

8. ... To hack the VAX we go. We run cc, Then adb ...

9. .. To hack the VAX we go.

We eat our lunch, ss programs munch ..

10. .. To hack the VAX we go. Programs we try, then run vi ..

11. ... To hack the VAX we go. Lets adb UUCP ...

12. ... To hack the VAX we go.

We’ll patch the stack, and then jump back ...

13. ... To hack the VAX we go. We’ll have a Coke, and trap

alloc() ...

14. ... To hack the VAX we go. We’ll user-load new microcode ...

Nodepekerlistevisa for Pascal

15. ... To hack the VAX we go.

This code’s a kludge, its much too huge ...

16. ... To hack the VAX we go.

Kill peon’s procs, they’re eating ops ...

17. ... To hack the VAX we go. I/O, I/O!

34 — Not a boolean

\begin{matrix}c \\ ◯ \end{matrix}Unknown

W&M: Music: “Blowing in the wind”

1. How many code must a man type

in Before you can call him a man? How many C must a compiler

process Before it can sleep in the RAM? How many times must MS-DOS

crash Before it is forever banned?

Ch: The answer, my friend is not a boolean The answer is not a boolean

2. How many times must a man read

his source Before he can see what is wrong? How many memory must his

system have Before he can use ’unsigned long’? How many errors will it take till

he knows That there’s still some work to be

done?

chorus 3. How many years can a program

exist Before it’s erased from drive C:\ ? How many years must known

bugs exist Before you get an update for free? How many times can a drive move

its head And pretend there’s no data to

read?

chorus

35 — Nodepekerlistevisa for Pascal

\begin{matrix}c \\ ◯ \end{matrix}Geir Sporaland

W&M: Words: Geir Sporaland, Music: “Pepperkakebakevisa” av Torbjørn Egner

1. Når en listepekernode peker bort, så peker hodet på en port som peker videre hvis

lærer’n får det til. Og mens snørr og tårer renner og lærer’n skjærer tenner tar han frem en neve pekere og

sender dem til Nil. [Nil er det samme som ingenting] [Lærer: Ja, jeg veit det!]

2. Og mens pekerne blir flere, og vi strever mer og mere, og q∧.neste∧.forrige∧.neste∧.node

hopper over p tryller lærer’n frem en node med et firedobbelt hode [et

firedobbelt hode?] og så rører han alt sammen ned i

roten på et tre. [Et tre er det samme som en

binær liste] [Lærer: Jøss, det visste jeg ikke!]

Addicted To vi

3. Og med listehodets neste er det første vi må teste om den største postens

nodepekerliste er blitt full. Men så skjærer seg det meste, det kan hende selv den beste, at maskinen løper løpsk og hele

greia blir no’ tull. [Og lærer’n er et null]

4. Peker k og peker l forsvinner begge med et smell idet vår datalærer kaster dem i

gulvet med et brak. Og da gjenstår kun en listepeker∧.nodepeker∧.siste, og den stabler vi omhyggelig på

toppen av en stakk. [En stakk er det samme som en

stabel.] [Lærer: Ja, en stabel tallerkner

pleier nå jeg si]

36 — Addicted To vi

\begin{matrix}c \\ ◯ \end{matrix}Tune: Unknown, with apologies to Robert Palmer W&M: Unknown

1. You press the keys with no effect, Your mode is not correct. The screen blurs, your fingers

shake; You forgot to press escape. Can’t insert, can’t delete, Cursor keys won’t repeat. You try to quit, but can’t leave, An extra “bang” is all you need.

Ch: You think it’s neat to type an “a”

or an “i”– Oh yeah? You won’t look at emacs, no

you’d just rather die You know you’re gonna have to

face it; You’re addicted to vi!

2. You edit files one at a time; That doesn’t seem too out of line? You don’t think of keys to bind– A meta key would blow your

mind. H, J, K, L? You’re not annoyed? Expressions must be a Joy! Just press “f”, or is it “t”? Maybe “n”, or just “g”?

Ch: Oh–You think it’s neat to type an

“a” or an “i”– Oh yeah? You won’t look at emacs, no

you’d just rather die You know you’re gonna have to

face it; You’re addicted to vi! Might as well face it, You’re addicted to vi!

Addicted To vi  Ch:

3. You press the keys without effect, Your life is now a wreck. What a waste! Such a shame! And all you have is vi to blame.

Ch: Oh–You think it’s neat to type an

“a” or an “i”– Oh yeah? You won’t look at emacs, no

you’d just rather die You know you’re gonna have to

face it; You’re addicted to vi! Might as well face it, You’re addicted to vi!

Ch:  Addicted To vi

Email addresses

David Barr  <barr@pop.psu.edu>
Alan Cox  <alan.cox@linux.org>
Ken Hornstein  <kenh@physci.psu.edu>
William A. Levinson  <wlevinso@ix.NOSPAMnetcom.com>
Morten A . Middelthon <morten@freenix.no>
Greg Nagy  <nagy@cs.psu.edu>
Lill Berg Nordheim  <news@littlemy.net>
Richard M. Stallman  <rms@gnu.org>
Stein Vraale  <stein@terminator.net>
Jørgen Wahlberg  <jw@anakon.no>
Mari Wang  <mariw@acm.org>
Ole Aamot  <oka@student.matnat.uio.no>