Skip to content

history

EricGebhart edited this page Jun 9, 2021 · 1 revision

History

This started out as a zsh script to identify, test, and flash a particle.io board. The script can be found in the repo.

The option parsing of the script turned into a REPL out of frustration with developing the process.

The boards and services are finicky, and the ability to be able to create repeatable snippets of processes was the way to go. Two pieces might work individually and not one after the other, or the device would disconnect for a moment. It was a pull your hair out kind of experience.

It then turned into Python.

The original python version 1 of SPR now lives on as The Particle Board REPL. PBR is an application layer built on top of the previous version of SPR, which was a bit of a pain to extend. PBR is now a standalone application that embodies the old version 1 of SPR. The same could be done with SPR 2, as the mechanisms used by PBR to extend SPR are still there.

I built the REPL first and started converting all my functionality to python. This particle board process also needed wifi, the concept of a device, usb handshaking, device waiting and dialog prompts among other things.

So in the end, it was really nice, and it did what was needed relatively easily. Actually creating a working process from the parts took very little time.

Then I added barcodes. which prompted namespaces, importing, better help, paths... And now there is SPR 2.

But it's job and purpose are really to provide a simple interface which can configure a process that can be built by writing a little bit of python. With the infrastructure taken care of the python code is simple and the gratification of building an application that can be given to anyone is really high.

Original need

The original need, was a process to interact with a particle board and a person, in order to do a variety of steps that would register, test and flash a particle.io based device, to it's completed state. To be able to do that process once, or interactively over and over.

That purpose came with a variety of requirements, that come with many applications. It should be Documented, configurable, easy to maintain, use and adapt. It needed wifi, and dialog windows, and a way to execute shell commands. Possibly ssh, and barcode reading and writing. The ability to easily update to a new process remotely.

The ideal that has been held in mind in SPR's creation, which was born of the initial shell script, is to create an easy to use tool that will enable the creation of repeatable processes which are easily configured. The processes could be interactive or not, dialog and a cli interface are provided for that.

Text translation was always a possibility, so all messages should be configurable.

It needed to also be self documenting, such that it could be easily understood and reasoned about.

It should be easy to import and use python code and leverage the abilities of python and libraries with a glue that is easy to understand and compose.


Clone this wiki locally