Interview with Frank Zammetti, Part 1
Recently I had the opportunity to talk with , author of a number of programming books. Recently, Frank’s book Practical Palm Pre webOS Projects was released by Apress. Read on to learn more about him than you ever wanted to know!
Frank, you’ve written quite a number of books on programming. Can you tell us about your background and how you became interested in programming and, specifically, about writing about programming?
Well, let’s see… I’ve been programming in one form or another for over 25 years now. I started back in 4th grade (don’t remember the exact year and I ain’t doin’ the math!). My school wanted to start up a “computer program.” They picked the top, I think, 5 students, of which I was one at the time (that didn’t continue too much beyond 4th grade!) and asked if we’d be interested in piloting the program. We said sure… I remember the first thing we did, on an old Commodore Pet, was write a program to calculate the area of a triangle… of course, I had NO idea about the math at the time, but being able to make these machines do what I wanted was really cool. I remember finding another kid (named Frank ironically!) in the lab one day and he was writing a program to make a guy do jumping jacks, all character-based graphics. I thought it was the most awesome thing ever! Long story short, a few weeks later every other kid quit the program except me, I was totally hooked I then started doing sort of the typical “old-school” kind of stuff: writing games on old 8-bit machines, starting with the Timex Sinclair 1000, moving up to an Atari 800XL and finally a Commodore 64, which is a much larger topic for another day. I spent a lot of years doing straight Assembly coding, really getting down and dirty.
Flash-forward to some time around 1992 when my “professional” career began. A few consulting gigs, then a regular full-time position that I’m actually still in. I started out doing Windows development, VB, VC++, FoxPro, all that stuff. I even did some mainframe work, COBOL and EasyTrieve, that sort of stuff. Some time around probably 1995 I discovered this “Internets” thingie. I got permission to create the initial Web presence for my company, and they were thrilled even though, as you can imagine, it sucked pretty bad Soon after that I created our first intranet site, which is where I really started to learn a ton of stuff because I pretty much was allowed to do whatever I wanted! All sorts of new technologies and learning tricks and whatnot.
Now, the book… that’s a more recent thing obviously. A few years ago Apress came to me, based on some articles I had written and put out there, and asked if I wanted to write a book on AJAX. Of course I said sure, why not, having no idea what the hell I was getting myself into! Now, I’ve never been a best-selling author or anything, but I guess my books sell well enough that they keep asking me back. I somehow have gotten up to six published and am getting ready to sign a contract for two more. Some day I’ll sleep again, but I have no idea when.
When did you first hear about the Palm Pre and webOS?
I first heard about the Pre early last year, I’m sure around the same time as everyone else. Apress again came to me and asked if I’d be interested in writing a book on it, given my previous experience with both Web development and Windows Mobile development. I had heard whispers about webOS before then, but that’s when I really started looking into it.
So, what were your first thoughts upon getting your hands on webOS?
My first thought, not to be melodramatic about it, is that this could really, seriously be a game-changer. Not to toot my own horn, but I know I’m not the only person that can say this: the idea of what is essentially an operating system built on a browser engine is something I’d thought of before. It’s a pretty natural evolution in my opinion. Palm really delivered on that vision in a big way. It’s kind of a shame that Google gets all the press for ChromeOS when Palm really beat them to the punch. I thought that the development model webOS presents is really something special that could have a huge impact. The idea that developers can take their existing, current skills and almost immediately be productive on a whole new platform is a huge deal. Not to mention the fact that webOS is pretty darned sexy to look at and use too!
I’ll be honest, I’ve always been a fan of Windows Mobile (or PocketPC, as I still like to call it). In fact, two things I miss big-time from my WinMo days is being able to fully work on Office docs on the go and voice memo recording, two things webOS is currently missing. But, it was pretty obvious in short order that even though not having those things is a trade-off, it’s ultimately one in webOS’s favor. So, my first thought was simply “wow, this isn’t just another mobile platform, this could really change things.” Time will tell if that initial reaction was accurate or not, but I’m definitely a believer.
Your book Practical Palm Pre webOS Projects was the second webOS programming book (behind Palm webOS by Palm’s own Mitch Allen). Was it difficult writing about a technology that was evolving so quickly?
Yes it was! I think the bigger problem I had though was simply dealing with inaccuracies in Palm’s documentation or things simply not being documented yet. This is completely understandable given the timing of writing the book, but it definitely made matters… interesting! I don’t doubt there are some errors in my book as a result of this. I wound up diving into the Mojo source code a bit more than I would have liked at times because I felt like I had a responsibility to the reader to at least try and disambiguate things that I felt weren’t clear coming from Palm. It’s possible I got some things wrong though, and that’s something I’m never happy about when I write. But, it’s all a direct result of, as you say, writing about something that is changing rapidly.
I got lucky in that there was only one SDK bump during the writing of the book and it was fairly minor, didn’t lead to many revisions. There’s one or two things that I’m sure I didn’t cover simply because there wasn’t time to revise that much, but the situation wasn’t too bad. I should also point out that Mitch Allen was quite helpful during the writing of my book. I only bugged him maybe twice with questions because I didn’t want to be THAT guy. But he put me in touch with an engineer once or twice to get some questions answered, and he helped solve one sticky problem pretty quickly, so I definitely should thank him for that. So yes, it was difficult… but at the same time it was very fun!
One of the things that I really love about webOS is that it’s so new, people are still figuring it out, finding the boundaries and how to push past them. This is especially true of game development, which is a topic near and dear to my heart. It’s a bit like the “good old days” in that regard: what can and can’t I do, and how do I then make the impossible happen anyway? Being Web technology-based makes the development cycle a lot easier too, in fact I’ve often worked on a piece of code on a desktop browser and then quickly and easily ported it to webOS. Makes life quite a bit easier.
You mentioned that you had to look at the source of Mojo (the framework that webOS applications use). How important do you think it is that the source for that framework is available for developers to look at?
I think especially at this point it’s VERY important. Palm’s documentation has been steadily improving, which is what you’d expect and is great to see, but it’s still lacking in places. Even if the documentation was fantastic I think there would still be value in being able to examine the source. There will always be things that the documentation doesn’t tell you that the source code does. In some ways it’s a larger question… I know recently that there was some debate over at Ajaxian about whether the time of “view source” is over. I’m on the side that says the web became as successful as it is because people can look at each others’ source and learn from it.
The same is true of Mojo. The same also, I think, is true of applications themselves. Of course, as it stands now, it’s extremely easy for a developer to look at the source for others’ applications. Palm seems, based on the cryptofs stuff added in the 1.3.5 update, to be moving to block that. I for one hope they don’t. I can understand developers wanting to protect their IP, and of course stop piracy as much as possible. But, I think the trade-off is maybe a bit too much. If you see a neat trick in an application, being able to understand how it’s done is very valuable if you want a platform to be successful.
It’s a tough question for sure, and I certainly see the other side’s point of view too. But yeah, being able to look at the Mojo source code AT LEAST is very important I’d say.
Who is your book aimed at?
The book is aimed at people who already have a decent knowledge of CSS, HTML and JavaScript and have at least played around with webOS a little bit. You don’t need to be an expert in any of these things, but it’s not really meant for absolute beginners either… In particular, if you’re a beginner at JavaScript you’ll probably have to spend time jumping back and forth between the book and some online references to fill in the gaps. You also have to be the type of developer who learns best by looking at real code and tearing it apart. If you are looking for short, targeted, contrived examples of specific things then this book is definitely not for you. Instead, it will give you the whole picture: how you create an entire application, how all the pieces fit together, etc. You’ll also be able to see all the problems that I encountered as I wrote the code and how I overcame them, which hopefully saves the reader a lot of time and effort! The things you learn will be learned within the context of the larger application… There’s no section on all the details of implementing a List for example, but you’ll see all those details as the applications are explored.
Interestingly, I myself generally don’t learn as well this way! I tend to prefer those simple, contrived examples of specific concepts. Then again, I’ve been doing this programming thing for a LONG time now, so the bigger picture is something I don’t typically struggle with, but the details obviously change all the time and that’s usually what I’m after.
Stay tuned for Part 2 of my interview with Frank Zammetti.






















