blog-banner

Thoughts on CES 2017: Wireless Power, Real-time Vision, and More

February 10th, 2017 | Brian Tol | Opinion

Late in January, some SpinDance engineers sat down to discuss the products and technologies that were announced at this year’s Consumer Electronic Show, also known as CES. Every year, there are literally thousands of products demoed and/or announced at CES, many of which never make it to market.

We’ve found the best way to process CES is by first looking at the overall trends, and then discerning the real value of the newly-announced products. Below is an edited transcript of the first part of our conversation. We’ll post the second half later in March.

The engineers around the table included Sean Hamstra, Karl Jager, Chris Samuelson, Brian Tol, and Ty Zoerner.

Real-time Vision & Molecular Scanning

Brian: I was really intrigued by some of the vision products announced at CES. There are some companies doing some really cool things, like the Aipoly AI product, and Consumer Physics’ molecular scanner. It’s basically a tricorder that identifies the chemical composition of things.

Karl: I agree. I see the application for that technology a lot more than some of the other products I’ve looked at.

Ty: Yeah, The AI product was neat. Imagine being a blind person, and you’re at the store. You point your phone at the shelving, and it tells you “here’s Pepsi”, or “here’s Coke,” etc. Really helpful.

Sean: And I was surprised how quickly it could identify things….

Read more

IoT Notes: Smart Bricks, Open Standards, and IoT for Cows

January 17th, 2017 | Brian Tol | IoT Notes

With the holidays firmly in the rearview mirror, SpinDance is looking forward to an exciting 2017. The IoT space continues to rapidly evolve, so we thought we’d try something new this year: in addition to long form blog posts, we’re going to start highlighting interesting news and technology in a series we’re calling IoT Notes.

SpinDance operates at the intersection of technology, business, and user experience. Those are the lenses we’ll be using to comment on the state of IoT. We’d love to hear from you; and if you have an idea for a topic or a reaction, please drop us a note at hello@spindance.com or tweet us at @SpinDanceInc.

IoT Bricks… The Good Kind

Sometimes software can “brick” your devices, but this time around, that’s a good thing. SpinDance engineer Chris Samuelson, and Pete Hoffswell, Broadband manager at the Holland Board of Public Works, are working to develop LoRa-enabled brick pavers to help monitor Holland’s snow melt system, the largest in the country. They both recently presented at the annual StartUp Weekend sponsored by Start Garden in Grand Rapids, MI.

New to LoRa? Chris wrote up an excellent tutorial on Hackster.io describing how to make a low-cost, single channel LoRa gateway using a $10 module and a Raspberry Pi….

Read more

Alexa Integration

Whirlpool Introduces Alexa Integration and More At CES 2017

January 10th, 2017 | Brian Tol | Engineering,News

The Consumer Electronics Show just wrapped up, and, as usual, there is a massive amount of IoT news to sift through. There were thousands of products announced, and miles of press coverage to read. We’ve been closely watching CES back at SpinDance HQ, and in the next couple of weeks, we’ll be sharing our thoughts on the winners and losers, and what CES says about where IoT is heading.

But today, we wanted to focus on one of our favorite clients, Whirlpool, and highlight some of the announcements they made last week. We’ve been working hard to support their IoT initiatives, and we wanted to discuss some of the technology behind the announcements.

Alexa Integration

Amazon’s voice assistant Alexa was huge presence at CES this year, and Whirlpool announced they are integrating 20 appliances with the service in 2017. It is a well-architected system: Amazon does the heavy lifting of voice UI and provides a clean API to developers. We’ll be blogging about Alexa later this month, and our approach to integrating major appliances, IoT platforms and voice services. We’ve been testing this in house for a while, and we think consumers are going to love it.

Dash Replenishment For the All-One Washer Dryer Combo

An all-in-one washer/dryer combo? Sign us up! Beyond the obvious labor saving benefits, this appliance includes integration with Amazon’s Dash Replenishment service….

Read more

Patching the Internet of Things: IoT Software Update Workshop 2016

July 29th, 2016 | Bob Ensink | Development,Systems

“There’s a huge problem with the Internet of Things and we need to do something about it.” That was the invitation that brought participants to the Internet of Things Software Update Workshop (IoTSU) held at Trinity College, Dublin on June 13 and 14.

The Workshop was organized by the Internet Architecture Board (IAB), a standing committee of the Internet Engineering Task Force (IETF).  Based on our deep involvement in the IoT space spanning multiple industries, SpinDance was invited to submit a position paper to contribute to the workshop.  Our paper was one of several used to set the agenda for the workshop.  I was fortunate to attend as one of the SpinDance representatives along with Eric Smith, SpinDance’s VP of Engineering, and authored a blog post about the workshop for IETF.org.  You can read the full blog post here.

Read more

Reactive REST Services with Akka-HTTP

July 25th, 2016 | Greg Straw | Development

Overview

If you’ve heard of Reactive Application Development, or Reactive Programming, then you’ve likely heard of Akka. As described in our post: Introduction to Akka, it’s one of the most comprehensive tool sets available for developing highly concurrent, reactive applications. Akka comes from the authors of the Reactive Manifesto itself, and comes complete with a wide variety of capabilities. Akka’s actor based concurrency model simplifies the development of highly concurrent and parallel applications, and is one of the foundations of Akka itself. The Akka-HTTP modules provide tools for both providing and consuming HTTP services. This article shows how Akka-HTTP may be used to expose REST services for your reactive application.

Define the Route

For this example, we start with a very simple REST API, initially consisting of a single resource “health” that responds with a 200 response when the service is alive. Akka-HTTP defines a Domain Specific Language (DSL) for describing a set of HTTP routes and the handler for each route. The DSL provides a set of directives that may be used to compose a route’s structure and specify the handling logic. The code below shows an example of an Akka-HTTP route definition in Scala. The route defines a single resource “health”, and a single GET operation on that resource that elicits a response….

Read more

Connecting Electric Imp and SmartThings

June 8th, 2016 | Dave Meyer | Development

There are a myriad of Internet of Things (IoT) cloud and hardware providers out there, all competing to be the platform upon which you can build your next great gadget. Two of these providers are Electric Imp and SmartThings (now owned by Samsung). These IoT providers have two very different approaches to the world of IoT:

Electric Imp

  • Sells hardware targeted to developers($20)
  • Leverages the Squirrel programming language in an online development environment
  • Leverages Electric Imp hardware modules
  • Does not include tools to build a customer facing UI, but instead allows the developer to implement their own database and front end.
  • Has an offering to run an instance of their cloud on your equipment, protecting you in case they are bought out/go out of business etc.

SmartThings

  • Sells hardware targeted to consumers (the Arduino Shield retails for $35)
  • Leverages the Groovy programming language in an online development environment
  • Is set up to talk to any hardware, provided the customer has the SmartThings hub ($100)
  • Has a cloud solution that is largely geared towards developers, and has tools for designing a mobile UI that will be displayed in their mobile app
  • Privatized platform instances not available

Both systems have strengths and weaknesses,…

Read more

Introduction to Akka

June 7th, 2016 | Brian Ensink | Development

SpinDance has started using Akka to build microservices that add new features to existing cloud applications. Akka is a toolkit for building reactive, message driven distributed applications using the actor model. Our experience with Akka has been very positive so far and we plan to continue using it not just to add features to existing systems but also to build entire distributed, scalable and fault tolerant cloud applications. This is our first blog post about Akka and a brief overview of the topic. We will have more to say about Akka in the coming weeks.

Actor Model

Akka’s foundation is the actor model. An actor is a container for state and behavior. You can think of an actor as a small computing engine. Actors are fairly independent from each other and can only communicate by sending messages to other actors. An actor has a queue, or mailbox, of incoming messages which it will process in order.

An actor does not have its own dedicated thread but instead many actors are executed on a thread pool. Actors may be executed concurrently but an individual actor is only processing one message at a time. The actor views the world as a single thread which eliminates the need for expensive thread safety code within the actor. Actors are also executed in parallel in contrast to other event driven systems….

Read more

Living the Values – A Perspective on Receiving Advice

June 3rd, 2016 | Mike Stroud | Uncategorized

My son was practicing basketball last night. Every time an athlete made a move that led to an unfavorable result, the coach blew the whistle. She would explain the consequences of the move, give the athlete a couple of other options with predicted outcomes, and then let the athlete execute whichever move they chose without further interruption. It was a brief interrupt that occurred no more than once each time they crossed the court. She would praise their second effort by focusing on choice rather than outcome. As I watched, I was impressed with how she kept the advice brief and the players in control of their task (the basketball).

That’s when it occurred to me. When receiving advice anywhere and at any time, what most of us desire is an experience similar to what I saw at basketball practice where the ball remained in the athletes hands and encouragement followed the coaches interrupt. Sometimes this doesn’t happen and instead we receive advice from someone who takes over our task or tells us explicitly how to do the task. Now, I’m not talking about the person who does this infrequently. After all, we have each done it at one time or another and on occasion it is necessary. For those cases we need to put it behind us.  What I am talking about is when it is recurring and the next incident occurs before the prior incident is forgotten….

Read more

Boot Selectors and Loaders for ARM Processors

June 2nd, 2016 | Karl Jager | Development

Boot loaders and selectors have long been a part of embedded applications. At their core they are designed to be run for a short period of time before the main application takes over. The responsibility of the boot application is to perform all necessary functionality before the main application is started. This could be loading the main application in preparation for its execution or selecting which application to run. While they usually do not get much attention at design time, it is extremely important to ensure that they are bug free because they are not designed to be updated. If you have a bad boot application you can make it impossible to upgrade your devices, or even worse, make bricks out of them.

Loader vs. Selector – What’s the Difference?

There are two types of boot applications that we will look at here. They differ mainly based on how many versions of the main application can be stored on the device.

If the amount of memory in your design allows for two copies of the application, then the boot application can be simplified by implementing the firmware update process in the application itself. In this approach, one copy of the application can erase the other copy and then download a new version into the empty application slot. The boot application then is just a boot selector that is responsible for checking the application slots to see if an application is present and valid,…

Read more

OpenStack Horizon

May 5th, 2016 | David Rodriguez | Hosting,Systems

Horizon

There are times where you just don’t remember all of the command line arguments you need in order to interact with a particular OpenStack service.  You find your self throwing the keyboard and just saying give me the GUI.   Well Horizon is here to help you.  Horizon is built using the Python Django framework and it allows you to create machines, networks, manage users and many more things.  You may find there are some features that you are not able to perform via the GUI, but for the most part the Horizon project is up to date with the CLI.  Different vendors will customize the Horizon GUI and make it there own, by adding branding and changing colors.

51089882

Closing

Over the last couple of weeks we have given you an introduction to the world of OpenStack.  We have attempted to touch on the main parts, but like any product of this size there is a lot more to cover.  We will attempt to provide tidbits on OpenStack as we continue our journey.  Make sure to check back on this blog for future OpenStack updates….

Read more