I received an email from a Novelr reader recently, asking what’s happened to the site. No updates for over a month, slightly more than half a year to my self-imposed New York Times deadline, and a couple other worrying things besides (like – for instance – what’s happened to the Web Fiction Writer’s Guild? Probably one thing or another … though all – regrettably – understandable.)
Speaking for myself, my ‘one thing or another’ has been splitting my time between school work and programming for Pandamian. A funny thing I’ve found out about programming: when I write code, I can’t write English. And vice versa. And I’m rather amazed at all the programmer-writers out there. How do they context-switch so easily? I’ll have to wait some more to figure that out.
Thoughts on Pandamian
We’ve been at it for close to 6 months now, and I want to be honest about what we’re currently doing. And the truth is that we’re in pretty bad shape. We were adding features and removing bugs all the way right up to December, and then Christmas happened and we all stopped working. Not a good idea – it’s the new year now, and a new semester, and everyone’s work-loads are off the charts.
But here’s the tricky thing about building a consumer-facing product: build too little features and you risk fizzling out on launch-day; build too many features and you risk wasting time and energy on the wrong things. I sometimes wish I can tell where that thin line is, so we could stop programming and just launch.
As it stands, Pandamian has only got a small core of features worth talking about. We’ve got ebook conversion, though it’s about 80% done, and with the odd bug here and there. And we’ve got simple chapter posting, editing, deleting, comments, a built-for-readability front-end design, and some basic comment moderation.
That doesn’t sound exciting now, does it?
It doesn’t, and here’s another thing I’ve discovered about software development: each and every one of those features is a little Pandora’s box of Alice’s rabbit holes in and of itself (description courtesy of Jason Kottke). It is easy to do a basic version of editing, posting, deleting and comments, but if you don’t want things to break for an average user, then you’ve got to think about a whole bunch of other problems.
For example: your user has lost a password. You’ll have to regenerate a key and store it someplace so the user can get it once he’s verified. And you have to send an email to verify aforementioned user. And when you send out an email, you have to worry about being marked as spam. Which means that you have to set up Reverse PTR records for your server, and then you have to configure DomainKeys Identified Mail in your DNS, and then you have to verify it by sending test email to either a dummy GMail account, or to a Port25 email verifier. Every single step of which may take hours, each.
And remember: all this is to make sure your users don’t ever lose their passwords, something they probably never even think about. I’m not making this up, I tell you.
Thoughts on open source
Of course, we’re not over-engineering every feature right now. Just the ones that are most important. Some things we’re leaving for later, which is supposed to be the case when you’re building a web product today – the relevant mantra being ‘build fast, launch fast, fail fast. Rinse and repeat’.
But one thing that’s come up more often than not is this idea of going open source. Why not? people say, You’ll get a whole bunch of other developers ready to contribute to your project.
And they’re right, of course. I’m a big believer in open source, not the least because there are significant advantages to the model (plus it’s very often win-win-win). So when people first began asking me about it, I was taken off-guard. I hadn’t considered the possibility. No-one in Pandamian had. And now I’m wondering if it makes sense.
The problem with releasing Pandamian as open source is that it’s all written in Python. And that means you can’t just run the software on any old host. We chose Python because Yipeng, my co-founder, wanted to learn the language. And also because it’s beautiful. (Why or how a programming language can be beautiful … let’s not go there in this post, okay?)
I’d never considered this before, but I think that if you want a successful, widely-used installable web app, it has to be written in PHP. WordPress is written in PHP, as is Drupal, and bbPress. And this makes sense, because most hosts run PHP with a MySQL backend out of the box, and it isn’t too difficult for a non-technical person to install and use a PHP app.
But I don’t like PHP. Even when I’m hacking up a WordPress theme I write all these variable names with a dollar sign in front of them and $I $feel $like $curling $up $in $a $corner $to $cry.
The one good thing Python would give us, should we go open source, is that we’d probably get more interest from fellow programmers. But ask a normal user to install and run our software and he’d probably give up. Which isn’t what we intended, of course. The whole idea of building Pandamian in the first place was to allow writers the ability to do this digital publishing thing with as minimal fuss as possible. Ideally, without having to look at a single line of code.
Would we release an open source version of Pandamian in the future? Maybe. Would we recommend that someone else do so? Oh yes, indeed. I talked to Hugh McGuire of BookOven over the Christmas holidays, and am happy to report that he and his team are currently building an open source version of what we’re doing. That makes him a competitor, but it also makes him a enabler in this field. And God knows we need as many enablers in publishing right now.
On the Upcoming Launch
We’ve decided that we’re going to launch in February, whether we like or not. And that means polishing up every interface screen in our software, perfecting that ebook conversion feature, and squashing all our bugs. I’m not sure if what we’re building is the right thing, but I hope that releasing this early, first-iteration version of Pandamian would give us some idea of what to build next. As usual, I’d love to hear your thoughts.