Junk: The Green Flashlight

The Work (in progress)

The Inspiration

The inspiration for this project came from another project I did a while ago, on a different continent, with far less electronics understanding than I have now. In short, I needed to light up and make “interactive” a sign, with no access to wall power. The result was A Hand Cranked LED Sign.

That project started me thinking about different sources of energy, and how we so easily take for granted electricity that comes out of our walls. I have thus been thinking about sustainability in Interactive Media for a while, and this week’s assignment was a wonderful catalyst to get started experimenting. My goal is to create a flashlight that is both portable and powered completely by the user. Continue reading “Junk: The Green Flashlight”

Benevolent D***tator

This is a response to one of Week 3’s readings, about the creator of Linux stepping down.

I had no idea. For some reason in the back of my mind the Linux project was always associated with a grassroots, community-based, stick-it-to-the-man mindset. The few people I know who openly admit to being Linux power users are unconventional, and (to me) have a sense of what it feel like to not be part of the mainstream. As such, those people are some of the most considerate I know. It was a shock to have such a stark contrast revealed in the Linux leadership.

Further, the term “Benevolent Dictator” also has a strong identity in my mind. The government of the UAE is often thought of as a benevolent dictatorship. The power is almost absolute and unquestioned, but the ruling family very clearly has the nation and the citizen’s best interests in mind. The other ‘Benevolent Dictator’ that comes to mind is Ton Roosendaal from Blender. From what I’ve seen he also works hard to foster a welcoming and compassionate community around his software. To be fair I did not put much thought into it until now, but it did not occur to me that the leadership of a software that is based on community contributions could be so antagonistic towards the community.

The good news is that as of this week the Linux foundation has revised (read: implemented) its code of conduct, based on the contributor covenant. In itself this does not solve the problem of aggression and discrimination in tech, but hopefully – along with continued bottom-up pressure from the community – it helps, and acts as a precedent for the future.

Blender Website Accessibility Audit

For this weeks assignment I have reviewed the Blender website with regards to the Web Content Accessibility Guidelines. I used the Chrome extension WAVE.

The results of the WAVE test are not exactly outstanding. At first glance there are 22 errors and a number of alerts and notes thrown in to boot.

Screenshot of Blender webite frontpage with WCAG errors overlaid

The errors all have to do with missing metadata: all of the image on the page are missing alt text, and there are a few links which do nothing.

Screenshot of Blender website listing detailed accessibility errors

The alerts are also of concern, since they point to a number of structural flaws in the page. The most notable alert is that the page doesn’t have an h1 tag. Given that the WCAG  suggest a strict heirarchy of information, the fact that the page does not have a ‘top-level’ of information is a cause for concern. The second alert notes that there are two elements which seem like headings (the “About” and “Get Involved” sections), but they are not tagged as headings. These elements are definitely headings of their respective sections, and should be tagged as such. The final alerts note a number of redundant links and text elements, where the same links or metadata are repeated twice or more. This creates unnecessary repetition for screen readers navigating the page.

Screenshot of Blender website with alerts overlaid

Finally, the additional notes on structure of the page point to further areas of potential difficulty for screen readers. WAVE points out three heading level 3s next to each other, although from the look of the page that structure makes sense since they are similarly-important sections. The system also points out that ordered lists should be used in cases where order of information in the list matters.

Screenshot of Blender website with structural notes

The real indictment of the website, however, happened when I actually tried to use a screen reader on the site, Windows 10’s built in Narrator. In comparison to the Microsoft Help page, the blender page is a lot more difficult to navigate. Without clearly defined ‘Landmarks’ it is difficult to navigate to the particular section that you would like, whereas on the Microsoft page clearly defined sections allow quicker and clearer navigation across the whole page. In addition, the lack of link descriptions becomes more apparent, when the narrator reads out “Link” with no more information. Finally, on the Microsoft help page is it relatively easy to navigate across the body of the page using the header tags (h1, h3, etc), but on the Blender site the only three header tags are arbitrarily in the middle of the page, so there is no way to use the headings scan function to quickly scan the content. Here is a screen capture of me trying to use various scan functions of the Windows 10 Narrator on the Blender website, occasionally switching to the Microsoft Help page for comparison.

2018-10-16 10-48-21

Overall, navigation on the Blender page with a screen reader is possible, in that you could search through every single item to find the one you want, or listen to the full url description for every link. However, the Microsoft Help page, although not perfect, makes it clear how important thoughtful structure and WCAG guidelines are. With clear sections, links that have helpful names, and without redundancies in title and link names, it is a lot less tedious to navigate the Microsoft page than the Blender page.

Visual Language Postcards Assignment

Part 1:  Poster Composition

Poster v1 Poster v2 Poster v3

Part 2: ITP Show Postcard draft

This design is a total shot in the dark. I wanted the initial grab to be simple and reflect the physicality of attending an ITP show; the playfulness. The image here is just a stock, I’m hoping over the next week to replace it with an ITP- specific image. I also, however, wanted there to be some depth; to describe the more intimate nature of the shows. Inspired by Danny Rozin’s mirror, I thought each pixel of the larger image could be made of the letters forming a variety of descriptive words about the show..

The code to generate the text-based background is on GitHub

The Most Useless Dataset

The prompt was simple: create an open-source data set and publish it to GitHub.

In an effort to make the world a less serious place the dataset that I’ve tried to create is an entirely useless one: it is a dataset of the people who have viewed the dataset.

That was the intention, at least. In it’s current state it’s barely a proof-of-concept, although I think I have carved most of the foundations for the project out at this stage.

The code lives here, and the (currently broken) resulting website lives here.

This project is a total experiment in the workings of git, GitHub, and servers. I’m running a node server on Heroku, which uses a GitHub repo of your server files to build your server.

The server is also running a node-based wrapper for git, so it sees itself as a git repo, a branch of the original. The server fetches data from the GitHub repo that it is built off (the original) and updates its local files based on that, while on the client side the raw.txt data is rendered on screen.

Finally, once a user navigates to the site, the server makes a change to its local raw.txt based on user information, commits it to its local branch, and pushes that to the remote branch (main branch/origin/master?). I have hidden my credentials in the environment variables of the server to allow  for authorised pushing.


The problem is it doesn’t really work that well. Partly because the way I’m updating files is a bit slow, and there seem to be chunks of data missing out, but mostly because I think something is going wrong with Heroku, node.js, git, and their interactions. The process works fine when I run it locally, but once I push to Heroku, although I receive no errors or crashes, the GitHub files do not update.

I’ve learned a lot about navigating git in the command line, so I don’t consider this a complete failure, but I’m a little disappointed that the final step in the process was the one that broke everything…