Introduction

Objectifs du séminaire

  • S’interroger sur le numérique
  • S’interroger sur la culture numérique
  • S’interroger sur la littérature numérique
  • S’interroger sur la littérature à l’époque du numérique
  • Proposer une réflexion théorique sur la littérature en général
  • Proposer une réflexion théorique sur le monde

Le séminaire depuis 2015

  • 2015: littérature pornographique
  • 2016: littérature et réalité
  • 2017: littérature et espace
  • 2018: littérature et éditorialisation
  • 2019: l’écriture
  • 2020: le code

Les objectifs de cette année

  • Comprendre ce qu’est le code
  • S’interroger sur le rapport entre code et écriture
  • S’interroger sur le rapport entre code et littérature
  • S’interroger sur le rapport entre code, culture et politique
  • S’interroger sur ce qu’est le monde à l’époque du code

Pourquoi le code?

  • L’importance du code dans notre monde - algorithmes, plateformes, intelligence artificielle, enjeux politiques
  • Le Numérique, les numériques et la pluralité du code
  • Nécessité d’une analyse humaniste du code
  • Lire le code comme un texte
  • Code studies
  • Littérature et hermeneutique

Calendrier

  • 09-09-20 -> Introduction, enjeux
  • 16-09-20 -> Qu’est-ce que le numérique
  • 23-09-20 -> La modélisation du monde
  • 30-09-20 -> Les code studies
  • 07-10-20 -> Software et écriture
  • 14-10-20 -> Qu’est-ce qu’un algorithme?
  • 21-10-20 -> Semaine de lecture - Rendu 1 (Wikipédia)
  • 28-10-20 -> La matérialité du numérique
  • 04-11-20 -> Formats et protocoles - Le protocole HTTP, les formats HTML et XML
  • 11-11-20 -> Markdown
  • 18-11-20 -> Les versions et le protocole git
  • 25-11-20 -> Envie de pleurer: le format docx
  • 02-12-20 -> Conclusion

Rendus

  • Wikipédia : 24-10-20
  • Texte (plan 24-10-20, texte final 14-12-20)

Wikipédia

Wikipédia est désormais devenue une de nos sources principales d’information. C’est la seule plateforme communautaire en ligne qui puisse concurrencer par impact avec les grandes multinationales du web (Google, Amazon, Microsoft etc). Participer à cette encyclopédie est une manière utile pour comprendre les enjeux de l’écriture numérique mais aussi une bonne manière pour contribuer à la production d’une connaissance libre et publique.

Dans le cadre du séminaire chaque étudiant devra contribuer de façon continue, pendant 45 jours sur Wikipédia. Il est impératif qu’il y ait au moins 30 contributions distribuée sur 30 jours différents dans la période des 45 jours.

Les contributions devront commencer le 10 septembre et finir le 25 octobre. Je veux des contributions distribuées dans le temps: il faut que les 30 contributions soient faites pendant 30 jours différents. Dans les 30 contributions ne seront pas comptées deux ou plus contributions faites le même jours. Je vous conseille cependant de dépasser largement le nombre minimal de 30 (on nombre optimal se situe autour de 60/100).

Avant de commencer à contribuer lisez la documentation suivante:

Les contributions doivent être liées aux sujets dont traite le cours et peuvent être du type suivant:

    Des ajouts (au moins 2 ajout majeur et 10 ajouts mineurs). Un ajout majeur est l’écriture ou la réécriture d’un paragraphe ou d’une section. Une contribution mineure, l’ajout d’une référence bibliographique, par exemple, d’une date, d’un lien etc.
    Des corrections de forme (au moins 10) - (orthographe, style)
    Wikification (au moins 5) - consultez la documentation de wikipédia
    Participation à la discussion (au moins 3)

Compte-rendu d’expérience d’environ 3000 signes espaces compris déposé sur votre espace wikipédia personnel.

Vous devez juste déposer votre nom d’usager (pas le mot de passe!) ici sur studium. AVANT le 25 octobre.

Texte

Un texte d’approfondissement sur un sujet du cours, appliquant les principes d’analyse des code studies. Le texte peut s’intéresser par exemple à un algorithme, à une plateforme, à un format ou à un protocole.

Le sujet doit être proposé le 24-10-20 et doit inclure:

  1. Un titre
  2. Un court résumé (300 mots)
  3. Une bibliographie

Le texte final doit être soumis le 14-12-20

Ces deux documents doivent être produits en markdown et transformés ensuite en HTML et éventuellement en pdf

Comment faire? Lisez le tutoriel ici

Outils…

  1. text editor
  2. isidore.science
  3. Zotero
  4. Hypothes.is

Qu'est-ce que le numérique?

Qu'est-ce que le numérique?

Plusieurs questions… par exemple :

  • numérique et analogique
  • Signification culturelle
  • Internet et web?
  • en ligne ou pas seulement ?
  • Crise institutionnelle
  • numérique et politique
  • Moderne, contemporain... numérique

Le numérique au sens propre

représentation de la réalité via des éléments discrets et atomiques qui correspondent à des nombres naturels

  • s’oppose à analogique: représentation du réel via un signal continu, “analogue” au réel

Il pleut…

  • Prendre une photo
  • Enregistrer le son
  • Décrire la situation
  • Percevoir l’eau sur la peau
  • Mesurer la température, le pourcentage d’humidité de l’air, la taille d’une goute, le spectre de la lumière…
  • etc…

Unités atomiques et discrètes

Par exemple:

  • goûtes de pluie de forme x, taille y, poids z, à hauteur h

L’échantillonnage

La base 2

Base 10 Base 2
0 0
1 1
2 10
3 11
4 100
5 101
6 110
7 111
Base 10 Base 2
8 1000
9 1001
10 1010
11 1011
12 1100
13 1101
14 1110
15 1111

La base 2

  • 11 en base 10 signifie: 1 dizaine et 1 unité (10+1).

  • 11 en base 2 signifie: 1 couple et une unité ( et donc en base 10: 2+1=3)

  • en base 10 avec 4 chiffres je peux exprimer: 104 = 10x10x10x10 = 10000 chifres (en effet de 0 à 9999)

  • en base 2 avec 4 chiffres je peux exprimer 24 = 2x2x2x2=16

  • en base 2 avec 8 chiffres je peux exprimer 28 = 256 (un octet)

Mais à l'aspect technique s'ajoute un aspect culturel

  • Discours (hi-fi, immatérialité etc.)
  • Pratiques
  • Changement de perception

Immatériel?

Caractéristiques?

  • Discrétisation - et modélisation
  • Multiplicité
  • Calculabilité - algorithmicité
  • Matérialité: l'espace numérique

Implication politiques

  • Modélisation et naturalisation
  • Algorithmes et production du sens - Page Rank
  • Données pures?
  • Machine et compréhension

La modélisation du monde

Trois étapes

  • modèle représentationnel
  • modèle fonctionnel
  • modèle physique

Les trois étapes ne sont pas étanches!

Les “limites” de la machine?

  • une machine ne peut pas…
  • le topos de l’humain qui excède la machine
  • l’angoisse de l’intelligence artificielle

Le modèle représentationnel

  • donner une description en langage naturel de quelque chose

Exemples de modèles représentationnels

  • Une voiture part un matin de Montréal et, en prenant l’autoroute se rend à Ottawa. L’autoroute part de…
  • Andréa et Camille s’aiment. S’aimer signifie: …
  • Proust est un grand écrivain.

Le modèle fonctionnel

  • Transformer la représentation en unité atomiques discrètes et définir des fonctions pour les traiter

Exemples

  • Une voiture = 1 objet O
  • Autouroute = ligne droite de 198 km
  • Vitesse de O = 100 km/h
  • Heure de départ = 10h
  • Fonction pour calculer temps = t =e/v (198/100)

Exemples

  • Andréa et Camille = A et C
  • A et C ont une série de caractéristiques C à un certain niveau x:
    • C1 amour de la culture, valeurs de 0 à 10
    • C2 implication politique de 0 à 10
    • C3 …
  • Fonction pour calculer le niveau d’amour qui lie A et C: calcul des différences de caractéristiques pondérées selon le critère z

Le modèle physique

  • Implémenter le calcul fonctionnel dans une machine de Turing réelle.

calculable = computable

Les limites des machines

  • limites physiques (temps et espace)
  • limites computationnelles
    • Incomplétude (Gödel)
    • Non définissabilité (Tarsky)
    • Decision problem - Hilbert’s Entscheidungsproblem (Turing-Church)
    • Halting problem (Turing)
  • Syntaxe et sémantique (Searle)

Mais non !

Ces problèmes ne concernent pas la réalité de l’informatique, mais plutôt la théorie de la computation définie selon le programme de Hilbert

  • Oracle machines
  • Unité homme-machine dans les réalités informatiques d’aujourd’hui

Et la représentation?

Code studies

Lire le code

Qu’est-ce qu’on lit?

  • le code lui-même
    • quand il est ouvert
    • un langage de programmation spécifique
    • bibliothèques?
    • implémentation physique?
    • commentaires
    • syntaxe
    • structure des algorithmes
  • documentation
  • historique, commentaires, issues etc.
  • détournements du code
  • code imaginé ou reconstruit (code propriétaire)

Code ouvert exemples

echo 'Hello world!'
print('Hello world!')


section .text
   global _start     ;must be declared for linker (ld)
    
_start:             ;tells linker entry point
   mov  edx,len     ;message length
   mov  ecx,msg     ;message to write
   mov  ebx,1       ;file descriptor (stdout)
   mov  eax,4       ;system call number (sys_write)
   int  0x80        ;call kernel
    
   mov  eax,1       ;system call number (sys_exit)
   int  0x80        ;call kernel

section .data
msg db 'Hello, world!', 0xa  ;string to be printed
len equ $ - msg     ;length of the string

# coding: utf8
# Algorithme pour transformer vers la base 10 un chiffre en une autre base 

X = raw_input('Quel chiffre veux tu transformer en base 10 ? ')
Y = raw_input('Quelle est la base de départ ? ')
print int(str(X),int(Y))


# coding: utf8
# Algorithme pour transformer vers la base 10 un chiffre en une autre base 

# inputs
X = raw_input('Quel chiffre veux tu transformer en base 10 ? ')
Y = raw_input('Quelle est la base de départ ? ')

# définition de la fonction base_to_dec
def base_to_dec(num_str,base):
    num_str = num_str[::-1] #l'opérateur ::-1 inverse un str donc si num_str est 1234 num_str[::-1] est 4321
    num = 0
    for k in range(len(num_str)):
        dig = num_str[k] # il prend un par un les chiffres du num_str. Donc si c'est 4321 d'abord 4, puis 3 etc.
        if dig.isdigit():
            dig = int(dig) # si jamais ce n'est pas un chiffre mais une lettre, pour bases supérieures à 10
        else:    #Assuming its either number or alphabet only
            dig = ord(dig.upper())-ord('A')+10
        num += dig*(base**k) # on ajoute au chiffre en base 10 (0 au début) la multiplication par la base à la puissance de sa position par ex: 4x(5xx4)
    return num

print(base_to_dec(str(X), int(Y)))

Documentation

Un repo github

Immuni-app

Et quand on n’a pas le code?

Software et écriture

L’importance de lire le code

Les niveaux de code

  • les applications
  • haut niveau - la dernière couche de code
  • bas niveau - bibliothèques
  • kernel
  • pilotes

Hardware

  • BIOS etc.
  • intel et compagnie

Free software et libérté

  • Il n’y a pas des dégrées de liberté: une machine est libre ou elle ne l’est pas

Le discours commercial

  • la fausse question de la performance
  • la fausse question de la simplicité

Free software foundation

  • Richard Stallman

Qu’est-ce qu’un algorithme?

Une définition

Ensemble d’instructions qui respectent deux condition:

  • à chaque instruction il est possible de connaître l’instruction suivante
  • si on suit les étapes on arrive à une instruction qui demande l’arrêt.

Machine de Turing

Une machine de Turing

Une machine morale

De la modélisation à l’algorithme

L’exemple des ‘algorithmes de l’amour’

La matérialité du numérique

La liquidité du monde

Forms of modern life may differ in quite a few respects – but what unites them all is precisely their fragility, temporariness, vulnerability and inclination to constant change. To ‘be modern’ means to modernize – compulsively, obsessively; not so much just ‘to be’, let alone to keep its identity intact, but forever ‘becoming’, avoiding completion, staying underdefined. Each new structure which replaces the previous one as soon as it is declared old-fashioned and past its use-by date is only another momentary settlement – acknowledged as temporary and ‘until further notice’. Being always, at any stage and at all times, ‘post-something’ is also an undetachable feature of modernity. As time flows on, ‘modernity’ changes its forms in the manner of the legendary Proteus … What was some time ago dubbed (erroneously) ‘post-modernity’, and what I’ve chosen to call, more to the point, ‘liquid modernity’, is the growing conviction that change is the only permanence, and uncertainty the only certainty. A hundred years ago ‘to be modern’ meant to chase ‘the final state of perfection’ – now it means an infinity of improvement, with no ‘final state’ in sight and none desired. Zygmunt Bauman, Liquid Modernity

Les métaphores

  • liquidité
  • fluidité
  • la mer (naviguer, surfer, cyberespace…)
  • l’éther et l’air (cloud, internet dans l’air…)

La rhétorique de l’immatérialité

  • entre réalité et discours commercial

La matérialité de l’infrastucture

  • et sa persistance dans le temps
    • rémédiation de l’infrastructure (trains, télégraphes etc.)

La matérialité du code

La matérialité de la quantification

La résistance du monde

Le changement rapide?

Internet et le web

Principes

  • Internet: un réseau physique et des protocoles
  • Le web (1.0, 2.0, 3.0)
  • Le format html
  • Serveurs, bases de données et CMS

Internet

  • Réseau de réseau
  • Physique
  • Protocoles (TCP/IP)

Protocoles

Internet protocol: établit les règles d'adressage

  • non vérifié
  • non connecté
  • end-to end
  • distribué

Transmission control protocol : controle la transmission des paquets

DNS

  • Serveurs hiérarchisés et requête récursive
  • Root name server (serveurs racine)

Des enjeux politiques

  • Les protocoles ne sont pas neutres
  • Galloway, Alexander R. Protocol: how control exists after decentralization. Leonardo. Cambridge, Mass: MIT Press, 2004.

Netzukuku

Le web

  • URL (Uniform resource locator) - URN ou URI
  • HTTP (Hypertext transfer protocol)
  • HTML (Hypertext markup language)

Le web

  • Pages web
  • Sites web
  • Applications web

URL

HTTP

Stateless

Méthodes

  • GET
  • POST
  • HEAD

HTML

  • SGML
  • XML
  • HTML
  • XHTML
  • W3C vs Web Hypertext Application Technology Working Group
  • [HTML5[(https://html.spec.whatwg.org)
  • Compatibilité et tolérance vs structure

Serveurs, bases de données et CMS

  • Un web plus dynamique
  • Php (ou autre) et bases de données

Le web 1.0-3.0

  • Web 1.0 : statique
  • Web 2.0 : social
  • Web 3.0 : sémantique

Markdown

Texte brut

caractères sans informations graphiques

  • ASCII

  • utf-8, iso8859 etc.

  • editors, formats et syntaxe

Courte histoire

  • 2002 Aaron Swartz (RSS, redit, CC…) et atx

  • 2004: John Gruber markdown

  • Wiki Markup

  • Github md

  • pandoc md

WYSYWYM

md + yaml + bibtex

pandoc

Versions

Les états du texte

Les multiplications de fichiers

Un protocole de versionnage: git

  • 2005 Linus Torvalds
  • de l’informatique à l’écriture de textes en SH

Les notions de base

  • enregistrer les changements
  • le commit
    • identifier des moments significatif pour l’évolution du texte
  • les branches
    • de multiples niveaux de travail

Word

À quoi sert un ordinateur?

  • à calculer
  • à enregistrer?
  • à écrire?
  • documenter le code

Les machines à écrire

  • pourquoi ne pas utiliser une machine à écrire?
  1. parce qu’on écrit aussi du code
  2. Pour enregistrer

Avant Word

Écrire du code et de la doc, enregistrer et imprimer.

  • 1976 Electric Pencil
  • 1979 Easy Writer - John Thomas Draper
  • 1979 WordStar: WYSYWYG - car notion de page
  • L’ordinateur pour tous - 1984
  • 1983 Word

Les principes

  • interface graphique
  • imprimé
  • bureautique
  • format=software

Les effets

  • la “désintermédiation”
    • perte de compétences
  • la perte de contrôle
  • la perte d’utilité (utiliser un ordinateur comme une machine à écrire)

Conclusions

Les objets des sciences humaines

Il est nécessaire de s’interroger sur quels sont ces objets!

Qu’est-ce que l’écriture?

Qu’est-ce que l’humain?

La pensée critique

Savoir lire

Identifier les points chauds

  • infrastructures
  • protocoles
  • algorithmes
  • structuration des données (data et capta)
  • formats
  • logiciels
  • plateformes