cascading problems

After a 3 week hiatus I’ve begun working on mozCC bugs again. There’s a handful outstanding, and a few of them are fairly important. OK, they’re all important, but a few are readily visible to most users. These relate to the toolbar button.

Making a toolbar button work in Mozilla Firebird is relatively straight-forward: make a XUL overlay, add some event handlers, and you’re in business. The Mozilla Suite and Netscape, however, are a little trickier. True, the basic steps are the same, but the idea of themes really throws a wrench into the works. Mozilla implements themes using the idea of skins and cascading style sheets (CSS). The problems I’m having relate to the different toolbar-icon sizing in different themes: CSS that works with one theme makes another look awful. And vice versa. As I’ve examined skins and their accompanying JAR files, I’m observing that skin designers can manage the process because they assume control over the entire look and feel: they define the standard toolbar buttons and widget styles as a single unit. I have yet to discover how skins (if they do at all) account for non-standard toolbar widgets.

A quick aside regarding toolbars, the toolbar button, and mozCC. After the last release I received quite a bit of positive e-mail, and a few suggestions. The suggestions related to the toolbar fell into two camps. First, make it configurable in Mozilla/Netscape like it is in Firebird. Second, make it go away. I can’t do anything about the former, and I think the thought process behind the former goes something like this: “I can click on the status bar icons to see details, so don’t go cluttering up my toolbar, damn it!”

So how do I plan to solve these problems? In the tried and true way: by ignoring them. Seriously, I’ve beat my head against this for quite a while, and don’t feel like I’m making any progress. So here’s the new plan: The toolbar button will be designed to work with the Mozilla Classic and Netscape 7 themes. For those using Modern or another theme, there will be an option in Preferences to hide the button. And you’ll still be able to click the status bar icons to see the details. Mozilla Firebird users won’t see any change: they can already hide the icon if they want.

That’s where I’m at. I’m still hacking away on mozCC, and hope to make some serious progress in the next couple weeks. And if anyone knows how to make themes magically work, I’d love to hear it.

date:2004-01-15 09:29:34

Word Processing follow-up

After writing my complaint about Word and word processing on Mac OS X, I decided to do “yet another” search for something to quell my angst. What I found suprised me. Pleasantly.

First, LyX has been Aqua-fied. Sort of. I found a non-X11 distribution of LyX which apparently uses Qt-Mac for it’s widgets. It’s nice: I have lots of LyX documents lying around I can now open and edit with ease. Of course, it’s still obviously not a first-class Mac citizen: keyboard shortcuts and file dialogs look totally wrong. That and, well, embarassingly enough, you can’t really print. Well, maybe some people can, but I couldn’t after an hour of fiddling, and really, that’s about all I can devote to it right now.

My other find is what really knocked my socks off. Mellel is a shareware word processor, and with a price tag of $29USD, it’s absolutely amazing. OK, so it doesn’t import or export to Word, but it has an amazing set of features and doesn’t feel bloated or slow in the least. What’s more, it’s obviously built for Mac OS X, and as such has the typography and layout controls we’ve come to expect. After using it to write a short curriculum guide this morning, I shelled out the purchase cost without hesitation.

To anyone looking for a real alternative for your personal word processing, I can’t recommend Mellel enough. It’s right there with OmniGraffle and OmniOutliner now in my “must-have” pile.

date:2004-01-08 13:43:14

What’s so great about Word?

Windows drives me nuts. I count myself fortunate that I only have to use it at work, and even then not on my own desktop. Until September I used Linux at home and work. Then I broke down and purchased an iMac. And I love it. Except for the fact that I’ve ended up using Microsoft Word on it.

Why Word, you ask? Well, my iMac came bundled with AppleWorks and MacFile (for opening/saving to Microsoft formats). I tried using AppleWorks for a while, and was pleasantly suprised; it wasn’t phenomenal, but it got the job done. Then MacFile started flaking out on me, creating files that seemed, well, like garbage. And when your professors require documents in Word format, you quickly loose patience with the troubleshooting process. So I picked up my $10 campus-license copy of Office v.X and installed it, reluctantly. Since the end of last semester I’ve returned to AppleWorks, but every time I fire it up, I’m reminded that it’s in dire need of an update.

And this leads to my quandry: what’s so great about Word? I know that I don’t need all the “features” packed into Word. It’s one of the most resource-intensive applications I run (my iMac noticably slows just having it open). It crashes less frequently than it’s Windows counterpart, but more often than it should. All in all, there’s nothing that great about Word. Except that it works (mostly), and it looks pretty.

By “pretty” I mean that it has enough fit and finish to appear like it belongs on Mac OS X. I’ve used AbiWord, OpenOffice and Lyx under X11 on my Mac, and while I like certain things about them all, it’s a jarring experience going back and forth between Aqua-land and Motif/GTK/etc-land. So I am on a quest. I want a basic, stable, Aqua word processor. I know that basic is a vague term, but for me it means “more features than TextEdit, fewer than Word.” AbiWord’s feature set definitly fills the bill; OpenOffice may be a little heavier than I’d like. It’s like porn; I’ll know it when I see it. Open Source would be nice, but just slightly less evil than Word would be acceptable. Ideas?

date:2004-01-06 09:50:08

What’s Going On

Today is my first day back after a two week winter break from work and school. I had planned to spend the two weeks much like I spend most breaks: coding. But you know what they say about the best laid plans.

A few months ago I decided that my home office would make me happier if it had wood floors. We had tossed around the idea, and came to the conclusion that installing laminate wood floors was a task that even two people with our dubious home improvment track record could tackle. So the day after Christmas we bought some flooring, a table saw and knee pads, and proceeded to pull up the carpet. Underneath we found hard wood floors, covered in paint splatter. Like the previous owners had painted the ceiling and neglected to put down a drop cloth. Twice.

So with the contents of my home office stacked in the spare bedroom, we returned the laminate flooring and bought some lacquer thinner and steel wool. You may wonder why we chose to scrub off the old paint and finish instead of sanding. And there’s a good reason. Most of the instructions for refinishing floors we found online recommended consulting a professional refinisher if the floor was less than 3/4” thick. Ours was 3/8”; definitly under 3/4”. That combined with the afore-mentioned track record led us to believe scrubbing was the best approach.

The good thing about lacquer thinner is that it’s an excellent solvent. The bad thing about lacquer thinner is that it’s an excellent solvent. It kept eating through our gloves, even after we bought the “chemically resistant” kind. Even so, four days, a few brain cells and five pairs of gloves later, we had the floor stripped and three coats of polyurethane down. And the floors look great. After a 3 hour drive to IKEA, we even had some new shelving and a chair. Not bad.

Now if this were where the story ended, I might still have gotten some coding done. But it’s not. Cocky from our floor success, we decided that we needed some window treatments (I’m gay, remember?) in the office and some custom picture frames. And while we were at it, we might as well rearrange a room in the basement to accomodate the table saw properly. And if we were going to accomodate a table saw, what about a drill press and router table? Yeah, those would be useful, too. And since the shop fits so well in the room, it’s a shame to use all those extension cords; a new dedicated circuit with lots of outlets would be nice. How hard can it be? So let it be written, so let it be done.

So after two weeks of break, I’m ready to be back to coding and my day job. And even though I’m glad to be back, there’s something satisfying about the fact that I now know how to refinish wood floors and install new breakers in my house. I don’t know how often I’ll use my newly acquired basement wood shop, but those should be some damn nice picture frames. When I get around to making them.

date:2004-01-05 08:27:03
category:my life

ccRdf 0.4.0

ccRdf is now available for download. This release fixes several bugs related to the getAll and getFirst methods of the rdfDict class. There have also been minor internal implementation changes made.

In addition to bug fixes, I want to note a change in functionality. In previous versions, casting a rdfDict to a string returned it’s RDF subject. This is no longer the case. str now returns a contrived string representation of the current instance, based (very) loosely on the Dublin Core Dumb-down Algorithm. If someone has a suggestion or better implementation, I welcome it. You can still access the RDF subject using the subject attribute or the new about method.

date:2003-12-22 21:45:07

ccValidator 1.3 now available

ccValidator 1.3 is now available. It’s running live at, and you can download the release tarball here.

This release is mainly a syncronization release; ccValidator now uses the ccRdf core. Porting ccV to this architecture simplified many areas of the code, and provided an excellent test bed for ccRdf. I found a few bugs, and made a few improvments, so there will be a release of ccRdf soon to finish up the syncronization of work.

image0In addition to ccRdf, ccValidator now sports its own validation image. If RDF parsed from a URL validates properly, you’ll be provided with a bit of HTML to allow you to link to the validation results. Cool, huh? Thanks to Mike L. for the idea.

Thanks for the feedback from all my testers; let me know if you encounter any problems or have any suggestions.

date:2003-12-22 20:39:29

Those People”

This week, under the stress of finals and the holidays, I finally cracked. I became one of “those people.” By “those people” I mean the ones who treat their pets like children, feign offense when some refers to them as “just a dog” and dress them in the canine version of whatever Gucci puts on the runway that season. |image0|

OK, so I haven’t succumbed quite that far, but we did take the “kids”, Madeline and Bosco, to get their picture taken with Santa Claus. Overall, I think they were a little underwhelmed; after all, my dad gives them much more attention and doesn’t wear a creepy red velour suit. But it was for a good cause. Or so I keep telling myself.

date:2003-12-18 10:06:41
category:my life

I’m glad that’s over

I just finished my final paper for Intermediate Expository Writing. After I drop it off this afternoon, I’ll be done for the semester. Good-bye, Data Structures; good-bye, Assembly on the IA-32; good-bye, Expository Writing. You will not be missed.

date:2003-12-17 13:10:54
category:my life

Grokking the GPL

Groklaw has published an excellent explanation of just what the GPL is and is not. And why we don’t want your stinkin’ proprietary code. Groklaw continues to amaze me with the consistent clarity and accessibility it maintains while explaining concepts that aren’t always clear to me. Thanks, Groklaw!

date:2003-12-16 11:30:41

Atomic Fun

So the Atom 0.3 Spec is out. For those of you not following the action, Atom is a community driven syndication format proposed as an alternative (nay, better) to RSS. Mark Pilgrim blogged the release with lots of relevant links. Also check out the presentation Atom In Depth given at XML 2003 by Sam Ruby. Oh, and is now Atomic.

date:2003-12-16 08:37:33