
Still running strong after 1,532 days without a code change. - ryandetzel
http://ryandetzel.com/1532-days-without-a-code-change/
======
DanielBMarkham
The first contract program I wrote was when I was 17 years old. I was working
at a service station changing oil. Some guy comes through who wants to stand
around while I do the work (it happens) so we struck up a conversation.

Turns out he was a bookkeeper and had just purchased an Apple IIe and wanted
to use it for his clients. I knew nothing about accounting, he knew nothing
about computers, so it seemed like a good match :)

Four weeks of spending free afternoons at his shop, and it was ready to go. He
was happy and I had 200 bucks in my pocket. Life was good.

Almost 20 years later, I get a call from him. He says the program isn't
working so well and he wants to upgrade. I'm like WTF? Does anybody in the
universe still even have a working Apple II anymore? Why would he keep using
something like that for 20 years?

He told me that as computers modernized, it became a bit of a status symbol to
have an older-looking system spewing out reams of reports. His customers, who
were mostly small construction companies and such, got the feeling of
stability and security from something that was unchanged.

It is a very strange feeling to get a call about code you wrote a long, long
time ago. If I would have had any sense, I would have realized from the
experience that programming is normally an extremely tiny part of actually
making a business work. But it took me many more years to figure that one out.

~~~
untog
I have a similar story. Fresh out of college (in a non-computing related
discipline) I went to work as a temp for a gas pipelining company. Their data
entry system was obscenely awful- an Access database that was used like an
Excel spreadsheet- entering in the same data over and over again in different
forms. So, I optimised it. Added some forms. Made report templates that
printed out automatically. Eventually I stretched the limits of Access and
turned it into a full VB.NET (shudder) application. I tried to get the IT
department involved but they refused to have anything to do with it- I
couldn't even install Visual Studio Express because I didn't have admin rights
on my machine- I had to use SharpDevelop.

All this happened while I was still an "administrative assistant" on a temp
wage. After a time, I left- it was time, and in any case they'd said that my
work was going to be replaced by an integrated SAP solution that would span
the entire company's workflow. I moved on, got a much better job and have been
programming off the back of that original job ever since.

This was in 2006. I spoke to a former co-worker for the first time in years
about six months ago, who told me to my jaw dropping surprise that they were
still running my application. Aside from anything else, I was blown away that
the thing still worked. There's a certain morbid curiosity that makes me want
to look at the code I wrote back then, I'm sure I would cringe. But hey, it's
still going.

~~~
Flow
There's nothing as permanent as a temporary solution. :-D

~~~
dneb7
This is one of the biggest things I'm grateful my mentor drilled into me:
Never make a quick and dirty solution that anyone else (especially
management!) sees -- it will become the final solution.

~~~
erikb
You know, the great thing about learning is that everything you learn turns
out wrong. And after that the next thing will be that you learn that it's
wrong that it's wrong. And so on.

So guess what, you will probably learn next that quick and dirty is an amazing
thing. Sometimes the morbid, buggy stuff is exactly what's needed and a well
designed solution wouldn't scale to it's task or wouldn't be used because it's
so clean.

------
josscrowcroft
This is just great. I had a very similar experience with
<http://openexchangerates.org> \- hacked it together and left it running, and
only realised just how popular it had become when, one morning 6 months later,
I woke up to over 20 emails, all saying similar things to what the woman said
to OP.

"What the hell! It's been down for a day already! When is it coming back?"

I was pretty bemused, so I checked the server logs and found that it had been
hurtling along at what looked like 60,000 requests per day (I later found out
it was closer to 200,000).

Needless to say I jumped in, fixed it, and got talking to the users who relied
on the project for their businesses or personal projects - it's been a blast.

edit - it's since been completely rewritten, so I can't say the code went
unchanged..

~~~
outside1234
ha! i love open exchange rates! - i hit it once a day with a side project of
my own. thanks for running a quality service!

~~~
josscrowcroft
Thanks! Glad to hear it - email me if you'd like the side project to go in the
showcase.

------
quink
> I set a reminder(thanks Siri) to check these stats later that night.

Thank you, alarm clock! Thank you, spoon! Thank you, hammer!

In any case, thank you for the post, and thank you even more for keeping this
kind of service running for so long :)

~~~
adrianN
How advanced does an AI have to be before you should say 'thank you'?

~~~
petenixey
It actually frustrates me that Siri doesn't give a hoot whether you thank her.

I want to thank her a) because it feels natural and b) to tell her that she's
actually got something right. She's usually less use than an ice kettle so I
want us both to get a kick out of it when she's not.

~~~
lloeki
It could actually have function value as it could trigger some positiveness in
a bayesian filter, subsequently increasing results accuracy. I let you be
creative about the negative sentences.

------
nicholassmith
The nice takeaway from it is that the code you wrote works perfectly well for
a large number of people and is obviously stable and bug-free enough for them
to use it for their businesses. Code isn't about hammering out new features or
moving fast and breaking things.

And if it's written in Perl looking at the source code again might break it so
I wouldn't do that.

~~~
webreac
Is Perl a quantic programming language ?

~~~
yichi
Well, how else do you think <http://www.bennylingbling.com/tag/schrodingers-
bug/> originated

~~~
yogsototh
My best example is a Perl bug I corrected.

It occurred only 27 second by year! Just to think about the probability to
detect it knowing the code is used only about twice a week.

~~~
sedev
I'll bite: how did _that_ happen?

~~~
yogsototh
I don't remember all details. My co-workers searched to understand the bug and
he discovered that changing the creation date for just some second made the
bug disappear. I then discovered he called the function with a bad argument.
Strangely using an integer instead of a time object (I am not sure about that
but you get the idea) will render the exact same result most of the time. I
corrected the bug by using the right function call. I then tried a brute force
search to discover for how many time the bug occurs. And if remember well
there were two close period of a few second each during wich the function bad
called render a different result. It was something like 17 second and 3
minutes later another 10 second. I believe I simply tried for the current
year. I might have tweeted about it some years ago.

------
dugmartin
Zombie projects are fun. I created this in 2006 and haven't changed any of the
code since, other than the copyright date (in 2010 - I guess I should update
that).

<http://passwordchart.com/>

I didn't add Google Analytics until 2008 but here are the stats since then:

    
    
        Visits: 304,619
        Unique Visitors: 246,368
        Pageviews: 361,097
        Pages / Visit: 1.19
        Avg. Visit Duration: 00:00:41
        Bounce Rate: 84.44%
        % New Visits: 80.87%
    

I get one or two thank yous a year from people that get my email from my whois
entry.

~~~
jorgem
I'm not sure you have to update the copyright every year for any particular
reason. Anyone know?

~~~
dugmartin
I guess I just use it as a proxy to show how long the site has been up. I use
a range in the footer on that project:

© Copright 2006-2010

Probably dumb but I do find myself looking in the footer of sites to see how
active it is.

~~~
sbov
We do this, but make the later date dynamic. So it will always say Copyright
<year>-<current year>

~~~
aidenn0
Is that legal? If you don't make any changes the copyright date shouldn't
change.

~~~
eru
Since those notices aren't required, I don't know whether they have any legal
status at all.

~~~
JoshTriplett
Theoretically, the copyright date tells you when the copyright will expire: a
work Copyright 2000 will become public domain ten years sooner than one
Copyright 2010. However, since neither of those seem likely to ever expire in
the first place, this mostly only matters with very old works (around the
start of _last_ century).

------
padraigk
Good article and a good reminder of how what is just a side project to the
creator can be so important to its users.

It looks as if he's updated his forum software about as regularly as the
site's main code because it's full of spam
(<http://forum.invoicejournal.com/>). Might be worth fixing that as the
consistent number of sign-ups and invoices suggests there is a community of
users there to be fostered.

------
forinti
10 years ago I wrote a sales system in Perl with a couple of friends. We
charged something like US$750 (it was really simple: uses a hash instead of a
database). It is still going strong (no bugs reported) and about US$500.000
has been sold with it. That's what I call ROI and stability!

~~~
dkersten
Totally off topic, but I really dislike how ruby (and I guess others?) has
popularized the word _hash_ to mean a hash _table_. I stare at that sentence
for a good two minutes thinking _"how does someone use md5/sha etc instead of
a database???"_ before I realized what was meant. There are plenty of good
(and well known) unambiguous names for this data structure that I really don't
understand why it needs to be given a name that's in common use to refer to
something different (and only kind-of related really). Some alternative names
that have been in common use since the dawn of time are hash table, hash map,
map, dictionary or associative array.

~~~
abecedarius
I think it's the Perlers who started saying that; it predates Ruby's
popularity. (And I agree, I still stumble over it every time I read it.)

------
emilw
After reading the entire article I noticed it doesn't contain a single link to
the actual project. I like your style sir.

~~~
ryandetzel
Would you believe me if I told you that was a conscious decision? :-)

------
rodolphoarruda
This is the living proof that the "web app market" is really stratified and
the value perception within each customer group varies immensely. Who would
tell that a 4 year old scope of features could keep a product alive? Who could
possible agree that a system that supports thousands of accounts could survive
without "hygienical" processes like OS/DB maintenance, bug fixing etc.? Who
could imagine a product with a growing adoption/acceptance not having paid
options included as plans to leverage revenue in the long run? Uff, this is
all mind bogging to me. Congrats to the author though, this is an incredible
story!

------
ericcholis
Gives me a bit of a "ghost in the machine" feeling here. You created something
interesting on a whim, gave it life, and sent it off into the world.
Unbeknownst to you, it chugged on, somehow successfully urging people to use
it. It did this mostly on its own.

I'm sure there's a white paper or talk on the life developers give their
software...

~~~
ryandetzel
What keeps hitting me over and over is I created something very basic, very
quickly for myself and now years later people actually rely on it to run their
business. I felt so guilty getting that call...I felt as if I had let this
women down even though I had never met her. The site was probably down for a
couple of days...how many other people did I let down? How many people lost
money or sleep because I failed them?

~~~
ZoFreX
You might want to consider setting up some basic monitoring. If you don't have
much time to put into this, you get one free watcher with Pingdom (no
affiliation other than that they watch my website for me), and you'll get an
email if the site goes down again.

------
adrinavarro
Please don't sell it or break it down. If it isn't costly to maintain, then
don't sell it for scrap as most people seem to want it. Close sign-ups if
anything, but free users look like they're happy with it and after trying it,
it works nicely. It's something easy to clone and it's not really something
anyone would develop on top of, so rather than selling it for its user base
(selling your users) plus the concept, open-source it. If anyone wants to copy
the concept, it's easy to (and anyone buying it would need to write it from
scratch if they want to make money out of it, anyway).

That gives me mixed feelings…

~~~
ricardobeat
What if the buyer wants to keep the free users happy _and_ make it a
profitable business? One thing leads to another, everyone is happy.

------
RobAley
If there is one thing that you do need to do, its turn off the support forum.
Its full to the brim with spam, and is (probably) the only part of the site
that actually does need continuous attention. Otherwise, congrats!

------
perfunctory
Agile software development must be a conspiracy theory. When a corporate IT
manager keeps hearing "embrace change..." whisper all around him, he starts
thinking that there must be something wrong with their piece of software
that's been running just fine for years. I guess it's good for economy though.

~~~
equalarrow
I went into a Whole Foods near my house that was built a few years ago. In the
checkout line I looked over and could see their 'terminals' in the customer
service section. There were 2 and they we're both running some text window app
on XP.

Naturally I thought, that OS came out 10 years ago, has been end-of-lifed,
this is a fairly new store, _and_ the eol software is connecting to some text-
based something somewhere - who knows how old that part is?

I have a friend that worked for an auto supply-something company that would
remote into their customers computers. He would tell me (this was about 3
years ago) that he couldn't believe some of the ancient stuff he would come
across on those systems. Tons were Windows95, lots of them had malware running
on them, and the business owners somehow kept their business going.

I'm not talking so much about old programs that just run, but more about how
businesses can keep old stuff hanging around. Even with malware and such on
it. It's obviously just another tool to keep the cash flow coming in. Can't
blame them, but such a huge contrast to my day to day which is usually working
on/with the latest of everything.

~~~
HeyLaughingBoy
Could have been XP Embedded. Microsoft has ended support, but is still selling
licenses for it.

------
scribu
From my experience, people will use any free service or product, even if you
explicitly say "this product is abandoned".

------
albertsun
That's the story with the calendar app I use, <http://30boxes.com/>

I don't think a new feature has been added in about 5 years and it barely
seems maintained, there have been a few day-longish episodes of downtime but
other than that it works great.

It has all the features I need and am used to, and I don't have to worry about
the product constantly changing. In a way it's almost better to use a
neglected product.

~~~
srbufi
Awesome app!

------
brianbreslin
I wrote a site on contract when I was 15 years old, exactly 14 years ago this
summer. That site is STILL running. It was filemaker pro + Lasso on a mac
server of some sort. <http://mactalent.com> I don't even want to know what
kind of things are wrong with it today, but it made the guy who I built it for
many thousands of dollars over the years.

------
dmor
Maybe you should keep it, not touch the code, and consider a new mission to do
some marketing experiments with your 2 hours on the train every day... who
knows what might happen

------
jroseattle
While most people are looking for the next {x}-illion dollar opportunity (me
included), the positive charge one gets when hearing that something they've
created is actually useful to someone else is a great feeling.

Such a great story, makes me want to go fulfill those umpteen other ideas I've
got hanging around to see what sticks. (I keep all these ridiculous domain
names as kind of a skunkworks project task list.)

------
nl
I think that is a great counterpoint to the story about the problems single
founders have running 24/7 web apps.

It isn't clear though- is this a paid service?

~~~
ryandetzel
No, 100% free since day one.

------
scottlilly
Inspired by this post, I went to the website of a company I worked for back in
1999-2000. The login screen for the first "real" web app I ever wrote looks
exactly like I left it.

The company was in a bind with some contractors who were developing a web app
for them, and I had recently written my own personal HTML site. So, I bought
"Teach Yourself ASP in 24 Hours", read it over the weekend, and put together a
little prototype, to see if I could actually connect to the database and
report the information they wanted. I ended up writing that website for them
over the next two weeks. Once I deployed it (no IIS web admins at the
company), I went back to my regular Clipper work.

I wouldn't be surprised if it hasn't been touched in years.

Part of me wants to be happy that it's lasted so long. But I'm also a bit
disappointed that all the other 'cool' stuff I've worked on since then
probably hasn't had one-tenth the use of that site.

------
michaelfeathers
> Still running strong after 1,532 days without a code change.

Oddly, I think that's a great definition of "systems software."

------
pnathan
Hi Ryan, this sounds interesting. It sounds like something that could use some
TLC and maintenance.

If you haven't committed to a decision with it, give me an email (it's in my
HN profile).

regards, Paul

------
taftster
From the blog post: "Now I’m wondering if I had continued to work on it, if I
hadn’t neglected it could it actually be a useful successful, dare I say
profitable project?"

I'd argue it's likely successful just for the mere fact that he _hasn't_
touched it in four years. Had he actually tried to monetize the project, he
probably would have just gotten in the way and screwed something up. This
gives evidence to the "simple is more" rule.

------
nashequilibrium
Thanks for post! I found this very inspiring including some of the comments,
since it shows that solving a real need almost builds a business itself with
grateful consumers. It also does not require the latest and flashiest software
tools. I wish there was a blog that reported these little small projects that
are basic and solve a real need without facebook logins flying around and
asking me to import my address book.

------
TamDenholm
Hey Ryan,

Id be very interested in taking this over and looking after it properly.
Please shoot me an email and maybe we can talk about it.

Thanks Tam Denholm contact@tamdenholm.com

------
keithpeter
"I had forgotten about it, I had neglected it, I had basically written it off
but this soft voice reminded me that all though I had written it off she had
not and that she actually relied on it to run her business."

Is this likely to become more of an issue as people move to Web based
applications for things they used Office and file folders for before?

------
rwhitman
I have 2 products in a similar-ish situation, both of which I don't even
remember where the source repo is to make a bugfix even if I had to....

But after a few outages that I had no clue about until days had passed, I did
learn to sign up for Pingdom so I can at least reboot apache within an hour of
the site going down

------
mgurlitz
The site is back up. Google has a cache now in case it goes down again:
[https://encrypted.google.com/#q=cache:http://ryandetzel.com/...](https://encrypted.google.com/#q=cache:http://ryandetzel.com/1532-days-
without-a-code-change/)

------
Mc_Big_G
Heh, one of the first web apps I wrote was around 2002 and it ran on an NT4
box without a modification or a reboot until this year.

I left the company 1.5 years ago and got a call from a supervisor asking me
how to start it up again after a power outage and UPS failure.

------
powertower
website: <http://www.invoicejournal.com/>

It's actually not a bad template. To the point.

~~~
ben0x539
Oh, dear, the sign-up button says "SIgn Up" instead of "Sign Up". I'm worried
that that is the first thing I noticed.

------
kristianp
It makes me a little sad that it hasn't made him any money. I imagine it might
be good for the resume, though.

------
opendomain
Hey Ryan - I would love to help you with Invoice Journal. Contact me at Hacker
@ (My username) dot Org

------
ahmedaly
the website is very slow.. maybe because loading.. consider moving it to a
larger server, and monetize it in somehow to pay off!

~~~
ryandetzel
Yeah, my little Linode box isn't setup to handle over 300 simultaneously
users. :-( Normally it's nice and speedy.

~~~
StavrosK
* apt-get install varnish * Set it to cache the specific page * Boom, 100k users at once

~~~
ryandetzel
I was in the process of doing that as you typed that out. I never thought it
would be needed though!

~~~
StavrosK
Varnish is amazing, just install it by default, it can't hurt.

~~~
ryandetzel
New post, How varnish saved my ass when I was #1 on Hacker news. :-)

~~~
StavrosK
Already done so many times :P

[http://blog.historio.us/how-we-got-100000-visitors-
without-n...](http://blog.historio.us/how-we-got-100000-visitors-without-
noticing-4)

------
otaku888
I think both sites have just gone down. :)

~~~
ryandetzel
Now I remember why I don't use apache any longer. :-)

~~~
ericcholis
Well, the HN effect probably isn't helping either...

------
cubicle
Site's down.

[https://encrypted.google.com/search?q=site:news.ycombinator....](https://encrypted.google.com/search?q=site:news.ycombinator.com+patio11+keepalive)

