Category Archives: Actionscript

Amazon Cloudfront – Video Streaming (rtmp) Issue?

Are you using Amazon Cloudfront for public/private video streaming over rtmp? Having trouble to figure out why some of your videos fail to stream (over rtmp) and throw ‘Stream not found’  flash/actionscript client side errors?

I have figured out:

  • Videos with invalid chapter markers would not stream over rtmp (Adobe Flash Media Server) or via Cloudfront.
  • Adobe’s FLVCheck utility suggests our videos have invalid chapter markers. I am not sure, if chapter markers in our videos are invalid or Adobe Media Server expect those to be in different format.
  • Same set of videos play fine with Quicktime/VLC player, Adobe Flash Player (over http progressive download) and html5 player (chrome or others which support H.264 videos)

I am disappointed with the fact – Adobe Media Server ceases to play (core feature) a video because of (optional feature?) chapter marker(s) which can be ignored if it is corrupt or invalid.

Thanks to AWS engineers who confirmed the case, and provided more details.

Update: Thanks to Justin Riley for sharing a solution (in comments below). He suggested to use ‘-map_chapters -1′ to get rid of this issue. It works for me.

Adobe Flash Platform and I

It appears to me (and perhaps others), I have distanced myself from Adobe Flash Platform during last couple of years. Not because I don’t like it, actually I love it, rather due to some other priorities here at our company, which does lot more (web-standards and design) than flash/flex stuff.

All this time, I have been keeping very low profile in flash-platform community, literally not talking about anything. I feel bad about it, I don’t know ‘why’.

I have done some trivial stuff (video players, flashlite and air apps) but nothing very cool or useful to everyone else.

My to-do list contains a long-list of applications targeted towards Adobe Flash Platform (desktop and other devices), I am supposed to do; Considering, my plate is full with all other responsibilities, I am not spending even 1/4th of the time writing actionscript.

Meanwhile, I have tried to encourage my team to learn actionscript and flex-framework. I even tried to hire some flash (or flex?) developers. I even managed to hire one flex developer last year.

Unfortunately, this person left the company as soon as when it was time to contribute back after 6 months training (no contribution period). That was big set back, a discouragement to me; I stopped looking for Flash/Flex developers.

I keep on promising myself, that I would do these applications; I keep on forgiving myself when I am not getting those done.

Anyway, there is still hope, I would building applications the on language (ActionScript), I am very good at. There is still hope, this blog would have more posts related to Adobe Flash Platform.

Ideas: FlashDevelop on OSX and GNU/Linux

FlashDevelop is an open-source IDE for Flash Platform development (ActionScript, MXML, HAXE, etc.) on Windows platform. I have extensively used it in past, and still, painfully, use it via windows virtual-machine on OSX host.

Couple of years back, I looked at FlashDevelop code to figure out, if we can port it for other operating-systems, such as Mac OSX and GNU/Linux.

I posted on Flash Develop forum about my experiments:

I have been trying to run FlashDevelop under OSX. In last couple of years, whenever I got sometime, I tried these:-

  1. Run FlashDeveloper with DotGNU: FlashDevelop was running but due to a lot of native (Win32) API calls, lots of components were failing (screenshot: http://pic.im/5Xk)
  2. Run Flash Developer with Mono: I tried to compile FlashDevelop using MonoDevelop and run using Mono for OSX. Most of the problems is one component/library i.e. DockPanelSuite (http://sourceforge.net/projects/dockpanelsuite/), an opensource code that uses a lot of PInvoke calls (Win32 API).

I am really excited about the possibilities, if we can port this one library we can get very closer to run FlashDevelop on OSX using Mono.

Note: pics.im seems to be dead, so I have uploaded new screen-shots
Flash Develop on OSX - ScreenshotFlash Develop on OSX

Some Ideas:

MonoDevelop is good enough and works well on OSX, I guess also GNU/Linux. However, I am yet to look at licensing and possibilities of forking the project (MonoDevelop)?

BTW! I have been lazy to write about such experiments on the blog, but while commenting on Jesse Warden’s post, I thought, it makes sense to post it here, so it lives.

Please let me know, if you have any ideas about making this happen? I would be happy to collaborate, contribute and donate in whatever capacity I can.

Adobe Flash Platform Summit 2010

One more day to go for Adobe Flash Platform Summit 2010, I am very excited about this event because of so many good sessions and my team has been busy building some cool stuff using web-standards and lamp-stack.

If you are going to be around, let’s catch up.

Flex 4 In Action – Early Access Available

Last year, I posted about Flex 3 In Action, a book by Tariq Ahmed,  Jon Hirschi and Faisal Abid. Not many people know, I was also among authors but couldn’t contribute beyond one chapter due to personal priorities, hence opted out. Thanks to Tariq for trusting me and providing an opportunity.

Tariq has again teamed up with different some smart guys (Dan Orlando, John C. Bland II, and Joel Hooks) this time, and all of them are working on Flex 4 In Action.

All authors have a lot of experience and are great at what they do. I always prefer to read a book written by someone who has done the stuff, instead of someone who has just theoretical knowledge.

I am yet to start reading draft version of the book, however, I am sure this book is going to be one of the best. To believe me, you need to check out authors’ profiles/websites and you would realize it yourself.

Sign up with Manning’s early access program (MEAP) and start reading chapters (completed as well as drafts).

Making the case for ActionScript – my take

Peter Elst posted his thoughts about ActionScript and where it’s going. I agree with him and prefer to have simplicity we had once with ActionScript and Flash Platform.

I wrote my two-cents as comment to Peter’s post, that’s how it goes:

Nice post.

We have witnessed how Flash Platform evolved over the years, it has got more attention by people but at the same time, it has lost a lot of attention of those attached initially (as Keith said above).

Jeff Raskin, in Humane Interface, said something like that – complex tasks would require complex user-interactions but that’s no excuse to make simple tasks complex.

I believe, that’s what has happened. It’s not any more simpler to do simple things.

Adobe must think why they are doing it and for whom they are doing. If ActionScript is going to be clone of Java or C#, then why a new language – why not just use one of those?

There must be a philosophy behind a language and platform, what is that behind Flash Platform and ActionScript?

I had more fun in old days than now, just enjoyed the company of everyone (designers, developers, trainers, etc). It was because of simplicity that brought all of us together. I agree a lot of bad implementations were result of ease of doing things in Flash, but hey – there were far more good stuff then than now. A lot of innovation, cool stuff and apps to showcase. How much do we have now?

Open Source Media Framework (OSMF)

A few days back, Adobe announced Open Source Media Framework (OSMF), which was known as Strobe earlier.

A few minutes back, I received an email confirming that Open Source Media Framework website is up with all the information, specification, developer-documentation, source (Subversion repository), downloads (binary and source) and bug-database.

Open Source Media Framework (OSMF) has an interesting list of features and goals. I like it’s plug-in architecture, that would allow a lot of extensibility and various amazing plug-ins from different providers in coming time.

If you are a developer spending a lot of time developing various work-flows around online media-players (audio, video, images – players), I strongly recommend you to check out Open Source Media Framework (OSMF). I am sure, you would find it worth start using it and also contribute back whatever you can.

Following are the reasons, I am going to use OSMF and give up my existing frameworks:

  • It’s open-source
  • It would solve core issues (video playback, delivery and workarounds for various limitations in Flash Player, etc)
  • It would adopt various standards (playback, cdn, advertising, etc)
  • Larger developer base, that means bug fixes and various features would be available very often
  • I love open-source and see myself contributing to OSMF in future, beyond my current projects.

Job Opening: Flash Platform Developer

We are looking for some smart Flash Platform Developers who can be part of our team in Allies Interactive Services Pvt. Ltd., Kanpur, U.P.

We are a design and development company in Kanpur, though we are small but we are ambitious and have a great vision.

I posted the details on Flex-India sometimes back, pasting the same (edited the typos and formatted) over here:-

I have been meaning to post this for sometime but thought would it be appropriate to do that here?

I am part of a small design and development shop in Kanpur, U.P. Where, we mostly do web development using FOSS, mainly LAMP.

I moved to kanpur around 10 months back with a desire to build a great Flash Platform Team that would work on non-trivial type service projects and some great product ideas.

I could now start doing it, after we have managed to fix a lot of issues mostly a nice office, a good culture and some projects and a product in pipeline.

I need an experienced Flash Platform developer in my team, who can help us to make our vision, desire and dreams a reality.

Since Kanpur is not a metro or fancy place to live, it takes more than just technical aptitude to be here. That is some more strong reason f.ex. A desire to be part of a growing team, desire to be close to family, desire to contribute in the development of IT ecosystem in North and/or a desire to prove, hell yeah we can do great stuff from anywhere, even cities like Kanpur :-)

If you think, you want to help me by being part of my team and understand what I meant above, please don’t hesitate to contact me on [abdul dot qabiz at gmail dot com] off-list i.e. Direct email to me, please don’t reply here on this list.

As far as job description goes, I have already given an idea. However, we are looking for someone who understands web very well that is HTTP and other standards. Fundamentally good at problem solving, the real world ones, ActionScript, Flex Framework, Adobe Flash Player and AIR fundamentals and APIs.

Of course, good experience that says about in your behalf. We would also talk to you so things would get clear, i.e. If we are match for each other.

If you want to know more about company, please check out http://www.alliesinteractive.com

Adobe Flash Builder as name – What I think

I just caught this news “Adobe Flash Builder instead of Adobe Flex Builder as a name for Gumbo” over AXNA.
I felt like writing my views on this i.e. renaming Adobe Flex Builder to Adobe Flash Builder for future releases. I kind of like it for reasons explained later.

I loved the move when, recently, Flash Platform was redefined. It brought a lot of clarity and removed the confusion built since Adobe (Macromedia) Flex was introduced.

A lot of people were confused and didn’t really think that even though there were different development paradigm but all targeted to Flash Runtime(s). I have been using the term for sometime, even before Adobe redefined it to bring all these different technologies/tools, which targeted Flash Runtimes (Player, AIR, FlashLite), under it.

I think, sooner or later Flex SDK should be renamed so no such confusion develops further. Having consistency increases simplicity and clarity in understanding things, developing, learning, talking and building brand.

It would be nice to have one framework with many sub-frameworks targeting various different Flash Runtimes and development tools (Adobe Flash Authoring tool, Adobe Flash Builder, etc). We need consistency that leads to shorter learning curve and better development platform, eventually.

Technorati Tags: , , , ,

BugQuash

BugQuash is a great initiative to bring Flex community together to contribute in various ways (bug filing, fixing, patching, etc) to OpenSource Flex SDK.

I am sure, you must have heard about last BugQuash which was organized last month, by Flex community members: Nate Beck and Marty Mickelson.

Hundreds of community members participated including me.

I submitted some patches, which are not big ones, but I got a lot of appreciation from teams within Adobe and other people from community. It suggests that even small contributions matter, hence I should be contributing more often.

Dave Story (VP Developer Tools, Adobe Systems) sent some pictures from one of the all-hands meeting, where BugQuash was discussed, where entire team, along with Dave, thanked to each contributor for their contributions over phone.

Thanks to everyone who organized and participated. It helped me to get started contributing, which I always wanted to do. I am going to try to contribute as often as I can.

image001.jpg
image002.jpg
image003.jpg

Update:Next BugQuash is happening on May 17, 2009. Check out BugQuash for more details.
Update: BugQuash on May 17, 2009 was successful and your truely submitted two patches :-)

Technorati Tags: , ,

Interviews on ActionScriptHero.org

Pablo “aSH” PARRADO of ActionScriptHero has been doing fantastic job of interviewing Flash Platform developers. It’s great to see and read those interviews.

I was fortunate to get a chance to express my views and I thank Pablo for that.

I must say, it’s really inspiring experience to read what all developers say.

Check out interviews at actionscripthero.org.

Technorati tags: , , , , ,

Adobe Flash Player 9.0.115.0 onwards allows setting Authorization HTTP header

There were some issues with some earlier version of players, where it was not possible to set Authorization http-header for HTTP/GET requests. I tried to hack a way to do it using Socket or custom http-client in actionscript.

I just happened to read one of the technotes at Adobe’s site, which says Authorization header is allowed for Flash Player 9.0.115.0 onwards. If you are trying to send request to another domain (different from the one hosting the SWF), a crossdomain-policy file is required.

Available for consultancy, training and development

I am available for consultancy, training and development services. Following is the rough list of things, I can provide consultancy, training or development services for:-

  • ActionScript 1.0, 2.0, 3.0
  • Adobe Flash/Flex
  • Adobe Integrated Runtime (AIR)
  • Training on Adobe RIA technologies
  • Architecture for RIA
  • Web Application Development
  • Design and Architecture
  • Development for LAMP
  • Integration Services for Flex/AIR with existing Web Apps
  • Development Setup for small teams
    • Subversion Version Control
    • Bug Tracking System (Trac, Wiki)
    • Training on Development Life Cycle
    • Backup Strategies
    • Development Sandbox Setup for RIA development

    JFYI! You can check out my linkedin profile to know more about me. I am based in India and have around ten (10) years of experience, during this period I have worked for Macromedia/Adobe, Yahoo!, Mixercast and TIS and worked as independent-consultant, freelancer, trainer and co-founder. I have been working on various technologies/platforms (some listed above).

    I am a programmer who enjoys solving users’ problems whatever it takes (technology is no constrain). Having said that, I am passionate about ActionScript/Flash/Flex/AIR and Web (in general) which happen to be my core competencies.

    PS: Do you think, this is a shameless sales pitch :-)

    Technorati tags: , , , , , , , , , ,,

    as3httpclientlib – a better http-client in ActionScript by Gabe

    Gabriel Handford left a comment with as3httpclientlib link, this is a very well written http-client, with TLS support, in ActionScript 3.0.

    Let me clear some points here, as3httpclientlib is not as3httpclient. The as3httpclient, let’s call it my-project in rest of the post, was a better version of HTTPURLLoader. HTTPURLLoader was a proof-of-concept work to deal with various limitations in Flash Player APIs.

    my-project doesn’t have cleaner api and it also lacks various thing, honestly speaking, I could never spend enough time to make it better. Thanks to Erik (aka eecolor) for refactoring HTTPURLLoader and adding more features.

    I was planning to add TLS support, after I heard about Metal Hurlant‘s work on TLS. Now, I am not planning to do any further work on my-project (as3httpclient) except cleaning the code a bit for those who are already using it.

    I find, as3httpclientlib (Gabe‘s project) is much better and very complete. I spent sometime looking at the code base, it’s api reminds me of jakarta-commons-httpclient, which I always liked for it’s simplicity. With as3httpclientlib, you can do pretty much everything (DELETE, GET, HEAD, POST, PUT – http-methods, multipart uploads etc) you were able to do with my-project (as3httpclient).

    If you have been using my-project (as3httpclient), I suggest you to look at as3httpclientlib.

    As we know, Flash Player Socket API has some security-restrictions, so any socket based http-client would work for AIR projects but not for Flex projects, unless you can afford special-setup on your server to serve special policy-file required for socket-connection to any port below 1024. Gabe has developed as3httpclientlib library for AIR based projects, however, I am sure it can be used in Flex projects as long as server is setup (as mentioned above in this paragraph).

    Check out various examples/tests in as3httpclientlib project, you would find things like amazon-s3-tests, upload-tests etc

    Thanks for reading a post full of similar names – as3httpclient and as3httpclientlib :-)

    Technorati tags: , , , , , ,

    Adobe Flash Player’s Security-Sandbox is very restrictive

    Adobe Flash Player Security-Sandbox is very good and we have not heard any major security vulnerabilities so far. However, I think, it can be made more intelligent, I have some use-cases where I can’t do anything.

    XMLSocket API is cool, since it’s inception, developers could create cool applications (multi-player games, chat-apps, presence-apps etc). XMLSocket servers (unity, swocket etc) is needed to comply with a specification in order to work with Flash Player (as a client). Since developers are using/creating custom-servers, they could control various things on server-side, f.ex: configuring right security-permissions, serving right policy-file (crossdomain.xml) etc.

    With Binary Socket API, in Adobe Flash runtimes, things have changed a lot. Applications (for Adobe Flash runtimes) can now connect to servers using standard protocols (POP3, SMTP, Databases, HTTP etc). Totally cool feature which allows creation of kick-ass applications (Yahoo! Web Messenger, mySql driver etc). But Adobe Flash Player’s security-sandbox is limiting Binary Socket’s capabilities.

    I have been working on a library (as3httpclient) to do more things (http-status-messages, http-authentication over GET request, support for more http-methods etc) which are not supported by URLLoader API. This library (as3httpclient) doesn’t work in deployed web-application because Adobe Flash Player’s Security-Sandbox restricts it to.

    I have following questions/concerns:-

    • When URLLoader (or other such native APIs) can connect on any port, why can’t custom APIs (as3httpclient and others) connect?
    • Why can’t Flash Player be little more intelligent to check, if connection is made to a HTTP server? Rules could be:- If connection is requested to same domain and destination-port is assigned to HTTP server, let communication happen. If destination server:port is in different domain, check for valid crossdomain.xml and allow the connection?
    • Why doesn’t Flash Player consider to-ports attributes, if policy-file is served over HTTP?

    With standards, we expect flexibility. We can’t expect a HTTP server to push policy-file to Flash clients? That’s not standard.

    Technorati tags: , , , ,