Piperka blog

Piperka's source code released

As of now, Piperka's Darcs source code repository is publicly accessible, licensed under the Expat License, aka. MIT/X License. I'm withholding the database contents at this time, but everything else is in there. The database schema, the web site code, the various scripts I use to manage things and the FAI scripts for setting up a development environment. The best way to get a copy of the source is to run

darcs get http://piperka.net/src/ piperka

It's full of bad design, dead code, unfinished ideas and unrequited dreams. Most of it is written in Perl and some parts are in Haskell. Some of the magic happens in the PostgreSQL database. This blog uses a lot of XSLT. I've included instructions for setting up a copy of the software to run in a virtual machine. Check the included INSTALL file for details.

If you're not a coder, then this doesn't necessarily mean much to you, at least immediately. If you are, then feel free to poke around. I'm not quite sure about how free software works with a web site. There can be only one piperka.net and I'd be liable for anything the server, that I'm leasing, does, so I'd necessarily need to watch what code goes to Piperka myself. Not that I wanted to turn over the creative control over Piperka.

I can't guarantee that I'll keep the source repository open, no matter what. Though that same has held true for Piperka itself, all the time. I don't promise that I'll necessarily apply any patches that you might send, or that I won't edit them mercilessly. I expect that you'll agree to license what you send under the same terms as Piperka itself.

I'd be curious if you do something with the code, indepently of Piperka. Feel free to, but mind that it's not necessarily a good starting point for new web sites. Even for web comic tracking sites.

Why now

I've been asked about Piperka's source code before. So far, I have replied with something ambiguous or not at all to those requests. As I see it, releasing the code isn't just a matter of letting people download it. It's something that I've edited freely with no expectation of others seeing it and consequently it'll look very much like, say, my own room. There would just be something disturbing about having just anyone see it, anytime they wanted. The code's still not something I would exactly be proud of, but now that I've started using a version control system, I have at least some idea about what I've left in there.

Another concern was that whatever source snapshot I took, there would be no guarantees that it would be something that could be set up to work for someone else, easily or at all. That would take me an extra effort to take it into that shape and I'd have no motivation for doing it for its own sake. Packaging Piperka's software wouldn't in itself help Piperka. It's not some generic toolset nor is it going to turn into one. And even if someone used it to set up a test environment for their use and sent me patches based on that, then those wouldn't necessarily be anything that'd apply to the real environment I'm running.

Not that long ago, I set up a copy of Piperka run on a virtual machine, at home. I made the settings that that took as part of a FAI config, to document and automate the process if I ever needed to do it again. I set up a repository on my computer and on the virtual machine, and one on the real server too, so that I could push changes in a controlled manner and test them. At that point, I bragged to my friends that I could mass produce Piperkas now, if I wanted. A nonsensical idea, on the face of it. But that's when I thought about opening up access to Piperka's source code, and realised how serendipitous it was. I had made ready the means for anyone to set up a test environment for Piperka with relative ease and to send their changes to me in a controlled way. Best of all, none of that would mean any extra effort for me, since it's all just a byproduct of the process that I had started to use already.

I've been meaning to rewrite Piperka's source code. Most of the code was thrown together during a relatively short period in 2005 and I know a lot more about writing web sites now than what I did back then. The temptation to just start over was too great, but that project never really took off. I was planning on making the source code public when that was done, but I've seen that I can't forever acquiesce to my perfectionism.

I may have had some commercial aspirations regarding Piperka. I still might. I'm not fully certain what this move means from that perspective. It'd be hubris to believe that I'm guarding some big secret by withholding the source. There's nothing in there that any reasonably determined and skilled person couldn't have replicated by now. This move might take Piperka to wholly new directions, or nothing much might happen. I'd be surprised if it didn't change at least something, from my perspective. As I said, I'm not including the database contents in this release. I'll see how things will go from here first. Things like users' data certainly shouldn't be disclosed, either, but the real value in it is the index of over 4000 web comics' archives. Creating an API for querying that is in the plans.

At least I know that I can't promise any monetary compensation for whatever you might do with the source. I'm running the site at a loss, as is. But you might get a better Piperka out of it. I'm hoping that I'm not exposing any exploitable bugs with this. I'd like it if you kept an eye out for those if you download the source.

Lastly, I like to think that I'm doing the right thing, by releasing the source. If you depend on using a web site, then it'd be nice to be able to look at what it does. Even if you never did so.

Sat, 18 Jun 2011 23:23:23 UTC