Monday, 5 May 2003

Re: Ultimate Weblogging System, Outlined and blojsom

I'd be remiss if I did not comment on the Ultimate Weblogging System outline that was posted on Friday. So, here goes my annotated list with relation to blojsom. Let's see how we score.

  • Forward compatibility
    • Use whichever license will minimize lock-in, architecture rot, and development effort required in the long term.We use the BSD license. That's open and flexible enough IMHO.
    • Work with at least one Free database (e.g. mySQL).blojsom uses the filesystem, but in blojsom 1.8, we introduced the BlojsomFetcher interface, so in theory, you could write a DatabaseFetcher to fetch categories and entries from a database.
    • In case of emergencies, allow entries to be exported to XML. Well, most ISPs do nightly backup of your directory. Would 'tar cvf' work for you? /images/emoticons/mozilla_laughing.gif
    • Use entirely non-crufty URIs. Chris Nokleberg over at sixlegs.com has written a servlet filter to take URLs of the form (http://sixlegs.com/blog/java/cglib-keyfactory.html) and turn them into what is required by blojsom. So, this could be further extended to support some of the requirements below. Alhough, let me comment on them individually if need be.
      • Give individual entries URIs (permalinks) of the form http://base/2003/05/02/oneMeaningfulWordFromTheTitle.
        • No irrelevant system-specific cruft (e.g. mt-static/, msgReader$, or weblog.cgi). Use or extend the servlet filter above.
        • No ? characters, so all entries get indexed by search engines. Use or extend the servlet filter above.
        • No irrelevant filetype-specific cruft (e.g. .html, .php, or .xml). Use or extend the servlet filter above. This would also assume that blojsom supported only one file extension, when in reality, you can have .txt, .html, or any extension mapped as your blog entries. They could be .blog for all we care.
        • Every entry is on its own page, not just an internal anchor on a daily/weekly archive (which makes search engines and statistics tools less useful).Yeah, it can be done. See this link
        • Net effect: Even with a stupidly worded inbound link (e.g. “I came across this/images/emoticons/mozilla_wink.gif, a reader can tell a lot about an entry (host, date, and hint at subject) from glancing at its URI.
      • Give daily archives URIs of the form http://base/2003/05/02/. We've got calendar filtering.
      • Give monthly archives URIs of the form http://base/2003/05/. We've got calendar filtering.
      • Give yearly archives URIs of the form http://base/2003/. We've got calendar filtering.
      • Give category archives URIs of the form http://base/name-of-category/2003/05/, etc. We've got category and calendar filtering. Again, if you want the URIs as above would jsut require use or extension of Chris' servlet filter.
      • Theory: URL as UI, Cool URIs don’t change.
      • Practice: Making clean URLs with Apache and PHP.
  • Metadata
    • Each entry has a title, a category string, contents, time posted (auto-generated), and one or more objects (e.g. images). We support category meta-data and blog entry meta-data. The Semantic weblogging guys are using the blog entry meta-data to store semantic information while someone like Starving Java Programmer is using category meta-data to give different colors to entries that appear on the main index page.
    • Invite (but do not require) the author to provide a summary for any item longer than n words, for use in mobile editions and RSS feeds. "We've got the See More ... plugin" so this is quasi-automatic.
    • Categories are faceted. I may categorize an entry by subject, by current location (integrating with GPS devices), by mood, and so on. Once I checkin the last of the category meta-data code, you'll be able to do things like primary category for an entry as well as related categories if you wanted.
    • Each category facet can be hierarchical. (For example, an “interface design” subject category could be subdivided into “desktop application design”, “Web design”, “appliance design”, and “signage and artifact design”.) blojsom gets categories from the filesystem which is hierarchical.
    • Invite (but do not require) an author to subdivide a category whenever it collects more than n entries (rather than forcing them to be architecture astronauts specifying all their categories at the beginning). @see above post on category meta-data.
    • An entry may have multiple values for each category facet. (For example, one post might be about both CSS specifications and buggy Web browsers.)
    • Why does all this need to scale so deeply? Because when you’ve been keeping a Weblog for twenty or thirty years, and you can’t remember any semi-unique words you used in a particular entry, finding it will be horribly difficult, and you’ll need all the semantic help you can get.Did I mention that blojsom is being used to demonstrate semantic blogging?
  • Syndication
    • Provide an RSS feed for the Weblog as a whole. Yep, we gotz dat shiznitz yo. I'd also point folks at the flavor-based default category mapping which talks about blojsom's ability to aggregate any subset of your blog categories for a particular flavor type.
    • Provide an RSS feed for any category.
      • Because of the faceting, category feeds will need to be dynamically generated, but they should still send correct caching responses.And we gotz dis
    • Automatically ping Weblogs.com. I'd probably add this into one of the many XML-RPC clients like ChronicleLite. But, in short, it could be done. Damn, it's also an RFE! /images/emoticons/mozilla_laughing.gif Damn, why didn't I think about this before, but this could be automatic via plugin using the blog entry meta-data. Basically, one of the meta-data items could be has-weblogs-ping which could be 0 or 1, true or false, whatever. The plugin would periodically troll your blog-home and look for new entries that do not have an indicator that weblogs.com has been pinged with that entry. Ahhhhh, the beauty of blog entry meta-data!
    • Automatically convert Slashdotted entries to static pages, and switch back to dynamic generation once the traffic subsides. Well, I guess I need to write that CachingFetcher /images/emoticons/mozilla_wink.gif
    • Integrate support for Creative Commons licenses. I guess I don't see that as impacting the useful of the blog tool. Hell, I'll provide the icons for people to choose an icon to license their blog content under a CCL.
  • Management
    • Web interface. Well, I guess. But blojsom is so simple as people who have switched have mentioned. Download the WAR file and configure 3 properties (blog-home, blog-url, and blog-base-url.) Christ, if you're running it locally, you don't even need to configure blog-url and blog-base-url. I guess this is because I want blojsom to be as simple and straightforward as possible. I don't really think I need a web interface to do all the necessary configuration. But then, I see it's utility in certain environments and situations.
    • Native LinuxSTEP interface. Yeah, huh?
    • Accept entries from software on any other platform or device, using the metaWeblog API. Let's see, we've got support for the Blogger API, MetaWeblog API, blojsim (blogging via IM), Audblog (audio blogging via Blogger API).
    • Accept entries sent by e-mail. Yeah, it could be done via plugin or as a separate extension
    • Make it easy to send entries from a mobile phone (e.g. by replicating the features of Textile). Mark blogs from his SideKick using blojsim! So, we've got pagers. It should be straightforward to do this via phone via blojsim or when I write the Mail2Blog extension.
  • Backward compatibility
    • Import entries from Blogger, Radio, Manila, Movable Type, etc. A new blojsom user has already written a Roller to blojsom conversion tool which takes all your entries from a Roller database and re-creates the blog using the blojsom filesystem way.
    • Keep URIs the same for legacy entries, while still allowing control over their appearance. Need to think more on this. My gut instinct is that it could be done.
Posted by at 4:03 PM in blojsom ... all blojsom

blojsom hits 1000 downloads

I just wanted to extend a "thank you" to all the folks who have downloaded and are using blojsom.

We're actually at 1,078 downloads, but 1000 was definitely a milestone for me. It's also encouraging in that blojsom was only released 3 months ago!
Posted by at 1:00 PM in blojsom ... all blojsom

blojsom's Google Referer Highlighter plugin

Here's another one to chock up on the "We're closer to jumping the shark" list. Mark coded up the Google Referer Highlighting plugin to act in a similar way to the Google toolbar. The basic idea is to highlight the keywords in your blog if the referer is a Google search.

The closest I've come to a pr0n search that leads to my blog is if you Google for "livenudecats". Maybe I should strike that post? /images/emoticons/mozilla_wink.gif
Posted by at 11:29 AM in blojsom ... all blojsom

FindBugs - A Bug Pattern Detector for Java

Well, FindBugs is already proving to be useful with the blojsom codebase. Maybe you'll find it useful on your Java project.
Posted by at 10:41 AM in java ... just java
« First  « Prev   1 2 3 4 5   Next »  Last »
« May »
SunMonTueWedThuFriSat
    123
45678910
11121314151617
18192021222324
25262728293031