js,, web

window.postMessage is a method for safely enabling cross-origin communication.

I have created an example demonstrating communication between a wrapper and an AngularJS application within an IFrame using postMessage. Message communication in and out of the IFrame are managed within an attribute directive. Unit tests for the directive, controller and service are in place but no e2e just yet. Project specifics are detailed within the README.md in the GitHub repos. Any optimisations or feedback would be welcomed.

js, web,

After working with Backbone, Meteor, AngularJS and Ember (however, I have not dived deep into Ember yet), I feel that AngularJS is prepared the best for Test Driven Development (TDD). It truly makes it a cinch removing all excuses to not use tests in your application!

I have had the pleasure of focusing on testing within an AngularJS client application recently and lost a small amount of time testing a directive. The issue revolved around the template being located as an external html file as opposed to being included within the directive itself. There were a couple of head scratching errors that @amscotti and I had whilst seeking a solution but here’s a suggested approach.

Read on →
web

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

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

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

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

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 →

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 →

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 →