Just A Summary

Piers Cawley Practices Punditry

Typo 5 is out - and more on the future 7

Posted by Piers Cawley Sun, 30 Dec 2007 15:10:18 GMT

Right, we’ve cut a Typo 5 gem and it’s on rubyforge and heading to various mirrors I hope. Frédéric’s writing the release notification which will be appearing on Typosphere Real Soon Now.

It’s been a surprisingly tricky process – we’re now requiring Rails 2.0.2 because the workings of view_paths have changed in a way which means we can’t quite make themes with Rails 2.0 and 2.0.2 and working with the edge seems like the more sensible proposition. If you’re on the bleeding edge, you should find that you get the right Rails via svn:externals anyway.

Typo futures

Meanwhile, I’ve been playing with stet and I’ve come to the conclusion that, although there’s mileage to be had in a radically slimmed down approach to the way Typo works, I’m better off simply removing the misfeatures from Typo and building from there – there’s a surprising amount of stuff that needs to be done in a competent blogging engine that Typo gets right – starting again would be throwing the baby out with the bathwater I think.

However, this does mean that if you’re following the Typo SVN trunk, you’ll be seeing a reduction in features in the short term. We’ll be copying the current trunk to a 5-0-stable branch before we start with the featurectomies though, so if you’re just after bugfixes, you’ll be better off there.

Multiblogging

We’re aiming to have multiblogging in the next release, but we’re rethinking the how of it. Right now, the ‘Blog’ object adds a bunch of complexity to code that would be much happier simply assuming that it has the database to itself. So we’re going to look at switching to a database per blog approach, that way our core code can pretty much forget about the complexities of multiblogging, and (at least initially) anyone who wants multiblogging can get there by monkeying with configuration files – of course, we intend to add a web based admin interface once things settle down and we know how things are going to work.

Caching

Caching is always a bugbear in any typo installation. Because we want to be installable on the widest possible range of hosts, we can’t rely on the presence of handy tools like ‘memcached’. Also, some of our users are operating under some fairly severe memory and process constraints, so it makes sense to have the webserve serve static files as much as possible. Meanwhile, tools like Evan Weaver’s Interlock are pointing the way towards seriously effective fragment caching. I shall be looking into implementing something that conforms to the interlock interface, but which can use an arbitrary cache backing store for fragments and maintain a full page cache. It’ll be interesting to find out if this is doable…

Atom Publishing Protocol

ActionWebService is going to go away – it’s already in the ousted branch of the rails SVN repository, and including it in Typo to support the various different admin APIs is getting painful. So, we’re going to preempt it. We won’t be getting rid of the various XMLRPC APIs until the pain becomes too great, but we are going to be concentrating on implementing, and strongly favouring, the Atom Publishing Protocol.

Feeds for everything

In particular, we’ll be adding atom feeds for all sorts of administrative data as a means of enabling people to write external tools for, say, spam protection, comment moderation and notification tasks. Right now, there’s a great deal of computation happening on the server side every time someone, say, comments on a post – in the kind of resource limited environments some people are running Typo in, that’s too much work. Switching to a feed + APP approach should help enormously with resource utilization.

Speaking of resources…

Using the server to render article previews is… suboptimal. Expect to see a javascript based preview system akin to the one I use for comments here.

Comments

Leave a response

  1. Avatar
    Ricardo Sazima 29 minutes later:

    Piers,

    This is timing or what?! I just headed to typosphere to check whether there was a Rails2.x-compliant release!!!

    Thanks for the great work!

    BTW, future directions are sensible, I just hope to see multiblogging (as in several different blogs in 1 Typo installation) as soon as possible…

    Best regards, Ricardo

  2. Avatar
    Gen Du about 16 hours later:

    I think multiple databases for multiple blogs is a big mistake. It’s pretty far from the Rails standard way of doing things and that always causes trouble.

    How will authorizations and user accounts get shared across multiple DBs?

  3. Avatar
    Piers Cawley about 17 hours later:

    You may not have noticed this before, but I don’t give a damn about the ‘Rails standard way’. I do give a damn about doing the Right Way for the application at hand. It’s good when the Right Way and the Rails Way coincide, but it’s certainly not a given. Rails 2 does way fewer wrong things than Rails 1.2, which did way fewer wrong things than earlier incarnations of Rails, but it is not now, and never will be, the One True Way of web development.

    The trouble is, the current ‘stub’ of multiblog support in Typo just serves to complicate things horribly for the majority of users who only use one blog. I’m not at all happy about that increase in complexity for little gain.

    My current thinking is that multiblogging using multiple databases can be implemented in a plugin and so will have precisely zero impact on the majority of users. Multiblogging using an ActiveRecord based blog object on the other hand involves nasty database denormalization and the concomitant violations of the DRY principle that tend to follow when your data model is compromised.

    As for sharing users across blogs, that’s easy, we just have to set User.connection independently of ActiveRecord::Base.connection. We don’t even have to monkey with Rails to do it, it’s all there in the code.

  4. Avatar
    Sean Schofield 15 days later:

    First of all, nice job on Typo. I’m using 4.1.1 now and its working out nicely.

    I have one suggestions for future development. You may want to consider reworking the authentication and authorization schemes so that Typo could be more easily incorporated into other applications.

    Specifically I would love to see restful_authentication and role_requirement but that is my personal bias since I’m using those now.

    In the meantime, do you have suggestions for how to best achieve “single sign on”, etc. with Typo now?

  5. Avatar
    http://www.gnoshme.com 23 days later:

    I’m glad to see that your RSS feeds don’t work either! What’s up? Any pointers to adding quick and dirty RSS if Typo5 default is not working?

  6. Avatar
    Piers Cawley 23 days later:

    Strange, I just did curl www.gnoshme.com/articles.atom and curl www.gnoshme/articles.rss and all was fine.

    What RSS feeds are you talking about?

    I thought we’d even still go 302 redirects in for the old feed URLs, but I’m less certain about that.

    BTW, your feeds are pointing to wump.com, which might have something to do with it.

  7. Avatar
    Matthew Carriere about 1 month later:

    I am having a strange feed issue. I can see all my posts in ATOM but only 1 in RSS. I am running 2 typo blogs on this server and the other one is fine. Is there someway to refresh the RSS feed or something?

Comments



Just A Summary