I’ve long wanted to use FDT to turbocharge my ActionScript coding, but without Flex MXML support I couldn’t justify the cost of getting both Flex Builder and FDT. Then FDT 3.2 came out this past May — finally I had an answer to my prayers with FDT’s new MXML support. And I actually won a copy of FDT Enterprise at 360|Flex Indy: total awesomeness! Now I could decide if once and for all I could get rid of Flex Builder in favour of FDT.
So I tinkered with FDT, converting some of my old projects and seeing how they compiled and ran. And for the most part it all went off without a hitch. I was really quite impressed with FDT’s new Flex capabilities. Also, I had been using Flex Builder for the occasional Flash Professional project for code editing, and FDT now makes that sooo much easier, much like SEPY used to do back in the day.
But it was not to be. Shortly after porting over a Flex project I’m working on, I realize I’d gotten used to having aspects of Flex Builder available in my workflow. Like certain Flex project settings, and the Profiler. Maybe later on I’ll explore the enterprise features of FDT like the Debugger or the SoS logger, but for now all I want FDT to do is gimme that sweet coding savvy which Flex Builder sorely lacks. I mean, there isn’t a single Eclipse-based IDE or plugin I’ve seen which comes anywhere close to the sheer overwhelmingly awesome coding intelligence and snippet templates of FDT.
So what I’d like to be able to do is use FDT for coding both AS and MXML files, and use Flex Builder for the actual compilation, debugging and profiling. And of course the faster compiler and the Network Monitor in Flash Builder 4, when it’s released.
So how do I get the best of both worlds? They’re both available as plugins, so I should be able to install and use them both, right?
In the past few weeks I’ve written two free tutorials on Community MX that guide you through the process of compiling for Flash Player 10 in Flex Builder 3. One shows a Flex project compiled for FP10, and the second shows a Flex-free AS project compiled for FP10.
This article shows you how to install the latest stable Flex 3.2 SDK, and from there configure Flex Builder to compile for Flash 10 using the latest playerglobal.swc file.
This article shows you how to create an ActionScript project in Flex Builder compiled for Flash 10. It also shows you how to remove references to the Flex framework, so you can use Flex Builder for compiling pure ActionScript 3.0 projects without worrying whether you’ll “accidentally” use a part of the Flex framework. For those resisting the Flash CS4 upgrade, you may not be able to compile for Flash Player 10 in Flash CS3, but you can in Flex Builder 3.
Whilst doing some research on the mysterious MainTimeline class, I bumped into this really neat site which has all kinds of cool tutorials on using advanced math to craft Flash animations and effects. It’s also got some pretty decent beginner’s tutorials on the AS3 and Flash CS3 in general.
On their site, they indicate,
The website evolved from our ongoing project sponsored by the National Science Foundation and the Mathematical Association of America whose purpose is to empower educators in math and sciences to create web-based teaching materials using Adobe Flash. As a part of this project, we have been developing a collection of ActionScript 3 tutorials.
Wish I had this resource in High School…
In the process, we have dicovered that these tutorials are of interest to the general Flash developers’ community.
The latest addition to the Flex 101 series is now available on Community MX. In this tutorial we go into the Event subclasses — what they are, when and when not to use them, complete with examples. We describe when certain event classes are dispatched from component interactions, what classes to type to depending on use, and the event class package and inheritance structure in Flex 2.
I do like writing books, Sam I Am… I would write them on a train, or in a plane, in a tree, they are so good, so good, you see!
I am writing this partly in response to Jesse Warden’s post “I Will Not Write a Book“, partly in response to all those enquiries about helping out with the upcoming Professional Flex 3 book, partly to share my experience for all those writers-to-be.
There are several reasons not to write a book, as Jesse mentions:
- the money generally sucks
- it’s a huge effort
- the return is not tangible, or obvious
- I could be playing XBox
For me, though, there are several more reasons to actually write a book or pen a tech article. The most obvious one is that I’ve always loved writing, and have kept a journal with miscellaneous thoughts and ideas since I was 14.
I also love to teach, even though I don’t do that much of it these days. I caught the teaching bug by giving private Flash lessons back in 2002, and achieved one of my dreams when I worked at Humber College in 2005-2006 as a Flash instructor, and later as an Adobe Trainer with New Toronto Group. I love watching students’ eyes light up as they figured out a key concept in class, almost as if I could see the light bulb going off in their heads. Sharing in that Eureka! moment is what makes teaching very special for me. Giving a lecture or seminar, or penning an article or writing for a book holds a similar fascination.
I also remember being inspired by the Visual Quickstart Guides and Friends of Ed books back in the Flash 4 and 5 days, by so many authors. I still get inspired by a good “Flash” book. My latest favourites are Head First Design Patterns and ActionScript 3 Design Patterns.
Now that I’ve learned a thing or two worthy of sharing with others on their learning path, to have the opportunity and the potential to inspire others, knowing that somewhere I will have contributed to more Eureka! moments as I have been inspired and coached, is a real honour. That is mostly why I write.
In describing motivations, I won’t use the word “selfless”, because I dislike thinking in those terms, for me it reinforces the notion of martyrdom — if writing for you seems selfless, as in thankless, as in feeling like a martyr to the Great Hordes of N00bs, you’re missing the point IMO.
I would also not describe the motivation as one of ego. Sure, it’s nice, seeing one’s name in print or a book on the shelf (which I have yet to experience, but I’m sure it feels good ;)), one’s name on a course completion certificate as the instructor, or an article in a reputable journal. It’s a validation, a reward for all the hard work of sharing the work and building community and paying it forward that to me says, “see, I’ve done something important, I’ve built something.” But if you let this feeling of validation, of recognition become one of the dominating raisons-d’être of your teaching or writing, the result becomes some twisted, misshapen thing funnelled through the lens of your own selfish need for gratification. I’ve seen a few developers who take the stage go all starry eyed after a few lectures, and have even fallen prey to that beast myself on occasion. Writing is also similar in this respect.
Make no mistake, more often than not the money totally sucks. As Jesse pointed out, I also could make ten times more money in consulting. It’s a given that people don’t write books for the money, it’s more of a fringe benefit than anything. That’s not to say that tech writing is completely without tangible payback. Sometimes, the money is actually pretty good, even if it isn’t a primary motivator. I don’t think I could stay committed to the hours it takes to consistently produce well-written tutorials for Community MX (with a little help from the editors ;) ) without some reasonable renumeration. At first it was hard work, but after two years of writing two or three articles a month, you develop shortcuts and tricks for quality writing that make the mechanics of it less of a chore, such that now writing for that publication is actually a pretty decent part time job for me.
And the other month my agent brought me a book for which the advance was equivalent to a few months’ salary, which granted is not the norm, but it made the proposition an interesting one to be sure — I could do it part time for four months and maybe have to either lessen my consulting workload or work 80 hours a week, or I could just take a few months off and do nothing but write the book. As it turns out the commitment was too great, so I turned it down in favour of the Flex 3 book I am currently writing. So it can pay, not nearly as well as consulting, but it can have a financial benefit to offset some of the long hours.
I won’t blow sunshine up you arse and tell you that I’m not doing it for a little self-promotion as a freelancer. I think every author is in it for that angle to some degree, whether it’s for one’s own consulting business or the company you work for, even though it’s not something we like to advertise, lest people get the wrong impression. There is no question as to the networking angle: I have gotten consulting gigs based my writing exposure, as well as the many other ways of meeting people such as workshops, lectures, conferences, training sessions and discussion forums. So there is definitely a benefit to improving one’s visibility in the community.
There is also the spirit of sharing, which I equate less to “a selfless desire to build community,” which is more a result than a motivation, as it is a desire to share some awesome thing and totally geek out on the coolness of some shiny new toy. Which to my mind is very similar to the drive programmers have to develop open source code and blog about their discoveries. It’s announcing to the world, “hey check this out! Isn’t this like, SO COOL DUUUUDE! Geekout, man!!” (okay, I would never actually say that, it sounds dumb, but you get the idea.)
And then there is the self-exploration angle. Someone once said, “I write to know what I think.” * For me, there is a very direct and personal gain I get from writing. Because this particular book I’m writing now is on the cutting edge of the technology, it feels a little like writing a PHD thesis (not that I’ve ever written one, mind you), where you log the results of experiments investigating new territory, with empirically verified results for other scientists to replicate. And in every tutorial I write, no matter how basic, I always discover something new, reinforce something I thought I knew, and boy, do I ever know it well now. So writing actually makes me a much better programmer. In fact, I don’t know how I could remember half the stuff I know without having written about it.
* I’m killing myself trying to find the author to that original quote. If anyone knows who said it please let me know. Some days the internet feels like a billion terrabytes of utter shiite when you’re looking for something that should so obviously be there.
I am excited to be writing my first book on Flex 3 with a group of superbly talented individuals, none of whom need another book under their belt, believe me. The fringe benefit of writing this book with such brilliant people* is that I would have never met them otherwise. And writing these past two years alongside the likes of Tom Green, Stephanie Sullivan, David Stiller and many many more has been a huge huge honour, and to be considered a close acquaintance and even friend by some to be an even bigger honour still. So another benefit to writing is meeting such cool people.
* Sorry I cannot announce who else is on the team at this point because the co-author lineup has yet to be finalized)
So to summarize, to me the benefits of tech writing in general are:
- I get to inspire others and share in their victories
- I get a warm and fuzzy feeling of accomplishment
- I get to geek out on sharing cool shit I’ve discovered, or cool shit others have discovered
- sometimes it actually pays
- I am a much better programmer as a result
- I may even get a contract or two from the exposure
- I get to meet cool people in the industry I’ve admired for years
And if everything I’ve been coached on by my estimable colleagues and my agent is of any indication, writing books is indeed hard work, make no mistake about it, so I can see how one could get burned out on them if you don’t balance your life. Granted, most of my experience is in article writing and teaching for the moment, so my enthusiasm for book writing may be premature, but somehow, with the proper perspective and balance, I think these words will still ring true for me in a few years to come.
When evaluating enquiries in response to my call for writers, if the first question in the email was “what’s the compensation,” forget it, out to lunch, not even worth a reply. Or if the email did not contain a link to any work or writing of any kind, ditto. You’ve got to give something to get something. So I apologize to those whom did not get a reply to their queries; many of you did.
You’ve got to be passionate about sharing knowledge to do technical writing, and it can’t come from a place of ego or martyrdom, and you’ll need to balance your life carefully to go the long haul. Humility and generosity are huge must-haves if you’re going to go into this. One starts in the writing biz much like in programming: at first you get volunteer, pro-bono work, like tech editing or making a contribution, eventually making a name for yourself in training, teaching or publication writing, and eventually graduate to being asked to co-author or write a book on your own. And it need not be a thankless job without tangible recompense: if the money is not good enough, hold out for another book, another writing avenue, or go into corporate training.
It’s a long, arduous road, but if you’re passionate about it, it’s worth it in the long run, so I’ve been told, and based on what I’ve experienced thus far on the path, I am certain that is completely true.