A number of projects have come across my path recently that led to this blog post and I suspect a few more down the line. One project involved the creation of several one off demonstrations and the other a project to help use modern technology to teach STEM subjects in schools. On the surface these projects have little in common with each other but digging a little deeper it turns out there are some interesting overlaps.
The core of both projects involved connecting small devices in various forms to traditional computer systems and the creation of applications to visualise data from the devices and enable interaction with the devices.
They key with the demonstrations was to create them quickly yet ensure they look good. The key with the teaching project was to make it simple for novices to create new lessons/experiments involving devices and applications that can interact with them.
In recent years a number of technologies have emerged that enable the creation of application programs using visual coding and the integration of applications and devices using visual integration. These are not new concepts but the two technologies described below do so in a modern yet powerful and easy to understand way. First is Scratch for the visual programming aspects and second Node-Red for the visual integration
Scratch a project from MIT that has been around for a few years and is mainly aimed at teaching kids how to program. Not surprisingly it leans towards the creation of highly visual and interactive programs. Scratch 2.0 came out earlier this year and has some neat additions including:
- There is no longer a need to download the Scratch program to your computer. All of the coding occurs inside of a Web Browser.
- Completed applications / projects are stored in the cloud
- Projects can be shared with others.
- The source for shared projects is available to learn from and can be used as a starting point for creating new applications.
Node-Red is described as “a visual tool for wiring the Internet of Things“. It is very visual like Scratch but has a different aim. Its main goal is to enable systems that do no naturally communicate with each other to be “wired” together with minimal effort. In many cases no coding is required, just the wiring together of nodes.
On the surface these two technologies look like they have the ability to fulfil the requirements of the projects described above. Experiments performed and what I learn will be captured in future blog entries.