Featured Post


 These days, I mostly post my tech musings on Linkedin.  https://www.linkedin.com/in/seanmcgrath/

Thursday, December 14, 2006

Circles, fifths, twelfth root of two, octaves, Pythagoras. Oh, and organisation theory

So there I was, minding my own business, Googling around for stuff about the mathematical relationships that underly the basic musical stuff I'm grappling with like chords and scales and so on.

The forces of serendpity lead me to a paper on - of all things - organisation theory. My interest piqued, I printed it and...oh my...there are puns in there that make my toes curl. I spilled tea all over myself when I hit this one: "The irrationality of melodic space simply didn't resonate with the Renaissance drive to mastery.". Great stuff!

Did you know that you you can just type twelfth root of two into Google and it will tell you?

Amid all the noise and haste...

it is good once in a while to stop and read something like this:
World's tallest man saves dolphin
One story like that a day is good for your mental health and your stress levels.

AJAX again

Jon Udell points out that the transparency of the HTTP pipeline makes AJAX inherently more automatable than conventional GUIs.
I agree up to a point. Knowing for sure that you can "hook" into the conversation at HTTP level is a powerful thing in some cases. It is directly analagous to hooking software interrupts on PCs which was all the rage, oh, 20 years ago:-) (Anybody out there remember TSRs?)

However, the usefulness of such hooks is completely dependent on how thin/thick the client side of the conversation is. In the simplest case, the client doesn't hold any state and just relays user events to the server. Such apps were highly automatable in the TSR days and are highly auomatable on the Web today.

However, as soon as you put some sort of state holding, Turing machine on the client side...Simply put, you get a non-trivial client-side state vector which is not hookable. As soon as this happens, automation is in trouble.

A really simply example. Consider a Web UI with two buttons Debit and Credit on the client side. Button Debit is only enabled at UI level if Credit has been pressed at least once. Now where does that logic - that "business rule" live? If it lives client side (highly likely) then the behaviour of the application and the semantics of the hookable HTTP events is dictated by a state machine you cannot see at the HTTP level.

In the real AJAX world of course, client-side state gets a lot more complex that this. As soon as you have started digging into the Javascript, the game is up.

  • If you are very lucky, the Javascript will have been written to be read. Most of the time, it will be essentially Vogon. In some cases, for example, gmail, it will be obfusticated Vogon.
  • No sooner will you have figured out the Javascript than a new version of the app changes it. If you are lucky, the changes will be dramatic and your app will generate unambiguous smoke. If you are unlucky, the changes will be to business logic and have subtle and hard-to-debug effects on your code

Daniel Fisher's comment to Jon's post gives a common example of the problem: forms that do not work unless the form data is processed by an onSubmit handler. There are really, really good UI/User Experience reasons for doing such things. Hence the problem :-/

Daniel also talks about driving the browser directly to avoid such problems. Again, this speaks to the heart of the problem. Will we end up having to drive client side browsers using OLE Automation or (shudder) event queue poking, in order to automate web applications?

This isn't a pleasant picture from my perspective.

It reminds me too much of my TSR days when another favourite trick in automating applications was poking keys into the keyboard buffer using (if memory serves) INT 10H.


Wednesday, December 13, 2006

Blog archive URI now implements "castors up mode"

My blogger upgrade appears to have broken the archives link.
Rummaging through the FAQ has been singularly unhelpful so far.

Tuesday, December 12, 2006

Feed fixed

The upgrade to the new blogger beta seems to have fixed my feed problem. Its become an atom feed too which is just fine by me.

Switched to new blogger beta

I've switched to the new Blogger beta. Maybe that will fix my feed problem. Maybe the feed problem will be the least of my worries. I'm about to find out.

Eclectic Enough?

Wow. Looking through the list of topics for pycon 2007. The diversity is striking. Some examples that struck me:

  • A look at the deployment and usage of Python for feature films inside of Sony Pictures Imageworks.
  • Python In Open Pit Mining Operations
  • A review of a Python application used by Computational Neuroscientists to model brain cortex.
  • pyweek: making games in 7 days
  • Python and wxPython for Experimental Economics
  • How I Wrote a Python App and Got $5 Million
  • Accessing and serving scientific datasets with Python
  • Galaxy: A Python based web framework for comparative genomics
  • Visual Python in a Computational Physics Course

and of course

  • Jython for Python Developers

Are we having fun yet?

AJAX and the hidden cost of ease of use

    "In the real world, front ends have a habit of becoming more than just front ends. They embed business rules and business logic without which, the back end cannot function. In short, the front end and the back end become inseparable." AJAX and the hidden cost of ease of use

Monday, December 11, 2006


Feed problems. Broken rss. Feed. Indigenstion. Geddit?

Anyway, weirdness in my feed has been reported. (Thanks to those who commented/e-mailed.)

Investigation of same is being insterstitially conducted in the scant grace note intervals afforded by the four letter word "work".

This posting is, in a pleasingly hermeunetic fashion, part of said investigation.