Introducing Spider-Gazelle

By Stephen Von Takach

Since the founding of ACA Projects the I.T. industry has gone through a number of rapid changes. The rise of cloud computing, followed by new ways of deploying and managing applications has meant almost everything has changed.

  • 1991 First web browser

  • 1996 Ruby released
    … (NOTE:: it takes a few years before adoption of each technology is widespread)

  • 2004 Network stacks: Linux introduces epoll

  • 2010 Service managers: init is replaced by systemd

  • 2013 Application deployment: packages replaced by containers (such as docker)

  • Server management: Puppet (2005) -> Chef (2009) -> Kubernetes (2015)

One advantage of these changes is that it is now easier than ever to deploy services, making microservices a highly attractive option for implementing new features.

A new framework

Since 2012, ACA Projects has been almost entirely a Ruby on Rails house however we’ve been working on a framework that makes it easier for us to rapidly build and deploy new services.
One of the most exciting things is that it is fast, in fact it’s one of the fastest frameworks in the world:

table 1.png


table 2.png

For those paying attention, that’s 3 times faster than NodeJS and 32 times faster than Rails.

Not only fast

Coming from Ruby, Crystal lang was the obvious choice for the underlying language of the framework. Effectively “compiled ruby” it is a joy to work with when compared to languages like Go or Rust which are much more akin to modern versions of Java or C++.

If you’re a developer coming from Rails, you’ll instantly feel at home with Spider-Gazelle as one of our major goals was to ensure a seamless mapping of skills. Rails is an extremely feature rich framework, it makes your life as a developer easy and we didn’t want to compromise developer productivity or happiness. As such, we have ported most of the core Rails features to Spider-Gazelle without compromising elegance or speed.

From a deployment standpoint, Spider-Gazelle projects generate deployment images approximately 45MB in size compared to 850MB for Rails, 18 times smaller.

Table 3.png

Production ready

We have a few Spider-Gazelle projects running in production. Meraki Scanner, for example, is running at multiple client sites and processes wireless location data streamed from Meraki wireless access points - tracking people and devices in buildings.

Open to all

We believe in the open source movement and as with many of our endeavours, are proud to give back to the community.

For anyone interested in learning more about this exciting new project, please have a look at our documentation:

Singapore Technology Showcase 30th June

ACA will be part of an exciting technology showcase at the LG Innovation Centre in Singapore. (Watch this space as we take it on the road in a few additional cities).

What are you going to see from ACA? 

A hands-on demo of ACAEngine and an overview of the integration possibilities. This will be with a focus on how to collect and manage your system data with web-standard platforms such as Google Analytics.  We can show you how to take advantage of big-data to better manage your rooms, buildings and properties. 

What are you going to see from our partners?

  • The latest IP TV and network-based AV solutions from Exterity

  • The latest line-up of LG commercial displays 

  • Quick Industry Focus – Corporate, Banking & Finance

  • Networking opportunities – meet up with industry colleagues and make new connections





Introducing ACA Metrics

ACAEngine connects to all of your devices and groups them into systems. Because this is a real-time connection we monitor devices and systems live.  We built ACA Metrics to give you an overview of the most important data such as offline devices and  connected users. Like everything we do, ACA Metrics is web-based- so you can view it on any device, run it through digital signage in your support office and access it anywhere. ACA Metrics is a standard feature of ACAEngine. 

Introducing High Availability Smart Buildings

By Steve Von Takach

At ACA we have been applying web technologies to a market that has previously been made up of hardware controllers. While you do eventually hit hardware with our system, we are primarily a software stack and more often than not our software is run on virtual machines or in docker containers on a shared host. This approach decidedly moves AV into the IT environment, bring with it all the advantages of a fully managed system.

In that IT environment our approach to disaster recovery has been with hot backup systems. The database is replicated in real time and a second server is on standby - however this server is not doing anything. Similar to having a spare fully patched, up to date, ready to go, hardware controller lying around in case one fails.

Today we are announcing the imminent release of our high availability building management system that does away with the ‘spare’ completely.

How does it work?
There are three possible configurations:

1. Solo System
This is our traditional system. A single service with an optional database backup and/or a hot spare in a disaster recovery site.

2. Load Balanced
Two master systems that will take over the work of the other if one goes down. Each has a full copy of the database and can be located in separate physical locations as well as on separate networks.

3. Master Slave
A single master system (probably running in your datacenter) coordinates multiple slave systems that can run on separate isolated networks. If a slave goes down, the master will take over the work and by default the slaves perform the work.

This provides the most resilience to failure as slaves can be placed in physical buildings. If the wide area network goes down you’ll still have full control with no downtime from a control perspective.

All configuration and management is performed on a master system so you can still manage and monitor your spaces from a single location, including live debugging and system introspection.

Failover windows and recovery times can also be configured to reduce downtime when a hardware failure does occur. By default, if a slave system goes down there is a 20 second recovery window before the master will take over, this protects against short lived network partitions. When the slave comes back up, or is replaced, control is immediately passed back to it - this is the recovery process.

In the case of intermittent hardware failure, maybe the hardware is failing every 15 minutes resulting in multiple outages, it is possible to configure recovery windows. For example if multiple failures are occurring, a slave can be configured not to regain control until a particular day and / or time (unless there is an outage of the master server, in which case it will take back control immediately) so the outage can be investigated without further disruption.

All of this results in an unprecedented level of deployment flexibility and system management capability. With this, ACA has created the quintessential high availability smart building system.



3 ways to monitor your web services

By William Le.

If you’ve been keeping up with the news here at ACA, you’ll know that we use Docker to containerize all our services for rapid deployment. For any single deployment of our web applications, we may have a cluster of between 3 to over a dozen CoreOS nodes each running REST-based services inside of Docker containers.

So how do we monitor the health of all these services when they’re all running on different servers? Here I’ll very briefly introduce 3 different options for you. The good news is that they’re all free, deployable as Docker containers and easy to set up.

1. Rancher

I’ll start with the newest and most exciting option. Rancher is actually a complete platform for operating and managing Docker services and service monitoring is actually just one of its many features. While the idea is to deploy and manage your entire cluster of containerised services using the Rancher Web Interface or Rancher Compose file, we’ve found that it just doesn’t offer the level of flexibility that we need that CoreOS offers with fleet and etcd.

But that’s OK! You can still use Rancher to monitor host and container health as well as view container logs and perform basic container management, all with just these two steps:

Start a single Rancher Management Server:

docker run -d --restart=always -p 8080:8080 rancher/server

Run the Rancher Agent on each host (example only):

sudo docker run -d --privileged -v /var/run/docker.sock:/var/run/docker.sock rancher/agent:v0.7.9 http://<ManagementServerIP>:8080/v1/scripts/C799D5A9F3671B2A48FE:1234939100000:UztzC0Yc3Bfg1liXAwZk3hLhGre

Below are some images of the Rancher Web UI of one of our small dev clusters.

2. Watchmen

Watchmen is a super simple web service monitor with not much to it - and that’s why we like it! To get started you just need to specify the services you want the daemon to monitor by editing a couple config files as described on their homepage.

Drop that and any other config files you wish to specify into a directory on the server and run one of the containers that already exist:

docker run -d -v=/watchmen-config:/srv/watchmen/config --name=watchmen -p 3000:3000 sroegner/watchmen


3. Consul

Consul is a much more sophisticated and popular option that is more than just service monitoring. Usually this makes it more difficult and time consuming to deploy - but fortunately some kind soul has created a very elegant Docker image to start you off:

docker run -p 8400:8400 -p 8500:8500 -p 8600:53/udp -h node1 progrium/consul -server -bootstrap -ui-dir /ui

There are literally hundreds of other options including popular open-source frameworks such as Sensu and older platforms such as Nagios. I’ve presented these three as they illustrate the varying complexities of the tools available and they are very current projects that are easy to deploy with Docker. Happy service monitoring!

Docker- Rapid deployment for your web applications.

By William Le.

So what’s this ‘Docker’ thing I keep hearing about? What can it do for my application deployments and should I start using it?

Here at ACA, we use Docker to capture and abstract our own applications (CoTag Media and ACA Engine) and their operating environments for rapid deployment and extensive portability.

Docker is an exciting new software virtualisation technology that encapsulates applications  into portable and immutable images that run as ‘containers’ than can quickly and easily be re-deployed across various flavours of Linux. The containers are much lighter weight than virtual machines both in terms of size (usually hundreds of megabytes instead of many gigabytes) and hardware requirements.

There is even an online repository of official and user-contributed Docker images - significantly reducing the installation and configuration time usually associated with the deployment of most of these applications.

To compare, let’s install and configure Elasticsearch with some plugins that we use:


Normal Ubuntu Elasticsearch Installation

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java8-installer

java -version


tar -xf elasticsearch-1.6.0.tar.gz

cd elasticsearch-1.6.0

sudo ./bin/plugin -install mobz/elasticsearch-head

sudo ./bin/plugin -install transport-couchbase -url



Docker Elasticsearch Installation

docker run --net=host aca0/elastic 


As you can see, once you’ve created a Docker image that snapshots your desired application, its dependencies and configuration, download and execution can boil down to single line. This line can be added to a Linux service configuration unit (we use systemd on CoreOS) which makes for simplified service installation. Furthermore, your custom Docker images can inherit existing Docker images - image creation is rarely ever from scratch.

We customise our own Docker images (CoTag API, CoTag Video Processing, Couchbase, Elasticsearch, nginx, Redis and Watchmen) that automatically discover each other using etcd and talk to each other’s RESTful web services. During initial deployment, each of these images are automatically pulled from the cloud onto new servers and executed by a CoreOS cloud-config file.

A cluster of a dozen servers that would typically take several days to set up (including database redundancy, backup, service monitoring and outage notifications) can now be done by me alone within a few hours. If your company deploys their web applications for each new enterprise client, then you should definitely be checking out this technology.

#TechTip Creating dynamic control interfaces

by Stephen Von Takach 

Here at ACA we do a lot of corporate meeting rooms. On the surface you may think one size fits all, however this fairly narrow domain is actually quite diverse and is a great example of the challenges faced managing the internet of things.

Above, boardroom, seminar rooms, open spaces and small meeting rooms in a single snapshot. One interfaces works across all spaces.&nbsp;

Above, boardroom, seminar rooms, open spaces and small meeting rooms in a single snapshot. One interfaces works across all spaces. 

Clients often find it surprising to hear that it is much easier to integrate with booking systems, including outlook or google calendars for example, in concert with occupancy detection or people tracking, to automatically set up a room (turn on displays, drop the blinds, set the volume levels, adjust the lighting and indicate the room is in use etc).

FindMe by Microsoft can find people based on location sensors and proximity to WiFi access points. ACA can use this data to trigger control events.&nbsp;

FindMe by Microsoft can find people based on location sensors and proximity to WiFi access points. ACA can use this data to trigger control events. 

The challenge is providing users the tools to make adjustments and customise their experience!

Where rooms use different hardware, physically function in different ways and have different features, a good system will provide consistency in both behaviour and branding across heterogeneous spaces.

We approached this problem by breaking it down into independent and manageable components.

  1. We chose the web as our platform for ubiquity

  2. Systems are defined as a collection of devices / things

  3. User Interfaces work with any system, detecting what features to display

  4. JSON configuration ties it all together

The JSON not only defines how the system is to work, it provides all the information the interface needs to represent the system.

Example tablet interface

Example tablet interface

Example Mobile Interface

Example Mobile Interface

Above. An example interface in tablet and mobile view. The interface will change automatically based on the screen-size. I.E If you browse to the control URL on your tablet you'll see the interface on the left, if you use your phone you'll see the interface on the right.  

To avoid any duplication, JSON configuration can be supplied by zones, which are analogous to tags, allowing systems to inherit configuration and apply customisations as required.

This makes it easy to create and update multiple systems, maintaining consistency whilst reducing the risk of error.

You can see our meeting room configuration guide as well as our system management guide for a more detailed look at how a room is configured.

Setting up a room in ACAEngine's admin interface

Setting up a room in ACAEngine's admin interface

Interface templates are typically static web applications that communicate with ACA Engine servers, inspecting system configuration to determine what they should display.

To simplify the process of creating a new template we used AngularJS to build a meta language that extends HTML5 to avoid having to write javascript. Allowing designers to build responsive interfaces, focusing on what they do best.

One issue still remains, Interfaces are interactive applications and designers probably do not have access to hardware or even ACA Engine! So using modern web tool kits (NodeJS, Bower, Gulp) we provide a control system emulator so you can test designs against a range of configurations completely independently of any hardware - with instant updates as you edit.

Test and Emulate your interface

Test and Emulate your interface

By utilising standard technologies, utilising best practices and embracing openness not only will most designers be able to build and modify interface templates, they might even enjoy it too.


#FridayDemo Room booking panel with built in payments

Each room has it's own URL and can be presented on any tablet through the browser. This connects to MS Exchange and shows the day's bookings.

IMG_0747 (1).jpg

When you tap on the timeline you can make a booking. The price will update based on how many hours you book. When you select the pay button it will ask you to sign-in to your digital wallet. 




Login and pay. Once you make the payment the door will unlock and the projector will turn on. 


Watch the video demo here...

BYOD AV control interface

AV Control has typically been in the hardware domain- black boxes with LED lights and a bank of serial connections. The user interface for these devices are also proprietary touch panels that require special design software to create interfaces. In the last 20 years this has been the standard approach to professional AV.  Not much has changed in that time.

Meanwhile, web technology has exploded. New front-end and back-end technology has provided a platform that exceeds the possibilities of touch panels by the likes of AMX, Crestron and Extron. At the same time, the smart phone adoption rate has been rapid in all major markets. This means most of your customers have the ability to control the space around them with the mobile device in their pocket. 

As ACAEngine is completely web-based there are no special requirements to access the user interface of an AV system. Simply browse to web address setup for the space you want to control. There is no need to buy, install or manage a special app- the built in browser is all your customers need.

How to access a web-based user interface in a BYOD solution

  • Provide an access point that displays the URL of the system
  • Alternatively use mobile technology such as NFC, QR and iBeacon to auto launch the URL from the access point (see example below)
  • The user can save the web interface to their home-screen and launch it in full screen
  • ACAEngine integrates with your corporate authentication system so you can manage who has access to the interface

QR Codes, NFC chips, iBeacon and URLs can be used to launch the control interface on your customer's mobile device, tablet or laptop.

QR Codes, NFC chips, iBeacon and URLs can be used to launch the control interface on your customer's mobile device, tablet or laptop.

Cost Benefit of BYOD interface. A 30 room AV project compared to AMX. 

$150,000 saving when removing the need for an AMX Touch panel per room. There will be further savings when removing the master controller hardware and programming fee for each touch panel.

*This is an estimate based on the $5-6000 (AUD) cost of a 10" AMX MXT touch panel.  

User interface running through the Chrome web browser in full screen

User interface running through the Chrome web browser in full screen

6 reasons why Microsoft is at Infocomm for the first time.

Earlier in the year there was a lot of buzz around the announcement that Microsoft will exhibit at Infocomm 2014 for the first time.  This was particularly exciting news for our team at ACA as we have focused on IT standard solutions in the AV market for the last four years.  In fact, many of our projects run completely on Microsoft solutions- from the cloud to the device.  It is very clear to us why Microsoft are at InfoComm Click through our top 6 reasons why we think Microsoft has an interest in the AV trade show. 

Apple to release home automation product this week. What does this mean to the professional AV industry?

consumer products can create misguided perception and expectations in the professional industry



Home automation is needed now more than ever.

The internet of things has created a problem. How do we get all our network enabled devices working together in the home? No one wants to use five different Apps to turn on the lights, unlock the door, turn on the TV, control the climate or check the energy consumption status. What is missing is a single platform to make home automation a seamless experience.

We have been solving this problem in professional AV for a long time and some AV automation companies such as AMX and Crestron have branched out into the home automation markets. This however, has never really taken off due to the high cost of their proprietary hardware and the requirement for a specialist programmer to setup.  

This week (or sometime in the near future) Apple are likely to announce their home automation platform. It is still unknown what this will entail but one thing is certain to be true: the high barrier of entry imposed by AMX and Crestron will be removed. It will be simple enough for anyone to setup and will connect multiple network enabled devices in the home to one centrally managed platform. 

Effects on the Professional AV market. 

Anyone working professionally in the AV industry knows the problem that consumer products can create: misguided perception and expectations. The best example of this is 'the home theatre syndrome".  On an individual level, all enterprise customers are also consumers. ‘Home theatre syndrome' is when they have been to their local electronics store, purchased a flat panel display for their lounge room for under $1000 and are then understandably confused when you quote $3000 for a commercial display for their corporate meeting room. Ultimately, they think you are ripping them off.  They do not understand that the commercial display is rated for 24/7 use for 5 years, has standard control protocols and that their consumer displays would only last a couple of months in the corporate environment. 

There is also an expectations gap due to consumer technology. I do not necessarily think this is detrimental as it is only calls for improvement in the professional AV market.  Apple is an example of this, first with Apple TV and now with home automation. When the enterprise customer is at home they can wirelessly present their MacBook or iPad to their TV through AppleTV. It is easy and eliminates plugging in an HDMI cable. They then want this functionality in their corporate meeting rooms so they hire an AV system designer who informs them that the only thing close to providing this functionality is a $15,000 hardware product and you'll need one in each room. Apple TV cannot be used as there is no way to manage it across the network in multiple rooms.  The customer is not happy as the industry is way behind the consumer market (although WebRTC is likely to change that soon). 

I've provided both these examples as I believe Apple's home automation product will create a similar problem. It will be easier to setup than enterprise control systems and the cost is likely to be significantly lower. The customer that crosses over to the enterprise will now expect the same in their workplace, University or retail chain. 

However, the difference is that unlike Apple TV there is an enterprise equivalent of Apple's home automation. We have been selling it for four years. It's a web based control system that is easy to setup, brings every component together through one HTML5 user interface and most importantly scales to 1000s of rooms/buildings from one web-sever. 

ACA is excited to see Apple push the home automation industry forward and make people think differently about automation and control in the enterprise space- this is where we come in.

Will ACA ever move into home automation?  Yes- but we'll keep it web-based, control every home from our cloud servers so it is completely device agnostic and scalable.  We'll keep you posted on this as we continue to move quickly in the enterprise markets.  

Jon McFarlane.