P@ Sunglasses

« Previous month (Aug 2004) | Main | Next month (Oct 2004) »

20040929 e mërkurë shtator 29, 2004

eleven words infant creeper: not for Charlotte!

This summer Jonathan Schwartz communicated his corporate priorities: eleven words we're all supposed to learn by heart. I've never been a very good Kool Aid drinker, not to mention my memory who looks more like a graph of pointers (or uris, RDF anyone?-) to external ressources than a content store for whatever fad of the day.

He mentioned the baby infant creeper that some guys put up for sale at Cafepress, with the eleven words on it, in his post (By the way the link in his post is broken, these guys in the meantime changed their domain name from Cafeshop to Cafepress): fun derisive idea showing how ridiculous corporate culture can be. But I wouldn't expect anyone to buy this stuff!

Wrong was I! Last week when I met my friend Ludovic Dubost at the Paris Open Source get Together, he offered me the ridiculous creeper with a large voracious smile (we both had kids at the same period this summer)! What am I gonna do with it? Probably use it to clean my computer screen. I don't want little Charlotte to wear such a creepy creeper!

As for Ludovic, how am I going to get revenge? Maybe offering him a Snipsnap or Confluence creeper for his baby, if such a thing exists (he's the founder of the xWiki competing project)

What I learnt from this sad story though is that the Cafepress service exists and lets you design your own T-shirts and put them for sale to share them with friends. I used to design many (too many according to my wife:-) of my T-shirts myself: design, print on transfer paper, iron. But the process to send them to friends was too time consuming, so I mostly did it for family events. I'm sure I'll use this service a lot!

( Sht 29 2004, 01:31:41 MD PDT ) Permalink Comments [1] Chat about it Technorati cosmos Tagsurf It

Using desktop blogging client

Weblog servers often provide a user interface to post to your weblog, aften a textarea where you type in your text, a combobox to select a category, and a post button. In the best user interfaces, when you have a decently recent browser they provide you with a rich text editor around the textarea, for WYSIWYG editing of your post. But over the years servers have exposed remote APIs that let a client, be it a desktop application, a cell phone or a backend system agent, post to a weblog.

The problem is that most people don't know how to configure these clients when they find one. In this article I will explain how to configure a desktop client to post to a MetaWeblog API server such as Roller, using blogs.sun.com as an example.

Using a blogging client with Roller, on the Roller user's guide wiki does a good job at explaining how to configure a MetaWeblog API desktop client to post to Roller.

It uses w:bloggar, a Windows client, which seems to have many features. Unfortunately as explained in A quick history of the weblog posting APIs, MetaWeblog API based clients, and servers, vary in quality of implementation, depth of configuration they offer, and the wiki documentation doesn't make clear what is the minimum set of common attributes that you need to set in most of these clients. Moreover the "spec" is not as rigorous as W3C, OASIS or IETF specs, and clients and servers often implement it incompletely or interpret it differently.

For example Tektonica MO:BLOG which I use on my Treo phone does implement the metaWeblog.newMediaObject (blogid, username, password, struct) entry point, but does not send the Mime type of the object. Roller 0.9.8.2 which we use now does not implement the newMediaObject method at all (throw new XmlRpcException(UNSUPPORTED_EXCEPTION, UNSUPPORTED_EXCEPTION_MSG);). The code for MetaWeblog API implementation in Roller is borrowed from David Czarnecki's code for the same thing in Blojsom. But Roller used an old version of Blojsom: the current Blojsom implements it correctly. Too correctly for MO:BLOG, so I had to hack and recompile that blojsom class on my server in order to be able to post pictures from my Treo:-(

I don't mind that kind of fooling around with clients and servers. Moreover in order to configure a client, having played with many clients and servers over the past few years, I quickly found out what I needed on the wiki page to configure NetNewsWire, Ecto, and Tektonica MO:BLOG to post to Roller on blogs.sun.com. But I understand that it is not clear to many of my Sun colleagues who have started blogging since a few months. David Ogren, who has an interesting blog here just asked the question in the sun bloggers list, so I'll try to answer here: How to configure a desktop blog posting client to post to Roller on blogs.sun.com

I will restrict myself to MetaWeblog API based clients for now, until John, Dave and Will install the latest Roller on blogs.sun.com and we can dump this API to finally use Atom.

Please read A quick history of the weblog posting APIs first in order to get some context (I try to slowly build a knowledge base here, post by post:-)).

Looking at the MetaWeblog API specification, you can see that all calls have 4 elements in common: blogid, username, password and a struct (looks Cish isn't it?-). The struct is specific to each call, but the 3 other parameters are what you need to minimally provide to your client. Username and password are self explanatory. Blogid is there because on many systems, such as MovableType, you can have many different weblogs for a single user. In Roller userid and blogid are the same. If you want another weblog just create another user. Then because the MetaWeblog API specification is an XML-RPC API, you need a url to post your call to.

To summarize, all MetaWeblog API based clients will ask you for 4 pieces of information: username, password, blogid, xmlrpc url. In Roller, and more specifically on blogs.sun.com these will be:

All the rest is details. Some weblog clients propose you a list of server types, in order to customize the parameters they will ask of you. This lets them take advantage of certain specific server features (MovableType, which invented many specifications and features for blogging, has many of these). Roller is rarely in the list. Then just choose MetaWeblog API compatible in the list and it should work fine.

When using NetNewsWire Pro 1.07 not all features worked well all the time: as I explained servers and clients often differ in how they interpret the specifications, and don't all have perfect error reporting. I remember having had trouble with getting categories, or old posts. I hope Marsedit will have fixed that.

I've used these guidelines for NetNewsWire Pro 1.07 that I used until yesterday, Ecto, MO:BLOG, and Marsedit Beta 1.0 / NetNewsWire 2.0b3 beta that I use since yesterday and find fantastic! This is actually my first post using Marsedit, using the configuration I described above. The editor is really very nice: easy tag list to add classic HTML tags, custom list to add your own, shift-apple-A with a selected text to add a href with the string currently in the clipboard. And it got my previous posts and categories from the server without a hitch. Let's see if posting works...!

Oooops, no, error message, "the server did not respond". Let's try again.... same thing. Marsedit has a nice XML-RPC console, let's try to troubleshoot what happened:

XML-RPC reply received: 2004-09-29 17:29:07 +0200
URL: http://blogs.sun.com/roller/xmlrpc
Method name: metaWeblog.newPost
Status code: -1
Succeeded: NO
--Download Error--
Response text:

OK so Marsedit does not seem to work as well as NetNewsWire 1.07 with Roller 0.9.8.2. I edit this in the Roller UI. What happened is that I tried to post 4 times and got the same error message. But then a few minutes later I realized my posts had been taken into account in the server! So I had 4 duplicates of the same post. Dave Johnson says in an internal email that he is using Marsedit with Roller 0.9.9 and it works fine. Blogs.sun.com should migrate to 0.9.9 soon, so hopefully Marsedit will work better then. In the meantime, either use Ecto or NetNewsWire 1.0.7... or your cell phone! The instructions above are valide for any MetaWeblog API client.

This shows how immature weblog posting software is today: the Atom API specification should make client and servers more interoperable.

Coming next week are posts about Moblogging from a cell phone, and the Atom API: stayed tuned!

( Sht 29 2004, 08:37:45 PD PDT ) Permalink Chat about it Technorati cosmos Tagsurf It

20040928 e martë shtator 28, 2004

Moblogging in Atom: MobileAtom J2ME works

Just tried MobileAtom J2ME that Tim mentioned to me half an hour ago: it works fine!

I was able to modify a post on my blogger weblog, first post from the blogger ui from my Treo... all this while attending a conference call (sorry guys if I felt a bit distracted: I just couldn't resist:-)

I could not test it on my blojsom blog because he hardcoded the destinations to blogger and typepad. I'm on a Mac, the J2ME toolkit has only a windows and linux installer, my VirtualPC partitions are on an external disk at home, so I can't recompile it now. I had tested Russel Beattie's AtomME on blojsom but it did not work. David Czarnecki had posted a fix but I had no time to apply it.

Now we just need to deploy Roller 0.9.9 on blogs.sun.com to get J2ME/Atom powered moblogging here!

Dave, Will, John, when do you guys upgrade?

Nota Bene: Robert Sayre, who wrote MobileAtom, was introduced to me by Tim Bray. He gave me a great tip: Michael Powers created a Darwin/OSX port of the Mobile Information Device Profile (MIDP) Reference Implementation v1.0.3.: see MIDP 1.0.3 for OSX. No need of VirtualPC anymore to do J2ME coding on a Mac! Thank you guys!

( Sht 28 2004, 11:49:16 PD PDT ) Permalink Chat about it Technorati cosmos Tagsurf It

Earthquake in Santa Clara 2 minutes ago!

I'm on a conf call with my colleagues in Santa Clara now, and it seems they just experienced a minor earthquake. Minor because we resumed the conf call right away and all seems fine with them.

It's not yet listed on the USGS Earthquakes page. I'll signal it to them. They have a great Map, and even a RSS feed. See the list at USGS Earthquakes: RSS Feed Information:-)

I signaled it. It's not yet on the map

But there was a 5.9 magnitude earthquake a few minutes ago in southern California

( Sht 28 2004, 10:23:36 PD PDT ) Permalink Comments [1] Chat about it Technorati cosmos Tagsurf It

20040927 e hënë shtator 27, 2004

Geek humor: Donald Knuth finally sells out

Found that in Val Henson's list of links.

( Sht 27 2004, 01:15:26 PD PDT ) Permalink Comments [2] Chat about it Technorati cosmos Tagsurf It

20040924 e premte shtator 24, 2004

Craig R. McClanahan created his blog today!

Craig was in France this week, explaining Sun Java Studio Creator to customers and internally. I was lucky to attend his internal session this afternoon.

Alexis Moussine-Pouchkine spent the week with him and I understand he has been bugging Craig about blogging for the whole week. So we had a conversation about blogging at the end of his preso, and Craig explained he was more used to answering questions in mailing lists (Jakarta's living through mailing lists) than than pushing statements out like bloggers do. I can relate to that, but I'd personnally be very interested in reading a blog by a visionary like him.

A few minutes later I received the following email alert from the internal BURPS (Blog User Roller Provisioning System) system I wrote: "For Sun user xxxx Login Name: craigmcc Full Name: Craig R. McClanahan ... has been created". Welcome to the blogosphere Craig! Read him at http://blogs.sun.com/craigmcc: I'm sure he'll have a lot of exciting stuff to say about Struts, JSF and Creator. There's nothing on his weblog yet though:-).

( Sht 24 2004, 10:06:00 PD PDT ) Permalink Comments [1] Chat about it Technorati cosmos Tagsurf It

Open Office popularity in France

In French Open Source Deployments Simon explains how Open Office begins to be widely deployed in french administrations. Yes this is a strong trend in France these days. I'll quote a few resources about that to give you a better idea of the scale we're talking about. Most sources are in french, sorry, people here tend to publish in their native language, even if this reduces their potential audience: L'Etat se tourne vers le logiciel libre an article from last june explains that the government must update the software for 900 000 computers in the next 3 years. Renaud Dutreil, minister of Public Service and State Reform (in charge of managing the administration) explained that "for office software only (word processors, spreadsheet, presentation) it represented more than 300 millions euros."

But government is not alone: the health sector is another area where Open Office seems to get a lot of traction in France.

Medecine Libre is a site dedicated to using oss software in the french health sector.

OpenOffice - Chronicle of an Ambitious Successful Migration describes Suite bureautique, les enjeux d'une alternative (Office suite - the stakes of an alternative), an in depth analysis, both technical and financial (detailed TCO), assessing migrating to Office XP vs Open Office in a medium size french hospital. Conclusion (p 116) is that the TCO of Open Office is half the one from Office XP. This report dates back to 2003: I guess the people in charge of upgrading the administration's 900 000 computers have read it:-)

( Sht 24 2004, 06:26:34 PD PDT ) Permalink Chat about it Technorati cosmos Tagsurf It

20040923 e enjte shtator 23, 2004

Open Source Get Together in Paris

Tonight I ate sushis with a bunch of java open source developers based in Paris. I was very happy to discover that we are so many in Paris. Vincent Massol has set up a Yahoo Group for us: the Open Source GetTogether Parisien. We meet the third thursday of every month. Feel free to join the group if you're interested. We also have a wiki (xWiki based) hosted by Ludo (the old Confluence based wiki, hosted by Vincent should not be used as I have understood.

Usually it seems we gather at Pivolis, Vincent's company, where we have one project presentation, after which we go for dinner outside. Yesterday Vincent couldn't come so we just had dinner.

Exciting news about maven 2.0 plans: no more jelly, all plugins as pojos, so you can reuse them in your app outside of ant or maven, reimplement all ant tasks as pojos, finally a classloader hierarchy. Cool stuff!

Exo Platform Portal integrated xwiki as a portlet, started implementing a JSR 170 container (Java Content Repository API) and will announce some exciting news soon (can't talk about it yet). Craig McClanahan, who created Struts and JSF is in Paris these days: I invited Benjamin on monday to meet with him because Exo Portal's architecture is all based on JSF, and I think is a very cool demo of JSF's power as a MVC framework.

xWiki made great progress over the past few months. Ludo improved the presentation and UI a lot, all XHTML and CSS based, created a nice URLFactory that makes Portal integration much easier, has now PDF export, with links going inside the PDF, blog and RSS export support. But the most interesteing feature of xWiki is its scripting support: xWiki is a development platform: in a wiki page you can define objects, that get stored in the database (all automatic), then write forms, in velocity or Groovy. If a regular Wiki is like Word on the net platform, xWiki adds to it Access and Excel. I predict that this very promising application development platform will take off as soon as people start creating compelling applications on top of it. xWiki takes what Clay Shirky calls Situated Software to the next level of easiness: edit page, write script, play with app (no fuss with database schema scripts, compiling and stuff). The inclusion of Groovy and Velocity, a scripting and a template language, for this platform, also reminds me of Paul Graham's argument in his most excellent Hackers and Painters, about the competitive advantage of dynamically typed language (so called scripting languages) running in an interpreter over statically typed ones that need to be compiled: Ludo when do you include LISP as a scripting language in xWiki?-)

Benjamin has a nice section about xWiki in his last august Exo Reloaded TSS article. What I find interesting is the idea of using xWiki's generic Hibernate content store as the base for a JSR 170 content repository implementation.

Also beyond the product itself there starts to be some very interesting uses of xWiki on the net:

A few pics of the gang.

Benji showing Ludo Exo Platform Portal on his new Nokia. Ludo's xWiki is integrated as a portlet in Exo's Community menu but not on the mobile version of the Portal. We also tried to upload the pictures I took from my Treo web browser to one of Ludo's xWiki powered photo album sites (pausetechnique.com is a good example), but the Treo browser does not implement file uploads:-(

From left to right: Francois Le Droff, Herve Mignot (when do you start a weblog Herve?-)), Guillaume Laforge (Groovy), Emmanuel Venisse (Maven and a bunch of other projects)

From left to right: Ludovic Dubost (xWiki), Benjamin Mestrallet (Exo Platform Portal - Benjamin a weblog would help promoting Exo beyond TheServerSide audience), Arnaud Heritier (Maven), Francois Le Droff (Many jakarta projects)

posted from my treo (enhanced the next day from my desktop)

( Sht 23 2004, 02:15:08 MD PDT ) Permalink Comments [5] Chat about it Technorati cosmos Tagsurf It

20040920 e hënë shtator 20, 2004

A quick history of the weblog posting APIs

A little history and explanation of the various weblog posting APIs.

Please feel free to correct me: I've taken the blogging train only in 2002 and have not lived through all the history of this evolution, so some facts stated here may be wrong.

XML-RPC is a 1998 spec by Userland's Dave Winer for RPC in his proprietary content management tool Frontier.
Then Winer worked with Microsoft to spec out SOAP.

In the meantime as blogging got more successful the blogging crowd wanted an API to post to a blog from a client or server tool, wihtout using a HTML form.

1. Blogger API

Blogger shot first, 8/7/2001,with the Blogger API , a very simple API based on XML-RPC.
Its methods are very simple and limited: get and set some weblog texts.

blogger.newPost: Makes a new post to a designated blog. Optionally, will publish the blog after making the post.

blogger.editPost: Edits a given post. Optionally, will publish the blog after making the edit.

blogger.getUsersBlogs: Returns information on all the blogs a given user is a member of.

blogger.getUserInfo: Authenticates a user and returns basic user info (name, email, userid, etc.).

blogger.getTemplate: Returns the main or archive index template of a given blog.

blogger.setTemplate: Edits the main or archive index template of a given blog.

2. MetaWeblog API

Then in 3/14/2002 Userland's Dave Winer published the MetaWeblog API, still based on XML-RPC, to address the blogger API shortcomings: from the "spec"

Relationship between MetaWeblog API and the Blogger API

The MetaWeblog API is designed to enhance the Blogger API, which was limited in that it could only get and set the text of weblog posts. By the time MWA was introduced, in spring 2002, many weblog tools had more data stored with each post, and without an API that understood the extra data, content creation and editing tools could not access the data.

At the time of this writing, summer 2003, most popular weblog tools and editors support both the Blogger API and the MetaWeblog API.

Relationship between MetaWeblog API and RSS 2.0

The MetaWeblog API uses an XML-RPC struct to represent a weblog post. Rather than invent a new vocabulary for the metadata of a weblog post, we use the vocabulary for an item in RSS 2.0. So you can refer to a post's title, link and description; or its author, comments, enclosure, guid, etc using the already-familiar names given to those elements in RSS 2.0. Further since RSS 2.0 is extensible, so is the MetaWeblog API. We have designed conventions for representing attributes and namespaces in MWA.

This API was successful and is implemented in most weblog servers (Movable Type, Roller) and clients (Ecto, NetNewsWire Pro).
The main long term additions concern getting recent posts, attaching media files to a post, setting and retrieving categories, and extensibility (sending attributes for post elements, and using namespaces).
But it is tied to RSS 2.0.

David Czarnecki's first comment to this post outlines the variety of ways this spec can be implemented on client or servers, making the use of this spec very experimental: just try a combination of client and server and cross your fingers to see if it will work.

3. Atom

Then in early 2003 Sam Ruby, the intertwingled one (from Apache/IBM), tired of the endless fights between RSS 1.0 and 2.0, started the Atom project (initially Echo) to define a new standard for syndication, including extensibility and APIs.

The spec was designed collaboratively on the Atom Wiki. Tim Bray participated into that, as well as most blogland except Dave Winer who was pushing for RSS 2.0. In spring 2004 Sam Ruby proposed to submit it at the IETF as a standard. The standardization work is in process now and should be finished by the beginning of 2005.

The Atom API follows the REST architectural style (GET, PUT, DELETE, POST) with an option to use SOAP.
It generated a lot of noise and disputes in the blogging community.

Although I did not participate directly, I am personnaly very much in favor of it: I seems like it will be a "real" specification, and its design last time I looked was pretty clean. The problem with the Meta Weblog API is that the specification is open to interpretation and very often clients and servers implement it either incorrectly or using different interpretations, resulting half working solutions and strange error messages. Atom should be more strict, so more straightforward to validate, yielding better interoperability.

It is quite recent and is not implemented in all servers yet, but I'm sure it will. Movable Type supports it, and Google recently chose it for their feeds (Google acquired blogger last year). However when people say they support it, it usually means for generating feeds, not for the publishing API (Movable Type 3.0 implements the Atom API draft). But that will come in due time.
Dave Winer must have felt that because in april he offered the olive branch to try to make RSS 2.0 and Atom converge.

Conclusion for blogs.sun.com

Roller today implements part of the Meta Weblog API (not the newMedia() method so you cannot post pictures), so this is what you need your weblog client to use if you want to post to blogs.sun.com. The code for the Meta Weblog API in Roller comes from David Czarnecki's Blojsom (another nice weblog server in java, that was included in Mac OS X 10.4 server last june) and his latest version includes the newMedia() implementation. We just need to push it in Roller.

Dave Johnson plans to add support for Atom API in Roller. It will probably be based on Lance Lavandowska's Atom4J project.

References

As usual Mark Pilgrim has the best writeup on this topic: The Atom API

The Roller Wiki has a good set of links for further reading on the topic: WeblogAPIs.

( Sht 20 2004, 04:08:05 MD PDT ) Permalink Comments [9] Chat about it Technorati cosmos Tagsurf It

test blogplanet test blogplanet test bold

Obviously it worked, but on the phone I received an error message and was not sure it was posted. Moreover this client does not let me post pictures from the Treo camera.

---
This post was made with a trial version of BlogPlanet, a photo blog client for mobile phones. For more information visit www.blogplanet.net
.

( Sht 20 2004, 09:00:07 PD PDT ) Permalink Chat about it Technorati cosmos Tagsurf It

20040918 e shtunë shtator 18, 2004

Grey sky at sfo international

Contrasting with the sunshiny day I had when I arrived last week, I leave San Francisco on a cold, overcast day.

My week here has been incredibly packed.

Message to Jonathan: you can post from your cell phone today. I'll write a more detailed post about this from a more convenient client next week:-)

It took me something like half of the line you see here to blog this: there is room for improvement in moblogging clients! I think a server side voice recognition software, which would send you the text to edit would make it easier.

posted from my treo ( Sht 18 2004, 01:10:42 MD PDT ) Permalink Comments [1] Chat about it Technorati cosmos Tagsurf It

20040914 e martë shtator 14, 2004

"you don't need ip, just run with the rest of the stack"

I'm at the Sun Open Source summit in Santa Clara today. I'll try to blog what I can: I think it's gonna be fun!

At 9 am a bunch of geeks begun to flood Santa Clara auditorium. Conversations are hilarious. Will try to blog a few quotes.

Craig Russel opnened the ball: we've had problems with the wifi setup. Some of us got an adress from dhcp, other didn't. Same hardware, Powerbooks, 17''. Craig's solution: "you don't need ip, just run with the rest of the stack". Sure, I'll try to do that:-)

( Sht 14 2004, 09:54:56 PD PDT ) Permalink Comments [1] Chat about it Technorati cosmos Tagsurf It

20040912 e diel shtator 12, 2004

Sunshine at sfo international

Cross posting on blogs.sun.com.

Now that dave johnson is onboard itIs time to enhance roller meta weblog api to support the newMedia call in order to make photo moblog possible.

I always feel pumped up when stepping outside the airport at san francisco. A mix of nostalgia and enthusiasm, today bolstered by the windy sunny weather (note to self, have blojsom add geoloc and weather meta data to posts based on keyword, using rome weather module and geourl)

The guy at the customs asked what kind of software I was doing at sun. I said portals and asked wether they had one. Not yet it seems. They seem to use dell desktops. US customs would be a great customer for JDS and Portal! I hope our sales are pitching them:-)

I felt exhilarated when I was able to call my wife from the treo 600 from the luggage area: the treo 270 I had on my previous trips was gsm only, this one is triband.

Let's see if I can also connect to the net to send this post. I don't know how much it will cost: will blog the price when I receive the invoice.

posted from my treo

( Sht 12 2004, 03:10:44 MD PDT ) Permalink Chat about it Technorati cosmos Tagsurf It

20040909 e enjte shtator 09, 2004

Danny Ayer's JSoup could be a way to make Rome a more "liberal" feed parser

The excellent RDF buff Danny Ayers wrote JSoup: a tag soup parser in Java, turns HTML/Bozo XML into well-formed XML.

I gave it a try and it seems to work: I tried the demo and experienced the same problem he describe (pat.rss is my feed with the missing title closing tag at channel level) with nested stuff, which is normal since it is setup in streaming mode.

java -cp .. jsoup.JSoupDemo pat.rss patfixed.rss
diff pat.rss patfixed.rss
411,412c411,412
<   </channel>
< </rss>
---
>   </title></channel>
> </rss>

But when I switched to non serial mode it worked fine.

java -cp .. jsoup.JSoupDemoString pat.rss patfixed2.rss
diff pat.rss patfixed2.rss
6c6
<   <link>http://blogs.sun.com/roller/page/pat</link>
---
>   </title><link>http://blogs.sun.com/roller/page/pat</link>

Today the Rome parser accepts only feeds that are well formed XML.
One way to make it more liberal would be to trigger JSoup whenever an XML parsing error happens, and then pass the cleaned up String to Rome again for a new attempt.

JSoup doesn't know how to that in serial mode, so performance will not be that good, but it's not a problem because it would be an exceptional code path.

Also this liberal behavior will be an option that you need to define. The default behavior will be non liberal.

What do you folks interested in Rome think about this proposal?
Danny, would you be willing to contribute JSoup as a rome subproject?
Because it is an optional behavior for Rome, and that JSoup can be used for other things than fixing feeds, I think it should be a subproject.

( Sht 09 2004, 04:28:22 PD PDT ) Permalink Comments [6] Chat about it Technorati cosmos Tagsurf It


Valid HTML! Valid CSS!

This is a personal weblog, I do not speak for my employer.