Recent

Progress on the Piperka backend rewrite, part 2

As I've described in the previous
blog post, Piperka is undergoing a major backend rewrite.

I'm still in the middle of it. The progress has been steady but
slower than what I'd like but that's the way it is with a day
job. I may not have the time or the inclination to even touch
the code every week. I think enough of the base work is soon in
a good enough state to have other people meaningfully submit
patches. Though I doubt anyone would step up. As far as
required skills go Haskell, Snap and Heist may not be the most
familiar tools there are. If you were hoping for some a
nontrivial project to practice using Haskell with then this is a
good opportunity for it.

I set up a project page on alioth.debian.net.
I didn't want to set up anything of that sort for just myself
and I felt most comfortable using Debian's own resources for
this. It's a bit bare right now but it's a lot better than
having everyone just email me as you'd never know that anyone
else is involved that way. I know something like github would
have had more mindshare going for it but I hope this would not
be the stumbling block for anyone.

I'm currently working on enabling site actions like bookmarking,
subscribing and unsubscribing. This part is nearly done. The
line count stands currently at around 4000 lines of Haskell
code, 600 lines of template code and some new sql definitions.
Functionally I'm mostly aiming for a straight rewrite of the
current site code but I'm making various fixes and enchancements
along the way, besides the whole point of using a radically
different programming model. I'm happy to say that I've already
had a taste of how pleasant it is to modify earlier code with
the new code base.

What works now

What's still missing

In no particular order and this is most likely an incomplete
list. Some features may take a lot more work than others.

Database connection pooling

New account creation

Password recovery

Account editing

Redirection to updated comics

Revert updates page

All the endpoints accessed by AJAX calls including Reader
and Map

Comic submission and info edit page

Moderation interface

Recommendations on info page

HTTPS

oauth2 authentication (will be implemented after
the new site is launched)

The TODO list is longer than the done list but in a project like
this the most difficult part is at the beginning and I'm over it
already. I expect the line count to hit ten thousand before I'm
ready.

Things are progressing but it takes time. If it were more
guided by commercial expediency I would not be taking this route
with Piperka. I want to take my time to do things properly even
if that leads to side tracks like patching Heist or writing a
tutorial. It's hard to promise a timetable with something like
this but I'm hoping to be there or at least near this spring.

I know all of this is peripheral to what Piperka is all about,
that is, helping you read and discover web comics. There's a
fair amount of comic entries currently defunct and I would
certainly like the number to be smaller. I'm not going to stop
and fix them all now. The next step after the site backend
rewrite would be to use that as a base to write better site
management tools and use that to better get things under
control.

I've never laid out a policy on comic tracker bug reports. Some
people have taken to send me them en masse. There's nothing
wrong with that as such and I do care if there's garbage in the
database. However, I would have plenty of possibilities to pick
the obvious cases for myself. I'd rather have people request
fixes for a few comics at a time, about what they'd really care
about not seeing. "Triage" is a dirty word as I would like to
treat all comics equally, even though some get hundreds of
readers and some have none, but there's only one me and I'd
rather use my time currently to help the overall situation
instead of playing eternal catch up.

I'm certainly having fun coding the web site using the language
and libraries I've picked for the job. Is anyone willing to pay
to have me code them web sites with Snap? I'm sure my employer
would accomodate a contract. Thought not. Joking aside, I'm
not sorry I went along with this rewrite even though there's
nothing yet to show for it. I'll get there. Thank you for
riding along and have a happy new year.