You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

286 lines
11 KiB
Markdown

2 years ago
---
title: Coding Contingencies
---
This introduction is not a written as a text, but runs a simulation.
2 years ago
Coding Contingencies (CC) is a procedural take on how different characters got to code.
How did they choose a particular programming language, a coding paradigm, a development environment, an infrastructure where to run the code, and so on? These are not just technical choices, but rather coding contingencies.
2 years ago
1 year ago
Personal decisions, trending technologies, curiosity and boredom, to name a few. A talk on esolanguages as form of frugality, a collegue passionate about live coding that drags you to an algorave night, a crypto-boyfriend, the tech stack of a company, a drastic turn of events, etc. etc.
2 years ago
These contingencies are situated in precise contexts.
Programming then is not just sharing code, but sharing context.
It's providing a point of view and a perspective to look at the world, before attempting to get some grip onto it with a script.
Using the simulation as a writing machine we can articulate these CC with some benefits:
1. Suspension of judgment
2 years ago
Within the scope of the simulation it's not necessary to label good or bad choices.
(That would have been the case for a machine learning writing device, for example)
One character could decide one morning to write their own operative system from scratch using Red Stone circuits in Minecraft, and it would be fine.
Due to the nature of the process, even the most absurd starting point it's a valid and powerful narrative device.
In this way it becomes easier to explore marginal cases, improbabilities, and non-conform situations.
2 years ago
2. Discrete temporality
2 years ago
A simulation does not happen all at once, instead it is a process that evolves through time.
This happens in both discrete steps and long-term iterations.
Discrete steps can be further subdivided or grouped together, with the possibility of magnifying details, and the ability of zooming in and out a story.
Long-term iterations are a way to keep asking _what's next? what's next?_ to the machine. At every cycle, the simulation reaches out to each partecipant and asks for an update. In this way all the actors and relations develop in parallel.
2 years ago
3. Partiality
2 years ago
Partecipants entangle gradually, and do not come as a monolithic block.
They can be imagined as lines: merging together and branching away, tying and loosening knots. (Ingold)
1 year ago
This leads to multi-facets characters, where not all the elements needs to interact with each other all the time.
Their interfaces can be loose, they don't need to be one hundred percent compatible to come together. (Haraway)
2 years ago
2 years ago
4. Orientation
2 years ago
Zooming in and out from the particular, we get a glimpse of a more gradient and diffuse process.
A subtle sense of direction emerge from the initial randomness.
(By design) the simulation sees software as a mean to orientate these trajectories.
2 years ago
How does certain programming languages facilitate certain ways of thinking, and totally block some others?
2 years ago
2 years ago
This procedure helps us to think about software as cultural object. Something "deeply woven into contemporary life economically, culturally, creatively, politically in manners both obvious and nearly invisible." (Software Studies, 2009), and not just as technical tool existing in a vacuum.
2 years ago
1 year ago
## notes for the intro
- this cuold be the whole thesis but ok
- intro is a readme file
- the intro is a first chapter to aknowledge software as cultural object
- and to propose software documentation as a surface to renegotiate the making of software
- the software and hardware circumstances of code (Marino, 2020)
- but also the relation with _non-code entities_ (Mackenzie, 2006)
- sociality around software
- how should the format of software documentation inform this writing ???
- could these premises be embedded in the simulation?
- Other approaches, more theoric
- (maybe this goes in another direction, keep for later)
- or it could be part of the key points
- refine approach refering to ANT ?
- Latour ~ Haraway ~ Barad
- ANT ~ Kin
- OOO quadruple object & Software as unknown ?
- maybe not here but
- every piece of source code is is only ever partial (Marino, 2020)
- then here is the plan
- _how should the format of software documentation inform this writing ???_
- defining the simulation
- outline key points
- Suspension of judgment
- Discrete temporality
- Partiality
- Orientation
- different ways to approach the relation betwen software and context
- each one could be used to highlight certain aspect
- Discrete Temporality
- a way to present how the hype for a particular coding language grows
- ie: list of trending video on yt, threads on twitter, conferences
- how languages get popular and then forgotten
- how these istogram video of language popularity are done ? find sources
- temporality could also be a way to explore events of the past
- not every simulation must be set in the present
- (or rewinding back simulating causes instead of effects)
- ie: Ulman account on childish developers culture (Close to the machine, Life in code)
- ie: Richard Gabriel timeline for example (Pattern of software)
- Temporality could also be non uniform!
- ie: using the timespan of new commits in a version control system, gradually fading away when a project stops being maintained
- Could be interesting to read What the Dormouse Said
- Suspension of Judgement
- exploration of margins, fy shuffle and normal distribution
- uncommon or absurd setup (why are they absurd?) (what is the norm?)
- meta exploration: or exploring thing we dont understand (software as unknown?) (like esolangs)
- a way to investigate and build on disproportion of means:
- ie: all the js of react + all the css of tailwind + all the backend infrastracture of netlify to run a TODO list
- ie: the extreme quest for frugality in permacomputing projects such as 100R or DuskOS
- is not redemption arc for bad guys
- Partiality
- (that could also be read as multiplicity)
- focus on the same actor in different contexts:
- ie redstone circuits
- used to develop a virtual minecraft into minecraft itself
- but also cited by hito steyerl when talking about the overflowing of internet into real life, as well as the sinking of real life into internet
- but also expanded by modders to build different red stone dialects, forking the original one
- another example is:
- reclaimed technology
- tech deployed for military purposes recontextualized for medical uses (find exact references look at software studies lexicon or bridle ! ways of being)
- Orientation
- level of details
- zoom out to outline trends
- less about single characters
- more about their surroundings
- online communities! investors! sponsor! etc.
- and then zoom in for wrapping up
- ideally: to a distance within reach ? is this naive?
- software as a mean to orientate narratives
- narratives as a mean to orientate software
- ideally: gravitating towards documentation as an ideal surface where to act
- to orientate our use of code in the world
- structure
- other than these four features of the simulation there should be a structure
- with a clear structure the simulation can be more heterogeneous
- aggregate materials and references
- no need to be discoursive
- could be evocative
- think are.na
- TODO:
- define steps of the simulation
- setup
- things to simulate
- how to define things (ANT & OOOg)
- iterate
- visit each thing for every iteration
- build on previous iterations
- how to break out from the loop ?
- how to introduce new things / actors ?
2 years ago
```
------+.
|`. | `.
| `+--+---+
| | | |
+---+--+. |
`. | `.|
`+------+
```
2 years ago
Software Contingencies
2 years ago
the simulation
first we need things to simulate:
- actors
- programming languages
- use cases
the simplest simulation
aha how do we define actors?
it reminds me of this OOO statement:
objects sink into themselves
that is an effective and graphical way to describe technical reference pages and auto generated API specs, with nested nested nested layers of list.
to avoid that
let's define actors not for what they are but for what they do
(that is fun bc then i wrote grandma, that means functional grandma, that means not someone that has grandchildren but someone that does grandparent functions ??? ok this is not fun anymore and i am sorry)
> notes
- expand simplest simulation: few elements, 1:1:1 relation
- more context for the ooo statement, or keep it for later
- the grandma joke is not super fun
- actors
- web designer
- interaction designer
- graphic designer
- musician
- teacher
- student
- grandma
- programming languages
1 year ago
- c
2 years ago
- javascript
- python
- vvvv
- pure data
1 year ago
- haskel
2 years ago
- rust
- use cases
- research
- work
- art
- fun
- activism
then we need to combine thigs from the three categories
00 web designer, rust, activism
01 teacher, python, work
02 grandma, rust, fun
03 interaction designer, vvvv, art
04 musician, pure data, work
05 musician, haskel, research
06 student, python, art
07 student, javascript, work
08 student, javascript, fun
09 graphic designer, haskel, research
2 years ago
...
side note
the first in a series
NOT is the series on theory in italian by NERO editions
their first pubblication was Capitalist Realism, Mark Fisher and it was a declaration of intents.
at some point every first is a declaration of intents.
but is that so also in random generated series?
at first one is tempted to write: no
the random generated series is random, and its first element is random as every other.
but taking a step back, zooming out, one wonders: which element is the first? where is the declaration of intents?
could the command that generate the random series be the first, significative, element of the series itself?
now that the setup is done, the simulation can start.
to build something meaningful out of these random combinations we can balance between what is defined and what is not.
leveraging on the unknown of the simulation gives room for narrations.
so for example we have #04
```
a musician what is their background?
which kind of music do they play?
where are they based?
using pure data an open source visual programming language
works in real-time
focus on interaction and sound design
for work which kind of occupation?
is it for interactive installations?
to teach sound design?
for live gigs?
```
2 years ago
see how there are a lot of open questions in the first and third fields, while the programming language is slightly more defined and fixed. this is a good starting point. obviously a programming language is vast and complex and with dozen of features one could be interested in, but for the sake of our system it is useful to leave these things unsaid.
we can use the software as a pivot to orientate the relation between the actor and their intentions.
from where they are coming and where do they want to go?
who took them there?
what do they need?
which particular aspect of pure data resonates with their view of the world?
is it the open source nature and the licensing of the source code?
the welcoming community thriving around the programming language?
or the visual paradigm that facilitates the thinking about and connecting abstractions together?