Edge Animate to Animate CC

I’ve recorded and published a set of three videos walking users through the transition from Edge Animate to Animate CC. These videos cover a number of conceptual comparisons between the applications, including… the differences in timeline, differences in publish targets, and workflow differences.

I’ve embedded the full playlist below, and you will find links and descriptions of individual tutorials following that as well.

Here are the individual video recordings:

Edge Animate to Animate CC: Timeline Methodology

Edge Animate and Animate CC animate content in very different ways. Let’s look at animation workflows using Edge Animates Pin tool, and compare that with the robust tweening system in Animate CC.

Edge Animate to Animate CC: DOM vs. Canvas

While Edge Animate and Animate CC can both output to the native web browser using HTML elements, the way in which they each handle this output differs quite a bit. Let’s have a look at these differences and the advantages Animate CC provides.

Edge Animate to Animate CC: Creative Workflow

Both Edge Animate and Animate CC can employ imported image files within their workflows. Animate CC goes far beyond simple import with deep integration with CC Libraries using CreativeSync technology.

Adobe Media Server, Apache, and Windows

I’ve been meaning to write about this for some time, for the benefit of anyone else who encounters the problem. Things are going to get crazy around here, so I might as well get this out there and out of my drafts!

The problem itself is that we run a number of Adobe Media Server 5 instances at the University of Denver and after an upgrade over the Summer Quarter, streaming and stability pretty much went from 100% reliable to “we need to find another streaming solution”.

So the setup is AMS5, bundled Apache 2.4, and Windows Server 2012. On both live streams and VOD – we saw similar behavior… the services were all still running… but no content was being served. After looking at a number of parameters we discovered that our RTMP streams were actually running fine. It was the HLS streams which were constantly dying.

We were actually having to restart the services to get streams running again multiple times a day – for weeks. It was an incredibly frustrating experience and searches for this problem in regard to AMS yielded no workable results. I even tried reaching out to Adobe through my contacts with them and was met with complete silence. Absolutely frustrating.

It wasn’t until I began excluding the term “AMS” from my research – and looked only toward Windows and Apache HTTPD that I found anything close to what I was experiencing.


I found 2 different posts about what appears to be the exact same issue – not with AMS itself… but with Apache on Windows:

Both threads suggest the addition of the following parameters to the main Apache configuration file:

AcceptFilter http none
EnableSendfile Off
EnableMMAP off

Performing the mentioned adjustments to the Apache 2.4 configuration file within your AMS installation absolutely resolves this issue. Here is the modified httpd.conf located at {PROGRAMS}\Adobe\Adobe Media Server 5\Apache2.4\conf as an example:

# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs/2.4/> for detailed information.
# In particular, see
# <URL:http://httpd.apache.org/docs/2.4/mod/directives.html>
# for a discussion of each configuration directive.
# Please see httpd.conf.orig for the configuration of a default
# (non-AMS) installation of apache.
Define AMS_BASE_PATH ".."
Define WEB_ROOT "/webroot"
Listen 80
Listen 8134

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

# If you plan to run AMS as root on linux, you _must_ specify a
# valid user, with access to the AMS installation direction, or
# apache will not run.
# If you've used the default installer, nobody (or whatever other
# username you gave to the installer) will work here.
# If you're running a developer build under your own home directory,
# you should use your own username.

AcceptFilter http none
EnableSendfile Off
EnableMMAP off
AccessFileName .htaccess
ServerSignature On
UseCanonicalName Off
HostnameLookups Off

Timeout 120
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15

This was an incredibly frustrating experience for myself and many others involved. I hope this post helps someone out there to resolve this problem without the weeks upon weeks of crap I had to deal with!

Convert Flash Ads to HTML5

Adobe has published a video I authored for them describing the process of converting ads targeting Flash Player to HTML5 Canvas using Flash Professional CC.

Flash Ads

See how you can convert your existing Flash Ads to Canvas and optimize them for use on any modern browser.

Watch Video (3 minutes)

Not a Retrospective

It has a been such a busy year for me. While I got a ton of things accomplished – I also had to place other items aside… and I hate that.  I’m pretty worn out and in real need for some down time.


I have 2 simple goals for 2016:

  1. Take time for my own projects.
  2. Take time for my own self.

The years go by too quickly – and if I blink… an entire month can be lost. That is frightening.

Does this mean I won’t be doing any work in 2016? No. It just means that I am only going to take on work with people and companies that I trust. I already have a bunch of stuff lined up… it’s  just a matter of managing myself better.

I’m posting this more to hold myself to these goals than for any other reason. Be good to yourself in 2016, Joseph.

Here’s to a more balanced new year!

Photoshop’s 25th Anniversary and Adobe AIR

Earlier this year, I became involved in a project for Adobe and the Computer History Museum for the purpose of creating and interactive exhibit for the 25th anniversary of Adobe Photoshop.

The completed interactive alongside Photoshop CC 2015. A background location and famous person have already been selected.

For this interactive, we used Adobe AIR to communicate with Photoshop over the local server, and respond to messages being returned by Photoshop to perform some action. Commands needed to be sent to Photoshop to open selected images and composite them properly, perform actions such as green screen removal, watermark overlays, rendering, final processing for email, and so on. The interactive needs to listen to Photoshop to know when all of these actions had occurred – to know both what state the application experience should be set to – and when certain processes had completed. It is a highly complex dance between Photoshop and AIR!

Photo taken by CHM during the Photoshop 25th anniversary event with a beta version of the interactive.

Users were able to approach the exhibit and perform a number of steps:

  1. Select a background location image.
  2. Choose a famous person which Photoshop would composite upon the background.
  3. Take a photo of themselves against a properly lit green screen – passing this off to Photoshop for removal of the green pixels.
  4. Use Photoshop to position their photo alongside the famous person against the background.
  5. Once completed, they would choose to have their image displayed within the exhibit on a big screen, or email the photo to themselves.
The interactive, as viewed when a user first approaches. The AIR application sits along the right side, and involves a number of steps for the user to interact with as they go through the application workflow.

The development of the interactive itself was fairly complex. It involved the use of Photoshop CC 2015, Apache Flex 4.14, a custom version of the Photoshop Touch SDK, a number of open source AS3 libraries, and both network email and local server configurations.

I remain absolutely convinced of the power and flexibility of Adobe AIR as a desktop development platform.

The interactive is now complete and should be available for use in the Computer History Museum for at least the next 5 years of so.

During the Photoshop 25th Anniversary event – some people went a little crazy with the interactive!