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.

Wanted: X-ray future vision

Filed under: by Brendon Upson on 2005-09-28

As a systems architect you sometimes have to make a guess how things will be used into the future, mostly you get it right, sometimes you don't.

A month or so ago we implemented a "computed page" functionality which allows pages to included in other pages at runtime. It wasn't until last week that we discovered a major bug in the new functionality.

Tornado server has html fields as controls and a corresponding document item holding the data. At runtime the document item data is merged with the control and output to the browser into text boxes, lists, radios etc. Up until the new computedpage functionality went it, everything was working perfectly. 

The problem was that the choices for lists etc were stored internally on the control, not on the document item. Since the computed subpage was rendered at the very end of processing, any choices added programmatically were ignored as at that time no control existed to add the choices to (because the server hadn't yet chosen which computed page to insert). Major problem.

Now the challenge was to internally rearchitect the page rendering mechanism to allow choices to be stored on the document item instead of the control. This had to be transparent to the programmer because existing applications would break in spectacular fashion and would no doubt end in me receiving a few cranky-grams in the mail.

The good news is internally we had a major cleanout and reshuffle and everything is working as it should. Some applications had to have a few tweaks, but that was because they actually never should have behaved like they did.

It made me appreciate other products that are in version 5 or more and the legacy luggage they HAVE to carry forward in order not to break older code. It's very easy for us to look back and say "That should have been done differently", but very difficult at the time to look into the future and make a judgement call on how to implement a certain feature.

Corruption!

Filed under: by Brendon Upson on 2005-09-23

Yesterday puakma.net started behaving in an odd manner. Poor performance, using all the memory of the server and mysql abruptly abending. Not happy. Luckily I was able to shut everything down and run myisamchk to repair the system database. Whew. One thing I did notice during the check was the thousands of deleted records still hanging about in the database. I was under the impression mysql took care of all these records, but it would appear that you need to run myisamchk to remove them. I know with postgresql a regular run of "VACUUM FULL VERBOSE ANALYZE" definitely improved database performance, especially on a database that receives a lot of inserts.

Puakma.net is running Fedora Core 2 which is definitely getting old. There's been a ton of kernel changes since FC2 so maybe its time to upgrade...

A trip down memory lane

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

It's amazing how time flies! I just had a thought about how far Puakma has come and decided to see if I could find a really old backup of the system. After a few minutes of searching I found a CD labelled "data backup 17/12/01" Eeeek! That's nearly 4 years ago! Back in those days the puakma.jar file was a whopping 136KB and I had only one web application called design.pma which handled all the application development. I attempted to fire it up and discovered it was version 0.33. Amazing!

This got me thinking about the original puakma.net website. LOL. Off I go to the waybackmachine.org and dig it up. Too funny! Too ugly!

 

We've come such a long way since then. Culminating in the imminent release of the Vortex IDE. No more design.pma with its absolutely terrible UI but a real fat client rich development experience. Those of you familiar with Domino Designer should be very happy to see what's coming :-). In the next couple of months you should see:

- A new release of Tornado Server

- New, simplified website

- New documentation system

- Vortex IDE in beta

When you spend day after day hammering away at the coal face it's sometimes hard to see how far you've come. It's nice to look over your shoulder and see the path you've travelled.

Still more on Parent Pages

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

It's been a busy couple of weeks converting all our apps to use the new parent page functionality. With the Vortex IDE it takes about an hour per app to convert. The task involves creating one base page layout with a placeholder for the childpage to be inserted. Next the tedious process of touching each page and setting a parent page then changing the markup to strip out everything except the small part that makes the page unique. For an hour of tedium we now have a set of apps than can be completely rebranded by just changing one page design element. I have updated the Tornado Server BlackBook with the new info and Parent Pages are definitely a best practice!

Martin (Mr Vortex IDE) Novak is back from his OZ Experience holiday tonight, and will be working through my list of IDE tweaks and bugfixes. The official beta is really close now :-)

I have been reviewing the puakma.net website(s) the last couple of days and I think we need some major simplification and rebranding. If there are any suggestions on what you would like to see (and be able to do) on the site, please let me know.

More new stuff

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

Yesterday marked the last of the niggly things I wanted in Tornado Server but have been too low priority to worry about. Turns out they were actually really simple to implement.

First up was the issue where you set the AllowAccess role to a group and have a login page in the application that references css, images etc from the same application. Previously the anonymous user would be denied access to the resources since only authenticated users may access the application's design elements. We added a new role of "ResourceAccess" (and set the permission to "*") which now allows anyone access to the resource design elements. Login screens now look great!

Second was something of a weird feature and is also permission based. It is the opposite of the "*" permission so we called it "!*", that is, not anyone. This means any authenticated user. This makes it easy to say "allow anyone access to this app who is logged in". Not completely convinced how useful this will be, but seems like something useful that I could have done with in the past.

Some customers have been asking about ajax features in the last few days (they didn't actually ask for ajax but that is the technology they need to do the job). We'll see where this takes us... Ajax is certainly an interesting technology. 

The next Tornado Server release will be available with the beta of the Vortex IDE, probably in about three weeks.

Special Soccer

Filed under: by Brendon Upson on 2005-09-01

This year I have made a concerted effort to "give something back". As some of you may know I have a disabled sister who lives interstate with my parents. I see first hand how limited the facilities the government provides are. Funding is continually being cut and the opportunites for respite for the parents/carers is becoming increasingly difficult to find.

Simply donating money has always seemed to me to be the easy way out. I have been thinking of ways to help directly using my own effort.

I am in the process of putting together a team for "Special Soccer" designed for kids between 5 - 14 with intellectual disabilities. Believe it or not, here in NSW there is only one club which runs a team (playing against themselves). Kids come from all over Sydney each saturday afternoon to play and just for a moment they get to be like a lot of other kids their age. The competition is purely fun. No goalies, no penalties (except for bad behaviour), regular goals, own goals - everthing is celebrated!

The local soccer (football for you in the Northern Hemisphere) club will be supporting the venture, while I volunteered for the dubious task of organising it. Today I started the recruiting world of pain. The plan was to contact the department of education and get a list of all the special schools in the area. Using that list, send them all a letter explaining what we're up to. Simple huh? Nope - it was like pulling teeth! I got shuffled through no less than 5 different people/departments and now have some woman sending me something via snail mail (I don't actually know what). An electronic copy would be nice: Hello people! mail merge!?

But it is all these little hurdles that make the venture interesting. I know it will be worth it.