1. 48

There is only a finite amount of code you can write in your career/lifetime, so what is the oldest code that you have written that is still running - (ie: Code others still use, production code, little scripts or things that you have scheduled to run?


  2. 46

    This isn’t my oldest code, but it’s code that I’m the most surprised that is still working:

    I once built a small web form that automated some accounting processes for a small business. The accounting lady was nice and would always talk to me about The Big Bang Theory. I didn’t like the show, but I think she assumed I did so I went along with it. As a fun little personal touch, I included an endpoint in my API to scrape a random BBT quote from a generic “TV Quotes” website. I then would display that above the simple little form.

    She loved it, and 6 1/2 years later, that silly little scraper is still working. She makes sure to tell me about how much she loves it every time our paths cross.

    Probably my favorite code I’ve ever written.

    1. 36

      I was the second developer working on TortoiseCVS, so I imagine there’s at least a few fragments of my code remaining in there after all this time :-)

      Back in the late ‘90s I was chatting at work one day with Francis, a friend & colleague of mine. We were transitioning off sourcesafe(!) and bemoaning the state of CVS clients for windows. I said “wouldn’t it be great if you could see the a files status directly in windows explorer and right-click to do CVS stuff?”. Francis came back into work the next morning and said “Done it.” And that was the very first version of TortoiseCVS, which ended up being used by embarrassingly large numbers of people.

      1. 3

        I don’t use Windows nor CVS anymore, but when I did, I used TortoiseCVS (and later TortoiseSVN), so thank you for working on such an excellent tool!

        1. 2

          Here’s a random anecdote: I work on a desktop app that shows overlays on files in Windows Explorer. TortoiseSVN shows like 6 or 10 overlay icons (I forget exactly.) But Windows only supports a max of 15 overlays. So my app’s 3 overlays fight with TortoiseSVN’s however-many to compete to show overlays. Our customers who use both can’t get all the overlay functionality. An the coup-de-grace is that the overlays that get shown are based on the ones registered in alphabetical order in the Windows registry. We added some spaces to the beginning of our keys to get to the top. Sorry!

          1. 1

            Ha! Don’t let the TortoiseSVN devs hear about that one, or they’ll be prefixing their overlays too… I can imagine that escalating quickly :-)

            1. 1

              Another company added two spaces, so we’re at three spaces now!

          2. 2

            I prefer CLI tools, but nonetheless I am/was one of those users. Neat! Hi. :)

            1. 1

              Thanks for making CVS a bit more bearable back in the days.

              1. 1

                Wow, while I haven’t used TortoiseCVS I have used many Tortoise* clients that were influenced by it!

                Thanks so much for helping get this line of tools started!

                1. 1

                  Fun fact: my first tech job was at a place that transitioned from SourceSafe to SVN in 2009, and only switched because they could no longer run SourceSafe on a supported OS. We used TortoiseSVN, of course.

                  Amazingly, we switched to git in 2018, and the SourceSafe guys hated it.

                  1. 3

                    TortoiseCVS is a direct result of a transition away from SourceSafe.

                    The games company where I worked at the time, we were using SourceSafe for code. Everything else was just on network drives. I wanted to extend VCS use to other stuff (ie art assets, design docs etc etc). I inquired, and discovered that SourceSafe licenses would cost 800GBP each. No way in hell the company was going to fork out that for everyone. So I suggested CVS (no svn in those days!). Despite some management objections - “How can it possibly be any good if it’s free?” - we rolled it out. And quickly decided we hated having a separate stand-alone client. Hence TortoiseCVS.

                    Fun fact: the first versions of TortoiseCVS used Tor Lillqvist’s mindblowing and then-very-recent win32 GTK+ port. And ran the GUI directly from the shell extension DLL. So when the GUI crashed (profusely often), explorer would die, killing any file windows you had open. And the desktop.

                2. 14

                  Back in the early 2000’s I wrote a utility that transformed regular expressions into new expressions that would match the input of the original expression after it had been Base64 encoded. I still talk to people who work with that tool, and they’re still using it like 20 years later. The source has long been lost.

                  From what I understand, the compiler that I wrote for some custom hardware back in the day is still being used at that company too. That’s also pushing 20 years old now.

                  1. 3

                    how on earth did you do that? seems like that would be pretty tough.

                    1. 3

                      The Base64 thing? I still have the slides somewhere I think. I’ll try to find them.

                      EDIT: Found the slides: http://www.erlang-factory.com/upload/presentations/225/ErlangFactorySFBay2010-RobKing.pdf

                      The tool and initial research dates from around 2004-2005; the slides above are from a talk I gave about rewriting the tool in Erlang in 2009. Forgive the awfulness of the slides; I’ve never been good at making them.

                  2. 11

                    My first flip phone had 10Mb of data, and a very limited browser with no Javascript or pretty much anything else. I wrote an Internet portal for it that could do simple things like display email from an IMAP server, scrape bus timetables and status, and check status of my home network. I’m still using the same portal on a touch based smartphone because it’s there, works, and I’m too lazy to revisit it.

                    1. 7

                      I made this door latch controller for my hackerspace about 5 years ago; apparently the code I wrote for it has been running continuously ever since. Eventually the access log will overflow the disk, or the hackerspace will move. It’s not that old, but I’m still pretty proud of it.

                      1. 7

                        I’m pretty sure there’s a decent amount of frontend code I wrote still running on Airbnb from 2012. That was pre-React and so it’s probably on the chopping block these days, but I doubt they’ve managed to axe all of it; last I heard they’d only recently managed to replace the datepicker. In terms of code that may not be replaced for years to come, I wrote their reverse geocoding service as well (mostly just a simple Dropwizard service that munges and caches data from Google, correcting for a few geographic differences in opinion); it’s one of the highest-throughput services there and has been chugging along basically untouched for years.

                        And there are some arcane Bash scripts they’ll probably never replace, mostly out of fear :P

                        Sadly, anything pre-Airbnb has almost certainly been lost to the bitrot of time.

                        1. 3

                          I wonder if they still run my calendar scraper

                        2. 7

                          In 2005 WordPress themes very the hottest internet commodity but they were all designed for left-to-right languages and were using CSS.

                          Before then, it was easy to flip an entire site to be right-to-left with <html dir="rtl">, and designs were based on HTML tables and would correctly get flipped horizontally with that attribute. However, CSS based design were a regression from that point-of-view because they were filled with hard-coded directions like margin-left and padding-right.

                          I wrote a Python script full of Regexes that converted all of those CSS properties, including combined ones like margin: 1px 2px 3px 4px; and put it up as an online converter. It’s been running since then. It briefly went offline a couple of years ago and I got a lot of emails asking me to fix it. I haven’t had to touch it since I wrote and I wouldn’t dare change any of it by now.

                          1. 6

                            Did a bit of code before I started university for a local shop for converting between a non standard format and making to into csv so they could use Excel to do their usual workflow.

                            I visited a few weeks ago when I needed to buy a piece of tuning and the secretary thanked me for making that small program.

                            That program still works a few times everyday and will probably continue to do so.

                            I wrote it when I was 15.

                            And I’m turning 30 soon.

                            I feel old.

                            1. 6

                              AFAIK this monstrosity is still running in production at a consulting company since I implemented it in 2010. I was the application engineer configuring a company’s new internal search engine product. I’d worked for the search engine company for less than a year when I was approached to “make this work because we sold it” and was offered the full resources of the company to make it happen.

                              As a part of the search engine indexing process, we needed to use a Windows virtual printer driver to convert Microsoft Office documents – all of them, mostly hundreds of gigabytes of PowerPoint files – to Flash files. This virtual printer driver produced a great looking widget that could highlight search terms and was basically pdf.js before such existed and it worked on anything that could be printed. This driver was a closed-source solution proffered by a company of one developer: a Russian with tech support turnaround time measured in weeks.

                              The problem was that our crawling and indexing process was very divorced from the Windows world, having been originally a Linux and Solaris-focused system. Fortunately, the crawling framework allowed shelling out, but this customer didn’t allow us to ship anything one-off: whatever we did had to be a part of the product or capable within the tools provided by the product. We couldn’t write some program in C or C++ to do it.

                              The most recent release of the software included Ruby, as we’d just shipped a small Rails app as an add-on component for doing thesaurus and knowledge base management. I was specifically told not to rely on Ruby to be there because the Rails app was basically beta quality at that point and the team behind it wanted to move to JRuby as soon as JRuby could run Rails (it couldn’t at that time).

                              You may be able to see where this is going.

                              I read over the Ruby Win32 OLE library docs and figured out how to submit print jobs. I wrote a little Ruby script that took the input file, “printed” the file, and spat out its location on disk – no object store in those days. A later transformation turned that location on disk into a URL. Once a file had been converted, it needed not to be converted again, except when they wanted to make changes to how it printed. A full reingest took weeks because the printer driver could only process one file at a time! It could queue lots but it was still single-threaded.

                              The company in those days was producing on the order of 750 MB - 2 GB of PowerPoint files per day. I can’t imagine what the crawl is like now but I really hope that someone came along and made it better or they ditched the Flash preview step in favor of a PDF conversion. They couldn’t have gone up a major version release, because then I think the next major version of the search engine product did move to JRuby. If it wasn’t the next, it was the following release. JRuby on Windows didn’t expose the Win32 library in the same way: they’d have had to rewrite the script to use Java’s Win32 integration, IIRC.

                              There are also some indicators that code I wrote is still in use in the backend of https://catalog.archives.gov but I cannot be sure of it since the primary developers abstracted our product away extremely well.

                              1. 5

                                Probably a DOS 16-bit executable packer I wrote back around 1997 (aPACK) and the compression library I wrote for it (aPLib), I still sometimes get an email from somebody telling me how they are using them, which is awesome.

                                If you are using some obscure little free library or tool, consider taking the time to send the author a quick email. Sometimes it can really brighten your day to get one of those.

                                1. 5

                                  I wrote some computer vision software for a medical device back in 2007 that’s still running. I’m mostly impressed that the entire software stack held together the last twelve years over the changes in technology and bankruptcies / acquisitions. It’s one of the earlier projects from my career and still the piece I’m most proud of! Every couple of years I put in a couple of hours contracting for the current owner to do minor tweaks and such.

                                  1. 5

                                    This is dreadfully mundane, but… I wrote an IRC bot over a weekend or two my senior year of undergrad, between studying and working on final projects. It gets used in one channel with a population of about half a dozen, and has a grand total of four semi-interesting features… But it’s still there, 11 years later. There’s been two attempts to replace it that I know of, both of which succumbed to second-system effect. In the mean time, George The Bot keeps on logging and passing messages.

                                    1. 5

                                      This is terribly embarrassing, but I made a WordPress site for an upmarket Stockholm restaurant in 2011 (the beginning of my career when I had no skills and no clue), and it’s still online.

                                      1. 4

                                        Still holds up!

                                        1. 2

                                          I love the scrolling image at the bottom. Not sure if we need more “fun” in restaurant websites, but this one is a nice touch!

                                          The ‘baren’ link has expired.

                                        2. 4

                                          There’s a big whack of the iTunes Store video pipeline that I understand is still in production. Not the whole thing any more, of course, but the color correction, rescaling, and H.264/265 stuff is largely still mine. This would have been in ~2008. Of course, I had 15 years of experience before that, but most of that stuff (Perl DBI? C++ running on Irix? whatever horrible Python web nonsense I was churning out during the first collapse?) is long long long dead and buried.

                                          1. 4

                                            I had some code go out of production last November after 22 years of daily operation. It was a VB6 app that interfaced with a proprietary medical lab system. I never thought I’d ever had code running that long in the world.

                                            1. 2

                                              Same. I’ve got an MFC app that I inherited a while back that’s still in use at various companies (still sold too). My initial contribution was about 17-18 years ago, the software itself is a little over 20 yrs old. I’ve also got a handful of related VB6 and more recent .Net utils that ship with it. I’ve also got a classic asp app that’s still kicking.

                                            2. 3

                                              I wrote code for testing water in the City of Raleigh, a city that I currently live. In retrospect I guess the fact that I don’t filter my water implies that I am reasonably confident in the code I wrote.

                                              1. 3

                                                The first code I wrote professionally, about 12 years ago, is still calculating promotional pricing at thousands of registers across many countries and brands.

                                                Other than to squeeze new features around the corners, nobody is brave enough to change it (all existing bugs are probably relied upon by a customer somewhere), so it’ll likely remain somewhat unmodified for years to come.

                                                1. 3

                                                  I have an Apache module I wrote in 1999 that is still in use [1]. Also from 1999 is is the code that runs my blog. And I just found a program I wrote in 1995 (for a class on Unix system programming) that is still in my path, so I guess that counts? [2]

                                                  I also have a program [3] that I play around with from time to time that I started writing I think in 1993 or 1994.

                                                  [1] Now behind a proxy as I haven’t updated the module for current versions of Apache.

                                                  [2] It’s a replacement for ls that was a class assignment.

                                                  [3] A Forth like language. It still compiles and runs, but it’s not in current use.

                                                  1. 2

                                                    I wrote a python script that assigns x random styles to y teams ~7 years ago for a game jam event that occurs twice a year at my university and when participating to the event again a few days ago (I’m not an organizer anymore, but the jam still lives on and I’m also proud of that), I learned that the organizers are still using it.

                                                    They only converted the script to python 3, but it’s mostly the same and it makes it very easy for the organizers to prepare the event. I was quite surprised. A simple solution to a simple problem.

                                                    This year, I participated with Totema Studio, we were assigned [Puzzle, Dialogs, Adventure] and we made Beer Please! in 48h.

                                                    1. 2

                                                      My oldest code still alive is probably the Forth kernel in OpenBIOS, which I must have written in 2002 or 2003 and is to this day used by QEMU’s PPC target. My name changed more than that code did.

                                                      The oldest commit message in that project is from 2006 and points out three different version control systems: tla, svn and git, while the CVS repo we worked with back in 2002 is probably permanently lost. [edit: and I totally forgot about our bitkeeper experiment inbetween]

                                                      1. 2

                                                        Late summer 2000, I wrote a C++ markdown-like processor to rebuild my personal website, generating static HTML pages out of TXT files plus a few goodies (hashing filenames, building an index page, verify every single JPEG and HTML is linked from somewhere, updating via FTP only the modified files…). In the first lines I recommend myself to compile using -Wall -m486 -O2.

                                                        It ran daily for 10 years. I still occasionally run it for the purpose it was born (only once in the last six months). I guess this somewhat counts as “code still running”.

                                                        Source code is so ugly I never bothered to release it. Not only lots of global variables and pointers, I went as far as creating my own String class and TextList collection because the C++ equivalents gave me a lot of headaches.

                                                        1. 2

                                                          Yikes. Well the first real program that I wrote for work was this specialized utility for performing a little subset of a specific part of a specific type of oilfield operations in like 2009 or so. Written in I want to say .NET 3.0 for WinForms. It isn’t a terribly great program, but it’s about 1000x better then the monstrosity that it replaced. That old program had been clunking along for like 10 years before I replaced it, so odds are my replacement is still out there, chugging along, on a couple thousand computers around the world. I left that company quite a while ago, but this makes me think I should check up on if it’s still out there.

                                                          1. 2

                                                            I guess the oldest code I have written lives in my .vimrc and provides some bindings. Argh, now that I am reminded I am tempted to recompile a litle puzzle game I wrote approximately at the same time (clone of a preexisting one, but with undo for misclicks) and play it a bit… That should be 2005 at the latest.

                                                            A tool for customisable data acquisition from an ADC system that still works is probably ~2007 version, ~2003 version got obsoleted by ISA interfaces being hard to come by — but I think some code is shared between the two.

                                                            A web system (coordinating education events, and processing the records, mostly) with a database name ending in 2010 (a rewrite sharing some code with 2009 version) is definitely still running. And handles hundreds of things per year, with a lot of participants (and reports). I know, I sometimes chat with the current maintainer and tell her what was the logic of the code nobody normally has to touch nowadays. But some functionality seems to have become «dark functionality» — it requires some knowledge to reach (only useful for a few qualified people anyway, and one can request a report of load-creating size), so either it entered the workflow (maybe as a yearly task), or people forgot it is even there. Sometimes I remind people it exists (in the context of something they want to do).

                                                            1. 1

                                                              I used to contract for a pretty big UK e-commerce (Etsy-like business). One of the projects during their migration to the cloud was to move all assets to new storage and build a service for resizing and restyling images.

                                                              At the time majority of business was powered by a massive Rails application with lots of outdated dependencies and custom extensions, including Paperclip. We had to build a Paperclip::Attachment replacement working with our service.

                                                              I’m still in touch with people from that company and from what I know it’s working fine and not causing too much troubles.

                                                              1. 1

                                                                Many moons ago, I got my first job as a part time web developer for a big corp. Just last month, I discovered the website of this big corp still include some of my badly written javascript codes: “favadi.js”.

                                                                Yes, at that time if we want to have a new javascript function, the standard practice is creating new script: “alice.js”, “bob.js”…

                                                                1. 1

                                                                  Pretty much exactly 10 years ago I wrote a kind of an alarm converter for one of the volunteer fire departments where I lived back then.

                                                                  It is still in use today at one of the biggest manufacturers in the area to forward alarm messages that come in via a pager to the DECT phones of the employees that are part of the volunteer fire departments.

                                                                  I know that because they never took my email out of the configuration once the testing phase was over and I still get the weekly test messages and whenever something is happening.

                                                                  This was also my first time writing ugly C(++) code that was aimed to be running on Linux.

                                                                  1. 1

                                                                    Well, I’m early in my career, but in 2016 my company released a product with my serial protocol code in it. For context, some of our products are 20 years old and still out in the field/being sold as new, so it’s likely that piece of software will be around for the rest of my career. :)

                                                                    1. 1

                                                                      I wrote a quick Perlk wrapper script as a front end to a certain job queue manager, in the waning years of the last millenium. Google tells me it is still in use where I wrote it.

                                                                      1. 1

                                                                        That would probably be my ’1998-99 JPEG codec, still used by a few projects. An interesting effect of 3-clause BSD license is I was able to track its use somewhat.

                                                                        Have also some software (and hardware) we shipped as early as 2006 still running 24/7 in industrial installations.

                                                                        1. 1

                                                                          In the mid 90s I took a big fat field upgrade manual for Wildfire, a telephone based voice assistant, and automated a bunch of the low hanging fruit in Perl.

                                                                          As recently as a few years ago I’d hear from field engineers still running / maintaining my code :)

                                                                          (I don’t know if Wildfire is still used anywhere anymore. I rather doubt it now that more ‘real’ smart assistants are a thing. This one was pre-recorded voice prompts and a body of C++ code :)

                                                                          1. 1

                                                                            I once met an old-timer. He said all of the code he’s written is now obsolete. It’s important to remember that software is like a plant - it grows and it dies at some point.

                                                                            I owned an internal language that processes all incoming Windows and Xbox telemetry. It’s still running and gets many millions of events per second. The language is used by hundreds of Microsoft employees to sift through the data.

                                                                            One of my colleagues worked on the Windows shell around 2000. He worked on the Windows thumbnail cache, among other things. What impact!

                                                                            1. 1

                                                                              I suspect the oldest is circa mid-1990s: chunks of 3D CAD software used by naval architects/shipyards to design everything from yachts to tankers, compute the most efficient way to nest the parts on plate steel stock, and drive NC cutting machines. More recently, I suspect a decent whack of 2000s-era equities trade allocation software used in a big bank is still chugging along processing trades, specifically the bits relating to Japanese markets.

                                                                              1. 1

                                                                                I worked on an embedded HTTP and TCP protocol stack for Siemens around 15 years ago. I could imagine some of it is probably running in some form still.

                                                                                1. 1

                                                                                  I cowrote cgdb, a curses-based gdb frontend, with a friend of mine back in like 2003. It’s some of the more embarrassing C code I’ve written, but I’m pretty sure a lot of C/C++ developers still use it.

                                                                                  1. 1

                                                                                    I made a simple PHP wiki in 2003. It was the first Open Source software I properly released. The sourceforge instance from back then is still running although broken.

                                                                                    Fun fact: Some guys turned it into a business and all I got was this lousy t-shirt. Ok, actually it was a polo shirt.

                                                                                    1. 1

                                                                                      Back in 2006 or so, I wrote a little bit of code for a flight simulator. The company eventually went bust, but last year I was surprised to find that a simulator is still working in Singapore! Some of the gauges on the screens in the centre of the console were made by me: Cockpit image

                                                                                      1. 1

                                                                                        An HTML5 logistics app I wrote a few years ago, which runs on scanning guns and touch-screen PCs and interfaces to SAP, is still apparently running unmodified and shuffling around >$1M of stock a day all around Australia … kinda proud of that one.

                                                                                        1. 1

                                                                                          I wrote this little ‘name generator’ in 1993, revised it in 1995, and put it on the web probably sometime around then using cron jobs to generate sample output. According to the Wayback Machine, Yahoo started linking to it around January 1997, and there’s a direct capture of the page and the script from later that year. Although it has changed servers and URLs, the site and the cron jobs that run it are essentially the same.

                                                                                          1. 1

                                                                                            My employer uses an application which I will call XYZZY to file documents in our document management system. XYZZY intercepts the Windows Open and Save dialog boxes to work with our DMS. If the preference file is empty then XYZZY crashes with a scary error message. XYZZY regularly empties its preference file so this issue was one of our leading sources of tickets. I wrote a VBScript called FixXYZZY.vbs that checks for and deletes an empty preference file. I wrote the script in 2013 and we still run it on login for users with XYZZY installed.

                                                                                            1. 1

                                                                                              At my last job I wrote a PHP nightly Cron task that pulled data from SQL server into Mysql tables using Coldfusion db connections. It ran nightly accrued all new data and then flipped new site tables replacing old site data tables instantly, and should the many hours long task fail for any reason the task would retry automatically the next night. For years it ran faithfully nightly. It “crashed” about 3-4 times yearly when an M$ server update the db server was on would restart due to automatic updates on some patch Tuesday. It would fix itself the next night. This app was retired recently because the business went under.

                                                                                              In my current job for my department, they needed a personnel lookup tool for staff to ldap data. In less than 1 day I threw together Drupal7, Views + LdapViews and Rules and made an ldap search form I can add/remove columns based upon configured fields. Site users can be provisioned from ldap via rules that store a user listing to a temp table, so the tool kinda dogwoods itself partly. This was easy to create And is used daily by secretaries and staff. They even wanted to bolt it into a larger campus project to allow staff lookups within other hosted applications this year but I said no (its an app I never intended to be used outside our small unit)…

                                                                                              I’m very proud of both of these.

                                                                                              1. 1

                                                                                                About 10 years ago, during my first software engineer internship in a French video games studio, I wad tasked with setting up an automated build system. It was all from scratch in C# and got massively extended and is still in use 7 years after I left the company. I wish I heard about TeamCity though, that’s what they used on the next job and I understood why…

                                                                                                1. 1

                                                                                                  For me, it’s probably code from my first job, running on an Intranet for a car sales company.

                                                                                                  If that has been completely rewritten, then it would be my blog’s CMS.

                                                                                                  1. 1

                                                                                                    I started working on BibDesk, a reference manager / research notes DB for BibTeX and LaTeX, sometime in January 2002, possibly even earlier. There’s probably some of that code still around in the current version, so that puts it at a little over 17 years.

                                                                                                    It’s a little sobering to think of how much other code before and since has come and gone.

                                                                                                    1. 1

                                                                                                      I am still to young to have decades-old code. But two instances that I can think of: my HMM part-of-speech tagger that I wrote as a student in 2008 is still in use at several companies. It’s not state-of-the-art anymore, but it is fast, robust, and easy to train (training only takes a few seconds on a single CPU, not a lot of hyperparameters to tune).

                                                                                                      The other one, which is being deprecated by now due to yum -> dnf, is the yum-priorities plugin. I probably wrote this in 2006 or so after reading a complaint about protectbase plugin on a CentOS mailing list or forum. Took about an hour to figure out the yum internals (hadn’t looked at the yum code base before) and write the plugin. Somehow it ended up in the official yum packages and has had moderate use afterwards.

                                                                                                      1. 1

                                                                                                        Face recognition web API at a bank. Written in Clojure + Pedestal, using libraries provided by FacePhi. It is on Github if anyone wants to take a look.

                                                                                                        The bank put a SOAP wrapper around it so it could be added to their “omnichannel enterprise service bus”. It is used by their apps to do face authentication.