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.

How to get a promotion

Filed under: by Brendon Upson on 2006-03-31

In the spirit of "show and tell thursday" here's some career advice that I have distilled from my years in gainful employment. This may run contrary to anecdotal evidence, but I assure you that following these two simple tips will get you a) more money b) more respect c) "allowances" (like flexi-time) d) opportunities. Here we go, they're so simple it's ridiculous.

#1: Make the boss look good

This is the controversial one that most people disagree with, but I can assure you it works. You need to push all your ego aside and make your life about making your boss look good. Why? Bosses control your working life: money, flexible working arrangements, fringe benefits, ... If you make them look good there's no way they want to let you go so they shower you with these benefits in order to keep you. Remember once you go, they stop looking good and then they get no benefits. Aha I hear you say: they'll trap me in my current job and stifle my advancement! Not so. Very soon, everyone will notice you are the boss' right hand man/woman and they will want you too. Offers will roll in and other opportunities will appear. Until that time, the boss will keep throwing money at you in order to keep you happy.


#2: Make it easy for the boss to make a decision

The absolute worse thing you can do is go to the boss with a "What do I do about X?" question. The boss has to then do all the background investigation and thought processes to identify what X is then all the possible effects of choosing one option over another. Make their life simple. "Hi Boss, I have a problem with X. I have done some research into the issue and see that 1,2 and 3 are possible options. I think 3 is the best because ...". This  shows a number of things: you understand the problem, you have weighed the options determined a good solution, you value the boss' time (see #1 above!). My wife suggested some bosses may persecute the employee for having their own thought process or ridicule the suggestion. If this is the case, quit; noone likes to work for a complete dickhead.

Notes Developers and Java

Filed under: by Brendon Upson on 2006-03-30

Mikkel Heisterberg has posted a blog entry titled "Is the lack of Java skills in the Notes/Domino developer community the Achilles' heel of IBM?". Short answer I think is no. Domino 7 on Eclipse really has little to do with Java. Java is the language Eclipse (and Hannover) is written in but should by no means have too much to do with the application languages written in the Hannover client.

But. Why do Domino developers shun Java?

I think there are a number of reasons:

  • The Notes Java IDE is clunky
  • The Notes implementation of Java is clunky - everything throws an Exception so its try/catch a plenty
  • The Notes implementation of Java does not do its own garbage collection - this breaks one of Java's basic principles and can cause some ugly memory leaks or exceptions if you recycle something too early
  • The Java language has been over hyped and overloaded with acronymns which do no more than to confuse newbies (and create some elitism for the so called "hard core" java developers): struts, jlogger, jface, velocity, sax, j2se, j2sdk, j2me, j2ee, jre, jvm, ... (yes I know some of those are libraries but they still serve to confuse - newbies have trouble determining what is a core part of the language and what is an addon)

Traditional Java programming emphasises objects aplenty. Factories to make factories, interfaces, superclasses, ... As developers in a business environment who are required to deliver relatively simple applications that are easy to maintain this approach is severe overkill.

I believe Java as a language has a lot to offer. Programmers would be doing themselves a favour by learning how to use it. We just need to scrape away all the crap and mystery and just maybe developers will embrace it. 

The coming of the Vista

Filed under: by Brendon Upson on 2006-03-29

Reading a post this morning titled "Why Windows is so slow" (NY Times, crappy ads, be patient although the wait isn't actually worth it) go me thinking.

The cry is that Windows is so slow because of all the legacy crap it carries forward to each new version. Your badly written DOS apps still happily function on Windows XP right? This legacy support is being blamed for why Vista has not been completed and why OS X runs much faster and is seemingly "more innovative".

Here's the flip side: Windows has a MASSIVE market share BECAUSE of its legacy support.

Imagine the pain and expense companies would have to endure if their custom software written in Visual Basic 3 wouldn't run on Windows XP because some of the APIs have been deprecated. This is a key selling feature for Windows. If customers had to throw out their applications with each new release, then the relative pain to moving to the next Windows version would be the same as moving to a new operating system completely. MS would lose customers by the million.

Such is the paradox of a platform developer. Drop legacy support and lose customers or maintain it and increase the complexity of the platform. I don't believe MS has much choice and unfortunately with each new release there are fewer and fewer compelling reasons to upgrade. MS Office is suffering the same fate - for most users the functionality in Office 97 is more than sufficient. It's kinda funny to see the lean agile Microsoft of the 80s has developed some middle aged spread, becoming as tangled in red tape as the IBM it took on back then.

Swimming in treacle

Filed under: by Brendon Upson on 2006-03-27

It's been a messy few days. Trying to get ADSL2 connected (Damn you Telstra!) :-/. Left my Apple mighty mouse at home today and had to use the uuugly microsoft laptop mouse :-( Built a gate and a fence to keep the dog in :-) Got the last of the parts for the server rack so all the servers finally have a home :-D

And now Tornado has hide-when blocks

Filed under: by Brendon Upson on 2006-03-17

As a long time Domino developer there was a lot to like about the Notes platform. One of those things is "hide when" formulas. For you non-Domino folk, this allows you to arbitrarily hide or display text and fields on a page based on some criteria. For example: if you are a manager you get to see a certain set of buttons and some info that are hidden from regular users. This is a feature I had been planning to add to Tornado for some time but had never been able to come up with an elegant and obvious way of implementing it, so hadn't. Yesterday I had the epiphany and in about 1.5 hours it was all done.

One thing you can't do in Domino is nest the hide-when blocks, but in Tornado you can.

Read all about StartHide and EndHide here.

Looking back on the week, Tornado has taken some great leaps forward :-)

Busy week

Filed under: by Brendon Upson on 2006-03-15

Boy, it's been a busy week! The new Web Booster Enterprise Single Sign On software has been getting a fair old pile of interest and we've been working flat out to help out customers setting up their environments for a password-prompt free nirvana. Unfortunately everyone's environment is quite different so dealing with the queries and working out how to solve them is a challenge, especially since the customers are in other parts of the world, it's not like we can just pop over and take a look first hand.

We now have a new record for Web Booster on big iron. One european customer is running Web Booster ESSO in an AIX machine with 64 cpus and 248GB of RAM. We're not expecting any performance issues ;-)

For many moons now it has been troubling me as to how to explain how Tornado is so much better than Domino/Ruby/PHP/WebSphere/.NET/... OK, I KNOW why it's better but was at a loss as to how to articulate those differences. The answer is now clear. Tornado Server makes building COMPLEX browser based applications a snap.

EXAMPLE 1: You need a web application to capture a person's details. Forget Tornado. Domino or Ruby will do the job much better. This web app is the equivalent of filling out a form and putting all that data into a single (Notes) document or single row in a table. This is not the area where Tornado excels so there's no point even trying to demonstrate how it's better at this type of work than Domino or Ruby. Tornado will certainly do the job, it'll be quick but won't seem as slick to develop.

Where Tornado's power kicks in is COMPLEX web apps.

EXAMPLE 2: A project we are developing for a customer is used to manage the financial projections of their various construction projects. From a security perspective only project managers can access their own projects, area managers can view all projects in their region, management can run all reports. Each project has a pile of costcodes (a few hundred+) and contains monthly forcasts of each projects cash position. Over the life of each project (perhaps 50 projects a year) it may generate around 100,000 rows of data in the database. Would you even attempt this in Domino? God no. Could Ruby handle it? Maybe - but you'd sure have to kick the hell out of the scaffolding to bend it to make it do the job. PHP? Maybe, but it would be a mess - it's a huge project and you'll be scattering your logic through the html code. .NET? Maybe, but you're now tied to Windows and for this project the customer has selected Linux and PostgreSQL. WebSphere? Anyone who's done a serious J2EE project will tell you the development isn't cheap and the cost of WebSphere aint trivial. This project is like a rich desktop app, but delivered through a browser and Tornado really excels in this space.

We all know application documentation vanishes when a project completes, too bad for the poor schmoes who have to support it. In Tornado we have taken great pains to ensure it is almost self documenting. The data dictionary is a part of the application's design. Project documentation can be attached to the application and each time you copy or move the app, all this metadata goes with it - in one single .pmx file.

I think one of the fundamental mistakes we have been making in our marketing message is "throw out what you currently use and switch to Tornado". This message is plain WRONG. Install Tornado alongside whatever you are currently using and use it for those difficult apps. If you use Tornado alongside Domino you get a number of immediate benefits: Single signon out of the box (log in to one, automatically access the other), use Domino for authentication and authorization (all your users and groups are in there anyway, right?), runs on all the platforms Domino runs on (and more), very similar development model to Domino so a much shorter learning curve for developers than a leap of faith to J2EE or .NET.

A Tornado Server you can play with

Filed under: by Brendon Upson on 2006-03-09

We decided to release a public "sandbox" for having a play with Tornado Server. We have SUSE linux running inside a vmware partition which hosts the sandboxed tornado. The idea is people can have a look at how Tornado works (and frighteningly) be as destructive as they like. Every couple of days we'll blow away the Tornado install and replace it with a new fresh copy.

I have no idea how this will go! Fingers crossed people will not use this for evil. If we find the service is continually abused it will be removed. Take a look now at:

Login: sysadmin
Password: password

Bear in mind people may change the sysadmin password or delete important design elements or do any number of other completely destructive things a server administrator can do, but the point is, this is a full working Tornado Server that you have admin access to. You can use your Vortex IDE installation to access it too, thus if you want to have a play with development it is now super easy. The sandboxed Tornado is on a slow 256Kbit link, you may need to be patient.

I am an individual

Filed under: by Brendon Upson on 2006-03-03

I have been running / cycling to work these last couple of weeks and it provides plenty of time for reflection (and sweating). My realisation this morning was that I don't like to be identified with groups. I think I am the ultimate non-conformist. I don't want to be labelled. I also realised this is a bad thing.

People identify themselves by the groups they belong to. I am continually reluctant to identify myself with any group, ergo noone knows how to define me.

Another bad behaviour is I always do the things people say are impossible. The best way to get me to do something is to tell me it's not possible. Like building an application server for example. Or, when I get the idea to do the Variety Bash instead of doing it in a car, I buy a huge truck and commit myself to an impossible deadline to get it ready. Why? I guess because I don't want to be an "also ran".

Some behaviours need to change methinks. Belonging to, and identifying with, groups is important.

Example journal app

Filed under: by Brendon Upson on 2006-03-02

Jake Howlett over at codestore.net worte a simple Ruby on Rails app based on the Notes journal template. This was the drive I needed to do the same. In no time flat I created the journal app based on Jakes ruby design.

Writing the same app in a number of different frameworks is a great way to show the relative power of each - and their weaknesses. Thus a programmer familiar with PHP can compare the PHP version with a Tornado or ruby version and get a good understanding how the new framework goes about getting the job done.

The journal app will make it into the default Tornado install package.

New software galore!

Filed under: by Brendon Upson on 2006-03-02

Yesterday we released the long awaited next version of Tornado Server and Web Booster. Tornado has a long list of updates and fixes over the previous version and is easily the best release yet. We added two new features to make your life easier too: The ability to reset the sysadmin password from the console and we now bundle the SOAPDesigner.pma web application (for use with Vortex) as part of the default install (this means less to do when you try it out).

We also updated the download manager application to now make registrations optional. We appreciate that a number of people don't like to part with their email address just to try something out.

Our new office in Parramatta has now been open about a month. It's a great spot and I have been taking advantage of its proximity to home by cycling (and occasionally running) the 8km to work. This is so much more enjoyable than driving (and cheaper because I don't have to pay for parking!). Best item in the office is easily the coffee machine.

In the move we have been looking at doing some things a little differently. Our new single sign on software requires some complex infrastructure to be built quickly so we can test out customer scenarios. We decided the best way to get this done was to use vmware on SUSE linux 10. Very happy so far - Suse is an awesome distro and vmware works just as you would expect it to. Now I just have to get the servers into the new racks....