Athlean-X review

In a previous fitness post I talked about how I was using Athlean-X for my training regimen.  In this post, I'm going to go into a little more detail and give some reviews of the programs I've done and the Athlean-X system in general.  Hopefully this will be useful to fellow geeks who decide they'd like to take active control of their health and fitness. 

The Athlean-X Approach

Obviously you can read all about this on their website, but I thought a brief overview might be helpful.  Athlean-X is founded and run by Jeff Cavaliere.  Jeff is a Certified Strength and Conditioning Specialist (CSCS) with a Master's degree in Physical Therapy.  His schtick is that he trains professional athletes.  He used to be a strength coach for the New York Mets and his YouTube channel has a bunch of videos that show him coaching pro football players, pro wrestlers, etc.  So the idea is that his training programs are training you like he would train an athlete.  Except, you know, without the actual one-on-one coaching.

One of the aspects of this that I really like is the idea of training harder rather than longer.  There are multiple ways you can train to evoke a response in your body.  One is the "three hours in the gym" approach that people tend to think of when they look at body builders or people with that type of physique.  The alternative, which the AX programs use, is to dial up the intensity.  So instead of doing a lot of sets with longer rest times in the weight room, you do fewer sets, but with heavier weights, going to failure on every set, and typically resting for one minute or less between sets.  And instead of spending an hour on the elliptical machine, you do High Intensity Interval Training (HIIT), going all-out in short bursts.  This is difficult training, but the big up side is the time savings.  I'm typically able to finish a strength training workout in 45 minutes or less and conditioning workouts are usually around 20 minutes.  And since I'm able to train at home, I don't even lose time traveling to the gym.

Another interesting feature of the AX programs is that they feature regular "challenges".  These are workouts that include a scoring system.  There are a number of different levels - basic, solid, pro, elite, extreme - and you're supposed to score at a certain level (usually solid or pro) before continuing on with the program.  The idea is to two two things:

  1. Make sure that you're ready for the next phase.  The programs are progressive, so if you can't pass the challenge for the first phase, you're going to really struggle with the second phase.
  2. To provide you with objective feedback on your progress.  You can track and compare your scores each time you do a challenge in addition to comparing to the benchmarks for each level.  So it gives you a way to confirm that you're actually improving.

The frequency of the challenges depends on the program, but they're generally short, intense workouts that try to give you motivation to push yourself.  This is good in general, but at least for me, it's important to approach the challenges with the right mindset.  It's easy to psyche yourself out or get too focused on "passing" so that you lose sight of the helpful goal of gauging your progress.  Personally, I find the challenges to be more fun the second time - when I already know I can pass them and I'm more focused on improving on my previous score.

What Your Get For Your Money

So if you're about my age, you probably remember the good old days when workout programs would come in the mail and include a bunch of DVDs or even VHS tapes, along with some instruction booklets and so forth.  Well, nobody does that anymore.  These days things are 100% online and AX is no exception.  When you sign up, you'll get an email pointing you to their portal site where you can log in and access your programs.

The portal itself is fairly nice.  It has an adaptive layout, so you can easily use it on a phone or tablet.  The dashboard shows a link to the next day of your active program, but there's also a calendar that you can use to browse the workouts.  The workouts themselves normally include a demo video that walks you through the routine and shows you how to do the exercises.  Below that is a  nice listing of the exercises.  In addition to the sets and reps, each listing includes a link to a short demo video (ten seconds or so) of that specific exercise as well as buttons to track your weight and reps and to view your history.  For strength exercises, I find this very useful as a guide to choosing how much weight I should use and seeing if I'm making progress.  At the bottom of the page, right below the "mark complete" button, there's also a link to the "six-pack shuffle", which is an optional core workout for after you're done.  It's a short, randomized workout that runs between 4 and 8 minutes and has options to use various pieces of equipment or just body-weight.

Beyond the program itself, you typically get a bunch of extras in your portal.  The one that they like to advertise is the "meal plan", which comes with most of the programs.  It's nice as an example of the type of things you might want to eat, but it doesn't include any recipes!  It just lists the different foods for each meal - no measurements, proportions, or cooking instructions.  To me, that makes it kinda useless as an actual meal plan.  Also, a  meal plan seems to come with pretty much every program, but it's the same plan for all of them.  So to me, this is just a stupid marketing gimmick and I ignore it.

The "programs" portion of the portal also includes a "bonus" section with some extra stuff.  This includes things like articles, videos, and most importantly, some bonus challenge workouts.  These are nice things to check out when you're between programs and want a change of pace or if your schedule is off for some reason and want a few "filler" workouts to get back on track.  I've done a number of them and they're generally challenging and enjoyable.

It's also worth noting that you are able to download offline versions of the programs.  Sadly, they don't include the same content - you just get some PDF files listing the exercises in each workout.  No videos or anything like that.  Still, it's nice to have.  If you've been through a program once, then you already know the technique, so the listing is really the main thing you need anyway.

Program Reviews

Now it's time to get into the program specifics.  I don't claim to be an expert, but I've been doing the Athlean-X programs for about a year and a half now.  For the first year, I did four rounds of AX-1, which I mentioned in a previous post. This included all five of the "TNT plugins".  After that I did a round of AX-2 along with Core4, followed by two rounds of Xero and the Ultimate Abs bonus program.  I'm currently on my second time through AX-2.

I'll get into the details of each program below, but the "TL;DR" is that I've really been liking the Athlean-X programs.  Some are better than others, but I haven't done one that I didn't like and that I didn't feel like I got something out of.

AX-1 and TNT

 AX-1 is the "bootcamp" level AX program.  It's targeted at beginners, but let me be clear: this is not an easy program.  If you've already been training for a while, then it's not too bad - you'll get a good workout, but it won't be too challenging.  But if you don't already do regular strength and conditioning training, then it's a hard program.  And if you're sedentary, then it's probably going to be really hard.

When I started AX-1, I was already in what most people would consider "decent shape".  At that point, I'd been doing light home calisthenics (though nothing organized) for about 6 or 8 months and was down to around 175 pounds.  I also did (and still do) karate practice twice a week, which is a pretty good cardio workout (at least it is the way we practice - apparently that's not the case for every school).  However, my first time through AX-1 was pretty brutal.  For instance, the first time I did the "bumps and jumps" conditioning workout, which is just 20 minutes of burpees and box jumps, I was drenched in sweat and felt like my heart was going to explode.  I was lucky to make it through my shower without passing out.  Of course, it's possible to modify the program or dial down the intensity, but the point is that if you're not already an athlete then this is a hard program.

The program is broken into three four-week phases with a challenge at the end of each phase.  The phases are progressive, so each month the exercises get more difficult and more intense.  The schedule is five days a week with two rest days on the weekend.  You do strength training Monday, Wednesday, and Friday with conditioning on Tuesday and Thursday.  Note that it's a different workout pretty much every day.  There are a handful of repeats, and obviously a lot of the same exercises, but you're not repeating the same workouts every week, or anything like that.  This is true of the AX programs across the board.  They're very good about keeping things fresh and interesting.

In terms of equipment, AX-1 has minimal requirements.  So while you can do it in a gym, you don't have to.  In fact, you can probably get everything you need for less than $200, if you look in the right places.  You need:

  • Adjustable dumbbells.  Powerblocks are nice, but I use the old-fashioned screw-lock type and they work just fine.
    • Note that you'll probably need a set that goes up to at least 50 pounds for each hand.  You're probably not going to be curling or pressing that much any time soon, but the more common 20 pounds-per-hand sets probably won't be enough for a lot of the back and leg exercises.
  • A set of resistance bands.  You'll want a variety of resistance levels.
  • A physio ball.
  • A pull-up bar.  The doorway ones are fine.
  • (Optional) An adjustable bench.
    • If you don't have one, it's possible to lay on the physio ball instead.  However, I found that this gets harder as the weight you're using increases.  I found that once I got up to about 35 pounds or so, trying to do a bench press on the physio ball became really difficult.  It was just too hard to get into and out of position while maintaining control of the weights, so I had to get a bench.
  • (Optional) A yoga mat, or something similar.
    • How necessary this is depends on the flooring where you train.  It's definitely necessary if you have to train someplace where there's carpeting (because the plank-style exercises will give you rug-burn on your elbows otherwise).  It's also helpful for lying ab exercises if you're training on a hard floor, just because it's more comfortable.

While some of the exercises do call for other equipment, pretty much everything else can be improvised.  For instance, the inverted rows that are introduced in the first week.  In the video, Jeff uses a barbell bar across a pair of saw horses, but you can use pretty much anything you can fit underneath that will support your weight.  I use a broomstick across the backs of a couple of chairs.  You can get underneath a table or counter overhang - whatever you've got.  One of the bonus features for AX-1 gives a bunch of examples of how to improvise replacements for gym equipment just using things you have around the house.  Jeff goes out of his way to remove the "but I don't have X" excuses for not doing the exercises.

In addition to the base program, you can buy TNT plugins.  These are targeted muscle group workouts that integrate into AX-1.  They have ones for back, shoulders, chest, biceps, and triceps.  You can have up to two TNT plugins active at once and when you activate one, the AX portal will automatically integrate it into your program.  Each TNT adds one workout per week.  If you do one, it will add it on a rest day.  If you do two, one will be on a rest day and the other will be doubled-up with a conditioning workout, so you still get one rest day a week.

Each TNT includes two workouts - a "home" workout and a "gym" workout.  In both cases, the format is similar to a regular AX-1 workout, but the video is a full-length walk-through where Jeff runs through the entire workout in real time - all the exercises, all the sets.  The main difference between the two versions  is the equipment required.  However, even the gym workouts can mostly be done with the same equipment as the main AX-1 program.  I was able to do all of the "gym" workouts at home - I just had to adjust some of the exercises, for instance substituting dumbbells for barbells and resistance bands for a cable machine.  The recommendation is to switch between the two versions, which gives you a little more variety.

I did all five of the TNTs and in terms of effectiveness I found them to be helpful.  They're not indispensable, but if you're looking for an easy way to bump up the intensity of AX-1 a little, they're a good addition.  The workouts are good and Jeff provides some good information in the videos.  Whether they're worth the extra cost kind of depends on how much you can afford, but if money isn't a big issue for you, then I'd recommend them.  However, AX-1 by itself is pretty intense and very effective, so if you're new to training then you might want to save the TNTs for the second or third time through.

AX-2 - "Athlean Extreme"

This past summer I moved on to AX-2, or "Athlean Extreme" as Jeff refers to it. This is supposed to be the "professional athlete" level training, and Jeff actually does get some professional athletes to help with the demonstration videos.  (No big names or anything, but still professionals.)  The pace of this one is much faster - instead of a different theme and challenge for each month they have one for each week.  And the challenges are, in fact, pretty challenging.

The format is a little different from AX-1.  It varies a bit from month to month, but the strength training workouts generally follow a "bro split" - chest and triceps on Monday, back and biceps on Tuesday, rest on Wednesday, legs on Thursday, shoulders and rotator cuff Friday, and then the challenge on Saturday.  The workouts tend to be more complex than in AX-1 as well, with lots of combinations of movements, supersets, and various more advanced techniques.  However, the equipment requirements are mostly the same (I think there's one workout that actually requires a barbell to do correctly) so it's still relatively easy to do at home.  There are also some conditioning workouts sprinkled in as well, but there's not as much of the HIIT cardio as in AX-1.  Much of the conditioning effect seems to be folded into the challenge days and reduced rest times for the strength workouts.

I do have two complaints about AX-2.  The first is that the "different phase every week" thing is a little much.  It's nice to have variety, and you do learn a lot about different techniques and ways of training (definitely watch the phase explanation videos for this program), but it's very hard to judge progress when you're doing something different every week.  I'm also not crazy about the "challenge every week" thing.  As I said above,  when you're going through a program for the first time the challenges can make things a bit more stressful and less enjoyable.  So while AX-2 is still a good program, it's not my favorite.

Core4 Abs

When I started AX-2, I also started Core4 Abs along with it.  This is kind of an interesting one.  It's a dedicated core training program with each session averaging 15 minutes or less.  Each workout includes exercises to target each of the four main core muscle groups - upper and lower abs, obliques, and lower back/glutes.  The videos include a lot of focus on form and activating the correct muscle groups.  The way it's built in their web portal is quite nice as well.  You can choose from one of four "levels", which adjusts the difficulty by varying the exercise type and/or duration.  You can also choose to use Core4 as your post-workout ab session.  This basically substitutes it for the "six pack shuffle" that's recommended at the end of each workout, which is pretty nice.

Like AX-1, Core4 is divided into three month-long phases, each with a different focus and with a challenge at the end of the month.  The videos have a lot of good information, which I think is one of the main benefits of this program - it doesn't just show you the exercises, it teaches you the proper way to do them and why it matters.  I would recommend it just for that.

My main problem with Core4 was the time commitment.  While the individual workouts are pretty short (though the challenges are a little longer), they do generally run in the 10 to 15 minutes range rather than the 5 to 7 minutes that the six-pack shuffles run.  Plus there's the time to watch the videos (which you really should do), so I found that they often pushed my training times over an hour.  That's not super-long, but for me the short training times is one of the best things about AX, so that's something to take into account.

Xero

After AX-2 I did two rounds of Xero, the AX body-weight program.  I decided to do this because we'd planned to spend some more time visiting family and getting away from from the house in the fall and it's billed as "requiring zero equipment", so I could do it on the road  That's mostly true - there are a couple of workouts that involve inverted rows or pull-ups, but they have you doing them with tables and door frames rather than bars.  Personally, I kind of think that's cheating, but its not a huge deal - I just used my usual equipment anyway.

Let's just say up front - Xero is tough.  When the pandemic hit, AX started advertising Xero pretty hard because the gyms were closed.  By the time I started it, they'd "upgraded" it with two additional mini-programs (which I didn't look at) - "Two Below Xero" and "One Below Xero", which are preparatory programs for the main Xero program.  This was probably necessary, because I can't imagine going from not working out to doing Xero.  Frankly, it sounds like a recipe for failure.  I mean, I did AX-1 and AX-2 first and I still had a hard time with Xero.  In particular, the the last week's conditioning workouts left me feeling like I was about to pass out.

In terms of the actual program, Xero is only a six-week program, but it has a challenge every week.  Like the other programs, there's plenty of variety, but it's not too much.  The schedule is fairly regular, with total-body strength training workouts on Monday and Friday, conditioning on Tuesday and Thursday, and the challenges on Saturday.  It also includes what they call "xero-sum progression", where the strength training workouts are repeated, so you can track the number of reps you're doing easily see your progress.

Personally, I found Xero to be very effective.  I feel like I made more progress from Xero than I did from AX-2.  For me, it had enough variety to keep it fun and interesting, but enough consistency to make progress clear and keep me motivated.  The main caveat is that some of the exercises are very demanding.  In fact, some of them are probably non-starters if you aren't already fairly strong.  For me, the most challenging were the hand-stand pushups (they're done against a wall, but still very hard), the plank power-ups, which require a lot of tricep strength, and the ninja tuck jumps, which actually require some technique practice to get a proper rep out.  The workouts also tend to run longer than other AX programs, especially in the last couple of weeks, when they can run over an hour.  Of course, this is kind of inevitable for calisthenics workouts, since without external weights the only way to overload your muscles is with harder exercises or more reps.  But overall, I really liked Xero and highly recommend it.

Ultimate Abs

Lastly, a few words about Ultimate Abs.  This is a six-week bonus program that got for free as a bonus when I purchased Xero (there was a special deal on at the time - I forget the occasion).  I don't think it's sold individually.  There are several other bonus programs that get included as give-aways, but this is the only one I've done so far.

Ultimate Abs is a bit different from the regular AX programs.  For starters, there are no videos.  The workout page has the same kind of text and short demos as the regular workouts, but no walk-through.  You just have to read the couple of paragraphs of description to know what to do.  You also can't set it as your main workout - you have to get to it from the "bonus" tab under your programs.  And you can't set it as your ab workout like you can with Core4 either.  So the integration isn't there and there's not as much content.

The workouts for this particular program are a bit different as well.  Ultimate Abs is obviously an ab training program, but it focuses mostly on weighted exercises.  There two workouts per week, one long and one short, both of which are repeated for a total of four training days per week.  The workouts are pretty tough, but don't require any more equipment than AX-1 does.  

Overall, the program is decent.  Not as good as Core4, but not bad.  The workouts are tough, but there's not really much information included.  It also requires some scheduling, as it seems like it could be a drop-in replacement for the six-pack shuffle but really isn't.  The "long" days can take upwards of 30 minutes, so doing it right after a strength training day is tough and really stretches out the workout.  I ended up shifting the schedule to do the long days on Sunday and Wednesday, so I was doing them on the scheduled rest days for Xero, which I was doing at the same time.

So overall, Ultimate Abs wasn't bad, but you get what you pay for.  If it's offered with a program you already wanted, then great.  Go ahead an give it a try if you feel like something different.  But it's definitely a second-class citizen compared to Core4, so don't go out of your way to get it.

Changing the display manager in Ubuntu

Just as a quick note to my future self, if you want to change the display manager in Ubuntu, you just need to run the following:

$ dpkg-reconfigure gdm3
$ systemctl restart display-manager.service

The reconfigure will bring up a menu that allows you to choose from the installed display managers.  There's a nice summary with pictures here.

If anyone cares, the context here is that I run Ubuntu 20.04 with the Trinity Desktop Environment on my home destkop/server.  The problem is that pretty much every time I run an upgrade on that box it resets the display manager from TDM back to the default GDM. 

This is actually a really big problem because GDM doesn't work on this box.  Aside from the disk drives, most of the hardware in this box is about 10 years old.  So the video card is sufficiently archaic that GNOME just can't deal with.  When I try to log into GNOME or even just use GDM, I end up with massive display corruption and the desktop is basically unusable.  

One of these days, I should really replace that computer.  Or maybe rebuild it.  Or possibly just relegate it to purely headless server duty and get a different box to use as a desktop.  One day....

Blogging APIs

Author's note: It's officially the holiday season and I'm feeling lazy. So guess what - it's another episode of "From the Archives"! That's right, it's time for more of the series where I trot out something that's been sitting in my drafts folder for ten years because I can't muster the energy to write something new.

This article is from way back on March 18, 2007. It actually appears to be finished, so I'm not sure why I never published it. Perhaps I was filled with crippling self doubt that my analysis was actually stupid and people would make fun of me, so I never hit the publish button. That was actually a thing I did for many years. These days, I'm more casual about it. One of the benefits of getting older is that you're more experienced and able to have a more objective view of the quality of your work. Another is that you have a wider perspective on what really matters in life. Another way to put that is "you don't care as much what other people think."

Anyway, this article is about my attempts at implementing the various blogging APIs in LnBlog. This included the Blogger, MetaWeblog, and MoveableType APIs. I guess that seemed like a good idea at the time. In retrospect, it was a nice educational exercise, but not especially useful. I mean, the idea of a generic API that third-party clients can use to post to your blog is great. But in practice, it doesn't seem like that's a thing that many people actually need. I certainly never found a good use-case for it. Maybe that's why the APIs never really got fleshed out.

But that's enough out of present-day me. Let's hear from 2007 me. Enjoy!

Last month, I finally got around to doing some actual testing on the MetaWeblog and Blogger API implementations for LnBlog. By that, I mean that rather than testing it with my own code, I actually installed a few free blogging clients. I learned a few interesting lessons from this.

The Clients

I tested four blogging clients. The first is Deepest Sender 0.7.9, a Firefox extension that supports LiveJournal, Blogger, Wordpress, MSN Spaces, and generic MetaWeblog blogs. The second is KBlogger 0.6.2, a simple KDE panel applet that supports the MetaWeblog and Blogger APIs. Third is QTM 0.4.0, a C++/Qt4 application that support the Blogger, MetaWeblog, and MovableType APIs. Last is BloGTK 1.1, a Python/GTK+ application that also supports Blogger, MW, and MT.

My results were mixed. KBlogger worked basically as advertised. In fact, it's the only one of the clients that seemed to understand the APIs in the same way that I do. The only problem is that it's a bit short on features.

BloGTK seemed to work pretty well. However, it worked best when set to use the MoveableType API. When using the MetaWeblog API, I had problems editing posts. It also has a few weird little bugs, such as things getting messed up when switching accounts.

While it has a nice interface, QTM simply would not work with LnBlog. For the record, this is not my fault but rather due to the fact that this version of QTM did not correctly implement the APIs. When sending calls to the server, it sent blog IDs, post IDs, category IDs, etc. as integers, whereas the specification calls for them to be strings. While the difference may be academic for some servers, LnBlog really does use strings as IDs, so the requests raise errors in the XML-RPC library. (Note: this seems to have been corrected in CVS.)

And as for Deepest Sender, I just can't get it to work as advertised. I don't know why. It can post entries, but editing them results in a hung edit window, the "active blog" box is shrunk down to an unrecongizable control, and I have yet to even see a category selection box.

Server Problems

The first problem I encountered with LnBlog's implementation of the Blogger 1.0 and MetaWeblog APIs was my silly assumption that, just because they are two separate API specifications, I could implement them separately. And so, that's exactly what I did: I wrote one PHP script to implement the Blogger 1.0 API and a different one to implement the MetaWeblog API.

Oh, what a fool I was!

While that attitude made perfect sense when looking just at the specs, it just doesn't work that way in practice. Of the four clients I tested, KBlogger was the only one that worked when the MetaWeblog server didn't implement the Blogger 1.0 API at the same URI. The others all blithely assumed that the same URI would implement the Blogger, MetaWeblog, and MovableType APIs. I guess few people even stopped to consider that a server might have independent implementations of the different APIs. Or perhaps it's just that KBlogger is designed to support clients that only understand Blogger 1.0 while the others assume MetWeblog support. It's hard to tell.

Placing the blame

After going back to look at the specs, I believe much of the blame for this situation rests with the MetaWeblog API specification itself. The problem is that it's just a bad specification. In fact, it's really more a sketch of a specification than an actual spec. It's too vauge, too confusing, and leaves too much open to interpretation.

For instance, take the metaWeblog.getCategories method. According to the specification, this method returns a struct, with each member being a struct with the description, HTML URL, and RSS URL for each category.

For non-programmers, "struct" is short for "structure," and is simply set of key/value pairs. In this case, having member structs with keys for description and URLs makes perfect sense.

However, putting all of these in a struct doesn't make sense. The spec says that the category structs are to be returned in a struct, but says nothing about the key names of this container struct. But the entire point of having a struct is to associate key names with values. A struct with no particular key names is meaningless. It's like writing a book where the index lists words, but not page numbers - if you can't pick the word (key) you want and go straight to the corresponding page (value), then the entire exercise is pointless.

Another shortcoming of the API is that it does not clearly specify a way to identify blog posts. For example, the API includes the metaWeblog.editPost and metaWeblog.getPost methods, both of which take a post ID. It also includes a metaWeblog.getRecentPosts method to get an array of the most recent posts for a blog. You would think that you could call getRecentPosts, let the user pick a post, edit it, and then call editPost to commit the changes to the server. But you can't.

That's because the API does not specify how to get the post ID. The metaWeblog.getPost and metaWeblog.getRecentPosts methods return a struct and an array of structs respectively, and the spec states that the members of these post structs are the members of RSS items. But there is no mention of where the post ID comes in. RSS certainly has no concept of a post ID, so it's not clear which member should be used for that purpose. Presumably, this is why the MovableType extensions to MetaWeblog include a postId field in the post structs.

Of course, RSS does provide a GUID (Globally Uniquie Identifier) field, which seems a natural fit for the post ID. The problem is that the RSS spec does not require that this field be present. It could also be argued that the GUID has a meaning distinct from a blog post ID. But either way, if the MetaWeblog spec meant that the GUID should be the post ID, then it should have said so.

Judging from the MetaWeblog spec, the only place clients can count on getting a postID is from the return value of metaWeblog.newPost. That's fine if the client can assume it is making all posts to a blog, but it is insufficient if there is also, say, a web interface. If your blogging client can only edit posts it created, you've just cut its usefulness in half.

Missing Links

The MetaWeblog API depends heavily on the Blogger 1.0 API. By itself, it is missing too much to be truly useful for the development of rich blogging clients. If nothing else, this is clear from the absence of something resembling blogger.getUsersBlogs.

Actually, that's not entirely fair. There was an RFC to add the Blogger methods to MetaWeblog, so the spec has been amended to correct this shortcoming. Or has it? I actually only learned about this by reading the code for the WordPress MetaWeblog implementation. The "official" MetaWeblog spec doesn't actually mention this or contain a link to the new RFC. That seems rather odd considering that the spec does contain notes regarding other updates. So has the spec been ammended, superceded, or was this just a "Request For Comment" that was never actually adopted?

Bottom Line for Implementers

So what does all this mean for those enterprising individuals who want to try their hand at writing blogging software? It means you've got an up-hill battle.

Don't get me wrong - it's not that implementing the various specifications is difficult. The APIs are actually pretty simple. The problem is that you can't trust them.

For starters, if you want to write a server that is compatible with existing rich blogging clients, you will have to implement the Blogger 1.0, MetaWeblog, and MovableType APIs, and you will have to do it all at the same URI. This isn't really a problem, so much as an inconvenience, as you can't simply work from a single specification at a time, but have to jump back and forth between three of them just to get a workable MetaWeblog implementation.

If you're writing a client, things are just as annoying. As previously mentioned, there's the post ID problem to deal with. Handling that is not difficult, but you have to rely on the good will of the server to send you a sensible post struct, since it is not required to.

If you want to support MovableType, there's also their brain-damaged category handling to deal with. Rather than using MetaWeblog categories, MT has separate mt.getPostCategories and mt.setPostCategories methods, which deal with category IDs rather than textual categories. Again, this is not hard to deal with, but it means you have to implement category handling twice - once for MT, and once for servers that use MW categories. But on the up side, at least MT gives you an explicit postId field.

Conclusion

All in all, the old blogging APIs suck. They're imprecise, lacking in features, and tend not to be so platform-agnostic. I think they can be best described as "just barely adequate."

I have yet to look at the Atom API. I'm hoping it will turn out to be better, but I'm not going to hold out a lot of hope. At the very least, I suppose it can't be any worse than the old APIs.