Topic: Sites to remember
Here are a few things that stood out to me the most in this great day at the greatest Flex conference on the planet:
- FlexUnit 4. Wow. Big update. Very nice new features. Time to get (back) into it. (presentation by Michael Labriola)
- Renaun Erickson’s Structured Log Testing framework. Another great, unexpected surprise. I didn’t really have plans to go to this session except that Renaun’s such a smart, friendly guy. And frankly, I’ve never really had enough interest to take a look at his work on this project so far. Boy am I glad I changed my mind. This is definitely a testing approach I can get into — much less overhead than other approaches I’ve seen. Getting going with it is only barely more work than adding
trace()calls. And the result is certainly infinitely more valuable.
Considering I didn’t come to Indianapolis with any real interest in hearing more about testing…I’m surprised to find myself so excited by what I saw today. Today is a great day for Flex testing, that’s for sure.
I also got to hear some interesting ideas and future plans from Jacob Wright and Tyler Wright. (They made me a bit jealous — I wish I had a Flex programmer brother that I could see at conferences.) If you’re in Indianapolis, I recommend checking out their “write-in” session on the Flight Framework at 10am Tuesday in the Illinois East room.
Other less code-centric, but interesting, tidbits:
- Joe Berkovitz is an avid mountain biker.
- Ben Stucki has a sweet five-year-old daughter who likes deep-fried calamari and pasta, although she wasn’t able to finish her macaroni and cheese at Buca di Beppo, where apparently even the child meals are sized to feed 3-4 people.
As I’ve mentioned I’ve been doing a lot of AIR database work, so I’ve been spending literally hours a day working in my AIR SQL query runner app. The good news is that means I’ve been finding/fixing bugs and adding features!
One thing I’ve been wishing for the last week or so is undo/redo functionality as I’m editing query text. Coincidentally, I just found out that my 360|Flex friend Jac Wright has written a library for undo and redo in Flash Player (ActionScript) text fields. The previous link is to the Google Code project; here’s his introductory blog post about the “undo textfields” library. (via Tyler Wright via Gilles Guillemin/Twitter)
Admittedly I haven’t tried this yet, and I’ve asked whether it’s been tested in AIR so I don’t know whether it will actually be feasible as-is. But I’ve got my fingers crossed! =)
I just wanted to write a quick note to say that I’ve released an update to my “Doppler” AIR SQL admin tool. You can get it from the Doppler project page. (I’ve been working on an actual real application, one with a fair amount of database work, so naturally I’ve found motivation to fix some lingering bugs and add some missing functionality.)
As with previous versions, if you’ve been using the app you’ll need to uninstall it before installing the new version. Someday I’ll add updating support, but I’m not going to promise anything real soon.
Along with this release, I’ve also made a change to how I describe the tool, and to my future intentions for it. I’ve always had it in my mind to make this a full-fledged database admin tool, similar to the tools that come with SQL Server or other enterprise databases. However, time has obviously not allowed me to do that, and in the mean time other tools have been released by other developers. I’ve found one, David Deraedt’s “Lita” SQLite admin tool that is sufficiently mature that I use it in my day-to-day work now and it definitely beats doing things by hand! There are still improvements to be made and features to be added, but when I’ve reported bugs and feature requests he’s been quick to respond and release updates.
So while I’m sure nobody’s been holding their breath waiting for me to finish the “admin tool” portion of my app, I just wanted to clarify the new direction I’m taking it — or rather, the fact that I’m not planning to take it in as many new directions! (Hence the change in title for the project from “AIR SQL admin tool” to “AIR SQL query testing tool.”)
That doesn’t mean I’m done developing this tool by any means. In past jobs where I did heavy database development, and in a project I’m currently working on that involves heavy database development, I find it very useful to have two different kinds of database tools — one for creating and managing database objects and structure, and another for testing queries. While Lita does in fact have a tab for testing queries, I personally find Doppler to be a bit (not a lot, but a bit =) more developed in that specific area. On the other hand, Lita certainly does a lot in the db management space that Doppler doesn’t do. So I find the tools very complementary in terms of my actual development work.
As always, I welcome feedback, questions, thoughts, etc. And thanks to everyone who’s already reported bugs and offered suggestions!
(or, “why I haven’t written anything new here in a looong time”)
Like so many people, my work goes in cycles (from “busy” to “crazy” to “desperate crunch”). If you’re someone who follows this site (if in fact there is anybody who does), you may have figured out that any time I go for a long time without posting, it means I’m near the end of a project (and consequently, that new documentation is coming soon).
Well, that time has arrived. With the public announcement of Adobe Creative Suite 4, we’re doing something different in terms of the schedule for releasing documentation. This time the documentation has been released ahead of time, before the product actually ships. (Primarily for the sake of search engine indexing — but hey, let’s not complain.)
Of course, a draft version of the Flash Player 10 language reference has been around for a while now, but if you haven’t had a chance to take a look (or if you want to know how things turned out in their final form), you can now view the final Flash CS4 (including ActionScript for Flash Player 10) documentation. Also, this includes several significant additions to the content in Programming ActionScript 3.0, so if you prefer to learn by reading about a topic rather than by piecing things together from the reference, then you’ll find this content useful.
Here are a few top-level links to get you started:
- Programming ActionScript 3.0
- ActionScript 3.0 Language and Components reference
- Using Flash (including what’s new in Flash CS4)
Just for fun, here is the new content that I wrote:
-
Vector class (strongly-typed arrays):
- Vector class in Programming ActionScript 3.0 (new content is interspersed with the previous content on the Array class)
- Vector class reference
-
Pixel Bender (“custom filters” — although it’s a lot more than filters)
- Working with Pixel Bender shaders (in Programming ActionScript 3.0) - plus other sections that are linked to from there, about using a shader as a drawing fill, a filter, a blend mode, etc.
- Shader class reference
- ShaderJob class reference
- ShaderParameter and ShaderInput class references
- ShaderFilter class
- plus new content in the DisplayObject class, the BlendMode class, the Graphics class, etc.
And here are some of the other new topics that I think are the most interesting:
- Working in three dimensions (3D) in Programming ActionScript 3.0
- Inverse Kinematics (IK) in Programming ActionScript 3.0
- Using the new drawing api (aka “drawing api 2”) in Programming ActionScript 3.0
So, what’s next for me? (Thanks for asking!) Since finishing the final versions of the Flash CS4 documentation, I’ve been working on some “quick start” articles around the new features. Those articles will appear in the Flash developer center soon — probably when Flash CS4 actually ships. (I’ve done one on the Vector class and one on the new FileReference functionality for accessing local files without a server round trip. Other colleagues have done cool things with dynamically generating audio and Pixel Bender — so I think it’ll definitely be worth a look.) Along with that, I’m working on new features for the next version of Adobe AIR. I also have a few side projects that I’ve been trying to make progress on as I can sneak in a minute here and there.
Back in November 2005 (yes, 2.5 years ago!) I wrote an article about how data types and type checking work in ActionScript. ActionScript is different than many languages, in that the ActionScript compiler can be used for compile-time type checking (or not), and at runtime it is a strongly typed language, but it also has features of dynamically typed languages. This allows for some flexibility but also means that you have to be careful about testing your code (because the compiler won’t always catch everything).
My conclusion (not original by any means) was that unit testing is an important tool for ActionScript developers. I’ve tried a couple of ActionScript unit testing frameworks (ASUnit and FlexUnit). And finally getting to the point of this post, I was interested to learn today that the crew at Digital Primates is releasing an open source unit testing framework for Flex, known as “dpunit”.
(via Jesse Warden via Twitter)
A couple of months ago at a SilvaFUG meeting I saw a demo of some graph visualization libraries — the kind of thing you use to create a graph showing nodes linked together according to various relationships.
The current “favorite” is the Flex Visual Graph Library (FVGL) Open Source Project.
Their Visual Graph explorer sample gives a nice overview of the functionality that’s available.
Anyway, I forgot to note this earlier, so I’m adding it now, though there’s a good chance this isn’t news to anyone who’s interested in this sort of thing.
(via email from Ted Patrick)
A co-worker and friend of mine, Francis Cheng, recently started a new blog that I wanted to share:
http://blogs.adobe.com/fcheng/
Francis is a former engineer on the Flash Authoring team (and before that, a lawyer). He’s been in his current position on the ActionScript documentation team for several years. He’s also one of Adobe’s representatives on the ECMAScript language committee, so he’s got a better idea than anyone else I know of the internals and future of the core ActionScript language.
So far his posts have been really great if, like me, you’re interested in knowing more about the less-used features of ActionScript and also getting an early look at new features that will probably be in future versions of ActionScript.
I just got a heads-up about a nice visualization component for Flex that draws links between a set of items. I’ve got an idea in mind which could use something like that, so it was nice and timely for me. So thanks, Mark Shepherd, Adobe Flex Builder engineer, for the component (and thanks to Bob Flynn, manager of the IUMMUG, for pointing it out to me).
If you’re interested in building large-scale Flex apps and not sure where to start, Brian Riggs has a nice article on Architecting a Flex App, where he gives a good overview and introduction to structuring an application using the Model-View-Controller pattern, as implemented in the Cairngorm framework.
Brian is one of two (at least so far, maybe there are more) authors writing on the Adobe Kiwi Project blog. The Kiwi Project (as stated in the tagline of the site) is a project which is working on creating “Read/Write Web Components for Flex.” I’m not sure of the details of what that means, but parts of it can be seen in the open-source NoteTag note-taking application which Brian uses as his example in this and other articles, and which is available on the Adobe Labs site.
Darrick Brown, who also writes on the site, has put up a couple of nice articles on ActionScript 3 from a C/C++ perspective. I don’t know either of those languages, although I work a lot in C# so I understood all his examples just fine. In any case he’s got what I think are some nice examples and thoughts for someone coming from any modern language.
If you bother to read this set of links, maybe you can guess what my newest potential side project is…
- JSON Spec
- JSON-RPC Spec
- Jayrock (.NET JSON-RPC Service implementation)
- Jayrock Google Group
- JSON-RPC-Java (a project which includes a JSON-RPC Client in JavaScript)
(Hint: JSON is a more-terse-than-XML format for serializing data (e.g. to transfer over networks). It’s still not as terse as AMF (which is a binary format), but there’s a good JSON-RPC service available for .NET, unlike for AMF, and it’s better than XML-RPC, which I already wrote an ActionScript client for. Oh, and Adobe just released an open-source JSON library for ActionScript 3, authored by Darron Schall, so it would seem that half the work is already done…)

