Pray for sunshine.

Sam Ruby: Welcome to Raleigh, North Carolina, where the official snow removal strategy is "pray for sunshine".
As I write this, the sun is coming out and I hear from the other room "oh no, the sun is coming out!"

Talk: Weblogs and Java.

That's the topic of the talk that I will present to the Triangle Java User's Group on February 16th. More information is available on the TriJUG site.

Weblogs are making their way into every aspect of online life. Everybody from gossipy teenagers, mainstream journalists, tech CEOs, and politicians to Java developers and even James Gosling, seems to have their own weblog.

In this talk you will learn why weblogs are an important part of the Java development community, how weblogs can be used in software development projects, and you'll learn about the XDoclet-driven architecture of Roller - the open source and Java-based software that drives the JavaLobby's JRoller.com site.

Latest CVS.

After a little struggle my site is running the absolute latest Roller code. Unfortunately, SourceForge CVS is down so I cannot commit the half-dozen or so fixes I made in the process of my upgrade and SourceForge mailing-lists are down so I can't announce this wonderful new achievement to the folks who actually care.

BTW, my site was halfway between Roller 0.9.8 and Roller 0.9.9 so the upgrade was tricky. I haven't tested a Roller 0.9.8 to Roller 0.9.9 upgrade yet, but I'm confident that I'll be able to make that upgrade just as smooth as silk.

Snowbound.

We have nearly an 8th of an inch of snow here, and here is Raleigh-NC, so school and work and everything else will be cancelled today and tomorrow. While my inner child loves the snow and my heart sinks whenever the snow rate slows, my outer adult will surely be driven insane by stir-crazy kids home from school and jacked-up on hot sugary coco.


Upgrading Roller to latest CVS tonight.

Turbulence ahead.... Update: As of Friday morning, I'm still working on a Bookmark/OPML import/export problem.


Having another go at MyEclipse.

Inspired by Rick Hightower's attempts to get AppFuse running with MyEclipse, I've decided to give MyEclipse another try. I already had a license from work, but I've bought another license for my home use. I also upgraded both my workbox and my homebox to use Eclipse 3.0M6. I've already bumped up against the inflexible project structure issues that I hit before, but I'm having better luck than last time around and the JSP editor seems much faster than before. I'm let you know how it goes.

What is it about Confluence?

For some reason, some porn spammer has decided that my September 18, 2003 entry about Confluence is just the cat's meow. This spammer has left a comment on that entry close to ten times now. He doesn't spam any other of my entries. Every time he places a comment there, I delete it, and within a day or so the comment re-appears. What is it about Confluence?


Learning via bile.

Lasse Koskela: [Hani's] blog is on my list, not because I agree with him -- I most often don't -- but to learn. You don't learn anything by sitting down with an identical copy of yourself.

Roller breakage and the difficulty of hierachical weblog categories.

As Lance notes, the Roller code in the Roller CVS main branch, also known as Roller 0.9.9-dev, is in a bad state. The code passes all unit tests, but I'm still working on data model changes. As always, there will be an upgrade script to upgrade the schema from the last release (Roller 0.9.8) to the next release (Roller 0.9.9), but the script might have problems if your database is half-way between 0.9.8 and 0.9.9. Ah, the joys of database-driven webapp development! Anyhow, if you want to try Roller 0.9.9-dev, I would recommend that you wait until you get the all-clear from me (possibly this weekend). Once I wrap up hierarchical categories, I'm going start working on bug fixes for a Roller 0.9.9 release.

BTW, Lance mentioned that I'm working on hierarchical weblog categories. Unfortunately, for a database-based weblogging system like Roller, this is a fairly complex undertaking. In file-system based weblog system, categories are almost trivial. Weblog categories are just directories sitting in the file-system. The hierarchy comes for free. Want a post to exist in multiple categories? Just create a symbolic link. For Roller, the hierarchy must be modeled as associations between tables. Without some trickery, retrieving all weblog entries in a category and all subcategories requires recursive descent with a database query at every level. The trickery is now in place and abstracted in such a way that I can use it for all hierarchies: weblog categories, bookmark folders, and maybe someday, page templates.

JRoller outage.

These days it is pretty unusual to find JRoller down for more than a minute or so, but down JRoller is. JavaLobby is investigating the problem, which seems to be an ISP problem rather than a Roller software problem. Update: JRoller is back up, but haven't heard the cause of the outage.


Thoughts on Blogging The Market.

I finished reading George Dafermos' paper Blogging The Market: How Weblogs are turning corporate machines into real conversations. The paper is well written and well organized and it captures all of the breathless cluetrain-meets-weblogs hype that the k-loggers know and love (and I mean that in a good way). It also includes a section on behind-the-firewall corporate weblogging or k-logging, which is my main area of interest right now.

The section on behind-the-firewall corporate weblogging is called Re-inventing Knowledge Management behind the firewall. I read this section with requirements in mind. What are the weblog software features that would be most useful to corporate webloggers? Here is what I came up with:

  • Newsfeed Syndication: Newsfeed reader software allows users to do their own filtering and subscribe only to the weblogs, or aggregations of weblogs, that they are interested in. Newsreaders also "enable users to keep up with a large number of news sources in less than half the time it would take using a web browser."

  • E-mail to weblog gateway: Dafermos says "The differential factor hinges on how easy it is for employees to post their emails to the weblog". I've written about this before in a previous post titled Mailing-list weblog integration

  • Notification of comments: Dafermos sees weblogs as knowledge bases that serve as a dynamic replacement for FAQ files. Weblog comments are a key ingredient here. He writes "if each weblog entry had a corresponding comments section, and had a consistent location (a URI), then any question would only be answered once." Most weblogs already support what Dafermos wants here. I added notification of comments because without it, the weblog owner will not know that a comment has been made and will not know to respond. Notification could be done via email or by having an RSS feed for comments on each weblog entry.

  • Full text search: search is the user's entry point to the weblog knowlege base. If all of your corporate weblogs are indexed, "the only thing one would need to do is enter the question, or a keyword, into the weblog search engine field, and find out the answer to the question without having to email anyone, and most importantly, without having to wait for the reply."

  • Archive browser: Dafermos suggests that new employees will be told to "read the weblog archives before resorting to email." Reading the archives can help a new employee to understand the history of an issue, so browsing, skimming, and reading weblog archives should be easy. The Roller big-weblog-calendar is an example of a simple archive browser, but a more sophisticated interface would be helpful here.

  • Weblog aggregator: I don't think that Dafermos mentioned this, but I think web-based weblog aggregation software like the software that drives java.blogs or ApachePlanet, would be very useful in a corporate setting. Each workgroup or department could have it's own aggregated "community" weblog, a weblog made up of the posts from each member of the department.

  • Wiki integration: OK, Dafermos did not mention this at all, but from my limited experience with weblogs at work, I think that wiki integration is going to be key. Weblogs and wikis are a perfect combination. Wikis provide a space for collaboration, documentation, and information sharing and weblogs provide a space for timely news and status information. They go together like peanut butter and chocolate.


Extending the Struts tags to show required fields and validation errors.

I'm working on extending the Struts HTML form tags so that they are aware of the Struts Validator. I'm doing this to meet these two requirements:

  • All fields that are required fields will be indicated with a red star or some other indicator.
  • All fields fields that have failed Stuts Validation will show up with a red box or some otner error indicator.

I've already made some progress on this and I have a good solid proof-of-concept, but I get this nagging feeling that I am reinventing the wheel here - even though googling has turned up nothing.

Is the extended-tags approach the best way to meet my two requirements above? Has this work already been done for Struts - that is - am I reinventing the wheel?


K-Logging.

Via Jon Robb: an interesting paper on the usefulness of internal or behind-the-firewall weblogs in a corporate settting - Blogging The Market (also available as a PDF).


To the anonyous bloggers.

Rick Ross: To the rest of you who blog without identifying yourselves, have some courage and make clear who you are. Your anonymous thoughts are not interesting contributions to the larger social dialogue of the blogosphere.

Like Rick, I prefer to know, or at least to think that I know, who is behind each of the the weblogs that I read. However, I disagree that "anonymous thoughts are not interesting contributions to the larger social dialogue of the blogosphere." Anonymous weblogs play an important role, especially in places where freedom of speech is limited. I think most would agree that the anonymous Bagdad blogger made some interesting contributions and that anonymous Iranian bloggers are likely to make some interesting and important contributions as well.

That said, a Roller-based weblogging system like JRoller is not really a good place for anonymous weblogging. For true anonymity, you need something like invisiblog.com or this proposal for MovableType.


Groovy is as Jython does.

I don't even know what that means, but somehow it makes sense to me.

Jon Udell: This weekend, I was working with the Java API to Sleepycat's Berkeley DB XML, and it felt like one of those bad dreams in which you're slogging through molasses toward an ever-receding goal. I switched to Jython and quickly got the job done. And it was the same job (indexing and searching content) using the same engine (Berkeley DB XML).
I think Jon would find Groovy just as easy to use as Jython. One important advantage of Groovy over Jython, and JRuby by the way, is syntax. Joe average Java programmer is going to be able to pick up Groovy much more quickly than Jython.

Couple more indexes.

Rick Ross and I were trying to diagnose some heavier-than-usual load on JRoller last night by watching the MySQL query log. We noticed that some queries were still examining way too many rows and based on this we came up with a couple of additional indexes. After we applied the new indexes, load returned to normal levels (i.e. less than 0.1). These should work on either Roller 0.9.8 or Roller 0.9.9-dev and they will be included in future releases in either branch:

create index userrole_username_index on userrole( username );
create index weblogentry_pubtime_index on weblogentry( pubtime, publishentry, websiteid );

Scamming Technorati.

Step off Pilgrim, Ito, Winer, and all of you A-list bloggers 'cause I'm more technoratical than all y'all. I'm #4 in the Technorati 100. Bam! Look at my numbers:

Technorati screenshot showing my blog at #4

Technorati, for those who know not, is a website that rates the popularity of weblogs based on the number of links to each weblog. My modest little weblog is not very popular, so how did this happen? I assure you, I never intended to scam my way to the top. I was kidding about that secret plan.

Here's the deal. Since time began and before I ever heard of Technorati, I've been putting links to Roller developers Lance Lavandowska, Matt Raible, and myself in the page templates that ship with Roller. Some folks remove those links, but most don't and so now most every new Roller-based blog boosts our standings on Technorati. As JRoller grew to thousands of users, folks started to notice this. A couple of weeks ago, everybody was amazed to see my modest little weblog hovering around #80.

Recently, a lot of blogs named "My Moblog" started to appear in my Technorati Link Cosmos. Turns out, all of these blogs are running on a Roller based server at 212.180.4.202 which, according to whois, is owned by EasyNet.FR. I'm not sure what they are doing there at EasyNet, but perhaps Minerva, or one of her readers, knows. Minerva's weblog, called Geegaw contains a link to one of those EasyNet blogs with the text Top 100, here I come! See below:

link to an EasyNet blog on Geegaw

What does she, or one of her readers, know that I don't? Is somebody using Roller to game Technorati and if so, why am I the beneficiary of this scam?

Back to work.

It was a little difficult to return to work today after two weeks off. I enjoy my job, but after two weeks of sleeping late, playing with the kids, and hacking Roller, I felt like a kid going back to school. We've got another release coming up, so I need to get in gear fast. I also need to wrap up hierarchical categories for Roller and finish up the Roller presentation that I hope to present at the February TriJUG meeting.

« Previous page | Main | Next page »