Skip to content

Both.org

News, Opinion, Tutorials, and Community for Linux Users and SysAdmins

Primary Menu
  • About Us
  • Computers 101
    • Hardware 101
    • Operating Systems 101
  • End of 10 Events
    • Wake Forest, NC, — 2025-09-20
  • Linux
    • Why I use Linux
    • The real reason we use Linux
  • My Linux Books
    • systemd for Linux SysAdmins
    • Using and Administering Linux – Zero to SysAdmin: 2nd Edition
    • The Linux Philosophy for SysAdmins
    • Linux for Small Business Owners
    • Errata
      • Errata for The Linux Philosophy for SysAdmins
      • Errata for Using and Administering Linux — 1st Edition
      • Errata for Using and Administering Linux — 2nd Edition
  • Open Source Resources
    • What is Open Source?
    • What is Linux?
    • What is Open Source Software?
    • The Open Source Way
  • Write for us
    • Submission and Style guide
    • Advertising statement
  • Downloads
  • Home
  • Temporary fixes that become permanent
  • Code
  • Community
  • Fun

Temporary fixes that become permanent

We asked our community for their stories about a "quick fix" that became a permanent one.
Jim Hall April 13, 2024 5 minutes read
A cup of coffee on an orange saucer next to a laptop

freephotocc via Pixabay CC0

If you’ve worked in IT, you’ve seen this: “I’ll just make this patch until someone can do a more elegant solution.” And that temporary fix never gets replaced, because as the old saying goes, “Broken gets fixed, but ‘does the job’ lasts forever.” We asked our community for their stories about a “quick fix” that became a permanent one.

Chris Rigsby shared his experience in writing a fix as a proof of concept:

One morning, my boss appeared in my cubicle, describing a new software-induced political crisis and wondering if I could help. After twenty years, I’ve forgotten the specifics of the issue, but the result still haunts me.

First, I replicated the problem in a development environment. As fast as I could, I hacked together the code equivalent of a MacGyver duct tape, bailing twine, and bubble gum as a proof of concept (POC) only. I was moving fast, putting the word TEMP (and worse, my username) into object names and code as I scrambled to design a demo fix. I fully intended to take an hour to refactor the solution into a more elegant and standards compliant package before shipping it to the functional users for more thorough testing and approval.

Alas, when I demonstrated the POC solution, I heard these terrifying words: “Perfect! Move it to the Test area and notify the customers.” When I replied it would be on its way in about an hour, I had to explain that what I’d just demonstrated was an ugly hack that wouldn’t pass the QA review and needed refinement.

My stomach flipped when I heard the next sentence: “If this fixes the issue, ship it for testing. I’ll talk to the QA people. We’ll patch it in the next quarterly release.”

Sadly, I never got to patch things up and as far as I know, the poorly named objects are still in production today. Lesson learned: never use TEMP, TMP, or your username in widget, table, or code object names.

Byron Patterson used a misspelling in a URL for testing, but it stuck around forever:

Misspelling “subscription” as “subskripshun” so it would be unique and never used intentionally to build a list of courses included in an unlimited subscription a company could buy. Still in use today. The website URL looks like https://example.com/SearchResults.aspx?searchterm=subskripshun

David Both wrote a backup script that he never got around to replacing:

Over the more than forty years I’ve had one or more computers in my home, there’s always been the need for backups. Before I found Linux I used several expensive backup programs that relied on tape drives which were far less reliable than I would have liked. In fact, I was never able to restore from tape when necessary. To make matters worse, every time a tape drive died, the technology had changed so a replacement drive also required replacing all of the expensive tapes as well.

When I started using Linux in 1996, I had an unusable tape drive and tapes that were unreadable. I needed a new approach to backups.

Since my experiences with external USB hard drives was excellent, I decided to use them as my backup medium. All I needed was a program. I tried some open source backup programs and, although they worked well, they weren’t really what I wanted in a backup program.

Way back in 2009 I had been experimenting with the rsync command, which has some very interesting features that I have been able to use to good advantage. My primary objectives were to create backups from which users could locate and restore files quickly without having to extract data from a backup tarball and to reduce the amount of time taken to create the backups. I planned to use this tool until I could find open source software available that I could use for backups.

So I wrote a little program to encapsulate the rsync command along with a bit of code to determine whether a reboot was required and notify me about that. A little later I added code to deal with multiple hosts to backup, and later I added code to handle multiple backup devices so I could have an internal storage drive as well as the external one that I took to my safe deposit box for safekeeping. Then I added code for … you get the picture.

I never found better software to do what I wanted than the “temporary” software I created myself.

Jim Hall created a quick fix that lasted until the system’s end of life:

When I worked in Enterprise IT at a public university, a legislator told our CIO: “We have a bill before us about your course evaluations. If you can make these public in four weeks, we won’t have to pass a law to make you do it.”

Our lead developer said it would take that long to get something into QA.

I had just updated my website to add an open source search engine called perlfect, so users could find the information they needed. I thought, “What if we turned the data into HTML files, I could put perlfect in front of it. Then you can ‘search’ the course evaluations.”

So I volunteered to try it out. It took a day for them to get me the data, a day to automate turning it into HTML, another day to set up and automate the search engine. And then the new “search the course evaluations” website was up.

Of course, my quick fix had lots of “holes.” It searched text on HTML pages, so if you searched for any text that was on all the pages (like “instructor” or “course” or “evaluation”) it returned all the pages. But it was just supposed to be a temporary fix until the developers could write a proper web app.

My temporary fix stayed in production until they replaced the course evaluation back-end.

Tags: Linux Programming

Post navigation

Previous: Is Linux Really Secure?
Next: Learn Bash by writing a number guessing game

Related Stories

BUSINESS_twoforward
  • Fun
  • LibreOffice

Is there a better Pi Day than March 14?

Jim Hall March 14, 2026
A Stylized image of a Raspberry on a blue background
  • Fun
  • Raspberry Pi

Let’s measure pi with a Raspberry Pi

Jim Hall March 13, 2026
programming_keyboard_coding
  • FreeDOS
  • Fun
  • Text Editors

Edit text with this Emacs-like editor

Jim Hall December 27, 2025

Random Quote

Any given program, when running, is obsolete.

— Laws of Computer Programming

Why I’ve Never Used Windows

On February 12 I gave a presentation at the Triangle Linux Users Group (TriLUG) about why I use Linux and why I’ve never used Windows.

Here’s the link to the video: https://www.youtube.com/live/uCK_haOXPFM 

Why there’s no such thing as AI

Last October at All Things Open (ATO) I was interviewed by Jason Hibbits of We Love Open Source. It’s posted in the article “Why today’s AI isn’t intelligent (yet)“.

Technically We Write — Our Partner Site

Our partner site, Technically We Write, has published a number of articles from several contributors to Both.org. Check them out.

Technically We Write is a community of technical writers, technical editors, copyeditors, web content writers, and all other roles in technical communication.

Subscribe to Both.org

To comment on articles, you must have an account.

Send your desired user ID, first and last name, and an email address for login (this must be the same email address used to register) to subscribe@both.org with “Subscribe” as the subject line.

You’ll receive a confirmation of your subscription with your initial password as soon as we are able to process it.

Administration

  • Log in
  • Entries feed
  • Comments feed
  • WordPress.org

License and AI Statements

Both.org aims to publish everything under a Creative Commons Attribution ShareAlike license. Some items may be published under a different license. You are responsible to verify permissions before reusing content from this website.

The opinions expressed are those of the individual authors, not Both.org.

You may not use this content to train AI.

 

Advertising Statement

Both.org does not sell advertising on this website.


Advertising may keep most websites running—but at Both.org, we’re committed to keeping our corner of the web ad-free. Both.org does not sell advertising on the website. Nor do we offer sponsored articles at this time. We’ll update this page if our position on sponsorships changes.

We want to be open about how the website is funded. Both.org is supported entirely by David Both and a few other dedicated individuals.

 

 

Copyright © All rights reserved. | MoreNews by AF themes.