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.

Wednesday, February 28, 2007

iGel

More panic than usual at the panic factory.

We have had some methodology panic. Not so much disagreements, but more:

em, we have to release this in a little bit and we have to collaborate more so we better agree on how we are going to work together now so we can deliver and not look lame/dumb/hand-waver-ish

type of stuff. We are transitioning from doing a lot of throw away semi-functional POCs where collaboration was optional to building 1 skeleton system where we must collaborate heavily or we will slip.

These types of transitions are tough. But if they don't kill you, they only make you stronger.

You can be on the best team in the world (I actually think I am on one of them - no joke) and until you have been through the ringer and shipped something with that team, it doesn't matter much what you have done before with other teams. You have to make it work with this team. It can be hard to get the rhythm building - especially when so much has to be bootstrapped to get that first story tested and working.

I have been using Scrum for quite a while - at least 5 years on and off (mostly on). I like it because it is easy. The teams I have been on that have used it were always successful enough - mainly because all Scrum really says is you have a backlog, a sprint/iteration planning meeting, a daily scrum meeting, a sprint retrospective meeting and you have short iterations where you can course correct.

Within Scrum I have been a part of various analysis approaches. I have been a programmer / analyst and have been on teams that have had dedicated analysts who do insanely large Use Cases. Now I am on a team with 1 analyst who just churns out epics /stories like they are going out of style. She "gets it". I like people that "get it". I have been helping here prioritize / size the backlog lately.

On this project we are amping it up a bit and embracing things like Epics, stories, heavy TDD (Test Driven Development), and gasp ... a little pair programming (strictly voluntary for us). It really helps when you have an iGel Ninja around. You don't even have to listen to him talk - you just watch his hands and you understand (mostly). Come to think of it, we have 2 - we also have an Irish one. He isn't so much with the hands, but when he is the smoothest swearer I have ever met. It doesn't offend anyone when he does it even if it is a f-bomb. Dropping an occasional f-bomb is crucial to iGel success IMHO.

I have tried and failed too many times to count at TDD. But this time I am on a team that has the will and desire to succeed. I know many of the things that make it fail or rot on the vine. It basically comes down to discipline and no broken windows.

Our wiki is quite helpful in all of this as usual. I would jump out the window if someone took the wiki away.

Sunday, February 25, 2007

Flex Links

A couple pro Flex links I liked below. I don't have much to say lately. Too much panic I suppose. You can find anti Flex links on your own. I wasn't convinced by them. For me to go with a commercial proprietary product I have to really like the vendor and the product has to be trending towards openness. I am not an Open Source zealot. Anyhoo, time will tell. I do think that it is exciting that user interfaces are poised for a new round of innovation. I likes the innovation.

Flex vs. Ajax Revisited

10 Reasons We Love Flex 2

How truly open is Flash? Do we need "Open Flash"?

Wednesday, February 21, 2007

New The Shins

I have been listening to the new The Shins, "Wincing The Night Away" all day. My bro-in-law Kevin gave it to me.

It just hit me that this album is as good as their previous albums.

Not an easy feat (spoken from someone who took harmonica lessons from a Franciscan nun - so I know a lot about this). ;)

I love that moment when it hits you that you really like something.

Sometimes it feels like it is random the things we remember our parents saying. I distinctly remember my mother saying to me, "You have to celebrate and embrace joy wherever you see it." Her point of course was that there is so much in the world that is hard, sad etc. and you should cherish the joyous parts. I only remember her saying that once, but I have thought of it thousands of times since then.

Monday, February 19, 2007

Channeling Powerbuilder via Flex

I did a little Powerbuilder programming 12 years or so ago. I also at one point (gasp) did some Lotus Domino development. It was even simpler to use and crank out applications with.

As this article describes:

They [Powerbuilder programmers] could do stuff quickly, or using the modern jargon, they were agile programmers without even knowing it.

One of the smartest people I know, my co-worker Erik Onnen recently tried every Ajax framework available and tore his hair out trying to deal with browser issues (don't even think about IE 6). This is not some browser neophyte. He knows JavaScript, JSON, CSS etc. inside and out.

Every Ajax intesive site I have been on besides Gmail locks up, bombs out and as another co-worker of mind (Ed Copony) says, "Ajax apps. make your computer fan go insane".

But I want to build a RIA app! I just don't want all the panic!

4-5 years ago building Flash GUI's was the rage for a bit. I never got a chance to do it & was admittedly against it in general. But suffering through Ajax makes one take another look. It is of course called Adobe Flex today & it seems to have come a long way. Certainly seems like a *productive* way to build RIAs. Sure you have to get past a couple hang ups, but that is life in the big city.

Hmmm, what can you do with Flex + JavaSpaces + Caching ... hmmm ...

Thursday, February 15, 2007

REST JSR 311

Yay - should be interesting to see where this goes.

via Dan Diephouse.

Here are some other links: Marc Hadley example

Tim Bray

Steve Loughran begs them to keep it simple

Hopefully the expert group will resist the temptation to trick it out too much & will just keep it simple. I think there are benefits of doing this - will help spread the REST goodness if done correctly. Please oh please have a firm red line between message framing and message body (i.e., don't slow boil REST into insanity by making things "easy").

Good to see that some genuine REST experts are piling onto the expert group. Keep an eye on the big vendors. I'm sure the individuals are fine, but the people behind them who will start asking questions about how to "monetize" it probably are not. That is what got us into the WS-* mess. Standards as a gateway drug to pushing product is the root of all evil.

And we all know that sometimes people join standards committees to subvert them. I'm certainly not saying that this is the case, I'm just saying . . .

I'm crossing my fingers that this will lead to good things.

Wednesday, February 07, 2007

Hiring Green Beans

Are you a recent graduate or do you know one?

Are they smart?

Do they want an IT job within an information intensive company that never ever runs out of hard problems to solve?

Go here if you want to learn more.

Job Req: 26939BR

Many openings across the country including:

  • NH-Dover
  • NH-Exeter
  • NH-Portsmouth
  • OR-Portland
  • WI-Wausau
  • CO-Denver
  • IN-Indianapolis

You do NOT have to have a technical degree. You do have to bring something to the table.

Monday, February 05, 2007

Shallow vs. Deep Entry Models & Mapping

Ok so guess what - JavaSpaces isn't a silver bullet! Shocker.

I am fond of talking of two big problems I have had in the past with ESB style architectures: excessive mapping and issues managing state (active/transient state vs. steady state/long-lived storage).

The mapping you deal with in an ESB includes object to XML (OX) and object to relational (OR) and various object to object mappings. Update (few hours later) - forgot one: And if it is a message-centric ESB, active/transient state to your destination names (e.g., hierarchical Topic names).

It isn't surprising, but I'm finding that all of the same object to object mapping is still there with JavaSpaces + an object to object equivalent of OX.

The ESB systems I have worked on in the past had a canonical message format. All messages that bounced around the ESB conformed to this model. Some of the messages were small validations of particular data (e.g., address scrub). The main work flows, however, were large XML documents loosely following the ACORD XML standard (insurance industry XML guideline).

With JavaSpaces, the patterns you read about use distributed data structures. Instead of having a large Entry in the space you have many that are related to each other. You do this for transactional reasons, serialization reasons, flexibility reasons etc. Some of the objects I deal with are indeed very large. Doing a take on a large object only to navigate the object graph and flip a bit and do another write isn't performant or flexible.

So the "shallow" model (lots of small interrelated Entries) works great for UI input, address validation etc.

But there are also areas of the system (some key work flows) that would benefit from a canonical form - the "deep" Entry model. Rather than having each worker gather all the Entries up to make sense of them, you do this once and then write the deep Entry to the space and let various workers use it to walk it through a work flow.

But now you have to render it back to your UI that expects a shallow representation.

So the deeper I get the more I realize that JavaSpaces do not make the mapping angst I have encountered go away. The mapping is still there. It is certainly improved because it is object to object mapping that is easy to write unit tests for etc., but it is still there. Update (few hours later) And there isn't any active/transient state mapping to destination names so at least one is eliminated entirely :)

These same issues are also present with a distributed caching solution I believe.

Do I have this right or am I missing something?

Sunday, February 04, 2007

Transparency

Here is another example of why I think that transparency for analysts should be required. Same thing with political contributions. I don't have any problem with anybody sponsoring any report or anyone contributing anything to a political party. I think that is free speech & I think that trying to control it (e.g., McCain Feingold) is a complete waste of time and just muddles things even more. Just make it black and white and in front of people is all I say.

I don't question the integrity of anyone per say, by making one's constituents known, however, there is a bit of omnipresent sunshine that generally forces people to be more honest and objective.

Until this is dealt with, there will always be people like me snickering about industry reports like this.

Via Simon Phipps. By the way - I don't think this is a problem just with Microsoft. Perhaps Sun could lead the charge on this type of thing by having a policy of having their name on all studies that they fund. Perhaps they already do this?

Saturday, February 03, 2007

People are Talking

People are Talking. Talking about JavaSpaces & distributed caching.

As my co-worker Ed would say, the future is coming!! And so when are the big boys going to notice that the future is coming? Hmmmmm.

Perhaps this technology will be in a few Plan B MRDs this year.

Did Cameron really say this:

Our reason for considering the introduction of JavaSpaces into Coherence is to allow programmers to use the spaces model and the JavaSpaces API to code parts of those transactions. While JavaSpaces is not an effective data management API (i.e. it's not good for replacing a database), it is an effective data processing API (i.e. it can easily be used for computational processing in a grid). So Coherence can certainly bring those two concepts together (data managed by a database and processed using a spaces approach).

Peace,

Cameron Purdy Tangosol Coherence: The Java Data Grid

Yes he did! He authenticated it with the "Peace" key!

Should be interesting to watch - perhaps embedding Blitz? Why don't you OSS Coherence while you are at it? People still need support. Look at JBoss.

Wednesday, January 31, 2007

Whilst

All you have to do is say whilst and you sound smart.

Why is it that Euro English appeals to me and Canadian English doesn't?

I guess it is just really Irish and English - English that I get a kick out of.

The best is how the Irish (at least the Belfastians I work with) say their filler word. Instead of "um" or "ugh" it's "em". To be globerly (neighborly), we here in Portland have started to say "em" as well. We also occasionally throw them a bone and say "dater".

01-FEB-2007 - Update misspelling per email from my dear mother: Subject: Spelling Correction on Your Blog

uh........em...............not "through" but "throw"

em...er....yer mom :)

xxoo

Monday, January 29, 2007

Software Engineering Ethics

I hadn't read the Software Engineering Code of Ethics and Professional Practice since I was introduced to it in grad school (only got 1/3 of the way through - perhaps I'll finish some day).

We were required to sign it. I think that was good.

Anyway, since you probably won't click it, here is the short version. If you want the long version, well click it. And you should sign it too. I'm also adding it to my blog as a link to remind myself to be a good dude. On some days I certainly need a reminder.

Software Engineering Code of Ethics and Professional Practice Short Version Preamble

The short version of the code summarizes aspirations at a high level of the abstraction; the clauses that are included in the full version give examples and details of how these aspirations change the way we act as software engineering professionals. Without the aspirations, the details can become legalistic and tedious; without the details, the aspirations can become high sounding but empty; together, the aspirations and the details form a cohesive code.

Software engineers shall commit themselves to making the analysis, specification, design, development, testing and maintenance of software a beneficial and respected profession. In accordance with their commitment to the health, safety and welfare of the public, software engineers shall adhere to the following Eight Principles:

1. PUBLIC Software engineers shall act consistently with the public interest.

2. CLIENT AND EMPLOYER Software engineers shall act in a manner that is in the best interests of their client and employer consistent with the public interest.

3. PRODUCT Software engineers shall ensure that their products and related modifications meet the highest professional standards possible.

4. JUDGMENT Software engineers shall maintain integrity and independence in their professional judgment.

5. MANAGEMENT Software engineering managers and leaders shall subscribe to and promote an ethical approach to the management of software development and maintenance.

6. PROFESSION Software engineers shall advance the integrity and reputation of the profession consistent with the public interest.

7. COLLEAGUES Software engineers shall be fair to and supportive of their colleagues.

8. SELF Software engineers shall participate in lifelong learning regarding the practice of their profession and shall promote an ethical approach to the practice of the profession.

Sunday, January 28, 2007

Patent Tactic

I like this tactic against patent liars.

I would refer these software engineers to IEEE-CS/ACM Joint Task Force on Software Engineering Ethics and Professional Practices.

Perhaps a more prominent website of names, links to prior art, claimed patent is a good idea?

Depending where the OSS patent fight goes, this may be a necessary tactic.

Update 29-JAN-2007 Via Simon Phipps look like this has been fixed. Yay. Also, looks like there is an EFF Patent Busting project. Haven't looked very closely at it, but looks like what I was blathering about. This + blogs is probably plenty.

Yet another example of why blogs are great IMHO. When every body has a printing press the walls start falling down. Yay.

Friday, January 26, 2007

Perhaps I overestimated?

Even though the writing has been on the wall for years on WS-*, I predicted that it would take another 2 years before the industry echo chamber acknowledged this.

Is a Gartner Group VP (Nick Gall) a good enough shot across the bow? To many people, Gartner is a fairly credible information source.

Or maybe they are like Burton Group where they have some analysts that love it and some that hate it so in the end it is a wash (no offense Pete)?

I can only hope that this is the card that starts the house of cards falling down.

Via Bill de hOra

Update Saw this over on Simon Phipps. Obviously over the top - too funny though. Gartner certainly won't think this is true. I will have to defer to the Enterprise Architecture: Thought Leader on this topic. BTW that is a pure bold blog name ;).

I think analysts play an important role in the industry. I do think that you have to be a free thinker though and take what they say (and what anyone else says - especially me!) with a grain of salt. And who can honestly argue that transparency is a bad thing?

Best TheServerSide Post EVER

This is the best TheServerSide post/thread I have ever seen. I have been reading TheServerSide for years and years. Not as much the last couple of years, but I still check in on it 1x ever couple weeks or so.

On a side note, we spoke with Cameron Purdy briefly today. We really wanted to tell him that we were looking at NCache, but I didn't have the guts.

I did, however, open and close the call with "peace". I just couldn't resist. I'm sure he gets that a lot - oh well, he made his choices on that a long time ago ;)

Thursday, January 25, 2007

Blog Arrival

Well, it appears that my blog "has arrived".

I have many more readers then I had 1 year ago.

I must have hit some threshold where I am worthy of being blog spammed.

I'll drink (my delicious cappuccino made with delightful Luccaffe espresso) to that.

But it is pretty annoying. I will hold out on moderating until the spam reaches an unbearable threshold.

Wednesday, January 24, 2007

Software Architecture - Zoom In Zoom Out

We have been very busy designing and skeleton-ing out a large system.

It is difficult because there are so many components, so many services to integrate with, and so many potential knobs to turn. This is not a web app and a database. This is a biggin. Getting the partitioning in the right places is crucial.

When I am in the details I panic that I can't see the forest from the trees.

When I am at 20,000 feet, I panic because modeling and hand-waving doesn't cut it.

The only solution of course is to alternate between zooming in and out like this until you are done.

I got a third of the way through my Masters of Software Engineering at OMSE before I "paused" to join an OSS ESB startup (now defunct). I learned a couple of things there - one topic that I retained and applied is Views.

I went back to this today because I had the "too much detail panic". I came across and ordered Software Systems Architecture which looks quite good. Take a gander at the Quick Reference Card (requires you to give up an email address).

I like the looks of it because it builds on the "views" concept and gives some more detail (i.e., perspectives). Anyway, unless someone comes up with a better idea, I will just create the hierarchy with the viewpoints and perspectives in our wiki and then I think I will feel better zooming in and out as I will have some structure and cross reference. Perhaps it will start to become paint by numbers at some point.

Let me know if you have other ideas.

Thursday, January 18, 2007

So I'm not a courier - SO WHAT!?!?

Portland is a bike town. It wins awards for bike friendliness and what not.

There are also lots of couriers. Lots of them are rather insane and ride on their tricked out fixed gear bikes. These things are sexy bikes - flat out. You have to be either stupid or have insanely strong legs to be able to ride one of these things.

Anyways, as I consistently note, I am wershed up. These dudes aren't. They are cool - Portland gromit cool. If I was cool again, I'd be one of these dudes.

They also have tricked out back packs - you know the kind - all messengered out.

So as you know, I walk to work - it rocks. I recently bought a tricked out messenger bag. It's orange, ginormous and pure bold. And it is water PROOF not water resistent (when you live in Portland, you care about these things).

If you aren't pure bold enough for a messenger bag they have all sorts of other not messing around bags that may be to your liking.

This will conclude the 2007 Portland Snow blog series. I will return to tech blather next time.

Wednesday, January 17, 2007

Snow results in Chili. Chili results in Hot Sauce. Hot Sauce Results in . . .

Alright so I'm a B-player on hot sauce tolerance, but I still like it.

You need to try this particular hot sauce and you don't have to be some sort of hot sauce meat head to like it.

Marie Sharp - Belize. The one I have is the "Habanero Pepper Sauce - HOT". It is a mix of carrots and habanero and it is delightful.

I oddly had chili with lunch that was average to poor. My beautiful wife then happened to make chili for dinner that was good to delicious. I added some of this sauce to it and it became delightful.

I got a tip on this sauce from the best butcher in Portland a few years ago and am on my third bottle.

Walking to work in the snow in Portland

It snowed a whopping 4-5 inches in Portland yesterday from 5-8 AM.

In a city that does not have many snow plows, this is a problem.

Luckily for me, I walk to work so it was no problem.

Our office shut down at 12:30 PM - this was nice I was able to get things done. The problem with snow days in corporate America is that none of the deadlines move.

I grew up in Michigan - it took over a foot of snow to make anyone even think of shutting school down etc.

I was blathering about this to my co-workers when Ed pointed out that I now get cold when it is less than 50 degrees. In true Portland form, I wear a ski hat if it is less than 50 degrees. And sometimes when it is over 60 degrees. I guess 6 years in Portland has an affect on you. I wish I could say "You can take the boy out of the Midwest, but not the Midwest out of the boy". Or something like that. But at least on this front, it appears that I am being assimilated. Oh well.

Sunday, January 14, 2007

SOAP over JMS

Hey, looks like SOAP really does work over any protocol. Well over JMS anyway (not really a protocol). Saw this here and here. I'm sure all of these vendors (I know Sonic does) provide their own proprietary SOAP to JMS mapping. I suppose there is some value in them mapping it the same way.

The chances of me using this? Zero.

With SonicMQ, however, I have happily used their RESTish HTTP Adapter that just maps destination names into the URL & looks for HTTP Headers for any messaging specifics. Want to check for a message? Check the response queue via a different HTTP GET. Certainly not perfect, but can be useful when working with a technology that does not have a richer client available.

I took a quick scan of this document & remembered a Tim Bray post from last year.

I guess I won’t offer any further commentary on the contents of this document. I can’t help but feel for the H/I/I/M staff who are going to have to do the work, and am reminded of Fritz Lang’s immortal Metropolis, where Maria says: “Nobody cared about the slaves who died laboring to raise the Tower of Babel.”

Not sure if they already are (don't see any of their names listed), but it would be nice if these vendors got involved in AMQP. That seems to have some promise.

Why AMQP? Though many networking protocol needs have been addressed, a large gap exists in common guaranteed-delivery messaging middleware. AMQP fills that gap...

What is AMQP? AMQP enables complete interoperability for messaging middleware, both the networking protocol and the semantics of broker services are defined in AMQP.

AMQP Model The AMQP model explicitly defines the server's semantics because interoperability demands the same semantics for any server implementation.

Wire-level Format To enable technology-neutral interoperability, AMQP defines an efficient wire-level format with modern features.

Wednesday, January 10, 2007

Distributed Caching != JavaSpaces

I have been talking about distributing caching and JavaSpaces lately.

While you can use JavaSpaces as a caching technology because a JavaSpace keeps stateful objects (Entries) in memory and can be persistent (i.e., survive a failure), it isn't necessarily the best alternative.

Conversely, while you could use a distributed cache as a service orchestration engine because it has an eventing model in it & you could hack master/worker on top of it, it probably isn't the best choice.

The combination of a good distributed cache and a good JavaSpaces implementation, however, may be a good combination.

There certainly is overlap & you have to be fairly deliberate in figuring out which tool you want to use for certain things, but it seems achievable.

A distributed cache is likely the best place to store reference data, hard to query data (e.g., from a mainframe), user session data, etc. where a JavaSpace is probably the best place to store transient conversational service state.

It is the combination of these technologies that allows you to avoid the dreaded work in process database.

More importantly, both technologies use Java POJOs rather then XML so you can avoid a lot of mapping complexity (certainly not all) within the core of a large application.

Anyway, I still have a lot to learn, but am beginning to settle on this distinction.

Mobile Code vs. Mobile Data

As I am trying to learn more about Jini and specifically mobile code, I came across this blog post at discipline and punish.

For almost a decade now we've been steadily marching towards mobile data. For many, distributed computing is summed up by the motto: it's just data. But it's interesting to note that, with the (re)(re)emergence of Grid Computing, mobile code is poised to make a comeback. While mobile data allows for a lot of dynamicity in the consumer-side, it's mobile code that lets you deal with major dynamicity on the service-side. When you have dozens (or hundreds, or thousands) of nodes constantly coming and going then highly mobile services really start to pay off. The JINI guys are certainly on to something and question of which approach scales better is far from settled. I suspect in the future we'll rely heavily on both distributed computing styles.

Sounds about right.

Also Dan Creswell is helping to educate me - thanks Dan!

Saturday, January 06, 2007

JavaSpaces sans Jini

Apologies to my new Jini friends. I am a neophyte.

I work with and have spoken with a number of people who say things like, "I LOVE the concept of JavaSpaces - I just don't want to bring all of Jini with it".

What they are really saying is they love JavaSpaces - TupleSpaces really, they just can't stomach the mobile code bit. These are not stupid people. Honestly, this includes me a lot of the time.

Most of these people lived through J2EE and wouldn't bet their job on auto-deployment of a .war file or .ear file work - why should we think something more complex (downloading the code) will not result in panic? I remember talking to BEA about their auto-deployment - some engineer said they had something like a 120 page spec on this functionality alone (and it still didn't work).

I could just send Dan Creswell an email, but I've heard this comment so often that I figured I would put it out here for all to see. I'm sure this topic has been discussed before - thing is it still is being discussed.

Dan, others, are we neophyte's just wimps for fearing mobile code?

How hard would it be to de-Jini JavaSpaces?

Is this completely out of the question, stupid, etc.?

For JavaSpaces to see a lot of mainstream usage 1 of 2 things needs to happen IMHO:

  1. Educate the neophytes on the power of mobile code. Help them not fear it. Help them to convince their infrastructure and security groups that it is viable
  2. Create a JavaSpaces sans Jini (really sans mobile code) version
Update 07-JAN-06 PM - I'm hoping that at the very least some education can occur via this post for me and other Jini neophytes. So I started this wiki page at jini.org.

Simplicity & Integrating with Less Code

I have been on a distributed caching & JavaSpaces kick lately due to the reasons listened here.

I was talking to my co-worker Erik yesterday and we concurred that one of our biggest goals is to come up with an architecture that is as simple as possible and requires the least amount of code.

Coming from my experience with SOA of various flavors and EDA, I have been on many projects that wrote way too much code. The more code the more defects. This is what is so appealing to me about JavaSpaces and potentially distributed caching (e.g., memcached, Tangosol Coherence) (or some of both). In the core of an application it is possible to use these layers as your service orchestration tier as well as your transient data store. This is very appealing as you skip a significant amount of OR and OX mapping which saves heaps of time and defects.

The JavaSpaces API itself is extremely seductive. Lifted from here:

  • write: Places one copy of an entry into a space. If called multiple times with the same entry, then multiple copies of the entry are written into the space.
  • read: Takes an entry that is used as a template and returns a copy of an object in the space that matches the template. If no matching objects are in the space, then read may wait a user-specified amount of time until a matching entry arrives in the space.
  • take: Works like read, except that the matching entry is removed from the space and returned as the result of the take.
  • notify: Takes a template and an object and asks the space to notify the object whenever entries that match the template are added to the space. This notification mechanism, which is built on Jini's distributed event model, is useful when you want to interact with a space using a reactive style of programming.
  • snapshot: Provides a method of minimizing the serialization that occurs whenever entries or templates are used; you can use snapshot to optimize certain entry usage patterns in your applications. We will cover this method in detail in a later article.

With the addition of JavaSpaces05, there is collection based (i.e., bulk) read, take, and write.

The integration patterns possible with this API are very powerful. Master/Worker, distributed, highly scalable data structures, etc.

It appears that with certain distributed caching vendors, you can achieve some semblence of these patterns, although I am not convinced of that yet, and the associative nature of JavaSpaces (i.e., you use templates containing objects with what you are looking for in a space to find it) is just amazingly seductive.

Love it or hate it, JavaSpaces comes with Jini. To a newbie like myself, Jini takes some getting used to. The whole mobile code bit tends to make people who have lived through J2EE classloader hell nervous. But there are those who say it works fine in Jini. It is a different paradigm and this makes people very nervous.

Maybe what is needed is a mix of J2EE (specifically servlet, JMS, JMX MBeans), distributed caching, and JavaSpaces. Maybe you can use JavaSpaces for both caching and service orchestration. Maybe you should use all of Jini. Maybe there is something else.

From previous lessons learned around persistence in EDA, I am 100% convinced that we need some sort of flexible transient data store (no work in progress database - I beg you!). I see that today as being some form of a persistent distributed cache that requires very little if any mapping code. I also have seen the power of asynchronous integration and SEDA and am not about to give up on it. JavaSpaces and Master/Worker appear to give me that. What other ways are there? Maybe things that I would have considered anathema a year ago like sending objects through JMS for the eventing layer isn't really that awful? I do know that I do not want XML at the core of a brand new system again - again way too many defects with mapping etc. Too slow, too lame. Sure, at the periphery to integrate with services that require it, but never again in the core of the system.

Lots of thinking results in lots of blather . . .

Bottom line, I want this to be as simple as it can be and I want to write as little code as possible. Oh and it should scale like the dickens, be simple to specialize, maintain, etc.

Friday, December 29, 2006

2007 Predictions

I promised last week to post some predictions for 2007.

Here goes . . .

  1. Even the day coders will run screaming from WS-*. The battle is won; we night coders killed it because we didn't want to be controlled by vendor-pires and it is fundamentally flawed technology. Sadly, even though I believe that it is dead, it will take 2 more years before the industry echo chamber comes to terms with it. Software vendors who are heavily invested in WS-* will spend 2007 doing two things: one last gasp at making WS-* happen and quietly writing their Plan B MRDs.
  2. REST usage will increase in lieu of WS-*, but it won't unseat messaging and other middleware.
  3. People will settle down a tad about Ajax. It's great and all, but I've been seeing more and more botched impls. Like just about everything, its just a tool not a dogma.
  4. XML will finally be considered one tool in the tool chest just like every other technology. Development teams will only use XML where it actually adds value and not force it into places where it does not belong.
  5. The virtualization march will continue.
  6. Distributed Cache and JavaSpace usage will accelerate as more people grok the power of this architecture style.
  7. Apache River will breathe new life into Jini/JavaSpaces. Both will see lots of new interest and implementations. 2007 will be a "rebuilding year" (as they say in sports) - 2008 will be the big year for a Jini/JavaSpaces come back. Someone from Sun will formally apologize to all the people maimed by J2EE in 2009 and acknowledge that they should have marketed Jini as a service technology from the beginning (ok just kidding that isn't going to happen).
  8. The Open Source patent war will begin in earnest.
  9. Community Source Software will slowly start to take off in industry verticals as more executives grok the possibilities and come to terms with the fact that they are already sharing industry vertical software with their competitors; they just don't have access or any control of the source code. Look for a success or two in 2007 which will set the stage for a pandemic by 2009.
  10. Even more smart people will start blogs or at least start reading blogs which result in even more transparency and open collaboration between software vendors, customers, and consultants and ultimately better software, more innovation, and less waste.
Alright, that is all I have . . . mostly just a bunch of blather, sorry. I am very excited about 2007. Should be an exciting year to say the least.

Thursday, December 28, 2006

SBA & EDA Lessons Learned

I am still getting my head around SBA (Space Based Architecture)/distributed caching patterns.

I have a ways to go, but the more I read about it (blogs, docs, specs, etc.), talk about it with my insanely smart co-workers, and do stuff with it (hands on) the more I like it.

Like most humans, my mind works quickest when I can associate concepts. As I have mentioned before, I see a lot of parallels between SBA and EDA - specifically Message-Centric EDA. Last Spring, I did a series on lessons learned from an implementation of what I consider Message-Centric EDA. I'm going to pick out a few notable differences that I have noticed so far that makes SBA extremely appealing to me.

  1. Content Based Routing
    Content Based Routing, Itinerary Based Routing, any service orchestration you can think of other than frightening things like BPM/BPEL are all achievable with SBA. And its done by using the state of your objects, not Topics, XML and all the complexity and angst that comes with it.
  2. Choose Topics over Queues
    SBA wins hands down. Instead of mapping your system into using Hierarchical Topic Names including event types and states you put objects into the space and the state of the objects drives the service orchestration (take, notify, etc.). It's insanely simple. This eliminates 2 mappings: system state to Hierarchical Topic Names and Object to XML (and back). In a large system, this results in heaps and heaps of complexity eliminated.
  3. Persistence
    No XML shredding in SBA, the space fits the transient data solution I mentioned. It can be configured to be persistent/reliable & in some implementations mirrored, clustered, etc. Getting relational databases out of the transient state business is great for simplicity / flexibility / maintainability / scalability. Again, one less mapping to deal with - only persist to long term storage at well defined states (again based on your objects, not a serialized XML version of them).

SBA basically turns messaging patterns upside down. The patterns are similar, just simpler in SBA. At first look, the SBA versions seem better. Perhaps the grass is greener, perhaps not.

The right answer is probably all of the above / both SBA and EDA. The really hard part is figuring out where to use which in building loosely coupled cohesive systems.

Update 29-DEC-2006 I was inspired thinking about this further on the walk to work this morning . . . I mention complexity and mapping above. Things like object to XML (and back) (OX), system state to hierarchical Topic names (and back), object to relational db (OR), Object to XML (Castor, JAXB, etc.), XML to relational db (XML shredding). Why do you care about all this? I'll tell you why you do. Not having this cruft in your system results in:

  1. Hundreds of conversations and meetings that you will not have sorting this mapping out
  2. Many design decisions / design details you won't care about
  3. Thousands of unit tests you won't write
  4. Hundreds of defects that you won't file, ponder, fix, and unit test

Update 07-FEB-2007 Appeasing the "then" vs. "than" police.

Update 22-JUL-2007 As this page is linked to from a Wikipedia page on Space Based Architecture, and gets a fair amount of referrals, I think that I have a responsibility to temper my original comments with what I believe today. I continue to have high hopes for Tuple Spaces, JavaSpaces, and SBA. In my opinion, however, there are not enough viable alternatives today. This is very important to me. I am watching with great interest what will happen with Apache River prior to making any further investment in this technology.

Apache River

Apache River is a new Apache podling (incubated project).

This should be fun to watch.

2007 is going to be fun I think.

"River" is a good enough name - I like it, but then again, I love rivers

Powerbook Rot

Jon Udell complains about Powerbook Rot.

Sadly, I have experienced the same thing with mine.

I drive mine pretty hard because, well, it's a laptop. And my 20 month old daughter pokes at it - maybe that is my problem.

My biggest beef is the power cord. I am on my second one ($100 or so) and it is cracked with electrical tape all over it (fire threat) and barely works. I have to keep one hand on it half the time. Lame. They brag about the magnetics, but I think it isn't durable enough. Next beef is the battery - they go to crap pretty quickly. I think this is just laptop batteries in general though.

Anyway, in general I love OS X. It is the only thing to have your family on. I just think there is some room for improvement around durability. How sweet would a ruggedized Powerbook be? Maybe they have those somewhere.

Annyway . . .

Wednesday, December 27, 2006

First Turducken

I had my first Turducken Christmas Eve.

It was delicious.

Here is a picture of it.

Yes this is ridiculous, but don't knock it until you try it.

We didn't do the hard work of assembling it. We just bought it at my wife's childhood butcher (and now my sisters) and baked it. The truly experienced apparently deep-fry them.

Friday, December 22, 2006

2007 Predictions Starting

Here come the 2007 predictions. Who doesn't like these? Perhaps we need another round of blog tag on that ;)

Patrick Logan has one that I'd like to see come true. I'd at least like to see a good hard look at it. I've lived web services, ESB, EDA, and they all have their issues. I'm sure Jini/JavaSpaces has its as well, but perhaps the best of all of them is the right fit (ok REST not web services).

As the industry comes to term with the failure of WS-* we can either start over and reinvent things again or perhaps take a look back at some of the technology that should have been front and center to begin with.

I will post my prediction next week.

VMWare for OS X

The virtualization march continues . . .

VMWare has an OS X beta.

Saw this on Matt Raible's blog.

Monday, December 18, 2006

Jini Red Pill

My point is, that all this JBI/BPM/Web Services/'Lets Ra-ra-ra about RoR' is what you get and what you accept when you take the Blue Pill, so the thing is why don't you have a go with something different, could be anything (for those that have never tried Jini but have even a slight interest in SOA, have a look it doesn't bite). Follow your enthusiasm, you'll never know where it might take you. Take a chance - take the Red Pill

I like all references to the (now) eternal Red Pill. I loves the Red Pills. They keep me spry and handome.

I also like all things and people that are wise enough to diss JBI/BPM/Web Services in one sentence. Now that is a skill.

Mind you I have heaps to learn about Jini and JavaSpaces. Just saying I like this sentence.

All I know is WS-* is dead, REST doesn't cut it for (a lot of) the stuff I do, and I know enough already about the problems with ESBs and Messaging. I want some new problems to deal with. Or at least I want to fix a couple problems. No idea where it will go at this point.

I will say that I am going to be really pissed at Sun if Jini does turn out to be great. I mean I lived through 5 years (5 years!!!) of J2EE - all of it - even CMP!! If Jini is heaps better and Sun put me through that misery just because they totally botched the marketing campaign around Jini then I'm going to be a little upset.

Sunday, December 17, 2006

Blog Tagged

Patrick Logan blog tagged me.

You are supposed to share 5 little known things about yourself.

Update 15-DEC-2006 Patrick Logan wondered why I didn't take the time to explain my nickname, "fuzzy" and "panic" (i.e., Panic From Fuzzy). So I'll work it into my five things. Just a warning - it isn't very exciting.

Here are my 5:

  1. Probably the best thing that ever happened to me was being "held back" (i.e., failed) the first grade. I was just a late bloomer. But who knows what would have happened if I continued on when I wasn't quite ready. I give my parents *a lot* of credit for letting me fail at lots of things when I was young. They also encouraged me to pick myself back up. Based on my experience, I think the best thing parents can do is let their children fail. It teaches them resilience. If they don't fail when they are young they will not know how to deal with things that are hard when they are in the real world. If they aren't failing once in a while, you aren't doing your job as a parent.
  2. In high school I played hockey, tennis, and soccer (for 1 year). I liked hockey best. I quit soccer to play hockey more (I had some catching up to do). I was an average player. Getting up for 5:30 AM ice time was very good for teaching me work ethic. I received the nickname "Fuzzy" on my high school hockey team. No particular reason - you know how nicknames sometimes just stick. My Dad calls me Fuzzy and me friends from college and high school do as well. I basically stopped it once I entered "the real world", but it has seen a resurgence since I named my blog this (go figure).
  3. I attended The University of Dayton. It is a Catholic school. The brothers there are Marionist and their philosophy is to "Promote quality education of the whole person". This worked well for me. I studied a lot, but also "socialized" a lot. I really enjoyed my years at UD. Today I am not that into organized religion. But I am still a spiritual person. I need to figure out what to do about this in the next year or two as my child grows. I want her to be spiritual too. I might go religion shopping or I might just go to a Catholic church.
  4. I got a C in my first computer science class. Programming was very hard for me at first. You may laugh, but the concept of loops *blew my mind*. I remember sitting in my professor's office telling him how hard I was working (I was) and having him say that computer programming isn't for everyone and maybe I should hang it up. My resilience kicked in here and I eventually got it. I am very glad I stuck with it because I really love what I do for a living. The term "panic" came from UD. My friends and I were very into lingo (using clever word plays etc.). For whatever reason, the word "panic" was used often. I still think that it is a very versatile word and that it is applicable to heaps of "real world" situations.
  5. I love the outdoors. I hike and fly fish as much as I can (less since I had a child 1.5 years ago). My favorite activity is definitely fly fishing. I stop thinking about work related stuff for hours on end when I go fly fishing
Here are my 5 tags: Sarge Dodge, Mike Dierken, Matt Asay, markg, Kris Tuttle

Friday, December 15, 2006

Hiring

So we have some killer jobs opening in Portland, Oregon and Indianapolis, Indiana if you are interested.

The job description is a wee bit enterprisey, but that is just how our CTO talks. He's a great dude and isn't enterprisey to a fault. Very empowered place to work. Come join the fun. Let me know if you are interested (mherrick66 AT yahoo DOT com).

Basically you need to be a digital assassin, a leader, play exceptionally well in the sandbox with all kinds and have communication skills. You know commodity type skill set ;)

You know, like nunchuck skills, bowhunting skills, computer hacking skills..

Update 18-DEC-2006 To apply online go here. It is req# 27179BR. For the Portland job, you need to have some mainframe experience (e.g., VSE, iSeries-AS400, zSeries-MVS). You also have to have IT portfolio management experience. This job has a range of levels that you can be hired in as depending on your experience.

Technologist/Architect Job Description

Serves in multiple leading architectural roles across multiple projects and domains. Role is for the highest level professional ranking within IT. Must be capable of handling an aggressive and challenging workload at the highest levels of quality and throughput.

Responsible for developing business systems plans, roadmaps, and strategies that drive the delivery of software solutions which provide competitive advantage in the three to five year time frame. Works with solution delivery teams to provide direction, guidance, and hands-on mentoring. Reviews and develops architectural models and solution artifacts at both conceptual and detailed levels. Analyses highly complex enterprise wide system, technical, process and product issues to develop strategic direction and transformation plans -- participates in and is responsible for effective execution.

In-depth knowledge of business operations, objectives and strategies; in-depth understanding of global business and technology trends and the financial services industry. Experienced in applying best practices of architecture governance, methodology, and agile methods at both project and enterprise levels. Leads projects of strategic impact. Drives end-to-end life cycle improvements in IT processes.

Must have superior verbal and written communication skills, and have demonstrated application at all levels of business, systems, and executive interaction. Role requires extensive development of materials ranging from proposals, strategies, standards, architecture assessments, research papers, and presentation materials for diverse audiences.

Generally, the following minimum requirements apply: 15 years of related experience; Bachelors or Masters Degree in Computer Science or similar; current mastery of multiple architecture specializations (i.e. information, data, application, solution, integration, or enterprise architecture); current experience and mastery of IT concepts, strategies, software engineering, and modeling techniques.

Candidates will be required to demonstrate proficiency via sample written exercises, modeling scenarios in one or more disciplines, and potentially analytical and/or software engineering tests.

Range of technical skills required include: Information Management (governance, strategy, meta data processes); Data Management (logical data modeling, enterprise warehousing, business intelligence, object-relational modeling); Enterprise Architecture (business and technical reference models, solution architecture, legacy systems modernization, business process modeling); Software Engineering (full lifecycle development, including management, compliance, UML modeling); Network and Infrastructure Architecture; Enterprise Application Integration (mainframe architecture, J2EE middleware, ERP implementation); Enterprise Program and Portfolio Management.

Thursday, December 14, 2006

Jini/JavaSpaces & Distributed Caching

We are taking a gander at some space / cache technology and looking at ideal ways to do service orchestration with it in the architecture.

I am fortunate enough to work with Patrick Logan and he has some good questions. He worked for Gemstone a while ago so he knows their are opportunities to hurt oneself if one chooses unwisely.

I like JMS enough, but it has its issues. If there is a better, simpler way to do service orchestration I'm all ears.

Master/Worker with spaces might work. What else?

I like location transparency. It’s neat.

Update 27-DEC-2006 Just tickling your RSS reader - some good comments on this post. Please chime in if you have an opinion. I am becoming fascinated with this topic. There are a lot of parallels between SBA/distributed caching and EDA service orchestration models. I'm spending some time getting my hands dirty trying to get my head around it better.

Wednesday, December 06, 2006

OSDL Layoff

OSDL had a layoff the other day.

I have gotten to know a number of these fine people. They have been very good to me. I wish them luck. There are some good people left - Mike Temple and Tom Hanrahan certainly know stuff.

I also wish Stuart Cohen luck in his new venture. I certainly share his enthusiasm for it . . . its just a tough nut to crack (speaking from experience).

Not nearly as complicated as sharing code amongst your peers via some predatory vendor (and only having access to the binaries - not the source), but large companies have a hard time groking this. And there are forces that don't want this to happen.

We just need some more success stories . . .

Linux has won - some people just don't get that yet, but it won. Open Source still needs defenders and custodians like OSDL. Patents are obviously the next battle. Diane M. Peters knows a lot about that.

So I don't know if this is bad news or just a blip. My gut says its a blip. Times are changing . . . Linux won - old structures require change.

OSS is crawling up the stack . . . if Stewart has his way, the last big $$ maker will fall next. And then everyone will have to compete on business value rather then intellectual property lock in.

Wouldn't that be nice?

Thursday, November 23, 2006

SBA trumps EDA?

We are taking a look at some architectures for a next generation of a critical system at work.

I am a fan of EDA - Event Driven Architecture. I posted about it a bit here.

Its nice and all, but it is not without its problems. It certainly has a role to play in any architecture. But the last time I built one, I ran into some problems as detailed in my series linked to above.

Does SBA (Space Based Architecture) simplify things even more? For one thing, it minimizes "legacy" XML which is certainly a good thing. And the location transparency is mind boggling. Makes things like Sonic's shared subscriptions look quaint.

Just when you were happy that web services are finally dead, there is another shift. And if you are still talking about web services, well . . . sorry.

Wednesday, November 22, 2006

FUD Based Business Models

What a waste of time.

Something tells me that getting this clause adopted to GPL won't be as hard as GPL v3. I dislike FUD based business models. Around and round we go ...

Tuesday, November 21, 2006

Mother's Uncle George Stalk

My mother's Uncle George passed away a few weeks ago. He was an American hero (a retired Colonel). I only met him a couple times, but remember him fondly.

Check out the beautiful day at Arlington National Cemetary November 15.

Picture taken by my Uncle Michael.

Sunday, November 19, 2006

Eye Twitch

I first remember getting the eye twitch in college during final exams.

Its back!

I get this every time I work too hard. Its pretty annoying. It's as if I have a short circuit or something!

I suppose it is one way for my body to tell me to get more sleep :)

Thursday, November 09, 2006

Wikis & Blogs heart Firefox 2.0

It spell checks!

That is what I'm talking about!

Good bye document paradigm! Good bye!!!!!

Herro collaborative editing!!!!

Monday, November 06, 2006

Panic

As if I wasn't busy enough I am now insanely busy.

What is it they say . . . "If it doesn't kill you it makes you stronger"??

I sure hope so . . .

Nothing that OCD usage of a wiki can't solve I hope.

Tuesday, October 31, 2006

Vacation, Ken Kesey

I am back from a much needed vacation.

Had some fun playing frisbee on the beach with a friend I have known since I was 5. Our digital camera got canned before the vacation. My wife thought it made a fine toy for our 1.5 year old daughter. The camera didn't think so. We were reduced to using a disposable camera so no pics. My friend also has a young daughter so he also goes to bed at 10 PM. But we were pretty cool in college.

I'm not done yet, but I started reading Sometimes a Great Notion by Ken Kesey. Good book so far. The book is based in Oregon, which I of course like. Kesey spent a lot of time in Oregon and was an interesting dude to say the least. Figured I needed a break from technical, business, and political books. I guess I should wait until the end, but so far I see the link between Kesey and Jack Kerouac .

I became interested in Ken Kesey after watching The Net: The Unabomber, LSD and the Internet. I think "The Net" is worth a look, makes you think. I knew about Kesey before, but didn't know his LSD experiments created the Internet (joke, but watch the documentary - warning sub-titles)

Sunday, October 22, 2006

Espresso I love you

I love espresso.

Portland is the epicenter for coffee Or at least one of them.

Check out this article from the Willamette Week:

Bean Town Thanks to a gang of coffee fanatics, Portland is the center of a new microbrew revolution.

That is what I'm talkn' about!!

Coffee is a big part of the Portland culture and I love it! At work, our team rips a trip across the street to our local independent coffee shop, J Cafe, at least 1x a day. We alternate paying. This is basically our Scrum stand-up meeting "if you will". We mix in cheap jokes and walk around the block and also talk about our projects. I dig this.

Each morning, I fire up my Francis! Francis! espresso machine and pull 4 shots. 2 for me and 2 for my lovely wife. Before long, our 1.5 year old will get in on the fun ;)

I am a b player barrista at best. No c player. I use "e.s.e. pods" (easy serving espresso). They work pretty well. I have been buying cases of Illy for a couple years. I just realized that e.s.e. is a coffee industry standard. I'm going to check out some of the other brands available at PodMerchant. Illy will be tough to beat though.

If you come to Portland, you must go to Stumptown. Best coffee ever flat out.

Yes, at this moment I am "over served" on espresso. Yes that is why I am blogging about it. SO WHAT!?!

Thursday, October 19, 2006

Ubuntu

I have been using Ubuntu pretty regularly for almost a month now.

Far and away the best desktop Linux experience I have ever had.

It isn't MAC OS X, but its pretty good. Especially since its free.

Very impressive.

Wednesday, October 18, 2006

The Freedom to Fork - Hard Lessons for Compiere

I saw over on Matt Asay's blog that Compiere has been forked.

I do not know their founder personally (Jorg Janke), but I have met him a number of times in the past. I'm sure he doesn't remember me. I remember talking to him 1.5 years ago when he moved to Portland about VCs. He was moving into the same incubator as my previous employer here in Portland (an OSS ESB company that failed). He said something like, "they will take your left arm". Well, I don't know about that, but either he was too worried about losing his "left arm" (and neglected the most crucial part of OSS - community), OR they did take his left arm and he can no longer code like the dickens (they probably started talking to VCs six months ago and got very distracted by that and moving to SF - silly idea when you have a thriving international community and you are already in one of the most OSS friendly cities in the world!?).

Now I have no idea what the truth is here.

Just yesterday, however, I was on a 6:30 AM ccall extolling the virtues of the "freedom to fork". This crucial aspect of OSS gives the community incredible power over the software it invests in. This is software the way God intended it to be. It is separation of powers just like (we think/hope) our democracies work.

I hope that Compiere Inc. turns this around - it isn't too late. But it better shell out some of that $6M to make amends with its #1 asset - the community that is invested in it. Hey Larry Augustin is on the Compiere board! I just listened to a fantastic talk of his last week at GOSCON. Here is the summary:

One of the hardest parts of utilizing Open Source is building true community involvement. The benefits of Open Source only accrue when an outside third party community participates. This talk will describe various ways to help engage a community around your Open Source project.

Larry, give Jorg the presentation quick!

Tuesday, October 17, 2006

Utility Computing & Open Dater

Man, utility computing is really going nuts lately. Check out Sun (via Tim Bray): Sun's Shipping Container.

At OSCON, Tim O'Reilly talked a lot about Open Dater. At the time I remember being slightly annoyed because he talked about it a lot.

But as the months have gone by since OSCON, I have thought about it several times so he certainly got my attention.

Anyhoo, cool shipping crate, very cool shipping crate.

Monday, October 16, 2006

Celtic Wisdom

My mother is a voracious reader. She is into Celtic Christianity. I'm not terribly religious (in an organized way anyhow), but I dig the stuff she tells me about Celtic Christianity. It is apparently more in tune with nature which suits me fine.

Take this quote, for example from a book she read named Anam Cara: A Book of Celtic Wisdom

There is a lovely anecdote from the Munster region about a man who had died. As the Soul left the body, it went to the door of the house to begin its journey back to the eternal place. But the Soul looked back at the now empty body and lingered at the door. Then it went back and kissed the body and talked to it. The Soul thanked the body for being such a hospitable place for its life journey and remembered the kindnesses the body had shown it during life. page 209

She read that to me when she was in town. I thought about it a couple times since she left so I had her look it up for me. I figured it was worth sharing. Profound eh?

Sunday, October 15, 2006

Fall Salmon

We went to the Salmon Festival at Oxbow Park yesterday.

Pretty cool.

They had all sorts of exhibits and some traditionally cooked salmon (yum).

I didn't catch any of the fish on film, but here is my curly-haired-daughter watching them. Every minute or so you would see a giant Chinook take a tear up the river.

Friday, October 13, 2006

Bradley C. Wheeler

Bradley C. Wheeler is a pretty impressive dude.

Quite an Open Source visionary "if you will". He is the founding force behind community source.

He gave the closing keynote at GOSCON today. He gave by far the best presentation I saw. And he has a certain irreverent zip to him that I relate to.

He also announced that the much anticipated Kuali 1.0 was released today. Pretty brave seeing its Friday the 13th. If you are in the market for a university ERP system, you may test drive it here. Hopefully it will be as successful as Sakai.

You may think that its easy to pull this type of thing off in academia, sure didn't sound like it was. But it is now because they have established the model. And there is major corporate involvement. This is not communism. As Brad said, this is creative destruction - exactly what capitalism is all about.

If they can build these things with OSS, what can't be built with OSS?

Wednesday, October 11, 2006

OSDL & GOSCON

I attended an OSDL "Face to Face" meeting today here in Portland.

I could only attend part of it, but it was pretty interesting. I've been a believer in OSS for a long time. I see only a bright bright future for OSS. To put it short, OSS allows us all to accelerate innovation. We can take code that works and keep building up higher and higher in the stack. We don't have to keep re-implementing the same thing over and over again. We are only beginning to learn how powerful this concept is. There is a lot to come.

I'm going to GOSCON tomorrow and Friday.

Only thing not so fun about attending these conferences is I have to catch up on heaps of work at night. Oh well.

Monday, October 02, 2006

Sprawl

Good article on sprawl. Compares my town with a town in Arizona.

My mother is in town and is sitting next to me with her own PowerBook - she forwarded me the article.

She likes Solitare in Dashboard, email, the web, and genealogy (she has a 700MB Pages document with our family history going back to Bluetooth in Denmark - how big is your biggest Pages document?).

Anyways, I'm glad I don't live in sprawl hell. I love urban living. I love walking to work. Once we move from our condo a key requirement is that I must at least be able to bike to work.

But then again, this article reminds me just how complicated the world is.

Well worth a read I think.

One note on Pages - I think all word processors just suck and exist solely to torture us. She has shown me some doozy defects in her 700MB document.

Wednesday, September 27, 2006

Little Jars of Formaldehyde

So we were talking at work today about virtualization and clouds of computing and clouds of data (like Amazon/Google style).

I mentioned the other day the whole envelope thing. Like how in the future perhaps applications will just be deployed with everything they need wrapped around them (OS). You just deploy them to your cloud of computers. They can be x86, RISC, whatever you like. The OS can be whatever you like.

Patrick Logan called these applications from the future "little jars of formaldehyde".

How great is that!?

If he made that up, wow.

This would solve all sorts of problems. ALL SORTS OF AWFUL AWFUL AWFUL PROBLEMS!!!

Sure it might bring a few along with it, but SO WHAT!?

Sunday, September 24, 2006

Cyclocross Bike?

So I have to convince the Mrs., but I really want a bike. I haven't had one in long time.

I walk to/from work every day. One of the better things ever invented. But I want to mix it up with biking as well. Portland is rather bitchn' for biking.

I also want to take this bike up to Forest Park and other tame "mountain bikeish" places. Let's be honest here, I'm washed up. I won't be jumping anything anytime soon.

I test drove a Lemond Poprad today.

And a co-worker & friend of mine Ed recommends these as well:

Surly certainly wins my heart with clever lingo (and the word "surly" is quite versatile):

. . .What does all this mean to you? Options, kid, that's what. Get yer freak on. Gears? Great. Single speed? No sweat. Commuter? Touring bike? Grocery getter? Bring it on. Or, build it as a bonafide 'cross bike and race it. It likes it.

Silly System Beep

Only Ubuntu/Debian complaint so far (or from Ubuntu: linky):

Not to worry, quick google search fixed it within 5 minutes.

Too funny (from the link with the fix):

If you’re like me, you start getting real annoyed, real fast at the system beep that insists on beeping far to often. This system beep emits not from your laptop speakers, but from that deep, dank recesses of ancient pc technology that is a little speaker designed only to beep annoyingly. Short of ripping it out, here’s how to disable it.

Do you have any idea how busy I am Hans Brix!?!

Virtualized Ubuntu

So that was the easiest thing I have ever done.

I settled in to beat my laptop into submission to run Ubunto on Vmware this morning. I figured it would take all sorts of angst.

"It just worked."

This is my first blog post from this environment.

My last workstation Linux install was not so kind. I ran Gentoo. It took 10 days. It really wasn't Gentoo's fault though. I had a very new laptop that had some very new hardware. I did like Gentoo lots. I remember begging X to work. Finally I found some guy on the Gentoo forums (fantastic) that had my same rig and had a x config that had the magic bits.

I'll let you know how the virtualized Ubuntu works.

Perhaps I'll start pronouncing "Ubuntu" correctly now ... nah it is just too much fun for me to pronounce it my own way: "UM-BOOOONtooo".

25-SEP-06 - Updated with proper spelling of "Ubuntu" - man I can't spell or say it!! I'm stupid stupid STUPID!

Saturday, September 23, 2006

Virtualization Aha!

We had a visitor from our Belfast, Ireland office yesterday named Iwan. We took him out for a beer after work and discussed all sorts of things.

One topic was virtualization. Among other things, Iwan is involved in infrastructure - he commented that for several years he has had to tell development teams "no" when they asked for a server because they already had too many under utilized machines and were running short of space and $$. But sharing environments comes with all sorts of truly awful wasted energy in coexistence.

He said that virtualization has allowed him to say "yes" to all sorts of requests.

We talked about shipping applications with the OS included in an "envelope". That basically just turns everything upside down.

I don't have a lot of experience with virtualization although people on my team do. I've followed the blog discussions and excitement around virtualization and agreed in general that it is a good. I just didn't feel any excitement about it personally.

I don't know what was said in our conversation last night that pushed me over the edge to have the "aha" moment, but I had one. "Aha!" moments are great. I've been having more then my fair share of them lately. We are living in truly amazing times.

I look forward to future beers (both virtual and real) with my new friend Iwan.

Saturday, September 16, 2006

Great Sofware Estimating Book

Wow, I picked up a great book today at Powells Technical. Software Estimation: Demystifying the Black Art by Steve McConnell.

We are doing a fair amount of estimating at work right now. We had a long meeting discussing an estimate for a project with heaps of unknowns. We put a decent plan in place for refining it next week on our own, but this book will help a lot I think.

I took a course at OMSE that covered a bit of estimating, but it was far too academic. I flipped through the book from the class I took and while it had some good ideas, it wasn't practical enough. McConnell's book touches on some of the academic approaches, but is very concise and has heaps of practical advise. The best part is it is broken down into 118 "tips" that are the heart of the book. I won't give too much of the book away, but the first tip sums up what is typically the crux of the problem:

Distinguish between estimates, targets, and commitments.

And Steve gives a suggested reading path for people who "need to create an estimate right now" (i.e., me and my team).

I like this book because it is focused on one thing (software estimating) - one absolutely critical thing.

We need more books like this. We can't just have the Mythical Man Month to turn to.

Thursday, September 14, 2006

OSS Derivatives

My friend Alok pointed me at this article by r0ml (Robert Lefkowitz) from over a year ago. I saw r0ml speak at OSCON this year. He is Not. Dumb.

I think that this is about as precise of an answer as you are going to get that will appease those that see OSS as an economic threat (comical).

I guess that this makes it a bit more tolerable that many commercial OSS vendors are pricing their software by the processor. I find this annoying because it means I have to count things and keep spreadsheets. I generally hate this type of friction - who doesn't. I still think that there must be a better way to price OSS. Perhaps they just aren't profitable?

You will likely have to read the article to "get" this quote, but here is r0ml:

. . . Those who have suggested that open source and free software is somehow not capitalistic, destroying the value of software and other such assertions, have missed this alternative explanation. It is just as likely that the free and open source software folk have stumbled across the financial engineering insight that a significant portion of the value of software is the embedded "derivatives"--options or warrants--on future maintenance and enhancement. Whether one believes that software has intrinsic value is related mostly to one's view on the correct value to use for volatility in calculating the option value. Larger values of volatility mean the software itself is worth less. Smaller values of volatility reduce the option price, and the software is intrinsically worth more.

Therefore, the major difference in worldview between open source advocates and proprietary software license advocates is explainable as a differing opinion on the correct value of the volatility of maintenance and upgrade pricing. People who believe that the pricing on maintenance is stable and unlikely to change see greater intrinsic value in the software. People who fear that the pricing is subject to large fluctuations see no intrinsic value in the up-front license; stripped of the options, the license value approaches $0.

For the open source movement, perhaps a better way to position the change that OSS is making is this: we're converting warrants on future maintenance and enhancements into options, which means that instead of having a sole supplier (warrants), we have created a third-party market (options) of these derivatives.

How capitalistic is that?

Tuesday, September 12, 2006

Innovation

+1 for Tim Bray On Innovation.

But fortunes are made, and industry titans are built, where management isn’t really looking, almost always. The big pieces of innovation come out of garages and low-rent offices in lousy locations, and they’re produced by small groups without much management backing. It can be done at big companies (the business personal computer at IBM, Java at Sun) but then it’s always in an off-the-mainstream skunkworks. Nobody—I repeat, nobody—is smart enough to predict where the next big strategic innovation is going to come from. So if you “narrow your innovation focus”, you’re almost guaranteed to miss it. The best approach, I think, is a combination of conscious focused incremental innovation—kaizen—combined with a structure that’s loose enough that when someone wants to hide in a corner and try something crazy, you don’t get in the way too much.

My team has yet to deliver on our name, but with Magnum P.I. code names, an active WIKI, a great coffee shop across the street (J Cafe), a celebration of brains, dissent, decisions, stoofs, and quirkiness I think we are on our way.

Thursday, September 07, 2006

"Freeware"

Yeah, Open Source Software is just Freeware. Weird commies in their underwear slanging out code for free because ... well who knows. And some academics too. That is all.

Nothing to see here. Just move along please ... MOVE ALONG.

I saw this a month ago, but someone on my team (biggest scariest smartest Viking you ever saw) forward it around again yesterday.

If anyone pours FUD on your Open Source parade, bang them on the head with this.

Um k, a couple excerpts for those afraid of clicking:

Open source is so pervasive that IDC declares in this study that open-source software represents the most significant all-encompassing and long-term trend that the software industry has seen since the early 1980s. IDC analysts also believe that open source will eventually play a role in the life-cycle of every major software category, and will fundamentally change the value proposition of packaged software for customers.

Wait, it isn't just build vs. buy? Yep-um-no.

As business requirements shift from acquiring new customers to sustaining existing ones, the competitive landscape will move towards costs savings and serving up sustaining innovations to savvy customers, along with providing mainstream software to new market segments that are willing to pay only a fraction of conventional software license fees," Picardi added. "Open source software is ultimately a resource for sustaining innovators.

Wednesday, September 06, 2006

8 Years of Episodes to Mine

Yeah so, if there was any doubt, we will be mining the 8 years of Magnum P.I. episodes for our project code names. Everybody likes witty code names - EVERYBODY.

Oh, you are using some stupid acronym for your project that everyone hates? Well, as Sarge would say, "you made your choices".

I am quite pleased with this - Magnum P.I. was a great show.

8 years of episodes! That is 8 years of characters! And 8 years of other mindless fun-facts that are at our disposal.

Oh and if you thought you were cool using mountains or rivers or something lame like that for your code names, well, you aren't. You are, admittedly better then the acronym crowd.

Fittingly, our first code name is "Magnum".

Saturday, September 02, 2006

Panic in a WIKI

We are in total brainstorm panic mode at work lately.

A very high level of thinking and learning occurring for the people I work with and me. You know that feeling. When you are full of stress because you have so much to do, but you don't really care because it is so exhilarating?

We are essentially living in our WIKI all day.

It is the most efficient way I have ever had a panic like this before.

We used WIKIs before, but it wasn't like this. The pace wasn't like this.

As an example, yesterday we had to get a slide deck together quickly. I just went into the WIKI and outlined it. And then over the course of the day the presentation magically appeared. It went through many revisions in near real time. It needs a little polish, but all the meat is there now.

If we had tried to meet about this for 1 hour, emailed it around, etc. it wouldn't have worked.

Anyway, been a WIKI fan for a while, but had no idea it could handle panic like this!

Friday, September 01, 2006

Give it a REST

Mark Baker interviewed by Stefan Tilkov.

I get tired of blathering on about WS-*, REST, et. al. but am sure glad Mark still has his mojo. Seriously, where does he get that mojo?