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 :/
> ...and by early 2004 I had released the final version, v06.
I wish more software had "final version", where possible [0] as opposed to endless churn and inevitable "is this project dead" question after a couple of weeks/months of inactivity. [1]
[0] Obviously some projects can't do this. E.g. there is no way youtube-dl would ever have a final version, etc..
[1] https://www.google.com/search?q=is+this+project+dead+site:gi...
Okay. That is hilarious.
"Newer versions have been released, however contain poor documentation, and removal of features that can be found in v0.06. Version 0.06 is still considered the best version available by most ROM hackers until the author addresses the shortcomings of subsequent versions."
Of course they did
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.
It was also ported to the DotA 2 engine, where it has millions (!) of subscribers.
Oddly, one of the maps ended up being used by some guys for a academic paper they wrote on latency in multiplayer games:
https://pdfs.semanticscholar.org/d72f/e6af66a73af303c75fd92f...
I also did some gfx stuff for Quake2 & 3 , but got a cease and desist letter from iD Software, so had to take them down - didn't stop it all ending up in many mods and pak files out there anyway.
Finally, I wrote a MUD Server for Windows, complete with a GUI based world building toolset, which got placed onto a CD-ROM, without my consent, that shipped with a 'How to write multiplayer games' type reference book (and had a section of the book dedicated to it) - I never did manage to get any recompense for that...
Now if only I'd bothered to finish coding and release all those great ideas I've had over the past 25 years...
Being russian I can only name this as something with millions of subscribers and is not dota.
I've noticed he's often high up in the leaderboards in Google Code Jam.
http://dzigi.itgo.com http://dzigi.itgo.com/o_autoru.htm <--about me page with my pic as a kid haha
btw, it still contains my contact info, which i apparently haven't changed for 6 years. http://web.archive.org/web/20100707073531/http://sve-i-svast...
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. :)https://en.wikipedia.org/wiki/ToneLoc
People still have modems???
I stopped using it after realizing all the misconfigured PBX's in my area were usually car dealerships.
P.s. I just bought a modem not too long ago. I use it to read CallerID and try to determine if a call if friendly, or a robocall. It doesn't click tho. :( I miss the click.
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.
Anyone have servers running 24x7 with hard drives older that that?
What have I done?
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.
Considering the rise of SSD's, what's your prediction of how quickly your revenue will decline?
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.
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 (that's the no-results page when a tool is selected).
I would just ignore them, or if point to the relevant point of license agreement and/or law (if there is such point/law).
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...
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?
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.
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.
[0] https://github.com/slburson/misc-extensions -- specifically 'gmap' and 'new-let'
Formula Graphics seems to have really disappeared as it doesn't even have a Wikipedia page. There's a CNET download that might be it. Not trying it, though.
Mean looking image of a parked up one - the red bag covers part of the system: http://www.vaq136.com/misawa/cobra73418-017b.jpg
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
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.
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.
1e7 copies * 10 hours * 60 minutes * 60 seconds * 30fps * 1280 * 720 ~~ 300 quadrillion
[1] https://www.wolframalpha.com/input/?i=1e7+*+10+*+60+*+60+*+3...
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.
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.....
p.s. I was a 10 years old boy. (:
Nobody uses it now apart from me, but I still maintain it.
And that's why medical software is so buggy.
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.
The first version was released in 2001.
15 years later I still work on it and release new versions. Because people still use FTP.
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.
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.
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.
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 ;)
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.
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...
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.
But why?
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).
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.
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...
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).
"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."
Sadly, the educational applications for Apple IIs I wrote in the mid 80's are no longer in use.
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.
http://www.westinghousenuclear.com/Portals/0/operating%20pla...
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!
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.
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.
https://github.com/paypal/ipn-code-samples
I'm still amazed at how lousy http client libraries are in so many environments.
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. :-(
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:
Amazed and impressed that clever people are using and maintaining this at 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.)
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.
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.
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.
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.
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.
Platform: Lotus Notes / Domino.
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.
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.
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.
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!)
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.
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!
Quite a few hits on Github: https://github.com/search?q=exocortex+dsp&ref=searchresults&...
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.
"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 */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.
http://www.phpclasses.org/package/3195-PHP-Convert-data-from...
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.
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/.
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 :)
The script is an expansion on the web server one-liner: https://github.com/imnotpete/odds-and-ends/blob/master/pytho...
edit: the one liner: 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.
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
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...
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)
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.
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.
My VIC-20 and Commodore 64 versions were better, but those came later
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.
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...
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.
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).
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.
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.
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.
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.
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.
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!
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. :')
To this day, new players are greeted by an NPC that I wrote when first logging into the game.
https://www.magnamund.org/risingsun/February2000/Bookkeeper....
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.
From what I can see of the screen shots it looks like at least the core of that software is still in use.
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...
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.
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.
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
[1] https://pypi.python.org/pypi/transdate/1.1.1 (the initial version was released in the other form)
I have a Python/PyQt replacement, but it requires some more testing and development.
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 ;-)
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.
I'm very amused that even today people use my macro and thank me for writing it.
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`.
1999. DynamicIP tracking script from the dial-up days. Tiny but it's been telling me where my home internet is for 17 years.
https://www.magnamund.org/risingsun/February2000/Bookkeeper....
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!