08/08/2026

Pourquoi utiliser l'intelligence artificielle pour la création ?

Bien sûr,  commençons par etre bien clairs.

Il ne s'agit pas de deleguer votre créativité à l'ia,  mais plutôt de l'utiliser comme votre assistant.

 Évidemment,  parfois vous aurez tendance à la laisser divaguer pour franchir des obstacles qui vous seraient insurmontables ouvrir des voies auxquelles vous n'auriez pas pensé, ou meme peaufiner un détail qui vous ferait perdre trop de temps... 

Mais attention à ce que vous avez entre les mains. 

Les IA sont devenues très impressionnantes. Utiliser une IA, c'est un peu comme si aviez dans la poche un "Arnold Schwarzenegger' de 4 ans (c'est l'acteur de Terminator).

Évidemment,  si vous ne gardez pas un oeil attentif sur lui, vous vous exposer potentiellement à des graves ennuis.

Voyez ça comme un expert, très puissant, mais qui peut dans la seconde vriller à la psychopathie schzophrenique si vous n'y prenez pas garde.

Si vous n'avez pas l'intention de prendre votre Arnold par la main et de lui apprendre à se tenir bien, à l'éduquer, à le choyer, à l'éduquer... passez votre chemin, ce n'est pas pour vous... 

Travailler avec une IA, c'est un métier, c'est comme "etre parent", sauf que là aussi, les enfants sont tous différents, il n'y a pas de notice, et ce qui fonctionne avec l'un ne fonctionnera pas forcément avec l'autre. Ce qui a fonctionné à un moment peut ne plus fonctionner demain...

Évidemment, la création assistée par IA ne s'adresse pas aux artistes déjà confirmés et établis qui ne verront dans ces outils que perte de temps et de créativité,

Par contre s'ils sont ouverts à l'innovation,  à l'usage de nouveaux outils, de techniques inconnues, aux melanges des styles et des influences, ou même simplement curieux, il peuvent imaginer l'assistant IA comme un miroir de leur art qui va les pousser dans leurs retranchements les plus enfouis, leur permettre d'explorer des horizons insoupçonnés, ou experimenter des combinaisons de techniques qu'ils pourraient considérer en temps normal comme incroyables...

 Mais gardons pour l'instant les pieds sur et Terre 🌎 et explorons. 

Commençons concrètement... ou plutôt, non! 

Commençons par nous imaginer en août 1492, tel un apprenti explorateur assis dans le port de "Palos de la Frontera" et regardant la mer. Prêt à embarquer sur une caravelle aux côtés de Christophe Colomb.  Quelque soit le métier que vous choisissez,  menuisier, cuissot, timonier, médecin, botaniste, peintre,... préparer vos plus beaux outils.

Vous ne savez ni "quand", ni "si" vous reviendrez un jour sur la terre ferme. La seule chose que vous puissiez imaginer, c'est que s'offre à vous une infinité de possibles, guidée par les choix que vous ferez et les instructions que vous transmettrez.

Et n'oubliez pas que vos premiers voyages ne seront pas forcément de grands voyages du premier coup.

Vous devrez certainement essuyer des tempêtes, faire table rase, recommencer,  apprendre à avancer étape par étape pour vos créer méthodes et expérience...

Prêt(e) à embarquer ?



    

25/04/2021

Le paradoxe de la décentralisation

 Qui dit decentralisation dit eviter les points de convergences, les point de concentration, et preferer l'éclatement...

Ceci pour éviter les points de ruptures, les vulnérabilités concentrées... C'est toute la force d'un réseau decentralisés... 

Mais c'est aussi sa plus grande faiblesse... vouloir à tout prix decentraliser permet certes une plus grande liberté, mais il manque une cohesion certaine, une synchronisation, des hubs qui permettent de rayonner les avancées effectuées par chacun des noeuds décentralisés... Décentralisé ne veut pas necessairement dire isolé... Autonome certes, mais relié...  devient nécessaire de faire étinceler chaque connexion d'un réseau decentralisé...

01/01/2021

Solid, Semapps, Community-server et les autres

 Adios 2020, Hello 2021...

Pour tout le monde 2020 a été une année spéciale, évidemment... 

Beaucoup d'organisations et de systèmes que l'on croyait stable ont été chamboulés et ont ou auront du mal à s'en remettre, sans parler de ceux qui étaient moins stables, vivotaient ou tentaient de survivre.

2020, c'est aussi pour beaucoup une opportunité pour se recentrer, redéfinir "l'essentiel" 😜

Personnellement, j'ai pu continuer à explorer un peu plus le LinkedData, les bases de connaissances distribuées, ou les projets autour de Solid... 

Et c'est le moment à mon avis de faire le, point sur ce qui se profile à l'horizon... 

Après le Node Solid Server, en plus du 'SolidServer Entreprise' dont je n'ai pas encore eu la chance de tâter, deux serveurs semblent très prometteurs pour exposer des données compatibles avec les spécifications Solid... 

- d'abord le community-server qui semble être le remplaçant du node-solid-server  Présentation

- de l'autre côté du ring, le serveur Semapps Présentation Semapps

Mais ne vous inquiétez pas, il n'est pas ici question de compétition, mais plutôt d'un check des fonctionnalités existantes, tout en sachant que celles-ci évolueront des deux côtés, mais il est toujours bon de faire le point de temps et temps...ça évitera en tout cas de repartir à zéro à chaque fois...

  

Installation / Configuration

 - install de solid Community-Server

- install de Semapps (Docker ne semble pas nécessaire ->  install de Semapps sans Docker )

 

 après mure reflexion, il semble utile de créer un repo pour ce projet

--> la suite ici https://github.com/scenaristeur/solid-client

 

 

 

Envoi de données LDP

 

semapps liste de containers prédéterminée --> voir comment créer des container

 exemple semapps : 

POST /persons HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: */*
Content-Length: 97
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Person",
"name": "Guillaume Cousin"
}


Content-type : application/json

```
{
  "@context": "https://json-ld.org/contexts/person.jsonld",
  "@id": "http://dbpedia.org/resource/John_Lennon",
  "name": "John Lennon",
  "born": "1940-10-09",
  "spouse": "http://dbpedia.org/resource/Cynthia_Lennon"
}
```


```
{
  "@context": "https://json-ld.org/contexts/person.jsonld",
  "name": "Manu Sporny",
  "homepage": "http://manu.sporny.org/",
  "image": "http://manu.sporny.org/images/manu.png"
}
```





12/10/2020

On repart à zéro

 Savoir où l'on va.

Des idées, des projets, beaucoup de questions et d'inconnues.

Je ne peux pas tout faire tout seul, et il arrive un moment où la définition de rôles devient nécessaire. 

Inspiré par l'holacratie, la décentralisation avec Solid, mes rencontres avec l'Assemblée Virtuelle & Stratinblox,

Construire un projet Web  :

 https://www.youtube.com/watch?v=VKecnqlbytQ&feature=youtu.be

Equipe du projet web,  Raison d'être :  Concevoir un site qui convertisse les visiteurs en clients

 nécessite les rôles suivants : 

 - chef de projet : interlocuteur principal, recueillir les demandes et coordonner tous les techniciens qui conçoivent le site.

 - web designer : 

- intégrateur : 

- developpeur : 

- administrateur système : 

- redacteur web : 

- webmarketeur :  

Etape1 : le chef de projet analyse les besoins & définit le cahier des charges. Réfléchit à l'outil qui sera utilisé (site vitrine : Wordpress/Drupal, site marchand : Prestashop/Woocommerce) 

Etape 2a : Rédacteur & webmarketeur établissent la liste des pages, démarre la rédaction et optimisation pour le référencement --> objectif : un site visible dans les moteurs de recherche (architecture optimisée pour le SEO https://www.youtube.com/watch?v=vJ586FZnoxA , mot clés, une page correspond à un sujet, gloomaps, draw.io, views = rubriques, sitemap, page d'accueil : https://www.youtube.com/watch?v=rB2Dypi36Zs)

Etape 2b : Chef de projet (+ Rédacteur + Webmarketeur) : conçoit la structure des différents modèles de pages (Mockup ou  Wireframe ou Zooning) --> recherche d'ergonomie, expérience utilisateur

Etape 2c : le webdesigner met son inspiration au service de la charte graphique, --> mettre en valeur la marque. Propose un design moderne qui s'adapte à toutes les tailles d'écran

Etape 3a : Intégrateur : code les maquettes graphiques --> donner vie aux maquettes que le web designer a réalisé, intégration des contenus, texte, images et vidéos

Etape 3b : Développeur créé les fonctionnalités spécifiques comme module de paiement, de réservation, de donation

Etape 4 : Administrateur système : sécuriser le site contre attaques & intrusions : hébergement, nom de domaine, https, ssl

Etape 5 : toute l'équipe : test & retests avant & après la mise en ligne -> garantir le bon fonctionnement du site

continuité : mise à jour des éléments techniques pour garantir le fonctionnement du site


 

Démarrer une coopérative : 

https://coopedia.starter.coop/fr/public-dashboard

Etape 1 : identifier les besoins 

Etape 2 : Motiver & inclure les membres 

Etape 3 : Générer les idées d'affaires

Etape 4: Construire son prévisionnel

Etape 5 : Contacter une structure de support aux entreprises

Etape 6 : Monter une structure juridique


Code Buysse : 

(Etapes :Monter une structure juridique, Identifier des besoins, Motiver et inclure les membres )

https://www.cera.coop/fr/coop%C3%A9ratives/info-et-recherche/documentation-et-publications/2020/20200904_f_la-gouvernance-des-cooperatives

& http://www.codebuysse.com/fr/why.aspx

& http://www.codebuysse.com/downloads/CodeBuysseIII_FR.pdf


Monter sa boite 

https://www.thefamily.co/

https://www.youtube.com/watch?v=Ho5TzMP6DxE

KOUDETAT

https://www.koudetat.co/

 Choisir son co-fondateur par son état d'esprit ( détermination, à quel point ils sont déterminés)

https://www.youtube.com/watch?v=KMc_ZrRgMM0

-> tout est important, rien est un détail (ne rien laisser passer, toujours obtenir le meilleur, quoi qu'on fasse)

- résistance au stress

- on passera plus de temps avec son cofondateur qu'avec son conjoint

- quelqu'un que l'on admire

- admettre la part d'irrationnel dans la création d'une boîte : psychologie des gens par rapport à leur tâches, courbe d'apprentissage des gens avc qui on a envie de passer du temps

- top 10 entreprises the family : homogène dans le style de l'équipe, Star of services : bourrins, -> chercher la singularité 

- ATTENTION, point d'inflexion : manque de confiance entre cofondateurs (film Godfather). Attention aux politiques, dents longues. Tous les jours etre drivé par ce que l'on a le plus envie de faire. Avoir un projet de vie aligné avec l'existence d'un marché. Si pas de rêve -> employé, si rêve : fondateur, entrepreneur. Ne pas s'accrocher à faire quelque chose qui ne marche pas. Ne pas optimiser pour survivre, mais pour vivre dans l'oppulence. Pivot : repartir de zéro. Traction : immédiat ou jamais. 

Quand ça ne décolle pas, repartir à zéro. AirBnb: "Si c'était ta dernière idée à vivre, est-ce que tu bosserait pour moi", exemple une peinture ne se corrige pas, chaque geste est un geste de chef d’œuvre, utilisation de multiples croquis, on recommence, on peint, on jette, on peint, on jette. idem en musique, on recommence à Z.

Devenir expert dans un sujet : travailler 10000 heures, 10 ans.

Savoir par quoi on est drivé

Entrepreneur : prêt à faire n'importe quoi pour la croissance et la survie de la boîte, être capable d'exécuter tout ce qu'il y a à faire au moment où il faut le faire, avoir un goût de l'apprentissage permanent et de la flexibilité permanente.

10 étapes de l'entrepreneur

- 1 imaginer son idée (Minority report)

- 2 communiquer son idée et convaincre les gens

- 3 lever des fonds (tictac qui fait mal commence, tout le monde veut donner de l'argent en seed, 300 000€ pour en faire 1 million) mais ça n'a pas d'impact. ce qui a un impact, c'est le produit et les clients. Garder seulement les choses qui amène produit & clients. Ensuite, ce n'est pas à l'entrepreneur de faire tout ça, il sera le bouche trou car légitime, la légitimité coûte cher. 


Business Model scalable (rendement d'échelle, plus il y a de client moins le client coûte cher) profitable, répétable.

Innover dans le business model. L'ensemble des briques logiques qui amène à construire un business et à amener de la valeur.

Caractéristique d'un Business model

1> value proposition : qu'est-ce que vous offrez, à qui et comment vous le faites.

2> clients : qui sont-ils? caractéristiques, démographie, spécialisations

3> distribution : comment connecter la value-proposition aux clients en question, systématique & en croissance

4> satisfaction client primordial : de quelle façon vous allez rendre votre service client --> confiance du client (ex: Zappos)

5> partenariats : quels types de partenariat, quels types de partenaires

6> ressources fondamentales dont on a besoin pour rendre l'entreprise viable (diamant pour un bijoutier) ressource matérielle, virtuelle, humaine, de talent. Startup : la startup croit, difficile à appréhender, --> besoin de plus de ressource -> rendre viable le business model , problème de ressource lors de croissance --> savoir gérer sa croissance --> capacité à capter les ressources

7> Assets : qu'est-ce que vous allez construire & qui a de la valeur dans le long-terme, et qui permet de valoriser l'entreprise (exemple, la marque : Frigidaire est une marque -> marque transformée en nom de produit) -> produire une ressource qui est hyper valorisée par le marché et qui permet e se distinguer

8> structure de coût (maîtriser les coûts) et structure de revenus. la façon de facturer, découle des points précédents (Google : 8 ans avant d'avoir un business model) . Pour réussir à avoir des revenus, il faut réussir à avoir de la valeur.


Starup qui réussit (25 ingénieurs), petite PME : 10 millions de chiffre d'affaires en 4,5 ans

Un ingénieur coûte en moyenne 200 000€ /an salaire, avantages, charges sociales

 Ne pas confondre quête de Business model & quête de pricing

Ne pas innover sur toutes les caractéristiques du business model.

Ne pas juste faire différent, faire mieux !

Un secret n'est pas confidentiel : quelque chose que l'on peut dire à tout le monde & que personne ne croira, quelque chose que vous savez être vrai mais que personne ne comprend avant un certain temps ( Google : le nombre de site internet allait exploser)

Une bonne idée de startup paraît forcément mauvaise, elle est en avance sur son temps. seul l'entrepreneur voit le futur au présent.

Construire, explore, chercher le business model est compliqué.

Revenus artificiel, d'opportunité  <> revenus de business model

Distinction startup (business model flou) <> Entreprise ( business model -> entraine une attente de revenus)

En quoi vous êtes différent? Qu'est-ce que fait la concurrence ?

Le boulot de la startup est ce découvrir son business model, celui de l'entreprise est d'écraser la concurrence. La startup ne doit pas se focaliser sur la concurrence ( étudier la concurrence coûte cher et risque de caricature) ignorer la concurrence , se focaliser sur sa croissance, ses métriques internes. Comprendre le mécanisme qui amène la croissance ascendante. Le marché est un sorte de lac. la startup est un organisme qui évolue sur ce lac dans sa bulle.

Startup ne doit pas se focaliser sur la concurrence.

Une startup n'est pas une entreprise, elle cherche son business model, à assembler des les différentes briques du business model, avec les moyens du bord.

Un entrepreneur (startup) ne fait pas le travail d'un chef d'entreprise (entreprise avec revenu et business model établit)

2 types d'entrepreneur : 

-Startup Scalable : MAGICIEN (recommence & recommence jusqu'à trouver la bonne formule magique) essaie de construire une entreprise scalable (la croissance coûte de moins en moins cher) , coût fixes peuvent être élevés, mais coût variables doivent être faibles : plus on a de clients, moins ça coûte cher -> exponentiel. au début ça coûte cher, mais à la longue le coût par client doit baisser. Tant que le sort magique n'est pas sorti, on n'a rien, on peut n'avoir rien pendant longtemps. Airbnb, 36 mois.
1 -> courbe de l'enthousiasme de l'initiation,
2 -> limbes du désespoir (s'écroule) début de la merdasse
3-> idée de lancer de nouvelles features mais n'est pas efficaces -> continuer la merdasse -> chatouillis de faux espoirs, & on finit par comprendre la value-proposition, la traction, premières liquidités, puis évolution par plateaux (avec risques de vexation, crash d'inaptitudes)
 

Starup scalable marche instantanément (ça peut mettre longtemps) a de la croisssance immédiatement le jour où c'est le bon concept, vous dépasse toujours dans vos attentes. -> les gens sont plus enthousiastes que vous à propos de ce que vous faites (facebook a été lancé avec 8 features) Regarder le feedback client pour s'améliorer, mais pas pour prendre des décisions.

Toute personne qui vous deteste est un client déjà conquis


- Startup non scalable : TITAN  : construite dans l'effort, chemin sûr, très peu de risques, mais efforts incomensurable


Problème : Evaluer le problème : https://www.youtube.com/watch?v=qZBHw-8PVlE

- pas juste une idée, mais résoudre un problème

- problème en croissance --> opportunité de marché

-> est-ce que le problème est actuel et en croissance, est-ce que le problème est définissable ?

MARCHE : 

- que l'on conquiert (concurrence, marketting) ou que l'on CONSTRUIT (concurrence et marketting ne comptent pas) ?

construire : à quel point on se projette dans le marché, à quel point toutes les projections sont réelles




02/09/2020

Create a Popock module for Holacracy4.0 Tension

In this tutorial, we will see how to build your own module for Popock webApp. 

The source code of the project is on github ( https://github.com/scenaristeur/solid-vue-panes/ ) .

Popock is build as a portal with different modules (inbox, chat, databrowser and many more) that uses Solid LinkedData platform as a backend.

 You can use Popock  at https://scenaristeur.github.io/solid-vue-panes

 Popock is one of the first Vuejs app I build, after playing a lot with Lit-Element (ex Polymer) webcomponents.

Solid LinkedData platform is a backend i really enjoy as one one the core principe is to allow anyone to store its data anywhere he want... 

And link this data to other people or organization data without any third party.

In this tutorial, we will create a first basic Solid Interaction, but before that lets retrieve Popock source code on your machine and create some basic file to host our module.

Then for the module, we will take the example of a simple form that store an Holacracy Tension on a SolidPod. ( Holacracy is a method of management that decentralize the power but it's not the purpose of this tuto. This tutorial is just to show you how to create a VueJs/Solid Module on Popock.

To understand what we do here, some html/css/javascript knowledge could be a very good start point, but we will try to make a tutorial as simple as possible, so if you just know how to use commandline to create files & folders on your machine, you should be able to follow what we talk about ;-).

 THis tutorial has benn tested on Windows10 & Linux Mint 19.2. If you encounter some issue, or have any question,  please share it Solid Forum.

Prepare your Developer Environnement

 Install if you don't have it already : 

 Clone the repository (project source code)

Open a command line window or a terminal and  use git clone to get project source code 

git clone https://github.com/scenaristeur/solid-vue-panes.git

cd to the solid-vue-panes just created folder 

cd solid-vue-panes

The data structure  of the project should look something like that 

As lot of nodejs projects, the node_modules folder only appears when you type

 npm install

so please type it to install project dependancies edicted in the package.json...

Some warning can be shown during dependencies installationbut that should end with something like 

xxx packages installed 

If everyting is ok we can go futhrtmore, but if you encountered any problem or have question, remember to use the forum.

If everything is 'OK' just start the development server with 

npm run serve

 

 Create the Tension-Module files

  1. create 
  2. view

 1. First, in the src/components/ folder, create a folder named "tension" or anyother name, because at he end of this tutorial, the module should have been created...

This is where the major part of our module will reside, but to display it we will create a simple view that represent the root of our module. 

In the src/views/ folder, please create our TensionView.vue file.

You can duplicate the content the src/view/ModeleView.vue to get the starting content : 

src/views/TensionView.vue

<template>
  <div class="tension-view">
<!--  <Component /> -->
</div>
</template>

<script>
// @ is an alias to /src

export default {
  name: 'TensionView',
  /*  components: {
  'Component': () => import('@/components/Component'),
},*/
}
</script>
<style>
.tension-view {
  text-align: left;
}
</style>

 

 

 

 



12/06/2020

Semapps to visjs


1 requete

```
  const rawResponse = await fetch(this.params.source, {
    method: 'POST',
    headers: {
      'Accept': 'application/ld+json',
      //  'Content-Type': 'application/json'
    },
    body: this.params.query
  });
  const triples = await rawResponse.json();
  console.log(triples);

```

une fois que tu recupéré tes triples

````
  triples.forEach((t, i) => {
            let n_sub = {id: t.subject.value, label: app.localName(t.subject.value), title: t.subject.value}
            app.addNodeIfNotExist(n_sub)
            let n_obj = {id: t.object.value, label: app.localName(t.object.value), title: t.object.value}
            app.addNodeIfNotExist(n_obj)
            let edge = {from: n_sub.id, to: n_obj.id, label: app.localName(t.predicate.value), title: t.predicate.value}
            /*  app.network.body.data.edges.update(edge)*/
            this.addEdgeIfNotExist(edge)
            this.network.fit();
          });


```

02/05/2020

Solid & the Decentralized Web

  1. 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
  2.  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




18/01/2020

La Galaxie Solid

Je vais vous emmener vers une nouvelle galaxie, 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

Solid ? Plume ?

https://forum.solidproject.org/t/solid-plume-simple-blog-app/1681/71

Solid copy https://otman.solid.community/public/solid-file-client/examples/copy/


```
I’ve written an example copy app which can be used to install plume easily. It is based on the new solid-file-client which will hopefully be released soon, so it will likely be integrated in solid-filemanager in the future.

Installing

Open Solid Copy (currently available here 6. In the future likely on the solid-file-client website)
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…
Then you need to edit and rename config-example.txt. For instance with solid-filemanager:
Now plume should be installed on your pod and you can open plume in your browser (/public/plume/ without index.html at the end).
@happybeing If you want to be sure, that Solid Copy and the solid-plume-0.11 links are persistent, I’d suggest you to copy them to your pod. It could happen that they get deleted while I test stuff, or when I need more storage space…
```

Solid copy https://jeff-zucker.github.io/solid-file-client/docs/examples/

14/09/2019

La Barrière LEGO avec telecommande - Arduino

Cet article fait suite à l'article La Barrière LEGO

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 -

PINDescriptionCouleur du câbleConnexion vers la carte ARDUINO
SSortie des donnéesmarronD11
3.3 - 5Vrouge VCC  / 5V
-0Vnoir 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 receiver
  Serial.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 HAUTFlèche BAS
code hexadécimalFF18E7FF4AB5
code décimal1671805516730805

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);
}

Enregistrez votre programme (que l'on appelle également Sketch chez Arduino), et téléversez-le sur la carte. Ouvrez-le moniteur série et appuyez successivement sur les touches "HAUT" et "BAS". Ces deux mots devraient maintenant s'afficher dans le moniteur :

<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 :

00);


#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) {
      leve_barriere();
    } else if  (results.value == 16730805) {
      baisse_barriere();
    } else {
      Serial.println(results.value);
    }
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

void leve_barriere(){
  Serial.println("HAUT dans la fonction");
}

void baisse_barriere(){
  Serial.println("BAS dans la fonction");
}


<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 :




#include <IRremote.h>
#include <Servo.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

/* Creation d'un objet Servo pour contrôler le servomoteur */
Servo mon_servo;

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");
  mon_servo.attach(9);
  mon_servo.write(180);
}

void loop() {
  if (irrecv.decode(&results)) {
    // Serial.println(results.value, HEX);
    // Serial.println(results.value);
    if (results.value == 16718055) {
      leve_barriere();
    } else if  (results.value == 16730805) {
      baisse_barriere();
    } else {
      Serial.println(results.value);
    }
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

void leve_barriere() {
  Serial.println("HAUT dans la fonction");
  mon_servo.write(90);
}

void baisse_barriere() {
  Serial.println("BAS dans la fonction");
  mon_servo.write(180);
}





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 ! 


int led_rouge = 5;
int led_verte = 7; 
void setup() {
  // initialize digital pin as an output.
  pinMode(led_rouge, OUTPUT);
  pinMode(led_vertee, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(led_rouge, HIGH);   
  digitalWrite(led_verte, LOW);  
  delay(1000);                      
  digitalWrite(led_rouge, LOW);   
  digitalWrite(led_verte, HIGH); 
  delay(1000);                      
}












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

0 https://www.youtube.com/watch?v=9-hPhWHWnvs
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"

For f2fs:
mkfs.f2fs /dev/sda1
For ext4:
mkfs.ext4 /dev/sda1



mount /dev/sda1 /mnt ; tar -C /overlay -cvf - . | tar -C /mnt -xf - ; umount /mnt
reboot


System /mount Points


Notes

opkg Status

Saving opkg status in the extroot, instead of in RAM, saves some RAM and keeps package lists available after a reboot.
  1. Generate the new folder on the extroot: mkdir /opkg-lists
  2. Edit /etc/opkg.conf, changing:
    • lists_dir ext /var/opkg-lists
      into
    • lists_dir ext /opkg-lists
update list
rm -r /var/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)

23/06/2018

YunDessinCollaboratif (YDC) et les Journées Européennes du Patrimoine (JEP)

A l'occasion des Journées Européennes du Patrimoine 2018 placées sous le thème de "L'art en partage", Smag0 et l'association "Les Bricodeurs" vous propose d'utiliser dans plusieurs espaces culturels le dispositif "YunDessinCollaboratif"

Démo Online http://dessincollaboratif.herokuapp.com/
Gallerie que Twitter (@DCollaboratif) : https://twitter.com/DCollaboratif


Qu'est ce que YunDessinCollaboratif (YDC) ?

YDC est un dispositif permettant à des dizaines d'utilisateurs de partager la création d'une oeuvre artistique.
Il suffit de se connecter sur le réseau Wifi du boitier, d'ouvrir la page d'accueil, et chacun peut dessiner grâce à son smartphone, sa tablette ou son ordinateur sur une oeuvre collaborative.
Chacun est libre de compléter l'oeuvre en temps réel.


Fonctionnalités complémentaires

YDC permet d'effectuer des captures d'écran afin de sauvegarder à tout moment une oeuvre
-à développer : YDC enregistre automatiquement à chaque minute une capture d'écran afin de recréer un historique de la création collaborative
- à développer : YDC permet la création de "salles" pour élaborer plusieurs oeuvres en même temps
- à développer : diffusion en temps réel des oeuvres sur un site internet

Technique : 

YunDessinCollaboratif est une application nodejs basée sur de https://sketchpad.tk/
installée sur une carte Arduino Yùn, cette carte proposant un hotspot Wifi.
YDC est installable en tout lieu à condition de disposer d'une prise electrique, et pour la diffusion un pc avec écran ou videoprojecteur avec écran.

Les dernières mises à jour de YunDessinCollaboratif se trouvent ici : 
 https://github.com/scenaristeur/lininoapps/tree/master/root/sketchpad

Et les Bricodeurs dans tout ça ? 

Les Bricodeurs
Collectif du numérique citoyen
Les Bricodeurs est le collectif des professionnels du numérique engagés pour que l’expertise numérique soit au service de l’utilité sociale.
Particulièrement attentifs à l’ouverture et la diversité de genre, culturelle et sociale dans nos actions et nos instances, nous établissons une passerelle entre les expertises techniques, les besoins sociétaux et le grand public."
YDC/sketchpad a été testé à plusieurs reprises mais nécessite encore quelques ajustements. Les Bricodeurs se proposent d'animer des ateliers pendant l'été pour les personnes qui souhaiteraient s'investir dans le projet et apprendre à programmer des applications sur ce type de plateforme.
Potentiel actuel : une dizaine de boitiers YDC
04/05/2019: Visite au festival 'Peinture fraîche' à la halle Debourg/ Gerland où j'ai discuté avec Maxime T du projet https://thelivedrawingproject.com/fr/
Les deux projets sont très proches et utilisent la même stack ( nodejs, socket.io, webapp, mobile utilisateur, vidéoprojecteur) pour une même finalité de dessin collaboratif.
Nouvelle inspiration : le dessin est organisé sous forme de calques / layers que les utilisateurs peuvent gérer sauvegarder, copier, partager...




Spoggy et la prise de notes

Voici quelques exemples de prises de notes effectués lors des conférences au cours du hackathon PerseUp. Hackathon dont nous avons déjà longuement parlé.

- Analyse des réseaux en Egyptologie
- Analyse Visuelle des réseaux
- Méthodologie de Conception de DataVisualisation


Ces notes ont été prises dans le feu de l'action, chacun peut les corriger, les compléter et demander leur modification sur cette page

Pour rappel, il est également possible des prendre des notes à plusieurs en même temps sur le même graphe... En passant par le bouton de menu "+" / mode / collaboratif

Pour savoir comment utiliser Spoggy  consultez l'aide bouton de menu "+" / Aide