Building a sociogram from mail archives in python and postgres

TL;DR : « I know that as john snow, I know nothing, and it is not a problem »

Foreword : typing in CS is WRONG



People are different. I am, you are, he/she are, it are.

I don't talk about gender, I talk about mileage, life experiences and shit.

Me, I come from being a half thug, half educated (D&D bi-classed) including the local kingpin of forging fake documents for « école buissonière » (skipping school) with my early 90s computer, cheating with pctools, being the kingpin of a ring of cracked software from ranging from amiga to powerPC.

I learned coding not as an educated CS 101 but as a dyscalculic and dyslexic student in physics redeemed by his facility in foreign language especially if they have a germanic touch (french, english, german).

Foreign languages have taught me the power of composition of pre/post positions that are consistent like dé-ménager is opposite on en-ménager which is same as moving-out compared to moving-in.

Also, programming in physic is not the same as programming in CS. We don't have budget for programming hours, so our teacher don't care about elegance and high level programming or low memory consumption. They want easy to read and debug code that works fast. Also, physics has long resolved the typing debate : computer academics are just so high they don't get it.

See : if I have a unit in meter per seconds and I add kilograms, we want the code to crash.

Strongly typed language (including ADA or VHDL) don't have « symbolic consistency » but DATA TYPE consistency. And I will illustrate it in the code to come with the
is_ilot
function.

Mindset and tools : why I did not use overwhelmingly beautiful postgres features but wasted my CPU and memory doing the sociogram in python (and why not in Perl)

My problem is simple : imagine I have a sample database to have fun containing real life email and I want to make a graph out of it. Like an Xleaks from wikileaks, and I want like Meta, or google to infer who are the interesting persons interacting out of the thousands of interlocutors. So let's dump my SIMPLE sql schema :

DROP TABLE IF EXISTS public.mail;

CREATE TABLE IF NOT EXISTS public.mail
(
    filename text COLLATE pg_catalog."default" NOT NULL,
    "from" text[] COLLATE pg_catalog."default" NOT NULL,
    "to" text[] COLLATE pg_catalog."default" NOT NULL,
    subject text COLLATE pg_catalog."default",
    attachments json,
    text_plain text COLLATE pg_catalog."default",
    date date,
    message_id text COLLATE pg_catalog."default",
    thread_id text COLLATE pg_catalog."default",
    CONSTRAINT mail_pkey PRIMARY KEY (filename)
)

TABLESPACE pg_default;

ALTER TABLE IF EXISTS public.mail
    OWNER to jul;


A sociogram is a graph made of relationships (edges) between persons (nodes) with their strength expressed in number of occurences between persons.

I basically want
for each mail
   for the cartesion product of  to and from
       add an edge in graph
I use the language of building microchips I learned in applied physics of micro-electronic here. Not a computer stuff I cannot visualize in my f***d up brain.

The problem are « HUMANS ». They chat to a lot of persons but there are 2 kinds of persons : persons who linked other persons and persons who are just noises having a 1:1 relationship.

Analysing visually thousands of nodes in a graph is doable, but tiring. So we have to weed out nodes that are useless. People who are just leaves in the graph having only a bijective relationship.

Digression on the choice of tools


I love posgres, but I am dyslexic and don't use it often. I have as an only tool psql to build request and stack overflow to answer my questions involving recursive request on array to build a cross product.

Stack overflow is good at solving one problem. But composition of answers is tough, especially when I use reserved WORDS in postgres as column names. And you are gonna wonder why ?

MY OWN STRONG TYPING : name a thing by it's real name and PUT UNITS in their name if you can.

Also, physics taught me to avoid recursion at all costs because .... see point #1, stacked base thinking does the same for less bugs and head/p overflow (I come from an era where size of heap for call recursion where laughingly low on linux, C, Perl).

So I did my own code in python wasting memory and CPU for something I am well aware there was an elegant, faster solution in postgres, but early optimization or early result was a fast choice : I want for gruik coding without hesitation. Why did I used postgres ? Parsing email is a cost of HOURS. Getting the « to »s and « from »s time consuming. I totally amortized postgres for the use as a more efficient DATASTORE than the filesystem. No regrets here.

The code : KISS



Building a sociogram weeding out the « ilot » (edges connected to only one and only one other edge) is fairly easy once you coded the
is_ilot
function. It has been 2 full hours of work for a problem I never faced before applying academic knowledge of micro-electronic to a social graph.
import psycopg2
MIN_MAIL=20
MAX_MAIL=400
from archery import mdict

conn = psycopg2.connect("dbname=ml")

direct=mdict()
final = mdict()
    
with conn.cursor() as sql:
# cartestion product done the dumbest way possible
    sql.execute("""SELECT "to", "from" from mail""")
    while t := sql.fetchone():
        for fr in t[0]:
            for to in t[1]:
                direct += mdict({ (fr,to) : 1 })

                
def is_ilot(node:str, edge_dict:tuple) -> bool:
    """ilot == has only 1 link back and forth either in (from,) or (,to)"""
    count=0
    for edge in edge_dict.keys():
        if node == edge[1] or node == edge[0]:
            count+=1
        if count > 2:
            return False
    return True
    
tk= list(direct.keys())
for k in tk:
# weeding out pass 1
# dont modify a dict you iterate hence copy of keys
    if k in direct and k[::-1] in direct \
            and MAX_MAIL> direct[k]+direct[k[::-1]]>MIN_MAIL:
        final[k]=direct[k]
        final[k[::-1]]=direct[k[::-1]]
    else:
        try:
            del(direct[k]) 
        except KeyError:
            pass
        try:
            del(direct[k[::-1]]) 
        except KeyError:
            pass


    
tk= list(final.keys())
for e in tk:
# dont modify a dict you iterate hence copy of keys
# weeding out pass 2
    if is_ilot(e[0],final):
        try:
            del(final[e]) 
        except KeyError:
            pass
        try:
            del(final[e[::-1]]) 
        except KeyError:
            pass

    if is_ilot(e[1], final):
        try:
            del(final[e]) 
        except KeyError:
            pass
        try:
            del(final[e[::-1]]) 
        except KeyError:
            pass



conn.close()
# output for graphviz
print("digraph Sociogramme {")
print("\n".join(['"%s"->"%s" [label=%d];' % (k[0],k[1],v) for k,v in final.items()]))
print("}")


You will notice I « typed » the python function. It took me 20% of the time because I was still in postgres thinking of postfix typing (::array) and not in infix typing (list :) and it's because I had ... a bug to solve. At first I coded the function with one letter name as I usually do until I have a problem. I backtracked it, changed the name and put the typing annotations for fun but what really helped me was : the only strdoc in the code and naming. Remembering what was my purpose and what edges and nodes were. As soon as I named correctly the function, the inputs, and wrote the strdoc it was done magically and I laughed at how typing was missing the point.

a_dict could be a list of keys, a sparse matrix, a mutable mapping, a string. The type of data structure I use to represent a node or an edge is so varied typing does not help.

Here is a sample of the output before after the weeding out with
is_ilot

Before

After

Final word

I want this post to be an advisory to noobs like me to not care about academics but let the accident of programming not rebute them for going the way they see fit in a Keep It Simple Manner that « work for you »©®

Datastore and database : why it is a good idea to not confuse both.


I strongly advise to fast watch this video, since datastore and database, as well as hierarchical database are covered there.

Now let's come back in 2024 and wonder, well, is this still relevant.

I recently had fun taking a simple use case that made one postgresql contributor famous : Julian Assange Xleaks.

Should we put mails in database or keep the database as an index ?

As a foreward Python mail parsing is infamously not on par with Perl from which it has ported its libs. We will imagine we use a thin layer on top of it know as mail parser and that our mail comes from google, outlook, and thunderbird archives.

After all, mails are so important in our modern life that the use case of analysing mail with a database, or a nosql or .... is important.

My favourite « kind » of non database data-base are like LDAP hierarchical tree like datatype. They fit verey well with my aggregation lib for dict in python (archery a good way to shoot yourself an arrow in the knee). And of course, POSTGRES DOES IT, POSTGRES DOES EVERYTHING BETTER THAN ANYONE. (I intend it as a troll, but, in the bottom of my heart, postgresql and sqlite are my 2 favourite databases).

However mails ARE relationals thanks to from/to, and thread-id. If thread reconstruction may favour hirearchical databases, your unit of search will be mail and wanting to mail a many-to-many relationship like « find all mail where X and Y are linked.

One approach on parsing 1000th of email is relying on an SSD and brute forcing your way through mail every time. But, lol, I'm poor, I have an hard drive wich I fear for its life with all my precious photos of my family, so I prefer not too. Plus it's long. And that's when you remember surfing the paperspace and the liibrary analogy.

Database is supposed to be the cabinet in the entrance where you can find all the name of the books that are physically located in the library and where they are. Ex : an author may be a co-author (like Good omens from pratchett in Fantasy, in SF (yes Pratchett wrote SF), and in fantasy.

Fetching a book is long, the cabinet (database) helps you find the books fast in the datastore (the shelf of the library). A database is pretty much a tool for indexing slow retrieval data that you want to find fast.

In 2024, is it still relevant ?

I beg to argue yes in the famous realm of « it works for me this way »©® (famous saying of linus torvalds).

Hear me out : mail parsing is shit.

Imagine, you have an email : per RFC, you can have MORE THAN ONE BODY (a mail is an n-relationship between enveloppe and body) and BODIES can be either TXT OR HTML and more often than not (thks to the creativity of the artists) may bear different messages since SOMETIMES what you see matters, hence, the text body is litteral garbage if you want to make sense of the mail.

Mail per RFC 2822 can have attachments that can embedd attachments that refers to each others (often in an mixed peek and poke of both an arrayish and tree-ish data structure.

Ho ! Is it perfect for postgresql XML/JSON ? NO ! Recursive descending SQL request may exists, but joining on non deterministic disposition is begging for losing too much brain cell : it is not because you can do it that YOU SHOULD DO IT. Sometimes the most reliable to access attachments is not from
parser(mail).attachments.to_json
(that is half backed) but with
parser(mail).write_attachments
that renders embedded attachments inside the documents in a more reasonable readable way. And sometimes more often than a python guess, what you want is a heavy client for READING MAIL that embedds decade of wisdom on how to deal with broken norms.

Hence, practically, when you deal with mails what you want to store in the database what you want to store is :
  • path to the DATA-STORE (hence HARD DRIVE)
  • from
  • to (BCC, CC for me are tos too, since I want to draw sociograms)
  • message-id
  • subject
  • thread-id
  • DATE which is a nightmare since it's a clear hell to PARSE
  • and because experimenting with JSON is fun the attachments metadata object/dict (application type, content type, filename) as an JSON
  • and because FTS (full text search that can survive typo) is fun the FIRST text body (but you will miss when astute individuals will use more than one)
Legal archiver and geeks MIGHT want to add : the chain of mail servers, and all data concerning validation to try to detect signs of spoofing. Which gives us almost this :
CREATE TABLE IF NOT EXISTS public.mail
(
    filename text COLLATE pg_catalog."default" NOT NULL,
    "from" text[] COLLATE pg_catalog."default" NOT NULL,
    "to" text[] COLLATE pg_catalog."default" NOT NULL,
    subject text COLLATE pg_catalog."default",
    attachments json,
    text_plain text COLLATE pg_catalog."default",
    date date,
    message_id text COLLATE pg_catalog."default",
    thread_id text COLLATE pg_catalog."default",
    CONSTRAINT mail_pkey PRIMARY KEY (filename)
)

TABLESPACE pg_default;
This is ALREADY speeding up without hammering my hard drive all of the following funny use cases : This said, I have already fun using postgres and shell doing sociogram by first ranking people in to/from relationship above a threshold and then drawing the sociogram.

Here is a simple request to see who are the top senders

cat <<EOM  | psql ml jul | less
SELECT DISTINCT ON (times_seen, element) element
    ,COUNT(element) OVER (
        PARTITION BY element
        ) AS times_seen
FROM mail
    ,unnest("to") WITH ordinality AS a(element)
ORDER BY times_seen DESC, element DESC;
EOM
Making histograms about how much « to » you have per mail

psql ml -c ' 
WITH len as (SELECT cardinality("to") as cto from mail) 
SELECT 
	width_bucket(cto, 1, 43, 10) as bucket, 
    count(*) as freq 
FROM len 
GROUP BY bucket ORDER BY bucket;
'
# too lazy to put the min/max functions

 bucket | freq  
--------+-------
      0 | 41083
      1 |  9965
      2 |  1096
      3 |   227
      4 |   116
      5 |    88
      6 |    12
      7 |    14
      8 |     4
      9 |     2
     10 |     2
     11 |    26
(12 rows)


Making dot diagram of who speaks to whom in a one to one relationship (strong link) when it it more than 20 times :
( echo "digraph G {" ; 
	PSQL_PAGER="cat" psql ml jul -ta -c "SELECT \"from\"[1] || '->' ||  \"to\"[1]  FROM mail WHERE cardinality(\"to\") = 1 and cardinality(\"from\") = 1; " \
    | sort | uniq -c \
    | perl -ane 's/^\s+(\d+)  (.*)\-\>(.*)/"\2" -> "\3" [label="\1"];/g; print $_ if $1 > 20'  ; echo "}" ) \
    | dot -Txdot | xdot -
And that's already neat. By treating the envelope as an orthognal data space than datastore, you treat a new shit-ton of informations that are normally hidden in the mail that is already (too) full of information. I stop writing this post to come back having fun with my database while I leave the mail in the cold of the data-store :D

Addendum : And I was furious that the SQL was so complex for querying reciprocal relationships in arrays that I came (since my dataset is small and I have A LOT OF MEMORY (4Gb) with a neat more exact python/SQL/BASH/xdot solution that will cringe any SQL/bash/python purist (lol) but that is a pipe of simple operations anyone can understand.
#!/usr/bin/env bash
MIN_MAIL=40
TF=$( mktemp )
PSQL_PAGER="cat" psql ml jul -ta -c "
SELECT \"to\"[1] || '->' ||  \"from\"[1] 
FROM mail 
WHERE cardinality(\"to\") = 1 and cardinality(\"from\") = 1; " > $TF
python -c "from archery import mdict" || python -mpip install archery

python <<EOF | xdot -
import re
from archery import mdict
patter=re.compile(r"""^ (\S+)\->(\S+)$""")


direct=mdict()
final = mdict()
    
with open("$TF") as f:
    for l in f:
        try:
            (fr, to) = patter.search(l).group(1,2)
            direct += mdict({ (fr,to) : 1 })           
        except:
            pass

tk= list(direct.keys())

for k in tk:
# dont modify a dict you iterate hence copy of keys
    if k in direct and k[::-1] in direct and direct[k]+direct[k[::-1]]>$MIN_MAIL:
        final[k]=direct[k]
        final[k[::-1]]=direct[k[::-1]]
    else:
        try: del(direct[k]) 
        except KeyError: pass

        try: del(direct[k[::-1]]) 
        except KeyError: pass

print("digraph Sociogramme {")
print("\n".join(['"%s"->"%s" [label=%d];' % (k[0],k[1],v) for k,v in final.items()]))
print("}")


EOF



We need a more anti-clerical mindset in Information Technologies

I have recently made a rabbit hole in postscript, PDF, SVG, tk/Tcl (hence modern graphical UI), unicode and have worked intensively in web technologies. And I can tell you something : the modern clergy must die !

Talking like an ivy league student (https://mail.python.org/archives/list/python-ideas@python.org/thread/AE2M7KOIQR37K3XSQW7FSV5KO4LMYHWX/) is the freaking norm in open source software, and it ain't no secrets that expressing yourself like a « vulgar » street guy make any of your comment thrown to the thrash. I am « deftones » BORED of this, and I think this is becoming a major problem.

Clergymen are the knowledgable persons who from their ivory tower classify, gives names and structure the knowledges of the others. Charles Marche would say the « bourgeois » appropriate the « praxein » (how to) by transforming it into « doxein » (know how). But what else the bourgeois are famous for ?

Creating private property everywhere they can : on numbers (ISDN, IPv4, IPv6, DOI, OUI, PCI ids, BGP prefixes), on glyphemes (emojis, fonts), on sound (musics), fucking frequencies (5G, digital radio), time (RT GPS) ... Anything that physics can define as observable : even freaking colours can be patented !

Us from the « soute à charbon » (coal bunker) have in common with the boss of startup that we began coding with the raise of lowspec computers (C64, Z80, apple II (for the riches), CPC464, HP28/48 (kind of expensive at the time) ...). Why aren't we the boss ? Because someone need to do the job, and it won't be the bosses, the lawyers and their balls leakers (academic). Because, I vy League are the crucible of where these balls suckers are molded in this culture that sees THEIR views as universal.

Recently I have been raising to python and firefox my concern that I have NO LINE OF DEFENSE against something that seems irrationnal to me from the « coal bunker » : I cannot detect or correct when unicode bidir algorithm are presenting a < as a >
from unicodedata import normalize
from wsgiref.simple_server import make_server

def simple_app(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain; charset=utf-8')]
    start_response(status, headers)
    ret = [("%s < =? %s" % (n, normalize(n,"\u202b>\u202b\n"))).encode("utf-8")
           for n in ("NFD", "NFC", "NFKD", "NFKC")]
    return ret

with make_server('', 8000, simple_app) as httpd:
    print("Serving on port 8000...")
    httpd.serve_forever()



Take a web browser and admire that < and > both appears and no stdlib/filters/normalizations exists for this.

What is a contract ? (Beware, I have huguenot origin the holy geist of capitalism runs through my blood)

If I show you a contract on screen, what should I consider the stuff on which agreement has been made ? What is shown or what is written ?

Since, we automatize contract processing it does not matter. What is written of course prevails on what is shown. And all of firefox/python coders said : « the holy unicode norm prevails ».

I don't want to pick a fight with unicode since only persons who actually have been experiencing first hand the madness of unicode editing bidir mixed strings will grock whatever I said.

Editing bidir string is like following the white rabbit under LSD of Alice in wonderland. The clergyman will tell you « YOU FAILED BY NOT FOLLOWING THE MYSTERIOUS ONE BEST WAY©® » (which basically boils down to use the latest iOS on the latest Mac Mx).

You see how my double punctuation marks have all a space in front ?

It is because my typography reflex are inherited from french language and I find it clearer. Typography is ONE of the many « ONE BEST WAY », and PEP8 enforces another one that contradicts mine. Making me consider « properly formatted » python code un-fucking-readable.

I have a master in physics and stumbled upon laplacians, differential and pretty complex equations, I have learned by strong burns that math are easier to read (FOR ME) when I deviate from the norm by adding MORE SPACES THAN REQUIRED.

You might rightly argue that what works for me IS NOT UNIVERSAL.

In greek there is a word for universal : catholic. It is a concept that has been heralded by chauvinistics genocidal embodiement of all what is wrong in our civilisation : « philosophs ».
Philosophs in Athens were richs sons of aristocrats and hiérarchs (holy persons) who thought that democracy was a threat to their unique Nature of « enlightened » piece of shit they were. They believed in absolute power of knowledge over everything and thought knowing maths was enough to have an opinion on every topic on earth : diet, pseudo-science, ruling a country, deciding who lives and who dies, what books to keep in libraries how to properly format writings and which one to throw away. They throw all books from the « sophists » who had the cardinal sin of opposing the « catholic » « one best way » in favor of the « πάντων χρημάτων ἄνθρωπον μέτρον εἶναι » (for all judgement man (he/she in its diversity) is the measure).

Hence, as a sophist I don't claim I am right, I claim I have the right to make a plea « as an equal human on the public place » for my case without being disregarded as « not following the « one best way ». Don't mistake me, I strictly don't want my views to be embraced by all as universal, nor disregard the others. I want to be talked as an equal on the agora.

All the answers I had were : we aren't gonna do anything because that's exactly WHAT THE NORM (unicode freaking hummongous mammothian riddled with more undefined behaviour than a C++ standard) SAID.

You know what, as a coder that HAVE to redact the web page that involves situation in which you click and it ties you to an immediate non reversible CONTRACT, I surely do advise you discuss with me.

This attitude towards discussion : always invoquing « the norm » first and refusing discussion with heterodox is undistinguishable from a clergy.
Fuck the norms, fuck the existing de-facto clergy of educated CS graduate, fuck the MPAA, the RIAA, unicode, and what the industry « wants » : let's talk about the freaking consequences for the « anthropos » (the animal called men and women) that must deal with the chaos of less than satisfyingly baked cathedral of norms.

And unicode is just the tip of the iceberg, PS, PDF, Tk and SVG deserves their OWN topic because, to me internet as a way to print knowledge and helps the « vulgus pecum » (the mass of persons not speaking ivy league english) share informations is being barred from exactly this by the norms themselves.

PDF and unicode are the opposite of Gutenberg press : neither a revolution of simplification of the essence of the written language (french happily lost a lot of letters and ligature in the process of Gutenberg Revolution), nor an ease of printing but they are WALLS of useless complexity that makes me regret the existence of daisy printers.
Modern web technologies is a dyschronia where the diffusion of information is being ruled by people with the Catholic church mindset opposing the ideals of Gutenberg. Modern web technology and computing is an effective dysfunction of what education should thrive for : emancipation of the mass by letting people exchange information the easiest they can and build their own tooling.

Mon premier language qui devrait être enseigné à tous : le Reverse Polish Lisp

Je m'aperçois que ce n'est pas le basic de mon commodore 64 quand j'avais 12 ans, où le pascal de mon PC quand j'en avais 14 qui m'a amené à coder, mais le langage de ma calculatrice HP48GX et ce pour des raisons d'avancées techniques que nul autre ordinateurs et langage de programmation n'ont atteinte aujourd'hui.

Déjà, j'ai toujours aimé allumer et éteindre des pixels sur les écrans, et aucun autre langage ne faisait ça aussi simplement de base.

Commençont par une revue de ce langage sans prétention : on a une pile d'appel visualisée en écran principale dans laquelle on peut visuellement introduire du code et des données.

C'est la seule UX où la pile d'appel est au centre de l'expérience du développeur.

LA PILE

Dans cette pile inversée par rapport à la convention des langages dits infixe on commence par empiler PUIS on appelle les fonctions. L'intérêt pour le concepteur du langage c'est que le parseur de commandes est dit de gauche à droite monotonique. En notation « naturelle » mathématique on met l'opérateur AVANT les opérandes, ce qui oblige pour des raisons de respect d'une typographie académique qui n'a pas lieu dans un ordinateur de rajouter moults circuits électronique et manipulation d'AST (arbre syntaxique).

Ce faisant en étant plus proche du métal, on se bâti une belle intuition de comment faire son langage et des piles d'appels.
Les piles étant elles même des objets (oui le RPL est objet) on peut les sauvegarder et les restaurer, permettant de créer des SCOPES, des contextes d'execution. Bref, de la programmation paramétrée.

Le « typage » sains

Je vais commencer par le plus merveilleux typage que je n'ai jamais revu en informatique : le typage unitaire.

Avant de faire de l'informatique pour compter les fois où un client se branlait devant une paire de chaussure croco j'étais étudiant en science APPLIQUÉE, où l'on confrontait des résultats d'équations maousse costaud à des résultats de mesures.
Une erreur est vite arrivée, heureusement la HP48 avait un as dans la mange : la validation des unités.

les tags

# 1:m/s + 2:kg
Syntax Error : vous pouvez pas additionner des choux et des carottes 
Les valeurs scalaires (à gauche) pouvait être associées à des chaînes libres qui permettaient de transformer la pile en dictionnaire (il y avait des opérations de FTS pour aller chercher les occurences de valeurs taguées, mais aussi ces étiquettes (tags) permettaient de donner des unités physiques aux OBJETS. Car je vais y revenir le typage étaient attachés aux objets et non basés sur les objets. Le typage était un traît de classe et non une classe.
Et cela permettait de aussi de gérer intelligemment le polymorphisme. Chose qui paraît incompréhensible par un dev moderne, mais un typage de type add(int: a, int: b) basé sur la valeur est CON. En math on sait faire matrice + entier et on a pas envie de surcharger les opérateur des classes, mais de leur faire hériter des traits des scalaires. traîts qui sont variables.
Les règles de l'algèbre hermitienne sont symmétrique à droite, anti-symmétrique à gauche et donc aB = B*a != Ba. Ce serait bien dans une époque où la quantique est importante que nos langages nous fassent pas chier à changer des contextes ou charger des librairies compliquées quand l'algèbre linéaire et hermitienne coexistent. Ce serait mieux que le langage gère le typage et les opérateurs en fonction de traits.

les unités

La HP48 possédait la validation native des unités physiques. C'est une chose que j'ai utilisé en mission de compta. J'ai permis à un client de détecter une sous facturation car des unités exprimées en feuilles étaient injectées pour calculer des coûts à la page. AUCUN PUTAIN de langage moderne n'a embrassé la possibilité de gérer des cohérences d'unités, voire des cohérences de domaines de valeurs (underflow/overflow), où encore de pertes de précisions dans les calculs de float.

Si la HP48 était un calculateur, nos langages modernes sont à peine du domaine de la calculatrice 4 opérations.

les structures de données

L'une des choses qui est dure à apprendre en informatique c'est d'étendre son vocabulaire informatique en structure de données.

Un langage comme basic possède 3 structures de données majeures : les nombres, les caractères et les tableaux.

La HP48 elle proposait : les matrices, les bitmaps, les tableaux, les listes à la lisp, le code (objet modifiable par du code), les fichiers, les fonctions programmées, les alarmes, et la pile qui pouvait servir de table associative grâce aux étiquettes.

La Pile et et les listes à la LISP sont vraiment des outils de bases à partir on peut construire une vision de l'informatique structurée. Surtout les listes à la LISP. D'ailleurs c'est pour ça que je dis RPL pour ce langage car cette structure de donnée est la mère de prototyper toutes les autres structure de données (arbres, Btree, tuple, set...) en plus l'éditeur permettait de structurer la représentation mentale.

Grâce à cette structure de base, il devenait trivial de créer ses PROPRES structures de données. Qui n'a pas implémenté sa propre DB de téléphones persos en mode SQL Less avant que les bases orientées document deviennent à la mode ?

Les shunts

Le langage avait un shunt (court circuit) pour aller chercher le RPL sans ceinture/sans passer par le microcode qui ouvrait la porte à son langage primaire. (syseval) Découvrir le syseval c'était comme avoir ses 18 ans et être enfin autorisé à se bourrer la gueule et se tuer en voiture. Tout langage devrait avoir un débrideur.

Papillon roi de l'évasion

Ce calculateur était ouvert, il avait même un protocole intégré utilisé par des instruments de mesure : kermit.

Kermit étant un protocole série à 8bits, c'est le genre de trucs faciles à bricoler pour mettre sur un RS232C et permettant ... de pouvoir étendre sa machine soit en téléchargeant des archives d'un ordi soit en utilisant sa calculatrice comme solveur d'équation symbolique pour son PC.



Pour toute ces raisons, j'ai aimé programmé en RPL, et j'ai appris à aimer à YODA COMME PARLER, toujours à la fin le verbe mettant.

J'ai aussi pu faire un protoype de MON langage plus facilement en voyant que le RPL était bon et ne me demandant comment faire un FORTH orienté objet extensible qui rendrait jaloux le programmateur que j'étais. Ah et j'ai oublié, je pouvais jouer à lemmings sur la calculatrice et la gestion de l'écran permettait de vraiment s'amuser à dessiner et faire des jeux.

Je pense contrairement à la masse qu'en étant exigeant sur la partie chiante (structure de données, objets...) de geeks scientifiques on fait plus facilement un environnement permettant de développer des jeux.

Bref, j'ai jamais retrouvé le kiff de coder en HP48 et je crois toujours qu'il y a une place pour un nouveau langage extensible qui s'en inspire car c'est facile à bâtir en silicium et microcode à même de transformer des CPUs lowspec en foudres de guerre.

Plaidoyer contre la priorisation en science des budgets hautes énergie, de l'infiniment grand et du petit.

On appellerait ça la méso-science celle qui définit la priorisation de ses budgets et ressource en y mettant l'Homme (et la fammme) au centre de son budget.
Comme le disait le sophiste Protagoras : ce ne sont pas les idéaux ou les esthétiques qui doivent gouverner les priorisation comptables mais l'Homme car l'Homme est la mesure de toute chose et doit être privilégié quand on dépense du pognon sur la vanité et les principes.
Tu m'étonnes que Protagoras n'était pas aimé quand en toute chose on demande à que l'on place l'Homme au centre de toute mesure. Et ça tombe bien car le coeur de métier de la science ce sont les erreurs de mesures.

Voyez vous, l'Homme est au centre de la science, notamment en tant que manipulateur de dispositifs expérimentaux de pointe, OR, toute la science le prouve, l'Humain fait des erreurs.

C'est pour ça qu'on a inventé ce qu'on appelle la « confiance ». C'est une gymnastique mentale où l'on prend toutes les valeurs donnés par des humains qui font des erreurs soit totales partielle 10% du temps sans volonté délibéré de nuire aléatoirement. Et on vire les 10% les plus hauts, les plus bas et on garde un domaine pour une valeur.

Et une loi physique connaît en fonction de son domaine d'application,
  1. ses budgets,
  2. les ordres de grandeur des mesures impliquées
Vous prenez l'astrophysique dans le domaine de vitesse laquelle les vitesses des objets étudiés de l'ordre de 300 000 km/s. Est-ce un domaine prioritaire au vu des budgets ?

Nan parce que prenons un budget pour un autre domaine d'énergie qui implique des corps en mouvement : l'élaboration de tenue de travail qui protège les ouvriers.

Y'a pas besoin de télescopes à des milliards de dollards pour commencer juste à observer un truc.

Pour faire des tests de résistances de tenues une bette presse hydroliques calibrées par l'APAVE, avec banc de certification ça permet de commencer à publier direct des résultats pour moins de 100 000 €.

Si l'homme est la mesure de toute chose, la priorisation de la science quand elle concerne des ordres de grandeur qu'aucun humain n'expérimentera de son vivant est questionnable.

Le citoyen, l'homme va-t'il donner le droit de construire sans contestation du citoyens des accélérateurs de particules impliquant des Téras électron-Volt, des environnements où l'espérance de vie d'un humain avant sa sublimation (passage littérallement de l'Humain de la phase solide à gaz de plasma) se MESURE en microsecondes ?

Si l'Homme est la mesure de l'utilité des budgets sur la survie de l'Homme, l'inconnu dans lequel qu'il pourrait être important d'investir maintenant j'ai d'autres sujets low-costs car faible domaine d'énergie.

Alors je sais c'est pas bandant, mais pipi, caca, popo.

Les bactéries dans l'eau et la nourriture prolifèrent d'autant plus que la terre se réchauffent.
Bactéries contre lesquelles les antibiotiques sont efficaces ... tant que tout le monde peut se les payer... et ils chient et ça va dans le tout à l'égout.

Ces bactéries -streptocoques- sont responsables de la crise des chiasses des mangeurs d'huîtres de cette année (dont j'ai fait parti).

J'ai acheté à ma fille un microscope à 30€ au supermarché du coin à Noël. Et je vois pas des bactéries, car je sais que dans notre domaine d'observation il y a que les énormes bactéries bien nourries du caca, elle peut en voir aucune. Et j'ai vraiment pas envie de toucher et sentir du caca pour faire le kéké avec un microscope. Par contre elle peut voir des amas cellulaires.


Plus le domaine de science est dans celui où l'homme est la mesure de toute chose, plus il est possible que des bons instruments de mesure soient accessibles dans sa cuisine ou son salon.

Autant je peux ranger un microscope résolution optique x 1200 de 20cm x 25 cm x 40 cm sur un meuble, autant un tokamak pour étudier la fusion nucléaire/physique des particules ou un réseau de de téléscopes spatiaux et terrestres multifréquence c'est pas trop facile à caser dans mon 50m², même en faisant appel à un architecte d'intérieur.

Alors, le paradoxe est certes que le GPS qui a permis à la physique du quotidien de gagner en terme de disponibilités et coût provient de la recherche spatiale.
Grace au GPS, vous avez dans vos téléphones portables la puissance de mesure inimaginable.

Voyez vous, ce qui fait l'erreur en mesure c'est aussi la limite de résolution physique des dispositifs de mesure.

Pour ça on a une mesure de ce que l'on ne sait pas mesurer. Et la mesure retourne de manière invariante une constante. La constante de Planck qui nous détermine le budget qu'il faut investir. Delta Énergie fois Delta temps inférieur à cette constante.

Vous avez vu c'est filou, c'est déterministiquement pas déterminé.

Pour une mesure ou je vais quasiment systématiquement terminé par une mesure de vitesse car les hommes sont plus obsédés par ce qui bouge que ce qui est statique je vais avoir deux budgets : celui d'être meilleur en mesure du temps OU de l'énergie.

Vous imaginez pas comme le GPS en jouant sur le budget synchronisation des horloges à la millisecondes a permis de faire de réseaux de vieux instruments dépassés des nouvelles merveilles.

Si l'Homme est la mesure de toute chose il doit intégrer qu'une priorité accordée à un domaine de la science ne doit pas être donné à l'infini, car une disruption issue du spatiale a condamné la compétitivité des gros phallus à décharge rapide de l'atomique bien coûteuse adoré de la physique spatiale. Maintenant qu'ils ont prouvé valoir quelque choses, ils ont en gagnant leur pari de l'utilité de leur science ont condamné leur science en la rendant peu rentable à la mesure.

Enfin, moi je dis ça, mais comme toute humain je me trompe peut-être dans mes ordres de grandeurs. C'est la base de la science, être bienveillant avec celui qui prend le risque de se tromper. Celui qui se trompe est corrigé ou appelé à s'expliquer, entre humains.

Il est évident que la science fana de regarder ce qui bouge et de mesurer à parier contre « la Nature » chaotique, a les instruments pour mettre l'homme au centre de toute chose. Même si on a pas d'outil de mesure très sensible à l'Humain (analogue de l'énergie) on est bon à mesurer vite des signaux de merde. On a des conceptions prouvées par la pratique de systèmes tolérants à l'erreur (où beaucoup d'instruments mentent) et où la quantité des systèmes qui s'exprime contribue plus substantiellement à l'augmentation de la précision de la mesure que la fiabilité/honnêteté absolue de chaques mesures.

Je pense qu'il y a encore sujet à explorer car je doute que si on pousse les échantillons réels à une certaine limite de bruits dans les tuyaux ça résiste.

Bref, on a intérêt à pouvoir impliquer en science, à la fois comme gens qui font la partie théorique barbante et font des confs d'égaux à égaux (mais c'est rasoir), mais aussi car avec des gens qui s'y connaissent un peu en radio fréquences, en antennes, en télescopes et tu as une choses qui n'a pas de valeurs pour une science, c'est un moyen peu coûteux de diminuer des couteûx budget de campagnes de mesures.

La science moderne à l'époque des réseaux sociaux plutôt que de chouiner sur le passé devrait remettre l'Homme, le quidam, le pékin le vulgaire au centre de la mesure de toutes choses.

La diversité sociale en science et son ouverture aux non diplômés n'est pas une menace, mais une opportunité d'étendre par la diminution de budgets de mesures et de leur vérifications.

Le scientifique dont la marotte est la mesure des évolutions bénéfiques à minima à sa pomme, est peu crédible quand il ignore quelque chose qui au contraire de rabaisser sa place dans la société verrait augmenter sa valeur en pouvant poutrer des gros équipement en faisant du crowd-science : en distribuant des protocoles expérimentaux simple à répéter pour augmenter les résolutions de campagnes coûteuses. En se plaçant en intermédiaire inévitable dans la mesure distribuée entre les théoriciens, et les opérateurs, on crée un nouveau métier de crowd scientist. quelqu'un qui fait l'interface avec des férus d'un domaine pour permettre à chaque fans de participer à élaborer et opérer les dispositifs expérimentaux accessibles à leurs budget.

Comme un community manager, non pas en mode pète moi le clash entre 2 inconnus dont tu te tamponnes, mais plus l'ado avec son bafa qui encadre les enfants pour leur faire faire des trucs rigolos ensemble.
Un peu un scoutisme scientifiques, des colonies de vacances méso-virtuelles à qui confier son geek, nerd, passionné, fana (et n'oubliez pas les versions féminines tout aussi casse couille qui au danger mortel des explosions que les males préfèrent (haute énergie+grande vitesse) qui elles sont attirés par toutes ce que la biochimie et la chimie orga ont pu générer de molécules qui peuvent tuer : les parfums, la biologie, les fleurs (c'est souvent des poisons les fleurs, hein?)) ... qui apaiserait les foyers.

Une science qui veut dominer son époque doit embrasser les effets de réseaux qui apportent en eux l'intégration et la valorisation de l'Humain comme fondement d'une science bien gérée accessible à tous et qui priorise son budget à ce qui lui est accessible. Une science où la participation se voit dans les marges d'incertitudes qui baissent dans les mesures. Une science qui devient de plus en plus crédible dans sa parole que ses résultats s'améliore et que les gens la mette à l'épreuve dans leur quotidien.

Vu la floppée d'instruments de mesures de haute précision qu'un téléphone portable renferme qui auraient coûtés des millions il y a encore 30 ans, j'aimerais comprendre comment la science justifie de renfermer encore plus le cercle de ceux qui peuvent y contribuer par la répétition de mesures ?

En plus on est peut être pas diplômés en science du BON diplôme pour chercher, mais, on a fait entre 50 et 90% du cursus avec vous. On sait lire, écrire et faire 90% du boulot duquel vous prétendez déternir un savoir et une autorité exclusive...

Vous savez, genre, y'a pas besoin d'avoir fait polytechnique pour mettre un échantillon dans une boître de Petri, maniper en environnement stérile et mettre la boîte dans le frigo 12h et compter les colonies bactériennes sélectionnées.

Pour faire une campagne de résistance aux anti-biotiques ça pourrait rendre 20% de la population à même d'acheter leur propre matos (un microscope à 30€, des boîtes de Petri, de l'agaragar, solution antibiotiques/glucose dosée) et faire les mesures..

Pour remettre l'Humain au cœur de la science, il faudrait peut être qu'à l'image de la sécurité civile, et de ses pompiers respectés de tous, ils intégrent plus de citoyens volontaires à même de contribuer à la science dans sa pratique. Que le citoyen indépendant des titres scientifiques soit à la fois le garant de l'honnêteté de la mesure scientifique, et l'acteur qui l'élabore et la développe en gardant l'intégral droit à disposer de ses créations.

La chafouin y voit de la corruption d'une partie de la population, moi j'y vois la juste rétribution à la vulgate des fruits de son labeurs. Si je conçois un outil pour mesurer un sujet de pointe, j'ai aussi un outil de pointe pour manufacturer les futurs hits que le progrès prépare.

Je ne réclame pas les droits exclusifs, mais le partage des droits car c'est la manière la plus simple d'obtenir ce qui m'est cher, non pas être le propriétaire de l'invention, mais qu'aucun proprio que la justice a tendance à favoriser ne viennent clamer et prétendre à l'exclusivité pour lui le plus fort de ce que j'ai sué à élaborer.

Il me semblerait sain, de réenraciner la science qui est dans sa tour d'ivoire toute pourrie dans le monde du vivant. L'ivoire c'est une dent de cadavre qui n'a plus de racines. Ce qu'il faut à la science, c'est d'être plus organique, biologique, élaborée par une base sociale plus inclusive. Plus la science se referme dans ses universités et meurt de sa mort par milles citations académiques ... plus elle donne l'impression d'être pareille à la rose qui se fâne. Qui se décâtit qui n'est pas un domaine attirant. Et c'est dommage, car la science, c'est plus fun quand on le fait ensemble.

L'état est par construction anti-démocratique.

L'État c'est la certitude, la démocratie un doute permanent.

L'état dans son nom et sa mission d'assurer une stabilité sociale en organisant la continuité non violente des communautés. Elle s'oppose (et j'y ahdère) à éviter le conflit, et la disruption violente. Le problème c'est que son opposition extrême au conflit peut justement amener à l'anti-démocratisme. L'état a non le monopole de la violence, il a surtout la violence de pouvoir normer ce que l'on appelle violence ou pas.

Depuis Athènes, l'Homme politique n'a pas beaucoup évolué. L'état luttait contre toute réforme visant à la démocratie. Les arguments des sophistes (pro-démocratie) contre les pro-états (philosophes) tenaient dans l'arbitrage de décision. La mesure de toute chose doit-t'elle être l'Homme faillible qu'est le citoyen réel (protagoras), ou l'idéal (Platon) ?

La question décide de savoir si quand la chose publique (qu'on appelle état, ville, république démocratie) ARBITRE en faveur de 2 parties elle est biaisée ou pas ?

La démocratie dans l'esprit Athénien n'est pas celle de l'immobile, mais bien de pouvoir à chaque ARBITRAGE polémiquer (dans le sens de pouvoir défendre sa cause) sur le caractère démocratique.

Le sophisme haï des philosophes revendique le droit pour tous de venir contester auprès des agoras (on dirait agent publique/administration/juge/parlement) sans distinction de naissance (esclaves, méthèques citoyen), sans distinction dans la prise de parole entre les bègues et ceux qui ont eu « une éducation », sans dictinction de classes sociales (entre aristocrates, philosophes, riches ou pauvre.

Genre le sophiste, le démocrate, c'est la définition même du métier d'avocat.

D'ailleurs c'est ce que reproche Platon aux sophistes : d'être des traîtres de classes éduqués, des mercenaires.

Les sophistes et démocrates étaient suspects -à raison- de plaider pour plus de démocratie afin de vendre l'idée de payer des gens éduqués proche des responsables des discriminations pour porter ta cause en place publique.

Genre, un démocrate/sophiste athénien, c'est un pur produit de l'aristocratie athénienne éduquée qui s'enrichit du système de discrimination par la pratique de défendre devant la justice de l'époque les discriminés. Et que vu qu'ils s'enrichissaient, a priori, au fur et à mesure de l'appauvrissement des riches qu'ils critiquent, des pauvres qu'ils défendent, il y a vait des sérieuses questions à se poser sur les démocrates.

Et Platon de retourner le poison démocrate (leur pamphlet marketing pour extirper de la prestation de représentation du discriminer à l'agora pour plaider la discrimination) dans le cœur des sophistes.

Hey, vous les sophistes et démocrates qui vous enrichissez en prétendant vous battre pour la démocratie, il n'y aurait pas une contradiction entre vos actes et vos paroles ?

Et là, moi je dis masterclass headshot de Platon/Socrates sur les social justice warrior (ou parti de gauches dans les années 90, et pourtant je reste démocrate avec le même sens que les sophistes, et j'insiste sur l'ironie de Socrates plaidant la cohérence et la logique alors qu'il est lui même une Gatling à arguments fallacieux. La Socrates non plus est pas très cohérent entre ses mots (il faut être logique et s'appuyer sur le réel) et son comportement habituel en tribune (désinformer au nom de ses idéaux pétés du cul (incluant la misoginye) en niant volontairement la pertinence du factuel).

Les philosophes et sophistes sont un peu le point noir au milieu du blanc (Ying) et blanc au milieu du Yang (c'est de la récursion). Les philosophes (*réels* de l'époque) et les démocrates rééls qui se bastonnait DANS les camps qu'ils prétendaient être la petite touche de l'autre. Un peu la constance de la corruptions des défenseurs d'une cause.

Le philosophe profite de la contestation démocratique pour pervertir un bon système à son avantage, de même que le sophiste. Et c'est peut être parce que le débat sophiste/philosophe a pris toute la scène que la démocratie athénienne est devenu un état impérialiste violent qui faisait passer Spartes pour des défenseurs de la paix dans le monde et des bisous entre voisins.

Si Spartes avait été un gars de banlieue, son casier judiciaire pour violence extrême, prostitution, esclavagisme, extorsion, viol, vol en bande organisé serait établi, et aucun daron ne le laisserait dormir dans le lit de sa fille sans surveillance sans une bonne raison. Les démocraties réelles de l'époque ont du s'allier à Spartes pour se défendre la cité auto-proclamée la plus démocratique de grèce mettant en avant la qualité de débat philosphes sophistes en haut de leur catalogue produit : « démocratie/République Ayez un état au poil plus brillant en employant les goods cops/bad cops du débat bi-partisan démocratie/république, mais aussi droite/gauche. Notre cabinet de Conseil Socrates et Protagoras vous mettent à disposition les meilleurs tribuns athéniens qui moyennant un peu de richesse pour former vos experts défendrons l'amélioration du système.

L'idiot prend parti soit pour la République ou la démocratie, le démocrate prend part à reconnaître dans le débat démocratie/République un bon débat mais dont les bases DOIVENT être questionnées en permanence.

L'erreur n'est ni la démocratie, ni la République, ni le changement, ni l'immobilisme, ni bien ni mal. Mais si quelque chose ne marche pas il faut admettre que ça marche pas. Laisser les gens éduqués décider de l'amélioration de la chose Publique pour un mieux être (soit républicain de prospérité conservatrice, soit démocrate de réforme égalitaires) n'a jamais marché.

Les gens éduqués sont les Hooligans de l'arbitrage des opinions. Les seuls admis à critiquer les opinions, les choses, avoir un avis, proposer des solutions c'est eux. Et pas de bienveillance envers celui qui pense différemment. Ce sont des experts des idéaux seuls « légitimes » à discuter des idéaux qui nécessitent de l'éducation subventionnée qu'ils ont eu, et dont ils élabore les subventions (Platon avait une académie à former des gens à sa pensée pour organiser les cités, il avait inventé l'ENA/scPo privée).

Comme on dit en France d'aujourd'hui, droite ou gauche peu importe, que l'un ou l'autre dirige ça devient de pire en pire sans changement, c'est toujours les mêmes qui dirigent et débattent.

Et pour se foutre la gueule des démocrates de Pacotilles (dont la gauche) qui parlent d'égalité d'accès aux tribunes aux Républicains de pacotille qui clame qu'il faut trier et priviligié celui qui est BIEN éduqué pour avoir un système vertueux qui s'améliore, ils ont TOUS tiré avantage des défauts évidents de leurs litotes manichéennes.

L'idiot peut définir la démocratie et n'a aucun doute, le démocrate refuse d'accepter une quelconque sélection basée sur l'expertise dans un débat par des gens qui s'enrichissent de la discrimination CROISSANTE de l'accès à l'expertise. Je suis certain de ne pas vivre en démocratie, parce que même si j'ignore la définition exacte de démocratie, je suis CERTAIN que ce n'est pas démocratique d'exclure par une sélection sur l'éducation, une distinction de classe sociale.... une majorité CROISSANTE de gens qui s'appauvrissent. Je ne sais pas ou est ce qui est immobile (l'état par essence), par contre je vois clairement que les calculs sont pas bons et qu'on se dirige dans la mauvaise direction.

Je ne vais pas rentrer dans le débat philosophe/sophiste, République démocrate tel qu'il est posé actuellement, car ce débat figé, non de par son sujet, mais par tout les marchands du temple de la gloire publique (sport, TV, politique) qui prône leur lubie comme « amélioration exclusive de la société » et qui alterne exclusivement à la direction du changement nous emmènent quelque soit leurs oppositions bien argumentées de façade droit vers le mur pendant que leurs fouilles se remplissent.

C'est un biais systémique qui empêche quoi que ce soit de changer en bien. Nous devons douter de tout les experts, et les experts feraient moins peur si on les entendait douter publiquement de leur expertise et exposer qu'ils profitent de l'empiration de la situation.

Un débat d'expert/opinion dans un contexte qui empire est rationnellement systématiquement un débat entres pourris dont il faut logiquement ignorer les polémiques. Si le monde s'améliorait, je changerais d'opinion sur la nécessité d'arrêter de trier la distinction de classe sociale pour l'accès au débat/pouvoir, je ne sais pas si la distinction sociale est une mauvaise idée dans l'absolu idéal, je constate dans la pratique notre sélection sociale est cassée.

Quand on sélectionne de plus en plus sur l'éducation intélectuelle et que la situation empire, c'est un peu le signe que quelque soit le critère de sélection, il faut cracher sur les gens éduqués non sur les pompes pour les cirer, mais bien directement dans la face.

L'état quand il désigne une chose qui empire son convertisme alors que la situation empire est anti démocratique. Si il réformait alors que la situation est tout à fait acceptable, il serait aussi anti-démocratique. Quand l'état qu'il se réforme ou qu'il conserve garde constant l'aggravation de la situation, ce n'est pas un état, c'est du crime organisé.

Bras de robots, Assembleur, IA, esclaves ou salariés ?

Je n'ai jamais été doué sauf à jouer. Mes notes étaient catastrophiques en toutes matières si y'avait pas un truc drôle à faire.

En Français mes notes fûrent minables jusqu'au jour où je découvris que je pouvais conclure de manière cohérente et reproductible et avoir des bonnes notes en contredisant de manière FLAGRANTE la thèse étudiée.

Je pense que c'est l'éducation nationale qui par une pavlovisation constante jouant sur mes plus bas instincts a fait de moi le TROLL que je suis aujourd'hui.

Ne remerciez pas l'ennuyeuse éducation nationale qui a failli me faire mourir d'ennui.

Remerciez celle de mes cours d'assembleurs 68000 dans mon cursus de microélectronique qui mettait à disposition des BRAS DE ROBOTS PROGRAMMABLES !

Le dispositif était certes improbable (un chassis de 68000 enchassé dans un GOUPIL (LE PC à la Française de l'époque Gaullienne)) avec un truc de TTL soudé sur un port pour maniper les 4 moteurs axiaux d'un bras de robots c'était le MÉGA FUN !

Je plains les jeunes : nous on voyait grace à ce dispositif un peu improvisé la vérité vraie de la continuité des circuits emmenant un 1 sur une broche d'un GPIO vers un moteur.

Rien de caché, de la PORN TECH AMISH. Si un amish savait à quel point c'est maîtrisable et simple, les amishs aurait des chaînes de fabrication robotique dans leurs ordnungs.


Bref, le TP était génial : j'ai enfin été major une fois dans ma vie dans une promo dans une matière où normalement je frôlais la note éliminatoire.

Voir et concevoir c'est pas pareil.

S'émerveiller de voir un bras de robot autonome faire un geste, et péniblement APPRENDRE FROM SCRATCH à un bras de robot comment déclencher ses moteurs axiaux dans une bonne chronologie, ça démystifie.

Vous voyez AVANT que la commande déclenche le robot, la mémoire de l'ordi est vierge. Pareil à une IA, on commence par apprendre du meilleur des modèles (on va piloter soit même le bras de robot au clavier) et ensuite auto-enregistré TOUT ce que l'on a executé (ou pas) pour saisir un object et le rejouer.

Le bras de robot est un turc mécanique, derrière ce mouvement se cache celui appris d'un humain.


Ou d'une IA ....

Est-ce qu'un geste peut être original, détenu par une entité légale ? Peut-on s'approprier le geste de l'autre, le réglementer (voir le dérèglementer) ?

En fait, on s'en bat les steacks quand le détenteur du geste expert est un esclave...

Dans le contexte de la guerre des Pauvres, les mnémonites et autres anabaptistes ont questionné leur rapport à la technologie comme outil d'asservissement.

La doctrine amish peut être résumé en « nous souhaitons être dans l'autonomie technique pour ni prendre le risque d'être asservi par le possesseur de la technique, ni être le complice de l'asservissement de la technique.

Il y a dans la pensée amish une critique pré-marxiste que l'on retrouve dans le luddisme d'association claire entre mécanisation des tâches et exploitation du pauvre.

Avant de dire du bien de la pensée laïque amish, j'aimerais rappeler que la réalité des communautés amish est assez proche d'un sectarisme que je ne souhaite pas à ma famille. Je ne veux pas vivre en communauté amish.

Par contre, ils ont quand même survécu 500 ans dont quelques épisodes de persécutions religieuses donc, en terme de capacité de survivre on va leur accorder un point Darwin positif.

Les Amishs sont une propagande par le fait d'implémentation capable de fonctionner qui refuse pour des mauvaises raisons (le bigotisme) l'automatisme qu'il dénonce comme générateur de la misère.

Comment peut on éradiquer concrètement la misère ? En éradiquant les riches disent les amishs. En étant tous radicalement égaux dans une pauvreté partagée où la technique est accepter dans son minimum vitale permettant à délivrer l'individu des tâches pénibles (mécanisation des labours, pompage de l'eau, PAC...).

Les mecs ont des dispositifs de climatisation old techs. Parce que bon, amish ou pas, tu préfères vivres dans une maison sans champignons donc, il en fait des automates.

Ils ont des pompes éoliennes pour monter l'eau. Ils ont rien contre l'automatisme; j'ai même vu des moteurs **Stirling** Amish pour faire des pompes à chaleurs rudimentaires.


C'est plus un automate qui utilise des différentielles analogiques qu'un truc avec un microprocesseur programmable, mais ça reste un automatisme. Un truc qui déclenche de manière autonomes des transferts de chaleur sans interventions humaines autres que déplacer le truc pour le mettre en marche.

Alors bon, moi les amish je prétend que sont des technophiles, ils sont tellement esthètes qu'ils tentent de définir le plus petit jeu de technique possible pour atteindre le plus grand confort possible le Gelssenheit.

Ils ont même des machines à laver (rudimentaires).

Donc, oui on parlait d'éliminer les riches.

Si les riches sont le problème social, il suffit de vivre dans une communauté où tout le monde est pauvre.

Alors entendons nous, pas pauvres au sens d'un ministère théologique ou étatique, mais la définition pauvre de pauvre, celle qui date d'avant les mesures.

Le pauvre est celui qui ne manque de rien mais ne peut se payer le superflu. Et le superflu pour un amish : c'est la pierre tombale.

Pour le amish le pauvre ne manque de rien, mais comme les pierres tombales qui coûte un bras c'est pas un trop du bling bling, tout le monde pourra se payer sa pierre tombale faite d'un rien facile à faire soi même.

Le amish réduit ses besoins et ses attentes pour qu'à la fin de sa vie il soit capable autonome de dignement graver sa pierre tombale.
De fait, le seul argument valide à ne pas pouvoir vivre pauvre pour un bigot est levé.

Désormais le riche est celui qui tente d'entraîner la communauté dans une spirale où le vieux n'est plus autonome pour produire une sépulture aux attentes de la communauté.

La machine à laver, la pompe à eau, ça contribue à l'autonomie. Une imprimante 3D qui fabriquerait des statues du seigneur qui deviendrait un MUST pour les enterrements n'est pas souhaitable.

Enfin, on confond pauvre et miséreux. Le pauvre est en bonne santé, car se privant de rien (mais ne pouvant se payer le superflu) il n'est ni en carence alimentaire, ni en insécurité locative, ni à vivre dans le froid ou le chaud extrême.

Une société sans riche, c'est une société sans misérables.

Comment les amish ont développés une histoire de culture de critique sociale de l'automatisme ?

Et bien, comme pour tout super héro aussi dingo soit-il, il faut lire le marvel origin : « les luthériens et la guerre des Pauvres ».

En 1540 (la rennaissance) on débute la mécanisation. Surtout là où les protestants (plus souvent ingénieurs et artisans sociologiquement que les papistes) étaient.

Et les amishs, c'est un fork hostile d'ingénieurs éclairés sur les luthériens. Là où les luthériens vont avoir une belle face dans l'éthique protestante du capitalisme, ils ont rapport opposé à celui des amishs face à la machine. Le luthérien est technophile proche de la bourgeoisie, le amish est résolumment et explicitement du coté des pauvres. Weber a bien loupé l'éthique protestante de l'anti-capitisme industriel et l'anarchisme pro pauvre. À croire que Weber était protestant, riche et biaisé dans sa propre culture de classe qui l'a emporté sur son honnêté religieuse.

Ce n'est pas un non à la technologie, mais plus pareil au serment des compagnons du devoir à ne pas s'autoriser à construire des forts ou des prisons, une restriction à son domaine d'application considéré comme contraire à une société concrète fonctionnelle. Les amishs lient le fait de voler le travail des pauvres à la machinisation et luttent contre, car ils luttent contre l'instauration d'une caste de riches.

Va pas chercher chez les marxistes qui réfutent le concret pour t'expliquer que l'anti-capitalisme ça existe concrètement et que l'on vit très bien sans les riches.

Au prix de ne pas avoir de bras de robots.

Imaginons comment avoir un bras de robot programmable low tech ferait s'écrouler la communauté amish.

Il y a un geste chiant qui fait mal : faire le pain.
Ma machine enregistre le geste du gars et le rejoue en boucle. Rien de sophistiqué, un processeur 4 bits gravé à 1 micron devrait pouvoir le faire.

Jusque là tout va bien. Mais ... Imagine qu'un client est un super boulanger et a un geste original qui améliore la panification, je peux enregistrer son geste et le vendre.

Avec mon bras de robot je viens à a fois de faire dévier une communauté de sa norme et j'ai introduit une dépendance à mon aproppriation du travail de l'autre.
J'ai inventé l'aspirateur physique à créer de la propriété sur les gestes originaux des autres.
À partir de mon robot je peux concurrencer un membre de la communauté avec une variante de son geste lui faisant perdre son avantage que je viens de récupérer à l'identique pour un coût d'exploitation qui est fraction du coût social à entretenir un membre de la société.

La machinisation qui semble altruiste (on épargne la tâche ardue au miséreux) est en fait le basculement de rentablité entre l'esclavagisme et le salarié du point de vue de l'exploiteur.

L'esclave n'est membre de la communauté car il est possession. On cherche à le rentabiliser en lui faisant faire des tâches productives où il est plus concurrentiel que l'homme libre autonome.

Littérallement, l'esclave est parfait pour les boulots de merde que personne ne ferait sauf contraint et forcé.
Mais, moins motivé que l'Homme libre, comme les nazis et les soviétiques l'ont démontré en usant massivement de main d'oeuvre forcée, sa qualité nécessaire à des biens sophistiqués à forte valeur ajoutée n'est pas profitable.

La mort de l'esclavagisme n'a pas été une victoire des abolitionistes sur les exploiteurs autant qu'un changement de rentabilité du coût de l'esclave quand la machine arrive.

Le salarié, pauvre, est la mutation économique naturelle qui suit l'esclavagisme. Celui qui n'étant pas autonome dépend de la société et doit donc ACCEPTER des travails qu'une homme libre n'accepterait pas pour non se payer le superflu, mais simplement ne manquer de rien.

Le travailleur n'étant plus propriété de l'exploiteur, l'exploiteur ne risque plus aucune poursuite légale ou opprobe social pour le destin qu'il contrôle du salarié.

C'est un peu comme un esclave de fait, mais comme c'est pas explicite que tu contrôles son cul pas de risques d'opprobes. La propriété est mutualisée.

Comme du dépends des scouts (ou autres bigots) tu leur dois un peu de ton temps à la hauteur du mérite social : aux riches les titres ronflants qui passent en beaux uniformes parader à la fin des rencontres et au vâchers le soin de torcher leurs mômes mal-élevés.

Tu dépends de la ville, l'état, l'école, le proprio qui ont tous une tâche mnauelle que tu prérérerais ne pas faire (trier ses poubelles, accompagner les enfants à la piscine, faire le crétin sous un drapeau ....) à t'imposer car tu dépends d'eux et de tes bonnes relations avec eux.

Dans le salariat le seul atout de l'humain est l'originalité de son geste. Quelque chose qu'il sait faire qui lui permet de gagner contre les machines.

Enregistre tout les gestes, de tout les humains, dans une base de données. Dépersonnalise les résutats et donne ça a manger à un robot et t'as créé l'IA.

La machine à s'attribuer l'originalité de tout les salariés.

Plus besoin d'un boulanger, d'un docteur, d'un salarié -riche ou pauvre- quand on peut le remplacer par une machine !

Jamais un ingénieur collaborant à construire des machines s'appropriant le travail des autres ne peut imaginer un instant ne pas terminer victime de sa propre création.

Alors, le amish en moi, regarde ce bras de robot et se demande si il faut déjà le brûler comme une technologie de malheur ?

Et comme je ne suis pas amish, je dis : lol non !

J'aime mes jouets qui font wizz, crash, boum bang. Un spectrographe de masse par exemple, ça c'est cool.

Quand je regarde un téléphone portable moderne avec ses DSP, RAMDAC, fréquence d'horloge, je me dis que l'on peut équiper TOUT les foyers en équipement de dingue à pas cher si seulement on pouvait leur mettre un bras de robot.

Même un putain d'earpod embarque 3 core ARM de folie. J'ai fait wahou devant des consoles de jeux piloté par des unités centrale 8 bits (comme la super NES). Donc imaginez le parti que j'imagine qu'on peut tirer d'un earpod pour peu qu'on peut le coller au cul d'un bras de robot.

Avec suffisamment de fer à souder et d'ingéniosité on peut imaginer recycler un moteur de machine à laver et son microcontrôleur en centrale inertielle de qualité militaire.

Ou pas, on peut aussi faire des microscopes à infrarouge, des émetteurs récepteurs multibandes, des appareils de mesure donc **MÉDICAUX** mais aussi militaires ...

On pourrait imaginer avec un dispositif low tech et peu de soudures transformer un téléphone portable en oscilloscope, on pourrait même tenter de le faire par induction.

Bref, je signale que mon point de vue est biaisé : je ne connais aucun amish et je suis expert de canapé dans leur culture. Donc je n'ai fait qu'étaler des préjugés... avec une pincée de vérité.

Par contre, comme eux, mais avec des conclusions qui me sont propres je trouve que leur dénonciation explicite de la technologie comme outil d'asservissement est un bon axiome et je pense que mes conclusions sur le sujet n'ont aucune quelconque valeur, par contre, comme eux j'ai le préjugé qu'il faut savoir garder une méfiance viscérale à l'égard d'un progrès technique prétendant à l'automatisation comme seul objectif, car seul l'exploiteur voit ça en but à rechercher dans la technique.

Réinventons la technique éthique. O, by the way : il y a un vrai site web AMISH avec un magazine PDF téléchargeable usant des dernières techniques mercatiques avancées pour vendre du conseil en innovation low-tech AMISH à la sauce startup.

https://www.plaincommunities.com/