
Ask HN: Oldest code you have written that is still in use? - _mc
Software quickly gets outdated and re-written all the time. Sometimes the whole product is shutdown. I was just curious about products&#x2F;modules that you had coded that has stood the test of time!
======
byuu
There's an entire community of video game hackers (smwcentral.net) using a
cross-assembler I wrote in 2001 named xkas. I added a few minor patches and by
early 2004 I had released the final version, v06.

I never really intended for anyone to use it seriously. I made it for myself,
but went ahead and posted it online anyway. It is a 1500-line single-file,
nearly-commentless, nearly-spaceless abomination of code with no
documentation, and an endless list of critical bugs that every user keeps
encountering. They have elaborate workarounds for many of these bugs.

It became a negative feedback loop: "Why do we use xkas? Because everything
else is written in xkas", and so now even more code was created and written in
xkas. And so even though I've since written a proper assembler that's dozens
of times nicer, no one can/will use it.

Lately, people have been writing their own versions (in addition to countless
forks) that try to offer backward compatibility with all the crazy parsing
errors and (mis)features of xkas, like left-to-right evaluation of math
expressions, and the most convoluted macro evaluation system you've ever seen
(one user proved it was Turing complete and wrote a Brainfuck parser in it.)

It's surreal. I feel terrible that so many people are stuck with this mess,
but even _I_ can't stop it anymore :/

~~~
Rainymood
>(one user proved it was Turing complete and wrote a Brainfuck parser in it.)

Okay. That is hilarious.

~~~
byuu
I couldn't find said example (sorry), but I did find one of his other examples
of abusing the assembler:

[http://bin.smwcentral.net/u/1686/boredom.asm](http://bin.smwcentral.net/u/1686/boredom.asm)

You won't believe me unless you try it for yourself, but ... download xkas v06
here:

[http://www.romhacking.net/utilities/269/](http://www.romhacking.net/utilities/269/)

Then download the above boredom.asm. And now run the following on the command-
line:

    
    
        touch boredom.sfc
        xkas boredom.asm boredom.sfc
    

Note again that this is a cross-assembler to produce code for the Super
Nintendo. Yet you will be greeted by a fully-playable game of Snake in the
terminal window. No, I am not kidding. (The black hats here can probably guess
what's going on.) For those who won't/can't try it out:
[http://i.imgur.com/LTSAHw1.png](http://i.imgur.com/LTSAHw1.png)

~~~
ReedJessen
I'm not a black hat, what is going on?

~~~
byuu
It's a native code execution exploit.

He exploits the parser to corrupt the stack frame, and executes raw x86
instructions embedded in that file.

How _exactly_ it converts that pile of gibberish into a valid x86 program is
beyond even my comprehension.

Alcaro's always been a wizard at stuff like this. Here's an example of an SNES
ROM image he crafted to execute native x86 code from inside ZSNES:
[https://www.youtube.com/watch?v=Q3SOYneC7mU](https://www.youtube.com/watch?v=Q3SOYneC7mU)
(Yes, you can potentially get a real PC virus from loading up an SNES ROM in
ZSNES. Or a specially crafted source code file in xkas v06.)

------
anotherevan
I am the original author of LatexMk[1], a Perl script that runs Latex the
correct number of times to ensure all cross-references and such were resolved.
It can also run continuously with a previewer and several other goodies.

I wrote it around 1993 to scratch my own itch, adapting it from a little
script called “Go” by David J. Musliner. At the time I was using a literate
programming tool that generated Latex from C code. When I moved on from that
job a couple of years later, I released a final version two, which documented
that I was no longer planning to maintain it. Since then John Collins took up
the cause and been doing a wonderful job from what I can tell from occasional
ego searches through google and stackexchange.

Two amusing things: 1) It is the only piece of Perl code I have written, ever,
and 2) I had reason to use Latex a few years later, and decided I really
dislike the sheer complexity of it all. Despite that, it is surely the most
enduring and widely used piece of code that I can claim credit to having a
hand in.

[1]
[https://www.ctan.org/pkg/latexmk/?lang=en](https://www.ctan.org/pkg/latexmk/?lang=en)

~~~
michaf
I used latexmk to streamline the generation of my PhD thesis. I must have run
your script literally hundreds of times. So, thank you!

------
haberman
MP3 importing code for the Audacity audio editor. I wrote this in 2002.
[https://github.com/audacity/audacity/blob/master/src/import/...](https://github.com/audacity/audacity/blob/master/src/import/ImportMP3.cpp)

Amusingly, a TODO I put is still there:

    
    
       /* TODO: get rid of this by adding fixed-point support to SampleFormat.
        * For now, we allocate temporary float buffers to convert the fixed
        * point samples into something we can feed to the WaveTrack.  Allocating
        * big blocks of data like this isn't a great idea, but it's temporary.
        */
    

"temporary" indeed. :)

~~~
nickpsecurity
A great example of why we tell people to forget using a substandard approach
and language for "quick and dirty code that will probably get thrown away." A
lot of long-lasting code started out exactly that way. ;)

~~~
dagss
You neglect something I think is very important: You do not normally know up
front what code will live and not.

If you carefully (over-)engineer everything you will perhaps not get time to
write all those short-lived failures that preceded that long-lasting success.

Of course I wish that piece of code that I hacked 3 years ago and never got
around to refactor was better done the first time! But that kind of thinking
ignores the fact that if my mentality had been "perfect up front" then what I
would have spent all my time perfecting was the _previous_ piece of code, the
one I have long since deleted. I never would have gotten around to writing the
hacky code I kept.

~~~
nickpsecurity
"You neglect something I think is very important: You do not normally know up
front what code will live and not."

It's actually mentioned in my post and the whole point.

"If you carefully (over-)engineer everything you will perhaps not get time"

This is true. You can spend vast amounts of over-engineering instead of
hacking something together that's "perfect up front." This is a false dilemma,
though, as simply taking a little more time to think about or improve some
code can work wonders. Better instead of perfect. You will still output less
code but you'll have more useful and correct code.

~~~
dagss
I was answering to "using a substandard approach and language" \-- if that is
an option that's on the table I am assuming the time savings would be
substantial (order of 50%). I do of course agree that one should often "Taking
a little more time to think about or improve some code".

It seems like you almost say that it is better to be good at coding than bad
at coding. Which I think nobody will ever disagree with. What I was talking
about was assuming senior coders, knowing what they are doing, who think about
actively choosing a shortcut.

I don't think it's a strict dichotomy, but I think there is a scale. For every
project you can choose how well to do the job, and compare it to the
importance the task seem to have and the budget it ought to have in developer
time spent on it; then find relevant short-cut which does not dig you too much
deeper in the hole. I usually try to figure out "how would I refactor this
later to clean it up", make sure it can be done without too much pain, then if
I can see the path clearly it's OK to take the shortcut if needed.

------
buro9
I have the horrific horror (honour?) of knowing that a lot of my code is still
live.

The oldest is the internal system for a record label written in 1997 and I
still occasionally get emails asking how such and such works (and I have
little idea, it was in PERL).

Through to code that processes video and audio snippets for most of the UK
Football League premium content sites. Authored in 2000 (mostly VBScripts that
slice, encode, and distribute media files and the metadata).

Parts of btinternet.com still appear to use my horrible CMS... written in
1999... though gladly it's now very few parts and I suspect these are just
cached outputs rather than the CMS still being in production.

Most worryingly would be the UK Home Office, and most UK banks and some heavy
manufacturing companies that I wrote project management reporting software for
over a decade ago, and as they manage 20 year projects I believe that stuff
has at least another decade in production. At least all of these systems are
not internet connected (then again, they'll never be updated either).

My code isn't terrible clever or pretty, those requirements got dropped a long
time ago. But I have learned to make code that is simple to read, easy to
maintain and tweak, and that can sprintf debug with the best of them (debug
tools of choice have come and gone in the time my code has been live).

------
fu86
I wrote a hacky bash script back in 2000 to manage HalfLife dedicated servers
(start, stop, edit basic config stuff) for a friend. This script (I initially
called "hl.sh") is later renamed into "hl-monster.sh", and finally to "hl-
monster-extended.sh" with ~15000 LOC, supporting 120+ different Games and is
running on ~2000 really big servers around the world. This script is the core
of a big international company now. I joined this company 3 years ago and
since then, we try to replace this script, but it is so deeply merged into all
systems.

What have I done?

~~~
Toenex
15000 LOC in bash. You sick bastard.

~~~
fu86
I am only guilty for the first 100 LOC, the rest is not my fault :)

~~~
penetrarthur
We had a guy who wrote the other 14900 loc in a similar situation and made the
whole thing really crappy. He used to say we cannot blame him because he
inherited the crappy 100 loc in the first place.

~~~
kasparsklavins
After a few hundred new lines ones would think a rewrite might have been more
appropriate.

~~~
panzi
There is no single point in time where a rewrite is "more appropriate" than
adding this one line of code. At least not when you have a deadline.

------
feelix
I wrote a data recovery POSIX compliant command line app in C in 2003 that
runs under OS X, Windows, and linux. It's still selling well, and has been all
these years. Over time it's generated millions in revenue as it's been used by
several different competing apps, and I have only recompiled it about twice in
the last 15 years, each time only making a (very) minor change. It went a good
decade without a recompile and continued selling well and being widely used.

The reason I'm happy to say this publicly is because

a) it took years to write, full time. Data recovery is a hell of a lot more
complex then I'd ever imagined.

b) data recovery is no longer possible on SSD's (if they have TRIM enabled, as
they do in all major OS's) so it's a declining market. Anyone would be nuts to
be trying to enter it at this point.

~~~
mistermann
This is great, I hope you retained 100% rights and are the one raking in that
$?

Considering the rise of SSD's, what's your prediction of how quickly your
revenue will decline?

~~~
feelix
I did retain all the rights, but other companies published it under their
branding. I ended up getting somewhere between 20-30% all up. I'm not rich, I
still have to work for a living. They burnt through all the revenue. The main
company that was publishing it moved to San Francisco, hired offices and
staff, and burnt through all the capital almost instantly. I just banked mine
and used it for travel (for a decade).

------
user_rob
I designed some of the electronics and wrote some firmware code for the Bell
AH-1S Cobra in 1978 1979. The system is still flying as I see the external
parts of the system in news clips. Does that count? Beat that!

Mean looking image of a parked up one - the red bag covers part of the system:
[http://www.vaq136.com/misawa/cobra73418-017b.jpg](http://www.vaq136.com/misawa/cobra73418-017b.jpg)

~~~
pc86
That's pretty neat. Were you working for a defense contractor at the time?

~~~
user_rob
Yup a big one in the UK

------
fdavison
Late 70's. I wrote the operating system for the Control Pak EM system sold as
the Barber Colman Network Supervisor building automation system. Thousands of
systems were installed and many are still in use. By cracky. Er, what was the
question again?

[http://www.controlpak.com/network.htm](http://www.controlpak.com/network.htm)

~~~
zippergz
That link doesn't work for me. I'd love to read more about this system. Are
there any other links you know of?

~~~
fdavison
I left the company in '87 and lost contact with them years ago. The system was
8085 based, ran a preemptive RTOS written in PL/M and assembler derived from
RMX-86. The network was optically isolated RS-485 9600 baud. It was configured
using Template Block programming, where the blocks acted like little HP RPN
calculators that were linked together to build a control sequence. Its primary
distinction was its ability to do user generated "direct digital control
logic". The OS fit in 32k.

Barber Colman OEM'd the main logic board from Control Pak and put them in
their own box.

Barber Colman's QC engineers were hard core SOB's and they put that system
through the wringer, trying to break it in a million ways. They had a special
smile when they had found another bug or a screw terminal they could zap with
a spark generator and lock the system up. They were unhappy when they could
not break it anymore. That's why there are still some Supervisors running
today. They are tough as nails. I owe those guys a lot.

~~~
domlebo70
Very interesting, thank you. What do you do now?

~~~
fdavison
I do software consulting in building automation and control systems, but
mostly I build a mouth operated game controller for quadriplegics called the
quadstick. That has been the most fun thing I've ever done.

------
ewindisch
In 1999, I created the r_waterripple variable in Quakeforge which has
propagated to most subsequent Quake ports. The implementation may or may not
vary, but all projects seem to have carried the variable name. I also
contributed pk3 unpacking and resurrected the Solaris port, either of which
may have code circulating.

Also between 1999 and 2001, I was involved in the LiViD project where I worked
on a port to PowerPC. I don't recall any patches actually landing into LiViD
because it turned out that the bug was in GCC itself, a bug I was told must
have existed since the mid-eighties. I didn't directly write the GCC patch,
but did debug the compiler error and worked with the GCC team on the fix. This
directly resulted in a port of Xine to PowerPC. (LiViD and Xine are early
projects for multimedia and DVD playback on Linux) Xine exists today, but it's
unlikely any of my code is in it. While the GCC fix is not my code, the fix
itself still endures and exists because of my interaction with the project.

It's a newer example, but code I wrote simply as a demo for the Cairo graphics
project back in 2004 became integrated into Tuxpaint and is still used today
for rasterizing SVG graphics into stamps.

------
zer00eyz
I was but a teen age boy in 1992.

I built a file maker database, for a school system.

They have tried to retire it twice. Both projects failed miserably.

For the last 10 years it has been maintained by the same office admin. She
still calls me every now and again to ask questions.

~~~
btgeekboy
When I left my former employer in 2014, they were still attempting to get
their invoices off a FileMaker database and into Quicken or something of the
sort. That particular database was in service when I started 10 years prior,
running in FileMaker 3 on a Mac clone. It's been upgraded over the years, and
was running in a Windows VM when I left - but it's likely still there.

------
nostrademons
The smaller the userbase, the more likely the code is to remain in service
forever. The oldest code I've written is
[http://www3.amherst.edu/~scrutiny/about.php](http://www3.amherst.edu/~scrutiny/about.php),
which has gotten a facelift since I wrote it in 2004, but otherwise seems to
have the same functionality and code backing it.

Pretty much everything professional is gone...hell, the only employer of mine
that is still in business is Google. When I left them in 2014, about 3% of the
code I'd written for them was still in production, and following the rule
above, it's silly stuff that nobody ever sees, like
[https://www.google.com/search?q=deubogpiegpj&tbs=qdr:h](https://www.google.com/search?q=deubogpiegpj&tbs=qdr:h)
(that's the no-results page when a tool is selected).

~~~
adamconroy
Is that code?

~~~
nostrademons
The Google link? It's a nonsense query that I figured would have no results
(better read it quick, before Google indexes this page ;-)), which is the only
way (outside Google) to show off the no-results page.

------
clamprecht
ToneLoc (a war dialer), written in 1991, last version released 1994 before
going to prison:

[https://en.wikipedia.org/wiki/ToneLoc](https://en.wikipedia.org/wiki/ToneLoc)

People still have modems???

~~~
brndn
Fascinating story. Is it true that it got you banned from the Internet? That's
cruel.

~~~
clamprecht
It's true, I wasn't allowed to use the Internet (or any computer network) from
2000-2002.

------
Udo
I posit if you want to make sure your code survives you, write video game
code.

Nevertheless, my own examples are all non-games. In the early nineties I wrote
a program in Turbo Pascal to manage grades and print report cards, I heard one
elementary school in my home town was using this until 2012.

On one of my first web programming jobs, I made a cold fusion-like template
interpreter and ecommerce engine in C, that was about 1998. One completely
online-based company that we launched with this software kept on running on it
until it was sold two years ago.

In the early 2000s, my startup produced a web content management system that I
wrote most of the code for, and sometimes I still get usage questions about it
even today (to be honest, knowing that code is still used in production is not
a good feeling).

Oh, I just remembered: around that time I wrote some microcontroller code that
went into a certain brand of PA systems for TV studios, I'm pretty sure that's
still in use...

My oldest personal project is a chat place where RPG players can meet up and
roll dice, I think that launched around 2003 in some incarnation and though
it's getting updates and extensions from time to time, the core code is almost
unchanged: [https://rolz.org](https://rolz.org)

~~~
mosburger
> I posit if you want to make sure your code survives you, write video game
> code.

I dunno, firmware seems like a pretty safe bet too. I wrote seek algorithm
firmware for Quantum's Atlas series of SCSI disk drives in the late 1990s, I
suspect there are still a few of those spinning out there somewhere.

~~~
technion

        I wrote seek algorithm firmware for Quantum's Atlas series of SCSI disk drives 
    

Are you aware of anything at all like that which is opensource/published? This
sounds like something that could be fascinating to read.

~~~
mosburger
Unfortunately, no I don't. :(

Our lead servo engineer (and a lot of people in the industry) were strongly
influenced by Franklin, Powell, and Workman's book "Digital Control of Dynamic
Systems," and IIRC there's a chapter devoted to disk drive control systems in
it.

I worked a bit on the seek algorithms, but I also worked on the repeatable-
runout cancellation system, which was actually a lot cooler to work on but
less interesting to most people. It basically did Fourier Transforms to
compute "predictable" errors staying over the track caused by things like disk
shift or "potato chipping" of the disks. That error could then be injected
back into the voice-coil motor to help keep the heads in the right place.

It was all written in a very low level assembly language on a custom ASIC we
designed in-house with no floating point arithmetic. :) That was almost 20
years ago at the very beginning of my career and it's still some of the
coolest code I've ever written. :-/

------
wscott
In 1990, during a summer internship at GE, I wrote a program that scheduled
electric motor production at like 7 factories around the country. You would
download the next weeks worth of orders from their timeshare system, which
seemed ancient then. Someone had done a time-motion study of each motor model
and determined how much time each motor needed in different stations. They
wanted each day's schedule to use roughly the same amount of time in each
station.

This was after my first year of college and I really knew nothing about
algorithms. I wrote a horrific program in BASIC on a PC that did what I know
now is a greedy bin packing solution. It created a least squares metric and
tried moving and swapping orders until nothing improved the metric.

I was shocked to hear that 20 years later they were still using that same
program.

~~~
Joof
Haha. Crazy. Scheduling is a pretty well known problem; I wonder how close to
ideal you got.

------
sdfjkl
This door:
[http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryDoor](http://lslwiki.net/lslwiki/wakka.php?wakka=LibraryDoor)
(apparently I first published it there in 2004).

No, not a BBS door, but an actual door, written in Second Life's LSL (Linden
Scripting Language). You'd think making a door should be pretty simple, but as
the engine had no 3D primitive (prim) that had an axis on one of its edges,
doors were often pretty awkward workarounds, either involving linking the door
to a cylinder or worse, rotating and then moving when the door was opened or
closed.

This script when dropped into a basic cube prim shapes it into a door, applies
a texture and most importantly, cuts the prim in half so that the Z-axis ends
up on the side and it can rotate around and act like a door in only one prim
(the prim allowance was limited, so this mattered).

The script also has several workarounds for engine funkyness, including one
where it automatically moves back into position after every cycle to
counteract "drift" \- otherwise, due to accumulated floating point error, the
doors would slowly drift out of position when opened and closed many times.

I know it is still in use, because Second Life still forwards messages to my
account to email, so occasionally I get gems such as this:

> [16:04] distresseddamsel: hi there, i just purchased your wooden slave
> kennels and i can't get into it. I tried to follow your istructions on how
> to change the group, but when i edit the door, the option for group is
> greyed out.

Apparently my doors have been used in all sorts of items...

------
Tossrock
People still play the Warcraft III map I made in 2006, mostly in Russia. It
relied heavily on an extension of the scripting language called vJass created
by a genius eastern european hacker named Vexorian and was one of the most
advanced of its type for a while.

It was also ported to the DotA 2 engine, where it has millions (!) of
subscribers.

~~~
gear54rus
Come on... Say all that and not mention the name of the map? Is this
'petrosianshina', the clone of 'Vampirism Fire'?

Being russian I can only name this as something with millions of subscribers
and is not dota.

~~~
Tossrock
It was called Pudge Wars! The DotA 2 version is here:
[https://steamcommunity.com/sharedfiles/filedetails/?id=29683...](https://steamcommunity.com/sharedfiles/filedetails/?id=296831818)
where you can see its subscriber count (and my name cited as the originator)

~~~
gear54rus
Oh wow. That's one of my favorite maps too both in TFT and in dota2 :) Thank
you for your effort!

------
aaronbrethorst
Occasionally, users of a piece of $10 shareware I haven't updated since 2005
email me demanding a refund because this software they bought 10+ years ago
has stopped working on El Capitan. I refund their money because it's not even
worth my time to argue with them.

[http://www.chimpsoftware.com/irooster/](http://www.chimpsoftware.com/irooster/)

~~~
trymas
Wow, do they have any legal leverage (as in, sue you for 10$) to get their
money back in this situation?

I would just ignore them, or if point to the relevant point of license
agreement and/or law (if there is such point/law).

~~~
aaronbrethorst
Dunno. Probably not. But it's not worth the time or energy to deal with them
beyond giving them back their two lattes worth of money.

~~~
trymas
Probably not worth it to argue indeed.

Though coming from a country where $10 can get you 5 lattes :), I would not
give those money back. Nevertheless I payed taxes for that income.

It's pennies, but I have known/seen too many people who try to haggle
extensively, who need to be reminded about common sense.

~~~
aaronbrethorst
I get you, and agree on general principle, but I also have to consider what my
time is worth. I once calculated that even a single customer service
interaction cost me far more than ten dollars at my standard billing rate. If
I want to argue with implacable assholes, I'll go pitch a VC or something.

~~~
trymas
Not worth it - exactly.

> If I want to argue with implacable assholes, I'll go pitch a VC or
> something.

That's a great one. :)

------
lhl
In 2001, I wrote a tag balancer (for HTML input, it also did some rudimentary
XSS filtering) in PHP and then translated it to Cold Fusion (I was applying
for a CF job and figured it might be useful to actually learn it).

I believe that both variations are still running, the CF version on
Metafilter, and the PHP version was used in B2, which became WordPress. A few
years ago, I was asked by the WP team to relicense the code from GPLv2 to
GPLv2+ and sure enough, it lives on with relatively few modifications in
WordPress:
[https://github.com/WordPress/WordPress/blob/b1804afeaf07eb97...](https://github.com/WordPress/WordPress/blob/b1804afeaf07eb97b0384281efcee1b3ca4ce1f8/wp-
includes/formatting.php#L1772)

Perhaps most notable, is that I wrote it w/o having taken a compilers class or
having much (any) understanding of stack-based parsing, but it still lives on,
so I guess it was good enough to get the job done.

~~~
eru
> Perhaps most notable, is that I wrote it w/o having taken a compilers class
> or having much (any) understanding of stack-based parsing, but it still
> lives on, so I guess it was good enough to get the job done.

Isn't that the story of PHP itself, too?

------
Det_Jacobian
I have the luck of having written GPU code on the base pixel shader on a title
(Halo 4) that sold on the order of 10 million copies, first game I ever worked
on. A back of the envelope calculation for how many times this code has been
executed since 2012:

1e7 copies * 10 hours * 60 minutes * 60 seconds * 30fps * 1280 * 720 ~~ 300
quadrillion

~~~
slazaro
According to Wolfram Alpha [1], it's 9953280000000000000, which is 10
quintillion! :O

[1]
[https://www.wolframalpha.com/input/?i=1e7+*+10+*+60+*+60+*+3...](https://www.wolframalpha.com/input/?i=1e7+*+10+*+60+*+60+*+30+*+1280+*+720)

~~~
Det_Jacobian
Whoops, off by 30!

~~~
slazaro
According to Wolfram Alpha [1], 30! is 2.65e32

;)

[1]
[https://www.wolframalpha.com/input/?i=30](https://www.wolframalpha.com/input/?i=30)!

~~~
Det_Jacobian
Whoops, off by 29!

------
lostdiaspora
A section of macro assembler written in 1983/84 that I wrote that validated
the MICR encoding on the bottom of a cheque ran as far as I know every day
without error until at least 2007 processing 30-40% of the daily cheques in a
European country It may still be running but all the guys I knew are gone! I'm
the reason banks have technical debt. They'd track me down every 10 years or
so when a major change was required. I also have a C++ system I architected
and built in 1992 still running round the world. The codebase has been
refactored to some extent as it was originally designed for Investment Banking
but it now runs on line gambling, who'd have thought it?

~~~
brokenmachine
What is investment banking if not gambling?!

~~~
eru
But it's not online gambling. (And the taxes on it are lower.)

------
sverige
In 2008 I wrote some VBA scripts and built an Access database as part of a
dashboard used by suits at an insurance company to track sales stats. Pretty
sure it's still in use.

The suits also made a decision to open a third call center based on some
staffing and cost analysis done by me and my boss. We used two totally
different models (and argued a lot about which model was right). The director
said, "The conclusions you guys came to were within 1% of each other, so it
must be right. We're going to move ahead with the new center." That center is
still up and running.

The thing that gave me chills was that no one told me the analysis would be
used to make a $25M decision. I thought it was just skylarking and hacked it
out with some formulas in a 3-page Excel spreadsheet in about three hours.

~~~
pkroll
That's intriguing... Some obvious questions are: if you had known, would you
have spent more time or just been "more serious?" Would you have had better
answers after more time? Did the other person do the same level of rough
estimate, but with a different model?

~~~
sverige
I wouldn't have spent more time, and I was serious. I had done a lot of
similar work for a different call center in the late 90s so I knew my model
worked. I did it in Excel because I remembered the calculations but I'd
forgotten how to code in whatever it was we used back then. (Now I can't even
remember what it was we used. I think it was Lotus 1-2-3, maybe. I'm getting
old.)

The other person's model used a different approach to the problem, using
variables that I completely ignored. Turns out he had been sweating over this
problem for a couple of weeks, googling for methods and models and massaging
some complicated VBA program he'd built. (He loved VBA, go figure.)

When he got to his answer, I said, "OK, now add 10%." He exploded, "That's
what drives me nuts about this! Every paper takes you through all this
complicated math and detailed calculations, then at the end they say, 'Add
10%'! What the hell!?"

------
mb_72
From 1994-2001 I worked (in a small team) on a C++/Paradox school
administration system; it's still in use today in hundreds of public schools
in South Australia. I think they've tried to replace it via tender at least
once, but haven't found an affordable / suitable replacement.

It was quite amusing to get invoices from my daughter's (born in 1996) school
produced by this program on a format I had laid out.

There's still, AFAIK, an easter egg that displays the name of the people that
worked on it back in the day, one just needs to open the right form and
double-click in the right place.....

~~~
passivepinetree
I'd be curious to know how many of these programs/scripts/etc. have easter
eggs hidden in them. It seems like you're the only one to mention it so far.

~~~
panzi
Have you played the pinball game in Word 97? Or the flight simulator in Excel
97?

~~~
passivepinetree
Holy smokes I had no idea those existed. That's way cool; thanks for the heads
up.

------
ajuc
I was a teenager and around 1998 I wrote a Delphi program as a mother's day
gift for my mother that works as accountant in a big public institution. The
program automated counting banknotes (they still have some people that want to
receive their monthly salary in cash, and they have to count the total amount
and the number of each banknote kinds separately to catch errors). It was just
a loop with modal dialogboxes for entering each person's salary in 2 ways. The
program also generated a text-file report and allowed to print it.

I was a noob, and the code is horrible, I even used floating points (doubles)
for money :/ so there's accuracy bug that happens for big enough numbers. They
apparently still use that program (at least a few years ago they did), and
they divide the numbers before they become big enough as a workaround for the
bug (but then the reports have to be fixed by hand).

------
tootie
Just perusing all my projects big and small over the past 20 years going back
to college and they're all gone up until less than 2 years ago. Every single
one. I always say you need to treat these projects like a Tibetan sand
painting. Once it's done and perfect, just wipe the slate clean and start
over. It's the journey, not the destination.

------
laxk
1985, a printer driver for c.itoh matrix printer (assembler), still working.

p.s. I was a 10 years old boy. (:

~~~
abrookewood
You wrote a printer driver when you were 10!? Jesus ... about all I managed at
that age was lasting through a few waves of Space Invaders.

~~~
laxk
Yeap, I didn't have access to "normal game computers" like Yamaha MSX,
Spectrum, Atari, etc but I had access to IBM PC/XT(well also to IBM
System/360:). There were no toys in those days, so we(my friend and I) wrote a
lot of clones of tetrises, snakes, arkanoids, space invaders using a text
mode. The 8086 assembler was pretty easy and fun. Any program at this age it
was like a new adventure. All this was much more interesting than any of the
games.

------
dboreham
This reminds me of the Monty Python competitive nostalgia sketch "Four
Yorkshiremen", except re-done for coding:

"Compiler, we used to dream of having a compiler" "I did me coding on punched
cards w'a big rubber band around 'em" "Punched cards, you don't know y'er
born, all we 'ad when I were a lad were an abacus". "And it were a 5-channel
Baudot abacus an all."

------
rbanffy
Some municipalities in São Paulo state in Brazil are controlling their budget
using a Dataflex 2 application I helped write in 1990 and 1991. I realized
that the application still runs because of a presentation about the ongoing
effort to migrate it to Python.

Sadly, the educational applications for Apple IIs I wrote in the mid 80's are
no longer in use.

------
recurser
The web UI for the Transmission bittorrent client, around 2006-ish. I wrote it
in prototype.js and then discovered jQuery, and ended up rewriting the whole
thing.

[https://www.transmissionbt.com/](https://www.transmissionbt.com/)

~~~
AndyKelley
Oh cool! I still use your work regularly. It works well. My only complaint is
that the enter key doesn't submit the import by URL box.

------
cottonseed
I wrote the Oracle driver for the AOLserver web server in 1997. Last year I
met a guy who worked at Zipcar who said they were still using it.

~~~
nickpsecurity
It got open-sourced...

[https://en.wikipedia.org/wiki/AOLserver](https://en.wikipedia.org/wiki/AOLserver)

...with OpenACS probably being among the first, web frameworks. So, that's a
legacy that goes back to one of the first, high-traffic sites in existence.

~~~
shthed
[http://openacs.org/about/what-is-openacs](http://openacs.org/about/what-is-
openacs)

"Extremely high performance and scalable database backed websites. The
technology behind OpenACS powers some of the world's busiest web sites, such
as AOL.com, Mapquest.com, Netscape.com, and Moviefone.com."

Wow, how long ago was that written!

------
sdrothrock
I wrote an in-MUD game for a Wheel of Time-themed MUD around 2005; I stopped
in last year to see how things were going and was pleasantly surprised to see
that not only were my game and helpfile still in the MUD, but that there was
an ongoing game as I logged in. Satisfying to know that something I made over
ten years ago is still being enjoyed.

~~~
npongratz
Mind explaining the in-MUD game? Was it an adaptation of Foxes and Snakes?

~~~
sdrothrock
It was an adaptation of the Mafia/Werewolf game called The Darkfriend Hunt.
You'd have a Darkfriend, Aes Sedai, Warder, and I think a few other jobs; the
goal was for the players to find the Darkfriend(s) before the Darkfriends
killed everyone.

------
coldcode
I started a Mac app in 1988; the same code base (with tons of people touching
it since I last saw it in 1994) is still a real product for sale today. No
idea why.

~~~
gravypod
What app was it?

~~~
astrange
Adobe® Photoshop®?

~~~
zatkin
Photoshop wasn't released until 1990.

~~~
usmannk
Probably wasn't photoshop but to be fair they did say "started in 1988", not
"released in 1988".

------
xeno42
I wrote a fax->email gateway in 2002 that's still in very active use..
wouldn't be that remarkable, except most of the servers are still running
original equipment with original hard drives!

Anyone have servers running 24x7 with hard drives older that that?

~~~
Wingman4l7
I know of a case at a company which had important servers running for so long
that they were very careful doing the final migration off of them, because
they were certain that once they brought them down, they'd have unrecoverable
disk crashes if they tried to spin them up again.

------
rys
A system information app I originally wrote for Windows 98, but subsequently
added support for NT-class Windows client, still runs and works almost
perfectly today (with graceful feature degredation) on Windows 10. I do a tiny
amount of work for every new Windows that's released, to support it. Sometimes
no work at all. The codebase was originally written in 1998.

Nobody uses it now apart from me, but I still maintain it.

~~~
avail
Would be very interested in this. Might even use it over winver/dxdiag ;)

~~~
ccrush
Me2. Release it.

------
smoyer
The embedded systems code that I wrote for an Opthalmic Ultrasound in 1989 is
still running. Once code becomes FDA approved, you don't change it.

~~~
vardump
> Once code becomes FDA approved, you don't change it.

And that's why medical software is so buggy.

------
davidwihl
SA-FileUp, one of the first ASP components, originally written by me in 1997
to receive web based uploads. Still sells enough licenses every year to put my
kids through college.

[http://fileup.softartisans.com/](http://fileup.softartisans.com/)

~~~
c17r
And a big thank you for writing this! Used this on many different projects,
including a ASP/VB6 app from 2006 that I'm still supporting in my spare time.

------
spdustin
I wrote an expansion to the original SharePoint Team Services (STS) back in
2002. I was told recently by a student that their former employer (small mom-
and-pop biz) still used STS and my software was why.

It was called the SharePoint PowerPak; it added a few features that "inspired"
built-in functionally in later versions. Was primarily written by hacking
apart the insides of STS and sending a few emails to some MS folks to get
clarification on some undocumented thing that I was interfacing with. Color-
coded calendars, categorized content in document libraries, tasks with an
"email assignee" workflow, a Windows XP theme for STS, and a few other
features. Was actually really proud of that one!

I then worked with another dev on a search add-in for STS called SharePoint
PowerSearch. It was clever in that it used the little-known "_search" target
for <a> elements that, basically, opened the link into a sidebar frame that IE
had back in the day. The mom-and-pop business had that installed too.

Those tools, along with a community site I ran, blossomed into the SharePoint
training and consulting company I own today.

So that's two 14-year old products still in use at a small business in the
Philadelphia area. Made me smile to hear about it.

------
ssijak
My "personal" website that I made when I was a kid at 2001. I think that I
uploaded it to the Geocities free hosting and soon forgot about it. Then a few
years back when I googled my name I stumbled upon it haha It is still up after
more than 15 years on god know which free hosting and server, it was so funny.
And of course it is used as a joke now by my friends :) And of course I have
forgot my credentials long long ago (even if I knew where to login in the
first place).

[http://dzigi.itgo.com](http://dzigi.itgo.com)
[http://dzigi.itgo.com/o_autoru.htm](http://dzigi.itgo.com/o_autoru.htm)
<\--about me page with my pic as a kid haha

~~~
philjackson
According to Google translate, chess has been interested in you since you were
little.

~~~
dragandj
As a native speaker, I can confirm that Google translate is wrong in this case
:)

------
dsiegel2275
From 1997 thru 1999 I worked on a data management system that is still used in
the nuclear industry. Initially VB5 (maybe even VB4, I think) and then moved
into VB6. About 150,000 lines of VB code over 2.5 years with two developers
working on it - myself and a project manager. One of the first applications
that I wrote as part of this system was a 2D, steam generator tube sheet
mapping application. Link to the system is here:

[http://www.westinghousenuclear.com/Portals/0/operating%20pla...](http://www.westinghousenuclear.com/Portals/0/operating%20plant%20services/outage%20services/steam%20generator%20services/NS-
FS-0023%20ST%20Max%20SG%20Inspect.pdf)

Screen shots of the tube sheet mapping application are in that PDF. The system
was eventually featured in Visual Basic Programmer's Journal in September of
1999. I was 24 at the time and I felt like I had really accomplished
something!

------
mgkimsal
A few things that I wrote as far back as 2000 and 2001 are still in use. Just
checked one right now and the login screen is still the same - no doubt
passwords have changed, and it says it's running on php 5.5.9 on ubuntu -
they've done some upgrades, and I can't imagine the backend is 100% the same.
however, the url structure was built to do something funky, and that is still
in place, meaning they very likely didn't throw it all out and start over (and
the login screen is the same too).

Had another call from someone last year saying "x is broke" and... piecing
stuff together, I realized they were still using something built in 2002, and
using it 13 years later (now 14 years). Trawling through old code was weird -
a mix of pride - much of it was pretty readable and understandable - and
regret - many 'cut corners' I wish'd I'd not cut now, as it made the fixes
take longer.

That said, I think there's something very useful about having to deal with
your own code 5-10 years after the fact. You'll have a greater appreciation
for why 'the right way' is what it is, and ime, I've found that code _tends_
to be more maintainable and understandable by others when it's been written by
someone who's had to maintain old code themselves (usually their own).

Doesn't mean newer/younger folks can't write good maintainable code, but it's
a skill that seems to come with age more than anything else.

~~~
kasparsklavins
I cant imagine dealing with code dependencies 15 years from now.

~~~
mgkimsal
In one case, the entire thing was far more self-contained than anything that
would be written today. This was PHP, and there wasn't much of a standardized
ecosystem - not sure that PEAR was even a thing in 2000 when this was started.

------
gotrythis
I bet I have most people beat here, especially with web software.

I released the first content management system for websites back in about
1995. It was a fully database driven system with different post types, much
like WordPress in design, and editable page content.

About 15 years ago, I wrote an entire web-based system for managing an online
grocery delivery company. The whole site runs off of version 2 of that content
management system, which had lots of the version 1 code in it, which is now 21
years old.

And yes, they are still running their whole business off of that unmodified
system today! I should have put them onto a monthly maintenance plan. ;-)

Sadly, I hear that they will be finally replacing it soon, putting an end to
that legacy code.

~~~
brlewis
December 10, 1994 was my first checkin of cgiemail:
[http://web.mit.edu/wwwdev/src/cgi/RCS/cgiemail.c,v](http://web.mit.edu/wwwdev/src/cgi/RCS/cgiemail.c,v)

I found at least one live instance of it still running: www.uwo.ca/cgi-
bin/cgiemail/somedept/questions3.txt

I'm not sad that it's mostly replaced.

~~~
gotrythis
The sad part for me, is that I wanted to be the one replacing it. I had a
vision for that company that I had been thinking about for years, and pitched
it, but he wanted to keep his company a lifestyle business that just gets by.
The idea of growing and making real money scared him off. The new developer
got paid $5K over the last 2+ years to create it. Curious to see it when it
comes out.

------
krapp
Apparently people are (or at least were) using this perceptual hasher[0] I
wrote in PHP a few years ago. I'm embarassed by it because I know I will never
update it, and it's probably badly written. Luckily there are lots of forks.

I also have a lot of old javascript hacks that are running on various Adobe
Business Catalyst sites for people. Sometimes I get reacquainted with code I
wrote months ago and forgot about entirely. I have actually asked myself "who
wrote this" only to realize... it was me.

[0][https://github.com/kennethrapp/phasher](https://github.com/kennethrapp/phasher)

------
ScottBurson
I'm still using a couple of Lisp macros I wrote in 1980 [0]. I think a few
other people are using them too. I've improved them a little since then, but
the basic concept is unchanged.

[0] [https://github.com/slburson/misc-
extensions](https://github.com/slburson/misc-extensions) \-- specifically
'gmap' and 'new-let'

~~~
Wingman4l7
AutoCAD has had a LISP interpreter built into it for ages; I imagine there are
various engineering design firms that have been using in-house macros for
years and years.

------
mrweasel
I'm not actually sure it's still in use, I hope not. I wrote a small Python
script for synchronizing student address for a student organisation at the
local university.

The students would forget to tell the student organisation when they moved or
got a new phone number, but they'd always remembered to inform the university.

Importing data meant getting an email, containing a CSV file, parse the data
and lookup the students in our own database and update their information.
Because I'd just setup the qmail mail server, and learning about .qmail files
and mail queues in general, I just hooked the script into the .qmail file. I
figured it would save me the type of dealing with the IMAP server.

I think it was six years later, maybe a little more, when I got a call from
someone that the student organisation, asking if I could explain how the
student address information was kept up to date. They knew that the data came
from the university administration, but it just sort of disappeared into the
belly of the mail server.

------
pbreit
I wrote these PayPal IPN code samples (ducks!!) in 2000 which I suspect still
exist substantially the same in 10s of thousands of installations.

[https://github.com/paypal/ipn-code-samples](https://github.com/paypal/ipn-
code-samples)

I'm still amazed at how lousy http client libraries are in so many
environments.

------
mindcrime
Back in 2000 I went to work for a company named Voice Data Solutions in
Raleigh NC. We got on the e-payments bandwagon and created a site called
ccpaymentservice.com that allowed you to pay things like water bills, utility
inspection fees, etc. online (a lot of our existing customers were municipal
governments and the like). I've been gone a long time, but looking at the
site, not much seems to have changed, and I suspect that at least a few lines
of code that I wrote between 2000-2004 are still in use there.

One bit that I _hope_ is gone is the ONC RPC stuff I wrote for talking to the
credit card processing engine we were using back then. That was pretty ugly.
It was my first programming job, I'd never done RPC before, and I hacked up
something pretty kludgy to make it all work. Not my proudest moment. :-(

[https://ccpaymentservice.com](https://ccpaymentservice.com)

------
adamconroy
2000\. VB6. Manufacturing workflow / management system, BOM..... I did some
consulting work at the same company a year ago and that system was still
chugging along. They had pretty much rewritten / replaced everything else
around the place but apparently didn't see a need to change my module. I was
amused to have a couple of guys come and ask me questions/advice, and all I
could do was sympathize.

~~~
epmatsw
2012 for me. Also VB6 though...

------
lamontcg
Last I checked the nmap autoconf script still had code that I wrote back in
1996 when I ported what Fyodor wrote up in Phrack to Solaris, NetBSD, Digital
Unix, SunOS and possibly HP-UX and/or IRIX. It probably still has support for
doing "RST" scanning (and i think determining if the port is open backed on
the windows size in the packet that comes back, which worked on several TCP
stacks back then...).

~~~
lamontcg
on rereading this today, i remembered it was the ACK/th_win portscanning
method that I added to nmap (after independently re-discovering it), not the
RST scanning method which I think was already in the Phrack article... lotta
brain cells got a little foggy in the past 20 years...

------
0xmohit
I wrote a bash script for generating manuals for GNU software in different
formats a decade and a half back. The script made it's way into GNU texinfo,
and has undergone several revisions since. It is still used in order to
generate manuals for different software on
[https://www.gnu.org/software/](https://www.gnu.org/software/)

------
koz1000
1995\. Pinball game code for Williams Electronics "Jack*Bot".

I also don't count it as code, but the Pinball Expo 1994 website I put
together before that (in Notepad, natch) is apparently still up and running at
Linköping University in Sweden:

[http://www.lysator.liu.se/pinball/expo/](http://www.lysator.liu.se/pinball/expo/)

------
lukego
I wrote a clone of Erlang in Emacs Lisp back in 2002 called Distel:
[http://ftp.stu.edu.tw/FreeBSD/distfiles/erlang/distel-
euc.pd...](http://ftp.stu.edu.tw/FreeBSD/distfiles/erlang/distel-euc.pdf)

Amazed and impressed that clever people are using and maintaining this at
[https://github.com/massemanet/distel](https://github.com/massemanet/distel).

(I had hoped the answer would be the Java arcade game I wrote in ~1997,
Araknoid, but that seems to have disappeared from the internets.)

------
akg_67
The FORTRAN code that I wrote in 1996-1997 for Distributed process control
systems is still in operation controlling several multi-billion dollar
manufacturing facilities.

------
damienkatz
1998\. Lotus Formula Language Runtime engine. Completely rewrote the original
written by Ray Ozzie. GA released in 1999 in Lotus Notes/Domino R5.

~~~
le-mark
The sad thing is, that vintage of lotus notes was actually tolerable, compared
to what came later.

~~~
Daneel_
I feel like I have stockholm syndrome after using Notes from several years. I
hated notes, but I really miss the 'Copy to New' function from creating new
emails from already sent items.

Anyone know of a client that supports this other than Notes? (sorry for the
hijack)

~~~
fryiee
Are you referring to 'Edit As New' in e.g. Thunderbird?

~~~
Daneel_
YES!

I don't know why I've never tried Thunderbird until now.. Looks like this was
right there under my nose the whole time. Thank you!

------
davimack
A Microsoft Access 97 database (written in 1997) is still the "system of
record" for all instrument wiring diagrams within the biotech plant. I was
recently asked to review it (19 years after I wrote it) and to develop a step-
by-step for how to add reports to it. To put this in perspective, this biotech
is the largest in the SF Bay Area, and the plant represents roughly 1/2 of the
world manufacturing capacity of this type. And its single source of truth for
how things are put together is a Microsoft Access 97 database.

------
unwind
Not sure, but a reasonable guess is at least 1998, the "gentoo" GTK+ file
manager.

I still have the conversation (from 2000) with Daniel Robbins, founder of the
Gentoo Linux distribution, where we discussed the name collision. There was no
issue, we just both agreed to peacefully co-exist. :)

Very cool, since I learned that he, like me, came from an Amiga background.
Although he out-cooled me by a laaarge margin, having worked at semi-legendary
game company Psygnosis.

------
geophile
I was at a company from 2000-2003, and wrote a lot of its software. That
company is still around, and they also licensed their software to a spinoff. I
was brought in for some consulting to the spinoff and was equal parts pleased
and horrified to see that some of my software was still in use and pretty much
untouched. Horrified because back in 2002 I was already agitating that it was
time for a rewrite for one part of it.

~~~
geophile
Almost forgot: I left in 2003 to join a startup which was then acquired by a
very large company. Not only is that software still around, but the changes I
was agitating for in 2009, when I left, have been implemented! I'm much
happier about this one.

------
jedisct1
Maybe pure-ftpd.

The first version was released in 2001.

15 years later I still work on it and release new versions. Because people
still use FTP.

~~~
herbst
i rarely use FTP these days, but the last server i setup with ftp used pure-
ftpd. thanks for that.

------
nickpsecurity
A website demo using XML and XForms before they were standardized scripted
into HTML that's still running at a site per an old friend. Well, at least a
few years ago. It was one of about 30 examples in a set. What they couldn't
figure out is my site was blank on every browser despite everything organized
by a INDEX.HTML file they loaded. The trick: one of the letters in either the
file's name or name a preprocessor gives it isn't the English letter it
appears to be. ;)

And apparently they didn't delete the shit because (a) they're lazy and (b)
people just skip over it assuming it's a browser error instead of typing
"INDEX" in their address bar. So, they left it in there as a successful
example in a demo set. I got a glowing recommendation, too, since I showed the
original ("bleeding-edge, web tech!") to the person in charge who also thought
the demo glitched. Funny all around lol.

Note: This was a bullshit project rather than paid or important work. Not what
I'd do if someone paid me for quality work haha.

------
dwwoelfel
I wrote a "single-use bookmarking" app,
[http://app.reminderbear.com/](http://app.reminderbear.com/), during spring
break of 2011 and haven't touched it since.

It was the first thing I wrote and I'm still insanely proud of it.

It's chugging along sending 5-6 reminder emails every day and I use it once a
month or so.

------
analog31
Roughly a decade. The VB6 program that I wrote to test a prototype of a
measurement instrument, is still used in the factory, supporting manufacturing
of the released product.

It's a couple thousand lines, and nobody wants to touch it with a ten foot
pole, but it also has no known bugs, and will live for the remaining lifetime
of the product.

~~~
andyjdavis
>no known bugs

I don't think I have ever heard that phrase. Every non-trivial piece of
software I have ever worked on has a collection of bugs that just get carried
forward indefinitely ie hard to fix, only affects a small number of people and
there is an easy work around so just ignore it. The idea of having zero open
bugs is... foreign.

~~~
analog31
This is an extremely self contained program, doing a particular set of things
over and over in an isolated environment, with about four or five users, and
"bugs" are generously defined as "bugs reported to me."

------
tyho
Many of these examples are older than me, but I wrote a userscript which
writes a bash script which rips lossless audio from a music streaming service
which is no longer with us when I was 14. It tags the files appropriately, and
makes a release suitable for upload to a well known private music tracker.

I released it to a private group of people, it has been kept a secret within
that group mostly and has since been extended to include support for many
different services and integrated into complex automated systems which
automatically rip, package and release new music as it is released and also
old music as it is added to the request feature of the site. I released a much
better pure bash version when I was 15ish I think, but many people still use
the abomination of a userscript which writes a bash script as far as I am
aware.

~~~
avail
Would be interesting to read through the userscript - any intention on open
sourcing/sharing?

------
aavotins
Oldest surviving code dates back to 2006. It's a simple PHP script, that
generates an Excel file(without the help of any libraries. I was really into
not-invented-here then) containing information about banners shown for a week.
If it works, don't touch it, right?

Second one dates back to 2008. It's a webapp written in Django for real estate
agents. Full of bugs, requiring careful input of data in order not to mess up
the listing. I went on a 3 day hackaton somewhere back in 2011 to fix all the
bugs for free and got some very angry calls, because things weren't working
like they used to before. Turns out people were aware of these bugs and made
their own workarounds. I was forced to roll back all my changes and backport
just a single change - the ability to reorder images by using drag and drop.

------
crmccreary
1988\. A specialized finite element analysis program. Fortran.

~~~
Wingman4l7
Fortran is still being actively used in academia -- the example I know of is
running mathematically precise seismic simulations on supercomputing clusters.
Some programs have likely been handed down by multiple generations of grad
students.

~~~
philippnagel
Yep, a friend of mine is studying meteorology and most programming they do at
university seems to be FORTRAN.

------
baudehlo
The core of MessageLabs (now Symantec's) cloud anti-spam system. 2001. Still
processing around a billion emails a day. That Perl code stood up amazingly
well.

------
andyjohnson0
Back in the late nineties I was working for a small ISV and was a dev lead on
a project to develop a C++-based visual programming environment and runtime
for monitoring SCADAs and PLCs. It got used by a few customers, but ultimately
wasn't successful and was discontinued when the company did what we'd now call
a pivot.

I moved on to a company in the financial sector and my employer acquired the
rights to use this software (a decision I had nothing to do with). We ended-up
using it as a way to embed customer-specific customisation scripts into a
cloud-based product - something that it had never been designed to do, but
which ultimately worked quite well.

A couple of weeks ago I finally replaced it with a much smaller and more
focussed body of C# code, 16+ years after it was initially developed.

------
riprowan
Extranet for Very Large Company, circa 1999. X0,000s of users, X0,000,000s of
docs.

Platform: Lotus Notes / Domino.

------
FigBug
I haven't dug around in the Miranda IM code in years, but I hope there is some
of my code left, even if it's just 1 line, would have been written in 2000.

I do know there are plugins I wrote for ACDSee as a coop student in 2000. I
can still see some of the icons I drew.

------
kijin
Wrote a music library organizer and MP3 player in 2003 because none of the
existing options worked the way I wanted. The initial implementation was in
VB6, later ported to VB.NET. I don't use it anymore, but at least one of my
family members still does. It's really fast on modern hardware and Windows 10.

Unimaginatively named "Music Player", it remains the only music library
organizer that I've used so far that completely ignores all the ID3 tags and
respects the way I manually organized the files into folders (artists) and
subfolders (albums). That's supposed to be a feature, not a limitation. Back
then I had a lot of pirated MP3s with horribly inconsistent ID3 tags ;)

~~~
jonathankoren
I wrote a similar script except in Perl for pretty much the same reason. I
learned to hate CDDB files. Such a horrible mess.

------
fyngyrz
I have 6809 code running under FLEX09, in my 6809 emulator, running under my
XP VM, on my OS X machine. Games, diary software, editor I use to read my
(really) old snail-mail records. Still works fine. This stuff is circa the
late 1970's, early 1980s. I have paper tape and punch cards carrying my
software from previous systems, but it's not actually in use, so... :) Lots of
people are using my Flex/6809 emulator, REFLEX, which was first released in
1985 (for the Amiga) and later ported to Windows. It's still getting downloads
today, and it still works fine.

------
jonnathanson
I doubt this will impress, so much as amuse. But I'm pretty sure the oldest
thing I've written that's still in use is a series of popular scripts used in
various Warcraft 3 maps and mods. Written circa 2003 if memory serves. Mostly
they focused on adding RPG-like elements to gameplay: camera lock on
individual PC units, unit swaps to "upgrade" character classes, and so forth.

At the time, JASS (Blizzard's scripting syntax) was largely procedural, so
this was some brute-force work that was a real bear to make usable across
different mods.

Still playable, though, and still enjoyable.

------
erikb
In a mostly proprietary environment that's really hard to say. In the world I
live in (Germany software business world) few things get really deleted once
they made it into the daily life of a company. Nearly all companies have code
that was written like 5 years before their foundation by one of the glorious
first 3 guys and that is still used in most of their major software products.
The tricky part is getting even awesome software into these daily routines.

Hell, I'm quite sure that some of the first software I wrote is still used in
SAP despite me never having worked for them.

------
bigiain
I still occasionally see this on shop shelves:

[https://www.softwaretime.com.au/phonics-
alive-1](https://www.softwaretime.com.au/phonics-alive-1)

I wrote most of the code for that (in MacroMind Director) in 1995 (I remember
that because we needed to change the way we did a bunch of Audio when Windows
95 came out in about September that year - in Win3.3 we could do multi channel
audio - but in Win95 we on;y had the two stereo channels so we had to mix a
bunch of multi channel sound - we came so close to blowing the size of a CD
ROM after that!)

------
inDigiNeous
Umix, a program for adjusting soundcard volumes and other features in
soundcard mixers. Wrote during 2000 - 2003.

Surprised to see it's still being downloaded actively, supposedly by Linux
distributions that include it still for some reason.

Was tired of Aumix back then being buggy, so I wrote my own replacement. I
think my biggest wtf moment was this being included in the FreeBSD project (at
least 4.0), and many Linux distributions also, so it's now out there forever.

[http://umix.sourceforge.net/](http://umix.sourceforge.net/)

------
kohanz
This is hardly old (because I am not that old yet) and not a big deal, but
it's an interesting story of how your code can be re-used when you least
expect it.

Back in 2005 I was starting my Masters degree in Biomedical Engineering. I was
working on a project where we did processing on the raw RF data from a
diagnostic ultrasound system. The system manufacturer had just created an "RF
module" that gave us access to this data in a raw, proprietary format. We were
their beta testers and they provided no SDK. Since most of our research
started with analysis in Matlab, I reverse-engineered their proprietary format
and wrote some Matlab functions to load the RF data into Matlab data
structures. I assumed this whole time that these scripts would only ever be
used by me. Before I finished up my Masters, I made sure I documented all of
the code that left behind. None of this code was "online" (these were pre-
Github days) and it was only stored locally on my machine, available to my lab
members. Well, about a year ago (2015), I heard back from a former labmate who
is now faculty at another institution. She mentioned in passing that that
those scripts are still used today by anyone who interfaces with that system!
I had to do a double-take before I believed what she said. I guess the scripts
got e-mailed around and have found some use beyond my own. I was both proud
and alarmed to hear it!

------
johop
I still sell about two copies/month of PostMe, a (german) desktop email
client. The core is 16-bit code written in VB3 that dates back to 1996. It
runs fine under WinXP and Win7/32.

------
jeffreygoesto
Around 1989 I wrote a PC program that replaced an Epson HX20 storing injection
molding machine programs on small cassettes. 2000 I got a call the molding
machines had been sold and the old IBM PS/2 ditched. The new owner asked me if
I still had the program. I re-mounted my old QIC streamer sleeping in a box,
installed Borland Turbo Pascal in a DOS box in OS/2 and could recompile it
from source. Got the same price as I originally sold it for again ;-). Still
in use. The Epson HX20 is gone though...

~~~
Wingman4l7
Did you adjust the asking price for inflation? ;P

~~~
jeffreygoesto
Damn, I knew I missed something %-P

------
bhouston
FFT library for .NET written in 2001, still seems to be fairly popular (and it
got included in quite a few other larger scope libraries as well):
[http://www.exocortex.org/dsp/](http://www.exocortex.org/dsp/)

Quite a few hits on Github:
[https://github.com/search?q=exocortex+dsp&ref=searchresults&...](https://github.com/search?q=exocortex+dsp&ref=searchresults&type=Code&utf8=%E2%9C%93)

------
wslh
My oldest running code is from 1998 and is present in every printed and
electronic invoice in Argentina.

It is an algorithm to produce non predictable numeric codes of variable
length. A much improved version was used for marketing campaigns.

The algorithm uses a Feistel Network[1] operating over an arbitrary block
size. It is basically a simmetric encription function of variable length.

[1]
[https://simple.m.wikipedia.org/wiki/Feistel_cipher](https://simple.m.wikipedia.org/wiki/Feistel_cipher)

------
dleslie
I wrote the netcode, among other things, for Army of Two: 40th day. I suppose
so long as the matchmaking servers are up then the code is available to be
run. Last I checked for active games was well over five years ago, but there
were several thousand players at the time.

All of the code I wrote earlier has long since been abandoned, I hope. There
is the CBT application I worked on for BP that was for safety training
operations for oil extraction in the Gulf of Mexico; and I -really- hope that
it's no longer in use.

~~~
pvinis
So were you working for the game and you were just assigned to the net part?
Or did they hire you only for that?

------
gborland
In 1996 I started work on a 2D rendering engine in ARM assembler which did
alpha-blending and vector antialiasing. Substantial parts of it were later
rewritten in C, but the core pixel-blitting loops are still there in ARM as
far as I know. It shipped hundreds of millions of units and was at one point
present on the majority of mobile phones manufactured in Japan, Korea and
Taiwan in the mid 2000s. It is still going, and some software products are
still being shipped today which contain that code.

------
LfLxfxxLxfxx
Geoff Streeter, one of the developers at dyalog.com says:

"I suspect that the oldest untouched code (of mine) in the interpreter is the
code for balancing a symbol table. This is going to be early 1982 and is
untouched since it was written. It implements a technique from Colin Day and
published in the Computer Journal in 1976."

Dyalog's APL interpreter is still profitable and actively developed. Many of
the source files begin with:

    
    
        /*	Copyright (c) 1982 Dyadic Systems Limited	*/

------
kevrone
In 2009-ish I wrote a Java-based templating system for Autosys' Job
Information Language. If you don't know it, Autosys is a horrible, horrible,
job management and scheduling system. You define these little files (.jil
extension) that specify not only the job definition (command, user, cron-like
schedule, etc.), but also its dependencies (which job must run before this
one, what runs after...). Nothing wrong with that approach, per se, but
there's essentially no way to validate the correctness of a job and its
dependencies until it's running live in production. Often jobs would fail to
run when you expected, or become quietly orphaned by some change to another
upstream job.

So I wrote a disgusting (yet fluent!) enum-based monster called JILT (Job
Information Language Template), that required that every existing .jil file be
rewritten as a statically-typed java enum which could then be used to spit out
the entire tree of validated .jil files. The nice thing was that your job
dependencies were now enforced by the compiler and could be included in CI.
But the actual inner workings were a hot mess. And of course, now the support
teams have two systems to maintain and ensure they remain in sync.

This was at Goldman Sachs and I hear it's still under active development by
the support teams...

~~~
shthed
Ahaha damn I hate autosys .jil files! We are still using them even though we
replaced Autosys years ago :(

We have an old Oracle PL/SQL system which wrote out these .jil files which
were to be picked up by Autosys, built in around 1998. When Autosys was
replaced we didn't touch the old PL/SQL code, .jil file parser was written so
the jobs could be scheduled through Quartz instead.

Would have been easier to replace the whole job creation and scheduling system
instead of just the Autosys part.

------
nurettin
I was the author of a 2002 quality assurance software written to receive
images from a microscopic camera attached to a robotic arm and turn them into
3D models as part of a friend's doctorate thesis that was later sold to
mercedes as a prototype.

One German engineer later noticed that it contained my copyright, located my
address and subsidized me every time the system was commercially sold up until
2008. Not sure if it is still in use, but I am thankful for his sense of
justice.

------
jasonpeacock
Written ~2004, still used by over ~5k ppl. Even had an intern steal the idea
and create a startup.

~~~
jdkanani
Which startup?

~~~
jasonpeacock
Omitting names to protect the (sorta) innocent :)

------
calcsam
Client-side or server-side? My Angelfire website circa 1999 is still up and
running :)

~~~
dpark
I guess my horrible JavaScript for my Geocities page is probably still living
on an archive.org server somewhere. Most of that was cut-and-pasted, though,
so probably wouldn't really count regardless.

------
cpncrunch
My socket library from 1997 is still handling thousands of sessions a day. I
just checked the CVS log, and it has only had 2 minor changes since 2005.

------
karmajunkie
I've got at least one major project I know is still in use that's pretty close
to ten years old now. I have reason to believe that an Access application I
wrote in 1997 is still in use (though I hope for the sake of its users its
been long since retired!) I've got bits and pieces of code I'd be willing to
bet a beer are still in use, but nothing I'd call a major project.

------
pknerd
Back in 2006 when JSON was new and there was no native support of JSON to
convert MySQL resulset to JSON, I wrote this class which won 3rd prize. I see
people still download and use it.

[http://www.phpclasses.org/package/3195-PHP-Convert-data-
from...](http://www.phpclasses.org/package/3195-PHP-Convert-data-from-MySQL-
query-results-into-JSON.html)

------
khedoros
I've got some code in part of a corporate-scale backup system that I wrote in
2008 (right out of college). The product is being put into kind of a permanent
maintenance mode, so I imagine that the same code will be there for as long as
anyone's using the product.

I had a hand-coded Geocities page (actually, 2 of them) in about 1995 and
1996. Should still be accessible in the Archive, or something.

------
WalterBright
The dmd D compiler has some pieces of code in it going back to the early 80s.
Some of my Empire game code, written in the 70s, still gets used.

------
rietta
The oldest code that I wrote that I suspect is still in use is RoboGen, an
editor for robots.txt files, that I wrote in Visual C++ 6 with MFC. I remember
working on it while not paying enough attention in my high school physics
class. We were allowed to have laptops in class at the time. You can see it at
[https://rietta.com/robogen/](https://rietta.com/robogen/).

The oldest code that I distributed - it was written by a friend of mine - is
Whois Web Professional which was a whois client written in VB6. I know it's
still in use because I have to maintain the version file on my website and
even keep my server running Apache because its update checking was written by
a 12 year old in WinSock and doesn't handle the protocol very well. If I
change anything, the VB6 program crashes on startup and I get emails about it.
You can see it at
[https://rietta.com/whoisweb/](https://rietta.com/whoisweb/).

------
david_p
The French epidemic surveillance system I worked on as an intern in 2006.

We basically rewrote the whole system is PHP+MySQL (front end and back
office). It was my first time writing PHP professionally and it still seems to
be working :)

[https://websenti.u707.jussieu.fr/sentiweb/?lang=en](https://websenti.u707.jussieu.fr/sentiweb/?lang=en)

------
vollmond
I haven't stayed at a job for longer than 3 years, and all of them have been
internal projects with no external visibility, so I can't really know for
sure. I do have a 21-line python script that I still use which I initially
committed to github in 2008, so that's certainly a contender (first internship
started in fall 2004).

The script is an expansion on the web server one-liner:
[https://github.com/imnotpete/odds-and-
ends/blob/master/pytho...](https://github.com/imnotpete/odds-and-
ends/blob/master/python/servethis)

edit: the one liner:
[http://www.garyrobinson.net/2004/03/one_line_python.html](http://www.garyrobinson.net/2004/03/one_line_python.html)

And of course, reading that, I see my script is hugely overkill since all it
does is alter the default port and allow you to pass one in -- something the
one-liner can apparently do. Oh well.

------
jim_lawless
Stuff I've written independently:

MailSend ... a command-line SMTP mailer I sold starting in 1997 (with the same
name as some other command-line mailers ) is still in use by some of my oldest
customers. It doesn't directly support SSL/TLS, but a handful are still able
to use it.

I made the AWK ( compiled AWK ) source available a few years ago:

[http://www.mailsend-online.com/blog/mailsend-is-
free.html](http://www.mailsend-online.com/blog/mailsend-is-free.html)

My lightweight open source command-line MP3 player for Windows that I wrote in
2009 is still being actively downloaded and used. I've seen that a couple of
people are bundling it with their home-brewed games to play music and sound-
effects.

[https://lawlessguy.wordpress.com/2015/06/27/update-to-a-
comm...](https://lawlessguy.wordpress.com/2015/06/27/update-to-a-command-line-
mp3-player-for-windows/)

------
gdiocarez
I wrote a school system using ruby on rails 2 due to the upgrade on rails 3
syntax change. It was not able to migrate database and change code since I was
1 man team on the company. I asked the company for another to help me out with
the migration or change because there are parts of the system that is memory
hog. It was my first project and don't know much about memory consumption of
the app. Until, we are consuming more cloud resource cause I don't know the
bottle neck is.

All the employees are more on PHP than ruby. It was sold to 3 school and 6
years after. It's still in use. I'm out of the company and suggested to move
it to PHP for the developers to easily manipulate and maintain the app.

I went out of the company due to increase in task/ duties that I can't handle
them all (customer service/ programming/ server maintenance/ explaining to my
boss that I need another ruby programmer to help me out)

------
c17r
My first fulltime job as a developer was back in 1997 for a state university.
The wheels of change are slow at that kind of place so it's possible some of
my code is still running.

The oldest that I know is still in use is code for an ecommerce outsourcing
company I worked for in 2003-2005. ASP/Javascript. Pre-jQuery Javascript too.
Fun times.

The oldest that I'm still supporting is VB6/ASP code written in 2006, though
the entire software is older than that. It's for "contingent workforce
management" (temp labor) and handles the 3-way relationship between client,
the supplier, and the worker. In it's heyday we were processing over $2B in
payroll annually. It's now down to one client using it. The relationship is
very weird too: it's me->hosting company->business company->end client. But I
only have to do 1-2 days of support a month and have a pretty good contract
for it.

------
Fradow
When doing a school project, in 2009 or so, we had to record a lot of sounds,
each linked to an image. The usual process of recording, cutting the ends of
the sounds and saving with proprer file name was too cumbersome (we had
multiple languages and some variants to record, bringing the total sounds to
over 100).

Instead, I coded a small utility hidden within the program to show the image,
and allow to record with a single keypress. It is precise enough that you
don't have to cut it afterwards, and it auto-saves to the right file name.

To this day, I didn't find a better way to record lots of small sounds, and
since it was written in C# and XNA (which has been killed since then), I keep
a Windows computer around just to run it, when I need it, about one or two
times a year.

There is little incentive to rewrite it until it stops working altogether,
since the use is so infrequent, but each time it saves me several hours of
boring work.

------
LarryMade2
technically... A few games I wrote in High School (79-83) on the Commodore PET
are out there on sites to download and play...
[http://www.mobygames.com/game/toss](http://www.mobygames.com/game/toss)
[http://www.mobygames.com/game/pet/tic-tac-
toe_](http://www.mobygames.com/game/pet/tic-tac-toe_)
[http://www.mobygames.com/game/pet/tron-light-cycle-
game](http://www.mobygames.com/game/pet/tron-light-cycle-game)
[http://www.mobygames.com/game/pet/tron-journey-to-the-
mcp](http://www.mobygames.com/game/pet/tron-journey-to-the-mcp)

My VIC-20 and Commodore 64 versions were better, but those came later

------
arenaninja
I wrote the code for [http://lab.mrl.ucsb.edu/](http://lab.mrl.ucsb.edu/)
circa 2011-2012 during for a work-study job. It's used for scheduling facility
equipment. The original site was written in PHP4, and I scrapped it using
PHP5, MySQL and jQuery. I had 0 experience at the time, AFAIK the code lives
on unchanged.

Earlier than that, I wrote an Access database to manage claims for a small
insurance company circa 2009. Except I wrote it in Access 98 and the last time
I saw it the file was corrupted. I offered to help fix it but I was kicked out
of the building for flirting with the claims department manager (actually a
close friend of mine). This one may actually no longer be in use because I
never split the UI and DB and it's not supposed to handle multiple users at
the same time if you don't, IIRC.

------
hacksoncode
Hmmm... back in around 1997 I rewrote the Synaptics TouchPad driver for
Windows NT, and most of that code is still in the drivers today...

So I bet I win the number of copies still being used by nearly 20 year old
code among the comments here... probably something between a quarter to half a
billion of those laptops still in use...

------
gumby
I designed and wrote a lot of BFD in 1989-1991, and then the binutils that use
it like nm, objdump (which was actually written as a way to debug BFD, but
turned out to valuable in it own way), strip etc as well as some changes to
the crt0 emitted by gcc. I started working on BFD before we hired anyone at
Cygnus.

------
cannam
Autumn 1992, in an undergraduate industrial placement, a module for
approximating special functions (Zeta function, Bessel functions etc) in the
REDUCE computer algebra system: [https://sourceforge.net/p/reduce-
algebra/code/HEAD/tree/trun...](https://sourceforge.net/p/reduce-
algebra/code/HEAD/tree/trunk/packages/specfn/specfn.red)

I kept a copy of Abramowitz and Stegun open on the desk for months... I don't
think REDUCE is all that widely used nowadays, but it does still work, very
well in some respects. It was closed-source at the time and was open sourced
relatively recently.

I'll echo the sentiment that most of the commercial stuff I've worked on has
either died or never launched at all.

------
BobRun
Wrote an accounting package in 1986-90 mix of C and dbase and Clipper. It is
still in use, went through y2k, no problem. I tried to let it die. But could
not. The thing is still alive and I am porting it to C. Wasted a lot of time
looking at other languages but C is still the best for me.

------
brightball
Worked for a telecom company right out of school in 2004-2006 on a small team
doing PHP fronted sites for backend Java web services. We launched 7 sites in
that 2 years and if I recall, the customer VoIP site and a site that mapped
installation records from about 6 different databases into something usable by
support and installers are still in use today.

The VoIP site I'm particularly proud of because it was a cross-browser fully
AJAX'd (Single Page App for the kids) site built before we'd ever heard of
jQuery or Prototype...and it's continued working without a single update for
12 years. PHP 4, WSDL Java services and hand written Javascript that worked in
IE6, Safari and Firefox (Chrome didn't exist yet but it works there too).

------
Flemlord
1994\. VB6/SQL, although it started as FoxPro and VB6/SQL was introduced in
1995 or 1996. WRAP accounting software for a financial company that was sold
around 2003. Not much in use now, but I hear they still have a few clients and
a small 2-3 person support team.

------
tluyben2
80s software written in Turbo Pascal largely by me for which I wrote a library
in Delphi in the 90s which would run the software without changes in a Windows
window while looking modern and not like a terminal. It is still used a sold
in and to a lot of Dutch schools.

------
akerro
IRC bot in Ruby 1.6. I wrote a complete "framework" that supported plugins and
hot-patching.

Some functionality: inter-channel-communication, inter-server-channel
communication, offline messaging, reading RSS, working as ChanServ by commands
(you can send him priv msg or message on a channel to promote you or someone
else, kick or ban someone). Collecting messages are creating graphs about
activity, per hour, per user or channel (so could easily see who abuses the
most after 3AM), per day of week... I stopped writing in Ruby for a few years,
when I get back it was Ruby1.9 and a lot of syntax changed. I know one person
is still using it.

It was also my first ever application (other than scripts from tutorials), I
wrote it when I was 15.

------
datenwolf
A quick'n'dirty OpenGL texture mapped font drawing class that loads gylphs
though the Win32 GDI, I wrote some 17 or 18 years ago. There are much better
OpenGL text renderers, that produce better quality output, use far less
texture memory and can do Unicode. Yet because I submitted that thing to
FlipCode on occasion still ends up in production code.

But I wouldn't even mind that if I wouldn't consider the code quality of that
thing to be horrible. When I wrote that I had enough programming knowledge to
tackle big projects but I still lacked the years in which I experienced how
and where (my) legacy code will end up. I also didn't put too much care into
things like keeping the namespace clean.

------
20years
2006 for me. It is a SaaS service. The front-end has been re-done a couple of
times since then but some of the original back-end code is still in place. I
cringe every time I have to look at it but it works well so there hasn't been
a need to re-write it.

------
ratboy666
My text editor (Assembler, then C), 1982. Some F18 Hornet software (C, ground
station support), also 1982. Humphrey Utrasound Biometer (updates, Z-80
assembler), 1992. Kodak Spark-based picture kiosk (Solaris 8 upgrade, Solaris
patches for FAT, USB, PCMCIA), 1999.

But why?

~~~
Wingman4l7
Another commenter answered that, at least in regards to medical equipment
_(similarly, embedded systems code for an ultrasound machine, in 1989)_ \--
once code is FDA-approved, people won't touch it. I imagine if the F18
software met some milspec requirement, a similar rule would apply.

------
justinhj
In the mid 90s I wrote some A* path finding code for a game and in the process
wrote a programming tutorial about it. The page got a lot of traffic and
requests for code, so around 98 I wrote a version of it using a simple api but
spent a lot of time making it solid and fast. It was used by several major
game companies including Activision and Relic Entertainment as well as indie
games and student projects.

A few times I've started a game programming job and found my code there
already.

Recently someone ported it to C# where it can live on in Unity games.

[https://github.com/justinhj/astar-algorithm-
cpp](https://github.com/justinhj/astar-algorithm-cpp)

------
sulam
1992, some MUD code I wrote seems to still be around. Kinda cool and at the
same time sad. :)

------
sanj
Code to analyze results from the Slowpoke nuclear reactor at the university of
Toronto: 1994.

------
technologia
Written in 1997, still in use at a few banks that haven't upgraded, well,
since the 90s

~~~
Wingman4l7
Curious -- were they in COBOL?

~~~
technologia
COBOL, C, and HOGAN

------
cm2187
Many bank payment and loan systems are written in COBOL. Banks are so afraid
to change them that there are often not even plans to upgrade them. When a
change absolutely has to be made, they need to call the developers back from
retirement...

~~~
Wingman4l7
As crazy as it would be to learn COBOL today, I've heard you can pretty much
name your price for these sorts of jobs. They're definitely out there, too --
I saw one job listing in 2014 for a postal worker credit union that was
looking for someone to pick up rudimentary COBOL from a pending retiree so
they could still support their system.

~~~
MarkMc
I'm not so sure - I ran into quite a few COBOL developers during my travels
around India. Funny thing was that in every case the programmer was younger
than the codebase.

------
zck
The code I wrote in my first job is probably still used, but I don't remember
any features I worked on.

The code I wrote that will be running the longest is code I've contribute to
Emacs. User-facing features are unlikely to be removed anytime soon.

------
jventura
Not my oldest code but probably my currently most used code is this patch on
Android Cyanogenmod
([http://review.cyanogenmod.org/#/c/26167/](http://review.cyanogenmod.org/#/c/26167/))
to download automatically MMS without switching the mobile data on. I made it
to ICS, ported to 2.3 and it has been ported at least to Jellybean.

I had to do it because my mobile operator used to send unsolicited mms that
kept my old android phone (ZTE Blade) in a wake lock, draining battery. I
still don't have mobile data connection to this day!

------
bulte-rs
Back in '97 (I was 13 then) I wrote a small BASIC program to generate a part
list and assembly "manual" for industrial garage doors. It was actually
developed in a TDD way (comparing their regular output files to my generated
files). Actually handed over the source files which they actually maintained
throughout the years.

It has been running in various incarnations on salvaged old machines and for
the past 3 years in DOSBox untill january this year.

Still proud of that one.

Although I made "only" 1000 guilders (that's about $750 in 2016 dollars) on
that, it seemed like a huge amount of money back then. :')

------
dreamaddict
Oh wow...

[https://www.magnamund.org/risingsun/February2000/Bookkeeper....](https://www.magnamund.org/risingsun/February2000/Bookkeeper.html)

I got my wisdom teeth taken out when I was in high school, and coded this in a
weekend while eating Percocet and tapioca pudding. I had no idea it was even
still for download. It actually works very well for what it is (an interactive
sheet of paper for use with a book)...still in use? Probably not, but I am
amazed that it is still there.

------
paulmooreparks
The core user interface code in a point of sale system. I got a contract in
1994 at NCR to write an interface between the flagship grocery point of sale
system and a new UI device called DynaKey. I was told not to polish it too
much because they needed to get it out the door, and they'd go back and clean
it up later. By 1995 I was writing the second version, which made the UI
configurable. In 2008 I was back writing the third version, still in
production today, but still built around the code I wrote in 1994.

------
pegas1
1976 MUFSYS flood forecasting and irrigation management for Indus river

------
rootw0rm
A virus I wrote in the 90s. Hopefully.

------
apercu
I did a trivia game for a Mattel subsidiary in 1998 that was still running in
2008 on the website. It's not there any longer but I don't know when it was
taken down. A lot of the games we developed were in shockwave/lingo and flash,
so I imagine most of those came down with the arrival of the iPhone. The
trivia game was just a Perl/CGI/MySQL thing so who knows how long it would
have run. Was probably a security risk after a few years though, as it was my
first RDBMS app.

------
mvgoogler
In the early '90s I wrote the embedded software for the first versions of
these hand-held color measurement instruments:
[https://www.byk.com/en/instruments/products/color-
measuremen...](https://www.byk.com/en/instruments/products/color-
measurement/portable-spectrophoto-meters.html#fam1)

From what I can see of the screen shots it looks like at least the core of
that software is still in use.

------
piyush_soni
(Apologies,) I have nothing to contribute, but I'm amazed to read the comments
from so many awesome people here! It can happen only on HN where you find such
a group.

------
andywood
A game I finished in '96\. Still playable thanks to DOSBox.

------
payne92
~1995-1996, FastCGI implementations

------
busterarm
I've thrown up several quick sites for friends and family using very simple
markup over the years.

Both my brother's site (1999) and an ex-gf's art portfolio (2002?) are for the
most part unchanged in all this time.

They don't look amazing but they're still...decent.

Some sites I made for a school I went to are still up since 1997, but I don't
think they're directly linkable from the main page anymore, just hosted and
indexed by google...

------
xxxxxxxx
I still have an excel sheet that I wrote to perform mortgage calculations. The
timestamp on the file is 10 March 1994. The latest version of excel can still
open it and it works. Although it exists, it's not in use.

I suspect all the stuff I wrote back in the late 80's and early 90's has long
been switched off at some point, which is kinda sad. It would be hard to run
today: EBCDIC mainframe stuff and 16 bit PC stuff.

~~~
c2340596
Stagnation is far more sad

------
cesarbs
QuickSynergy: [https://github.com/cesarbs/quicksynergy-
gtk](https://github.com/cesarbs/quicksynergy-gtk)

A simple and straighforward UI to use synergy on Linux for the most common use
cases.

I haven't properly updated it in years (made some small changes last year
though) but I know it's still in use e.g. my wife was surprised to learn it's
quite popular at her company.

------
VOYD
[https://msdn.microsoft.com/](https://msdn.microsoft.com/) UX/DB/Webservices
;)

------
edem
When I started to learn PHP in 2007 I've written a little accounting program
for the guys at the company I was working for. I know they are still using it
because I get a call every year: I need to manually switch the current year.
They don't want me to implement this feature for some reason but they still
keep calling me once a year. At least there are no other bugs I know of!

------
airfoil
A pro wrestling simulator in 2003. It's terrible. The code is absolutely
horrible. There is a small community of folks that still play it.

------
lorenzods
I built a communication layer for a bank in 2000 :P It ran on Solaris (server
side), and as an ActiveX dll on win32 :)

A year ago the server side was just ported to 64bit architecture Linux, though
basically the protocol remained unchanged, only stronger encryption keys are
used

Now they plan to change it to a more modern "online" version (some REST thing
instead of the connect-sync-disconnect approach)

:D :D :D

------
malyk
Pretty sure code I wrote in 2001 right out of college is still used in
production for mission critical systems for a national association.

------
lifthrasiir
Transdate [1], a Python library for handling Korean lunisolar calendar, is
probably the oldest (released on 2005-03) code I have ever written that is
still in use.

[1]
[https://pypi.python.org/pypi/transdate/1.1.1](https://pypi.python.org/pypi/transdate/1.1.1)
(the initial version was released in the other form)

------
ZacharyPitts
Got into mudding back in 92. After playing the game for a while, 'ascended' to
becoming a coder on the backend. I created realms, and did some of the
conversion work when the mud went through its first huge shift from a base LP
Mud. The mud is amazingly still running:
[https://www.bat.org](https://www.bat.org)

------
xioxox
From around 1992, a 16 bit Windows Borland (Turbo) Pascal GUI database for my
parents' business. This was the 2rd rewrite of some DOS and then Amstrad CP/M
software I wrote in Modula-2! It still runs (in a Windows 32 bit VM) and I do
change minor features.

I have a Python/PyQt replacement, but it requires some more testing and
development.

------
keefe
Linear mathematics calculator doing pivot tables for solving systems if linear
equations 1999. I have only vague rumors of it still being used in class but
it's still available
[http://www.nku.edu/~mat111/offline.htm](http://www.nku.edu/~mat111/offline.htm)

------
eb0la
A friend told me they decommisioned yesterday their last netcool server.

Inside there was still the code that updated priorities and removed old alarms
every 293, and 3607 seconds (why 293 and 3607? - because they're primes and
very close to 5 minutes and 1 hour).

It has been running 16 years. Not bad for a midnight-fix during an incident
;-)

------
beamatronic
I am not sure if they are still running, but some time ago I wrote a large
number of Oracle PL/SQL procedures activated by cron jobs. The source database
schema did not change very much ( JIRA ) and those procedures ran for at least
four years without needing any attention or maintenance.

------
darrelld
My first "big" application I wrote and got paid for was a MS Access SQL VB
hack I wrote for a company I worked for.

I fully expected the thing to crash in a few weeks after I left and they would
move on to something else, but no 8 years later and I'm told it is still
running strong.

------
armamut
I wrote a Microsoft Excel macro (yes, it's VBA) when I started my current Job
at 2008. It only converts badly formatted txt output of mainframe to an Excel
file. Just does it only, but does it well.

I'm very amused that even today people use my macro and thank me for writing
it.

------
jonathankoren
My .tcshrc dates from 1994 or 1995. Ironically, the reason why I run tcsh as
my primary shell went out of style about 1997, yet, here I am.

As far as actual programs, I have a perl script I use almost daily that I
wrote from 1999. It's basically an easier to use `xargs` called `map`.

------
OliverJones
xlogo 1989

------
danieltrembath
2002\. Intranet for a major auto maker. Still going strong. Large percentage
of the original management and accounting code intact. Still in development.

1999\. DynamicIP tracking script from the dial-up days. Tiny but it's been
telling me where my home internet is for 17 years.

------
seehafer
2002\. Part of a weather forecast tool to determine where to best place
salting trucks during winter storms
[http://inws.wrh.noaa.gov/page/tou](http://inws.wrh.noaa.gov/page/tou)

------
jibsen
Back in 1997-1998 I wrote a compressor for DOS 16-bit executables called aPACK
(and a library, aPLib, with the compression code). I still occasionally get an
email from someone trying to get them to work, so they must still be in use
:-).

------
fibo
I knew an old man who is now retired who wrote something in COBOL For a bank,
it is still running cause it calls itself and nobody understand ita eval
tricks. It is still working and everybody is afraid of removing it. True
story.

~~~
steve371
Once a large insurance firm was recruiting in campus and hiring ppl to
maintain their old COBOL system

------
shakycode
I've only been programming for 5 years and some of the original code I first
wrote 5+ years ago has survived and somehow is still running. I'm tempted to
go back and refactor it to make it more performant though.

------
Joeri
A flash-based CAD floorplan viewer I wrote in 2005 is still being used.
There's been talk for the past half decade of porting it to javascript, but as
long as browsers keep supporting flash I doubt it will happen.

------
ndesaulniers
The first website I got paid to make is still up. Not exactly responsive, but
this some of the first code I ever got paid to write.

[http://aldn.com/](http://aldn.com/)

------
occsceo
I worked at a local paper in `00 and wrote a classic asp over access "news
desk" for them. I just ran into one of my coworkers and he mentioned certain
key parts of the app is STILL in use.

------
jstaffans
In 1998, while I was in high school, I got involved in MUD development using
LPC (an obscure object-oriented version of C).

To this day, new players are greeted by an NPC that I wrote when first logging
into the game.

------
dreamaddict
oh damn oh damn it's still up!

[https://www.magnamund.org/risingsun/February2000/Bookkeeper....](https://www.magnamund.org/risingsun/February2000/Bookkeeper.html)

I got my wisdom teeth taken out when I was in high school, and coded this in a
weekend while eating Percocet and tapioca pudding. I had no idea it was even
still for download! It doesn't matter now, because I believe the Magnamund
books are being re-released in a more modern, integrated package...but there
it is!

------
rowantrollope
1995 windows print software

~~~
jtlien2
Back in the 1990's I released pdf417 barcode software. Still gets a thousand
downloads a year on sourceforge.

------
stevenalowe
I wrote a distributor/manufacturing system in 1988 that is still in use in 2
companies; domain model still valid 28 years later, though the programming
language used is way out of style now

------
onlinesimon
My 1991 conversion of Life & Death released for Commodore Amiga and Atari ST -
I occasionally notice that some people are still playing it on emulators, etc.

~~~
onlinesimon
I do miss the old PDS cross-assembler hardware/software. Visual Studio just
isn't the same...

------
iisbum
I recently got a call from the CEO of a company that I worked for from
2000-2003, asking if I could help upgrade some code I wrote that was still in
production.

------
tmaly
I have a number of compliance reports that have been running without fail
since 2005. I have a task management system that has been in constant use
since 2006.

------
MaysonL
I wonder if any Triple-I (Information International Inc.) machines are still
alive and running any of the code I wrote back in the late '70s?

------
nslindtner
1996, Concorde XAL (Danish ERP-system).

------
fransimo
1997 Borland Paradox

------
dakami
-D flag in OpenSSH.

------
frik
Several VB6 based tools from 1999 are still in use. They still work just fine
in Win 7 64-bit. (VB6 was the best RAD tool from Microsoft, great integration
with Windows and was part of the "information at your fingertip" vision. Then
Java happend and Microsoft frantically tried to create something similar. 15
lost years, nowadays compiled languages and on the otherside dynamic languages
like Javascript succeeded. And also the web succeeded over AOL, Microsoft
Network and other pay-to-use-closed-attempts. And now with Win10 the whole
platform is on a crossroad, the trust is gone with all spying, tracking and
as-a-service idea - "users aren't slaves" and want to decide for themself
after all)

~~~
Jaruzel
Having spent a long time with VB6 as my go-to language, I get a little upset
when people criticize it. It was designed as you say, as a RAD language so
that the masses could easily knock up front-ends for almost anything, and as
machines got faster it's main weakness (it's execution speed) became
irrelevant. Yes, the lack of enforced typing, native multi-threading, and OOP
finally killed it, but for it's time it was a very useful programming
platform.

On the upside, if you want a VB6 app to run on Windows now, all you need is
MSVBVM60.DLL* in the same folder and it will run, unlike the massive clutch of
files that .NET needs...

(*This holds true for 16bit VB5 and VB4 as well, on 32 bit systems)

------
susam
In 2007, I wrote some code to make Apache Nutch capable of crawling web pages
protected with NTLM, Diget or Basic authentication schemes as well as crawling
web pages via a proxy server that requires NTLM, Digest or Basic
authentication (
[https://issues.apache.org/jira/browse/NUTCH-559](https://issues.apache.org/jira/browse/NUTCH-559)
).

This became first available with Apache Nutch 1.0. Although it was my second
contribution to an existing open source project, it was my first contribution
that added a new feature. As far as I know, this feature is still in use for
crawling intranet web pages.

------
gaius
I am still using a Makefile from the early 90s, just altered for new projects,
infact it is probably a direct descendant of the original Makefile.

~~~
shthed
oldest I could find, dated 1979: [http://minnie.tuhs.org/cgi-
bin/utree.pl?file=V7/usr/src/cmd/...](http://minnie.tuhs.org/cgi-
bin/utree.pl?file=V7/usr/src/cmd/make/makefile)

current gnu make:
[http://git.savannah.gnu.org/cgit/make.git/plain/Makefile.am](http://git.savannah.gnu.org/cgit/make.git/plain/Makefile.am)

