Change Log
Much of the older stuff is ancient history and I'm just guessing about dates.
Early 1996
Launched the initial version of the game basically just a Java applet front end for my old Unix-based server.
It only supported 8x4 and it required a socket to talk back to the server. Firewalls were not yet common
and this worked. It had a super simple static 4 page web site and the scores stuff was just a Java
text list. It was hosted at Central Data with some kind of weird URL like "www.cd.com/~denny/netcell/index.html".
Still somehow it got discovered and early Freecell savants ran up streaks of 1000 or so.
Later 1996
Switched to using HTTP instead of sockets so we could get around some corporate firewalls. At some point early on
I switched to using web pages to surface the scores stuff so we could use tables and have more statistics. I got
an early lesson in how vocal people can be about relatively innocuous changes.
Nov(?) 1996
I changed jobs to work at Spyglass down the street from Central Data and NetCELL hosting moved with me. It
probably had a similarly tangly URL, e.g. www.spyglass.com/users/dcronin/netcell/index.html or some such.
Mar 1997
Spyglass didn't last long. They closed their corporate offices in Champaign and I was given two months of
severance pay. In a hurry to replant NetCELL Mike Heins hosted me on his minivend.com server, again with a long
and confusing URL. Somehow folks followed me through the changes.
Summer 1997
I went to Microsoft and continued hosting NetCELL with Mike. By this point I think I was using his
Minivend server and his [tag] language to make the pages somewhat dynamic.
Fall 1998
I moved out of my initial Pocket PC group to MSNBC.com. I signed a 6 month contract to do web development
for Tim Lee who had the domain name cool.com. It was a heady time for the Internet
and we all thought we were going to get incredibly rich. I integrated Freecell with cool.com along with a big
"tunes" project to try to host mp3s so bands could share their music. And the mainstay was that
we picked a cool new site every day. Something which was pretty common back in the early days of the Iternent.
I also added chat rooms and had a bunch
of annoying teenagers in the cool.com chat room (MadChatter) having drama about this and that.
Spring 1999
I recommended Tim Lee sell cool.com for a few million dollars and let some big dev shop take it over
because me as one lone web developer couldn't compete with the likes of Lycos and Excite. But Tim hung on to
the name, got some funding, burned through it, went bankrupt, lost the domain name, and now I have no idea
what happened to him.
This tells a bit of the story.
2000
At this point I think I bought freecell.com for $1000 and finally moved to a domain worthy of the content.
I tried to move what I had developed for cool.com to coolios.com, another domain name I picked up back then.
Shortly thereafter got sued by the rapper Cooio though. Then I bought coolpick.com and moved that content again.
Mid 2000
In May I implemented tournaments allowing folks to play a fixed set of deals
to see who could solve them fastest. Initially I only ran 2-3 tournaments per week with a 2 hour Masters
tournament on Sunday. I was getting decent ad revenue so I gave a whopping $50 prize to the winner of the
Masters.
Late 2000
I was using a lot of Javascript and "Dynamic HTML" at MSNBC and realized I could implement the game in
Javascript using XMLHTTP to make calls to the server. This was before that technique was christened "AJAX".
I carried two confusingly different implementations of the game for a while, the Java and the DHTML.
And anytime I added new features I had to implement in both Java and DHTML. I remember adding support for
variants (not just 8x4) and having to do it in both Java and DHTML. What a pain. I think early on 10x6 was
the biggest I could do. 13x0 was still a dream.
2003
At first the DHTML/Javascript was Internet Explorer only.
But then even Safari and Firefox/Mozilla
were starting to play the DHTML version and Java usage had
dropped to about 5% so I discontiued the Java applet flavor of NetCELL. I briefly packaged the DHTML version
up as an .exe application you could install it and made it so Anonymous mode didn't require a server connection
so you could play fully offline.
2004
I think it was around this time that I switched to using a database for a lot of stuff but still kept
scores lists in a complicated linked list in the server. But instead of using files for users and statistics I
started using database tables. Somwhere along the line I added a bunch of choices for card faces, writing
a program to generate card images. I offered Hollywood, Motorcyle, Fairy, Bold, Kitten, Puppy, Nature,
Booze,and Foil.
2005
This is about how far back my
usage stats
go and it looks like this was probably peak traffic time serving about 120,000 games/day.
2007
I sold freecell.com to some investor guy for the princely sum of $65,000 and bought freecell.net for $2000. I followed
Google's rules for moving domain names and as you can see from the above graph
most of my traffic stayed with me.
2008
I was starting to have eyesight issues so I implemented larger scaled cards, initially choosing about 8 fixed sizes.
The client would pick the most appropriate size and use that set of card images. I continued to support "old
cards" because there was a very vocal contingent of users who insisted those cards were clearer. It might
have been at this time I dropped the novelty card faces as I'd had very low uptake on that.
2010
I briefly had a whole separate mobile client with slightly different Javascript and some mobile-friendly
web pages.
2014
I was laid off from Microsoft and took advantage of the 3 month paid vacation to implement "responsive UI"
which just uses the same set of web pages for all devices but causes them to dynamically reformat
depending on the screen size of the device. I likely went to a single set of card images at this time
as browser scaling of images was getting much better and they no longer looked all ugly and pixel-y.
2018
I moved all score keeping functionality into the database, no longer using the server to do field-specific
sorts of the lists. I implemented a bunch of Perl CGI scripts to query the database and provide the
desired sorts. I also made all the site data available via some CGI Perl scripts so folks could build their own
unique views on the data.
2020
During the COVID lockdown I implemented Elo using a system the Tyler (ElGuapo) proposed
(which I think in turn came from SlowPoker) where games and humans
exchange Elo values so that both eventually converge on correct ratings. This took a ton of work
but Tyler was very helpful and we got through it. He took over some tweaks needed to make all the lesser
played variants fall into line.
2025
I retired and with a bunch of free time undertook a complete rewrite of the server and the client.
The older server was writtein in C/C++ with code dating back to my initial Unix implementation circa
1995. The client was an unmanageable mess of Javascript. The rewrite moved the server into C# with
a separate Linux box spun up and provisioned to host the C# app server. The client was rewritten in
TypeScript which is just type-safe Javascript.
Aug 11, 2025
I went live with the new version. Here's the summary of user-visible changes.
Winnable mode is gone. Winnable as a separate scoring mode
is history. Now the more streakable variants are all guaranteed
winnable and any unwinnable deals are filtered out. Affected
variants: 13x0, 5x7, 6x5, 4x10, 9x2, 11x1, 7x4, 8x3, 5x8, 6x6, 10x1,
and 12x1. You can specify unwinnable games via the Custom menu.
HotStreak is gone at least for the time being. I will
probably try to bring it back as it's an interesting mode of
competition but it's had pretty low adoption so it didn't make
the list for this release. Edit: actually looks like never. I've had
only 1 query about it.
Old cards are history. I designed the old cards back
when monitors were often only 16 colors and when 640x480 was
a typical display size. With today's plethora of devices and
screen resolutions it was very hard to keep the code working for
fixed-size cards. (It's hard enough to try to make it work with
scalable cards!)
Top level mode for Tournament play. Tournament mode used
to be buried in a really long drop down list of game options.
Now it's at the top level and in general the tournament experience
is enhanced. Hopefully this will drive up adoption of this fun
mode of competition.
No anonymous access anymore. We're focusing on the
competitive aspects of playing Freecell and are enhancing those
features. Anonymous was a small portion of our traffic and will
not be supported going foward. Note: the "undo" function was
tied to anonymous mode so it too is gone.
Real time "bubbles" showing traffic. Both site-wide
and tournament specific, there are realtime displays showing
deals, wins, and losses so you can get a visceral impression of
the other folks playing Freecell that you're competing with.
Very basic chat. It's on the tournament Current Results
page but any logged in user can use it. No frills, just basic communication.
Back end changes only nerds care about. The older server
was written in C/C++ and had code dating back to the late 80s
before the Internet happened. And the front end was written in
Javascript long before that language had matured to where it's
at today. Now it's a total rewrite in C# and TypeScript. I
hate rewrites just for the sake of, but it had gotten to where
I couldn't move things forward any more using that ancient tech.
Sep, 2025
Replaced WRAC's old hard-coded tournament generation with a database table-driven
approach. Built admin UI for it and handed it over to Tyler to run.
Oct 20, 2025
Anonymous mode with infinite undo will never come back but by not having an easy "no email" way to play
we were losing a fair amount of traffic from folks who didn't want to go through all the rigamarole to
sign up and get authorized. So now I generate a fake anonymous name like 'AnonForMedLup' and log them
in as a full regular user but just without their own private nickname.
Oct 30, 2025
Changed the Freecell cookie format and the login logic so that longer names/password wouldn't overflow
the apparently limited Interchange cookie.
Nov 1, 2025
Introduced new tournament theme Descent Into Madness.
Nov 4, 2025
Moved the web server side up a tier to try to address slowness issues.