Tuesday, March 9, 2010

Rapid Prototyping with RevRun

In San Francisco for GDC '10 and taking a break from sessions after Microsoft gave me flashbacks of graphics class in a talk on block compression methods in texturing. Ouch. So far this GDC has been a significant improvement over the last. Not sure if the economy's pickup, better planning, or the free Google Androids are to blame, but the whole sphere is teeming with eagerness, the air electric in anticipation.

While on the plane I fiddled around for about 3 hours with a new language called Revolution (the IDE is called RunRev). It's a GUI prototyping language that boasts a more "human" syntax. My conclusion: RunRev is a cross between Visual Basic and Python that's good for prototyping but not yet ready for the mainstream. As always, the good before the bad.

A list of stuff Revolution is good at:

  • it's really fast to get a handle on

  • it has a pretty GUI system with an intuitive script flow

  • it can toggle between build and run-time mode fluidly

  • it has plans to launch a Mobile converter that will address Android, Blackberry and iPhone



Why Revolution isn't ready:

  • It doesn't have a very robust or complete API. For example, it has a datatype called "point" which is any two numbers in a certain context separated by a ,. While there were a lot of functions built around the manipulation of the point, I could not for the entire 3 hours find some way to extract the x or y coordinate specifically from this basic datatype. If I wanted to do that I'd have to create and maintain custom Point object.

  • The language itself was a headache to learn because it intentionally tried to break a lot of the conventions programmers are used to. This was to give it a more "human" syntax, but it really just frustrated things in a lot of places.

  • The IDE itself failed more than expected.. often I couldn't open windows and had to restart.



So, here's the little sample game I built(you'll need the plugin). To play click "restart". A ball will enter the screen. Click the screen near the ball and it will change the ball's direction. Your objective is to get the ball into the hole.

The original idea was to have the ball bounce to a direction depending on the angle it hits the pointer at (the pointer representing a finger on the iPhone), but because I couldn't extract the necessary information it just bounces in a random direction.

Verdict: Revolution is a decent prototyping language, but there are better ones out there, and it's not yet ready for full scale production usage. I'll stick with Flash for iPhone and C++/Java for Blackberry/Android, perhaps visiting Revolution from time to time.

Saturday, March 6, 2010

Math

Mathematics is the science of drawing relationships between quantifiable entities. i.e., x^2 + y^2 = h^2 is a discovered formula for finding the width of sides in a triangle (or triangular object, such as a wedge or ramp). It does not necessarily mean it is the only formula, but in theory, any formula intent on finding the width of 3 sides of a triangle using the other sides as components could, through mathematical operations, derive the above formula.

Now, if someone can explain to me the usefulness of integrals, I would really appreciate that.

Thursday, March 4, 2010

Morning Roast

So, a webcam, as we all know, is that thing that sits on top of your computer that records your pretty face and sends it shooting across the interwebs to various chosen (and some unchosen) destinations. In our office it's used as a mirror that peaks over our head to let us know who's walking around behind us (we live in cubes), necessary as it's good feng shui to always have your entrances visible.

As with many things in the early tech world, the webcam started as an in-house tool for computer engineers. A regular camera's feed was sent over the local network at the University of Cambridge and provided a little 128x128 live update to monitor a coffee pot in what was deemed the "Trojan Room". The Trojan Room was far away (probably two doors down or so) from some programmers and the web cam provided a quick way to see if the pot had coffee or not to determine if a trip would be worthwhile. Read some more about it here.