This commit is contained in:
glazk0 2023-11-22 23:07:21 +01:00
parent bef67514a9
commit 61f0a24130
No known key found for this signature in database
GPG key ID: E45BF177782B9FEB
83 changed files with 1016 additions and 1 deletions

6
.gitignore vendored
View file

@ -49,4 +49,8 @@
modules.order
Module.symvers
Mkfile.old
dkms.conf
dkms.conf
# Rust
target/
Cargo.lock

View file

@ -0,0 +1,34 @@
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
FILE *file;
size_t length;
char text[500], message[500];
int i;
file = fopen("messageIA.txt", "r");
if (file == NULL) {
printf("failed reading file");
return EXIT_FAILURE;
}
fgets(text, sizeof(text), file);
length = strlen(text);
for (i = 0; i < length; i += 3) {
strncat(message, &text[i], 1);
}
/* I've normalized the file input so o is ô & e is é */
printf("%s", message);
fclose(file);
return EXIT_SUCCESS;
}

View file

@ -0,0 +1 @@
BDvoOondajFVoyXuknrfo FsBqJaTbruilZFoiLwzK,Mq uERFCALYSIu jVdEFeZt NQnyYobOtiTrYHezQ GvcsKoGntszejO SP!BI btOANvvYeaGrQP.Xj

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,25 @@
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE *file;
char text[10000];
int i, n = 0;
size_t length = sizeof(text) / sizeof(char);
file = fopen("cypherpunk.txt", "r");
fgets(text, 10000, file);
for (i = 0; i < length; ++i) {
if (text[i] == 'c') {
n++;
}
}
printf("%d", n);
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,22 @@
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#define ROT 13
int main(void) {
char text[] = "bonjour agentty, ras de notre cote egalement. over", base;
int i;
for (i = 0; text[i] != '\0'; ++i) {
if (isalpha(text[i])) {
base = islower(text[i]) ? 'a' : 'A';
text[i] = (text[i] - base + ROT) % 26 + base;
}
}
printf("%s", text);
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,45 @@
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int isPalindrome(char *str);
int main(void) {
FILE *file = fopen("palindrome.txt", "r");
char *token, line[512];
if (file == NULL) {
perror("Error opening file");
return EXIT_FAILURE;
}
while (fgets(line, sizeof(line), file)) {
token = strtok(line, ",");
while (token != NULL) {
if (isPalindrome(token)) {
printf("palindrome found: %s\n", token);
}
token = strtok(NULL, ",");
}
}
fclose(file);
return EXIT_SUCCESS;
}
int isPalindrome(char *str) {
int i, length = strlen(str);
for (i = 0; i < length / 2; i++) {
if (tolower(str[i]) != tolower(str[length - 1 - i])) {
return 0;
}
}
return 1;
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,15 @@
// Didn't succeed to do it with C so I did it with Node.js
const fs = require('node:fs');
const data = fs.readFileSync('./cypherpunk.txt', 'utf8');
// Don't do this in production please :)
console.log(
data
.split('\\n')
.filter(Boolean)
.map((line) => line[0] + line[line.length - 1])
.toString()
);

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,34 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
FILE *file;
char text[10000], *word = "vie privée", *found;
int n = 0;
file = fopen("cypherpunk.txt", "r");
if (file == NULL) {
printf("failed reading file");
return EXIT_FAILURE;
}
while (fgets(text, sizeof(text), file) != NULL) {
found = strstr(text, word);
while (found != NULL) {
printf("found at position %ld\n", (long)(found - text) + 1);
n++;
found = strstr(found + 1, word);
}
}
printf("%d", n);
fclose(file);
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,8 @@
[package]
name = "belle-console"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,3 @@
fn main() {
println!("Bonjour Captaine Barlow,\n\tSystèmes de contrôle de la sécurité en cours de vérification...\n\tSystèmes de contrôle opérationnels !\nEnclencher la phase de démarrage manuel dans 10s et bon 'cypherwind'.");
}

View file

@ -0,0 +1,8 @@
[package]
name = "bienvenue-a-bord"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,3 @@
fn main() {
println!("A l'abordage !");
}

View file

@ -0,0 +1,8 @@
[package]
name = "neurones"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,16 @@
fn main() {
const PERTE: i32 = 10000;
let neurones = 100000000;
let age = 47;
let restant = neurones + (age * -PERTE);
if restant < 99000000 {
println!("C'est mal parti !");
} else if restant > neurones {
println!("Comment as-tu fais pour en gagner ?");
} else {
println!("Ca devrait le faire.");
}
}

View file

@ -0,0 +1,8 @@
[package]
name = "hidden-message"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1 @@
BDvoOondajFVoyXuknrfo FsBqJaTbruilZFoiLwzK,Mq uERFCALYSIu jVdEFeZt NQnyYobOtiTrYHezQ GvcsKoGntszejO SP!BI btOANvvYeaGrQP.Xj

View file

@ -0,0 +1,11 @@
use std::fs;
fn main() {
const PATH: &str = "messageIA.txt";
let content = fs::read_to_string(PATH).expect("should have been to read file");
let message: String = content.chars().step_by(3).collect();
println!("Here is the message that has been sent: {}", message);
}

View file

@ -0,0 +1,8 @@
[package]
name = "locker-code-reminder"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,11 @@
use std::fs;
fn main() {
const PATH: &str = "cypherpunk.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read file");
let count = content.matches('c').count();
println!("There is the c letter {} time(s)", count);
}

View file

@ -0,0 +1,8 @@
[package]
name = "own-rot-convertor"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,46 @@
use std::io;
fn caesar_cipher(text: &mut String, rotation: u32) {
let mut message = String::new();
for char in text.chars() {
if char.is_alphabetic() {
let base = if char.is_lowercase() {
'a' as u32
} else {
'A' as u32
};
let shifted = (char as u32 - base + rotation) % 26;
let result = (shifted + base) as u8 as char;
message.push(result);
} else {
message.push(char);
}
}
*text = message;
}
fn main() {
println!("What's the message to rotate ?");
let mut message = String::new();
io::stdin()
.read_line(&mut message)
.expect("expected a message to be sent");
let mut rotation = String::new();
println!("What's the rotation to do ?");
io::stdin()
.read_line(&mut rotation)
.expect("expected a roation to be sent");
let rotation: u32 = rotation.trim().parse().expect("expected to parse");
caesar_cipher(&mut message, rotation);
println!("ROT-{} is: {}", rotation, message);
}

View file

@ -0,0 +1,8 @@
[package]
name = "palindrome"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,19 @@
use std::fs;
fn is_palindrome(str: &str) -> bool {
let reversed = str.chars().rev().collect::<String>();
str == reversed
}
fn main() {
const PATH: &str = "palindrome.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read the file");
let palindromes: Vec<&str> = content
.split(",")
.filter(|str| is_palindrome(str))
.collect();
println!("Palindrome(s): {:?}", palindromes);
}

View file

@ -0,0 +1,8 @@
[package]
name = "password-generator"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,17 @@
use std::fs;
fn main() {
const PATH: &str = "cypherpunk.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read the file");
let password: String = content
.split("\\n")
.filter(|line| !line.is_empty())
.map(|line| {
line.chars().next().unwrap().to_string() + &line.chars().last().unwrap().to_string()
})
.collect();
println!("The password is: {}", password);
}

View file

@ -0,0 +1,8 @@
[package]
name = "vie-privee"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,11 @@
use std::fs;
fn main() {
const PATH: &str = "cypherpunk.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read file");
let count = content.matches("vie privée").count();
println!("There is \"vie privée\" {} times", count);
}

View file

@ -0,0 +1,8 @@
[package]
name = "first-temperature-list"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,16 @@
fn main() {
let temperatures = [12, 13, 14, 15, 15, 12, 7];
let mut sum = 0;
// Not doing it the rust way but challenge way
// let sum = temperatures.iter().sum() as f64;
for x in &temperatures {
sum += x;
}
let sum: f64 = f64::from(sum) / (temperatures.len() as f64);
println!("{:?}", sum.floor());
}

View file

@ -0,0 +1,8 @@
[package]
name = "melting-pot"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1 @@
Un ordinateur peut entre autre effectuer des tâches répétitives sans se lasser et sans se tromper, enfin..., si le développeur a bien fait son travail.

View file

@ -0,0 +1,24 @@
use std::fs;
fn main() {
const PATH: &str = "letterCount.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read the file");
let words: Vec<&str> = content.split_whitespace().collect();
let total_length = words
.iter()
.map(|&word| word.replace(&[',', '.'], "").chars().count())
.sum::<usize>() as f64;
let average_length = if words.is_empty() {
0.0
} else {
total_length / words.len() as f64
};
let formated_result = format!("{:.2}", average_length).replace(".", ",");
println!("The average length is of: {}", formated_result);
}

View file

@ -0,0 +1,8 @@
[package]
name = "rot-decryption"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,49 @@
use std::env;
fn caesar_cipher(text: &mut String, rotation: u32, encrypt: bool) {
let mut message = String::new();
let shift = if encrypt { rotation } else { 26 - rotation };
for char in text.chars() {
if char.is_alphabetic() {
let base = if char.is_lowercase() {
'a' as u32
} else {
'A' as u32
};
let shifted = (char as u32 - base + shift) % 26;
let result = (shifted + base) as u8 as char;
message.push(result);
} else {
message.push(char);
}
}
*text = message;
}
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() != 4 {
println!("Usage: caesar_cipher <encrypt/decrypt> <rotation> <message>");
return;
}
let action = &args[1];
let rotation = args[2].parse::<u32>();
if action == "encrypt" || action == "decrypt" {
match rotation {
Ok(r) => {
let mut message = args[3].clone();
let encrypt = action == "encrypt";
caesar_cipher(&mut message, r, encrypt);
println!("Result: {}", message);
}
Err(_) => println!("Rotation must be a positive integer."),
}
} else {
println!("Action must be 'encrypt' or 'decrypt'.");
}
}

View file

@ -0,0 +1,2 @@
56760, 98, 652, 481, 363, 880, 425, 242, 980, 562, 442, 208, 788, 614, 690, 189, 417, 704, 494, 764, 80, 395, 542, 167, 448, 818, 124, 134, 792, 401, 738, 722, 84, 773, 303, 551, 236, 703, 359, 841, 173, 565, 662, 491, 205, 797, 606, 82, 944, 97, 747, 252, 374, 190, 729, 853, 17, 951, 924, 117, 841, 878, 46, 366, 310, 232, 195, 808, 793, 191, 788, 155, 507, 865, 817, 817, 602, 800, 136, 924, 867, 984, 545, 534, 80, 474, 512, 140, 709, 55, 513, 244, 441, 253, 135, 319, 557, 627, 544, 42, 456

View file

@ -0,0 +1,8 @@
[package]
name = "sort"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,30 @@
use std::fs;
fn main() {
const PATH: &str = "100days.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read the file");
let mut expenses: Vec<u32> = content
.split(",")
.map(|x| x.trim().parse().expect("encountered a error while parsing"))
.collect();
for i in 0..expenses.len() {
let mut max = i;
for j in (i + 1)..expenses.len() {
if expenses[j] > expenses[max] {
max = j;
}
}
if i != max {
expenses.swap(i, max);
}
}
let top_10_expenses: Vec<u32> = expenses.iter().skip(1).take(10).cloned().collect();
println!("Desc sorted expenses : {:?}", expenses);
println!("10 days : {:?}", top_10_expenses);
println!("Sum : {:?}", top_10_expenses.iter().sum::<u32>());
}

View file

@ -0,0 +1,8 @@
[package]
name = "two-steps-by-step"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,40 @@
fn calculate_average(values: &Vec<i32>) -> f64 {
/*
Rust way
let sum: i32 = values.iter().sum();
*/
let mut sum = 0;
let count = values.len() as f64;
for x in values {
sum += x;
}
sum as f64 / count
}
fn main() {
let temperatures = [12, 13, 14, 15, 15, 12, 7];
let even_positions: Vec<i32> = temperatures
.iter()
.enumerate()
.filter(|(i, _)| i % 2 == 0)
.map(|(_, &temp)| temp)
.collect();
let odd_positions: Vec<i32> = temperatures
.iter()
.enumerate()
.filter(|(i, _)| i % 2 != 0)
.map(|(_, &temp)| temp)
.collect();
let average_even = calculate_average(&even_positions);
let average_odd = calculate_average(&odd_positions);
let result = average_even + average_odd;
let result = result.ceil() as i32;
println!("I lost 3 points on this lol: {}", result);
}

View file

@ -0,0 +1 @@
56760, 98, 652, 481, 363, 880, 425, 242, 980, 562, 442, 208, 788, 614, 690, 189, 417, 704, 494, 764, 80, 395, 542, 167, 448, 818, 124, 134, 792, 401, 738, 722, 84, 773, 303, 551, 236, 703, 359, 841, 173, 565, 662, 491, 205, 797, 606, 82, 944, 97, 747, 252, 374, 190, 729, 853, 17, 951, 924, 117, 841, 878, 46, 366, 310, 232, 195, 808, 793, 191, 788, 155, 507, 865, 817, 817, 602, 800, 136, 924, 867, 984, 545, 534, 80, 474, 512, 140, 709, 55, 513, 244, 441, 253, 135, 319, 557, 627, 544, 42, 456

View file

@ -0,0 +1,8 @@
[package]
name = "work-on-the-first"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]

View file

@ -0,0 +1,18 @@
use std::fs;
fn main() {
const PATH: &str = "100days.txt";
let content = fs::read_to_string(PATH).expect("should have been able to read the file");
let content: Vec<u32> = content
.split(",")
.map(|x| x.trim().parse().unwrap())
.collect();
let (budget, used_money) = match content.split_first() {
Some((budget, used)) => (budget, used.iter().sum::<u32>()),
None => return println!("missing data bro"),
};
println!("Remaining money: {}", budget - used_money);
}

View file

@ -0,0 +1,9 @@
[package]
name = "beggin-of-line"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
regex = "1.10.2"

View file

@ -0,0 +1,66 @@
Une déclaration d'indépendance du cyberspace
Par John Perry Barlow
Hier, le grand invertébré qui loge à la Maison Blanche a apposé sa signature au bas du texte de la loi de 1996 sur la "réforme" des télécommunications, pendant que Tipper Gore prenait des photos numériques de l'événement afin de les publier dans un livre qui sera intitulé "24 Hours in Cyberspace" (24 Heures dans le cyberspace).
J'avais également été invité à contribuer à ce livre en écrivant un texte d'actualité. Mais étant donné le caractère infâme des contrôles que cette loi cherche à imposer sur le Net, j'ai pensé qu'il était temps de déverser quelques balles de thé sur les quais du port virtuel [Allusion à la "Boston Tea Party" (1773), émeute au cours de laquelle ont été détruites des cargaisons de thé appartenant à la Compagnie des Indes en réponse aux taxes instituées par le gouvernement britannique. Cette émeute fut un des premiers incidents de ce qui devait devenir la guerre d'indépendance des États-Unis - NdT].
Car la loi sur la "réforme" des télécommunications, adoptée par le Sénat à une écrasante majorité (avec seulement 5 voix contre) rend en fin de compte illégal, sous peine d'une amende de 250 000 dollars, le fait de dire "merde" sur le réseau. Ou, d'ailleurs, de dire n'importe lequel des 7 gros mots interdits d'antenne à la radio et à la télévision. Ou de discuter au grand jour de l'avortement. Ou de parler des autres fonctions corporelles autrement qu'en utilisant un vocabulaire médical aseptisé.
Elle tente de placer sur les échanges qui se mènent dans le cyberspace des contraintes plus restrictives que celles qui existent à la cafétéria du Sénat, où chaque fois que j'ai eu l'occasion d'y prendre un repas j'ai entendu des sénateurs utiliser des expressions gratinées.
Cette loi nous a été parachutée par des gens qui n'ont pas la moindre idée de qui nous sommes ou de ce qu'est ce territoire où ont lieu nos échanges. Ainsi que le dit mon ami Louis Rossetto, rédacteur-en-chef du magazine Wired, c'est comme si "les illettrés pouvaient vous dire ce qu'il faut que vous lisiez."
Eh bien, qu'ils aillent se faire foutre.
Ou plutôt, profitons de l'occasion pour prendre congé d'eux, maintenant. Ils ont déclaré la guerre au cyberspace. Montrons-leur l'étendue de notre pouvoir, de notre ruse et de notre capacité à surprendre lorsqu'il s'agit pour nous de nous défendre.
Avec le sens de la disproportion qui me caractérise, j'ai écrit un texte dont j'espère qu'il sera un des nombreux moyens qui nous permettront de nous défendre. Si vous le trouvez utile, j'espère que vous le diffuserez aussi largement que possible. Vous pouvez en retirer ma signature si vous le souhaitez, car je n'accorde aucune importance au fait qu'on m'attribue ou non sa paternité. Vraiment aucune.
Mais j'espère que ce cri se fera entendre à travers tout le cyberspace, qu'il croîtra, qu'il se clonera, qu'il mutera jusqu'à ce que son volume égale celui de l'idiotie qu'on vient de nous infliger.
Je vous offre une...
Déclaration d'indépendance du cyberspace
Gouvernements du monde industrialisé, géants fatigués de chair et d'acier, je viens du cyberspace, le nouveau domicile de l'esprit. Au nom du futur, je vous demande, à vous qui appartenez au passé, de nous laisser en paix. Vous n'êtes pas les bienvenus parmi nous. Vous n'avez aucune souveraineté sur le territoire où nous nous assemblons.
Nous n'avons pas de gouvernement élu, et il est peu probable que nous en ayons un un jour : je m'adresse donc à vous avec la seule autorité que m'accorde et que s'accorde la liberté elle-même. Je déclare que l'espace social global que nous construisons est naturellement indépendant des tyrannies que vous cherchez à nous imposer. Vous n'avez aucun droit moral à nous gouverner, et vous ne possédez aucun moyen de faire respecter votre autorité que nous ayons de bonnes raisons de craindre.
Les gouvernements trouvent le fondement de leur pouvoir légitime dans le consentement des personnes qu'ils gouvernent. Vous n'avez ni sollicité ni obtenu le nôtre. Nous ne vous avons pas invités. Vous ne nous connaissez pas, et vous ne connaissez pas non plus notre monde. Le cyberspace ne se trouve pas à l'intérieur de vos frontières. Ne pensez pas que pouvez le construire comme s'il était un de vos Grands Travaux. Vous n'y arriverez pas. C'est un phénomène naturel qui croît de lui-même, par nos actions collectives.
Vous n'avez pas pris part aux grands débats qui nous ont réunis, et vous n'avez pas non plus créé la richesse de nos marchés. Vous ne connaissez ni notre culture, ni notre éthique, ni les codes non-écrits qui ordonnent déjà notre société mieux que ne pourraient le faire n'importe lequel des règlements que vous prétendez nous imposer.
Vous dites qu'il existe chez nous des problèmes que vous devez résoudre. Vous prenez prétexte de cela pour faire intrusion dans notre espace. Beaucoup de ces problèmes n'existent pas. Là où il y aura de véritables conflits, là où des torts seront effectivement causés, nous les identifierons et nous les traiterons avec nos moyens. Nous sommes en train de mettre en place notre propre Contrat Social. Nous nous gouvernerons en fonction des conditions qui prévalent dans notre monde, pas dans le vôtre. Car notre monde est différent.
Le cyberspace est fait de transactions, de relations et de pensée, circulant en un flot ininterrompu sur nos canaux de communication. Notre monde est à la fois partout et nulle part, mais il ne se trouve pas là où vivent les corps.
Nous sommes en train de créer un monde ouvert à tous, sans privilège ni préjugé qui dépende de la race, du pouvoir économique, de la puissance militaire ou du rang à la naissance.
Nous sommes en train de créer un monde où chacun, où qu'il soit, peut exprimer ce qu'il croit, quel que soit le degré de singularité de ses croyances, sans devoir craindre d'être forcé de se taire ou de se conformer.
Les concepts de votre droit en matière de propriété, d'expression, d'identité, de mouvement et de circonstances ne s'appliquent pas à nous. Ils ont leur fondement dans la matière, et il n'y a pas de matière ici.
Nos identités n'ont pas de corps : donc, contrairement à vous, nous ne pouvons pas faire régner l'ordre au moyen de la force physique. Nous pensons que c'est à travers l'éthique et l'intérêt bien compris de chacun et de la communauté dans son ensemble que va surgir notre mode de gouvernement. Nos identités sont probablement dispersées à travers un grand nombre de vos juridictions. La seule loi que toutes les cultures qui nous constituent seraient prêtes à reconnaître est la Règle d'Or de l'éthique. Nous espérons que nous serons capables de construire nos propres solutions sur cette base. Mais nous ne pouvons pas accepter les solutions que vous essayez d'imposer.
Aux États-Unis, vous venez aujourd'hui de créer une loi, la loi sur la réforme des télécommunications, qui renie votre propre Constitution et qui est une insulte aux rêves de Jefferson, Washington, Mill, Madison, Tocqueville et Brandeis. C'est nous qui devons maintenant faire renaître ces rêves.
Vous avez une peur panique de vos propres enfants, car ils sont nés dans un monde où vous serez à jamais immigrants. Parce que vous avez peur d'eux, vous confiez à vos bureaucraties les responsabilités parentales que vous êtes trop lâches pour exercer vous-mêmes. Dans notre monde, tous les sentiments et toutes les expressions de l'humain, du plus dégradant au plus angélique, font partie d'un tout inséparable, l'échange global des octets. Il n'est pas possible de séparer l'air qui peut éventuellement étouffer certains de ceux qui le respirent de celui qui permet aux oiseaux de voler.
En Chine, en Allemagne, en France, en Russie, à Singapour, en Italie et aux États-Unis, vous essayez de tenir à l'écart le virus de la liberté en érigeant des postes de contrôle sanitaire aux frontières du cyberspace. Peut-être que ceux-ci empêcheront la contagion un certain temps, mais ils ne fonctionneront pas dans le monde de l'omniprésence des médias transporteurs d'octets.
Vos industries de l'information, de plus en plus obsolètes, cherchent à se perpétuer en proposant des lois, en Amérique et ailleurs, qui ont la prétention de confisquer à leur profit jusqu'à la parole même à travers le monde. Ces lois cherchent à transformer les idées en un produit industriel comme les autres, au même titre que les lingots de fonte. Dans notre monde, tout ce que l'esprit humain peut créer peut être reproduit et distribué à l'infini sans que cela ne coûte rien. Le transmission globale de la pensée n'a plus besoin de vos usines pour se faire.
Ces mesures de plus en plus hostiles et colonialistes nous placent dans la même position que les amoureux de la liberté et de l'auto-détermination qui lors d'époques précédentes ont dû rejeter l'autorité de pouvoirs distants et mal informés. Il nous faut déclarer que nos identités virtuelles ne sont pas soumises à votre souveraineté, alors même que nous continuons à consentir à ce que vous gouverniez nos corps. Nous allons nous disperser sur toute la planète de manière à ce que personne ne puisse arrêter nos idées.
Nous allons créer une civilisation de l'esprit dans le cyberspace. Puisse-t-elle être plus juste et plus humaine que le monde qu'ont construit vos gouvernements auparavant.
Davos, Suisse, le 8 février 1996
- Publié en français par le webzine "Cybersphere", aujourd'hui disparu. Traduction par Diogène.

View file

@ -0,0 +1,15 @@
use std::fs;
use regex::Regex;
fn main() {
const PATH: &str = "independance.txt";
let file = fs::read_to_string(PATH).unwrap();
let regex = Regex::new(r"\b[aeiouyAEIOUYéèàùêâûîô]\w+").unwrap();
let count = regex.find_iter(&file).count();
println!("Found {} matches", count);
}

View file

@ -0,0 +1,9 @@
[package]
name = "doublons-doublons"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
fancy-regex = "0.12.0"

View file

@ -0,0 +1 @@
Rien de tout ça n'avait le moindre moindre espoir d'application pratique pratique dans ma vie. Mais dix ans plus plus tard, alors que nous concevions le premier ordinateur Macintosh Macintosh, tout cela m'est revenu. Et Et nous avons tout injecté dans le Mac. C'était le premier ordinateur avec une belle typographie. Si je n'avais pas assisté assisté à l'improviste à ce cours-là à l'université, le Mac n'aurait jamais eu des polices d'écriture différentes, ou proportionnellement espacées. Et vu que Windows n'a fait que copier le Mac, il est probable qu'aucun ordinateur n'en disposerait. Si je n'avais pas abandonné, je n'aurais jamais assisté à ce cours de calligraphie et les ordinateurs personnels n'auraient peut-être pas les merveilleuses typographies qu'ils ont. Bien sûr, c'était impossible de faire le lien en regardant vers l'avenir quand j'étais à l'université. Mais c'était très, très clair quand j'ai regardé en arrière dix ans plus tard.

View file

@ -0,0 +1,16 @@
use std::fs;
// It supports backreferences
use fancy_regex::Regex;
fn main() {
const PATH: &str = "macDouble.txt";
let file = fs::read_to_string(PATH).unwrap();
let regex = Regex::new(r"\b(\w+)\s+\1\b").unwrap();
let count = regex.find_iter(&file).count();
println!("Found {} matches", count);
}

View file

@ -0,0 +1,9 @@
[package]
name = "first-regex"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
regex = "1.10.2"

View file

@ -0,0 +1,66 @@
Une déclaration d'indépendance du cyberspace
Par John Perry Barlow
Hier, le grand invertébré qui loge à la Maison Blanche a apposé sa signature au bas du texte de la loi de 1996 sur la "réforme" des télécommunications, pendant que Tipper Gore prenait des photos numériques de l'événement afin de les publier dans un livre qui sera intitulé "24 Hours in Cyberspace" (24 Heures dans le cyberspace).
J'avais également été invité à contribuer à ce livre en écrivant un texte d'actualité. Mais étant donné le caractère infâme des contrôles que cette loi cherche à imposer sur le Net, j'ai pensé qu'il était temps de déverser quelques balles de thé sur les quais du port virtuel [Allusion à la "Boston Tea Party" (1773), émeute au cours de laquelle ont été détruites des cargaisons de thé appartenant à la Compagnie des Indes en réponse aux taxes instituées par le gouvernement britannique. Cette émeute fut un des premiers incidents de ce qui devait devenir la guerre d'indépendance des États-Unis - NdT].
Car la loi sur la "réforme" des télécommunications, adoptée par le Sénat à une écrasante majorité (avec seulement 5 voix contre) rend en fin de compte illégal, sous peine d'une amende de 250 000 dollars, le fait de dire "merde" sur le réseau. Ou, d'ailleurs, de dire n'importe lequel des 7 gros mots interdits d'antenne à la radio et à la télévision. Ou de discuter au grand jour de l'avortement. Ou de parler des autres fonctions corporelles autrement qu'en utilisant un vocabulaire médical aseptisé.
Elle tente de placer sur les échanges qui se mènent dans le cyberspace des contraintes plus restrictives que celles qui existent à la cafétéria du Sénat, où chaque fois que j'ai eu l'occasion d'y prendre un repas j'ai entendu des sénateurs utiliser des expressions gratinées.
Cette loi nous a été parachutée par des gens qui n'ont pas la moindre idée de qui nous sommes ou de ce qu'est ce territoire où ont lieu nos échanges. Ainsi que le dit mon ami Louis Rossetto, rédacteur-en-chef du magazine Wired, c'est comme si "les illettrés pouvaient vous dire ce qu'il faut que vous lisiez."
Eh bien, qu'ils aillent se faire foutre.
Ou plutôt, profitons de l'occasion pour prendre congé d'eux, maintenant. Ils ont déclaré la guerre au cyberspace. Montrons-leur l'étendue de notre pouvoir, de notre ruse et de notre capacité à surprendre lorsqu'il s'agit pour nous de nous défendre.
Avec le sens de la disproportion qui me caractérise, j'ai écrit un texte dont j'espère qu'il sera un des nombreux moyens qui nous permettront de nous défendre. Si vous le trouvez utile, j'espère que vous le diffuserez aussi largement que possible. Vous pouvez en retirer ma signature si vous le souhaitez, car je n'accorde aucune importance au fait qu'on m'attribue ou non sa paternité. Vraiment aucune.
Mais j'espère que ce cri se fera entendre à travers tout le cyberspace, qu'il croîtra, qu'il se clonera, qu'il mutera jusqu'à ce que son volume égale celui de l'idiotie qu'on vient de nous infliger.
Je vous offre une...
Déclaration d'indépendance du cyberspace
Gouvernements du monde industrialisé, géants fatigués de chair et d'acier, je viens du cyberspace, le nouveau domicile de l'esprit. Au nom du futur, je vous demande, à vous qui appartenez au passé, de nous laisser en paix. Vous n'êtes pas les bienvenus parmi nous. Vous n'avez aucune souveraineté sur le territoire où nous nous assemblons.
Nous n'avons pas de gouvernement élu, et il est peu probable que nous en ayons un un jour : je m'adresse donc à vous avec la seule autorité que m'accorde et que s'accorde la liberté elle-même. Je déclare que l'espace social global que nous construisons est naturellement indépendant des tyrannies que vous cherchez à nous imposer. Vous n'avez aucun droit moral à nous gouverner, et vous ne possédez aucun moyen de faire respecter votre autorité que nous ayons de bonnes raisons de craindre.
Les gouvernements trouvent le fondement de leur pouvoir légitime dans le consentement des personnes qu'ils gouvernent. Vous n'avez ni sollicité ni obtenu le nôtre. Nous ne vous avons pas invités. Vous ne nous connaissez pas, et vous ne connaissez pas non plus notre monde. Le cyberspace ne se trouve pas à l'intérieur de vos frontières. Ne pensez pas que pouvez le construire comme s'il était un de vos Grands Travaux. Vous n'y arriverez pas. C'est un phénomène naturel qui croît de lui-même, par nos actions collectives.
Vous n'avez pas pris part aux grands débats qui nous ont réunis, et vous n'avez pas non plus créé la richesse de nos marchés. Vous ne connaissez ni notre culture, ni notre éthique, ni les codes non-écrits qui ordonnent déjà notre société mieux que ne pourraient le faire n'importe lequel des règlements que vous prétendez nous imposer.
Vous dites qu'il existe chez nous des problèmes que vous devez résoudre. Vous prenez prétexte de cela pour faire intrusion dans notre espace. Beaucoup de ces problèmes n'existent pas. Là où il y aura de véritables conflits, là où des torts seront effectivement causés, nous les identifierons et nous les traiterons avec nos moyens. Nous sommes en train de mettre en place notre propre Contrat Social. Nous nous gouvernerons en fonction des conditions qui prévalent dans notre monde, pas dans le vôtre. Car notre monde est différent.
Le cyberspace est fait de transactions, de relations et de pensée, circulant en un flot ininterrompu sur nos canaux de communication. Notre monde est à la fois partout et nulle part, mais il ne se trouve pas là où vivent les corps.
Nous sommes en train de créer un monde ouvert à tous, sans privilège ni préjugé qui dépende de la race, du pouvoir économique, de la puissance militaire ou du rang à la naissance.
Nous sommes en train de créer un monde où chacun, où qu'il soit, peut exprimer ce qu'il croit, quel que soit le degré de singularité de ses croyances, sans devoir craindre d'être forcé de se taire ou de se conformer.
Les concepts de votre droit en matière de propriété, d'expression, d'identité, de mouvement et de circonstances ne s'appliquent pas à nous. Ils ont leur fondement dans la matière, et il n'y a pas de matière ici.
Nos identités n'ont pas de corps : donc, contrairement à vous, nous ne pouvons pas faire régner l'ordre au moyen de la force physique. Nous pensons que c'est à travers l'éthique et l'intérêt bien compris de chacun et de la communauté dans son ensemble que va surgir notre mode de gouvernement. Nos identités sont probablement dispersées à travers un grand nombre de vos juridictions. La seule loi que toutes les cultures qui nous constituent seraient prêtes à reconnaître est la Règle d'Or de l'éthique. Nous espérons que nous serons capables de construire nos propres solutions sur cette base. Mais nous ne pouvons pas accepter les solutions que vous essayez d'imposer.
Aux États-Unis, vous venez aujourd'hui de créer une loi, la loi sur la réforme des télécommunications, qui renie votre propre Constitution et qui est une insulte aux rêves de Jefferson, Washington, Mill, Madison, Tocqueville et Brandeis. C'est nous qui devons maintenant faire renaître ces rêves.
Vous avez une peur panique de vos propres enfants, car ils sont nés dans un monde où vous serez à jamais immigrants. Parce que vous avez peur d'eux, vous confiez à vos bureaucraties les responsabilités parentales que vous êtes trop lâches pour exercer vous-mêmes. Dans notre monde, tous les sentiments et toutes les expressions de l'humain, du plus dégradant au plus angélique, font partie d'un tout inséparable, l'échange global des octets. Il n'est pas possible de séparer l'air qui peut éventuellement étouffer certains de ceux qui le respirent de celui qui permet aux oiseaux de voler.
En Chine, en Allemagne, en France, en Russie, à Singapour, en Italie et aux États-Unis, vous essayez de tenir à l'écart le virus de la liberté en érigeant des postes de contrôle sanitaire aux frontières du cyberspace. Peut-être que ceux-ci empêcheront la contagion un certain temps, mais ils ne fonctionneront pas dans le monde de l'omniprésence des médias transporteurs d'octets.
Vos industries de l'information, de plus en plus obsolètes, cherchent à se perpétuer en proposant des lois, en Amérique et ailleurs, qui ont la prétention de confisquer à leur profit jusqu'à la parole même à travers le monde. Ces lois cherchent à transformer les idées en un produit industriel comme les autres, au même titre que les lingots de fonte. Dans notre monde, tout ce que l'esprit humain peut créer peut être reproduit et distribué à l'infini sans que cela ne coûte rien. Le transmission globale de la pensée n'a plus besoin de vos usines pour se faire.
Ces mesures de plus en plus hostiles et colonialistes nous placent dans la même position que les amoureux de la liberté et de l'auto-détermination qui lors d'époques précédentes ont dû rejeter l'autorité de pouvoirs distants et mal informés. Il nous faut déclarer que nos identités virtuelles ne sont pas soumises à votre souveraineté, alors même que nous continuons à consentir à ce que vous gouverniez nos corps. Nous allons nous disperser sur toute la planète de manière à ce que personne ne puisse arrêter nos idées.
Nous allons créer une civilisation de l'esprit dans le cyberspace. Puisse-t-elle être plus juste et plus humaine que le monde qu'ont construit vos gouvernements auparavant.
Davos, Suisse, le 8 février 1996
- Publié en français par le webzine "Cybersphere", aujourd'hui disparu. Traduction par Diogène.

View file

@ -0,0 +1,15 @@
use std::fs;
use regex::Regex;
fn main() {
const PATH: &str = "independance.txt";
let file = fs::read_to_string(PATH).unwrap();
let regex = Regex::new(r"libert[e|é]").unwrap();
let count = regex.find_iter(&file).count();
println!("Found {} matches", count);
}

View file

@ -0,0 +1,9 @@
[package]
name = "in-set"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
regex = "1.10.2"

View file

@ -0,0 +1,66 @@
Une déclaration d'indépendance du cyberspace
Par John Perry Barlow
Hier, le grand invertébré qui loge à la Maison Blanche a apposé sa signature au bas du texte de la loi de 1996 sur la "réforme" des télécommunications, pendant que Tipper Gore prenait des photos numériques de l'événement afin de les publier dans un livre qui sera intitulé "24 Hours in Cyberspace" (24 Heures dans le cyberspace).
J'avais également été invité à contribuer à ce livre en écrivant un texte d'actualité. Mais étant donné le caractère infâme des contrôles que cette loi cherche à imposer sur le Net, j'ai pensé qu'il était temps de déverser quelques balles de thé sur les quais du port virtuel [Allusion à la "Boston Tea Party" (1773), émeute au cours de laquelle ont été détruites des cargaisons de thé appartenant à la Compagnie des Indes en réponse aux taxes instituées par le gouvernement britannique. Cette émeute fut un des premiers incidents de ce qui devait devenir la guerre d'indépendance des États-Unis - NdT].
Car la loi sur la "réforme" des télécommunications, adoptée par le Sénat à une écrasante majorité (avec seulement 5 voix contre) rend en fin de compte illégal, sous peine d'une amende de 250 000 dollars, le fait de dire "merde" sur le réseau. Ou, d'ailleurs, de dire n'importe lequel des 7 gros mots interdits d'antenne à la radio et à la télévision. Ou de discuter au grand jour de l'avortement. Ou de parler des autres fonctions corporelles autrement qu'en utilisant un vocabulaire médical aseptisé.
Elle tente de placer sur les échanges qui se mènent dans le cyberspace des contraintes plus restrictives que celles qui existent à la cafétéria du Sénat, où chaque fois que j'ai eu l'occasion d'y prendre un repas j'ai entendu des sénateurs utiliser des expressions gratinées.
Cette loi nous a été parachutée par des gens qui n'ont pas la moindre idée de qui nous sommes ou de ce qu'est ce territoire où ont lieu nos échanges. Ainsi que le dit mon ami Louis Rossetto, rédacteur-en-chef du magazine Wired, c'est comme si "les illettrés pouvaient vous dire ce qu'il faut que vous lisiez."
Eh bien, qu'ils aillent se faire foutre.
Ou plutôt, profitons de l'occasion pour prendre congé d'eux, maintenant. Ils ont déclaré la guerre au cyberspace. Montrons-leur l'étendue de notre pouvoir, de notre ruse et de notre capacité à surprendre lorsqu'il s'agit pour nous de nous défendre.
Avec le sens de la disproportion qui me caractérise, j'ai écrit un texte dont j'espère qu'il sera un des nombreux moyens qui nous permettront de nous défendre. Si vous le trouvez utile, j'espère que vous le diffuserez aussi largement que possible. Vous pouvez en retirer ma signature si vous le souhaitez, car je n'accorde aucune importance au fait qu'on m'attribue ou non sa paternité. Vraiment aucune.
Mais j'espère que ce cri se fera entendre à travers tout le cyberspace, qu'il croîtra, qu'il se clonera, qu'il mutera jusqu'à ce que son volume égale celui de l'idiotie qu'on vient de nous infliger.
Je vous offre une...
Déclaration d'indépendance du cyberspace
Gouvernements du monde industrialisé, géants fatigués de chair et d'acier, je viens du cyberspace, le nouveau domicile de l'esprit. Au nom du futur, je vous demande, à vous qui appartenez au passé, de nous laisser en paix. Vous n'êtes pas les bienvenus parmi nous. Vous n'avez aucune souveraineté sur le territoire où nous nous assemblons.
Nous n'avons pas de gouvernement élu, et il est peu probable que nous en ayons un un jour : je m'adresse donc à vous avec la seule autorité que m'accorde et que s'accorde la liberté elle-même. Je déclare que l'espace social global que nous construisons est naturellement indépendant des tyrannies que vous cherchez à nous imposer. Vous n'avez aucun droit moral à nous gouverner, et vous ne possédez aucun moyen de faire respecter votre autorité que nous ayons de bonnes raisons de craindre.
Les gouvernements trouvent le fondement de leur pouvoir légitime dans le consentement des personnes qu'ils gouvernent. Vous n'avez ni sollicité ni obtenu le nôtre. Nous ne vous avons pas invités. Vous ne nous connaissez pas, et vous ne connaissez pas non plus notre monde. Le cyberspace ne se trouve pas à l'intérieur de vos frontières. Ne pensez pas que pouvez le construire comme s'il était un de vos Grands Travaux. Vous n'y arriverez pas. C'est un phénomène naturel qui croît de lui-même, par nos actions collectives.
Vous n'avez pas pris part aux grands débats qui nous ont réunis, et vous n'avez pas non plus créé la richesse de nos marchés. Vous ne connaissez ni notre culture, ni notre éthique, ni les codes non-écrits qui ordonnent déjà notre société mieux que ne pourraient le faire n'importe lequel des règlements que vous prétendez nous imposer.
Vous dites qu'il existe chez nous des problèmes que vous devez résoudre. Vous prenez prétexte de cela pour faire intrusion dans notre espace. Beaucoup de ces problèmes n'existent pas. Là où il y aura de véritables conflits, là où des torts seront effectivement causés, nous les identifierons et nous les traiterons avec nos moyens. Nous sommes en train de mettre en place notre propre Contrat Social. Nous nous gouvernerons en fonction des conditions qui prévalent dans notre monde, pas dans le vôtre. Car notre monde est différent.
Le cyberspace est fait de transactions, de relations et de pensée, circulant en un flot ininterrompu sur nos canaux de communication. Notre monde est à la fois partout et nulle part, mais il ne se trouve pas là où vivent les corps.
Nous sommes en train de créer un monde ouvert à tous, sans privilège ni préjugé qui dépende de la race, du pouvoir économique, de la puissance militaire ou du rang à la naissance.
Nous sommes en train de créer un monde où chacun, où qu'il soit, peut exprimer ce qu'il croit, quel que soit le degré de singularité de ses croyances, sans devoir craindre d'être forcé de se taire ou de se conformer.
Les concepts de votre droit en matière de propriété, d'expression, d'identité, de mouvement et de circonstances ne s'appliquent pas à nous. Ils ont leur fondement dans la matière, et il n'y a pas de matière ici.
Nos identités n'ont pas de corps : donc, contrairement à vous, nous ne pouvons pas faire régner l'ordre au moyen de la force physique. Nous pensons que c'est à travers l'éthique et l'intérêt bien compris de chacun et de la communauté dans son ensemble que va surgir notre mode de gouvernement. Nos identités sont probablement dispersées à travers un grand nombre de vos juridictions. La seule loi que toutes les cultures qui nous constituent seraient prêtes à reconnaître est la Règle d'Or de l'éthique. Nous espérons que nous serons capables de construire nos propres solutions sur cette base. Mais nous ne pouvons pas accepter les solutions que vous essayez d'imposer.
Aux États-Unis, vous venez aujourd'hui de créer une loi, la loi sur la réforme des télécommunications, qui renie votre propre Constitution et qui est une insulte aux rêves de Jefferson, Washington, Mill, Madison, Tocqueville et Brandeis. C'est nous qui devons maintenant faire renaître ces rêves.
Vous avez une peur panique de vos propres enfants, car ils sont nés dans un monde où vous serez à jamais immigrants. Parce que vous avez peur d'eux, vous confiez à vos bureaucraties les responsabilités parentales que vous êtes trop lâches pour exercer vous-mêmes. Dans notre monde, tous les sentiments et toutes les expressions de l'humain, du plus dégradant au plus angélique, font partie d'un tout inséparable, l'échange global des octets. Il n'est pas possible de séparer l'air qui peut éventuellement étouffer certains de ceux qui le respirent de celui qui permet aux oiseaux de voler.
En Chine, en Allemagne, en France, en Russie, à Singapour, en Italie et aux États-Unis, vous essayez de tenir à l'écart le virus de la liberté en érigeant des postes de contrôle sanitaire aux frontières du cyberspace. Peut-être que ceux-ci empêcheront la contagion un certain temps, mais ils ne fonctionneront pas dans le monde de l'omniprésence des médias transporteurs d'octets.
Vos industries de l'information, de plus en plus obsolètes, cherchent à se perpétuer en proposant des lois, en Amérique et ailleurs, qui ont la prétention de confisquer à leur profit jusqu'à la parole même à travers le monde. Ces lois cherchent à transformer les idées en un produit industriel comme les autres, au même titre que les lingots de fonte. Dans notre monde, tout ce que l'esprit humain peut créer peut être reproduit et distribué à l'infini sans que cela ne coûte rien. Le transmission globale de la pensée n'a plus besoin de vos usines pour se faire.
Ces mesures de plus en plus hostiles et colonialistes nous placent dans la même position que les amoureux de la liberté et de l'auto-détermination qui lors d'époques précédentes ont dû rejeter l'autorité de pouvoirs distants et mal informés. Il nous faut déclarer que nos identités virtuelles ne sont pas soumises à votre souveraineté, alors même que nous continuons à consentir à ce que vous gouverniez nos corps. Nous allons nous disperser sur toute la planète de manière à ce que personne ne puisse arrêter nos idées.
Nous allons créer une civilisation de l'esprit dans le cyberspace. Puisse-t-elle être plus juste et plus humaine que le monde qu'ont construit vos gouvernements auparavant.
Davos, Suisse, le 8 février 1996
- Publié en français par le webzine "Cybersphere", aujourd'hui disparu. Traduction par Diogène.

View file

@ -0,0 +1,15 @@
use std::fs;
use regex::Regex;
fn main() {
const PATH: &str = "independance.txt";
let file = fs::read_to_string(PATH).unwrap();
let regex = Regex::new(r"[3-6]").unwrap();
let count = regex.find_iter(&file).count();
println!("Found {} matches", count);
}

View file

@ -0,0 +1,9 @@
[package]
name = "optional"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
regex = "1.10.2"

View file

@ -0,0 +1,66 @@
Une déclaration d'indépendance du cyberspace
Par John Perry Barlow
Hier, le grand invertébré qui loge à la Maison Blanche a apposé sa signature au bas du texte de la loi de 1996 sur la "réforme" des télécommunications, pendant que Tipper Gore prenait des photos numériques de l'événement afin de les publier dans un livre qui sera intitulé "24 Hours in Cyberspace" (24 Heures dans le cyberspace).
J'avais également été invité à contribuer à ce livre en écrivant un texte d'actualité. Mais étant donné le caractère infâme des contrôles que cette loi cherche à imposer sur le Net, j'ai pensé qu'il était temps de déverser quelques balles de thé sur les quais du port virtuel [Allusion à la "Boston Tea Party" (1773), émeute au cours de laquelle ont été détruites des cargaisons de thé appartenant à la Compagnie des Indes en réponse aux taxes instituées par le gouvernement britannique. Cette émeute fut un des premiers incidents de ce qui devait devenir la guerre d'indépendance des États-Unis - NdT].
Car la loi sur la "réforme" des télécommunications, adoptée par le Sénat à une écrasante majorité (avec seulement 5 voix contre) rend en fin de compte illégal, sous peine d'une amende de 250 000 dollars, le fait de dire "merde" sur le réseau. Ou, d'ailleurs, de dire n'importe lequel des 7 gros mots interdits d'antenne à la radio et à la télévision. Ou de discuter au grand jour de l'avortement. Ou de parler des autres fonctions corporelles autrement qu'en utilisant un vocabulaire médical aseptisé.
Elle tente de placer sur les échanges qui se mènent dans le cyberspace des contraintes plus restrictives que celles qui existent à la cafétéria du Sénat, où chaque fois que j'ai eu l'occasion d'y prendre un repas j'ai entendu des sénateurs utiliser des expressions gratinées.
Cette loi nous a été parachutée par des gens qui n'ont pas la moindre idée de qui nous sommes ou de ce qu'est ce territoire où ont lieu nos échanges. Ainsi que le dit mon ami Louis Rossetto, rédacteur-en-chef du magazine Wired, c'est comme si "les illettrés pouvaient vous dire ce qu'il faut que vous lisiez."
Eh bien, qu'ils aillent se faire foutre.
Ou plutôt, profitons de l'occasion pour prendre congé d'eux, maintenant. Ils ont déclaré la guerre au cyberspace. Montrons-leur l'étendue de notre pouvoir, de notre ruse et de notre capacité à surprendre lorsqu'il s'agit pour nous de nous défendre.
Avec le sens de la disproportion qui me caractérise, j'ai écrit un texte dont j'espère qu'il sera un des nombreux moyens qui nous permettront de nous défendre. Si vous le trouvez utile, j'espère que vous le diffuserez aussi largement que possible. Vous pouvez en retirer ma signature si vous le souhaitez, car je n'accorde aucune importance au fait qu'on m'attribue ou non sa paternité. Vraiment aucune.
Mais j'espère que ce cri se fera entendre à travers tout le cyberspace, qu'il croîtra, qu'il se clonera, qu'il mutera jusqu'à ce que son volume égale celui de l'idiotie qu'on vient de nous infliger.
Je vous offre une...
Déclaration d'indépendance du cyberspace
Gouvernements du monde industrialisé, géants fatigués de chair et d'acier, je viens du cyberspace, le nouveau domicile de l'esprit. Au nom du futur, je vous demande, à vous qui appartenez au passé, de nous laisser en paix. Vous n'êtes pas les bienvenus parmi nous. Vous n'avez aucune souveraineté sur le territoire où nous nous assemblons.
Nous n'avons pas de gouvernement élu, et il est peu probable que nous en ayons un un jour : je m'adresse donc à vous avec la seule autorité que m'accorde et que s'accorde la liberté elle-même. Je déclare que l'espace social global que nous construisons est naturellement indépendant des tyrannies que vous cherchez à nous imposer. Vous n'avez aucun droit moral à nous gouverner, et vous ne possédez aucun moyen de faire respecter votre autorité que nous ayons de bonnes raisons de craindre.
Les gouvernements trouvent le fondement de leur pouvoir légitime dans le consentement des personnes qu'ils gouvernent. Vous n'avez ni sollicité ni obtenu le nôtre. Nous ne vous avons pas invités. Vous ne nous connaissez pas, et vous ne connaissez pas non plus notre monde. Le cyberspace ne se trouve pas à l'intérieur de vos frontières. Ne pensez pas que pouvez le construire comme s'il était un de vos Grands Travaux. Vous n'y arriverez pas. C'est un phénomène naturel qui croît de lui-même, par nos actions collectives.
Vous n'avez pas pris part aux grands débats qui nous ont réunis, et vous n'avez pas non plus créé la richesse de nos marchés. Vous ne connaissez ni notre culture, ni notre éthique, ni les codes non-écrits qui ordonnent déjà notre société mieux que ne pourraient le faire n'importe lequel des règlements que vous prétendez nous imposer.
Vous dites qu'il existe chez nous des problèmes que vous devez résoudre. Vous prenez prétexte de cela pour faire intrusion dans notre espace. Beaucoup de ces problèmes n'existent pas. Là où il y aura de véritables conflits, là où des torts seront effectivement causés, nous les identifierons et nous les traiterons avec nos moyens. Nous sommes en train de mettre en place notre propre Contrat Social. Nous nous gouvernerons en fonction des conditions qui prévalent dans notre monde, pas dans le vôtre. Car notre monde est différent.
Le cyberspace est fait de transactions, de relations et de pensée, circulant en un flot ininterrompu sur nos canaux de communication. Notre monde est à la fois partout et nulle part, mais il ne se trouve pas là où vivent les corps.
Nous sommes en train de créer un monde ouvert à tous, sans privilège ni préjugé qui dépende de la race, du pouvoir économique, de la puissance militaire ou du rang à la naissance.
Nous sommes en train de créer un monde où chacun, où qu'il soit, peut exprimer ce qu'il croit, quel que soit le degré de singularité de ses croyances, sans devoir craindre d'être forcé de se taire ou de se conformer.
Les concepts de votre droit en matière de propriété, d'expression, d'identité, de mouvement et de circonstances ne s'appliquent pas à nous. Ils ont leur fondement dans la matière, et il n'y a pas de matière ici.
Nos identités n'ont pas de corps : donc, contrairement à vous, nous ne pouvons pas faire régner l'ordre au moyen de la force physique. Nous pensons que c'est à travers l'éthique et l'intérêt bien compris de chacun et de la communauté dans son ensemble que va surgir notre mode de gouvernement. Nos identités sont probablement dispersées à travers un grand nombre de vos juridictions. La seule loi que toutes les cultures qui nous constituent seraient prêtes à reconnaître est la Règle d'Or de l'éthique. Nous espérons que nous serons capables de construire nos propres solutions sur cette base. Mais nous ne pouvons pas accepter les solutions que vous essayez d'imposer.
Aux États-Unis, vous venez aujourd'hui de créer une loi, la loi sur la réforme des télécommunications, qui renie votre propre Constitution et qui est une insulte aux rêves de Jefferson, Washington, Mill, Madison, Tocqueville et Brandeis. C'est nous qui devons maintenant faire renaître ces rêves.
Vous avez une peur panique de vos propres enfants, car ils sont nés dans un monde où vous serez à jamais immigrants. Parce que vous avez peur d'eux, vous confiez à vos bureaucraties les responsabilités parentales que vous êtes trop lâches pour exercer vous-mêmes. Dans notre monde, tous les sentiments et toutes les expressions de l'humain, du plus dégradant au plus angélique, font partie d'un tout inséparable, l'échange global des octets. Il n'est pas possible de séparer l'air qui peut éventuellement étouffer certains de ceux qui le respirent de celui qui permet aux oiseaux de voler.
En Chine, en Allemagne, en France, en Russie, à Singapour, en Italie et aux États-Unis, vous essayez de tenir à l'écart le virus de la liberté en érigeant des postes de contrôle sanitaire aux frontières du cyberspace. Peut-être que ceux-ci empêcheront la contagion un certain temps, mais ils ne fonctionneront pas dans le monde de l'omniprésence des médias transporteurs d'octets.
Vos industries de l'information, de plus en plus obsolètes, cherchent à se perpétuer en proposant des lois, en Amérique et ailleurs, qui ont la prétention de confisquer à leur profit jusqu'à la parole même à travers le monde. Ces lois cherchent à transformer les idées en un produit industriel comme les autres, au même titre que les lingots de fonte. Dans notre monde, tout ce que l'esprit humain peut créer peut être reproduit et distribué à l'infini sans que cela ne coûte rien. Le transmission globale de la pensée n'a plus besoin de vos usines pour se faire.
Ces mesures de plus en plus hostiles et colonialistes nous placent dans la même position que les amoureux de la liberté et de l'auto-détermination qui lors d'époques précédentes ont dû rejeter l'autorité de pouvoirs distants et mal informés. Il nous faut déclarer que nos identités virtuelles ne sont pas soumises à votre souveraineté, alors même que nous continuons à consentir à ce que vous gouverniez nos corps. Nous allons nous disperser sur toute la planète de manière à ce que personne ne puisse arrêter nos idées.
Nous allons créer une civilisation de l'esprit dans le cyberspace. Puisse-t-elle être plus juste et plus humaine que le monde qu'ont construit vos gouvernements auparavant.
Davos, Suisse, le 8 février 1996
- Publié en français par le webzine "Cybersphere", aujourd'hui disparu. Traduction par Diogène.

View file

@ -0,0 +1,17 @@
use std::fs;
use regex::Regex;
fn main() {
const PATH: &str = "independance.txt";
let file = fs::read_to_string(PATH).unwrap();
// Didn't get the "identité" or "identité" since 3 isn't the right answer? Right regex above
// let regex = Regex::new(r"identité(s)?").unwrap();
let regex = Regex::new(r"identités").unwrap();
let count = regex.find_iter(&file).count();
println!("Found {} matches", count);
}