Puakma: Under the hood

I'm Brendon Upson, jack-of-all-trades, master of one or two. I'm talking about life running a small ISV tackling business issues and leaping technology hurdles in a single bound.

webWise Network Consultants is based in Sydney, Australia and develops the groundbreaking Tornado Server technology.

Watch out for Kangaroos

Filed under: by Brendon Upson on 2005-07-31

The snowboarding was a good break. The weather on Friday was terrible (100km/h winds and visibility to 20metres), most of the lifts were shut or on wind hold. Saturday was much better, although due to some special event on, thousands of people descended on the slopes. It's always a bad mix when you get people going very fast and others going very slow.

The drive homeon Saturday night saw me almost collide with a kangaroo. This particular one was about the size of a 10 year old child. Hit on of those and say goodbye to the front of the car! Kangaroos seem to wait in the dark, obscured in the bushes on the side of the road then hop across with no regard to the old age. At 100km/h you don't have much time to react. I managed to slam on the brakes and swerve to the left just missing it. Home now, safe and sound..... but still with the need for MORE SNOW TIME!

Opportunity cost

Filed under: by Brendon Upson on 2005-07-27

I find the busier I am with the technical work, the less time I have for the real running of the business. This is a dangerous tipping point, as sometimes you can be working really hard and not actually making any money. You are that engrossed with the task at hand you fail to step back and survey the big picture. That's not happening at the moment, but it can happen easily if you take your eye off the ball for long enough.

I read a book a while back called "The E Myth Revisited" which can be distilled down to two concepts:

1. Work ON your business not IN it

2. Try to run your business like a franchise

Working on the business means doing those pseudo-tangible managerial jobs that on the face of it provide no real value. Market segementation, SWOT analysis, profitability analysis, review pricing etc.

Running your business like a franchise commodotises your personal effort. A particular role is so well blueprinted that anyone can do it. It extracts your personal expertise from the business allow the business to be an entity unto itself. This I think is the most difficult step to take, particularly for consulting companies (knowledge workers) where ultimately you are paid for what's in the head of your consultants.

Definitely the best approach is to get out of the office and go snowboarding and think about it ;-) Friday I'll be out of the office!

New feature: ComputedPage tag

Filed under: by Brendon Upson on 2005-07-26

For a long time I have been wanting to add this feature to Tornado Server. One of the things I really like about Lotus Domino is the ability to easily build a web page based on components. We supported the <P@Page PageName @P> tag from day one, but this didn't give any great flexibility because this is a static include. Imagine you have a menu panel in your web page that you would like to show different options depending on the rights or role of the person viewing the page. Computed pages make this very easy.

<P@ComputedPage name="pgMenu" value="StandardMenu" @P>

With no additional work, this will pull in a page called "StandardMenu" at runtime and insert it in place of the p-tag. Great. This is the same functionality as the <P@Page @P> tag.

Now, if the page is viewed by an administrator, in your action code you can write:

if(pSession.hasUserRole("Admin"))  ActionDocument.setItemValue("pgMenu", "AdminMenu");

Presto! the component is swapped for the "AdminMenu" page.

Not a well thought out plan

Filed under: by Brendon Upson on 2005-07-21

Last night Ed Brill was in town. Working from a small office out in the suburbs I decided it would be good to get out and meet him and some other developers, ISVs and IBM Partners.

I arrived at the "Slip Inn" looking for a bunch of people I didn't know in a busy pub. Clearly I didn't think through the scenario before embarking on the journey. I had a vague idea what Ed looked like, but no idea how many others would be coming. It's amazing how many people look similar!

Good news is I found the group of about 10 eventually and had a good yarn with most of them. It was a fun night and I got to talk tech to some new faces and hear some new perspectives on the IT industry. 

Where has all the quality gone?

Filed under: by Brendon Upson on 2005-07-20

I've noticed a worrisome trend. Quality is disappearing. Noone seems to give a sh!t anymore. Here's a couple of recent examples:

We changed our banking arrangements recently signing up for a deal where we pay a hefty fee each year but get enough of an interest rate cut to make the deal worth it. Imagine my surprise when the interest rate was cut, but no fee charged. Being responsible citizen, I called the bank to tell them of their anomoly. Imagine my further surprise when I was told by the phone support guy to go into my local branch and sort it out. Newsflash: It aint my problem, YOU fix it - I'm happy with the new arrangement.

Three weeks ago we ordered some wall tiles for our never ending kitchen renovation. They were supposed to take 3 days to arrive. Each week my wife would call tham and ask about the order only to be told they weren't in yet. Last friday we get a call apologising that our order was never sent to the supplier and if we had have called the order could have been rectified.

Much of the expensive brands are also suffering from quality deterioration. It seems that no longer buying the "name" brand is a guarantee of quality. Sure, you pay more but you don't always get more.

We need to be in total awe of the coming Chinese commercial machine. Goods from China are a fraction of the cost of other goods with quality levels at least in the "good enough" range. Our local hardware store sells powertools from fifteen dollars! How can you manufacture and ship a product half way across the world, add a retail margin and still make a profit? Be afraid, be very afraid. We have only seen the tip of Chinese capability, give it another couple of years...

The death of Java

Filed under: by Brendon Upson on 2005-07-12

What's up with Java. I love the language but sometimes want to grab Sun (and IBM) by the neck and give them a good "WAKE UP TO YOURSELF"!

When Java started out we had Java 1.0. Great. Then came 1.1. Even better. Then things started to go ugly. Java 1.2 became Java 2, but was still referred to as 1.2. (wtf?). Then 1.3 that was still 2. 1.4, still 2. Now most recently Java 1.5 referred to as 5 or Tiger. For f#&k sake. Why???? You're killing the language by confusing the very developers you rely on.

Then we compound the confusion by offering a: JRE, SDK, J2SESDK, J2EESDK, J2ME, JavaCard ...anyone want a bundle with Netbeans? Sadly this is nowhere near as confusing as trying to download IBM's Eclipse. RCP? Platform? SDK? Don't even get me started on the Eclipse API.

Hey, wait we're not done yet! Enter the libraries: JFace, J2EE, JUnit, Hibernate, JLogger, Struts ...which if you want to do anything remotely useful with your shiny new J2EE server you will need.

Wake up guys! Microsoft is kicking your @ss because they know how to make complex things simple. Sure it may not be as extensible or open or free, but it works (99% of the time) with very little effort. This is what we're trying to achieve with Puakma Tornado server. We've already built the factories and done the hard stuff so you can just get on with writing great web apps.

Computed sub-pages in Tornado Server

Filed under: by Brendon Upson on 2005-07-11

One feature that never made the finals list in the original Puakma design was the ability to have a computed sub-page. We support including pages at design time through the <P@Page pageName @P> tag, but currently there is no way to dynamically hide or show the page. This is an often used feature in Lotus Notes/Domino but not one seen often in the usual web application platforms. In Puakma Tornado Server we have a workaround which is a <P@Computed @P> tag that we set the contents of in an openaction. While this works, it's a little cumbersome if you want to (for example) show a certain set of controls to a user based on their role in the application.

My pet peeve with J2EE is that JSP make developers embed business logic in the presentaion layer and Servlets make developers embed UI elements in the logic layer. With Tornado server we have a nice split: Actions hold all the logic code, while Pages do the presentation. Obviously you can still abuse the system by coding pesentation in the logic layer but I guess we'll never get to a pure stage. Why is this important? It allows graphic designers to change the layout and presentation without accidentally breaking the application.

I think down the track we'll implement a new p-tag to do the work of pulling in design elements at runtime. The actions will still be responsible for deciding which element to pull in, but that's a logic decision anyway.

On a brief aside, last week the need arose to have a p-tag type to stop any HTML appearing on the page. In this case, we needed to change a combo-box to a plain text field and remove another control completely. To do this we added a new type of ITEM_TYPE_VOID. Perfect! You can now programmatically set the item to void and it disappears completely from the page. 

Destruction in London

Filed under: by Brendon Upson on 2005-07-08

Sad news today that another terrorist strike has occurred in the world. This one feels much closer for us since we lived in London for a couple of years between 1995 and 1997 so London is like a second home, plus we still have many friends living there.

We experienced a couple of IRA bombings while we were there (Docklands and a bus explosion on The Strand) and it is certainly an eerie feeling - you just don't know what is coming next.

Let's hope this current wave of terrorism is at an end. Our thoughts go out to all those affected by this latest atrocity.

Beers and projects

Filed under: by Brendon Upson on 2005-07-06

Last night after the final install of a solution, Mike and I hit the pub for a couple of celebratory beers. A lot of my "spare" time of late has been thinking about ways to improve the quoting/communications/management of projects, so as you can guess this is where the conversation moved. We both agreed there is a major mismatch between what we as developers see as a detailed design and what the customer understands. Talk about normalization, ER diagrams and flowcharts and watch the customer's eyes glaze over! Clearly we are speaking two different languages.

The trick appears to be to speak in terms they can understand, yet include enough technical detail that you can quote accurately and still allow some movement due to small, inevitable changes in the project down the track.

I have devised a logical design for how these two levels of communications may be met, now we need to think about how to implment this.

I don't think a document can accurately track the changes in a project. Over time, keeping the document up to date will result in a weighty tome too much to digest in one sitting. In addition, if you keep updating the document and sending out the latest copy, it's hard to see what has changed and what is new. Very soon recipients of the document stop reading it - broken communications again.

Very few IT projects I know have gone perfectly, obviously the skills we are being taught at university are not the right way to address the software projects.