Sunday, October 19, 2008

Grails JMX Plugin

I just created and released version 0.3 of the Grails JMX Plugin. The code is at github; git://github.com/kensipe/jmx-grails-plugin.git . The documentation is at grails; http://grails.org/JMX+Plugin.

Sometime this week, I'll post some tips and tricks for using the JMX Plugin with Grails.

Saturday, October 18, 2008

Cooking Chef vs. Polygot Programmer

Occasionally crazy analogies pop up in my head. Sometimes these ideas don't make sense to anyone but me. Let me know if I've gone off the deep end.

So I was thinking what it was like growing up when I didn't have a microwave and how useful that tool is. Then it occurred to me that as useful as it is, there are things I would never put in the microwave. Take for instance a turkey. Perhaps it is possible to cook a turkey in a microwave, but why? You can cook toast on a gas stove as well, but a toaster just seems more appropriate. When playing chef, each tool provides a specific value. Turkey in the oven, toast in the toaster, and butter melting in the microwave.

Stretching this thought into a conversation on technology, I'm reminded of a term Neal Ford is credited with: The polygot programmer.

Why is it that developers and programmers pick camps? Why does an organization limit their technology choices to one or a small handful? When an organization says they are a "Java Shop" or a ".Net Shop", what I hear is "We only use microwaves to cook here". In many of these shops they are doing with code what can be equivalent to cooking a turkey in a microwave. They can get it to work, but it doesn't taste so good!

Friday, October 3, 2008

Writing a Spring 3 Book

I'm looking at writing a book on Spring 3. Yes... I know, it doesn't exist yet. My expectation is it should have a likeness to Spring 2.5, which is also lacking in good printed materials. With this assumption, I'm looking to get a head start now and refactor based on actual delivery of product.

If you have some ideas or thoughts... please share. At this point, My goal is not to cover what is already out there. I'm focused on the new approach of annotated development.

I'm also thinking of taking this book and writing a Spring.Net book to follow... Perhaps I will change my mind as I go through the new experience of the first book.

Speaking at October IASA Meeting in St. Louis

I will be speaking on Architecture and Scale at the Oct 6 Meeting of IASA in St. Louis.

Thursday, August 28, 2008

The Need for Better Interfaces (Human to Computer)

I can't help but believe that there has to be a better way. There has to be more options...

I talking about the I/O options to my computer. Here are a couple of recent stories that will hopefully bring context to what I mean.

Gestures on the Mac
Recently I purchased a new MacBook Pro. You know, one of the new Macs with the multi-touch capabilities. The idea is that if you use one finger you move the mouse, if you use 2 fingers it scrolls (and not just up and down), if you use 3 fingers then it depends somewhat on what application you are using, but generally it means go back or go forward depending on the wave of the hand. This is just awesome stuff and here is what happened to me.
First, the back and forth action of 3 fingers worked in Safari and in finder.... but not in Firefox. I was a little more than dismayed. Generally preferring Firefox, I found myself using Safari more in order to use the gestures. I really wanted this new feature in all applications. Eventually the shiny new toy lost some luster and I mostly use Firefox again. The consequence... sometimes I forget the gestures work in the finder... and I know that I would use it all the time if it always worked. In other words if the bell always rings and I can trust it, I will salivate. And I want to.

A PC with No Gestures
So eventually I found myself working again on another laptop. Man did I look like an idiot for a few minutes. I come to a page that needs scrolling, naturally I reach up to the touchpad with 2 fingers... moving it back and forth to get a scroll thinking for a moment damn computer is locked up or slow... only to discover that I was the component with the issue. It didn't help that my daughter was staring at me funny wondering what I was doing. She was still laughing even after I explained myself.

iTouch as a Birthday Gift
So last week was the same daughters birthday. I bought here a new iTouch. She loves it when I let it leave my hands for her to use. The first couple of days were great. She asked me "how do you turn it on?". I said, "It has one button... push it!". She would ask, "How do I get back out of this application?". I would say, "It has one button... push it!". And of course, she quickly gain the necessary skills and probably has surpassed my abilities on the thing within a few days.

PC is Not an iTouch
So last night she was asking me for some sync help between the laptop and iTouch. After a little conversation, she understands what she needs to do... she needs to hit the sync button on the laptop. What does she do? She taps the screen on the laptop... not once, but a couple of times and then begins to laugh. It was funny.

MacBook as a Fish Tank
Last example. I love to scuba and I love the ocean. When I saw the aquarium screen saver for the mac, it was an obvious purchase. So there is a setting on the screen saver, which reads "Enable Motion Sensor Water Tilting". First you have to turn this on! It uses the motion sensor on the mac so that if you tilt the laptop it appears that physics has applied forces on the water in your laptop the way you would expect. The water tilts! Here's the deal: The optical illusion is so good that even really savvy software developers are impressed and want to know: How?

Call to Action: Better Human Interfaces
If you combine the above stories with the fact that I just finished reading "Dreaming in Code", which outlines how far we haven't come in software development for the last half of a century, I'm left restless. There has to be more... there has to be better... Meaning more we can do and better ways of interfacing with computers. We are just beginning to see it. When you look at Microsoft Surface, Apple's iPhone and the promise of RFID, you begin to see it. It isn't what the general software developer is being train on or developing... They are still working on Dialogs.
Those who claim to be on the cutting edge, they are working on web 2.0 with javascript and cool new frameworks (they are cool). But that isn't what the future demands. The future demands seamless integration computer to human... where the human gestures to something and the machine understands. Where the computer knows what is expected and provides recommendation and choice. In this world, the interface isn't always a screen... and the input isn't a keyboard or a mouse!

Speaking at Websphere Portal Techincal Conference

I will be introducing the world of Spring to the world of Portlet development at the IBM WebSphere Portal Technical Conference. The conference is in Nashville, TN between Oct 13-16. The topic of the session is Annotated Portal Development with RAD and Spring; session D19.

Sunday, August 24, 2008

Spring JavaScript

I'm sitting in Keith's Talk @ NFJS Orlando on Spring JavaScript . I've worked with a lot of the spring framework on varies projects over time. I have not until now had a chance to look at what SpringSource was doing with JavaScript. This is great technology which desires some blog time in the future.

There is an underlying theme in the approach Keith is describing which I really like. The concept is a design approach where ajax provides value-add to a client which allows for javascript. Yet the application still functions without it.

Impressions from a one hour guided tour. Things I liked:
  1. Choice of dojo as the underlying framework
  2. Design approach
  3. Use of Tiles
  4. Leveraging of yahoo performance rules for script compression and optimization
Things to look forward to:
  1. Binding of multiple decorations to the same html element
  2. Closer look at Spring's CSS Framework
Great example application was demo to show off spring capabilites... but it is actually a very useful application reporting dependencies of osgi bundles. Take a look: http://springsource.com/repository/