" Le principe KISS, Keep it simple, stupid (en français, mot à mot : « garde ça simple, idiot », dans le sens de « ne complique pas les choses ») "
Souvent cité pour expliquer la philosophie_pensée linux (Unix)
( https://en.wikipedia.org/wiki/Unix_philosophy#Eric_Raymond's_17_Unix_Rules )
Fil wiki ( articles connexes )
- https://fr.wikipedia.org/wiki/Simplexité
- https://fr.wikipedia.org/wiki/YAGNI
- https://fr.wikipedia.org/wiki/Ne_vous_répétez_pas
- https://fr.wikipedia.org/wiki/Méthode_MoSCoW
Il s'agit de rendre simple une tâche pourant complexe ( par exemple en la découpant )
Un exemple que j'ai retenu : celui des commandes apellées "pipe(lines)" dans l'univers Unix (par lesquelles l'info passe d'un traitement à l'autre) : un procédé simple car combinatoire.
cat mondocument.txt | grep "titre"
Dans cet exemple, cat
( sort/output le texte présent dans mondocument.txt
) qui est ensuite combiné à l'outil grep
( qui cherche dans le résultat de cat
, les lignes contenant "titre"
).
Simple sans perdre la complexité
- Cette combinatoire (parmis d'autres tel
>>
) permet avec un ensemble de commandes.logiciels simples de faire des choses complexes en bout de chaine. - Le principet est simple à intégrer-apprendre. Sa généralisation au sein d'un système d'outils variés ouvre à une grande créativité.
D'autres exemples de commandes "simples" profitant de cette combinatoire
OK pour le dev mais pour les idées ? méthodologie
( ma question : y aurait il du bon dans les méthodes_stratégies de dev. à appliquer.implémenter à une recherche (en thèse ou autre ) ? Quelles hybridités programatives pourraient en sortir ? Et moi, quels sont mes outils de d'auto-/feedback/ et d'orientation face à un problème (par exemple de restructuration face à une nouvelle hypothèse, un doute) ? )
Cité dans ce wiki (source) :
( explications, point de vu pratique.empirique d'un dev. )
http://people.apache.org/~fhanik/kiss.html
What does that mean?
This principle has been a key, and a huge success in my years of software engineering. A common problem among software engineers and developers today is that they tend to over complicate problems.Typically when a developer is faced with a problem, they break it down into smaller pieces that they think they understand and then try to implement the solution in code. I would say 8 or 9 out of 10 developers make the mistake that they don't break down the problem into small enough or understandable enough pieces. This results in very complex implementations of even the most simple problems, another side effect is spagetthi code, something we tought only BASIC would do with its goto statements, but in Java this results in classes with 500-1000 lines of code, methods that each have several hundreds of lines.
How will I benefit from KISS
- You will be able to solve more problems, faster.
- You will be able to produce code to solve complex problems in fewer lines of code
- You will be able to produce higher quality code
- You will be able to build larger systems, easier to maintain
- You're code base will be more flexible, easier to extend, modify or refactor when new requirements arrive
- You will be able to achieve more than you ever imagined
- You will be able to work in large development groups and large projects since all the code is stupid simple
.... la suite de l'article donne de plutôt bons conseils pour optimiser son dev. (par exemple, réfléchir avant de coder...)
nodejs ... et son gestionnaire / watcher de dossiers : : /nodemon/
( sont dans un bateau )
Je découvre /PM2/ comme gestionnaire multi-apps (et logger)
( sans doute mille ans après tout le monde )
J'aime bien, je vois le potentiel de gestion...
et puis surtout quand ca plante, ca repousse
( redémarre tout seul )
C'est un outil pro et ça se sent !
Un peu l'impression d'une usine à gaz
( d'ailleurs leur /monitoring ne manque pas de /fees...) not_free
PM2 permet de créer des "écosystèmes"
( Un fichiers qui indique les environnements des app )
Pour test j'ai "découpé" les applis_services de mon serveur
( qui jusque là étaient dans le même fichier server.js )
( puis j'ai associé chaque app à un port, nginx a fait le reste en reverse proxy )
Un tuto complet step-by-step (en anglais) : https://blog.tericcabrel.com/deploy-a-node-js-application-with-pm2-and-nginx/ nginx
Un petit tuto sur https://futurestud.io/tutorials/pm2-use-npm-to-start-your-app (en anglais), j'aime bien le rythme pas-à-pas, l'interface...
Trouvez la documentation des commandes... linux cheatsheet
- https://cheat.sh/ls
curl cheat.sh/ls
( ls = lister dossiers )
TLDR
Linux commandes (et tuto, tldr)
Des alternativeto :
Not installed / cant run linux
https://wiki.gnome.org/Apps/Devhelp
horsligne_offline_invisible
Ça donnait ça ( sans la moindre /obfuscation/ )
https://vincent-bonnefille.fr/index_hacked.html
Un message s'affiche alors sur la page d'accueil de mon site principale
(non encore auto-hébergé) ::
Dont un script est chargé sur le disque dur de :
http://mxian.wapgem.com
Un fichier .htaccess intégré au dossier contenant le logiciel intrusif indique :
#Coded By Sole Sad & Invisible
lescgi-script
sont en .alfa
le tout profite d'une failleeval()
et à vrai dire je pige pas tout.
La page hackée avec un index.html
de remplacement indiquait d'aller voir les logs...
Check The Security Of Your System Please
Ce que j'ai fais, l'activité accrue sur un dossier spécifique (et son formulaire) m'ont permis de trouver la faille facilement...
Formulaires : portes ouvertes
Un formulaire, ces petites boites blanches qui attendent du texte de la part du visiteur.visiteuse (bot/humain.e) permet d'envoyer et d’fexécuter du code sur le serveur directement (qui est un ordinateur capable de lancer.activer.exécuter des programmes et donc d'ajouter/supprimer/éditer des fichiers en fonctions des droits/permissions qui sont accordées).
C'est par là que le code a été exécuté.
Hack : usage détourné
Au lieu d'envoyer une image via cette page dédiée, du code non "escapé" a été exécuté. ( "escape", ça veut dire "faire sortir, échapper". Échapper du code ça consiste à convertir les caractères spéciaux qui servent à écrire du code, en autre chose : des caractères inoffensifs : à faire qu'ils s'affichent seulement, comme {ces} caractères, des lettres, des signes non interprétés comme "faisant quelque chose".
( -\:\?()\/... sont {là} escaped . \<> aussi, sinon ils seraient "lus"interprétés par le navigateur comme contenant du code à exécuter ) langage_progra
: Des caractères qui servent à écrire du code exécutable { c'est à dire qui par son langage produit des effets } en caractères qui ne contiennent pas d'ordres de commandement sur la machine.
Là le langage final interprété dans le code ajouté à mon site semble écrit du Python ...
Se faire cambrioler
Le sentiment est toujours le même suite à un "viol de propriété" ou de domaine... on fouille les dossiers, on cherche les traces de la présence et on se sent pas très bien... mais on apprend.
Et le fait que tout soit explicite, transparent, invitant à regarder le log sonne comme un avertissement. L'acte d'un.d'une White_hat ?En vrai je les remercie. Ca m'a mis la faille sous le nez et j'ai fais un peu de ménage.
Une faille de débutant
En cause de cette faille, une mauvaise gestion des permissions de fichiers (en 777)
oui ... j'avoue... et un formulaire mal sécurisé permettant l'envoi du code malveillant, son installation (avant une possible activité.usage malfaisant)
L'intrusion, le point d'entrée, à été trouvé (et exploité) à l'intérieur d'une page web accessible. Elle faisait parti d'un projet que je n'ai pas maintenu (et sécurisé comme il faut à l'époque).
Un bout de code, des pages obsolètes pour moi, oubliées sur un coin de serveur... Or, même inactif.inutilisé, un espace reste un espace : l'automatisation de recherche de failles se soucis peu des affectes et volontés : les moyens sont les moyens.
C'est moi dans ma tête qui y cherche du sens, une conspiration, un geste personnel. Un contexte explicatif... ( et j'en ai trouvé un : )
Sys.admin, un métier (pas le mien)
FunFact ... qui ne peut être tout à fait une coïncidence... je passais aujourd'hui un entretient pour des formations de Sys Admin... c'était tout à fait de circonstance.
Le Quiz que j'ai passé m'a donné une note honorable mais j'ai bien compris que je n'avais pas les qualifications d'informaticien BAC+2.
On y parlait adresses IP
, Masques de sous-réseau
, machines virtuelles
...
en citant beaucoup Windows (8.1)
comme référence/environnement...
Les termes du Quiz que j'ai recherché :
Hyperviseur 2012 / VHDX / VHD
SCVMM
GPO Starter
DCPROMO
Fôret Active Directory
Serveur AD DS
NTFS / SATA 3
Base SAM
FTP / TFTP
Couches OSI
...
J'avais bien aimé l'édition de leur expo collective en ligne
. Des pépites 2019 2020 :
. https://liens.vincent-bonnefille.fr/?bKaWvA
. . un /design/ par /floor/ (étages) en ascii_art
. . . reprenant les arborescences "par défaut" des serveurs de fichiers ftp
.
Elles.Ils reviennent et cette fois c'est la Rave 2021
actu.candidature { cf. lien.bulle }
Avec des promesses de web_performance
A la conception de leur site web =
https://basel.codes <3
web_master web_créatifs inspiration
donnent des cours workshops... sur dn_dat
https://github.com/baselcodes/teaching/tree/master/workshops/201903WS_copy_it_right%40HGK_masterstudio
( en partant de l'install de VSCode config_install tuto)
Mes usages actuels
https://vincent-bonnefille.fr/index/torcheck/index.php
< utilisé là, pour mon "tor_easter_egg" > dn_tor_onion
https://vincent-bonnefille.fr/#tor
Je passe en fait par un service tiers...
qui récupère votre adresse IP de client distant
Surtout qu'il est restrictif et limites les accès avec CORS
Bon, c'est bof...
Par moi même j'y arrive pas
Quand j'utilise nodejs avec des modules pensés pour récupérer les adresses ip,... ce que j'ai en /output/... c'est ma propre IP loopback
= error_échec
L'adresse IP du client reste insaisissable...
L'état de ma recherche
Il me semble que cela vient avant tout du reverse-proxy Nginx
( qui sert.envoie.affiche les pages produites par nodejs (et Express) )
( Nginx gêre les transactions entre ma machine et la votre (client) )
Si j'ai bien compris je dois configurer X-Forwarded-For
Du coup Nginx doit être installé avec un module spécifique :
[ ngx_http_realip_module ] todo
PS : sur mon site principale hébergé chez OVH (pour le moment) les contenus sont distribués par Apache
"Send e-mail campaigns from a powerful dashboard. High performance and features packed into one app."
https://github.com/knadh/listmonk/stargazers
...
Aujourd'hui on m'a demandé...
Quelles sont les solutions pour envoyer des mails en masse ?.
Quel outil.service.application utiliser pour faire des listes de mails ?
Et envoyer des campagnes de mails ? newsletter
Comment inonder sans faire du /Spam/ ? spam_scam
Comment avoir un chouette /Marketing/ mail ?
Les plus connus du /game/...
MailChimp site ?
SendinBlue site ?
( not-free not open_source )
...
MailChimp et moi
Des alternatives à /MailChimp/ il y en a.
MC reste ma référence, j'ai commencé avec, je connais ses limites.
La limite avec les /freenium/ (services gratuits avec fonctions payantes/"prenium") se passe souvent du côté de la taille des listes. 1000, 10.000 ca dépend.
Je ne suis pas { là } pour faire une étude de marché complète (/Brenchmark/)
La création de formulaires d'inscription est facile à intégrer à un site web...
Ce que je peux dire c'est que MC envoie bien...
Le suivi de traçage est "cool" (ouverture/clics)
Les mails s'envoient bien...
Le /builder/ est accessible pour les non codeuses.codeurs.
. Et il y en a un pour les codeurs qui veulent adapter le /template/, la mise en page...
. Même s'il est vrai que y a du darkpatern au niveau de l'UX : on se perd par fois.
Et surtout, donc, on est limités en envoi/liste de mails
...
Une alternative ? ( svp )
Alors moi, mon réflexe c'est de chercher des alternativeto
D'autres logiciels, de préférence en self_host_hébergement
Et je ferais bien tourner un système de mails / listes sur mon raspberrypi (et oui)
Comme ça on a plus de limite ;)
Ma petite expérience
- Par le passé j'ai déjà test ...
phplist qui s'installait bien sur en php sur un serveur mutualisé d'OVH ( une machine sur laquelle j'avais très peu de moyen de faire tourner autre chose ) - J'ai aussi testé la référence open_source :
Sympa - Sinon du côté des associations.militances je sais qu'on va souvent chez
RiseUp !!!
. . qui propose aussi des adresses email et vpn
Je vois que la @FDN utilise /Sympa/ pour tenir au courant de l'état de son réseau (et autre) : liste démo
Et les campagnes ? ( tout en un )
... mais bon /phplist/ ou /sympa/ font pas de gestion de campagne
... des listes quoi (on envoie un mail à compte@framalistes.org qui va le transférer/envoyer à toutes les copaines)
... ce que j'envoie depuis ma boîte mail n'a pas d'outil de mise en page.forme, de /campagnes builder/
Auto-hébergé ? ( oui )
listmonk semble le mieux placé...
Voilà ce que nous sort le site /AlternativeTo/ :
https://alternativeto.net/software/listmonk/?platform=self-hosted
phplist / mailtrain (site /down/ ?) ...
Bon je vais test Listmonk ( a l'air facile à installer sur linux ou déployer via /Heroku/ )
Et puis Sympa ( avec /framasoft/ et leur démo )
BONUS
/Framalist/ fait la promotion de http://www.collecti.cc ...
qui propose des services de de web responsable, "éthique" ?, des ressources / MOOC pour monter.gérer un projet réellement collaboratif (gouvenance...) altweb <3 cours
Et nous a fait un article et infographie.visuel pour expliquer quel type de mailing/newletter/groupe liste choisir
jai-besoin-denvoyer-un-mail-a-un-groupe-ou-les-avantages-dun-liste-de-discussion 2017
Tient tient tient...
/Piwik/ devient .pro et /Matomo/...
L'outil open.source, alternativeto /Google Analytics/ se chercherait une modalité d'existence et rétribution en tant que service /Freenium/ ( gratuit en grande partie - avec des options /Prenium/).
Sans doute une volonté de survivance et déploiement de l'entreprise salutaire.
Car avoir un outil libre, alternatif au géant des GAFAM_NATU est une très très bonne chose.
Son service de ads_tracking est aujourd'hui embarqué-installé sur des milliards de sites web par des web_master esclaves-dépendants de cet outil.
Il leur permet une veille sur leur admin (administration), de "voir"."suivre". . . comment on clique ou pas sur tel lien. . . si on est un bot ou nouvellæ visiteur.euse . . . d'où on se connecte . . . combien de temps on reste sur une page : : plein d'infos super importantes pour ajuster un /marketing/ et augmenter ses points en matière de SEO .
Pour beaucoup de sites, cette vision des usages et consommations des contenus qu'ils produisent est CAPITAL .
/Piwik/ ce sont les yeux et les oreilles de la chasseresse du web à l'affût d'un feedback lui indiquant le chemin à prendre ( quel politique.stratégie la plus adaptée ) pour atteindre sa proie au plus vite.
Gérer son espace publicitaire est au centre de l'économie du web formé autour des données. La création d'un siteweb est pensée pour et par cet impératif ( parfois au détriment du contenu qui devient secondaire.accessoire )
Cet espace public est pensé pour influencer / produire des comportements consommateurs ( nudge ) : pour augmenter le temps d' attention porté.capté ...
Se doter d'un outil alternatif de suivi veille est donc important dans l'écosystème du web .
Aussi, aujourd'hui je me demande se que valent ces offres.produits émergeants-nouveaux_venus .
Quels alternatives sur ce marché ?
https://alternativeto.net/software/piwik/about/
https://alternativeto.net/software/piwik-pro/about/
https://alternativeto.net/software/ackee/about/ nodejs
https://alternativeto.net/software/shynet/about/ privacy_vie_privée
( les deux derniers me tentent bien en auto-hébergement todo self_host_hébergement )
Hello, dear log_perso
Mise à jours en cascades...
D'abord linux debian passé de /Buster/ à /Bullseye/
avec ce tuto : https://pimylifeup.com/upgrade-raspberry-pi-os-bullseye/
. J'avais fait plusieurs fois le test (avec échec/erreurs)
. Le kernel passe entièrement en 64bit
. . Je ne mettais pas à jour ce paramettre crutial de démarrage
. La màj est longue mais le résultat est trop frais.
= interface revu, corrigé, des rapidités
= une meilleure convivialité ( /xfce/ et lxde )
. . Dont le bureau et son menu customisable ( "applets"/"plugins" )
. . Plus souple et libre que sur Mac / Windows (bien entendu)
Biensûre des ajustements ont été nécessaires...
La réinstallation / configuration de pi_Bluethooth + Python . . .
Ensuite, dans la foulée...
Paramétrage de Nginx et prise en compte de l'up' de /PHP7.4/
. Basculement (et maj) de Nextcloud en 100% Nginx
C'est déjà noel et je suis bien retombé sur mes pieds...
ou presque...
Services HS, fix à venir todo error_échec
Motioneye eye.vb ... piste FIXED
Wallabag walla.vb piste piste1 ... PHP7.4 pris pour cible... FIXED
GRRRR... piste1+
FIXED... une semaine +plus tard ... avec réinstallation complète...
. L'occasion de remettre le nez dans /rabbit_mq/ et /Redis/ ( et de le sortir aussi vite )...
. . et d'installer...
. . une nouvelle mouture wallabag (+plus fluide et /design/ revu)
. . . Une occasion pour déplacer ma base de données Mysql ...
. Ajout d'un RSS_reader_parser en nodejs par ici
( l'ancien en PHP dysfonctionne, je fais au plus simple maintenance )
Nouveau venu : un /RSS finder/ ::
https://node.vincent-bonnefille.fr/rss_finder
bulle de contexte ( c'est quoi un RSS déjà ? )
Coucou
Après l'exposition avec le CAG+
j'ai trouvé un bug sur ma version web :)
sur le projet_perso chat_chouquette
Et ce bug : c'est moi
j'avais modifié une fonction de base
ca faisait que quand je modifiais mon code (page index.php) rien n'était pris en compte au chargement de la dite page ( par mon navigateur_browser et autres visiteurs )
J'ai d'abord crié au complot
Puis au cache de mon navigateur de se vider
À mon hébergeur et serveur FTP de réagir...
J'ai cherché.
...
Et puis j'ai trouvé.
En indiquant l'adresse complete du projet avec index.php dans l'URL (adresse web) ça marchait.
sans je retombais sur une chouquette malade, des bugs
ET cela peu importe le chouquette (le sous dossier de projet)
RSI / Solidaires / Darknets
Toutes ces pages me renvoyaient le même bug ...
...
C'est comme ca que j'ai compris...
Comme cela que je me suis rapellé que par soucis de gain de temps...
J'avais demandé au serveur d'agir tout autrement que comme il devrait par défaut
Que plutôt que de charger le fichier "index" il en charge un autre...
et cela pour tous les sous-dossiers...
...
cut, détail, explications
...
Bref
à faire simple on finit par tout compliquer...
surtout quand on ne documente pas son code.
Suite du log ::
J'ai fini ma journée à mettre à jour le system d'upload de fichiers
(de mes chouquettes) (j'ai pas fini) (maintenant si)
(j'ai décentralisé les pages d'upload/admin pour n'en avoir qu'une à modifier)
(j'ai par contre laissé les chouquettes.index charger leur index.par_défaut)
Ajouts
Restitution des dossiers (par défaut)
Appel des dossier par parameters (?folder=....)
( Finalement non ... pose problème pour une arborescence avec sous-dossiers )
( = choisi un mix' utilisant htaccess
/dossier/ > index du dossier ... normal
/up.php (fichier vide) > upload.php (centralisé.core) )
Ajout d'un "switch" entre les dossiers listés
Ajout d'une fonction de "lock" sur certains dossiers
MàJ des chemins (changés en centralisant le fichier.index.admin)
Demo
https://vincent-bonnefille.fr/chat-chouquette/RSI/fichiers/01_MOVE_others/up.php
BONUS
Sur ces questions de design/fonction par défaut...
je conseille ce super article (et super site) qui questionne l'usage et de création collective au sujet de l'interface ftp .. <3 ! proto technique_article
@Etienne_Cliquet
http://003.directory/2001_Esthetique-par-Defaut/ walla @aR
<- .dead --> https://web.archive.org/web/20220706050032/http://003.directory/2001_Esthetique-par-Defaut/
A motivé l'écriture de ce petit log/retour d'expérience perso...
on git :
maxboeck/webring: A boilerplate for hosting a webring community
https://github.com/maxboeck/webring
... search a git
Search · webring
https://github.com/search?q=webring
... like :
jackmcdade/weird-wide-webring:
The web needs a little more weird. These sites are helping. Apply to join!
https://github.com/jackmcdade/weird-wide-webring
webring 3.0
How You Might Build a Modern Day Webring | CSS-Tricks
https://css-tricks.com/how-you-might-build-a-modern-day-webring/
webring origins histoire
Webring History: Social Media Before Social Media
https://tedium.co/2020/11/20/webring-history/
Sites au design brutalist.... interview
Le partage et la liberté !
Cependant, ma naïveté m’a fait penser, à tort, que tout était beau dans le meilleur des mondes. Microsoft a publié le code de cet éditeur en open source sur GitHub sous licence MIT. En simplifiant, cette licence très permissive fait que tout le monde peut prendre le code et le réutiliser dans tout les contextes.
C’est merveilleux, un éditeur ouvert qui est adopté par beaucoup de développeur avec un écosystème très dynamique et des tonnes d’extensions. Que rêver de plus ?
La descente…
Ce qui m’avait échappé c’est que les binaires distribués par Microsoft sur le site officiel ne sont peut être pas tout à fait publié sous ces mêmes règles.
- NodeJS et ses problèmes
: Promesses tuées dans l’oeuf
: Sécurité faible
: Le système de build (GYP) à la dérive
: Le package.json et NPM indispensable
: Le système de modules et le fameux dossier node_modules - Deno c’est quoi ?
- Deno et ses solutions
- Deno en action
- Deno et NodeJS dans le futur
Backup, /media/BC_02/bkp/shaarchiver/
alternatives a Shaarli
dont
https://sourceforge.net/projects/semanticscuttle/
- Active MARKDOWN with fixes
http://shaarli.guiguishow.info/?PAenmg