Over the past week I have been getting the Blerby Test Runner to a stable 0.5 release and redesigning blerby.com to look and feel better.
My development area has changed, still messy but whatever.
Desks
And the whiteboards!
Over the course of the past 6 months, I have been doing heavy research into some of the current 'cutting edge' frameworks and web2.0 'stuff'. To my understanding there is a huge deficiency with MVC and have found it first hand while working on a huge codebase modification to Seagull. I do not have anything personally agaist Seagull, but the current state of MVC itself.
Research has been done into functionally complete domain objects aka Naked Objects, However this does not fit the bill for web development in most cases. Perhaps a mix of the two would allow locking the system down for certain users, while allowing admins/maintainers to directly modify the 'Entities'. There is also a notion of having a controller especially for this. The problem with splitting the two is duplicating the code and it seems a losing battle to even have a controller in the first place. Unless it's for static text or an object that has a single context and can be viewed only in one way. This also assumes that the object cannot/willnot be extended at which point developers are forced to either upgrade the controller to use this new extension. Finally from what I can see the best case is to extend the controller to utilize the new extended object.
To me this seems like a problem that should have been noticed + fixed. Unfortunately I have not stumbled upon much related to this topic.
The (re)search continues.
As I began delving into ActionScript 3 this weekend I realized what a great language it is. The object orientation is a huge bonus over ActionScript 2.
However being a total ActionScript 3 noob When it came time to load remote images I was up against google as I initially could not find how to do this in the documentation. What I finally found was the quite amazing Loader() class. Thank you object orientation. With this bad boy you can load remote swf's, images, and pretty much anything else you can think of (assuming you operate within Flash's security zone).
So the code is as follows (Load a remote image):
package {
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
public class LoadImage extends Sprite{
public function LoadImage() {
var l:Loader = new Loader();
var url:String = "http://google.com/intl/en_ALL/images/logo.gif";
l.load(new URLRequest(url));
this.addChild(l);
}
}
}
As always, it's easy once you know how. In this case its hardly log-able, but if it helps someone then great.
NOTE: If you decide you want to use event handling/callbacks with this method you must attach the events using <loader>.contentLoaderInfo for instance:
l.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
...
public function onComplete(e:Event):void
{
addChild(l);
}
NOTE: your loader's scope must be within the current class level for the onComplete function to have access to it.
(EOF) Tmpvar
I have been messing around with blender a bit these days working on a nifty model for sproutware / blerby. Since blender allows for scripting in python it immediately caught my eye.
I found a nice little tip for windows + efficiency
apparently you can make windows automajically load + keep in memory dll's which I would assume speeds up certain scripting languages. This is done by adding the location of your dll to "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs" in your registry.
I am curious if this would speed up php on my box...
(EOF) Tmpvar
I sat down today with a demo version of max/msp 4.6 and came up with this simple random tone generator. I have hardcoded the values which 'worked' for me in order successfully share the experience with you.
"Max/MSP is a graphical environment for music, audio, and multimedia."
I however have not touched the surface of even the audio portion. The 30 day demo is just not long enough.
You can find out more about Max/MSP here
You can paste the following code into a new patcher and it should work just fine.
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 28 26 23 9109513 135;
#P message 53 57 18 9109513 14;
#P message 48 251 23 9109513 300;
#P number 39 192 35 9 0 0 0 139 0 0 0 221 221 221 222 222 222 0 0 0;
#P newex 5 281 53 9109513 overdrive~;
#P newex 6 159 101 9109513 rampsmooth~ 150 510;
#P newex 5 223 27 9109513 *~;
#P newex 5 191 27 9109513 /~ 2;
#P newex 6 125 27 9109513 +~;
#P toggle 6 27 15 0;
#P newex 6 57 32 9109513 metro;
#P newex 6 95 57 9109513 random 100;
#P user ezdac~ 15 328 59 361 0;
#P newex 4 251 36 9109513 cycle~;
#P connect 7 0 0 0;
#P connect 8 0 6 0;
#P connect 6 0 7 0;
#P connect 0 0 9 0;
#P connect 4 0 3 0;
#P connect 3 0 2 0;
#P connect 2 0 5 0;
#P connect 5 0 8 0;
#P connect 9 0 1 0;
#P connect 10 0 7 1;
#P connect 13 0 3 1;
#P connect 11 0 9 1;
#P connect 9 0 1 1;
#P connect 12 0 2 1;
#P window clipboard copycount 14;
I have spent the majority of the day creating a snazzy unit testing setup (web based) and also for phing + cron based continuous integration. There is still much more work to be done, but I do have some semi-eye-pleasing results.

I did take part of this from Seagull although the majority of the testrunner core code needed to be rewritten. I also moved the location of the tests to make SVN activity lighter for theme development and the like. I have converted a couple tests over to PHPUnit (3.2RC1) and am loving it.
A bit on the ranting side, I tried to get ahold of Sebastian (PHPUnit creator) but I was clearly ignored. I had been having some problems with the size of some error messages that are being returned. I like a very minimal yet funtional interface (CLI is my home) and when I found out that I wouldn't be able to dump my tiny context filled nuggets onto the screen it really killed a small part of my enthusiasm.
Back to the grindstone...
(EOF) Temporary Variable
I have been in search of a javascript toolkit that is minimal, quick and stays out of my way. I found this toolkit speed comparision page: http://dev.jquery.com/~john/slick/
I ran these tests on the following three browsers under WinXP SP2
(As according to the page I linked to above: the lower the score the better)
| prototype 1.5.1 | jQuery 1.1.4 | MooTools 1.2dev | ext 1.1b1 | dojo query | |
| FF 2.0.0.8 | 156 | 407 | 155 | 734 | 339 |
| IE 6 SP2 | 1754 | 1065 | 1423 | 966 | 782 |
| Opera 9.10 | 93 | 206 | 108 | 203 | 97 |
| Total | 2003 | 1678 | 1686 | 1903 | 1218 |
It would appear as though dojo is the quickest toolkit out of the 5 although some of the queries error. I assume that dojo will become increasingly more error free as it nears version 1.0. This benchmark is in no way complete as there are many other javascript toolkits out there. However this is a nice start, and I hope it helps someone.
(EOF) Temporary Variable
- EDIT -
Re-tested with less CPU/MEM load.
Just the other day I realized that it was imperitive that I buy a new whiteboard for development purposes. Couple hours and $30 later I had one...
.jpg)
This is a picture of the development center, and you can see the massive size increase from the whiteboard sitting on the ground below it. We even put a tray on the bottom to hold markers and such. YAY. You can buy the whiteboard material at home depot for $12 and the rest of the process is pretty easy if you have a table saw and some 2x4's.
Development continues...
(EOF) Temporary Variable
I broke down and created a litestep theme.

This is a modified screenshot, but you get the idea.
On a different note, I'm currently finishing up the core of a forum based on entities. I should have some basic results later tonight.
Oh yes, and before I forget. I created the least useful field ever. Radio buttons.

Using entities, this field was a snap. This is probably the best case scenario for this field (testing only), but it was Nice to see a field come to fruition with the very minimal amount of effort. 50 lines of PHP and some templating, and the end result allows for validation as well as other fun stuff including unlimited number of options (YAY).
Seagullers / Nuvola users may notice the icon set, which is quickly changing as soon as I can get the graphic artist in gear 
Thats all for now.
(EOF) Temporary Variable