Skip to content

Week 15 Interface and Application Programming

This page documents the group assignment for week 15 of Högni, Jóhannes and Ólöf.

Group assignment:

  • Compare as many tool options as possible.
  • Document your work on the group work page and reflect on your individual page what you learned

Overview and approach

Everybody in our group tried different tools and we documented about each tool on our individual pages.

On this group page we made an overview table to visualize our impression of the different tools and everyone wrote a short review on his or her favourite tool from week 15.

Classification Tool/Programming language Student Interfaces Highlights Downside
low-code Node-RED Jóhannes - - Restricted by workplace regulations due to script execution policies
high-level JavaScript Jóhannes Node.js, Serial TTL, HTML widely spread and used quite accessible and good combination when using with HTML and CSS cannot easily run node.js JavaScript in web browser, complex ecosystem
high-level Processing Jóhannes Terminal, Serial TTL, GUI very intuitive and user friendly very compatible with Arduino IDE -
high-level Python Jóhannes Terminal, Serial TTL, wxPython quite approachable, good libraries, no version conflicts quite complicated to program / understand
high-level Rust Jóhannes Terminal, Serial TTL, Iced GUI large ecosystem Large installation, complicated to read / understand libraries have changed and older code examples stopped working version conflicts
low-code D3 Ólöf Online editor free, open source, wide range of data driven graphics, variety in libraries, user friendly no obvious downsides
low-code Blynk Ólöf Online editor free, many possibilities when interfacing devices, compatible with Arduino IDE, PlatformIO, Thonny... Problems when connecting RPP microcontroller

Reviews of favourite/recommended tools

Högni

Jóhannes

This week all tools I tested, I had never used before and I found it quite difficult to get started and achieve something beyond the "hello world" examples.

I was surprised, how much Processing stood up above the other tools. I never ran into real trouble and all issues I encountered could be usually solved in a few minutes. Because of that, there was a slow, but steady progress and I feel, that I could have easily made a more complex application with some more time and practice. This tool would very likely be the tool of choice for my next application, if there aren't any strong arguments for another tool.

For me, some of the other tools were a real struggle to use and I failed or gave up on some of them.

The second likely tool I would recommend at this point is propably wxPython. It was okay to work with and even though I don't feel comfortable with it yet, I could likely get to a point were I would.

Processing

Ólöf

This week I I chose to look at D3 and it's possibilities. D3 is a free, open source online editor that has broad variety of templates for visualizing data. It is low-level JavaScript based library and it offers multiple ways of displaying all kinds of information. I like the possibilities of D3 so much and could have spent many days checking out different templates if I had the time, but this is all new to me and everything I did took me a very long time. It is highly likely that I will try out more of D3's tools.

Animation and interaction

You can use animation like D3-timer, D3-ease and D3-transition.

You can also use different types of interaction like D3-brush, D3-dispatch, D3-zoom and D3-drag.

Observable inputs

You can use observable inputs like D3-timer, D3-ease and D3-transition

Many examples

You can check out many examples in the D3 gallery.

Fork an example

If you want to work with an example, you can Fork the example into your project folder. You choose if you want your project to be public or unlisted, for a team or just for yourself.

Beginning to work

You need to sign up before working with 3D. You create workspaces and in them you create notebooks. Here below you can see an overview of a workspace and the notebooks created in it. To create a new notebook you click on the plus in the top right corner. From there you can choose to work in a blank notebook or use a template.

Templates

There is a wide variety of templates to work with.

Help panel and database

There are many ways to find information when you begin working with D3. When you are working in a notebook you can click on a question mark to open help panel. You can also search for more information on the website, f.ex. in this summary of data.

Example

Example of interactive globe

This here is an example that Ólöf forked and added longitude and latitude points that show travels of a Humpback whale. More details here.