Christopher
Stoll

Getting Started with Embeded Elixir on Nerves

Screenshot of testing code

In his talk at CodeMash this year, Joel Byler mentioned a platform named Nerves which quickly and easily packages up Elixir projects for embeded applications. Joel said the platform boots in seconds, the framework takes care of all the low-level tasks, and the tooling handles all the work required to convert Elixir applications into embeddable firmware. It sounded too good to be true, so I had to try it out.

Getting up and running was actually super easy; I installed Nerves and built my first app in minutes. And, it did boot up incredibly fast, but that first app didn’t actually do anything. I needed to get my device connected to the wireless network so that I could start doing more interesting stuff, and that is when I ran into problems. I have a Raspberry Pi 2 which doesn’t have built-in WiFi, so I have a TP-Link TL-WN725N USB adapter. Unfortunately, Nerves Raspberry Pi 2 system only supports Ralink RT53xx (rt2800usb), RealTek RTL8712U (r8712u) and RealTek RTL 8192 (rtl8192cu) devices.

My first thought was, “I guess I will have to get the latest Raspberry Pi Zero to get this thing working.” Maybe I just wanted an excuse to buy a new little toy, but I’m supposed to have technical skills, so I shouldn’t buy my way out of this problem. Besides, I have used the TL-WN725N adapter in the past and I knew that there was a Linux driver for it. The question was, how do I get that driver installed in Nerves? Here is how I made it work.

continue reading


Testing the Rails

Testing the Rails

A new year, a new programming language. I have recently started developing web applications using Ruby on Rails, rather than React+Redux on Flask+SQLAlchemy+Sqitch on Python. I’m enjoying the relative simplicity; it allows me to focus on creating complexity in other places, places where it will actually help me produce more features in less time. One area where I like to do more with less is in tests. No one likes to spend coding time writing tests, but it makes development easier and more productive in the long run, so it’s an absolute requirement.

One project I’m working on has an administrative area which is only accessible to privileged users. I needed to write test which ensure privileged users get access and everyone else does not. I could just fill in the default Rails generated tests for the authorized user, then copy and modify them for unauthorized users, but that becomes tedious if I want to check more than two roles.

continue reading


Literally a Single Page App

Inspired by a few talks I saw at CodeMash, I wanted to perform some experiments with React. I just wanted to focus on the React code, not set up build pipelines, so I wanted a single page app which was literally a single page (except for the Javascript requirements, of course). Below is the template I used for my experiments. It is super simple, all it does is source react.development.js, react-dom.development.js, and babel-core from CDNs. I just wanted to document it so that I don’t have to look it up in the future. At the bottom of the page is a larger example which includes some actual React code.

<html>
<head>
  <script crossorigin
    src="https://unpkg.com/react@16/umd/react.development.js">
  </script>
  <script crossorigin
    src="https://unpkg.com/react-dom@16/umd/react-dom.development.js">
  </script>
  <script crossorigin
    src="https://cdnjs.cloudflare.com/ajax/libs/babel-core/5.8.24/browser.min.js">
  </script>
  <script type="text/babel">
    // React code goes here
  </script>
</head>
<body>
  <div id="root"></div>
</body>
</html>

You would not want to use the in-browser babel script for production code.

continue reading


Stranger Things at Coffee and Code

Stranger Things at Coffee and Code

Like season 2 of Stranger Things, Coffee and Code is adding some new characters. One of those new characters is me, Chris. I bring some new skills which will help to round out the Coffee and Code team. For example, while completing a masters degree I worked with a computer vision algorithm called seam carving. Seam carving is a great algorithm to demonstrate how the team’s capabilities are growing since what it does is immediately visible. I’m going to tell you a little about how seam carving works and give some examples from the latest season of Stranger Things 2. There should be no spoilers here, but we will be working with images from the latest season, so you may want to turn back now if you have not watched the entire season yet.

Seam carving is a technique for adding or removing portions of an image without changing the main elements of that image. The devil is always in the details, but from a high level the process is pretty basic. The algorithm analyzes an image to determine which areas are less interesting. Then, it carves seams through those areas in ways which are hopefully not noticeable. Easy peasy.

continue reading


Of Juices mixed with Honey.

Of Juices mixed with Honey.

Found in a very old book1 while researching historical mead recipes:

Honey is the Countrey-mans ſugar, wherewith they often condite Cherries, Goosberies and Pears, Apothecaryes alſo, not for want of ſugar, but by the Phyſicians adviſe confect certain juices, fruits and flowers with honey, and make them into Conſerves, ſapes, and ſyrups: conſerves, as honey of Roſes called by the Arabians Geneljabin, and by the Greeks Rhodomel, which is made of one part of the flowers of red roſes bruised, and three parts of honey deſpumed: Sapes as honey of grapes, which confected of one pound of dry grapes, clenſed and macerated for a whole day in three pounds of water, then boyled to the half, afterwards ſtrained, and mixed with an equall quantity of honey deſpumed: ſyups, as another kind of honey of roſes, which is made of an equall quantity of deſpumed honey, and red roſe juice, the Mercuriall honey, or Mel Mercuriale, is alſo confected after the like manner, and cocted to the conſiſtency of a thicker ſyrup.

continue reading


Open Sourcing My iOS Apps

Markascore
Redactor
Squared
MarkShown

A few months ago I let my individual Apple Developer Program membership expire. I have been working on other projects and have not given enough attention to my iOS apps, and though they still worked, I had not updated them in a very long time. The apps were starting to look dated, and were certainly not taking advantage of the latest development frameworks. So, I decided to stop paying Apple for the privilege of keeping outdated free apps in their store.

Rather than just letting my apps disappear, I decided to open source the code so that other people might be able to use it. The apps are written in Objective-C and C, so that may limit interest in it. But, someone may be interested enough in the seam carving algorithms to deal with the archaic languages.

continue reading


Trip Report: Minister Creek

Trip Report: Minister Creek

Located in Pennsylvania’s Allegheny National Forest, Minister Creek is a great trail for introducing new people to backpacking. It is not terribly difficult and it is perfect for a single overnight stay. So, when Heather said that she would be willing to try backpacking with the boys, our new puppy, and me, I knew this would be the best place to go.

continue reading


Hippocras

Hippocras

The excerpt below was found in an old book1 while researching historical mead and wine recipes. Hippocras is a type of mead which incorporates grapes and spices.

Hippocras. (Also spelled Ipocras and Yypocras). A medicated drink composed usually of red wine, but sometimes of white, with the addition of sugar and spices. The apothecaries called it “Vinum Hippocraticum,” as Menage supposes, being derived from Hippocrates, as being originally composed by medical skill; but Theobald suggests that it was from its being strained in a woolen bag called by the apothecaries Hippocrates’ sleve. It was a favourite beverage, and usually given at weddings. In an old play, to the question “What’s best to drink in mornings?” the reply is “Ipocras, sir, for my mistress, if I fetch it, is most dear to her.” In the Antiquary, another old play, is the line “Drank to your health whole nights, in Hippocras, “ &c. In onl books are many recipes for its composition. (Nares.) The oldest English recipe for this beverage is in Anglo-Norman, in a cooker MS. of 1300, which being short, we copy: —

continue reading