Sep 09 24

It’s not that The Five Dysfunctions of a Team by Patrick Lencioni provides any new aspects to team building….wait, there’s more…it’s not that Lencioni provides any new aspects, yet it’s the clarity and simplicity with which the material is presented that makes this book a must-read. And no, I don’t mean a must-read for the manager caste. In fact, I truly believe that any member of a team no matter what role she fulfills will find the material worthwhile.

I read 3/4 of the book in one evening. It’s an easy read because the story revolves around a fictitious yet realistic case of a CEO and her dysfunctional team. I found myself constantly relating the events in the story to my own experiences at work.

The strategies presented in the book appeal to me so strongly because it all seems common sense. It’s not rocket science – at least not on paper. Yet, imperfect as we are, we seem to constantly fall back to behavioral patterns that only bring misery.
I’m a big fan of agile development and Scrum in particular. It’s easy to build a bridge between Scrum and Lencioni’s methods. I guess I love them for the same reason.

Sep 09 22

In most programming languages the regular expression pattern to find the digit ’1′ surrounded by ‘;’ and other digits would be something like

[;\d]*1[;\d]*

So, the pseudo character class “; or digit” is matched zero or more times, then the digit 1 is matched followed by zero or more “; or digit”s. A few examples:

<property id="foo" value=";1;;;"/>
yet another regexp test with 1;;;;3xxyyzz...
well I think you get the picture with this ;;;;1 shizzle even if it's ;1;2;3; or 123

With Oracle SQL, however, it’s a slightly different story. \d is not supported i.e. not properly recognized as being the character class for digits. However, the character class 0-9 which generally is the equivalent to \d seems to be supported. In Oracle you could therefore use

[;0-9]*1[;0-9]*

As far as I can tell this is an undocumented feature. The official Oracle regexp documentation only mentions that it supports the regular POSIX character class [:digit:]. Watch out, the equivalent to \d is the whole expression [:digit:] and not just :digit:. I was first fooled by the extra [] around the character class designator… So, according to the documentation you’d have to use

[;[:digit:]]*1[;[:digit:]]*
Sep 09 19

Finally, the first version of the iCalendar factory is here!

It generates iCalendar objects and streams them as .ics attachments to your browser. URL parameters define all the attributes of the iCalendar. This allows to generate calendar entries from virtually everywhere.

Sep 09 17

Just discovered a wonderful tutorial over at iClarified how to sync my iPhone with multiple computers. I was quite surprised to learn that I get a “An iPhone can be synced with only one iTunes Library at a time” warning message when I attempted that. I was surprised because this works just fine with the iPod touch.

Sep 09 11

Yet another software configuration issue that I wasted a few hours at today.

Environment

Apache 2.2.13 connect to Tomcat 5.5 with mod_jk (ajp13). Apache requires basic-auth for “/” i.e. for all URLs it serves. Just to be 100% precise, Tomcat runs as a WTP server “inside” Eclipse. However, the fact that it’s not a standalone instance has no effect to either the problem or the solution.

Problem

I noticed that request.getUserPrincipal() returned null in my Servlet filter although basic-auth in Apache was successful. By raising the mod_jk log level to debug (JkLogLevel debug) and looking at the mod_jk.log I could confirm, however, that mod_jk at least passed the remote user along in the request.

Solution

Set tomcatAuthentication=”false” for the AJP/1.3 connector in server.xml. The parameter is explained in the Tomcat connector documentation: “If set to true, the authentication will be done in Tomcat. Otherwise, the authenticated principal will be propagated from the native webserver and used for authorization in Tomcat. The default value is true.”

A thread from the tomcat-users mailing list archive helped a lot: http://www.mail-archive.com/users@tomcat.apache.org/msg55080.html. I didn’t initially find that through a web search because I kept looking for something like “principal null Tomcat Apache mod_jk” instead of “REMOTE_USER null”.

Sep 09 08
  1. Leder Locher, Münsterhof 18/19
  2. Furla, Strehlgasse
  3. Valleverde, Augustinergasse 15
  4. Longchamp, Bahnhofstrasse 58
  5. Grieder, Bahnhofstrasse 30
  6. Globus/Jelmoli
Sep 09 01

I’ve spent hours searching for an in-ear headset for the iPhone 3G S that suits my needs. I just might have reached the light at the end of the tunnel…

The initial priorities were good sound quality and noise cancelling.

I first looked into the V-MODA Vibe  Duo and Vibe II models, but the reviews I found at Amazon and on apple.com made me take them off my list. What one reads very often: bass with these models is overly prominent, the weight may be a problem (metal instead of plastic), might break quickly due to low production quality. The have a stunningly cool design, though.

Then I looked into the Etymotic hf2. All the reviews rate this headset as top notch. They come at a price that makes you swallow  hard but apparently the outstanding sound quality makes it well worth it. However, what irritates me a bit is that the mic and music control device (also to start/end a call) dangles freely somewhere below your mouth on the side. I doesn’t look comfortable and since the control device is quite big it doesn’t “feel” natural. I would intuitively expect that one controls the device somewhere around your chest or belly.

At the same time I also had the Sennheiser MM50 and the Ultimate Ears super.fi 4vi as hot candidates on my list. The UEs are pretty cool because the mic and the music control device are placed separately from each other on the cable. The mic is next to your mouth and the other “box” is a lot further down. That’s very logical. Its benefits seem so obvious that I ask myself why other models are not like that.

With the hf2 still being my top candiate I suddenly realized that neither of the models I had evaluated so far supported volume control, voice control and VoiceOver. While voice control and VoiceOver are no real requirements for me, volume control certainly is – it’s a must. Mind you, these features are only supported by the iPhone 3G S and the newer iPods: Nano 4th generation, touch 2nd gen, shuffle 3rd gen.

So far, I only found two in-ear headset that support the new features, the Apple buds at $80 and the Klipsch Image S4i at $100. Klipsch what? At least here in Switzerland this brand is a no-name, never heard of it. The reviews and ratings, however, praise them through the roof wherever you look. Close to 100% all the time. Impressive.

Instead of just buying them, I sent out an email to Sennheiser, Ultimate Ears and Etymotic asking about their plans to release a headset that supports volume control. Stay tuned.

Update

Both Sennheiser and Etymotic replied telling me that they didn’t know about plans to release a headset with volume control.

Update II

I learned that a friend of mine actually knows Klipsch (yes. he lives in Switzerland, too ;-) ). So, I guess it was foolish to claim that Klipsch was a no-name here. On the other hand, that friend is an audiophile and very much into Hi-Fi…

Aug 09 16

On some of my Eclipse workspaces to Galileo update failed in the SVN department (Subversive). Activating anything remotely related to Team/SVN features triggered an error. The workspace log contained:

!MESSAGE An error occurred while automatically activating bundle org.eclipse.team.svn.core (512).
!STACK 0
org.osgi.framework.BundleException: Exception in org.eclipse.team.svn.core.SVNTeamPlugin.start() of bundle org.eclipse.team.svn.core.
 at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:805)
...
Caused by: java.io.StreamCorruptedException: invalid type code: 00
 at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1356)
 at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
 at org.eclipse.team.svn.core.svnstorage.AbstractSVNStorage.loadLocationsFromFile(AbstractSVNStorage.java:551)

I tried to start Eclipse with the -clean option – didn’t help. Then I updated the Subversive SVN plugin and all connectors – didn’t help.

What eventually did help was to remove all org.eclipse.team.* folders in the workspace’s .metadata\.plugins folder.

Aug 09 09

When I came back from vacation I noticed the Apple remote was not working anymore with my Mac mini. Pressing the “menu” button did not trigger Front Row anymore.

I checked the remote itself against the Macbook to rule out low battery or the like – it worked. Hence, the problem had to be the mini. An article in the Apple support forum suggested resetting PRAM and NVRAM as described in article HT1379. I did and it helped.

Aug 09 05

My rather new Brother started raising “false” alerts (at least I think they’re false…) about empty/dead toner. I had only printed a few hundred pages so far. In search for an answer Google directed me to http://www.fixyourownprinter.com/forums/laser/39806.

It’s a long and chaotic thread but about 1/5 from the top there is a posting that advises to do following for Brother HL-4040 and similar models:

For the toner life reset menu:
1 Open the front cover of the printer
2 press and hold the cancel button
3 press the reprint button while still holding cancel
- here is the reset menu – go to the appropriate cartridge on
- the menu and reset it and you’re done!
FYI… Pressing the “Go” button and the up arrow gives you the parts life reset menu (drum, laser, fuser, etc.)

I also did the electric tape over the windows – which worked before the reset – but I thought this fact would be helpful too.

For anyone that is asking “what window?” I think it is the clear plastic opening on the sides of the cartridges where you can actually see the powder inside the cartridge – the color of the toner (magenta, yellow, or cyan). I didn’t really know that for sure when I tried, but it made sense, and it worked. So I am fairly sure that is the “window” you should be trying to cover.