/ Code


Yesterday, QuadFile finally went open-source (again) - It's been a pain to get to this point. More than it'd seem like. So I thought I'd walk you all through why it was such a pain since I've been asked a couple of times, considering nothing seems to be hard-coded at all. So here we go:

The beginning

QuadFile as you know it now, didn't actually start out as QuadFile. It started out as "Hyozan" - An experimental object storage front-end that would preferably be installed on SSD machines with lots of bandwidth for short-terms storage, and it would then use Backblaze B2 for long-term storage.

I'm sure you can already see where this is going.

Hyozan was a large project. It had a larger database controller and lots more modules than what QuadFile has, but quite frankly it was turning out to be more complicated than I wanted it to. It had passed 2000 lines of code without even functioning yet. The b2.py module being around 300 lines of code, the largest file in the project. At this point I was getting quite tired of it not working - So i branched it off.

Removing the germs

After branching it off I commented out all the B2 and extra database functions, simply to see if it would work. And well, it did, kinda. A couple bugs here and there. But it could accept files, store them, serve them, and then delete them when they weren't accessed. Though this just so happened to remind me of what it was like to run QuadFile, it was pretty great to be honest, the only problem was my wallet and time.

Running QuadFile proved challenging in a couple of ways:

  • Storage - This isn't cheap. Not unless you build your own storage servers, and that's not cheap either.
  • Moderating - The sheer amount of illegal content, viruses and torrent files served using the service was wild, and I had to skim over and look through most of this
  • Time - Maintaining a service that got popular is always time consuming. If the server went down I'd instantly get 10 mentions on twitter even if it was the middle of the night.
  • Work - "Add X" - "Please do X" - "I want X" - I'm sure every dev knows how annoying this shit is, so I won't really go into detail.

And... it just so happens that my new code had solved all of the problems above, maybe except for the features one.

So I took the jump. I copied all of the files I needed over to a new repo and named it "QuadFile"

From there I had an initial version going after about a week. (I've got other things to do as well okay, I work slow) After that I spent a bit more time cleaning up and making the repo nice. Such as adding comments, removing old Hyozan functions and generally making the code not look as shitty. This started around Christmas 2015, and I worked on it pretty much as much as I could until work started again.


A little over a month later, I did it, I released the source code for it. At the same time, I decided to just open up my git instance for public registrations. I also went ahead and moved gogs from my shitty ARM server to my 8-core server. Just in case the flood would be too large. And I guess it was decent. The source got about 200-300 pageviews the first hour after being made public.

So QuadFile ended up open-source once again - And that's the (kinda brief) story about why it took me an entire month to "just push a git repo you faggot" as many messages had asked me