Archive for September, 2004

Topic Maps

Monday, September 13th, 2004

Tonight’s research was Topic Maps. I hit a blog entry concerning them today (forget whose) and realised that this is the Nth time they’ve hit my radar and I need to stop saying “Topic Maps? What’re they?”.

I printed up the TAO of Topic Maps and brought it home to peruse.

My rule for tasks on particular nights is just that I do something on them. It may be nothing more than tidy up the Wiki page for Lang, but it still counts as a success on Saturday’s Commons task. Usually it’s more. Tonight I only read the article, but I uncovered a new part of my future routine: reading printouts on the exercise bike.

We bought an exercise bike a month or so ago and I started using it two weeks ago. I would read while I cycled and manage to multi-task, which makes me happy. However, books are a pain on an exercise bike and technical books are far too much a pain. Tonight I realised that print-ups of articles/pdfs/white-papers are perfect (well, not the 400 page xsl-fo spec).

So every night will now include reading an article on the bike. I already have a host printed up at work where I always take one to the toilet (cue joke of useful if you run out of toilet paper).

Anyway. Topic Maps seem interesting. Mainly because I’m a closet librarian and they borrow a lot from indexing of books, which is really the same concept as classifying books (to a layman; ie me). The last time I recall them being mentioned was the suggestion that they might be a solution to mail list categories. People would, I assume, flag their email as matching a set of topics and users would then pick them up. So for someone interested in classloading, they would just listen to classloading@apache and not to every mail list.

They also exist in a similar world to some of the things that interest me in Roller, so I think I’l read some more on them on another research night. Or on the bike if I can find more good articles.

Eclipse cvs log message

Monday, September 13th, 2004

I like it when things work nicely.
When you use Team->Commit in Eclipse, and do your message, use Ctrl-Return to commit rather than reaching for the evil mouse.

Wiki-JS committed to Roller

Monday, September 13th, 2004

First commit to Roller :) The Wiki-JS editor I’ve been prattling on about.

It’s a happy little set of regexp-ery (I love regexps) and can do most of JSPWiki’s wiki-style.

There are two additions I’m aware I’ve added. The first is that images are inlined as an img:// url-block and not http://. The second is that two = characters designate an underlined piece of text, much as 2 _ characters designate bold.

headings

I quite like having sub-headings in the blog. I like how it turned out in the Lang post. You have to fix your CSS up though, or I did anyway. I’m based on the Basic theme.

I’ll probably go a bit further than JSPWiki and automatically urlify/imgify without needing the [ blocks. The only limitation that causes is not being able to put a space between the labels.

Tables are there. As are ul/ol lists, including nesting.

<br> tags are fun. To get a nice separation using them you have to use two and not just one.
The br’s also have a habit of seeming to overdo it when they’re near headings, lists etc. Things with automatic newlines on the end basically.

Am looking forward to Hani hating it :)

JSPWiki is a release-often success

Sunday, September 12th, 2004

I was hunting down whether the wiki-syntax in JSPWiki had changed much since 2.0.50 and so looked at the latest release notes.
Wow. They release often, I’m impressed.
Happily, most of the syntax is in wiki-js, and I now have a list of the bits I need to finish off. Hopefully no one will mind me committing it into Roller :)
I even have a Help page! Fear the docs.

Joining Roller

Sunday, September 12th, 2004

I’ve joined the Roller guys to work on Roller.
It’s hard to know where to begin thought-wise.
I immediately want to decide which day Roller gets, which makes me want to publish a day-list, which makes me think Roller should have some kind of very quick easy list concept. Bookmarks/folders are cool as an underlying tech (ie a filesystem), I’m just looking for something to make entry easier. Maybe standard renderer chunks for the bookmark filesystem, so I might say that the schedule folder is a List.
In case that statement is odd, I assign a day to each project I’m involved in. It stops me over-committing myself (well, I still do, but at least there’s an upper limit) and helps me to organise my days. Emergencies still take priority, but all in all it’s worked quite well for the last few weeks. Here’s the current list:

  • Monday - Research new thing
  • Tuesday - Jakarta Chair
  • Wednesday - OSJava
  • Thursday - Documentation (Jakarta Commons User-Guides currently)
  • Friday - Pub+Alcohol
  • Saturday - Jakarta Commons (Lang 2.1 currently, IO 1.1 next)
  • Sunday - Flamefew

So fitting Roller in is already tricky. With baby etc on the way, Friday’s are available, but I’m loathe to open that day up as no escape valve would be daft.
Sunday looks the most likely day to become the Roller day. Flamefew things tend to not be Sunday evenings anyway and instead fill the day of Saturday/Sunday. So:

  • Sunday - Roller

it is.

Lang 2.1

Saturday, September 11th, 2004

Lang 2.1 is getting closer, though I spent my few hours tonight on it exploring interesting bugs in the time package.
A nice pile of bugfixes, a mutable value package (mainly numbers) and some notable improvements in the time package. There’s still a good chunk of work to go though, my hopes of Lang 2.1 beating my son to release are looking less and less likely. It’s now been a year since 2.0, how time flies, and how much we suck at release-often :)

user-guide

I’m working on a user-guide for the release, hopefully make the frequent requesters of Commons documentation a little happier. In fact, 6 or so components in Commons have user-guides now, so another medium-term todo for me is to link in a user-guides page that people can treat like a book. Writing a guide for IO is another todo. Probably my Thursday night task once I get machine stability.

time

I had some fun with time.StopWatch, it now RuntimeExceptions when you try to misuse it by doing things it’s not in the right state for. We’ve kept (and improved) the split() concept, though I originally wrote it only because I was matching the code to a stopwatch I had as a kid.
I also had some fun with DurationFormatUtils. It’s not JODA or anything, but it does a nice basic job of handling sub-month durations. At the month and year level it makes some rather basic assumptions (a year is 365 days and a month is a twelfth of a year).

text

A text package exists now, though it won’t be in the 2.1 release. We’ve constantly had code that feels like it’ll grow too much for Lang and should be in Commons Text, but we lack the code to kick off Text. Hopefully by having a text package for Lang 3.0, it’ll either seem nicely contained or quickly bloom into Commons Text. Whether the time.* Format’s move over will be interesting.

version numbering

Version numbering is an interesting topic. 2.1 started out as a plan to push out the bugfixes, and has grown. The big question is whether it is still binary compatible with 2.0. Hopefully it is. We have a lot of deprecation to remove for 3.0, and it would be shitty to remove it in the next release.

enum deprecation

The entire enum package is deprecated! Yep, we had to rename it to enums to get around the Java 5.0 enum keyword. I guess we really need a release before 5.0; though that’s seeming closer and closer. I might be the only person sending Sun delay-thoughts. Well, me and Apple’s Java lead I suspect :)

concluding

So far there have been 273 commits (many files may be in a commit) since the release of 2.0, by 11 different committers. However, many of these are bugs fixed by contributors; Lang is a great project for bug-reports and fixes from the community.

Multi-select in GMail

Saturday, September 11th, 2004

Did you know that the shift key can be used in GMail to select multiple emails in the folder-view?
Great for deleting all the jelly cvs commits/issue-tracking emails on commons-dev (looks like Jelly is getting closer to a release).

Wiki JS

Saturday, September 11th, 2004

In lieu of hunting down other things that do the same thing, and for the sheer fun of it, I now have a function that does wiki javascript.
The support is now:

  • Two _ for bold.
  • Two { for code.
  • Two = for underline.
  • Two ‘ for italic.
  • Bullets work via * and #, with nesting done via increasing *’s etc.
  • Newlines are maintained.
  • A final newline is added (due to either the theme or roller’s habit of putting the comment link etc right on the end of the entry)
  • h1 through to h5 via ! marks
  • Hard breaks via a backslash on the end of a line
  • hr’s via 4 or more -’s.

No ability to escape things though, thus the lack of examples above.

It’s all in Javascript, so as soon as you click out of the Textarea it transforms into HTML. I’ve not yet found a point where re-editing the HTML caused a second change that was not desired, but I’m sure such a bug could exist.

Even if things do screw up, you can still edit the HTML afterwards. Only bug I’ve noticed is that the end of a UL tends to get two newlines with the way I tend to type.

Roller Wiki-editor test

Friday, September 10th, 2004

Really need to put together a dev environment for my Roller hackings.
Really and truly.
This hacking adds Wiki-like features.
Only a few to start with, two _ characters are bold, two ‘ are italic and newlines are maintained.
Well, N newlines become N-1 br tags.
TODO

* Ability to escape bold/italic.
* Automatic url’ing of http://… and img://…
* Underlined text Headings
* * and # usage for bullets/lists
As you might have gathered, this entry is largely so I can see that this worked.

Wiki component…

Friday, September 10th, 2004

I hate using HTML to create a blog entry, or to write a comment.
In MT, newlines automatically turned into breaks, and so things were easy.

Wiki is another place where it’s easy. A nice tiny markup that supports the basic things you want. So obviously I want to use a wiki style setup for entries/comments in Roller. Thus my question is, does anyone know of reusable Wiki-converting component? It would want to convert in both directions probably, as it would be hooked up to writing and not reading.