Pages

October 31, 2006

Random Pixel Toy

Updated: New version (this one runs :) - even for Mac Parallels folks). Sorry about that - improper manifest file with VC Express 2005 (or something); I'll have to look at exactly what the issue was later. The links in the post have also been corrected.

I was visting
a friend last week, to see some of the VERY interesting new work he's doing, but, as an aside (nothing to do with any real project), he had just been playing around with OpenGL on his manly MacTel box. He wrote this fun little particle system thing that treated every pixel in an image as a particle... it was very fun, but only ran on the Mac.


So (being me) I did a version for Windows - no OpenGL, DirectX, or other (though those would help), of course, just code. Its not very optimal (its only 9kb compressed) - but kinda fun to play with. You can
download it here. Click and drag in the image to see it work; press the 'o' key to load a new image.

Remember, its just a little app I compiled on my computer: there's been no QA, and it probably has a bug or two - other than that, its harmless :)

October 30, 2006

Disney Pix

Finally uploaded all the family pictures of our Disney Trip. A few little sneaks and peeks... :)

Its really a bit more of a pain than it should be - its easy to publish galleries; tougher to make sites for this type of thing. Somebody should do something (or recommend something) on that...

WPF and Rich Internet Applications

I finally decided to install .NET 3.0 so I could play around with some XBAP demos. They're interesting (for example, from the New York Times). It still seems like the primary value of "RIA" applications is (a) ease of deployment, and (b) state transitions, i.e. animations (note: WPF required link).

Whether its Flash, AJAX, WPF, OS X, etc. - haven't really seen any new interaction paradigms (that aren't fun, but useless) - it just looks prettier; you could have presented the same utility with the original Mac OS user interface, more or less. That's not the case with the transition from DOS/command line apps to GUIs.

Heck look at the Firefox 2.0 UI...

That's not a bad thing or anything, but a little surprising I guess - its been more than 20 years (at least 15, if you want to give it a few years). Evolution, not revolution...

Updated: Reminder - some "older tech" examples of richness (in Flash, DHTML, Java); some adding value - some not so much :) ... And speaking of useless but fun - here's a image/photo "sand" simulation in plain old C code :)

October 26, 2006

AOL and the AJAX Experience

The Conference that is... Looks like Will did well (no surprise :)). As discussed...

Heh. Those pesky integers....

I didn't see this at the time article was published (10/11) - but my timing was good (10/3) :)

Co-routines (as of JavaScript 1.7)

So I was playing around with some of the new features in JavaScript 1.7 - not a lot of discussion about them in the Firefox 2.0/IE 7 release brouhaha, but definitely really useful improvements there for developers.

In particular, co-routines (in the form of the "yield" operator) are the key big improvement (IMHO). The rest is mostly syntactic sugar - and in fact, most of those are indeed enabled by co-routines (which they label as "Generators").

I have to admit, though, to being a little disappointed with trying to use them in practice, for "programming in the large" with JS type things. As always, I might be missing something - but what I'm finding is that most of the time I don't want to necessarily yield to just the calling function; I want to yield waaaay up the stack. I think what I'm really looking for is a "resumable" exception of sorts- where I can yield all the way up somewhere, take some action, and then continue execution back to the yield - ALMOST there with JS 1.7 generators - but the implementation seems to be more about keeping up with Python superficially... ah, well.

Still - it does simplify A LOT of real world design patterns, so I can't complain. No denying that co-routines are a powerful programming paradigm, which I first saw in Ruby, then Python, and now JavaScript. There are even a few attempts to bring them to C - but I guess the interesting question will be how much browser adoption (in a fragmented market) of these features affects their real world utility and use.

Adobe has much less of that particular adoption problem - being a single vendor monopoly for core technology has its advantages.