Monday May 07, 2007

Directory Server as a Blog Platform

Spent the afternoon at CommunityOne today up in SF. One thought while watching Ludo present on the cool things they're doing with OpenDS - particularly the Atom/APP server: a directory server seems like the perfect foundation for a blog platform - hierarchical database, read/write access heavily skewed to read...

UPDATE - some cool pics from Ludo.

Thursday May 03, 2007

Tomcat on Ubuntu Feisty

A while ago, I blogged about running OpenSSO on Tomcat in Ubuntu. I recently upgraded Ubuntu to 7.04 'Feisty Fawn', which, while most things work great, seems to have caused some issues with Tomcat...

The first is this bug - when you start Tomcat, it just hangs. Apparently it's to do with /var/lib/tomcat5.5/logs/catalina.out being a named pipe. The workaround that works for me is to add the following line (shown in bold) to the start block in /etc/init.d/tomcat5.5

                $DAEMON -user "$TOMCAT5_USER" -cp "$JSVC_CLASSPATH" \\
                    -outfile "$LOGFILE"  -errfile '&1' \\
                    -pidfile "$CATALINA_PID" $JAVA_OPTS "$BOOTSTRAP_CLASS"
                cat /var/log/tomcat5.5/catalina.out > /dev/null &
                log_progress_msg "(already running)"

The second issue is that Tomcat seems to have changed where it puts its web applications. They were in /usr/share/tomcat5.5/webapps; they are now in /var/lib/tomcat5.5/webapps. This breaks the security policy I blogged about last time - you now need to add the following to /etc/tomcat5.5/policy.d/50user.policy:

grant codeBase "file:${catalina.base}/webapps/openfm/-" {

(i.e. switch from ${catalina.home} to ${catalina.base})

And before anyone asks "Why aren't you using Glassfish?" - I am, I'm just using Tomcat as well, since a lot of the OpenSSO contributors use it. Their pain is my pain

Monday Apr 30, 2007

Bell Curve Compensation IS an Anti-Pattern

I've been reading James McGovern's Enterprise Architecture: Thought Leadership for some time now. I have to say, I disagree with James on a lot of things (for example...), but his entry today on 'bell curve compensation' is spot on. Just how do you compensate employees fairly where there are some teams of superstars, some 'normal' teams and some composed entirely of dim bulbs?

Monday Apr 16, 2007

Back from Spring Break 2007

Back today after 10 days at Disney World in Florida. 1800 unread emails... Select All, Delete Smile

Tuesday Mar 27, 2007

Blog Bling - Part 1 - Gutter Images

As you can probably see (click here if you're reading this via RSS, so you can see), I have a whole bunch of customizations and widgets on my blog page. I often get email from folks asking 'how did you do that', so I thought a short series on my various tchotchkes might be in order.

I use a heavily modified version of Apache Roller's Sotto theme. Some of my customizations are peculiar to the Sotto theme, others to Roller, while some will work on any web page. Your mileage will vary, so take from this what you will.

So... working down from the top of the page, the first customization you come across is the 'gutter' - that row of images near the top of the page. The standard Sotto gutter looks like this (from Sandy's blog@sun):

While the standard images are quite decorative, they're not really me. I swapped them out for the following:

Customizing the images requires a little (but not much!) knowledge of CSS, so it's quite instructive to look at how it is done.

The standard Roller Weblog template for Sotto (Preferences/Templates/Weblog/Edit) contains the following:

<div id="gutter">
  <span id="gutterimage1">&nbsp;</span>
  <span id="gutterimage2">&nbsp;</span>
  <span id="gutterimage3">&nbsp;</span>
  <span class="floatSpacer"></span>

So, what's happening here? We have a <div> element with id="gutter", three 'non-breaking spaces' (&nbsp;), each within a <span> element and another empty <span>.

Let's look in the default Sotto CSS file to see what all those id attributes mean:

  border-top: 0.1em solid #ddd;
  border-bottom: 0.1em solid #ddd;
  /\*background: #eee;\*/
  height: 52px;
  background: #eee url(../images/bannerBackground.gif) repeat-x;
  float: left;
  margin: 0px;
  width: 75px;
  height: 50px;
  border: 1px solid #ccc;
  background: url(../images/daisy.jpg) no-repeat;
  float: left;
  margin: 0px;
  width: 75px;
  height: 50px;
  border: 1px solid #ccc;
  background: url(../images/clouds.jpg) no-repeat;
  float: left;
  margin: 0px;
  width: 75px;
  height: 50px;
  border: 1px solid #ccc;
  border-right: 2px solid #ccc;
  background: url(../images/prairie.jpg) no-repeat;
/\* Further down the file... \*/
  clear: both;
  overflow: hidden;

Now we can see what is happening. The #gutter ID selector sets top and bottom borders, height and a background image for the gutter area as a while. The three #gutterimage ID selectors set the properties of the individual images: float to the left, no margin, width, height, border and background - ah ha - this is what we need to change to customize those images. The floatSpacer makes the gutter's borders work properly - this page gives a good explanation if you're interested in the technicalities.

To change the images, you have a couple of choices. Perhaps the simplest is to just define your own ID selectors and change the gutter image ID in the Weblog template itself, as Robin did:

  float: left;
  margin: 0px;
  width: 75px;
  height: 50px;
  border: 1px solid #ccc;
  background: url(/roller/resources/racingsnake/arch2-sm.jpg) no-repeat;
/\* ...more images defined... \*/
<div id="gutter">
  <span id="myimage1">&nbsp;</span>
  <span id="myimage2">&nbsp;</span>
  <span id="myimage3">&nbsp;</span>
  <span id="myimage4">&nbsp;</span>
  <span class="floatSpacer"></span>

If you want to keep the same gutter height, you'll need to size your images accordingly and set the size in the CSS.

Since I had a number of other customizations in mind, I copied the Sotto default.css and changed the properties in place:

  float: left;
  margin: 0px;
  width: 75px;
  height: 50px;
  border: 1px solid #ccc;
  background: url(/roller/resources/superpat/SmallPat.jpg) no-repeat;

If you hover the mouse cursor over the images on my page, you'll notice that there is popup text for each one. I was lazy here - rather than figuring out how to do it in CSS, I just put a title attribute on each <span> element:

<div id="gutter">
  <span id="gutterimage1" title="Me">&nbsp;</span>
  <span id="gutterimage2" title="My beloved">&nbsp;</span>
  <span id="gutterimage3" title="Rascal &#35;1 - Tom">&nbsp;</span>
  <span id="gutterimage4" title="Rascal &#35;2 - Alex">&nbsp;</span>
  <span id="gutterimage5" title="1996 Porsche Carrera 4 Cabriolet">&nbsp;</span>
  <span class="floatSpacer"></span>

And that's all there is to it. Next time I'll look at the tag cloud - the group of links just below the gutter. Until then - happy blogging!

Friday Mar 23, 2007

Chatting with Radia

One thing I've been meaning to blog about for weeks is my participation in Sun's Engineering Enrichment and Development (SEED) mentoring program. Katy Dickinson runs SEED - she recently posted this compendium of articles - everything you need to know about SEED is there.

Anyway - I hit the jackpot with my mentor - Sun Fellow Dr Radia Perlman. You may know Radia as 'Mother of the Internet', inventor of the Spanning Tree algorithm and author of Interconnections: Bridges, Routers, Switches, and Internetworking Protocols. SEED participants have to select several potential mentors, writing a few sentences about each one. Here is what I wrote about Radia:

I started the current arc of my career in 1997, implementing SSL in Java and contributing to a 'clean room' implementation of JCA/JCE. Radia Perlman has been a familiar name to me since that time, given the security aspects of her work.

Not only does Radia have DEEP technical knowledge, she combines this with a refreshing willingness to speak her mind. When I received a comment on my blog asking about 'Identity Based Encryption', I fired off an email to Sun's internal security mailing list to find out more. Radia gave a detailed and comprehensive reply, with permission to quote her on my blog.

Since security is an essential part of my work, and identity is a key consumer of Radia's work, there is a certain synergy possible in Radia mentoring me.

Our mentoring relationship comprises a phone call every couple of weeks and face-to-face meetings if we ever end up in the same city at the same time. I have to admit, I was pretty intimidated the first time I called Radia - she is not exactly a shrinking violet - but we seemed to hit it off and have spent several hours - well - chatting, basically.

Chatting about her work, my work, career progression at Sun and anything else that's on our minds. I get a lot out of it, I hope Radia does too, and it's fun. And, let's face it, that's about 50% of Sun's unofficial mission statement

Wednesday Mar 07, 2007

Great Customer Service

I got into my car last night in the Sun parking lot at the Santa Clara campus, pulled away and immediately heard a "Schlup, schlup, schlup" from the rear of the car - I had a flat. Of course, I had everything I needed to fix it... except a pump. AAA were there within the hour, diagnosed the problem as a nail embedded in the tire, changed it for the space saver spare and I was on my way home. Quick, efficient, friendly service. You expect nothing less from AAA.

This morning I took the tire and my car to Wheel Works' Los Gatos store. They confirmed that the tire was repairable and fit the job in without an appointment. I spent an hour in their lobby, enjoying their free wifi (well, I assume the default 'linksys' ESSID was theirs Smile!) and doing some email. When they handed the car over, I asked for the bill, only to be told "Oh - there's no charge - you bought the tires from us". They had repaired the damage, put the space saver back in its space in the luggage compartment and put all my gear back on top neat and tidy, all free of charge. Like I said in the title, great customer service.

Monday Mar 05, 2007

Development in the Open II - OpenSSO WS-Federation SDD Posted

Well, I've been beavering away on the design for WS-Federation support in OpenSSO [PDF]. I just uploaded it to the OpenSSO project site and sent it to the dev@opensso mailing list. It's a first draft, so there are places that need some more detail and clarity, but I think it's ready for a first review. If you do have any feedback, then please sign up to the OpenSSO project and submit your comments via the dev mailing list.

Saturday Feb 10, 2007

Five Minutes Well Spent

I may be one of the last bloggers in the world to link to this, but anyway; you might not have seen this yet and I get to use 'ethnography' as a tag.

Ladies and gentlemen, I give you... "Web 2.0 ... The Machine is Us/ing Us" by Michael Wesch, Assistant Professor of Cultural Anthropology at KSU.


Over at VoidStar, Julian Bond writes about the long slow death of AllOfMP3. I think AllOfMP3 had the model about right, apart from the fact that it was never clear whether the artists actually got any of the proceeds. Julian wonders

So what now? Investigate their competitors or just switch back to the P2P networks?

I've been using emusic for the past couple of weeks and, I have to say, I'm very happy with it. Everything is available in un-DRMed MP3; the selection is very skewed towards indie/alternative, but that just suits me fine Smile!

Wednesday Jan 17, 2007

Signing off for two weeks

Well - Familia Patterson is off to London today for brother-in-law's wedding. Kim Cameron responded to my recent entry on minimal disclosure in CardSpace/InfoCard - unfortunately I won't get a chance to follow up on that for a couple of weeks.

Oh - and Scott Kveton just added me to Planet OpenID. Thanks, Scott!

l8r! Cool Shades!

Monday Jan 08, 2007

From Categories to Tags

I finally got round to completing Superpatterns' migration from categories (exactly one category per post) to tags (zero or more tags per post). You can see the tag cloud at the top of the page (if you're reading this through syndication you'll have to visit my actual web page to see this). The size of each tag name in the tag cloud relates to the number of blog entries with that tag. If you still want to navigate by categories, they are listed in the dropdown near the top of the column on the right.

Thanks to Rich Sharples for the category chooser tip and to Dave Levy for the tag cloud idea.

Friday Dec 08, 2006

I won't be giving up my day job... move into either videography or singing. From the un-talent show at IIW 2006b:

Here's the video I shot for Conor showing miscellaneous IIWers singing 'Bohemian Identity'. Bruce Gowers it ain't.

And here are John Kemp and I butchering Led Zep's 'Whole Lotta Love'. No sound recording, as far as I know, thank goodness... Thanks to Eve for the photo - read her report on the evening here.

UPDATE 1 No idea what was happening here!

UPDATE 2 Video of 'Whole Lotta Love' - it's even worse than I feared...

UPDATE 3 Paul Madsen's view

Monday Dec 04, 2006

Roller Tip: #showNextPreviousControl()

I noticed that, although there is a set of links at the top of my blog page to navigate by pages of content (that thing that says "<< Prev | Main | Next >>", or something similar), there isn't one at the bottom. It seems logical that, when you get to the bottom of a page of content, you'd want to go to the next without scrolling all the way up to the top of the page.

There used to be a macro, #showNextPreviousLinks(), that did this, but it now outputs just

   showNextPreviousLinks() is no longer needed as next/prev links are 
   built-into the  macro.

I guess #showWeblogEntries() is supposed to go in that double-space gap between 'the' and 'macro'. BTW - thanks to the Roller team for doing this and not just silencing the macro - quality code!

A bit of googling searching using the Google search engine, tells me that there is a shiny new macro, called by #showWeblogEntries() that does exactly what I want - #showNextPreviousControl(). Slip it in after #showWeblogEntries() and there they are - navigation links at the bottom of the page. Cool!

Monday Nov 13, 2006

Open All The Way Up

It's just one of those days - the bloggable thoughts are coming thick and fast...

For some time now, Sun has been unusual in providing the entire stack of hardware and software, from the metal right on up to the product on which I work, Sun Java System Access Manager:

Web SSO Sun Java System Access Manager
Web Container Sun Java System Application Server
Computing Platform Java
Operating System Solaris
Processor Architecture UltraSPARC

Well, now there is an open analogue to every one of those layers:

Web Container GlassFish
Computing Platform Java (now open sourced!)
Operating System OpenSolaris
Processor Architecture OpenSPARC

Open all the way up the stack - now that is cool!




« June 2016