Riding the (Google) Wave
A big thank you to Catherine, instructor extraordinair at the Art Institute Sunnyvale for introducing us to some very interesting people, and then persuading said people to hook us up with Wave beta invitations. I was distracted by my ActionScript endeavors and so I hesitated to jump into Wave. Just the other day, I was e-mailing back and forth with a classmate when he suggested we use Wave. Five minutes in and I was hooked!
We are discussing a custom content management system that will be written in PHP and I wanted to find out a little more about his requirements. The conversation progressed very naturally using wave. Even though it feels like an instant message conversation when both parties use the system traditionally, the magic comes in when you explore the “Wiki” like nature of the conversation thread. We talked about Wave at first and then we started talking about the project. At one point we went back in the conversation and took one of the “wavelets” on a tangent. After our conversation was over, I was able to use the playback feature of Wave to watch our conversation evolve, step by step. This is an interesting way of communication but I see tremendous value.
When we speak, we are creating data. Natural conversation is linear and although the focus may be on one topic, it is hard to organize information that is laid out in a straight line. Using Wave turns the conversation into a circle. Information comes from the center and it never has very far to go to end up in an area with related information. When you consider the ability to do real-time collaboration, I could imagine a team of people having a discussion on Wave while another team works silently with the information, organizing and formatting. At the end of the session, the team would have a comprehensive set of visually appealing documents.
While I do not necessarily see Wave as the replacement for email, I am beyond excited to see what the Wave team does with it. I am even more excited to dig into the Wave API! Way to go Google, you all are champions of innovation.
To MXML Or Not To MXML, That Is The Question.
Just this past week I began to delve into the wonder and beauty that is Flash Builder 4 beta. There seems to be some confusion around the Flex/Flash Builder family but to me it is very clear. Flash Builder is an IDE that features a flash compiler along with a MXML compiler, a design mode and code editor that enables quick and easy use of the flex (and other) components. Flash Builder understands the needs of an object oriented programmer and the program contains a project management component that I have only yet begun to tap. The MXML language is an interesting hybrid of XML and HTML. The best way I could describe MXML would be that it is web design for an object minded designer/programmer. The most attractive feature of the language is how easy it is to lay out an entire application in the visual builder but also how efficient it is to link the visual components to hand coded methods and properties.
Another interesting aspect of MXML is that it is forcing me to carefully consider my public methods when designing objects. All of the interactive controls exist on the application MXML file, the event handlers are responsible for calling methods that are buried deep inside the main program code. I need to spend some more time learning about the Model View Controller design pattern because it seems that MXML encourages this.
I am excited about using MXML as a front end for my generative art projects. It will save me tremendous amounts of time by reducing the need to design and code control components. I believe that it will also help me get my projects off the ground in less time, leaving more time free for new experiments! I have been reading debate about MXML and it’s usefulness and I agree with some of the dissenting opinion. MXML is great for rapid application development but in some situations, it does encourage sloppy coding. Someday in the near future, I plan to design and code my own set of components in favor of pure AS3 applications and programs.
Six Foot Tall Tree Made of Cubes
This whole concept started with a pile of scrap book board (book board is the thick material used for hardback book covers). I had been accumulating the material for quite some time while creating “collateral” for PSRT Catering. The first cube tree happened out of chance; I intended to create an an amorphous object from a variety of random shaped. Finding matching pieces proved to be an impossible task so I cut the pieces into equal sized chunks and the cube tree was born.
The first cube tree sits on the desk in front of me as it’s new, massive big brother towers over it. Both trees have similar construction; each trunk block is a cube and there are defined ratio’s for the construction of the branch and topper blocks. The difference in construction of the new tree is that the “in-between” segments which send the blocks in different directions are all of equal dimension.
When I finished constructing the trunk shape, I fixed the topper element to the end. After fixing the branch elements on the tree I noticed that it was very unstable. I had not walked away from it for more than ten minutes before I heard a crash and turned to see the tree in pieces. I pondered the weight distribution for a day or so before deciding to rebuild the tree last night. When I awoke this morning the tree was still intact and it has even survived a trip to the window for some photography. I believe that I solved the stability issue with a stronger base and by internally reinforcing some of the trunk segments that I observed to flex in an unwanted direction.
This tree is nothing more than an interesting object but it has helped me tremendously in a programming project that I am working on.
The tree is built of symmetrical objects, it’s constructed like this to help me understand a trigonometry concept that has been difficult to master. I am interested in the positioning and movement of objects in 3D space. The simple (x, y, z) coordinate system works well for positioning but there is really no rise/run in 3D Cartesian coordinates. A few months ago I began studying Spherical coordinates in the hopes to understand more delicate positioning with a different type of coordinate system. I came to understand the notation for Spherical coordinates at magnitude for the distance, elevation for the direction pointing up to down and azimuth for the direction left to right for 360 degrees around. Spherical coordinates can be thought of as specifying a direction and then a distance to travel in that direction.
What is interesting to me about Spherical coordinates is that once you travel in one direction, it becomes very easy to translate your position to the left, right, top, bottom, backward and forwards… it is something that becomes invaluable when running around in a giant 3D arena. I am using Spherical coordinates in a Flash as3 project that will grow a tree much like the physical one I have constructed. I have built math around the size and spacing of the physical blocks to create a digital representation of my creation. By randomizing the side that the segments appear on, I am able to explore an infinite number of cube tree constructions.
Here is a look at the physical cube tree sculpture, I have yet to measure it but it towers over my 5′11″ body so I can only assume it is over six feet. My cat doesn’t know what to do with it.



