I was able to perform a liveupdate with demo applications provided in Harmony 2.04 for the PIC32MZEF Starter Kit. Below are the steps that I followed:
The Amazon Echo Dot is based on the DM3725, a Digital Media Processor from TI:
This convenient device includes a microphone and an ADC embedded that is always waiting for a keyword to wake up, then it processes and convert the audio into a sequence of characters, yes, just like Siri does.
The chip costs only 23$ so it is possible to design an Arduino shield and deploy them in strategic rooms: the kitchen, the living room and maybe the toilet 🙂 Imagine that those Arduinos are connected wireless to a Raspberry PI that controls the sound system or the central heating of the house.
Therefore, the PI will be able to control some appliances in the house with some verbal commands like “play music”, “start the heating”, etc.
Now image that the same commands are available on a web server. The only difference is that you need to type them but this allows you to do remotely the same things as you were at home.
[https://github.com/thommay/chef-rewind chef-rewind] is a Ruby gem that is needed by most of wrapper cookbooks, as it allows easy overriding of steps inside Chef recipes. A separate recipe for installing chef-rewind should not be needed under normal circumstances, but most of the machines in the LAN don’t have access to https://rubygems.org (which is needed to install external gems). Therefore we have a minimal recipe that copies the gem file to the nodes and installs it locally.
Over the past 2+ years I have been working as a sysadmin of a Linux network using bash scripts, Make files, etc. The most useful tools I have learnt so far is Chef for something called “configuration management” 🙂 In a nutshell, Chef is used to deploy the same configuration in multiple server in an iterative manner.
At this context I use Docker containers to test the “recipes” before deploying them in real machines. Sometimes I have some containers that I would like to share with other colleagues. Let’s see how to do it.
How to build an image
You have two options: (1) using the docker build commands (there is a registry of images on the web of docker) or (2) using a Dockerfile that looks like something like this:
FROM ubuntu:14:04 COPY, ADD, EXPOSE, RUN apt-get
You can interact with the host machine: port forwarding, shared folders, etc.
How to run the container
docker run <image> exec <command>
More drawings …