The Love Song of J. Random Hacker --------------------------------- (by Tom Roeder with apologies to T.S. Eliot) Let us go then, you and I While the network is spread out across the sky, like the ether fantasized by physics; Let us go, through certain half-deserted ports, The answering sockets Of high-load days on one-seg cheap machines And feeping mainframes all with tc-shells: Jobs that follow like a tedious argument Of too hidden intent To run for you an overwhelming function... Oh do not ask, 'What is it?' Let us go and make our visit. In the shell the users come and go grepping for Michelangelo The trojan code that forks itself upon the mainframes The yellow job that forks its children on the mainframes, Flicked its script into the edges of the server, Lingered upon the tabs that wait for cron, Let fall upon its back the weight that falls from nohup, Slipped by the gateway, made a sudden leap, And seeing that it was a February night, Curled once about the cache, and fell asleep. And indeed there will be time For the yellow job that slides along the paths Rubbing its back on the mainframes; There will be time, there will be time To prepare a wall to block the users that you must; There will be time to murder and create, And time for all the works and days of hands That fork and join a process on your screen; Time for you and time for me, And time yet for a hundred milliseconds, And for a hundred visions and revisions, Before the taking of toast and tea. In the shell the users come and go grepping for Michelangelo. And indeed there will be time To wonder 'Do I well?' and, 'Do I well?' Time to turn back and exit the shell, With an empty spot in my password DB - (They will say: 'How his style is wearing down!') My morning cron, my fstab mounting firmly all the drives, My motd rich and modest, with /etc always filling in - (They will say: 'But how his files and structs are thin!') Do I dare Disturb the universe? In a second there is time For decisions and revisions which a second will reverse For I have known them all already, known them all - Have known the evenings, midnights, afternoons, I have measured out my life with quota calls; I know processes dying with a dying fall Under the hand of the user root. So how should I presume? And I have known the rules already, known them all - The rules that trap you in a formulated phrase, And when I am formulated, spanning /usr/bin, When I am pinned and wriggling by the -Wall, The how should I begin To spit out all the butt-ends of my days and ways? And how should I presume? And I have known the LANs already, known them all - LANs that are localish and light and bare (But in the lab light, writing LALR!) Is it, thrashing from a mess that makes me so digress? LANs that swap out a table, or exec a call And should I presume? And how should I \begin{} ? . . . . . Shall I say, I have gone at dusk through far-off routes And fetched the files that rise like smoke From the pipes of lonely routers, leaning out of Windows? ... I should have been a pair of ragged calls Scuttling along the floors of quiet LANs. . . . . . And the afternoon, the evening, sleeps so peacefully! Smoothed by long finger(1)s Asleep...tired...or it malingers, Spread out so far, but here with you and me. Should I, after vi, emacs, and cc, Have the strength to force the moment to its crisis? But though I have grepped and tested, grepped and made, Though I have seen my node (grown slightly bald) brought in much fatter I am no User, and here is no great matter; I have seen the greatest of my servers flicker, And I have seen the eternal Sysop hold my call, and snicker, And in short, I was afraid. And it would have been worth it, after all, After the CUPs, the JLEXers, the C, Among the lexers, among some talk of parsing trees, would it have been worthwhile, To have bitten off the latter with a smile, To have squeezed the LR(1) into a ball To roll it towards some overwhelming function, To say: "I Am Bubble Sort, come from the dead, Come back to swap you out, I shall swap you out" - If one, settling a parser by her head, Should say: "That is not what I meant at all. That's not it at all." And would it have been worth it, after all, Would it have been worthwhile, After the ST and the Java and the Emerald code, After the ML, after the C++, after the Scheme that trickles into the course - And this, and so much more? _ It is impossible to say just what I mean! But as if a magic lantern threw the waves in patterns on the screen: Would it have been worthwhile If one, calling up a parser or writing up the all, And starting up X-Windows, should say: "That is not it at all, That is not what I meant at all." . . . . . No! I am not a Turing, nor was meant to be; Am an erstwhile hack, one that will seek to kill a process, break login next week, advise emacs; no doubt, no vi fool, Differential, glad to be of use impatient, lazy, and full of hubris Sick of most syntax, but not of ruse; At times, indeed, almost ridiculous Almost, at times, the Fool A low load...A high load... I shall fight the latter with my emacs code. Shall I prep for all my tests? Do I dare to make a speech? I shall wear strange-coloured T-shirts, and find some food to leech. I have heard the modems singing, each to each. I do not think that they will sing to me. I have seen them running who(1) after the raves Combing the file system for long lost pals When the load slows the finger(1) to a crawl. We have lingered on the couches of the lab By textbooks marked with pencils red and brown Till human voices wake us and we drown.