When Mark comes over he finds me lying on the floor, hopelessly drunk. My flatmates have given up on me and gone to watch Friends in the kitchen. But Mark stands over me in his torn combats and his GNU/Linux shirt and asks "What are you doing down there?"

"Go away," I groan.

"No, I won't. What are you doing down there?"

"I've got a project due in tomorrow," I wail. "It won't even compile. I'm a rubbish programmer. I'm going to fail."

Oh, crap. I've caught his interest. I should have known better than to mention programming to Mark. He's in his final year in Computer Science; I'm a lowly first-year who barely knows what a variable is yet. He's doing his final project and he's absolutely obsessed with it. He squats down beside me. "What sort of program is it?"

"I have to design a booking system for a cinema," I mutter. "It's really hard." Mark, damn him, bursts out laughing. "I did that in first year, too," he says. "It's not hard at all. Hey, I'm behind on my project, too. I'm on my way to pull an all-nighter in the labs. Why don't you come along? I'll help you sort it out."

"Now? It's eleven o'clock."

"Yeah, why not? It's due in tomorrow, isn't it?"

There it is. Mark is a problem-solver, and now he won't be satisfied until he solves me. I tell him he's mad, roll over with my face in a cushion and beg him to leave me in peace. But part of me is thinking how good it would be to actually pass this course, and Mark smells it out unerringly and exploits it until I find myself in the kitchen having two mugs of very strong coffee poured into me. Then, suddenly, we're walking towards college through a chilly night. The air and the coffee are sobering me up. What am I doing?

Mark stops at the petrol station. "We need munchies. It's going to be a long haul." Meekly, I follow him round as he buys three large bottles of Coke, some guarana energy bars, a packet of almond fingers and a marble cake. He swipes his way into the Computer Science building with his special final-year all-privileges ID card. I've never been in here at this time of night. Our footsteps echo in the vaulted entrance hall. Noticeboards and rickety society stands recede into the dark. I feel a weird surge of excitement: this is like that bit that recurs in so many children's books, where the hero hides in some forbidden place and then comes out to carry out the Plan when everyone else has gone home. "It's an adventure," I say to Mark. He raises his eyebrows at me, then smiles.

Swiping again, he brings me into the fourth-year labs. Around the walls the machines sit and doze, their lights blinking sleepily, a low snoring hum rising from their boxes. Mark jiggles the mice of two of them, side by side, to wake them up. "Right, show me what you've got," he says. With a feeling of dread I take out my floppy disk. He will probably laugh at it and say there's no chance, not even in the eight or so hours I have left. But once it's loaded up he scratches his head, hmms like a mechanic or a dentist, then takes out his pad. I watch his hand move as he swiftly draws a Java class diagram, explaining in rapid-fire jargon. If I put this bit here... and separated this bit into a different class file... perhaps...

"You see?" he asks.

"I, I think so."

Mark pours Coke into two paper cups. "Well, off you go, then."


An hour later, I shut my eyes, bite my lip and press Compile. There's an agonisingly long moment while I wait for the petulant beep that the computer makes when it can't work out what I'm going on about. No beep. I open my eyes in disbelief. It works. At least, this small part works.

"Have a look at this," I tell Mark, who is writing an insanely complicated algorithm which will allow his program to learn from its own mistakes. "It's a system for checking whether a seat's available or not." He looks over my code, nods and grins. "Good stuff. But how does it pass values to the rest of the program?"

"How does it pass what?"

Mark sighs, but I can see he's enjoying himself really. "Let me explain."


2.30 am. I've eaten one of the energy bars, but I'm still stuck up against a brick wall. I tell Mark so and he says, "Me, too. Let's go for a walk."

Out in the main hall, he wanders over to the glow of the Coke machine and peers at the coin slot. I catch him up. "The one thing we don't need is more Coke," I say.

"No, look. The coin slot's all jammed up with money. I'm just wondering – "

I peer at the slot. Inside, lit by the machine's internal light, coins sit cramped and jumbled. "If you could just grab one of the coins, it might free things up," I think aloud. Then I glance at the coffee machine, and the little cup of plastic forks beside it, and I have an idea. The noticeboard furnishes me with a lump of Blu-Tack from behind a poster for the College Ball 1997. I put it on the end of the fork and wriggle it into the slot. A moment later I come out with a fifty-pence piece. Mark laughs, obviously impressed. I go in for another one. Steady now. Out it comes. Now Mark wants a go. It's like a game of Operation. Two pounds fifty later, we've unblocked the machine. We stand back, looking at our handiwork with satisfaction.

"We fixed it," I say proudly.

"Good feeling, isn't it?"

And then it's back to the labs and back to work.


3.15 am. My brain feels punch-drunk from caffeine and my program keeps booking infinite numbers of people into one seat. I picture a swaying tower of them, sitting on each other's laps, trying in vain to watch the film. Mark leans back in his chair and rubs his eyes.

"Hey, look at this," he says. Switching windows, he presses a Play symbol. Music bursts from the computer's speakers, a frantic dance beat, and images appear on the screen, a music video, perfectly clear and smooth as if it's on a TV. "It's that Aphex Twin track I was telling you about, with the mad children. Watch this, their faces go all weird."

"How do you do that?" I gape at him. My modem would take weeks to download something like this, and even if it came down it wouldn't play on my Pentium 133. "College bandwidth. There's a ten-meg line in here. College server space," he says. "But this sort of thing's going to be standard in a few years."

The music fills the room, bouncing off the peeling paint of the walls. I feel trippy, giddy, and I laugh for no reason. Time has become an uncertain proposition. Perhaps the clocks are lying and this room, the two of us, have sidled briefly into the future.


4 am. I can't do this any more. "I can't do this any more," I tell Mark, who has been staring at his screen without typing anything for the last fifteen minutes. I keep phasing in and out: my eyes blur, sound damps down to a distant hiss, language stops making sense. Within seconds, I know, my head will be on my keyboard, typing a gigabyte of the letter 'k'.

"I know. I'm banana lampshade too," Mark says. I shake my head and blink hard three times. "What? Sorry."

"I'm fading out, too. It's always like this. It hits about half past three or four. But you get a second wind."

"I'm going to take a catnap," I say.

"No. You can't. It's fatal. You've got to keep going. You're about to break through. Just the master class file to write now, the one that controls everything, and you'll be done." I have to guess at his last words as a huge yawn turns them into a string of vowels.

"How are you doing?"

"Not so great. This method keeps throwing exceptions and I can't figure out why."

I look back at the screen, feeling a spike of despair. My head is filled with treacle. This is madness. I'm not a programmer. I should be at home in bed. Then – wait a minute! I think I see why I've got this infinite pile of people. There's a problem with one of my regular expressions. It's trying to divide by zero. An electric shock goes through my brain, the thrill of discovery, and suddenly I'm awake again.

"There's an energy bar left," I say, holding it out to Mark. "And have some more Coke."


5 am. Everything's very cold and very clear, as if my head is filled with ice water; the treacle is a distant memory. Mark's downloaded some rare Björk tracks. Her haunting, alien voice spirals out into the room. We are floating.

Mark shouts, "Yes!" and pumps his fist in the air. I let out a squeak of shock: neither of us has made a sound for half an hour. "I've got it!" he explains. "At last, I've got it!" His face, all agog, looks very young. Suddenly he hugs me. Surprised, I hug back. He pulls away. "Sorry. I've just been stuck on this bit for weeks," he says. Slightly breathless, I say, "Great. Well done. I just wish I could get my Customer class and my Seat class to talk to each other properly." I feel I have to fill any potential silence. Mark leans over towards me. "May I?" He scrolls up and down, his arm brushing across mine as he works the mouse. "Your Customer variable's got a different name in this bit of the program," he says absently.

"Oh," I say, blushing. "So it has." I change it and hit Compile again. I'm more confident now that there won't be a beep. There is no beep.

The quality of the light has begun to change. The bulb in the ceiling now looks wan and weak. My hands are very cold. Outside the window the sky is a sort of lilac.

"You know why I started this course?" I tell Mark. "Why I wanted to learn to program?" It feels like that time of night when random philosophising is appropriate.

"No. Why?" He looks at me with a softened, sleepy gaze.

"Well, it's like magic, isn't it? It's words that make things happen. A language that changes the world."

Now he smiles at me. "Yes. I suppose it is."


6.30 am. I push my chair back. "I've done it," I say quietly. "It all works. Look." I book Mark in for an 8pm showing of Titanic. "Enjoy the show, have a nice day," I tell him. "I should warn you, though – it sinks in the end."

"I'm done for now, too. You know what this means?" I shake my head. "Let's break out the cake."

So we sit cross-legged on a big table in front of the tall Georgian windows, watching the light grow on the rooftops of Dublin, demolishing the marble cake and drinking the last of the Coke, like kids having a secret feast in a boarding-school story. I can't stop smiling. I've got it now. I can do it. It's all up from here.

He raises his cup. "A toast to a good night's work." I touch my paper cup to his and drink it back. Outside the birds are singing in College Park. I look at him, pink light hitting his face, and my heart thumps. For a moment I wonder if I'm falling in love with him, then I wonder if it's more that we're both united in love of the heady future that lies before us.

"I was thinking," Mark says, and hesitates. "I wonder if you'd like me to book you – us – some cinema tickets. Real ones. I can't help but feel I should return the favour."

I look at him in surprise, then see how anxiously he's waiting, and laugh and say, "Sure. I'd like that."

And I take his hand in mine, and we both gaze out the window, each looking in the same direction, into the dawn sky as the sun comes up in fire.

D.R.