Special

Clearance Sale!

We've been publishing for over five years now and it's time to clear out our inventory of back issues, so we're slashing prices!

RBD Magazines

Check out this amazing clearance sale of all our past issues. Missing some issues? This is a great time to complete your RBD collection. Save up to 40% off the regular price of our printed back issue packages. These prices are only good until the end of the year May 2008 and supplies are limited, so place your order today.

Article Preview


Buy Now

Print:
PDF:

Feature

Meet John Balestrieri

The life of a REALbasic software consultant

Issue: 4.1 (September/October 2005)
Author: Marc Zeedar editor-at-rbdeveloper.com
Article Description: No description available.
Article Length (in bytes): 13,658
Starting Page Number: 14
RBD Number: 4109
Resource File(s): None
Related Web Link(s):

http://www.tinrocket.com/

Known Limitations: None

Excerpt of article text...

You've done some high-profile projects with REALbasic. How did you get into computer programming? I grew up in New Jersey and my education, from grammar school through college at Pratt Institute in Brooklyn, New York, always leaned toward art and design. It was only after college that I seriously took up software design and programing. However, I first knew that I wanted to work with computer and computer graphics as far back as the fifth grade, after seeing a demonstration of the Apple II in math class. The demo consisted of a BASIC program written by the teacher's son which animated the drawing of a fire truck. As it started to run, that was the moment I became hooked. Over the years I used many of the high level development environments (AppleSoft BASIC on the Apple II, TGS Basic and AC/BASIC for the Apple IIGS, MicroSoft Basic, HyperCard and SuperCard for the Macintosh, and Prograph) before hearing about a great new IDE called CrossBasic. CrossBasic, as it turned out, was everything I had been looking for for years and finally finding it was a great relief. What did you use it for initially? Over the years I had played around with writing simple 3D graphics applications, even using HyperCard to write one. After a period of learning the language, I started to write another 3D graphics application. This time however, I felt I could do it right by developing it in a fully object-oriented environment. I used RB for several in-house projects and one commercial software product at the design company I worked at for my day job. After hours, I wrote a lot of programs to explore various areas of computer graphics, the biggest project being a 3D editor environment where I worked out a lot of my ideas for how I thought it should be done right. The application supported selection and editing of all level of geometry, from vertex to mesh. It included a scene-graph manager for grouping objects, as well as a set of tool 'snapping' behaviors that, when coupled with a geometric constraint engine, let you control the manipulation of objects in a very controlled manner. During the final phases of the project, I started using OpenGL to do all the drawing. It was very empowering to move from a user of 3D graphics software to an implementor. I've always used 3D design packages but never really liked the way the user interfaced with these programs. My motivation was to improve on all terrible interfaces I had to use over the years. I think I did that, but I also gained an appreciation of the kinds of hard decisions those developers had to make too. How did you end up working at REAL Software? I had been developing with RB for a few years at that point, even managing to finish the 3D application I started in CrossBasic. REAL Software had an opening for a testing position and the timing was right for me to be involved with software development full-time. I did mundane stuff: bug reporting and verification mostly, with the occasional design opportunity, such as drawing the bunny icon for the Run menu. However, I really enjoyed working with RB on a day-to-day basis and the friendships I made at REAL Software are priceless. After six months I ended up wanting to move from Austin, Texas back to New York City, primarily for family reasons. I continued working for REAL Software full-time but remotely, for a few more months after that. REAL Software was a great place to come to work everyday and I still miss it a little bit. What did you do next? I was faced with choice of finding another full-time job or starting a software consulting business. Deciding to start my own business was a difficult choice to make because it was the harder of the two, but I knew it would give me the most flexibility and control over the work I did. I was also fortunate in that my first job opportunity came right away, when I was able to take over the maintenance and development of a suite of RB-developed applications that are used by K-12 students to improve reading skills. The applications are based on a client/server setup. The server side uses a SQL database and a network protocol. The client applications are used by the students to take the tests and log results with the server. Finally, an administration client application is used by the teachers to manage the students in the database and print reports. There are almost a dozen applications in the suite which were developed by different developers over many years. So, in addition to whatever skills are required to maintain the existing functionality, there is the need to be able to deal with (most undocumented) legacy code. That is the hardest part of the project because you really feel like you're messing with something as delicate as planetary alignments -- there's no such thing as "simple fix." What other kinds of projects did you get into once on your own? While working the REAL Software booth at Macworld Expo NYC, I met Jesse Simko of Sawblade Software who stopped by to show RS a game and game editor he built. It was pretty amazing stuff but the REALbasic SpriteSurface was a major performance limitation for him -- he had dozens of absolutely huge sprites and several layers of parallax scrolling going on. I started speaking with him and offered to write a simple spritesurface replacement using OpenGL which would give him faster frame-rates and "free" rotation, scaling, and alpha transparency. I started on this project after Macworld but shelved it after it started to become a larger project than a "simple spritesurface replacement." What I felt was needed was a completely modern sprite engine with a time-based animation controller, better collision detection, etc. and that meant a whole bunch of new paradigms that would have made it unsuitable as a simple swap-out replacement for the existing spritesurface. I felt that anything less, such as creating a functional replacement for the SpriteSurface that just used OpenGL rendering, would have been a waste of time. When I had the time to work on this project a year or so later, I was able to put the time required into an API and feature set that felt like it was part of RB in its power-to-ease-of-use ratio. I released SuperSpriteSurface 1.0 in May of last year, and I'm working on the next major release which, in addition to adding new features, now supports Windows. How has SSS been received? Are there big projects created with it? I'm pleased that it is being received well and that is very important motivating factor in preparing the upcoming release. SSS is being used in the ways I expect, for game development, but there are users who are using it in peripheral ways which I never anticipated, such as for vision research. To bring the story back to the beginning, Sawblade Software's Power Game Factory now uses SSS to drive the sprite animation. At REALWorld 2005, REAL Software showed some slides of the impressive graphics work you did for the Associated Press in last year's U.S. elections. How did that project come about? The Graphics department of the Associated Press (AP) was charged with producing maps and graphics for the upcoming 2004 democratic primaries and 2004 general election and needed a way to take the AP election data feeds -- raw results provided over a network in 7.5 minutes intervals for different region levels (state, county, town) -- to produce 2D and 3D graphics of the data and results. I entered the picture as an outside consultant to provide the software they needed to take the data feeds, aggregate some high level results, and output the graphics they would publish. In this case there was no off the shelf software, other than a programming environment, that could have done the job. REALbasic allowed me to bring together the pieces of the project quickly and keep it centralized. Mac OS X helped a lot too: for input, my software got the feed data as Zip archives from an FTP server. I merely had to write some code in RB to create a Shell object and use a built-in console application to download the data and another to un-Zip it. At the output end, REALbasic also centralized and orchestrated dozens of small AppleScripts which were needed to produce the final delivery files. The AP would be publishing hundreds of files in a night and wanted the whole graphics creation process automated, creating files that were ready for editor approval. Mac OS X's UI scripting filled in any holes in a third-party graphics application's AppleScript implementation. What kind of graphics did you start with? Were you provided basic maps? Did you output vector graphics or bitmap? I devised a templating system that allowed the graphics staff to design their 3D project files and 2D page layouts. These files were tagged in various ways that would later allow my software to swap out graphics, labels, or data. Most of the swap-outs were done via AppleScript, but in the case of the 3D graphics files, I instead parsed an XML version of the 3D scene document, placed the real data, then saved the document again. When the 3D document was loaded back into Cinema4D, there were little scripts attached to each 3D object that looked at certain data values and changed a property of itself such as height or color. The rendering of the 3D data graphics was one area that could not be fully automated, so a designer had to do that and export the bitmap image. All of the other graphics were vector based templates, with final vector output. Wow! That sounds really complicated. How smoothly did it work? It did this every 7.5 minutes? Did it keep up with everything? How many graphics did it create that often? The data stream was updated every 7.5 minutes, but graphics needed to run less frequently. All the graphics were destined for use in print by member papers, so when a graphic was moved was determined by a combination of printing deadlines and news-worthness. The whole process was constantly tested in the run up to election nights, so it was known in advance what type of lead-time the software would need to produce a graphic and what the AP staff would need to once the files were created. The software was also designed to run on separate machines, so any particular machine would just be processing a handful of states at a time, or just working on the national graphics. There really was no room for uncertainty, and certainly no room for failure. Were you on site live, during the election? Yes. The interface was designed to be very straight forward so any staff member could use it with a little orientation, but during the first few primary elections, I operated the software on site. Later on in the primaries it was operated by AP graphics staff and I was on call if needed. For the general election (which included the presidential race), I was on site for the whole day, night, and morning after the election. The staff were trained in the operation of the software so I was able to move about and make sure things moved smoothly between the different groups using the software. Each part of the project had very short project durations: one month for the primaries graphics application, two-and-a-half months for the general election graphics application. This was from the starting time -- picking up the first specification document on the data feed -- to final testing and delivery, so everyday was exiting. I set a very rigid time table at the beginning and just worked through it. It helps to have a few strategies in mind when working on particular problem, because often your first or second choice in how to deal with something does not work out for one reason or another. You can't be left scrambling for a solution when you have a tight deadline so it's better if you can just switch gears and keep on moving. When the election nights came it was the culmination of a lot of intense work. The AP staff I worked with who did the journalism and created the maps, templates, and content were very professional and worked just as hard to make sure that everything was a success. There were some hiccups associated with the live roll outs, both due to internal and external causes, but that's why I and AP staff were on hand to take care of them. The primary elections were smaller events, occuring every few weeks in early 2004, so what was learned during those nights was applied toward the general election night in November. Are you going to do this again for future elections? What changes would you make for next time? I would love to and I hope to be given the opportunity to do so again. Any changes I wanted to make in the application were made for the general election. The application was rewritten for the general election because there were scalability issues that did not have to be addressed for the primaries, nor was there time to address them in time for the primaries. One major change was that the application for the primary elections used XML data feeds. This allowed me to write the application faster than if I used database feed files. The speed penalty associated with using XML files would be mitigated by the fact that only a few states would be holding primary elections during any one night. For the general election, I had the time to write a proper solution that would scale well for the amount of data that we would have to process, so I used the database-ready data feeds in conjunction with a SQL back-end. Impressive stuff! What advice would you give wannabe consultants on becoming an independent software consultant? ??? Thanks for your time, John. Good luck with future fun projects!

...End of Excerpt. Please purchase the magazine to read the full article.

Article copyrighted by REALbasic Developer magazine. All rights reserved.


 


|

 


Weblog Commenting and Trackback by HaloScan.com