Recent Photos

 

 

Browsing all posts in "php"

adventures in app development

There are many important pieces to The Puzzle Of Pam, and one of the biggest is my unreasonable and undying love for delicious. I think I have four — sorry, five — accounts there, plus access to quite a few more. I am often asked how I spent my weekend, and it’s not unusual for me to say something like, “re-tagged everything in delicious,” or something that might sound benign except for the fact that I have multiple thousands of bookmarks and only some of my management tasks have been scripted.

Anyway. One of the things about del that makes me a sad pamda is their bundle management interface. I know that many people don’t bundle at all (just yesterday I was asked, “what’s a bundle?”), but I like it. It keeps my tags organized and readable and useful, both to me and to other people. Depending on what you’re doing with the account, bundles can be used to impose some hierarchical structure on an otherwise flat setup. So I like bundling, and it’s important to me and to my likeminded friends. And I feel that bundling should be full of fun, but actually it is full of nails, sorrow, and repetitive stress injuries.

I was going to talk about WHY I hate the bundle management interface, and about the greasemonkey scripts and user styles and crazy tagging hacks that make it slightly less painful, but that is also not the point of this post. [This is one of the things that's difficult for me about this blog. How much background do I give? My usual MO is to just start waving my hands in the air and shouting, with the expectation everyone will be able to follow along. I'm not sure that's the case here, but... I'm also not sure I care! I'm awesome that way.]

The point of this post is that I have, after a few years of threatening to do so, started working on my Glorious Bundle Management App Of Magnificent Amazingness. It needs a name that does not consist entirely of adjectives, and probably it also needs unicorns and sparkles. The thing is, though, that I’m not an app developer. I am a test developer. And so it’s a strange and interesting learning experience to try to build something for other people to use. I’m not used to considering other people! I design for my own needs, and then the second I show it to someone else, it breaks. And my needs are… specific and strange, especially when it comes to delicious bundle management.

I’m still not sure what’s going to work and what isn’t, and the design has already changed a little bit as I’ve worked on it, but the basic idea is an interface that pulls in all your bundles, shows you the tags in those bundles, and allows you to add or remove tags via drag-and-drop. There will be a list down one side of the page that will show you your unbundled tags or your bundled ones; if it’s showing you all tags, you can hover over them and see which bundles those tags are currently in. None of this is built into the del management interface. You have to use a GM script to see what bundles a tag is in. You have to go back and forth between a lot of screens to see what tags are in which bundles. Etc etc. So I feel my app will transform bundling from something that is soulsucking to something that is soulenriching.

I’m not very far along, for a few reasons. One, I just started. Two, I’m writing it in PHP and jQuery, neither of which I know all that much about. I find it a little sadmaking that I would rather dig through the increasingly foggy recesses of my mind to try to remember where the fuck to put semicolons (EVERYWHERE) than try to figure out how to deploy a Python app. I just don’t want to mess with it. I feel like, even for someone who knows Python fairly well, and who deploys applications to production servers on a regular basis, the deployment (and, to some extent, development of) Python web apps sucks. [Yeah, yeah, appengine. It's STILL more difficult than it needs to be, IMO. I am lazy.] I just want to write code for a fairly simple web app, and I don’t want to have to do much else. And PHP makes that really fast and easy, even if the combination of PHP and javascript means I’m having nightmares about curly braces.

At my job, we’re big on iterative development, and I’ve watched it work for years, so that’s what I’ve been trying to do. I have a nice step-by-step list that does not include any items like, “5. ??????” or “17. Make it work.” I even have user stories. I’ve noticed, though, that it’s really easy to get distracted. Granted, I am an easily distracted person. But when it’s just me working on something that is largely for myself, when there’s no one to say, “um, Pam, probably you do not need to spend the next seven hours writing CSS for a login form, because the login form does not currently log anyone in to anything,” I tend to get a little lost.

And, like I said, some of that is me being me, and some of it is that it’s my project and I have to be my own PM, but I also feel like I’m falling into a rabbit hole I see other people going down. I think it’s a danger in user-focused javascripty apps in general, to spend a lot of time up front focusing on making it pretty “for the user,” when the user would probably like to have something to use. I like to think that users would rather have something that works than something that looks good sucking.

So anyway, I have to keep reminding myself of that, and reining myself in, and this process has been slow and a little painful, but also very illuminating. Updates as warranted.