When I was 12, I was given a Raspberry Pi. For the first couple of days, it was really fun. After I had browsed the web for a while and played a bit of Minecraft, it sat in it’s box for a few months. I really had no idea what to do with it. That was until I discovered that I could build a website with it.
Although the PiGlow visualisation of CPU usage was pretty, we reckoned we could go a couple of steps further and integrate a much more complete tangible solution – a hardware-driven load monitor dashboard.
Made of cardboard.
This was to be driven by two high torque servos (Ben had them lying around) which would rotate according to whichever performance indicator we chose. Servos are not, of course, very good pointers so with a trusty craft knife to the fore we re-purposed some Pi packaging into a cardboard user interface.
My father, Ben Anderson plays with numbers. As his Twitter bio says “big data, small data, open data, any data”. He works with R a lot and has been persuading me to take a look at it. I’ve held off until now because I’m all for analysing data in real time (primarily using delightful JS libraries such as Chart.js and D3.js). As far as I understood it, R is geared towards static data analysis and because of that, is able to utilise the hardware it runs on to optimise computations. Dad has an SSD in his Mac which reduces the time to load data substantially, but he also makes use of the R package data.table. This library makes manipulation of data ridiculously fast as it stores it all in RAM.
Note: Healthy was launched about 5 months ago but I’ve only just got around to writing this post.
On Nov 3, 2015, SubjectRefresh spent a day in London at the annual Open Data Institute Summit, where we gave two presentations on our Young Rewired State Festival of Code 2015 Refresh app.
We were also challenged to create an application using open data that gets people to eat healthier. We came up with Healthy, a calculator that tells you “the time to burn” of a particular food.
It’s built on top of Node.js and uses Socket.io to communicate with the browser in real time. This means no page refreshing, no Ajax calls and no latency. We use an API to collect the information about the food the user has requested and then use some algorithms to figure out how much time doing a particular excercise is needed to burn off the calories.
I worked mainly on the algorithms to extract the information from the API and also wrote a large amount of the main JS for the Node.js web server and Socket.io integrations.
The code is available on GitHub and you can try out Healthy now at http://subjectrefresh.info/healthy/!
During the YRS Festival of Code 2015, “SubjectRefresh” and I created a revision app called Refresh. It’s built using Node.js and works by scraping the exam board website (currently only CIE) for the PDF for the syllabus the user has requested. The PDF is then converted to HTML using a PDF to HTML converter and is then shunted through Node’s Cheerio library. We then find out where the relevant information in the HTML is and send that off to TextRazor.