This is the documentation for the final project for the course Generating and Expressing Data taught by Professor XY.
Thoughts upon this project
I usually begin my documentation with the description of the technologies. However, I would like to take advance the thoughts part, and talk about the ideals first.
This project comes from the mid-term assignment where I basically collected all the code I had written before and ran some analysis upon the code to reveal the change of their relative abundance through time. I wasn’t really thinking of anything grave of serious that I should like to see conveyed through it. It was, to be honest, more of a remark of personal history and experience than an shout-out towards the larger audience.
Before I began working on the final project, I decided that I needed a clear outline of what this project was intended to say to people so that they would not get confused staring at it, having not the slightest hint barring the ever-scrolling lines of code on the screen. I thought for some time and came up to this point where I believed putting together the cold-blooeded, unfeeling yet unknown words and the readable, apprehendible and alive scription of what this code is for, could be giving them a mixed sense of technologies, in reflection of the mixed attitude of modern people towards the convenience technolgies have brought them and yet the repelling reluntance to accept technologies as an essential part of their life.
This being said, the initial thought of having multiple displays lying in a row, in pursuit of a visual impact remains unchanged.
The program part is written on the base of the mid-term one, but ported from Processing to p5.js for better cross-platform compatibility, considering that mobile phones were at first, included as a part of the show. New source code generated during the period of the second half of the semester is processes with the same principle and ran the same analysis. Wikipedia and other second-hand source of introduction of the language is collected by a bot and cleared of unnecessary format and noise. Comments restored from the source code that remains a somehow complete structure are also added in between the introduction, though in a rather small number.
There major technology difficulty is porting the program onto p5.js. Most part of the code worked well and required little modification, whilst the one subsystem in relation with HiDPI (aka. Retina on Apple computers) which offers a general solution for displays with various native resolution, especially those with very high ones, such as 4K. p5.js did not, as observed, support a scale factor that is not integral. In other words, scale factor such as 125% and 150% was (and still is) not supported. The solution is choose from the closest integer either one and then zoom the page in the browser to make the visible area meet the up/downscaled resolution in p5.js.
The Text-to-Speech part did not take up much attention for that there had already been a standard called Web Speech API serving such use. It could be found on the Mozilla Developers’ Network and offered a detailed documentation on its application. Google Chrome took the advantage of its own private translation service and provides with the Web Speech API a lot more choices other than the ones coming with the local system. That was the most important reason for choosing it.
So in case that the audience still didn’t get my point, I wrote a brief note and placed it at the left of the stall, in the hope that the words could offer them some assistance understanding the project.
Photos coming soon.