Wednesday, March 28, 2007

FIT Wiki = H.O.T. - & JBoss Rules + JavaSpaces = Smiles

Patrick and I had a rather long pairing session today.

We beat our rules module into submission. Turns out that JBoss Rules and JavaSpaces are a pretty good match.

Towards the end of the day, we had the unit tests passing and the integration tests passing. Then it was time for the FIT tests. They busted us proper. Our co-worker Ed was pretty pumped about this. Getting busted when you think you are done by tests you wrote at the outset of a development effort is a great thing. For us, it is one less thing that we will find out when we plug in Flex to our Jini/JavaSpaces back-end. That rocks.

And our FIT tests are plugged straight into our wiki. It is h.o.t.

We also have put JBoss Rules to work with JavaSpaces. It works quite well because it is POJO based and the compiled rules can just be put into the space as Entries. If that isn't h.o.t. I don't know what is. We have a generic worker that takes Entries out of the space & reads the appropriate rules files. It just asserts the Entries directly into the rules engine (they are POJOs too - Entry is just a marker). No XML marshalling / mapping madness etc. Just objects - neat!

JBoss Rules is not as sophisticated as some commercial proprietary rules engines, but appears to be more than adequate for lots of things.

Yay.

Saturday, March 24, 2007

Oracle buys Tangosol

Wow - that was fast.

This was discussed a while back on this TheServerSide thread.

I sure hope Oracle invests in the product and doesn't slow bleed it or margainalize it. Of course that never happens.

I stand by my comment from February (link above) on why commercial proprietary software is at the bottom of my preference list.

. . . Back to GigaSpaces and Tangosol. They both have compelling technology, but both are small vendors. Where will this technology go? Will someone buy it to kill it? Will they buy it to grow it? Will they remain independent? Who knows. If it were open, well it doesn't quite matter. I can happily pay them now and perhaps someone else later - or no one if I can support it myself.

Friday, March 23, 2007

Pair Programming

So I have been a long time doubter of pair programming.

I just spent 2 - 1/2 days pairing with this man.

I have to say - I really enjoyed it. Part of it is that I just love slinging code and I became a technical manager of sorts (in addition to remaining a technologist dude) 7 months ago. Pairing is a great way for me to get my code fix. Even after 7 months of not slinging heaps of code, certain corners of my brain started turning off. It was great to dig back in and light those corners back up. I even came up with a good idea to simplify something and received my "space man merit badge".

Our small team has been experimenting with pair programming for those that want to. It has been very successful.

I think that some of it is the fact that we are dealing with so much new (at least to us) technology. Pairing is (obviously to me now) a great way to spread knowledge, learn, etc.

I certainly don't think that 8 hours of pair programming every day is appropriate - at least for me or probably most people. But it is clearly a great thing to do *at least* a couple times per week or some such. I guess it depends on your role etc.

Anyways, I love it when a long standing belief / opinion of mine changes. It helps me know that I am pushing myself outside of my comfort zone and pushing myself. One thing is obvious (or should be) about the world we all live in now. Those that stop learning are toast. If you aren't learning new things (e.g., about your domain, techniques (e.g., agile, lean, xp, etc.), technology, negotiating/people skills, hospitals/manufacturing) you are going to hit a wall. It is amazing how comfortable you get with this concept once you sign up with life-time learning. I am constantly amazed at how many people don't view the world this way.

Thursday, March 22, 2007

Bike Pics

Is this bike h.o.t. or what!?!? I just rode it home from the bike shop. It is wicked fast.

I deserve it I think. At least that is what I keep telling my lovely wife.

Walking to work every day is great - it probably has kept me from having a heart attack this past year!

But, I need something more and bombing around on this bike is it. I hate the gym and such and don't play hockey or anything any more. Maybe I should start playing tennis again too.

Yay.

Tuesday, March 20, 2007

Java 7 - See Patrick

See Patrick, there is hope for Java besides just JavaSpaces.

Via Buko Obele

Monday, March 19, 2007

New Cyclocross Bike

I finally have pulled the trigger on a new cyclocross bike.

I went to River City a few times this past week. On Saturday, I brought my friend/co-worker Ed came with me to help pick it out.

I ended up getting a Gunnar Cross Hairs.

My brother-in-law works for SRAM so I wisely got their bits on there. The River City dude said that the SRAM bits have been getting good reviews so I'm excited.

I also got some tricked Chris King hubs / wheels.

I'm pretty excited to pick it up this week - they are building it now.

Thursday, March 15, 2007

Spring in Portland

Well, it has been Spring now in Portland for at least 2 weeks.

It really is shocking to me still - after living in the Midwest previously my entire life, how early Spring comes and how long Spring stays here. I was reminded of this by my mother today. She said the snow has almost melted in Grand Rapids, Michigan (where I grew up). I was like, "that's nice - we have had pink flower trees for 2 weeks!".

These pink trees are everywhere here - they just start going off. For me, when I see the pink trees, I know that I'm going to be ok. Because it is no joke, it does rain here - a lot. But compared to what!? It rarely gets below 40F here and there is no snow, sleet, etc. And the sun peeps through at least a bit most days.

I guess if you compare it to San Diego, the weather is not great. But I like seasons. The weather in the Pacific Northwest is my favorite.

I took the picture below in 2002 - my first "it is going to be ok because of the pink trees moment". The picture doesn't do it justice - these trees are everywhere and there are other flowers etc.

Hopefully Spring will come to you soon too.

It will be ok - I promise.

Sunday, March 11, 2007

Deschutes Fly Fish Day

I finally got to go fishing today. I wish I could do it more. Portland is great - you can get to the Deschutes in a little over 2 hours. The trout are native (called Redside trout) and are great fighters. Nothing like seeing one of them nail your dry fly. I caught three.

I went solo so I didn't take any pictures of the trout. But I did take pictures of some deer on a cliff looking at the river at dawn, a hawk, and the Deschutes river canyon in general.

Below the pictures I included some stuff on the symbolism of deer that my mom sent me last summer when we saw another deer family. Makes me feel bad for liking venison.

Update 12-MAR-2007 My mom read this blog post and sent me stuff on symbolism of the hawk! Work has been crazy busy & stressful and recently a bit sad/disappointing so it's nice to see there are some good signs out there. I added it beneath the symbolism of the deer.

Deer Family (you probably have to click it to see them - it was cool - I need a telebooya lens)

Symbolism of the Deer Deer blend very well with their environment but are very sensitive to every sound or movement. Often twins, even triplets, are born in the spring. Does and bucks live in separate groups until the mating season. The white-tailed deer are moderately gregarious, and family members forage food together along with other family groups, giving the appearance of a large herd. People with Deer Medicine are often described as being swift and alert. They are intuitive, often appearing to have well developed, even extrasensory perceptions. Sometimes their thoughts seem to race ahead, and they appear not to be listening. Deer's medicine includes gentleness in word, thought and touch, ability to listen, grace and appreciation for the beauty of balance, understanding of what's necessary for survival, power of gratitude and giving, ability to sacrifice for the higher good, connection to the woodland spirits, alternative paths to a goal . The gentleness of Deer is the heart-space of the Great Spirit which embodies His love for us all. Deer teaches us to find the gentleness of spirit that heals all wounds, to stop pushing to get others to change and to love and accept them as they are. The only true balance to power is love and compassion.

The Deer. Hunting prey animal, sacrificial and sometimes mentioned as "first helper" in a few emergence stories, also family protection and of course speed.

Deer - Love, gentleness, kindness, gracefulness, sensitivity, purity of purpose, walking in the light, swift, nimble, meek, gentle, meditation, love, longevity, wealth.

Deer and Stags represent swiftness, gentleness, grace and balance. They teach us the ability to listen and to sacrifice for the greater good

Symbolism of the Hawk Air Animal Totems have a penchant for assisting us in matters of higher knowledge. Air being the most ethereal of elements, it's understandable that the creatures who inhabit it are able to lend the best understanding of its invisible ways. Closest to the heavens, air animals are our best allies as they herald our desires to the Great Spirit.

Air animal totems are also symbols of strength (both physical and mental) and sovereignty. Very important traits, particularly when we are experiencing new transitions or surroundings in our lives.

If air animal totems are catching your attention, you should feel very heartened by their presence. Allow their spirit to boost your confidence, and remind you that the ultimate power is within this present, unseen moment. Air animals are good omens, and their appearance is like a wink from God.

The hawk is the great messanger and observer of the sky.

Hawk - Nobility, recollection, cleansing, observer, clarity, discrimination, inspiration, intuition, victory, healing, visionary power, and guardianship.

The hawk is the great messenger and observer of the sky. Hawks are fearless birds who will even face off with poisonous snakes if necessary. Hawks' piercing shriek tears through the air. In its shrill cry lies an important message which represents illumination. Hawk teaches us to scope out the situation and focus on our talents, trying to draw them out. Hawk learns to see the big picture in order to understand the past, present, and future. Hawk asks us to be observant of surroundings so we won't get distracted from our path by others. It also reminds us not to get caught up in minor annoyances so we can maintain our inner balance.

Monday, March 05, 2007

Software License Categories & My Preferences

I wish all software was FOSS. But this is not the case. I deal with many flavors of software licensing. Here are the categories that I am aware of in the order of my preference (1-3 are interchangeable). Am I missing any?

  1. Commercial Open Source

    Must meet requirements of the OSI OSS Definition. Just has a commercial entity behind it that offers support etc.

  2. FOSS - Free Software

    Must meet requirements of the OSI OSS Definition. May have a commercial entity behind it, may not, key is that it is free or can be free

  3. Community Source

    Examples include Sakai and Kuali. I am convinced/hopeful that this will be the next big thing for vertical industries as I predicted.

  4. Developer Source

    This DOES NOT meet the OSI OSS Definition. But it sure beats the heck out of commercial proprietary. Examples of this model are Caucho, Some Jive Software products - including their new Clearspace (some of their products are FOSS), and Atlassian. Although I'd prefer FOSS, these are typically very innovative and open companies (e.g., publicly accessible enhancement requests/defects/forums) who take their customers very seriously. Typically customers of these companies are fanatical about using these products. I think that the fact that getting access to the source upon purchase sans escrow account is a big statement - it says that the company is proud of their code and has no problem with you seeing it and extending it as you wish.

  5. Shared Source

    This is a MSFT thing - better than nothing I suppose. I want to be able to see the source.

  6. Shareware

    If it's proprietary it might as well be free.

  7. Commercial Proprietary + Escrow

    If it is proprietary, I might as well have the source in escrow so if you go out of business I am not completely screwed. I hope you included a build script and instructions . . .

  8. Commercial Proprietary

    This is of course my least favorite. As Matt Asay says:

    Let us be clear. Whatever the merits of proprietary software, they are purely vendor-favoring. There is no customer reason to make software proprietary. None. There is no customer benefit that attaches to proprietary software. There is only a vendor's ability to temporarily monopolize a piece of software and thereby profit from it.

Sunday, March 04, 2007

Cygwin, Rake, Flex, Bleh & Work Instructions

Cygwin makes Windows barely workable. If it wasn't for the insanity of the backslashes, spaces in directories, equality of upper and lower cases, etc. Just how many months of an average developer's life is spent on this type of minutia? Class paths, environment variables, blah blah blah. On *nix of course, it all just works.

I spent too many hours yesterday trying to beat Cygwin and Rake into submission. All because of the horror of backslashes etc.

Cygwin mostly works, but there are always corner cases. Well Flex seems to be one of them. I am by no means a Cygwin expert - perhaps I should learn more.

Anyways, here is a tip. Don't even try to feed the Flex compiler (mxmlc) path names like /cygdrive/c/flex_2_sdk_2 or path it any config file references using this style.

You must instead do things like:

export FLEX_HOME="C:/tools/flex_sdk_2"

Anyways, no big deal of course.

This type of panic is only typically an issue when you are dealing with a new tool. This is why I love the project "Work Instructions" wiki page. This is the step by step instructions for the new developer (or you when you get a new machine) that tells you exactly what to do to get productive quick. Even better - a team starter VmWare image or some such.

Thursday, March 01, 2007

Cappuccino Milk Frother

Some day I am going to drop like 5-10K on an uber espresso machine.

As I have little spare coinage these days, that day is a long, long way off.

I currently have a FrancisFrancis !X5. It is ok. It makes espresso fine, but its milk steamer is pretty weak. I'm of course comparing it to what you would find at a proper coffee shop.

As I don't have the coinage now to upgrade to anything that would be significantly better, I went searching for a cheap alternative.

I found something that suits me and the Mrs. (I make the coffee around here) just fine.

It is no frills, but it works better than my crappy X5 steamer and is easy to clean. And it is dirt cheap. You can find them at various places imagine - I don't even remember where I got mine. But it looks like this. Mine looks like the one that is second from the left. The one to the right of it looks good too.