Alternatives to projectGenie

By admin, posted on Mar 12th 2008

It’s been so long since I posted anything here I’m embarrassed. However work on the next version of projectGenie (Brookmeyer) continues – albeit at glacial pace. I’ve been speaking with a couple of people recently about making it properly open-source, so that anyone can contribute to the project. I’m currently investigating options for that and will hopefully have some time to do something about it.

In the meantime the world still needs project management, so here’s a long list of both web and desktop software that may help you to organise your projects and tasks: http://tutorialblog.org/freelancers-manage-your-projects/

Time, and the lack thereof

By admin, posted on Jun 11th 2007

Hmm. Things didn’t go according to plan this weekend. There was such a lot of client work to do I didn’t get time to do anything on Brookmeyer, the new version of projectGenie Which means I’m badly behind schedule, which means I won’t meet the (self-imposed) deadline on Thursday.

It’s a shame, but then I did set myself an almost impossible task. The good news is I’ve made loads of progress by giving myself a really short amount of time to Get Something Done, and I’m fired up to get even more done very soon. So, hopefully, it won’t be long before I’m cutting the digital ribbon on a whole new version.

Until then, if you’re one of the people looking forward to trying out Brookmeyer, then sorry. You’ll have to wait a little bit longer.

Making less more

By admin, posted on May 29th 2007

As you know, 37signals are big inspirations to me (hence my 37genies skin for projectGenie). A large part of their manifesto is “a belief in the beauty of less – features, options, employees, meetings, promises” (thanks Brian). Constraints are good, they cut out the clutter.

So I’m setting myself a constraints challenge. I’m limiting myself to just 16 days to get the bulk of the new projectGenie version ready for public use. That’s right, on June 14th (my birthday, by the way) version Brookmeyer will be live for playing with on this very site.

I’m not sure what features will make it, I’ll have to pick the ones that will make the most difference. Wish me luck 🙂

Tab clear

By admin, posted on Nov 24th 2006

I had a quick though when waiting for different pages of a projectGenie pane. If you didn’t know (where have you been?) projectGenie allows you to view lists of information in neat little panes, and if there are too many items it paginates them, like this:

projectGenie pane pagination

Each time a page number is clicked it loads the content for the new pane in the background using AJAX niftyness. It’s cool, it’s very web 2.0. And it can be really slow. So what’s the answer?

Well, as far as I see it if I can reduce the number of calls to the database while still providing the slick in-page pagination effect then that would be great. And I can, and here’s how.

Preloading content

Let’s say I load *all* the items in the list, yes, even if there’s 200 of them. Don’t worry, we’re not going to display them all, just fetch them. So we’ve got our recordset of 200 database rows, and we want to split them into neat pane-pages of 20 per page. Easy, we just set up a little function to group the records into a single <div> when they are fetched from the database into chunks of 20. Like so:

(For this example any code executed by the system is in [square brackets] and any HTML output is in green.)


[Fetch 200 records from the database]
<div>
[Start looping]
Output the row details

If the counter has got to 20 then </div> <div>
[End looping]
</div>

So when we load all of this generated HTML into a content area we end up with something a lot like this:


<div id="pane1">
  <div>
    Line 1
    Line 2
    ...

    Line 20
  </div>
  <div>
    Line 21
    Line 22
    ...

    Line 40
  </div>
  ...etc
</div>

Using Javascript to do all the in-page manipulation (like what it is meant to do)

Now we can make Javascript set all of them invisible except the first one. We can also get Javascript to count the number of children of our content area (id = ‘pane1’) and built a pagination list for us. Then, when we click each of the links, Javascript would capture that event and make only the relevant child div of the content pane visible. Neato.

And there are other good points to this technique. Firstly it’s very accessible and degradeable. If someone doesn’t have Javascript enabled then they get everything displayed right in front of their eyes (not so good for really long sets of data). And it’s also great for print, because when you print the page you can make your print CSS file print all the rows of data in one long list.

So, it needs a bit of work but I like the idea of this.

Keeping up with the Jones’

By admin, posted on Oct 22nd 2006

The masters of simple web-based software, 37Signals, are hard at work upgrading their information management software, Backpack. Actually, it’s not hard work for them as they use a ridiculously easy development framework.

So, what are they doing? Well, drag-and-drop ordering for one thing. Slick.

Is this the way of the future? Certainly it would seem so, but then drag-and-drop has long been a staple feature of desktop software but only recently been possible in a browser. Anything that new and cool is bound to seem really impressive. The fact is that we as web developers are still catching up with desktop developers in any number of important areas.

However, and this is why I love this job so much, we kick their arses in any number os ways, too. We write software that needs no installation, can be upgraded and patched at a single location, is usable by computers with very limited resources, can be accessed by mobile phones and PDAs, is instantly interoperable with millions of other software systems, and looks better than anything they can produce. So, drag-and-drop is a pretty nifty feature, but it’s the nature of web apps themselves that really turns me on.

What next?

On the blog

We're BETA forever, baby