Test Automation for Embedded – Part 1

September 1st, 2015 | Bob Ensink | Development


At SpinDance we use Agile methods when developing software for our customers. An essential element to this Agile approach is ‘Continuous Integration’. The practice of Continuous Integration requires developers to commit their code to a shared repository on a frequent, often daily, basis. The purpose is to integrate the changes from one developer with the very latest code from all the other developers on the same project. This practice allows us to measure whether the project is progressing (new features are working correctly) or regressing (completed features are no longer working). Successful integration happens only by passing these three steps:

  • conflicts among the code changes are resolved,
  • the software can be built without errors or warnings, and
  • the software passes all of its tests.

The first step is initiated by the developer who makes a decision that their code is ready to be submitted for integration. This developer is responsible to resolve all conflicts between their changes and the changes that other developers have made. It is, essentially, a manual process performed with the help of tools. It can be done effectively only in the context of a version control system which manages changes, detects conflicts, and requires that they be resolved before accepting the developer’s new code into the repository. Resolving these conflicts does not, however, guarantee a successful integration;…

Read more

The Cloud: What is it?

August 27th, 2015 | David van Geest | Development

I used to think that the word cloud, when used in a software context, was a rather nebulous marketing buzzword. In many cases, it still is. But, I’ve come to regard specific usage of it as a useful addition to the software development lexicon. Why? What is the cloud, and why does it matter? In this first post of a series, I would like to address that first question.

At SpinDance, when we refer to the cloud, we are often talking about a software application running on one or more Internet-accessible computers. A very simple example of a cloud application might be a website implemented in Ruby on Rails and backed by a MySQL database.

But haven’t we had websites for decades? If the concept has existed for so long, why has this new usage of the word cloud increased in recent years? In my opinion, the cloud has connotations that go beyond traditional websites.

Many of our projects at SpinDance have a cloud component. But, many of these projects also have other components, typically mobile and embedded. The cloud component might receive data from a thermostat, process it, and provide it to an Android application. Together, the three components form a system. Historically, Internet-connected applications did not work together with phones and embedded devices nearly as much as they do today;…

Read more

Scala for Android

August 24th, 2015 | SpinDance | Development

I have been doing Android development for about five years now, using the traditional tools and language (Eclipse, and now Android Studio, Java). And though I’m comfortable and happy enough with Java as a language, I’ve always had an itch to explore other languages. So, when I encountered a post online a couple of years ago, about using Scala to develop Android apps, I was intrigued. I didn’t have the time then to look into it in more detail, but some brief digging seemed to indicate that it was possible, but not a widespread practice at the time.

Then, recently, I had the opportunity to do a presentation at a local conference (Google I/O Extended – Grand Rapids) and decided that would be a good time for me to finally investigate the topic of Android development using Scala.

What is Scala?

Before my presentation, I was only vaguely familiar with Scala (even though our cloud team uses Scala regularly). Scala stands for scalable language and it’s a JVM-based language, like JRuby and Clojure. The language was created by one of the key contributors to the Java language itself, Martin Odersky, and from my initial investigation, seems to be a well-liked language with some powerful features. One of the biggest features it provides is direct support for functional programming. The language does not force the user to do functional programming,…

Read more

Problems Solved: Fixing Ruby and OpenSSL on Mac OSX

August 21st, 2015 | Nathan Brinks | Development

Some time ago, Apple discontinued the use of OpenSSL; however, Ruby still uses OpenSSL to perform secure communications. One of the prerequisites for installing Ruby often is installing OpenSSL. In my case, this is done using Homebrew by issuing the command brew install openssl . Everything should be working correctly now, right? I am afraid not… In my case, Ruby failed to authenticate requests and was generally incapable of performing secure communication….

Read more

OAuth Explained through an Example

August 21st, 2015 | Conor Livingston | Development

I’ll start out by explaining the problem that OAuth solves. Before explaining how OAuth solves it, I explain a pre-OAuth solution and go through its weaknesses. Then I explain how OAuth works and how it addresses the weaknesses of the pre-OAuth solution. Note: This article attempts to introduce the general concept of the OAuth protocol and does not go into detail about the differences between OAuth 1.0 and OAuth 2.0. See the resources listed at the end for further reading.

The Problem

Meet Joe. He is an average internet user. His favorite place to get the news is a new startup called WorldNews (made up company, of course). This morning he was browsing WorldNews and came across a fascinating article. Naturally, he wanted to share this article with his friends. Joe and all of his friends are on a new social networking site called ChatDeck (also a made up company), so he wants to share the article via his ChatDeck account.

To his delight he notices that on WorldNews’ site, at the bottom of the fascinating article there is a Share via ChatDeck button. Joe clicks the button, and then the problem arises: WorldNews needs authorization from Joe’s ChatDeck account before it can share the article on his wall. At this point the question emerges: How should Joe authorize WorldNews to access to his ChatDeck wall?…

Read more

SpinDance to Sponsor Upcoming IChallengeUth Tech Education Program for Middle School Students

August 5th, 2015 | SpinDance | News

MICHIGAN, August 5, 2015 – SpinDance, Inc. of Holland, Michigan, will sponsor a one-week IChallengeUth session to provide hands-on technology experience to middle school aged youth in mid-August. SpinDance will host a group of students at their company headquarters in Holland, where the SpinDance team will support students as they tackle real-word technology business challenges.

IChallengeUth is a summer educational opportunity, where incoming 7th and 8th grade students develop solutions to real problems submitted by local businesses and community organizations. During the week of August 10-14, 2015, students will pair with master teachers from the Ottawa area, and a “coach” representing the sponsor organization. The students will then present their solutions back to a panel of leaders from the sponsor company and other professional judges.

IChallengeUth is part of the Ottawa Area Intermediate School District’s (OAISD) futurePREP’d program. A central goal for this program is to prepare all Ottawa area students with the skills necessary to be successful in achieving their personal life goals. Through the annual futurePREP’d program, OAISD offers innovative tools and experiences to help students make decisions that will positively impact their careers and quality of life for decades.

As part of sponsoring IChallengeUth, SpinDance will team with the OAISD to invite young students who have expressed interest in advanced education and career planning. According to Kyle Dannenberg, Development Coordinator for the OAISD,…

Read more

Google IO Event

SpinDance at Google I/O Event

May 15th, 2015 | SpinDance | News

SpinDance to Provide Keynote Address as a Platinum Sponsor of Upcoming Google I/O Event in Grand Rapids

SpinDance, Inc. of Holland, Michigan, will participate as a platinum-level sponsor at the upcoming Google I/O Extended conference in Grand Rapids this month. SpinDance Software Lead, David Keenan, will provide a keynote address on the features and benefits Scala offers Android development.

Google I/O, held this year at Moscone Center West in San Francisco, California, is one of the premier technology conferences in the world. Google I/O features highly technical, in-depth sessions focused on building web, mobile, and enterprise applications with Google and open web technologies such as Android, Chrome, Chrome OS, Google APIs, Google Web Toolkit, App Engine, and others.

To leverage the tremendous popularity of the event, Google created I/0 Extended for local developer communities to stream the event live, plus add a layer of local speakers and breakout sessions to complement the program. The local Grand Rapids event will be held in the Loosemore Auditorium at the Richard M. DeVos Center, courtesy of Grand Valley State University, on Thursday, May 28, and Friday, May 29.

SpinDance, Inc., located in Holland and Cascade, Michigan, is a provider of systems engineering and software development services to companies across multiple industries throughout Michigan and beyond. Since its founding in 2000, SpinDance has helped its customers build and deliver connected,…

Read more

SpinDance honored as a Michigan 50 Companies to Watch Award Winner

March 17th, 2015 | SpinDance | News

SpinDance of Holland Recognized and Honored as a Michigan 50 Companies to Watch Award Winner

MICHIGAN, March 17, 2015 – Nearly 60 companies from across the state will be honored at the eleventh annual Michigan Celebrates Small Business event on May 7, 2015, at the Lansing Center in downtown Lansing.


Awards include the Michigan 50 Companies to Watch, Main Street USA, Small Business Innovation, Government Contractor of the Year, Small Business Person of the Year, Small Business Exporter of the Year, and more.

SpinDance, Inc., located in Holland and Cascade, Michigan, is a provider of software development services to companies across several industries throughout Michigan and beyond. Since its founding in 2000, SpinDance has helped area manufacturers build and deliver connected, smart products. SpinDance has recently focused its attention on the growing “Internet of Things” where it is already finding success.

Mike Ellis, President of SpinDance, is thrilled to be recognized as a Michigan Celebrates Small Business Award Winner. According to Ellis, “This award is the culmination of our long-standing commitment to provide customers with the innovation, design, and quality software required to realize their connected product goals. We are proud to be headquartered in West Michigan and play a role in moving our state forward as a technology leader.”

The Michigan 50 Companies to Watch Award,…

Read more

Building the SMART Product Future

August 28th, 2014 | SpinDance | News

Source: Rapid Growth Media

Written by Steven Thomas Kent

The street-level entrance to Spindance at South River and 10th doesn’t betray much. A modest white foyer table and a big painting of an Inception-style silver spinning top (a skeletal red sketch of which serves as the company’s logo) adorn nondescript taupe tile that could signal a bank lobby, a real estate office or any other average local business.

But up the stairs and behind the grey door at the rear of the lobby, there’s a bustle of high-tech activity on the second floor: Dozens of employees bash at keyboards and consult together over bright screens amidst a maze of desks, while flat-panel TVs overhead tick off news, weather, project updates and various cryptic-looking metrics.

The conference room overlooking the street bears the name “Missile Command,” which seems about right. Compared to many West Michigan tech startups, where bean bag chairs and dorm-room lighting abound, the inside of Spindance looks like a mini-Pentagon.

A humble exterior masking heady, cutting-edge work has been a bit of a Spindance hallmark up until now. The Lakeshore software company’s website, laced with terms like “real-time embedded systems,” doesn’t offer many clues to the average layperson as to the kind of work they do. At least, not until a re-design launches this week. The company hasn’t put a great deal of resources into outbound marketing,…

Read more

Congratulations FIRST Robotics World Champion

April 28th, 2014 | SpinDance | News

SpinDance is so proud to have sponsored team #74: FIRST Robotics World Champion winners!


Read more