Amazon S3 + Flash crossdomain.xml + IE7 = Certifacte error

18 December 2008

This is just an other story why I don’t like computers… When the Flash Player loads files from Amazon S3, it most likely crosses the domain border. This means that you have to put up yourself with Flash Player security. If you planned a new security concept for Flash Player and you want to make it as complex and convoluted as you could ever imagine and then, you power this by the factor of 10, you most likely come up with the current Flash Player security concept. Ok, if it hadn’t changed much over the years. But did you know that for example the allowed HTTP header changed in every release! I bet that there are no more than 10 people on the world that understand everything including the implications of the changes over the years.

Whatever, loading the crossdomain.xml from Amazon S3 does not fail because of Flash Player. That’s why loading the file works fine in Firefox but fails in Internet Explorer and Safari. The URL was something like “https://images.example.org.s3.amazonaws.com/crossdomain.xml“. It turns out that Internet Explorer does not accept address with “.” for wildcard SSL certifactes like “*.s3.amazonaws.com”. So this story ends with the fact that you should only use bucket names without “.” like “https://myimages.s3.amazonaws.com/crossdomain.xml“.


Adobe Cocomo RTMFP enables “Skype” without installation

3 December 2008

Yesterday, the blog of the Adobe Cocomo team announced a limited service for RTMFP. The entry is very informative and straight; so go read it! RTMFP stands for Real-Time Media Flow Protocol and is well explained in these FAQ. From an end user perspective, RTMFP seems to be as relevant as for example the move in imaging from CCD-sensors to CMOS-sensors: Both technologies can deliver great result, but with CMOS it gets much easier over the years and it is also much cheaper.

Hopes are, that RTMPF can lower costs of high bandwidth audio and video conversations mainly between two users while featuring a higher quality than a server based communication. The only party-stopper might be restrictive firewall rules. In fact, if I were an IT administrator I would block all those outgoing connections.

To start a connection between two users, you need something like a dating service. Adobe Stratus does this job exclusively. Once you know each other, the service is only loosely involved with your interaction.

What’s missing at first glance is the ability to store those streams. I think it is the same problem as with direct communication to Cocomo. You can persist objects but no streams. While it’s fine to start with a proprietary protocol, I hope Adobe releases the specs as soon as possible. I hope to see RTMFP soon in Wowza and Red5.


[Bindable] causes Error 1144 for Vector classes in interfaces

28 November 2008

Write up an interface like…

package
{
	import __AS3__.vec.Vector;

	public interface Example
	{
		function get links(): Vector.<int>
		function set links( value:Vector.<int> ): void
	}
}

… and a class that implements the interface …

package
{
	import __AS3__.vec.Vector;

	[Bindable]
	public class ExampleImpl implements Example
	{
		public function get links():Vector.<int> {	return null; }
		public function set links(value:Vector.<int>):void {}
	}
}

… and receive an error message for free: “1144: Interface method set links in namespace Example is implemented with an incompatible signature in class ExampleImpl.

A workaround is placing [Bindable] on the property level. And that’s it for this week.


Adobe Cocomo is just right.

17 November 2008

Adobe is heading in the right direction and lowers the barrier for real time communication significantly. Integration of text chat or video into applications becomes for the first time cheap in engineering terms. I could not find any information about the business model around it. I hope Adobe finds an acceptable way for monetization of commercial use.

The package 0.9 you currently get, is fully up to my expectation of a beta release. The numerous examples run within seconds (for those that do not read docs as I do, the room URL is something like http://connectnow.acrobat.com/myAccountName/myFirstRoom). Nowadays, security is a must and the implementation looks just fine. You can delegate authentication to your own application.

Architecture

In the developer guide, you find this overview. It gives you a dictionary of the new terms introduced.

Cocomo architecture

What’s next?

Things I’d like to know and will investigate:

  • I want to authenticate users with OpenID. How can I integrate this with Cocomo?
  • Study the rather long license terms and see how liable it is for free stuff and commercial use.
  • What’s Adobe’s business model for commercial products?

Build your own Feed of Adobe Wiki

8 May 2008

The wiki of Adobe Open Source offers a “RSS feed builder” in which you can specify what is pulled into your feed. For instance, you can focus on the “Flex SDK” space and get all the news about Flex 4. This seems to include all change notifications of the build server (which is nicely called “Build Meister”).

I could not find the link to builder in the wiki, so here it is.


What you should know about DisplayObject’s mask and scrollRect

2 May 2008

While adding cropping to an image editing component, I had to learn a few things about displayObject.mask and displayObject.scrollRect:

  1. mask and scrollRect are mutually exclusive: You cannot use both at the same time.
  2. Grant Skinner has got a nice introduction into scrollRect.
  3. Mask can have any form. Andrew Trice features a nice bundle of samples.
  4. ScrollRect is of type Rectangle and hence, the form is always a rectangle.
  5. Mask does not change the size of the displayObject.
  6. ScrollRect does change the size. Ticore Shih has got the examples.
  7. There is a catch with 6. While scrollRect does change the size, you cannot know when this will happen, really! It might be suitable for a random number generator. UIComponent.calllater() does not bring you anywhere.
    It has been reported as a bug in FP-177 just two weeks ago. Though I am not sure what FP 9.2 Code Complete means and the comment is somewhat unclear to me.
  8. The workaround is either using the dimension of scrollRect or redrawing the DisplayObject as described by Ticore. (At least the code shows it; I don’t exactly know what he says in Chinese…)

Democratize Software

31 December 2006