Archive for the 'Flash' Category

Adobe’s love of shotguns…

Adobe seems to have a love of shotguns, namely pointing it at itself and/or it’s users and pulling the trigger.

***

I’ve been pretty vocal about my dislike for the present CEO. I sold all my Adobe shares (just to make that clear).  And I really think Adobe is doing EVERYTHING it can to kill itself – which is a shame because they have a lot of good products.

So recently on Slashdot there was a discussion of Adobe’s handling of a Photoshop CS5 bug. Where Adobe’s solution is “Pay us to upgrade to CS6″
https://www.adobe.com/support/security/bulletins/apsb12-11.html

Now some might point out the fact that CS5 was released 2 years ago and CS6 is the second version since CS5 (with CS5.5 in between). But let’s consider whether that is legitimate justification.

CS5 was released in April 2010, followed by CS5.5 in April 2011. CS6 was just released this April. Let’s say you bought the top of the line “Master Chief Suite”.  The upgrade cost from CS5.5 is $550, and from CS5 – over a thousand $$$$.

But let’s say you bought Adobe CS5 suite in March 2011. You’re now on the hook for over a $1,000 just to secure your 14 month old software suite.  That’s pretty damn petty IMHO.

I already dislike how tiered Adobe’s upgrade path has become.  Essentially they’ve kept the the high upgrade price while moving to a shorter upgrade cycle. And tiering the upgrade based on the version.  But it used to be that upgrades were available to the last two cycles. And I think it should still be that way.  Instead, Adobe is trying to get $500/year, every year from it’s users.

Why this is bad?  $500/year isn’t bad if you’re an active business with a high production rate.  But it’s very bad if you’re an independent or part time user (ie: many of us with a 40 hour a week day job that DOESN’T use Adobe products) and you just want to stay in the game and stay current with Adobe technology and do the odd job here and there.   It then becomes cost prohibitive; and why is this bad? Because it means people like me will fall behind on Adobe’s technology platform and cease maintaining the skillset,  in other words, shrinking of Adobe’s developer base – and that’s a VERY BAD thing.

Adobe is becoming an extremely greedy company under it’s current leadership; and a foolish one to boot.  I’ve long advocated for the removal of Adobe’s current CEO and a replacement with someone who better understands the present digital world.

SOLUTION: Release a reduced developer edition of CS Master Suite. The developer edition requires that you sign-up as an individual programmer. It gives you a limited license. Full featured, but you can only produce personal or not-for-profit products.   Make it cheap!

This is similar to the licensing that Adobe did with giving away Flex Builder in 2009 to anyone who was unemployed.  That was a REALLY cool thing, and I give Adobe HUGE Kudos for that. 

Adobe’s Flash, although oft criticized has a tremendous amount going for it technology wise. But it’s been mis-marketed, managed, and like Coldfusion is kept from it’s potential.  I truly believe Adobe is going in a direction that will ultimately lead to it’s eventual demise/purchase within a decade’s time. Where as I believe that Adobe if it were to take advantage of certain opportunities in his playing hand could propel itself to a position of near rivalry with Apple and Microsoft.  But so far, I haven’t seen them do ANY of the right decisions they need to do for that.

:-(

 

Is Adobe missing a great opportunity?

Adobe, has an opportunity to hit back at Apple. I believe Apple has clearly shown that they have no interest in working with Adobe, and that no amount of good effort on Adobe’s part will win Steve over.
I am of the opinion that Adobe should begin supporting the counter-culture following of the iPhone.  Presently, there is an iPhone community that has jailbroken their phones. Applications are available for the iPhone that do not go through the iTunes store.
Perhaps it is time for a large company to come on board with this community. Adobe could do a lot, they could help facilitate a greater outlet.  An app market that doesn’t require Apple.  One in which the only products that are delisted are those that are actively malicious.  Sure it won’t be the protected game of golf Apple’s been courting.  But maybe a little rugby on the iPhone is what we want!
I am not sure whether it’d be best for Adobe to build their own store front or to partner with something like
RockYourPhone.  But either option could shake the core of Apple’s world.  Think of the draw such a store would have, especially if Adobe were to make Flash Player available in such a store.  Adobe would simply have to put a few ads in prominent places and overnight it’d become the most installed iPhone app.
Meanwhile, Adobe’s CS5 platform could offer an alternative means to writing apps. One that us PC owners could utilize.   Such could completely legitimize the jailbroken community. At the very least, I think Adobe should release the Flash Player for jailbroken iphones at this point.
It’s at least create a lot of headache for Apple.  And I think Apple has no good will toward Adobe.
I believe the biggest mistake Adobe could make at this point, is NOT to escalate this into a war. To merely sit back and accept what Apple dishes is foolish.  It’s like sitting at a dinner table watching everyone else get served as the host ignores you.  There is no point in treating such a host as a friend anymore – cause they aren’t.
And Adobe would be foolhardy to allow themselves to be relegated to the sidelines.  Simply releasing Flash Player to the jailbroken community would keep Adobe in the game. I thought their CS5 strategy was a good one, they were trying to play within the rules. But when they finally admit that they just don’t want to let you play, it’s time to start your own game.
And I think Adobe is the #1 player with the means to help free the iPhone from Apple’s totalitarian dictatorship.

How to enable CNTRL-T tab in Flash

We’ve all been there.  Casually browsing online, viewing some Flash powered site. We see something and we want to Google or Wikipedia it. So we hit CNTRL-T.

Brain Crash!  Nothing happens and it seems like our brain is just hanging there in a suspended state waiting for the event to complete – but it never does.  Finally some try/catch error handling in our brains goes something like this.

Try CNTRL-T
Catch (failed to launch tab)
If Flash
Go Duh!
Click URL Bar
CNTRL-T

It’s always bothered me as I do not understand why this is so. Yes, I understand Flash is sandboxed. But come on…usability. Can’t anything be done?

Yes! Sort of…

Below is code to facilitate creating a new tab window. It’s not the prettiest solution, nor is it a complete solution. But blast it – it’s a START!

First you will need to listen for the “applicationComplete” event. Place the following code in your <s:Application> tag.

applicationComplete=”appCompleted()”

Next create a <fx:Script> tag and place the following code inside:
import flash.events.Event; //Imports Event class.
//On application complete event adds a listener to stage which listens for the key stroke down event.
private function appCompleted():void{
stage.addEventListener(KeyboardEvent.KEY_DOWN, monitorKeyStroke);
}
//Function called on key stroke down event. Evaluates keystroke, if CNTRL-T, launches a new tab.
private function monitorKeyStroke(event:KeyboardEvent):void{
if((event.charCode == 116) && (event.ctrlKey == true)){
ExternalInterface.call(“function newTab(){window.open()}”)
}
}

***

Please note, I have not evaluated this on the Mac platform now that I no longer have access to an OS X machine.

Inaugural meeting of SVFUG

We will be having our first meeting of the Susquehanna Flash/Flex User Group (SVFUG) next Tuesday, January 27th @ 6:15pm.

SVFUG is a community group for sharing knowledge regarding Adobe Flash based products and auxiliary tools catering to the York/Lancaster area.  Each meeting will usually have 1-2 sessions at varying educational levels and differing topics.  We will also be providing pizza/soda during a break.

I know a number of individuals have already expressed interest in furthering their knowledge of Flash and/or programming. I wanted to give everyone an opportunity to attend.  This is a great opportunity to learn, and potentially, to network with others in our community.

If you are interested (and live in the area), I suggest you click here, create an account at groups.adobe.com, and join SVFUG at the following link

http://groups.adobe.com/groups/f8d9c4add8/summary

Way to cool (retro)

Play some of your old favorite arcade games in “Flash Player”

http://yvern.com/fMAME/fMAME.html

Flash Player 10 – Beta

Demos

http://labs.adobe.com/technologies/flashplayer10/demos/index.html

Links on Flex integration

http://opensource.adobe.com/wiki/display/flexsdk/Targeting+Flash+Player+10+Beta+with+Flex+SDK+3.0.x

http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+3

http://www.senocular.com/flash/tutorials/flash10drawingapi/ (drawing API tutorial)

UPDATE on “_blank” / navigateToURL() issue

Well, this week provided a fair amount of activity on the bug. That is technically a Flash Player bug (Reference #225434). [For those looking for an interim fix, see my blog post here.]

Well, the good news, Adobe’s recent 9.0.124 release fixes this issue for most browsers.

Safari 2, Safari 3, and Opera were all fine on Mac.
IE6, Firefox, Safari 3 were all fine on Windows XP.

The issue does remain for Firefox on OS X & Linux (Unix code versions). Hopefully they’ll fix it in 9.0.25, but it’s nice to know it’s being worked on.

Note – in Firefox on Mac, the first click worked for me, the second click would be blocked. And eventually all clicks were blocked.

http://bugs.adobe.com/jira/browse/SDK-12987

DISCUSSION: Flash + Google Indexing

Today, I am reviewing methods of including content for Google indexing. As well as my thoughts of where this should be going in the future:

Current Trends:

  • SWFObject style – division filled with content re-populated if Flash player exists.

    •  First, potential of code to be seen briefly before the Flash content is loaded on slower machines.
    • Question over whether Google respects such code and what risks of Googlebot viewing such methods as code hiding.

  • Dual HTML/Flash content sites, using Flash only for animations, videos and other media.

    • Not suitable for all Flash based sites, especially those that more so full fledged applications or RIAs
    • Once again limiting the web to the age old, over-extended cumbersome HTML
    • Lose out on the full power of the Flash environment

  • Limited garnering by Googlebot via Adobe’s swf2html SDK

  • No Flash (obviously not an acceptable option for RIA developers like myself)

Are there other means being implemented? Please chime in….

***

Where should we be going? Sadly, this is a ship that is stranded in a sargasso sea of the doldrums with little us mere sailers are able to do to free her.

The solution requires joint work on the part of Adobe and Google. And while such is not within my power to make happen. I do have a thought about how to do it, but not being involved in the nitty-gritty inner workings of Flash itself these thoughts are not much more than whimsical – but I’ll share anyways.

Flash recently went to a very event listener based model. I believe this should be leveraged for Flash/Flex apps. My thought is to have a listener that can be defined as active or not call echobot.

If echobot is active, it gives a hook for a spider to listen. Obviously, Adobe would have to work very closely with Google so that their spiderbot would be modified to listen. The echobot listener would essentially receive a simple collection of the current content in an XML structure most likely. Delivering text content along with basic formatting (ie: font size, weight, etc) which would allow google to weigh the content a bit. Also, would receive tabular info via data grid which would include row content and global content (ie: # records, number of fields, etc). Perhaps the means to define “alt” values for graphics/animations/effects/etc.

Of course, there is another aspect which is necessary. As is often brought up, the issue of tracking location within a Flash application. And this would tie in to a URL/state definition. So that a spider could go thru various states similar to loading pages. And the echobot listener would deliver the bot the content result of the given state. (Or in a traditional Flash app, the current stopped frame.)

Now, clearly this would require some logistical changes both internally to Flash and with Google’s bot. Adobe would need to devise the internal and then put forth the workings as an API for Google (or any other indexer) to utilize.

Of course there is a performance hit, you’re listening and delivering said content at all these event points. However, firstly, the echobot listener would be able to be specified as disabled. Second, even if enabled, it should not be active unless passed a signal by the spider-bot saying “I’m here, I want to listen”. Only then should the listener be active.

This would enable Flash sites to be indexed, even to sub states. As well as encouraging much more internal state existence for purposes of URL bookmarking, etc.

The nightmare that is “_blank” & Flex

UPDATE: I believe the example will work in all common browsers (Firefox, Safari, IE, Opera) on both PC & Mac platforms.

NOTE – If you’re using SWFObject 2.0, you need to upgrade to RC2!

*******************

I created a bug tracker listing for this issue a while back at bugs.adobe.com. It was closed – I believe improperly so.

Please consider visiting the listing for this issue. While you cannot vote because it’s been closed. You can comment, and you can add the listing to those items you are watching.

http://bugs.adobe.com/jira/browse/SDK-12987


UPDATE: I revised the code to handle for Safari 2 (sort of). Essentialy, I was not getting a response from Safari 2 on the browserAgent request. My conditional was failing unexpectedly.I’ve revised the code, and confirmed that it now reaches the “Undefined” option. Which uses the standard navigateToURL(). And should work in Safari 2.Too those readers who still have access to Safari 2, if you could confirm that it is now working for you – much appreciated.- The Saj

PS – Special thanks to multi-Safari and to Subtlegradient for the fix that re-enables multi-safari. Which allowed me to install Safari 2 on my Mac for testing purposes. (Why Apple & Microsoft fail to see the need for us developers to run multiple browsers we will never know.)


One of the very first headaches I encountered with Flex was when I tried to pop-out a link using “_blank”. ActionScript 2.0 used _getURL(), in ActionScript 3.0 this was changed to navigateToURL().Imagine my horror when after uploading my new Flex app live to discover that clicking was caught by Firefox’s pop-up. The old _getURL() worked fine, but I really didn’t want to go back and re-write my app in Flash / AS 2.0A little research revealed a work-a-round using the externalInterface command to call out to the browser and pop open the window using the window.open command.However, I would more recently discover all of my Flex applications failing to work in the new Safari 3.0, Safari 2.0 works with the externalInterface work-a-round but for whatever reason Safari 3.0 does not. Further research led to another work-a-round to check the browser brand then use conditional if/else logic to enable the application to either use the externalInterface() method if Firefox or the navigateToURL() method if another browser.Now for my applications I have made these into two separate re-usable classes. However, so as not to confuse those new to Flex and still unfamiliar with classes, I have made a simple and stupid example that incorporates all of the code in one MXML file. Hopefully this example will help you if you’ve encountered this issue:

http://www.easternstorm.net/sassie/example2/example2.html
(right-click to view source)

- The Saj

Adobe re-designs site

Adobe has recently launched a site re-design. A fair amount of chatter as to what features individuals view as improvements and which are viewed as cumbersome. (ie: Home page has nearly half the page taken up by an animation. Nice animation…but 1/2 the site area is gone to an ad.)

That said, what I find most interesting to note is that nearly all the links point to folders rather than files. I can see a number of advantages with this sort of design implementation. First and foremost being that if you change back end server technology you do not need to change your paths.  It’s no longer page.html, .cfm, .php, etc. Now it’s simply http://www.domain.com/page/

You can change your whole backend and people’s book marks would remain valid. There is a lot to be said for such a design implementation.

Downside? Well, for Adobe, considering they sell Coldfusion (a back end server), it now reduces the presence of the .cfm pages.  So there could be a marketing loss.


May 2013
M T W T F S S
« Dec    
 12345
6789101112
13141516171819
20212223242526
2728293031  

Follow

Get every new post delivered to your Inbox.