No More HTTP Authentication

Well, it’s official. webpad 3.0 will now use integrated, session-based authentication for users, rather than HTTP Authentication. I’ve changed to this in large part to allow me to use it in CGI mode (which, incidentally, works wonderfully), so webpad is even more portable now. In fact, if you have PHP running in CGI mode, I will be reccommending that you run webpad under that mode.

With the new integrated authentication, when you hit webpad you are presented with a log in screen, where you enter a username/password as normal, then continue to the actual application.

I’m also currently looking at templating (thanks to a previous hack that Brad Choate made to webpad 2.0 which allowed it to selectively edit the contents of a file, only within certain regions (denoted by webpad tags of some sort). I will have this functionality included in the official release of webpad 3.0 Personal Edition, and it will definitely be a part of the Professional release.

Things may have been quiet, but they’re not completely dead! ๐Ÿ™‚

EBS11 Final Assignment

Download PDF of Assignment 3 (43Kb PDF)

Assignment Three was another project mangement-style assignment, this time based around the idea of a loyalty/rewards programme for improving online sales/retention. I chose to work on a plan for an online grocery store which was based around 2 levels, offering rewards for sales made directly to a customer, and also for the sales made to a customer that they referred to the company. I haven’t received a mark for this yet, even though it was submitted about a month ago.

NOTE: If you are asked for a password, it is… ‘password’ (no quotes!)

Blogging APIs

On the blosxom mailing list, someone was confused about the interaction between the different APIs for accessing blogging tools and formats. They asked what the story was, and I responsed with this summary of the market (available from the blosxom mailing list archives) (which was current at the time, but getting a little dated now);

From: “Beau” <beau@d…>
Date: Tue Mar 9, 2004 4:00 pm
Subject: Re: [blosxom] APIs, new blogging things, etc.

Ok Steve, I’ll take a bash at some of this, since I’ve been working with blogging APIs for a couple years now in effect, I’ve come across all the ones that you’ve mentioned ๐Ÿ™‚ Someone else please fill gaps or correct me if I slip up somewhere ๐Ÿ™‚

Ok – so, in approximate chronological order of time of appearance on the scene;

* Blogger API 1.0
http://plant.blogger.com/api/
The original – based on XML-RPC [1] calls, gave access to most (all?) of Blogger’s original functionality, and was pretty darned easy to use. You POST an XML doc with encoded requests in it to a specific URL, and the response is another XML doc which you can then use however you like. Ev Williams of Blogger knocked this up over a couple of days apparently, and it went crazy from there – I’m still using it today in http://www.dentedreality.com.au/avantblog and it still works (usually :P)

* metaWebLogAPI
http://www.xmlrpc.com/metaWeblogApi [Added 2004-07-07]
Effectively a derivative of the Blogger API (and also XML-RPC based), this one came up to support Radio, I believe Dave Weiner knocked it up, and there was some animosity between he and Ev Williams over whether they should combine to create a unified blogging API (Radio and Blogger being the big 1 at the time) or go their separate ways. I believe one of the main reasons things went this way was because Blogger didn’t need/want title field support, but Radio did,
thus the metaWebLogAPI, intended to be more universal.

* Blogger API 2.0
http://www.blogger.com/developers/api/documentation20.html
Blogger realised that with their new versions, support from Google etc, they needed to clean up their API-act, so they started working on API 2.0. This one supports title fields and a number of other things, and is accessed via XML-RPC as well. As you can see at the URL, the draft specs were released in Feb 2003, but a couple months later, it was revoked and people were instructed not to use it, because there was no support for it and Atom (then called Echo) was going to be used in prefence… which brings us to…

* Echo… Necho… Atom API
http://www.intertwingly.net/wiki/pie/FrontPage
http://www.atomenabled.org/
Originally called Echo, then they decided that was no good, so it was refered to as Necho (Not Echo) for a while, and finally ended up being called Atom. This one is based on a REST architecture ([2], [3]), based on [4]. The Atom API sort of duplicates the efforts of RSS, in that it presents blog data in an XML format, but it also allows you to modify that data (thus API) via
REST-style interactions, involving PUT/POST/DELETE requests. I haven’t worked all this out just yet, but I have to so that I can update a few projects of mine (namely AvantBlog [5] and webpad [6]). There is also a SOAP [7] implementation of Atom, which I assume supports all the same sort of functions (retrieving posts/blogs, updating them etc), tho I haven’t looked at that at
all, as personally I hate SOAP ๐Ÿ™‚ The idea of Atom is to provide a universal API which will be supported by all blogging systems (I believe MT and Blogger are already on board, others are likely to follow) so that we can write tools which will interop with all systems easily.

[1] http://www.xmlrpc.com/
[2] http://internet.conveyor.com/RESTwiki/moin.cgi/FrontPage
[3] http://www.xfront.com/REST.html
[4] http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
[5] http://www.dentedreality.com.au/avantblog
[6] http://www.dentedreality.com.au/webpad
[7] http://www.w3.org/TR/soap/

Now, as for blosxom’s support for any of this mumbo jumbo – I know that sxtem [8] was written to provide Blogger API functionality for blosxom, and then you also have the atomfeed plugin [9] to provide an outgoing only (RSS-like syndication side of Atom, but not the modification side) feed for blosxom blogs. As for complete Atom API integration (allowing post editing etc via REST-calls), I’m not aware of any implementation allowing that so far, probably because the Atom spec [10] is still somewhat in flux, and even if it’s not, it’s a little hard to understand (for me at least :).

[8] http://www.blosxom.com/plugins/input/sxtem.htm
[9] http://www.blosxom.com/plugins/syndication/atomfeed.htm
[10] http://www.atomenabled.org/developers/api/atom-api-spec.php

So there you have it – as far as I am aware, that’s how the playing field lies at this point in regards to blogging APIs, and I haven’t even bothered to mention Movabletype (which, incidentally, implements a mish-mash of Blogger.com API and metaWebLogAPI functionality), so we’re doing quite well ๐Ÿ™‚ The beauty of blosxom is that to some extent, it doesn’t even need any of this mumbo-jumbo – you can call FTP the blosxom API if you really want ๐Ÿ™‚ When I eventually get an Atom toolkit operational, it’ll be written in PHP and linked from my Blogger API page [11], which is the current home of a number of other PHP-based blogging classes and function libraries. Until then – I’ll keep an eye out and play Lazy-web-style in the hope that someone else will beat me to it ๐Ÿ™‚

[11] http://dentedreality.com.au/bloggerapi/

Cheers, and I hope that sums things up for you Steve (and others)

Beau


Beau Lebens
Information Architect
beau@d…
Dented Reality – www.dentedreality.com.au
Information Architecture, Usability, Web Development

Back To School Special

I’m officially back to study as of Monday, and this study period looks like it will be an interesting one. I’m doing 2 units again, both through Curtin, so no more dealing with RMIT‘s poor efforts at online education.

There are a lot of people who I’ve studied with before in my classes, so it kind of feels like I’m getting to know all the other people who are currently studying the BA Internet Studies. I’ve also looked at my assessment timeline, and it’s pretty solid – basically something due roughly every 2 weeks for the entire study period ๐Ÿ™

We’ll see how things go this time around! New computer just in time as well, nearly finished getting it set up and configured, just a few more things to do and then it’s all go.