After more than ten years as a college professor, I will be leaving higher education at the end of the current semester. The decision was a difficult one. Teaching is incredibly rewarding and I’ve been doing it in some form since high school when I first tutored grade school students. Helping someone learn is one of the most gratifying experiences for me. Whether they know it or not, my students have always pushed me to continue to learn, to remember patience, and to laugh. I will miss working with them immensely.
Although I am sad to be leaving students, I am thrilled to be joining Adobe as a Senior Content and Community Lead. I will be developing and maintaining API documentation for ActionScript and the Flash Platform. I will also be working with the community to include real world examples in the reference content and to ensure the content is what the community needs and wants. This job will present new and exciting challenges that I look forward to beginning. I am also very happy to be working for Adobe.
So, next month I will sit on stage listening to “Pomp and Circumstance” and numerous speeches with my fellow faculty members one last time. I’m always proud watching my students receive their degrees and exhilarated by their excitement as they say goodbye to the college, take a deep breath, and embark on new careers. This time however, I will be sharing that deep breath with them.
Last week Adobe announced the 2011 Adobe Community Professionals (ACP). I am honored to be selected as one. For years, I have respected and admired many an ACP. I’ve attended their conference presentations, read their blogs and books, followed their tutorials… So I am humbled and excited to be included among such an amazing group of people.
As an ACP I’ll continue to co-manage the Boston Flash Platform User Group, speak at conferences, and teach workshops. I am also going to focus on finishing the series of tutorials I began writing a while ago. Once those are finished, I’ll be starting a new series about some things I have been working on with other community members.
I have enjoyed being part of the Adobe community and getting to know so many wonderful people. Congratulations to the other ACPs. Thanks to those who nominated me. And a big thank you to the Community team.
I'm frequently asked to recommend resources. Some of the most helpful online resources are blogs. I've included all the ones I subscribe to in my blogroll. Other online resources I use include the Adobe Cookbooks, the Adobe Developer Connection and lynda.com.
I also like to have a good book or two within reach when I'm working. I know that makes me old school but I like the tangible experience of highlighting text, jotting notes in the margins, "dog-earing" pages, and having multiple books open on my desk to compare explanations, sample code, etc. And I can spill coffee on a book without doing any serious damage.
Here are the books I tend to reach for while building a database driven RIA. Many of these books are also required or recommended reading for my classes. This is by no means an exhaustive list or a list of the "best" books. Its simply a list of books you are likely to find me using while I work and teach.
- Flash Builder 4 and Flex 4 Bible by David Gassner
- Flex 4 Training from the Source Volume 1 by Michael Labriola, Jeff Tapper, and Matthew Boles
- Flex 4 Cookbook: Real-world recipes for developing Rich Internet Applications by Joshua Noble, Todd Anderson, Garth Braithwaite, Marco Casario, and Rich Tretola
- Enterprise Development with Flex by Yakov Fain, Victor Rasputnis, and Anatole Tartakovsky
- Adobe Flash Platform from Start to Finish: Working Collaboratively Using Adobe Creative Suite 5 by Aaron Pedersen, James Polanco, and Doug Winnie
- Head First Object-Oriented Analysis and Design by Brett D. McLaughlin
- Head First Software Development by Dan Pilone
- ActionScript 3.0 Bible Second Edition by Roger Braunstein
- Essential ActionScript 3.0 (Essential) by Colin Moock
- Head First Design Patterns by Elisabeth Freeman
- ActionScript 3.0 Design Patterns: Object Oriented Programming Techniques (Adobe Developer Library) by William Sanders
- Advanced ActionScript 3 with Design Patterns by Joey Lott
- Head First PHP & MySQL by Lynn Beighley
- Beginning Database Design (Wrox Beginning Guides) by Gavin Powell
- Learning MySQL by Seyed M.M. (Saied) Tahaghoghi
- Beginning PHP and MySQL 5: From Novice to Professional, Second Edition (Beginning from Novice to Professional) by W. Jason Gilmore
- Flash Catalyst CS5 Bible by Rob Huddleston
One of the classes I teach is a freshman introduction to object oriented programming. I teach it using AS 3 and Flex Builder. Unfortunately, there are no textbooks that teach object oriented programming to brand new programmers in AS 3. So I write a series of handouts.
In the degree program, Web Design & Interactive Media, all students learn the core concepts and skills of web design, web development, information architecture, and usability during their first four semesters. Hopefully by that point, they have figured out where their interests and talents lie and they take the appropriate advanced electives during their last four semesters. What this means for my intro to oop class is that I have a mix of students who have some programming experience and want to focus on development and students who have never written code (with WYSIWYG editors, many have never even written HTML or CSS) and have absolutely no interest in development. It can be a challenge to say the least.
The mix of students means that the handouts have to be written at a level that new programmers will understand. This is not a computer science degree so they also don't contain many of the actual details of how programming/computers work (pointers, stacks, etc.). And certain things have to stressed more than others for a population who has grown up IMing, texting, and Facebooking (is that even a word?) where "close enough" is good enough when it comes to spelling, grammar, and punctuation. Many students really struggle with the fact that every character they type matters and there are certain rules they just have to follow.
I'm posting the first handout I give on an introduction to variables. I know many of you are well beyond this basic introduction. But maybe some could use a refresher. A few of the emails I've received lead me to believe that a few readers are brand new to oop. So, I'm going to try to balance the RIA development material with an intro/review of oop concepts. If this mix doesn't work, just let me know. Otherwise, happy coding!
Its the end of another semester (yes we go year round) which is always a very busy time. I just haven't had time to finish the post on descriptions, requirements, and user stories I intended to have up this week.
Instead, here are two oldies but goodies that are related to that unfinished post. Enjoy!


Frequently when people find out what I teach, a how-to question or an email with buggy code attached isn’t far behind. Lately there’s been an interesting change in those questions and emails. Rather than asking me to find the bugs in their code or how to code something, people want me to tell them where they went wrong now that they are “stuck” in a half-finished project. Others tell me about ideas for RIAs that they don’t know how or where to start building. Some are generally overwhelmed by the idea of building an entire application.
I’m familiar with these issues. I’ve struggled with them. I watch students struggle with them almost every semester. I’ve worked through these issues and have helped students work through them too. This experience has taught me that most of the time these issues are related to application design and development – actually, the lack thereof. Without having a solid understanding of what needs to be done and a plan for how to achieve it, successfully completing projects on time and on budget is much more difficult.
There are a number of good resources on the various topics of application design and development. However, most of those resources use Java, or Rails, or a C based language in the examples. Many people building an RIA with Flex/ActionScript don’t consider using those resources due to the language difference.
Please correct me if I’m wrong – I don’t know of any ActionScript or Flex resources dedicated to application design and development. Joey Lott and Danny Patterson’s Advanced ActionScript 3 with Design Patterns does includes a chapter on designing applications. Object-Oriented ActionScript 3.0 by Elst, Jacobs, and Yard includes chapters on planning and project workflow. On his blog, Ted Patrick has some good posts related to problem solving, application design, and development workflows. Each of these resources are extremely valuable, but none provide an in-depth, soup to nuts discussion of application design and development.
So that’s what I’m going to try to do here. I’m about to start building a new RIA and will document the entire process in a way that will hopefully be helpful to some. Starting with the idea and ending with deployment, I’m going to show how I work through the entire design and development process. Please ask questions, make suggestions, and share your own experiences.


