Warning: Creating default object from empty value in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions.php on line 292
Joeflash’s Enigmacopaedia

Joeflash’s Enigmacopaedia


Surviving as a Flash Platform Component Maker

Posted in Business, Flex, Community MX, Adobe, Best Practices, Components, Flash Platform Community by Joeflash on the October 17th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

There is no doubt: making it as a commercial component maker is a tricky business, what with open source competition on the one hand, and Adobe being possible competition on the other. Now that we’ve defined the kinds of commercial components in the previous post, with these roadblocks, how do you make it in the current commercial ecosystem?

While reviewing recent discussions over at Grant’s blog while writing my previous post, I was reminded of a few things about successful component companies, which I recently discussed in an email conversation with Jeffry Houser over at Flextras about the matter, who encouraged me to blog about some of the points I brought up.

Now keep in mind I’ve never built a business model around making money developing Flash components, so take this part for what it’s worth; however there are a few things I’ve observed over the last decade in the Macromedia/Adobe/Flash industry about successes and failures in this area.

Most commercial Flash component makers start in one of two places:
a) they begin offering mid-level components
b) they have a successful but related business, and offer commercial components to go with their existing proprietary SAAS or server technology.

We won’t even talk about throwaway commercial components, because as I mentioned in the previous post, they should be open sourced anyways.

Starting a commercial component business based solely on mid-level components, as some have done, offers the benefit of relatively little startup capital (basically sweat equity), which gets you up and running very quickly. However, mid-level components can be challenging to hang a business model on, for a few reasons:

a) If they are “extensions,” (i.e. AcmeEnhancedDataGrid) Adobe could, tomorrow if they feel like it, come along and incorporate those ideas into the next version of the framework. In other words, your components may at some point come into conflict with FOSS components of similar functionality.

b) Which means that someone else could also, if they put in the effort, rip off your ideas, at least functionally, and present unwanted, even “illicit” competition, depending on how much they copied you.

c) The lack of phone support and strict licensing means that IT departments, used to spending big bucks to have added functionality at a minimum of fuss, might not regard it/them as serious candidates for an enterprise app, and may not even bother to dig into the API to find out if it has green threading or loose binding functionality.
(more…)

Competition in the Commercial Flash Component Ecosystem

Posted in Business, Flex, Adobe, Frameworks, Components, Flash Platform Community by Joeflash on the October 17th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

There has been some discussion recently as to whether FOSS competes with commercial component offerings, and whether Adobe is unfairly competing with its own developers. Well, the answer is maybe, and maybe. The confusion is partly due to a lack of definition as to what constitutes a commercial Flash component, which lies at the heart of the matter. In the case of Adobe unfairly competed with Grant Skinner, well… read on.

Whether FOSS constitutes competition with commercial components, it all depends on what type of commercial components we are talking about, which is the crux of the matter.

First, let’s define what is not a commercial component. Components developed under no license, or under a FOSS license is not commercial, whether they be pre-compiled SWC-type component, a component with sourcecode, or a component which is really just part of a larger open source library.

Types of Commercial Flash Platform Components

1. Amateur or ‘Throwaway’ Components:

A throwaway component is more of the “Monster Template” or what I derogatorily call “FlashKit”-style components. It’s more of a one-shot use component, often with an incomplete API, sometimes not very great encapsulation, little documentation, no support, and cheap. Great if you’re a beginner-to-intermediate developer and you need a quick fix, but not very useful otherwise. Most times these components should be released open source, if not due to their incompleteness, then because even if it is just a few bucks, often you’re just paying for some-dude’s-experiment. Commercial software needs to be up to certain standards IMO, or it should be free, and even then.

There is no question that FOSS and future Adobe framework offerings will compete with these kinds of components — but did you honestly think anyone would actually pay for them anyways? So they’re not really a factor.

Most of the controversy about competition, either from Adobe or from FOSS, is due to a confusion in the difference between what I call a “mid-level” and an “enterprise” component.

2. Mid-level Components:

A mid-level component, in my view, can be either a mashup widget, in that its innovation or rather uniqueness lies in doing something new in the realm of webservices or connectivity, like a Google Map widget. It is also common for mid-level components to be enhancements or extensions of existing Flex or Flash components, including some media players, because they enhance what an existing component architecture already does, or provides a better version of an existing Adobe or open source component.

There is a big difference between a throwaway and a mid-level component: mid-level components often have a well-crafted API, sound documentation with examples, sometimes even the source is included. And with some of the better companies, responsive help forums, and/or email support is present.

3. Enterprise-level Components
(more…)

HTML5: Yet Another (yawn) Flash Killer

Posted in Enigmacopaedia, Flash, Geekness, News, Web 2.0 by Joeflash on the July 8th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

Every few years (months?) there seems to be a newcomer on the block who incites cries of the next “Flash killer.” First there was Silverlight, then JavaFx, then Unity3D (at least until Flash 11 ; ) — and now it’s HTML 5 which is inspiring people to take pot shots at Flash.

All I have to say is: I DON’T THINK SO.

(And I’m not the only one who agrees.)

Don’t believe me? Check the timetable.
Or if you want a good laugh, the short and sweet version:

www.ishtml5readyyet.com

Oh, so you’re looking for a better reason? Have fun waiting then! :)

The Perfect Flex Workflow: Flex Builder 3 with FDT 3.2, Part 1

Posted in Tutorials, Flex, Workflow, Flex 3, Flex Builder 3, Eclipse, FDT by Joeflash on the June 27th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

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?
(more…)

Don’t Panic: The Rebranding of Flex Builder

Posted in Flash, Flex, Adobe, Workflow, Flash Builder 4, Flash Platform Community by Joeflash on the May 24th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

I’m going to throw my hat in the ring here: I think naming Flex Builder as Flash Builder is a good thing overall. Part of the challenge for developers today is that there are now so many interconnecting technologies under the umbrella of the Flash Platform, that some of the naming needs to catch up with technology, and I believe that’s what’s happening here.

The Flash Platform now consists of a technological system comprised of multiple runtimes, tools, frameworks, and languages, so that simple words such as “Flash” and “Flex” no longer suffice to differentiate what we’re talking about anymore. In fact, I personally wrote an entire chapter in our book Professional Flex 3 on describing the Flash Platform and the “Flex ecosystem of technologies” just to clear the matter up.

Personally, associating the word “Flex” with an SDK (consisting of a framework and a compiler), a development tool, a framework and an overall development methodology, in my experience has led to a lot of confusion. Using the word “Flash” generically has also lead to a lot of confusion — is it a runtime, an IDE, the file you run in the browser, or an approach to rich media development? What is Flash? What is Flex?

I think the time has come to drop the generic use of the words “Flash” and “Flex”. Or at the very least, for the sake of tech pundits and journalists who may not have the in-depth knowledge of us designers and developers, to assign the word “Flash” as meaning “the Flash Platform” or “the Flash Player”, and have “Flex” mean either “the Flex framework” or “Flash Platform enterprise/RIA development.” That would be my vote, and how I have come to think of those two words in generic terms.

In rebranding Flex Builder to Flash Builder, what we are seeing here is a move away from using the word “Flex” as describing “enterprise or RIA development in the Adobe technology space” (amongst its other uses) toward using the word to describe simply the Flex framework and associated tools. By moving back toward the use of the term “Flash,” Adobe is slowly rebranding Flex as being a subset of the Flash Platform, not a complete technological ecosystem in and of itself, which on the whole is a lot clearer and more balanced. And I’m all for making things simpler and clearer for clients to understand and adopt the technology.
(more…)

Professional Flex 3 Book Advance Launch at 360Flex!

Posted in AIR, Books, Flex, Projects, Publishing, Flex 3 by Joeflash on the May 15th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

As some of you may know, the eight of us have been eagerly awaiting the publication of our book, Professional Flex 3. Well, I’ve just received confirmation the book will be out in stores around end of May, and that Wrox will have 20 advanced copies of the book, hot off the press (literally), ready for givaways at 360|Flex in Indianapolis this coming week.

Yesterday a colleague of mine asked how our book was going, and how big was it. What I told him sums it up pretty good:

8 authors, 1400 pages, 75 chapters, 12 sections, 750MB of code, 18 months.

You can download a PDF of the table of contents here to give you an idea. It’s a hefty volume — the ToC alone is like 31 pages!!

You can also reserve your copy on Amazon now, or buy it from the publisher’s site when it’s out in stores.

Professional Flex 3 Book Cover
Authors from left to right: Joseph Balderson (me), Andrew Trice, Jun Heider, David Hassoun, Todd Prekaski, Joe Berkovitz, Tom Sugden, [Peter Ent not present]

I cannot say enough about these guys, it’s been hugely awesome working with my co-authors throughout this process, including the tech editors and all the great folks at Wrox. This has been a monumental and amazing journey, for all of us. A year and a half ago, I wanted to write the most kick ass, comprehensive and exclusive Flex 3 book out there. To really paint a broad and deep view of the entire Flex ecosystem of technologies. So after getting together seven other amazing programmers and communicators, and writing for many many months, we’ve done it. There are things in this book that you will not find anywhere else.
(more…)

Flash CS3 UIScrollBar Not Scrolling Bug

Posted in ActionScript 3.0, Flash CS3, Flash CS4 by Joeflash on the May 13th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

So I’m updating an old Flash project to AS3, and I need a quick solution to add a few scrollbars onto a few textboxes. So I get out the Flash CS3 UIScrollBar. Only problem is, it’s not working. Works in a standalone FLA, but when I bring it into my app, there’s no scroll bar, no arrows, and the component is unresponsive to textfield content changes.

The UIScrollBar class is a simple scrollbar component that ships with Flash CS3 and CS4, that when associated with a given TextField, enables you to scroll that TextField. Simple, right? Or it should be. After cursing the gods for yet another buggy Flash component — I mean, I thought the days of hacking through the Flash component set to get it to frakin work were done with! So after slogging through a few useless hacks — like purposefully populating the textfield with a gazillion line feeds to get the scrollbar to initialize, then deleting them — I figured out a solution.

There must be a bug with the component, because it was not registering new text being added to the TextField. If the TextField was populated with more text than vertical space allows before the UIScrollBar initialized, then the scrollbar would work. But this was the exception to the rule, since most textfields in the app would be dynamically populated form an XML file. So I needed a way to force an update of the scrollbar when the content in the TextField had changed.
(more…)

Converting Flash Projects into Flex


Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

When converting from a Flash CS3/4-based project, to a Flex-based project, there are not just one or two conversion paths to consider, there are many, all of which depends on the Flash project in question.

I’m on a discussion on LinkedIn, in which one guy asks if we know anyone who can do a Flash-to-Flex conversion project, which evolved into a discussion on techniques. Rather than post a pages-long reply, I thought I’d post it here instead:

First, for any Flash-to-Flex conversion to go smoothly, you’ll need at least one person on your team with a good dose of real-world experience with both Flash and Flex-based RIA projects (Flash banners do not qualify ;)), to guide the conversion process and make sure the best deployment strategies are implemented.

As far as the conversion path, there are several possibilities. Depending on the kind of project, you may want to migrate some, most or all of the project to Flex. When migrating from Flash to Flex, you’re not just migrating code, you’re migrating from a visual asset instantiation and state management environment to a purely coding-based methodology (if we forget for a second about Design View in Flex Builder).
(more…)

Indentation Guides in Flex Builder

Posted in Usability, Flex, Workflow, Eclipse, Flash Builder 4 by Joeflash on the March 17th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

When I am coding a large class file with several nested code blocks such as methods, try/catch statements, if statements, for loops, I have to use Notepad++ to have access to Indentation Guides, because this feature is not built into Flex Builder. Indentation guides are vertical lines in the editor that follow the tab stops in the document so that code blocks can be visually tracked.

To me this is an essential feature: it is a crucial element of code assist, enabling me to keep track of all the open and closed blocks. I wish Flex Builder had this feature, which is found in several other code editors. If you want to see this feature in Flex Builder, please go vote for Feature Request #17634 on Adobe JIRA:
[#FB-17634] Indentation Guides in Flex Builder
(more…)

The Case Against Ignorant Tech Analysts

Posted in Flash, Business, Flex, Publishing, Flash Platform Community by Joeflash on the February 28th, 2009

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 161

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-content/plugins/codecolorer/codecolorer.php on line 162

Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in /nfs/c01/h02/mnt/36638/domains/joeflash.ca/html/blog/wp-includes/functions-formatting.php on line 76

It seems to be a recurring trend amongst amateur or ill-informed tech pundits to take aim at misuses of Flash as an argument against using the technology as a whole. And once and a while this mis-aimed cannon of vapid sophistry also takes aim at Flex. And quite frankly, I’m tired of it.

I mean, as a Flash developer for over 10 years (now a Flex developer too ; ), I’m never shy to admit that Flash Platform applications have their limitations and misuses. There is definitely a place for XHTML applications, instead of or as a complement to a Flash-based presence, and skip intros are a no-no. And as I’ve stated before, if you’re going to publish a site in Flash with lots of text, make sure that that text is at least accessible. But if you’re going to provide an argument against using a particular technology, don’t do it as a transparent attempt at promoting your own product at the expense of another, or creating attention grabbing headlines just to get a few more eyeballs to your site. You’ll land up looking foolish, and it’s bad karma besides.

Just recently someone posted a comment on this blog in response to what he probably thought was an “anti-Flash” post. Big mistake. First, as I indicated in my response, while his initial arguments had validity, his conclusion was way off. And it seems to be common occurrence for some bloggers to post comments on other people’s blogs in an effort to garner support for their arguments without considering the point of view of the blog they’re posting on, so the argument falls flat. I’m not opposed to a little healthy debate and free speech, but this tactic is getting tiresome: I see it used so often that, aforementioned comment notwithstanding, I sometimes wonder if some of these posts are provoked by corporations as a “web 2.0″ anti-marketing smear tactic.
(more…)

« Previous PageNext Page »