Month: September 2002
The debate over the use of XML namespaces in RSS 2.0 continues — lots of links on today’s Scripting News. Here’s my personal take: RSS 2.0 must be backward-compatible with aggregators that support RSS 0.9x. On this, Ben Hammersley and I disagree. While I do understand the benefit of namespaces, I strongly believe that backward-compatibility should not be sacrificed.
Dave linked to the best solution I’ve seen so far from Don Park: “support namespaces but [don’t] require them to be declared unless they are needed and require only default namespace declaration to be used.” He speaks with the benefit of first-hand development experience with a partner whose software didn’t understand namespaces. He also quite rightly points out that “the primary value of RSS format is that it is being used widely and anything that breaks that voids the value of RSS.”
Simon Fell’s tests show that none of the popular aggregators fully support namespaces in RSS 2.0 and only NetNewsWire Lite supports namespaces in RSS 1.0.
I’m fairly certain that it would be pretty easy to make Radio’s aggregator properly not display items which are declared outside the RSS 2.0 namespace — I know this because Radio’s SOAP parser does this sort of thing. (Of course we would have to also make sure that if no namespace is declared, that the items are still picked up, otherwise we’d break compatibility with the 0.9x feeds.)
The thing is though, that the discussion of whether we’ll use namespaces at all may be academic, since non-namespace-aware parsers, if they don’t choke on the namespace declaration itself, wouldn’t be able to tell the difference between an rss:item and a licenseplate:item nor the difference between an rss:description and a ministryofsillywalks:description, so they’d break anyway. (At best they’d pick up items that weren’t intended for them, and at worst they simply wouldn’t work at all.)
I think it probably is worth the effort to add namespace awareness to Radio’s aggregator, since it helps to create a market for extensions, and all kinds of interesting things might be invented as a result. It’s also possible that extensions will appear but that lack of compatibility with non-namespace-aware parsers will bite their creators in the ass, limiting their adoption by content creators. For the sake of compatibility with non-namespace-aware parsers, extensions might simply avoid using any element names which overlap with elements defined by RSS, but then why do you need a namespace in the first place? (I know, I know — you can at least keep extensions from stepping on each other.)
In the long run, probably the only way to find out for sure is to add namespace support where we can, and see what happens next.
Update: Just to be clear — I don’t think Radio’s RSS generator should declare a namespace because we already know that this breaks some parsers, but rather Radio’s aggregator should be made to understand the namespace when it sees it. This is, I think, what Don Park is recommending.
Agree? Disagree? Click the comment link and let me know.
Most Manila sites are dynamic sites — the pages are rendered from text, templates, and script code that resides on your Frontier server. When a web browser requests a page from the server, Frontier pulls all the pieces together, and churns out a page of HTML which is returned to the browser.
Pages in Manila sites can contain macros. Macros make it possible to include calculated elements in your web pages and templates, and many of Manila’s more powerful features build on macros.
Since Frontier’s deep scripting language has the ability to modify just about anything on your server, we provided a mechanism for specifying what macros are “safe”. Any non-safe macros are automatically “neutered” — their code won’t be executed when the page is rendered.
Frontier 9.0 introduces a new feature which allows server managers to add to the list of safe macros through the admin website. To make a macro safe just type its name and click a button. To remove a safe macro, check a box and click a button. Safe macros are available to all Manila sites, and indeed all dynamic sites, on your Frontier server.
Tomorrow’s screenshot: Server Monitor
Ok, now this may sound a bit strange, but I was talking with my brother on the phone tonight, showing him the new search features in Frontier 9. Of course, little punk that he is (just kidding Pete), the first term he searches for is “ass”. No results (duh).
(Note: The only reason for this post’s existence is so I’ll show up higher on Google searches for the word “ass” — not!)
In Frontier 9.0, the options for Manila site hosting have been expanded. On the Manila Hosting Settings page, you can choose who’s allowed to create new sites, whether they will be sub-sites or top-level sites (using virtual domains), and whether new sites share their members with the hosting site.
New in Frontier 9.0, you can easily change the database in which new sites will be created. Periodically creating a new hosting database helps you keep the size of individual databases low, improving server performance.
Also new in Frontier 9.0, you can choose the default language for new sites, which editing tool they will use (WYSIWYG, HTML tags or none), and the default home page text for new sites. These features make it easy for server managers to tailor their Manila site hosting based on the needs of their users.
Tomorrow’s screenshot: Themes
Frontier 9.0 ships with over 50 Themes for your Manila users. At any time, a Manila site owner can switch their Theme, instantly updating the look and feel of their entire site.
Any site can easily be used as a template for a new Theme for use by other sites. If you’re setting up a collection of sites for a corporate intranet for example, you only have to design the site once and make it into a Theme. Then all other sites on the intranet can use the same Theme, keeping the look and feel of your intranet web presence consistent. Once you have the initial Theme, it’s a breeze to create new sites and pages with the same look and feel.
You can use the Themes that ship with Frontier 9.0 as a starting point for your own websites, or you can start from templates you already have, or completely from scratch.
Tomorrow’s screenshot: Legal Macros
Frontier has a pair of features which work together to make it easy for multiple to work together on changes to a single database: WebEdit and Subscribable Databases. WebEdit is a client-server application that runs in Frontier, which allows a group of people to work on a database — a website or scripting project.
The Subscriptions feature allows you to publish a database and let other people to subscribe to changes made to the database. It uses the same mechanism as updates to Frontier.root.
The two features work together — when a change is checked in to a subscribable database using WebEdit, it’s automatically added to the updates stream for the database.
In Frontier 9.0, the Database Subscriptions page lets you easily choose which databases you want to enable subscriptions for. Check the box next to the database’s name, click the submit button, and you’re done. Server administrators can also see at a glance how many parts are in the updates stream for a given database.
Tomorrow’s screenshot: Manila Hosting Settings
I’ve got a new URL: http://jake.userland.com/
Re-publishing archives now. This could take a while…
While Frontier has had a built-in search engine since version 5, it has never been easier to configure than it is in Frontier 9.0.
On the Search Engine Settings page, you can enable or disable the search engine, specify the URL of your server’s search page, turn logging on or off, specify how often to index new pages, and optionally open up your search engine for public submissions through XML-RPC. (See this DaveNet piece for some background.)
Radio Community Server can take advantage of Frontier’s built-in search engine as well. Check a box on RCS’s Search Engine page, and all content upstreamed by your Radio users will be indexed by Frontier’s search engine, including text and OPML files as well as HTML.
Your Radio users can add a search box to their own sites using a simple macro.
Tomorrow’s screenshot: Subscribable Databases
Frontier can automatically download and install the latest features and fixes from UserLand’s updates server nightly.
While the capability to do so is not new in Frontier 9.0, the ability to update immediately whether you’re sitting at the server or not is new.
On the Updates settings page, you can choose which databases should be updated automatically (if any). At the top of the page is an Update Now button, that updates your databases immediately.
After the updates are downloaded they’ll be listed in the browser, so you’ll know exactly what’s changed.
Tomorrow’s screenshot: Search Engine Settings