C++ Basic Framework Design for a Simulation System
This set of code is derived from the work performed building the Direct2Learning Java Avionics training platform (now defunct).
It uses multiple inheritance, however base classes are pure virtual effectively to provide interfaces.
The code sample is missing the complicated ExecScheduler which is where the scheduling of modules is performed. Writing the ExecScheduler is reasonably complex - it needs to work with threads and provide timing. I've got a Java version of this which is at the end for illustration.
Removal Of Control in object oriented systems
Removal Of Control is a mechanism that will improve the usability, reliability and readability of code. I use commonly, it's similar in what I'm achieving but very different to IoC. The defining difference for me with ROC is:
Removal Of Control allows objects to be less tangled.
The ends squeezing the middle in object oriented design.
Often when designing anything it is all to easy to forget the simple fact that when you add 1 to a number you will eventually be doing ADDQ.L #1, D2.
I follow, but not rigidly, the following rules of thumb
If you have a design with 2 classes you probably should be writing something procedural.
If you have a design with more than 30 classes it's probably time to revisit the design.
Breaking rule of thumb no.4
I've just realised that effectively I'm breaking my own rule of thumb No.4 "You don't need to write an application framework", and here I am writing one.
View update complexities
On a page where there are lots of views but all from the same entity there is an interesting challenge when an individual item is updated within a view. Normally this is catered for during a full postback simply because the entire page is recreated dynamically, so it is enough that the post is processed during the construct phase.
However this isn't true when we are using an ajax update to modify an item.
ZXAF Development notes
ZXAF is really the culmination of a lot of individual techniques that I've used in many different developments.
So, I decided to pull of these together into a project, release it as opensource, and continue developing it with a view to doing everything the right way. It is a development without a timescale or a budget, and its nice to be able to spend time on pure development.
Flash always ontop of page content.
I had this problem today with Flash (SWF) content appearing ontop of a JTip popup. I tried changing the z-index within the CSS, but it didn't work, it took me a long time to discover what needed to be done to fix it, but basically it was quite easy;
1. Add the following parameter to the OBJECT tag:
<param name="wmode" value="transparent">
2. Add the following parameter to the EMBED tag:
The dangers of global variables revisited because of PHP.
In 1985 after about two years of full time programming I had an epiphany; realising that global variables are a very bad idea. Roughly 20% of the bugs that I kept finding were down to abuse or misuse of global variables, so I stopped using them, apart from the time when you really should use one (e.g. for a pointer to global shared memory that never changes).
So here I am over 20 years later, and I've just realised exactly the same thing, except this time it's in PHP not 'CORAL' '66'.
The danger of the using words new latest and old updated newer in any names
The danger of using the words that relate to time and freshness in names, such as old,newer,latest and updated.