chap 1 examples

main
km0 2 years ago
parent 8677ea4502
commit 66ece1840a

@ -71,10 +71,39 @@ Far from being just an isolated problem, this crudity is deeply embedded in the
Ellen Ullman's accounts of the emotional dumbness of her _real programmers_ colleagues give an insight of a problematic behavior, first intercepted and then capitalized by the IT industry. _"In meetings, they behave like children. They tell each other to shut up. The call each other idiots. They throw balled-up paper. One day, a team member screams at his Korean colleague, 'Speak English!' (A moment of silence follow this outburst, at least.)"_ (Ullman, 2017)
Programming means to deal with picky stubborn machines that don't overlook a single typo. It requires a high tolerance for failure. It is frustrating. But to project this frustration onto other users, as in the `Read The Fucking Manual` response to a request for help, it's a form of negative solidarity (Fisher, 2013) that poses serious barriers to the participation in the making of software.
Programming means to deal with picky stubborn machines that don't overlook a single typo. It requires a high tolerance for failure. It is frustrating. But to project this frustration onto other users, as in the `Read The Fucking Manual` typical response to a request for help, it's a form of negative solidarity: others should suffer as I did when trying to understand how code works.
Mark Fisher used this image in the context of labor under capitalist realism, where workers are forced in precarity and isolation. Here as in a downward auction, people are driven to bring down each others. (Fisher, 2013). I'm using it with a focus on the emotional component: not just lack of empathy and solidarity, but also reproduction and legitimisation of toxic behaviors in coding communities.
When all the energies are invested in debugging, the quest to find and solve all the problem in a program, and no space is left for introspection, programmers start behaving as machines. This poses serious barriers to the participation of others in the making of software.
Here some examples that go in a different direction.
p5.js is a Javascript library started by the artist Lauren McCarthy as online porting of Processing. `write a bit more to contextualize`
The work of documentation around p5.js offers entry points to the world of programming, taking care of not taking too many things for granted. The amount of care and efforts in their tutorial about [debugging](https://p5js.org/learn/debugging.html), for example, results in a welcoming article with different levels of accessibility. Here the drawings help to visualize complex concepts, the tutorial format is beginner-friendly, and the narration makes for an interesting reading also for who is already familiar with debugging.
One of the most frightening aspects of programming is to be confronted with stack trace errors: when things don't work as espected and red error messages show up. These scarlet letters delivered by code are useful for developers to identify where in the program the error happened, but often they are dense of technicalities and difficult to decipher. Worst case scenario for beginners. The explanations from the p5.js Education Working Group tackle on this nightmare showing not only how to read technical errors, but how to think through them with different debugging methods. From here the stack trace error starts to get less alien and scary, less like a wall and more as a starting point to solve a problem.
Another reflection on entry points and gatekeeping comes from the english artist and writer James Bridle. Their practice explores the cultural and ecological impacts of digital computation, walking and jamming the thin line between what is showed and what is kept hidden in the technological landscape we live in.
In the artwork `welcome.js` (2016), a tiny Javascript library published open source on GitHub, Bridle inject some greetings in their website (and in all the websites that include the library) to welcome the user to the console of the browser inspector. From here they provide some guidance for newcommers to access, inspect and modify the source code of web pages. A process to open doors and let people in, giving them more agency by demistifying technology.
The script comes in response to a similar, but opposite, violent message printed by Facebook in the console on their website to halt users from accessing the page markup. The platform adopted this approach to prevent scams and Self-XSS attacks to their users, that could have been lured into running malicious code in their own browsers by malicious people.
```placeholder
screen welcome.js
```
```placeholder
screen console fb
```
In response to the halt message printed from Facebook in the browser' inspector console, Bridle developed a tiny Javascript script to welcome people to the console.
Instead...
```note
lowering barriers
- debugging (p5.js education working group, 2015)
@ -96,4 +125,21 @@ lowering barriers
- often documentation doesn't offer entry points for beginners, or a sense of direction, this esp a problem with hypertexts
```
Writing code documentation is tricky because requires some degree of astral projection. Who's writing is asked to leave their body and describe code from a different perspective. From the point of view of someone else. Unlearn what seems to be obvious and be generous with future readers.
Who is going to read this piece of documentation?
Target to reach vs public to create
Learn to code is like learning another language: not just a new bag of words and a different grammar, but rather a different way to think. It means not just learning what are the things that move and the ones that are fixed, but also how they relate and make meaning together.
Coding means to express ideas with the reduced vocabulary of a programming language.
when writing need to share a way to think to software
vvvv is a visual programming language that offers an agile approach to prototyping, adoperated especially in the context of interaction design. It's focused on rapid and iterative work of fine tuning, necessary when dealing with real time inputs, such as sensors, live data, or human interaction.

Loading…
Cancel
Save