About
This is a regularly-updated blog documenting myself and my progress through my PhD in developing a modelling language for interactive web applications.
Contact me via e-mail.
Follow me on Twitter: @soundasleep.
Thesis Status
Important Feeds
12 February 2010
3.04pm
IAML 0.4.2
Version 0.4.2 of the IAML Modelling Platform has been released.

It adds the concept of Entry Gates and Exit Gates, preventing access inside or outside a session without first co-operating with a given requirement (currently only other pages). This example demonstrates using an Entry Gate to prevent viewing pages until a disclaimer page has been viewed; and this example illustrates an advertisement being displayed before the user can exit out of the session.

Pages have now been renamed into Frames. In the future, this will allow Frames to recursively contain other Frames, which may be replaced using particular wires (the exact specifics have not been decided yet).

I think the next milestone will be on adding support for sending e-mails (a fundamental requirement of web applications).
9 February 2010
3.32pm
Google Code is Slow
Is checking out your Google Code-based project slow over Subversion? Apparently it's a known issue since November 2009, but the fix is pending...
3 February 2010
7.00pm
Profiling the Performance of IAML Test Cases
I was interested in improving the performance of my test cases, so I decided to write a few profiling methods so I can analyse what is taking the most time (the first fundamental rule of optimisation: know what to optimise). The preliminary results (executed only on a single large test case of 9 test methods) are interesting:

overall test times

13% of the time is spent inferring model elements;
54% of the time is spent executing code generation;
4% of the time is spent copying previously generated (cached) code generation files;
and 29% of the time is spent actually navigating the generated application.

However, these results are affected by the code generation cache. If I only consider the first test method (i.e. there is no way to reuse previously cached information), I get a more accurate representation of the necessary time for a single test case (which does very little web application navigation):

initial setup time

Here we can see the initial inference time and the initial code generation time - notice they are identical (in seconds) to the overall test time.

If we remove these constant costs, we can get a picture of the average cost per test case:

individual web actions

12% is spent loading from cache;
11% is spent waiting for AJAX calls to return; and
70% is spent navigating around the application otherwise.

More investigation is necessary to actually see which parts of my tests I need to focus optimisation on (by profiling the entire test suite, for example).
Read Thoughts (1) -
27 January 2010
6.00pm
Formatting a Report in Latex
Ah, Latex - you come from a world where content-presentation separation was novel, and things were done in crazy stack-based assembly languages.

It took me the last five hours to work out how to get my thesis draft formatted in a different font. Quite ridiculous.

This week I am looking at working on a draft on my thesis. I want to understand how much work I have ahead of me.
12 January 2010
4.00pm
ASE 09 Presentation
As mentioned two months ago, I attended and presented my research at the ASE 2009 Doctoral Symposium in November. I have now put the submitted paper and the accompanying presentation online; they may be accessed through my Research page.

2009-11 ASE 09 DS Presentation Front
Music: Opeth – The Leper Affinity
Read Thoughts (1) -
1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 ... 19

All page and entry contents are the property of their authors.
All other code, images and intellectual property is copyright © Jevon Wright 2006. All rights reserved.