web

Written by

What’s Boxen?

Boxen is an automation tool for your development machine (OS X) based on Puppet. Hand’s down it’s a really nice tool, all those fine tweaks you have for your system e.g. Dock settings, show ~/Library by default, etc are configured and pushed to your git repository for your own personal use or team sharing. Suddenly tedious tasks like setting up your system for projects become super simple. Homebrew, Ruby, NGinx, Node, etc are installed simply by running boxen and can be configured based on personal or project configuration files. There is a lot more to it but I suggest you read this post for a nice detailed overview or check out the template Boxen project.

Read on →
web

Written by

Today Amazon released a beta version of their new Amazon Elastic Transcoder. This is exciting news as I know the majority of my clients use Amazon Web Services (AWS) for either media storage (S3) or media server providers (Wowza EC2 instances), if not both. Reducing the amount of service providers within a company has the potential of simplifying management and there is the potential of saving cost. The main competitors in the video transcoding world offer the following pricing structures: encoding.com, zencoder.com and pandastream.com. Amazon offer the following pricing structure.

How easy is it to get started?

Read on →
web

Written by

A couple of years ago Google started work on a safer more stable version of flash. The Flash Pepper Player (FPP) unfortunately has exposed camera and/or audio related issues and is the default Flash Player for the Chrome browser. There is an inconsistency between the FPP and the Flash Player releases from Adobe and in my experience with my client media based applications, the Adobe version resolves these issues. In this article I will highlight a series of simple instructions on how to disable the FPP and enable the Adobe released Flash Player. The obvious first step is to download and install the latest Flash Player version from Adobe.

Read on →
web

Written by

Decide what you want, decide what you are willing to exchange for it. Establish your priorities and go to work.

H. L. Hunt

One question I see quite a lot when it comes to architecting an application using MVC is how to get data into the view from the model and keeping that data current. The simplest and quickest routes to achieve this is to create a reference to the model within a view mediator and either bind or directly get the data. This is an approach I indeed blogged about but is a technique I quickly moved away from. Here is how I now manage this.

Read on →
web

Written by

How many developers out there are still manually deploying project files to their remote server?

In my experience, automated deployment is typically declared as a nice to have but not usually a task where time actually gets set aside to complete. This post is focusing on what I would term as the simplest essence of automated deployment. The sequence of steps:

  1. Compile e.g. generating project files using rake or compiling a swf.
  2. Commit i.e. pushing to a git repository.
  3. Transfer e.g. copying local files to a remote server.

Heads Up

This is not covering the full CI setup, versioning, etc, this is simply a small (time saving) step for those developers who are still pushing projects manually. Further fun stuff like CI and automated builds comes in another post ;)

Read on →

Written by

NOTE There have been some pretty cool advancements made to Gator recently, however this has meant that gems and code bases are out of sync. I will update things here once we have resolved dependency issues.

I am a huge fan of generators as they for me, are a massive time saving tool in my day to day development. I have heard the arguments against them but personally, they speed up my work flow significantly for the repetitive tasks such as file/package creation and the initial injection of basic class code. As an added bonus my Unit Test classes also get generated and in some instances they are specific to the actual class type, it’s a no brainer for me to use these type of tools.

A little history

Up until now I have used Project Sprouts for both my project builds and generators and I still think its an amazing resource. However, there were a few minor issues and complexities (as a Ruby noob) I encountered on the generators which got myself and Dominic chatting on IM about potential solutions. Dominic highlighted an initial hurdle which resulted in Luke Bayes kindly taking time out to explain generators thus giving us an insight into the inner workings of Project Sprouts. The main problem with diving in and changing Project Sprouts was due to it being ultimately extremely powerful, but complex under the hood for someone like myself, simply put we just needed some classes generated.

Read on →

Written by

How many of you Flex and ActionScript developers are architecting your applications in a modular fashion? By modules I mean compartmentalising specific application logic and not necessarily using Spark (or MX) modules. If I answer my own question I would say sporadically up until recently but now I approach project architecture in a modular based format with multi functional areas (thanks once again to @Stray_and_ruby for the heads up on this link).

Read on →

Written by

I would say that the majority of Flash Platform developers have now used source control.

As a developer are you testing locally, committing to source control and finally manually deploying your SWF’s to staging and production environments?

Do you work on applications as part of a team?

Do you use Continuous Integration (CI) and automated builds?

My answer was yes to all of the above except unfortunately the CI process. As you may well know from my blog and on twitter I have a keen interest with Project Sprouts and recently have also looked at Buildr, particulary Dominic Graefen’s AS3 port: Buildr-as3.

Together with Dominic (share my pain) Graefen (thnx man), I have been determined to setup a CI server using Jenkins on an Amazon EC2 instance which compiles SWFs and runs FlexUnit tests, for example on commit to git.

This was not a straight forward task…in fact it was a Grade A pain in the ar$e but eventually (it would appear) I managed to refine the process down to achieve the goal. Below are the steps that I have taken to set up an EC2 micro-instance with Git, Jenkins, RVM, Ruby, VNC, standalone debugger Flash Player, Buildr-as3 and compile/run FlexUnit tests using a Flex 4 based example! I have setup and torn down at least 6 instances to test and remove surplus instructions so hopefully it’s as lean as possible.

I am sure there could be further refinements made and on one of my test server setups I found I had some odd output which I need to work out why and where?

*(gflashplayer:1490): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)’

(gflashplayer:1490): GLib-GObject-CRITICAL *: g_signal_handlers_disconnect_matched: assertion `G_TYPE_CHECK_INSTANCE (instance)’ failed

But the tests run and all is happy. Micro-instances and rvm/project builds are not fast and I found have a tendency to hang on the first run/install so perseverance is required, but once running, all seems sweet with the world. Any further tips or guidance would be most welcomed! Oh and if you want to see an example of using CI for your Flex/Flash project just take a peek at this super sweet example.

Read on →

Written by

This blogpost is simply to promote that there is a fantastic utility named RobotEyes out there for end to end testing your AS3/Flex applications and provide a simple example to help get you started in the right direction. I am currently writing a more in depth article on end to end testing AS3/Flex applications and therefore want to keep this post brief and to the point.

Are you a Flex or AS3 developer?

Do you use TDD?

If yes for both then do you do end to end testing?

For me the answer was no, that is until Stray first walked me through the concept whilst also introducing me to her utility named RobotEyes to facilitate end to end testing. I then proceeded to fork her RobotEyes repos and integrated the necessary logic to utilise the tool within a Flex project (see my RobotEyes Flex fork). There are other end to end tools for Flex out there but the major advantage for using RobotEyes as opposed to the other options are that RobotEyes actually integrates into your existing test cases, oh yeh!!!

AllTests.as
1
2
3
4
5
6
7
8
9
10
11
12
import com.newtriks.views.LoggerTest;
import com.newtriks.views.SearchViewTest;
import com.newtriks.xendtoendtests.SearchWithResponseTest;

[Suite]
public class AllTests
{
    // End to end in the test suite yo!
    public var search_with_response_test:SearchWithResponseTest;
    public var search_view_test:SearchViewTest;
    public var logger_test:LoggerTest;
}

I have now constructed an example Flex 4 project to demonstrate an end to end test using RobotEyes. To help grasp the concept I have tried to keep this example as simple as I possibly can. The particular example introduces ASUnit 4 so you may want to also have a look at my previous blog post as an introduction into ASUnit 4. Please watch this space for further information on both RobotEyes and end to end testing AS3 and Flex applications.

RobotEyes Flex example