- What is the Solid Project ?
Well first,
there are lot of things whose name is Solid on the net, and in computer programming too...
but the one we will discuss here is the project launched by Sir Tim Berners-Lee (the man known as the inventor of web in 1989).
Sure that it's hard to say one man invented the web, as there was many people that worked on it, but Tim wrote an important part to describe all you use each day.
Working at CERN, he proposed some tools to facilitate sharing and updating information among researchers, by making first HTML pages, & describing how the links works...
His goal was to provide each person a way to share what information he want.
From this time, its "invention" has been reused a lot until now and many businesses use it...
BUT,
as anyone knows, some companies use those technologies, but the user is not the owner of its data. Those companies uses your data, to show you ads that could interest you, sell your data...
As the director of the W3C consortium, Tim always applied to provide ways to share informations and to connect (LinkedData) them and now he want to revert the tendance.
The goal of Solid is to give back to each one a way to manage its data, to decide who he want to share one part of information.
To do that, Tim created the company Inrupt to help the Solid Project.
To know more about the Solid philosophy, check the Wikipedia page [ English ] [ French ]
or the SolidProject
an old page describing the Solid project
The Community Forum is a good start and the newcomers are always welcomed to ask questions and
more technical question can also be asked on gitter/Solid/chat
- How Solid Works ?
Building apps on Solid is really different as building apps in other ways. Whereas in current ways, data or information are stored in databases.
In the Solid philosophy, each user store its data on a POD and authorize apps to read its data or not.
For example, we could imagine a service provider that
02/05/2020
Solid & the Decentralized Web
18/01/2020
La Galaxie Solid
Dans cette galaxie, approchons-nous de cette petite planète que nous voyons là-bas...
Elle se nomme Provider One.
Sur cette planète, chaque nouvel arrivant se voit attribuer une petite parcelle de terrain pour en faire ce que bon lui semble.
En faire ce que bon lui semble, comme par exemple, planter des carottes, des pommes, faire une piscine, une Tour Eiffel, monter un business, créer un château...
Vous savez, comme dans "Minecraft", ou d'autres jeux courants, comme "Farm machin", ou le vieux "Sim city"...
Voilà, en gros, chacun peut avoir un ou plusieurs espaces où il y fait ce qui lui plait, et dans votre parcelle, vous choisissez ce que vous exposez aux autres grâce aux espaces "Privé" & "Public" définis par défaut sur votre parcelle. Vous pouvez aussi definir des groupes d'utilisateurs et des niveaux d'accès. Nous reviendrons sur ces espaces.
C'est vous qui décidez à qui vous donnez l'accès pour visiter votre château ou venir prendre des pommes.
Mais attention, il y a une petite différence par rapport à ce que l'on a l'habitude de voir : ce n'est pas parce que quelqu'un vous prend des pommes que vous en avez moins.
En fait c'est plutôt comme si elles étaient dupliquées ! Elles sont disponibles ppour les autres, mais vous les avez
Par exemple, si j'ai un petit creux
Installation du Blog Plume sur mon POD Solid
https://forum.solidproject.org/t/solid-plume-simple-blog-app/1681/71
Solid copy https://otman.solid.community/public/solid-file-client/examples/copy/
```
Installing
Copy from https://otman.inrupt.net/public/solid-plume-0.11/ 4
To https://your-pod.example.org/public/plume/ 2
Wait until it is finished…
- Open https://otto-aa.github.io/solid-filemanager/ 2
- Login and open the plume directory
- Right-click and edit config-example.txt (change the webId to yours and the title)
- Right-click and rename config-example.txt to config.txt
Solid copy https://jeff-zucker.github.io/solid-file-client/docs/examples/
14/09/2019
La Barrière LEGO avec telecommande - Arduino
Car c'est bien beau d'avoir une barrière LEGO qui se lève à l'approche d'un véhicule, seulement le problème, c'est une fois que l'on est passé, comment on fait pour revenir, car il n'y a pas de capteur de l'autre côté de la barrière...
La solution est d'utiliser une télécommande, sur laquelle nous utiliserons deux boutons... un pour lever la barrière et l'autre pour la baisser !
<video>
Prenez maintenant la télécommande et son capteur fournis dans le kit (voir l'article La Barrière LEGO pour vous procurer le kit )
Sur la plaque du capteur infrarouge, repérez les broches S et -
| PIN | Description | Couleur du câble | Connexion vers la carte ARDUINO |
|---|---|---|---|
| S | Sortie des données | marron | D11 |
| 3.3 - 5V | rouge | VCC / 5V | |
| - | 0V | noir | GND |
--> Utilisez les câbles fournis avec la télécommande et reliez
la pin S du capteur à la pin D11 de la carte Arduino
la pin du milieu du capteur à la pin 5V / VCC de la carte Arduino
la pin - du capteur
<troisphotos branchements>
Installez la librairie IRremote et ouvrez l'exemple IRrecvDemo
<trois photos install>
Nous n'allons pas nous servir du code hexadécimal de la touche, mais son code décimal. Pour ce faire, ajoutez la ligne
Serial.println(results.value);
comme indiqué dans le code ci-dessous :
#include <IRremote.h>int RECV_PIN = 11;IRrecv irrecv(RECV_PIN);decode_results results;void setup(){Serial.begin(9600);// In case the interrupt driver crashes on setup, give a clue// to the user what's going on.Serial.println("Enabling IRin");irrecv.enableIRIn(); // Start the receiverSerial.println("Enabled IRin");}void loop() {if (irrecv.decode(&results)) {Serial.println(results.value, HEX);Serial.println(results.value);irrecv.resume(); // Receive the next value}delay(100);}
Enregistrez ce code sous le nom de "Test_Telecommande" et téléverser-le sur la carte.
Ouvrez le moniteur série (dans le menu Outils) et appuyez alternativement sur les touches "Fleche Haut" et "Fleche Bas" de la télécommande.
Attention, si vous appuyez trop longtemps sur une touche, il peut arriver que les codes parasites "FFFFFFFF" et "4294967295", mais nous allons les gérer
<photo codes>
A chaque appui de touche, vous devriez voir apparaître un code correspondant à la touche appuyée . Moi j'ai pour :
| Flèche HAUT | Flèche BAS | |
|---|---|---|
| code hexadécimal | FF18E7 | FF4AB5 |
| code décimal | 16718055 | 16730805 |
Notez les codes que vous affiche le moniteur, ils peuvent être différents des miens !
Modifiez maintenant le code de la manière suivante pour détecter l'appui sur les deux flèches "HAUT" et "BAS".
#include <IRremote.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600);
// In case the interrupt driver crashes on setup, give a clue
// to the user what's going on.
Serial.println("Enabling IRin");
irrecv.enableIRIn(); // Start the receiver
Serial.println("Enabled IRin");
}
void loop() {
if (irrecv.decode(&results)) {
// Serial.println(results.value, HEX);
// Serial.println(results.value);
if (results.value == 16718055) {
Serial.println("HAUT");
} else if (results.value == 16730805) {
Serial.println("BAS");
} else {
Serial.println(results.value);
}
irrecv.resume(); // Receive the next value
}
delay(100);
}
<photo moniteur haut bas>
On va maintenant utiliser deux fonctions leve_barriere() et baisse_barriere() dans lesquelles ont ajoutera le code contrôlant le servomoteur...
Modifiez maintenant le code comme suit :
<photo leve barriere fonction>
Bien bien bien, pas mal jusque là... Il ne nous reste plus qu'à brancher le servomoteur comme dans l'article précédent sur la PIN D9 et à ajouter le code qui gère ce moteur :
Comme on n'a pas utilisé les lignes "bleus et rouges" pour le 5V et le GRND, on va juxtaposer les câbles d'alimentation du moteur à ceux du capteur infra rouge .
<photos branchement moteur>
Un petit peu de copier/coller depuis le code produit dans l'article précédent, et votre code pourrait ressembler à ceci :
ET voilà, notre Barrière LEGO télécommandée !!!!!
<video >
Ajouter des leds pour indiquer si l'on peut avancer ou pas ???
Inspirez-vous de ce code : un mix des exemples Blink et Fade présents dans Fichier / Exmples / 01.Basic ou sur le site Arduino --> vous aurez aussi des indications sur la manière de brancher vos leds si vous avez des doutes
Connectez vos led sur les pin 5 et 7 de l'Arduino
Sans oublier de les protéger par des resistances de 220 ohms !
25/06/2019
Joystick pour controller la souris
https://www.brainy-bits.com/arduino-joystick-tutorial/
// Arduino pin numbers
const int SW_pin = 2; // digital pin connected to switch output
const int X_pin = 0; // analog pin connected to X output
const int Y_pin = 1; // analog pin connected to Y output
void setup() {
pinMode(SW_pin, INPUT);
digitalWrite(SW_pin, HIGH);
Serial.begin(115200);
}
void loop() {
// Serial.print("Switch: ");
// Serial.print(digitalRead(SW_pin));
// Serial.print("\n");
// Serial.print("X-axis: ");
Serial.print(analogRead(X_pin));
// Serial.print("\n");
Serial.print(",");
// Serial.print("Y-axis: ");
Serial.println(analogRead(Y_pin));
// Serial.print("\n\n");
delay(50);
}
04/05/2019
OSrdf
OSrdf :
Organic System Resource Data File
Organization System RDF
Operating System Rewritten by David F
or Something Ridiculous about ... ;-)
Un Operating System, système d'exploitation basé sur un système multi-agents, où tout est AGENT HOLACRATIQUE au sens Janus/SARL.
La machine est un agent
Le système de fichier est un agent
https://medium.com/datadriveninvestor/writing-your-own-file-system-is-not-as-hard-as-you-may-think-aa4af09329cd
Un dossier, un fichier, un périphérique (écran, clavier, souris, imprimante 3D, carte reseau...) sont des agents
Une donnée, un triplet, une ressource...
Un utilisateur, une connexion, une page web, un clic de souris, un formulaire, un champ de formulaire, un bouton, un composant web ( basé sur github/scenaristeur/evejs) sont des agents
Des agents autonomes ayant chacun un but propre ou contribuant à un but plus général.
Les buts / raisons d'être / prochaines actions de chacun de ces agents pouvant être définies grâce à un système inspiré du management à la manière de l'holacratie. ( Cercle, rôle, raison d'être)...
-> Résultat, un système d'exploitation, Os qui se rapproche :
- du cortex du cerveau humain ( des neurones interconnectés comme des noeuds d'un graphe Spoggy)
- de l'organisation de notre holacratique
- de notre vision limitée du monde et notre façon de le concevoir par association, découverte, apprentissage...
What about l'ordinateur quantique developpé par IBM et qui peine à trouver des applications ? Mais serait peut-être une opportunité pour ce genre d'OS ?
19/08/2018
Découverte de l'Arduino Yun rev2 - Tutoriel - Prise en main
https://www.youtube.com/watch?v=VXYLsdVrq7E
1 connexion réseau
2 carte memoire
extroot configuration :
https://openwrt.org/docs/guide-user/additional-software/extroot_configuration?s[]=extroot
https://wiki.openwrt.org/doc/howto/extroot
https://openwrt.org/docs/guide-user/additional-software/extroot_configuration
opkg update && opkg install block-mount kmod-fs-ext4 kmod-usb-storage e2fsprogs kmod-usb-ohci kmod-usb-uhci fdisk
block info /dev/mtdblock2: UUID="9fd43c61-c3f2c38f-13440ce7-53f0d42d" VERSION="4.0" MOUNT="/rom" TYPE="squashfs" /dev/mtdblock3: MOUNT="/overlay" TYPE="jffs2" /dev/sda1: UUID="fdacc9f1-0e0e-45ab-acee-9cb9cc8d7d49" VERSION="1.4" TYPE="f2fs"
mkfs.f2fs /dev/sda1
mkfs.ext4 /dev/sda1
mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mntreboot
System /mount Points
Notes
opkg Status
opkg status in the extroot, instead of in RAM, saves some RAM and keeps package lists available after a reboot.- Generate the new folder on the extroot:
mkdir /opkg-lists - Edit
/etc/opkg.conf, changing: lists_dir ext /var/opkg-lists
intolists_dir ext /opkg-lists
3 install nodejs
( nxhack : https://wiki.openwrt.org/doc/devel/feeds
custom feeds : src-git node https://github.com/nxhack/openwrt-node-packages.git;master )
sinon update liste node -> V6
opkg install node node-npm
install socket.io
opkg install node-socket.io --force-overwrite ( conflit de fichiers avec node-ws)



