Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

https://github.com/websealevel/awesome-fr

Une liste organisée de ressources gratuites. Régulièrement mise à jour
https://github.com/websealevel/awesome-fr

List: awesome-fr

accessible awesome-list currated design developer-tools ebooks fr francais francophone freelance gratuit open open-source outils podcasts ressources ressources-web selection tools web

Last synced: 3 months ago
JSON representation

Une liste organisée de ressources gratuites. Régulièrement mise à jour

Lists

README

        

# Ressources *gratuites* pour les programmeur·euses, designeur·euses web, indépendant·es, bidouilleur·euses et autres intéressé·es

## *We're Using GitHub Under Protest*

*Pour en savoir plus [rendez-vous à cette section](#quitter-github)*.

This project is currently hosted on GitHub. This is not ideal; GitHub is a
proprietary, trade-secret system that is not Free and Open Souce Software
(FOSS).

Logo of the GiveUpGitHub campaign)

## En quelques mots

Une liste d'outils et de ressources culturelles (sites/applications webs, ebooks, podcasts, vidéos, blogs, articles, conférences...) **gratuites** plutôt orientés web (en tout cas initialement, ce qui tend à changer au cours du temps).

Cette liste **n'est pas exhaustive par choix** (il y'a des choses qui ne m'intéressent pas plus que ça et d'autres ressources que je trouve moins pertinentes).

Ce dépôt contient **évidemment des opinions** sur certains sujets. Libre à vous d'y adhérer ou non.

## Des limites de la francophonie

La liste en elle-même est francophone, cependant bon nombre de ressources listées ici ne sont malheureusement que disponibles en anglais. Il serait idiot de ne sélectionner que des outils ayant l'amabilité de nous fournir des traductions fr. L'accessibilité aux francophones reste néanmoins une priorité sur ce dépôt (au même titre que la gratuité) et permettra au moins de proposer un panorama en français de différentes ressources.

Un effort sera fait pour retrouver des ressources traduites en français (par exemple pour les livres) quand cela sera possible. Une traduction n'est pas qu'une opération automatique, il en résulte bien souvent un livre différent du livre de départ. Aussi il est parfois difficile de le recommander aveuglément.

## Conseils d'utilisation

Servez-vous de ce dépôt comme d'une banque de marque-pages. Grâce à la table des matières, trouvez quelque chose qui peut vous aider ou vous intéresser.

*Spoiler alert* : vous n'avez pas besoin *- et de toute manière n'aurez pas assez d'une vie -* d'apprendre, de lire ou de maîtriser tout ce qui est exposé ici. *Naviguez* la conscience tranquille vers ce qui vous paraît utile ou vous attire. Ce dépôt donne du vertige aussi à son auteur, et ce dernier est pris dans le douloureux paradoxe d'[ajouter du bruit au bruit](#du-bruit-au-bruit) pour toutes celles et ceux qui cherchent à démarrer en programmation et/ou dans le développement web.

Par souci de simplicité et d'accessibilité, ce dépôt va continuer à grandir dans un fichier *bien à plat*. C'est comme dans une brocante, faut faire un tour pour voir. Mais bon y'a quand même une [table des matières](#table-des-matières), la recherche par mot-clef et des hyperliens pour faciliter la navigation.

## Contribuez et partagez

Un lien mort ? Une typo ? Votre ressource préférée n'est pas présente ici et vous voulez la partager ?

Proposez votre contribution via l'ouverture d'une issue ou d'une [Pull Request](http://thelia-school.com/faire-une-pull-request-sur-un-projet-thelia/faire-une-pull-request.html). Avant de soumettre une suggestion, merci de lire [Comment contribuer au dépôt ?](CONTRIBUTING.md)

*No time to lose !*

No time to lose ! (Monty Python Flying Circus)

## Table des matières
- [Ressources *gratuites* pour les programmeur·euses, designeur·euses web, indépendant·es, bidouilleur·euses et autres intéressé·es](#ressources-gratuites-pour-les-programmeureuses-designeureuses-web-indépendantes-bidouilleureuses-et-autres-intéressées)
- [*We're Using GitHub Under Protest*](#were-using-github-under-protest)
- [En quelques mots](#en-quelques-mots)
- [Des limites de la francophonie](#des-limites-de-la-francophonie)
- [Conseils d'utilisation](#conseils-dutilisation)
- [Contribuez et partagez](#contribuez-et-partagez)
- [Table des matières](#table-des-matières)
- [Frontend](#frontend)
- [Agrégateurs de ressources pour le *front*](#agrégateurs-de-ressources-pour-le-front)
- [Templates](#templates)
- [Typographies/Fonts](#typographiesfonts)
- [Palettes de couleurs](#palettes-de-couleurs)
- [Pack d’icônes/favicons](#pack-dicônesfavicons)
- [Images: photos, illustrations, svg](#images-photos-illustrations-svg)
- [Générateurs/Templates CSS](#générateurstemplates-css)
- [Générateur d'assets au format SVG](#générateur-dassets-au-format-svg)
- [Motifs](#motifs)
- [Animations CSS (keyframes API) ou JS](#animations-css-keyframes-api-ou-js)
- [Extraits de code sur étagère](#extraits-de-code-sur-étagère)
- [Gradients](#gradients)
- [Générateur de mise en page / *layouts*](#générateur-de-mise-en-page--layouts)
- [Courbes de Bézier](#courbes-de-bézier)
- [JS](#js)
- [Backgrounds](#backgrounds)
- [Pixel art](#pixel-art)
- [Agrégateurs de design, inspiration](#agrégateurs-de-design-inspiration)
- [Composants](#composants)
- [UI/UX](#uiux)
- [Sitemap](#sitemap)
- [DOM](#dom)
- [Quelques références tierces](#quelques-références-tierces)
- [Apprendre le web design](#apprendre-le-web-design)
- [Check, check, check](#check-check-check)
- [Code](#code)
- [Est-ce-que j'ai oublié un truc ?](#est-ce-que-jai-oublié-un-truc-)
- [Accessibilité](#accessibilité)
- [Perfs et config](#perfs-et-config)
- [Analyse de texte](#analyse-de-texte)
- [Contraste](#contraste)
- [Comme évaluer la *santé* d'un dépôt ?](#comme-évaluer-la-santé-dun-dépôt-)
- [Environnements d'apprentissage interactifs](#environnements-dapprentissage-interactifs)
- [git](#git)
- [CSS grid](#css-grid)
- [JS](#js-1)
- [Algorithmes](#algorithmes)
- [SEO](#seo)
- [Analytics](#analytics)
- [API publiques](#api-publiques)
- [Divers](#divers)
- [Opendata/France](#opendatafrance)
- [Générateur de fausses données](#générateur-de-fausses-données)
- [Wordpress](#wordpress)
- [Un mot](#un-mot)
- [Doc officielle wordpress.org](#doc-officielle-wordpressorg)
- [Articles](#articles)
- [Livres de développement Wordpress](#livres-de-développement-wordpress)
- [Épisodes de podcasts sur Wordpress](#épisodes-de-podcasts-sur-wordpress)
- [Podcasts dédiés à Wordpress](#podcasts-dédiés-à-wordpress)
- [Formations](#formations)
- [Starter themes](#starter-themes)
- [Banque de thèmes](#banque-de-thèmes)
- [Plugins recommandés](#plugins-recommandés)
- [Articles sur la pratique de WordPress et son évolution vers le FSE](#articles-sur-la-pratique-de-wordpress-et-son-évolution-vers-le-fse)
- [Hébergement gratuit](#hébergement-gratuit)
- [Mots de passe](#mots-de-passe)
- [Gestionnaire de mots de passe](#gestionnaire-de-mots-de-passe)
- [Générateur de mots de passe](#générateur-de-mots-de-passe)
- [Starterpacks](#starterpacks)
- [Environement de développement](#environement-de-développement)
- [Git](#git-1)
- [Client git](#client-git)
- [Déploiement](#déploiement)
- [Simulateur de terminal](#simulateur-de-terminal)
- [Mouvement NoCode, outils *visual code* (*no-code* ou *low-code*)](#mouvement-nocode-outils-visual-code-no-code-ou-low-code)
- [Quitter Github](#quitter-github)
- [Logiciels *open-source* et *logiciels libres* (free software)](#logiciels-open-source-et-logiciels-libres-free-software)
- [Capture/Édition vidéo](#captureédition-vidéo)
- [Principes généraux et fondamentaux](#principes-généraux-et-fondamentaux)
- [Standards](#standards)
- [Organismes](#organismes)
- [SGML](#sgml)
- [XML](#xml)
- [Un mot sur le XML](#un-mot-sur-le-xml)
- [Apprendre le XML et ses standards associés](#apprendre-le-xml-et-ses-standards-associés)
- [Applications XML de prestige](#applications-xml-de-prestige)
- [Standard SQL et bases de données relationnelles](#standard-sql-et-bases-de-données-relationnelles)
- [Réseau](#réseau)
- [Protocoles](#protocoles)
- [TCP/IP](#tcpip)
- [SSH](#ssh)
- [HTTP](#http)
- [OS](#os)
- [Infrastructure](#infrastructure)
- [*Request For Comments* (RFC), *drafts* et W3C](#request-for-comments-rfc-drafts-et-w3c)
- [Unix](#unix)
- [REST, *Architecture of the World Wide Web*](#rest-architecture-of-the-world-wide-web)
- [Spécifiques à un langage/écosystème](#spécifiques-à-un-langageécosystème)
- [PHP](#php)
- [C](#c)
- [JavaScript](#javascript)
- [Docker et conteneurs](#docker-et-conteneurs)
- [Suivi de projets](#suivi-de-projets)
- [Gestion de projet, gestion de l'apprentissage et des connaissances d'équipe](#gestion-de-projet-gestion-de-lapprentissage-et-des-connaissances-déquipe)
- [Dessin](#dessin)
- [Quelques SGBD](#quelques-sgbd)
- [Modélisation de bases de données relationnelles](#modélisation-de-bases-de-données-relationnelles)
- [Outils de conception de base de données](#outils-de-conception-de-base-de-données)
- [Outils d'administration (et conception parfois) de base de données](#outils-dadministration-et-conception-parfois-de-base-de-données)
- [Architecture logicielle](#architecture-logicielle)
- [Développement informatique et science académique](#développement-informatique-et-science-académique)
- [Développement informatique et écologie (ecoconception)](#développement-informatique-et-écologie-ecoconception)
- [Perl](#perl)
- [Programmation fonctionnelle](#programmation-fonctionnelle)
- [Général](#général)
- [Haskell](#haskell)
- [Clojure](#clojure)
- [Elm](#elm)
- [Racket, le *langage-oriented programming language*](#racket-le-langage-oriented-programming-language)
- [Langages Assembleur](#langages-assembleur)
- [Rich Hickey](#rich-hickey)
- [Défis](#défis)
- [Markdown](#markdown)
- [Markdown ecosystème](#markdown-ecosystème)
- [CV](#cv)
- [Éditeurs de texte](#éditeurs-de-texte)
- [Écriture technique](#écriture-technique)
- [Expressions régulières (regex)](#expressions-régulières-regex)
- [Boîte à outils](#boîte-à-outils)
- [`sed`](#sed)
- [`sloccount`](#sloccount)
- [`rclone`](#rclone)
- [`wwb` (et descendants)](#wwb-et-descendants)
- [Manipulation de fichiers, documents](#manipulation-de-fichiers-documents)
- [Convertir des documents, éditer des pdf](#convertir-des-documents-éditer-des-pdf)
- [Compresser, optimiser des documents (images, pdf etc..)](#compresser-optimiser-des-documents-images-pdf-etc)
- [Capture vidéo, audio](#capture-vidéo-audio)
- [Androïd](#androïd)
- [Langages/technos à découvrir](#langagestechnos-à-découvrir)
- [Du bruit au bruit](#du-bruit-au-bruit)
- [SmallTalk](#smalltalk)
- [Assembleur](#assembleur)
- [Prolog](#prolog)
- [Scheme (Lisp dialect)](#scheme-lisp-dialect)
- [Tcl/Tk](#tcltk)
- [RGPD](#rgpd)
- [Ebooks](#ebooks)
- [Quelques *classiques* (non exhaustif)](#quelques-classiques-non-exhaustif)
- [Refactoring, travailler sur du code legacy](#refactoring-travailler-sur-du-code-legacy)
- [Software design](#software-design)
- [Blog design](#blog-design)
- [Architecture de l'information / Recherche d'information](#architecture-de-linformation--recherche-dinformation)
- [Wordpress](#wordpress-1)
- [Sécurité des applications webs](#sécurité-des-applications-webs)
- [Webmaster](#webmaster)
- [HTTP](#http-1)
- [Perl](#perl-1)
- [Test driven development](#test-driven-development)
- [Programmation CGI](#programmation-cgi)
- [Haskell](#haskell-1)
- [Rust](#rust)
- [Développement de jeux vidéos](#développement-de-jeux-vidéos)
- [Génération procédurale et *game design*](#génération-procédurale-et-game-design)
- [Algorithmes](#algorithmes-1)
- [Le projet *Open Books* de O'Reilly](#le-projet-open-books-de-oreilly)
- [Éducation, outils/langages pour initier à la programmation](#éducation-outilslangages-pour-initier-à-la-programmation)
- [*Hacker* culture](#hacker-culture)
- [Compilateurs, interpréteurs](#compilateurs-interpréteurs)
- [Informatique et mathématiques et aspects bas niveau](#informatique-et-mathématiques-et-aspects-bas-niveau)
- [Ressources pour formateur·trice](#ressources-pour-formateurtrice)
- [En vrac](#en-vrac)
- [Articles / Billets de blog](#articles--billets-de-blog)
- [Papiers](#papiers)
- [Blogs](#blogs)
- [Podcasts](#podcasts)
- [Cours](#cours)
- [Conférences](#conférences)
- [La vérité par l'humour](#la-vérité-par-lhumour)
- [Génération procédurale](#génération-procédurale)
- [Game Developers Conference (GDC)](#game-developers-conference-gdc)
- [Chaînes YouTube](#chaînes-youtube)
- [Playlists](#playlists)
- [Computer graphics et art génératif](#computer-graphics-et-art-génératif)
- [Créativité, modèles mentaux](#créativité-modèles-mentaux)
- [Fondamentaux, radical](#fondamentaux-radical)
- [Contribuer à des projets open-source](#contribuer-à-des-projets-open-source)
- [Rester informé·e](#rester-informée)
- [Prendre soin de soi](#prendre-soin-de-soi)
- [Prendre soin de sa machine et de ce qu'il y a dessus au quotidien](#prendre-soin-de-sa-machine-et-de-ce-quil-y-a-dessus-au-quotidien)
- [*Makers*, partage de guides, de tutoriels sur la fabrication et l'artisanat - "Do it yourself"](#makers-partage-de-guides-de-tutoriels-sur-la-fabrication-et-lartisanat---do-it-yourself)
- [Géométrie, art génératif, algorithmes, procédural](#géométrie-art-génératif-algorithmes-procédural)
- [Correction](#correction)
- [Trouver du boulot](#trouver-du-boulot)
- [A distance (*remote*)](#a-distance-remote)
- [Banques de ressources, dépôts, cours](#banques-de-ressources-dépôts-cours)
- [Général](#général-1)
- [Outils "*no code*", "*low code*" ou plutot *visual code*](#outils-no-code-low-code-ou-plutot-visual-code)
- [Côté client (*Front-end*)](#côté-client-front-end)
- [Développement de jeux vidéos](#développement-de-jeux-vidéos-1)
- [Applications web et réseaux à héberger *soi-même*](#applications-web-et-réseaux-à-héberger-soi-même)
- [Conférences](#conférences-1)
- [Revues et magazines informatiques](#revues-et-magazines-informatiques)
- [Machine learning](#machine-learning)
- [Spécifique à une techno](#spécifique-à-une-techno)
- [PHP](#php-1)
- [Java](#java)
- [JS](#js-2)
- [Typescript](#typescript)
- [Vue.js](#vuejs)
- [Node.js](#nodejs)
- [Flutter](#flutter)
- [Projets open-source](#projets-open-source)
- [Design](#design)
- [Architecture logicielle](#architecture-logicielle-1)
- [Apprendre](#apprendre)
- [API](#api)
- [Divers](#divers-1)
- [Lecture : articles, livres techniques (informatique, mathématiques)](#lecture--articles-livres-techniques-informatique-mathématiques)
- [Vendre](#vendre)
- [Vendre des templates](#vendre-des-templates)
- [Vendre des articles](#vendre-des-articles)
- [Trouver des livres techniques d'occasion pas cher](#trouver-des-livres-techniques-doccasion-pas-cher)

## Frontend

### Agrégateurs de ressources pour le *front*

- [uxtools.co](https://uxtools.co/), un hub des outils, tendances, design pour les designer. Organisent des sondages tous les ans.
- [devtooly](https://devtooly.com/), répertorie tout un tas de ressources frontend par catégories
- [webcode.tools](https://webcode.tools/), collection d'outils en ligne pour le développement web (générateurs de code)

### Templates

Templates HTML5/CSS3 à télécharger, utiliser, modifier

- [btemplates.com](https://btemplates.com/), des templates old school de blog pour Blogger a la base
- [html5webtemplates.co](https://www.html5webtemplates.co.uk/templates)
- [htmlrev.com](https://htmlrev.com/)
- [html5up.et](https://html5up.net/)
- [templated.live](https://templated.live/)
- [templatemo.com](https://templatemo.com/)
- [zerotheme.com](https://www.zerotheme.com/)
- [html5xcss3.com](https://www.html5xcss3.com/megakit-free-bootstrap-template.html)
- [dopeui.co](https://dopeui.co/), télécharger des templates UI de grande qualité pour Figma
- [uideck.com](https://uideck.com/)
- [toolplate.com](https://www.tooplate.com/)
- [colorlib.com](https://colorlib.com/wp/templates/)
- [cruip.com](https://cruip.com/free-templates/)
- [templateMO.com](https://templatemo.com/)
- [styleshout.com](https://www.styleshout.com/free-templates/)
- [freehtml5.co](https://freehtml5.co/)
- [free-css.com](https://www.free-css.com/)
- [mashup-template.com](http://www.mashup-template.com/templates.html)
- [html5-templates.com](https://html5-templates.com/)

### Typographies/Fonts

Les *designers* se moqueront de vous si vous utilisez le mot typographie ou *typeface* au lieu de police de caractères ou *font*, et inversement. C'est du pur mépris de classe, comme lorsqu'on on vous corrige sur la différence entre URI et URL. Ne vous laissez pas faire.

Mais sachez en gros que la typographie, ou *Typeface*, c'est le design et la *Font* c'est l'implémentation de ce design en informatique. Pour faire une analogie, la *Typeface* c'est le plan d'architecte de la maison, la *Font* c'est la maison.

- [typescale](https://type-scale.com/), créer facilement un système de tailles de font à suivre
- [typography principles](https://typographyprinciples.obys.agency/alignments/), un guide pour apprendre les principes de la typo
- [fontjoy](https://fontjoy.com/), trouver facilement des combinaisons de fonts qui fonctionnent
- [google-type](https://femmebot.github.io/google-type/), trouver facilement des combinaisons de fonts qui fonctionnent
- [fontsquirrel](https://www.fontsquirrel.com/), bibliothèque de fonts libres pour usage commercial
- [fontsinuse](https://fontsinuse.com/), bilbiothèque de typos
- [fontfabric](https://www.fontfabric.com/font-tester/), tester rapidement ses fonts
- [FontZone](https://www.fontzone.net/), une archive de fonts téléchargeables et gratuites
- [fontshare](https://www.fontshare.com/)
- [Typeoff.de](https://www.typeoff.de/), le blog de Dan Reynolds, un designer et historien des typographies

Quelques lectures sur des aspects techniques de la typographie:

- [CSS Baseline: The Good, The Bad And The Ugly](https://www.smashingmagazine.com/2012/12/css-baseline-the-good-the-bad-and-the-ugly/)
- [Rule of Thirds Web Design: Using Layout Secrets ](https://designwebkit.com/web-design/rule-of-thirds-web-design/)
- [Readability and Typesetting Basics: Kerning, Tracking, Leading, and More!](https://design.tutsplus.com/articles/readability-and-typesetting-basics-kerning-tracking-leading-and-more--cms-36859)

### Palettes de couleurs

Faites votre choix

- [open color](https://yeun.github.io/open-color/), le *dictionnaire Larousse* des couleurs
- [coloors](https://coolors.co/), fouiller ce site il vous offre toute une palette d'outils incroyables autre que les palettes de couleurs
- [colorspace](https://mycolor.space/), générateur de palettes de couleurs stylé
- [css duotones](https://cssduotone.com/)
- [duotones](https://medialoot.com/duotones/), palettes duotones (deux couleurs)
- [palette ninja](https://palette.ninja/)
- [pattern background](http://www.patternify.com/)
- [palettes](https://flatuicolors.com/)
- [data color picker : palette generator](https://learnui.design/tools/data-color-picker.html)
- [huetone](https://huetone.ardov.me/), des palettes de couleurs, avec une attention apportée à l'[accessibilité](#accessibilité)
- [colorspectrum](https://colorspectrum.design/generator.html)
- [randomally](https://randoma11y.com/), générateur de combinaisons de couleurs

### Pack d’icônes/favicons

Des îcones, des icônes et encore des icônes. Faites votre choix :

- [favicon generator](https://favicon.io/)
- [icomoon](https://icomoon.io/)
- [font awesome icons](https://fontawesome.com/v4.7.0/icons/)
- [bootstrap icons](https://icons.getbootstrap.com/), plus de 1600 icônes gratuites en SVG ou webfont mis à disposition par [Bootstrap](https://getbootstrap.com/)
- [Tabler Icons](https://tablericons.com/)
- [heroicons](https://heroicons.com/)
- [iconshock](https://www.iconshock.com/)
- [phosphor icons](https://phosphoricons.com/)
- [vertex](https://vertex.im/), icônes 3D customizables
- [icons8](https://icons8.com/)
- [pixelarticons](https://pixelarticons.com/), des icônes en pixelart

### Images: photos, illustrations, svg

- [unsplash](https://unsplash.com/)
- [pexels](https://www.pexels.com/fr-fr/)
- [drawkit](https://drawkit.com/)
- [undraw](https://undraw.co/)
- [compresseur](https://squoosh.app/)
- [noun project](https://thenounproject.com/)
- [fake images please?](https://fakeimg.pl/)
- [freepik](https://www.freepik.com/)
- [profile pic Maker](https://pfpmaker.com/), faire une photo de profil classe à partir de "n'importe quelle photo"
- [blush.design](https://blush.design/fr)
- [story-set](https://storyset.com/), customization/animation d’illustrations
- [dover collection series](https://fr.wikipedia.org/wiki/Dover_Publications), des séries de gravures sur bois magnifiques sur tous les thèmes (motifs, plantes, mobilier, ornements de toutes les époques et style, animaux etc...). Une vraie boîte de pandore, et la totalité de ces illustrations sont libérées du droit d'auteur, donc vous pouvez les utiliser, les modifier etc..

### Générateurs/Templates CSS

- [gloweffect](https://codersblock.com/blog/creating-glow-effects-with-css/), générer des glow effects
- [underline generator](https://underline-generator.netlify.app/)
- [ribbon generator](https://www.cssportal.com/css-ribbon-generator/), créez vos rubans
- [3dbookcovergenerator](https://3dbookcovergenerator.netlify.app/), créez des visuels 3D de livres à partir d'une image
- [button generator](https://markodenic.com/tools/buttons-generator/)
- [simple.css](https://github.com/kevquirk/simple.css), un template css sans classe pour prototyper un site markup stylé rapidement.
- [new.css](https://github.com/xz/new.css), un framework css sans classe utilisant uniquement les sélecteurs de balise HTML et qui pèse 4.8kb
- [houdini.how](https://houdini.how/)
- [hover.css](http://ianlunn.github.io/Hover/), collection d'effet *hover* CSS
- [min-max-calculator](https://min-max-calculator.9elements.com/), créer des mise à l'échelle de votre font en fonction de la taille du displayport

### Générateur d'assets au format SVG

- [getwaves](https://getwaves.io/), faites des vagues
- [blobmakers](https://www.blobmaker.app/), créer des formes uniques et organiques en svg rapidement
- [clip path maker](https://bennettfeely.com/clippy/), créer des svg de manière interactive
- [fancy border radius](https://9elements.github.io/fancy-border-radius/full-control.html)
- [haeiki](https://haikei.app/), générer des assets svg

### Motifs

- [patternify](http://www.patternify.com/), générateur de motifs CSS

### Animations CSS (keyframes API) ou JS

Expérimenter et créer des animations CSS

- [Animista](https://animista.net/), expérimentez les animations CSS
- [Pictogon](https://pictogon.com/), images interactives
- [keyframes animate](https://keyframes.app/animate/)
- [wait !](https://waitanimate.wstone.uk/), des animations à jouer pendant le chargement d'une ressource ou la fin d'un processus pour faire patienter l'utilisateur
- [lottie](https://airbnb.design/lottie/)
- [zzz.dog](https://zzz.dog/), des animations rondes, a plat, pseudo 3D
- [haikuanimator](https://www.haikuanimator.com/)

### Extraits de code sur étagère

Marre de réinventer la pelouse ? Besoin d'être productif ou d'inspiration ?

- [codepad](https://codepad.co/), code snippets dans tout un tas de langages et composants pour le front (html,css,js)
- [snipplr](https://snipplr.com/)
- [web code tools](https://webcode.tools/), des outils clés en mains pour le développement web
- [code my ui](https://codemyui.com/), inspirations et code snippets pour le web design/ui
- [cssui](https://www.cssui.dev/), composants interactifs en CSS (sans JS)

### Gradients

- [CSS Gradient](https://cssgradient.io/), un générateur de gradient
- [grainy gradients playground](https://t.co/MtQzCPpwr5), un générateur de gradients pointillistes

### Générateur de mise en page / *layouts*

- [layout generator](https://grid.layoutit.com/)
- [flexbox builder](https://flexbox.webflow.com/)

### Courbes de Bézier

- [cubic-bezier](https://cubic-bezier.com/#.17,.67,.83,.67)
- [The Engineering behind Figma's Vector Networks](https://alexharri.com/blog/vector-networks), de Alex Harri (2019), décrivant l'approche unique utilisée par Figma pour leur outil de courbes de Bézier. Contient une section très ludique sur le fonctionnement des courbes de Bézier

### JS

- [magic grid](https://github.com/e-oj/Magic-Grid)
- [scroll reavel](https://scrollrevealjs.org/), animer le scrolling de vos pages webs
- [three.js](https://threejs.org/), animation 3D dans le navigateur, basé sur WebGL
- [anime.js](https://animejs.com/)
- [greensock](https://greensock.com/), créer de l'animation engageante pour votre site
- [mo.js](https://mojs.github.io/)
- [velocity.js](https://velocity.org)

### Backgrounds

- [pattern background](http://www.patternify.com/)
- [stripes generator](https://stripesgenerator.com/)

### Pixel art

- [pixel art to css](https://t.co/6eyHLm8PUE)

### Agrégateurs de design, inspiration

- Votre vie
- Les affiches dans la rue
- Le web !
- [wayback machine](https://web.archive.org/), quoi de mieux que de fouiller dans les archives du web et de parcourir tous ces sites qui n'existent plus ?
- [Web Design Museum](https://www.webdesignmuseum.org/), découvrez et inspirez-vous des tendances en webdesign parfois oubliées (et qui reviennent, souvent, à la mode)
- [Le design brutaliste (qui revient à la mode)](https://brutalist-web.design/)
- [cern](https://worldwideweb.cern.ch/browser/), un aperçu du premier navigateur web WorldWideWeb
- [first website](http://info.cern.ch/hypertext/WWW/TheProject.html), première page web publique du web
- [webpagesthatsuck](http://www.webpagesthatsuck.com/), des designs jugés horribles qui peuvent servir d'inspiration
- [brutalistwebsites](https://brutalistwebsites.com/), une collection de sites dont le design se revendique du mouvement [brutaliste](https://fr.wikipedia.org/wiki/Brutalisme)
- [land-book](https://land-book.com/)
- [onepagelove](https://onepagelove.com/)
- [awwwards](https://www.awwwards.com/)
- [screenlane](https://screenlane.com/)
- [webdesign inspiration](https://www.webdesign-inspiration.com/fr/)
- [dribble](https://dribbble.com/)
- [landingfolio](https://landingfolio.com/?offset=1), designs de landing pages
- [ui garage](https://uigarage.net/)
- [collect ui](https://collectui.com/)
- [behance](https://www.behance.net/), explorez le monde de la création
- [admiretheweb](https://www.admiretheweb.com/)
- [lapa.ninja](https://t.co/PDsqFU39on), templates de landind pages, accès à des livres gratuits pour les designers
- [landing-page-examples](https://www.btw.so/marketing/landing-page-examples)
- [cssnectar](https://cssnectar.com/), nectar du web design
- [siteinspire](https://www.siteinspire.com)
- [Le design Memphis : le mouvement qui a défini les années 80](https://99designs.fr/blog/histoire-design-genres-mouvements/design-memphis/), un bon article sur le design Menphis

### Composants

- [accordion slider generator](https://accordionslider.com/)
- [navbar generator](http://www.menucool.com/css-menu)
- [button](https://www.bestcssbuttongenerator.com/)
- [loader](https://loading.io/), des loaders
- [uiball.com/loaders](https://uiball.com/loaders/), des loaders
- [Froala Design Blocks](https://froala.com/design-blocks/), une banque de composants prêt à l'emploi

### UI/UX

- [figma](https://www.figma.com/), actuellement le meilleur éditeur de design (webapp/desktop) gratuit
- [checklistdesing](https://www.checklist.design/), une collection des meilleures pratiques de design web
- [laws of UX](https://lawsofux.com/), une autre collection des meilleures pratiques en design web, très bien faite, avec un résumé de ce qu'il faut retenir sur chaque post
- [design principles](https://principles.design/)
- [uiplaybook](https://uiplaybook.dev/), un dictionnaire des composants webs (fonction, bonnes pratiques, implémentation etc..)
- [UX challenges](https://uxtools.co/challenges), exercices d'UX
- [future learn](https://www.futurelearn.com/courses/digital-skills-user-experience), apprendre l'ux, maintenu par Accenture
- [baselinehq](https://baselinehq.com/), un bootcamp gratuit produit par des professionnels
- [springboard](https://www.springboard.com/resources/learning-paths/user-experience-design/), apprendre l'ux/ui
- [UXMTYHS](https://uxmyths.com/), collection des erreurs de conception en UX avec des explications sur le pourquoi
- [Google UX Design](https://www.coursera.org/professional-certificates/google-ux-design#courses=)
- [Decathlon figma](https://www.figma.com/@decathlon), Decathlon a ouvert au domaine public tout son système de design

### Sitemap

- [octopus](https://octopus.do/), un outil en ligne pour construire le sitemap (architectures des pages, composants) de son projet

### DOM

- [testing playground](https://testing-playground.com/), tester vos interactions avec le DOM dans un environnement dédié

### Quelques références tierces

- [w3schools](https://www.w3schools.com/), une bonne référence. On y trouve toutes les ressources pour apprendre le développement web, surtout côté navigateur
- [css grid](https://css-tricks.com/snippets/css/complete-guide-grid/)
- [flexbox](https://css-tricks.com/snippets/css/a-guide-to-flexbox/)
- [css selectors](https://www.w3schools.com/cssref/css_selectors.asp)
- [how to draw an svg in Inscape](https://www.youtube.com/watch?v=PSl1c6kYfHs), un tutoriel qui explique bien comment faire un svg à partir d'une image bitmap

### Apprendre le web design

- [Learn Design](https://www.figma.com/resources/learn-design/), série de cours proposés par Figma
- [hackdesign](https://hackdesign.org/)
- [Web Design Tips for Beginners: The Ultimate Guide](https://studywebdevelopment.com/web-design-tips.html)

### Check, check, check

#### Code

- [The W3C Markup Validation Service](https://validator.w3.org/), valider le code source de vos pages web
- [Can i use ...](https://caniuse.com/)

#### Est-ce-que j'ai oublié un truc ?

- [Landing Page Checklist](https://landingpage.fyi/landing-page-checklist.html), des ressources pour votre landing page et s'assurez de n'avoir rien oublié d'important
- [Front-end checklist](https://frontendchecklist.io/)
- [unused-css](https://unused-css.com/), détecte le CSS non utilisé sur une page web
- [Checklist Design](https://www.checklist.design/), une collection des meilleurs pratiques de design. Pour chaque composant, cochez une à une les cases d'un checklist pour voir si vous n'avez rien oublié (page login, page 404, flot de paiement, logo etc... )
- [faviconcheck](https://faviconcheck.30apps.me/), vérifier comment rend vos favicons sur différents os, navigateurs ou thèmes

#### Accessibilité

> L'[accessibilité du web](https://fr.wikipedia.org/wiki/Accessibilit%C3%A9_du_web) est la problématique de l'accès aux contenus et services web par les personnes handicapées et plus généralement par tous les utilisateurs, quels que soient leurs dispositifs d’accès ou leurs conditions d’environnement.

- [Premiers pas pour rendre un site Web accessible](https://www.w3.org/WAI/gettingstarted/Overview), une liste de tutoriels de la W3C pour rendre votre site web plus accessible
- [Design and Develop Overview ](https://www.w3.org/WAI/design-develop/), sujets, tutoriels et conseils pour rendre votre site web plus accessible
- [WebAIM: web accessibility in mind](https://webaim.org/), vérifier et se documenter sur l'accessibilité du web pour les personnes souffrant de handicap
- [Sensible Forms: A Form Usability Checklist](https://alistapart.com/article/sensibleforms/), améliorer l'accessibilité des formulaires HTML

#### Perfs et config

- [pingdom](https://tools.pingdom.com), tester le temps de chartement d'une page et obtenir un diagnostic
- [pingtest](https://tools.keycdn.com/ping), ping un nom de domaine depuis plusieurs positions sur le globe
- [whatsmydns.net](https://www.whatsmydns.net/), visualiser la propagation sur les serveurs DNS de votre enregistrement DNS
- [intodns](https://intodns.com/), vérifier votre config DNS (serveur web, serveur mail,etc.)
- [WebPageTest](https://www.webpagetest.org/), un projet open-source soutenu par Google avec un focus sur le network. Au top
- [measuring page weight](https://mobiforge.com/design-development/measuring-page-weight), un article (en anglais sorry, j'essaierai de trouver un article équivalent en fr) qui discute de la façon dont est calculé le poids d'une page et la recherche d'un standard. Liste également tous les outils populaires pour faire des mesures

#### Analyse de texte

- [word-counter](https://freecodetools.org/word-counter), donne des métriques sur un texte (nombre de mots, caractères, paragraphes etc..)

#### Contraste

- [color contrast checker](https://coolors.co/contrast-checker/495057-ffffff)
- [WebAIM contrast checker](https://webaim.org/resources/contrastchecker/)

## Comme évaluer la *santé* d'un dépôt ?

Quelques conseils pour *se faire une idée* de la *santé* d'un dépôt ou d'une bibliothèque, à savoir est-ce que j'en ai vraiment besoin ? Si oui, pourquoi ? Est-ce que ce dépôt est maintenu ou abandonné ? Est-ce qu'il y a une communauté derrière active et prête à dépanner ? Est-ce que cette dépendance de mon projet va casser dans 6 mois ?

Aller sur le dépôt puis
- Regarder s'il y a une documentation. S'il n'y en a pas, fuyez !
- Regarder si la documentation est à jour. Si ce n'est pas le cas, vous allez souffrir.
- Regarder la date du dernier commit
- Regarder le nombre d'issues ouvertes et à quelles dates les dernières ont été ouvertes. Qu'il y ait un grand nombre d'issues en soit n'est pas vraiment un problème. Au contraire, cela témoigne de l'activité du dépot, de son usage et peut-être de son utilité. Ce qui compte c'est *est-ce qu'on répond à ces issues*
- Regarder depuis combien de temps les contributeurs du dépot n'ont pas répondu à une issue
- Regarder le nombre de stars/fav (attention, métrique pas toujours pertinente)
- Regarder le nombre de contributeurs
- Regarder le nombre de pull requests en attente, idem que pour les issues
- Trouver une coquille dans le README et faites une Pull Request pour la corriger (un espace qui manque, une ponctuation, peu importe). Observer le temps de réaction des contributeurs du dépôt. Cela donne une bonne mesure de son activité. (Merci à [@frozar](https://github.com/frozar) pour cette technique) Essayez donc sur ce dépôt !
- Essayer de trouver une communauté en ligne (site, wikis, IRC, Discord etc...) Dites bonjour, si on vous répond pas mieux vaut passer son chemin.
- Est-ce que le projet est versionné ? C'est important pour savoir exactement de quelle version dépend notre projet, traquer les changements rétrocompatibles ou non etc..

## Environnements d'apprentissage interactifs

### git

- [learngitbranching](https://learngitbranching.js.org/?locale=fr_FR), apprendre git via une appli web interactive

### CSS grid

- [griddy](https://griddy.io/)

### JS

- [JavaScript Visualizer 9000](https://www.jsv9000.app/), apprendre JS en visualisant le fonctionnement de son moteur (queue, stack, event loop etc.)

### Algorithmes

- [algorithm-visualizer](https://algorithm-visualizer.org/), apprendre à programmer des algorithmes tout en les visualisant

## SEO

- [siteliner](https://siteliner.com/), trouver le contenu dupliqué sur votre site (et supprimez le !)
- [Carrousels de données structurées (beta)](https://developers.google.com/search/docs/appearance/structured-data/carousels-beta?hl=fr), Google utilise des données structurées pour comprendre le contenu de la page et le présenter sous une forme plus riche dans les résultats de recherche (ce que l'on appelle un résultat enrichi). Ce guide se concentre sur un nouveau résultat enrichi de type carrousel, disponible en version bêta (2024)

## Analytics

- [splitbee](https://splitbee.io/)
- [clearbit](https://clearbit.com/resources/tools/visitor-report)
- [fathom](https://usefathom.com/), analytique de site web simple, privacy-first, sans cookie et respecant la GDPR, bonne alternative à Google Analytics
- [calendly](https://calendly.com/fr/), planification de rendez-vous et réunions
- [Pirsch](https://pirsch.io/), une solution analytics open souce et sans cookie pour votre site web

## API publiques

### Divers

- [weatherstack](https://weatherstack.com/)
- [fakerapi](https://fakerapi.it/en/)
- [wordsapi](https://www.wordsapi.com/)
- [catfacts](https://alexwohlbruck.github.io/cat-facts/)
- [openweather](https://t.co/pi4UPqQfMx),
- [nasa api](https://api.nasa.gov/), photos prises par la NASA
- [movieDB api](https://www.themoviedb.org/documentation/api), api pour les films, séries, émissions
- [JSONPlaceholder](https://jsonplaceholder.typicode.com/), une api qui sert du JSON pour le test/dev
- [rapid api](https://rapidapi.com/blog/most-popular-api/), recense et documente tout un tas d'api à utiliser, pour aller en trouver encore d'autres
- [open food facts](https://fr.openfoodfacts.org/data), API de produits alimentaires
- [Open library API](https://openlibrary.org/developers/api), l'API d'[Open Library](https://openlibrary.org/), un projet d'[Internet Archive](https://archive.org/), pour travailler sur les livres, auteurs, couvertures de livres, etc.

### Opendata/France

- [data.gouv](https://www.data.gouv.fr/fr/), liste des apis de données publiques maintenues par l'état
- [api.gouv.fr](https://api.gouv.fr/rechercher-api), rechercher une api parmi toutes les api du service publique
- [Données temps réel pour les transports en commun](https://api.gouv.fr/les-api/temps_reel_transport), un exemple d'api publique (voir lien précédent) sur les données du transport en commun
- [pappers](https://www.pappers.fr/api), une api pour les données sur les entreprises

- [voir depot plus bas](#api)

## Générateur de fausses données

- [random users](https://xsgames.co/randomusers/)

## Wordpress

### Un mot

En 2021 on comptait [environ 455 000 000 sites Wordpress](https://techjury.net/blog/percentage-of-wordpress-websites/). Cela représente *au moins 30% du web*, mais en réalité plutôt *40%* (estimation haute).

Wordpress est un framework parfaitement adapté pour *gérer et publier* du contenu sur Internet. C'est un outil versatile qui peut être adapté pour toute taille de projet. Si Wordpress peut être utilisé pour *tout faire*, il n'est pas *toujours* la solution la plus adaptée !

Ce framework existe depuis 2004, dans le monde du logiciel libre c'est une éternité.

Wordpress est développé et pensé *pour l'utilisateur* (celui qui publie et gère le contenu), et non pour le développeur. Les utilisateurs se moquent bien de nos outils tant qu'ils ont ce qu'ils demandent. Wordpress, à l'instar de LibreOffice ou autre, est devenu un standard de gestion de contenu en ligne que beaucoup de personnes non-techniciennes connaissent bien, utilisent quotidiennement et demandent. C'est donc un énorme avantage de capitaliser dessus pour les futurs utilisateurs de votre application web.

### Doc officielle wordpress.org

Très bien faite, mais peut parfois demander un peu d'experience pour s'y retrouver. Ne pas oublier que de documenter un immense framework qui évolue sans cesse est un immense challenge en soi.

- [Codex](https://codex.wordpress.org/)
- [Wordpress hierarchy](https://developer.wordpress.org/themes/basics/template-hierarchy/)
- [Wordpress coding standards](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/)
- [Template tags](https://codex.wordpress.org/Template_Tags)
- [Using Permalinks](https://wordpress.org/support/article/using-permalinks/)
- [Data Sanitization/Escaping](https://developer.wordpress.org/themes/theme-security/data-sanitization-escaping/#escaping-with-localization)
- [Localization](https://developer.wordpress.org/apis/handbook/internationalization/localization/)
- [Make Wordpress](https://make.wordpress.org/), un hub centralisés de ressources pour les développeurs Wordpress

### Articles

- [WordPress Taxonomies: The Ultimate Guide](https://ithemes.com/blog/wordpress-taxonomies)
- [WordPress Permalinks: The Essential Guide](https://ithemes.com/blog/wordpress-permalinks)

### Livres de développement Wordpress

A télécharger sur [pdfdrive](https://www.pdfdrive.com/):

- *[Professional WordPress: Design and Development](https://www.pdfdrive.com/wrox-press-professional-wordpress-design-and-development-3rd-e30698942.html)* de Brad Williams et David Damstra, Edition Wrox, 3rd Edition, 2015
- *[Professional WordPress Plugin Development](https://www.pdfdrive.com/professional-wordpress-plugin-developmen-4074kb-jun-27-2012-120000-am-e42772568.html)* de Brad Williams et Justin Taldock, Edition Wrox, 2nd Edition, 2020
- *[Modern PHP: new features and good practices](https://www.pdfdrive.com/modern-php-e34337192.html)*, Josh Lochart, Edition O'REILLY, 2015

### Épisodes de podcasts sur Wordpress

- [070: All things WordPress](https://phproundtable.com/episode/all-things-wordpress), [Tessa Kriesel](https://twitter.com/tessak22?s=20&t=L4nTJJGyh2w5UbPY7aDo9g) présente ici l'état et le futur de Wordpress ainsi que l'histoire de son développement
- [The thing about Wordpress](https://podcast.htmlallthethings.com/e/the-thing-about-wordpress/), Matt y discute des avantages et inconvénients de Wordpress en tant que développeur. Tout ce qui est discuté ici est pertinent

### Podcasts dédiés à Wordpress

- [dradcast](http://dradcast.com/)
- [wp watercooler](https://wpwatercooler.com/)

### Formations

- [Cours wordpress.org](https://learn.wordpress.org/courses)
- [Building websites with WordPress](https://nmiletic.gumroad.com/l/kSrqD)
- [Learn Wordpress](https://kinsta.com/learn/)
- [Wordpress for beginners training](https://yoast.com/academy/free-training-wordpress-for-beginners/)
- [How to Learn WordPress for Free in a Week (or Less)](https://twitter.com/natmiletic/status/1511711827398258695)
- [Wordpress tutorials](https://www.siteground.com/tutorials/wordpress/)
- [How to](https://wordpress.tv/category/how-to/), video
- [Our wordpress library](https://wpapprentice.com/courses/)
- [Wordpress freecodecamp](https://www.freecodecamp.org/news/tag/wordpress/)
- [Building PHP MVC Framework from Scratch](https://www.youtube.com/watch?v=WKy-N0q3WRo&list=PLLQuc_7jk__Uk_QnJMPndbdKECcTEwTA1), The Codeholic. Pas sur Wordpress mais montre les fonctionnalités de base d'un framework à implémenter

### Starter themes

- [underscores](https://underscores.me/)
- [astra](https://fr.wordpress.org/themes/astra/)
- [generate press](https://generatepress.com/)
- [tail press](https://tailpress.io/)

### Banque de thèmes

- [colorlib](https://colorlib.com/)
- [themeforest](https://themeforest.net/), des themes wordpress mais pas que

### Plugins recommandés

Le plus recommandé est *de limiter au maximum l'usage de plugins pour vos thèmes*. Cela dit certains plugins stables et bien maintenus sont souvent de la partie pour des sites en production

- [ewww image optimizer](https://wordpress.org/plugins/ewww-image-optimizer/)
- [bulletProof Security](https://wordpress.org/plugins/bulletproof-security/), bonne alternative à WordFence
- [carbon fields](https://carbonfields.net/), alternative gratuite à ACF Pro
- [fakerpress](http://fakerpress.com/r/github), générateur de faux contenu pour tester son thème
- [RankMath](https://rankmath.com/fr/), plugin SEO, bonne alternative à [Yoast](https://yoast.com/)
- [BuddyPress](https://wordpress.org/plugins/buddypress/), plugin pour ajouter une couche réseau social à votre site
- [bbPress](https://wordpress.org/plugins/bbpress/), gestionnaire de forums/fils de discussion
- [W3 Total Cache](https://wordpress.org/plugins/w3-total-cache/), un plugin pour optimiser les performances de Wordpress, complètement agnostique de l'hébergeur. Mise en cache des pages webs etc... Au final, améliore l'experience utilisateur et le SEO de votre site. Vérifiez que votre hébergeur ne vous propose pas déjà un plugin de mise en cache maison avant de l'installer sur votre site en prod

## Articles sur la pratique de WordPress et son évolution vers le FSE

- [Testing and Feedback for using block based template parts in classic themes](https://make.wordpress.org/themes/2022/09/12/testing-and-feedback-for-using-block-based-template-parts-in-classic-themes/)
- [The Imaginary Block-vs-Classic Battle in WordPress](https://masterwp.com/the-imaginary-block-vs-classic-battle-in-wordpress/)

## Hébergement gratuit

- [Neocities](https://neocities.org/), [Neocities](https://fr.wikipedia.org/wiki/Neocities) est un hébergeur web ayant pour objectif de faciliter la création de sites internet personnels afin d'offrir une alternative aux réseaux sociaux. Il s'inscrit dans la continuité du légendaire [Geocities](https://www.lemonde.fr/technologies/article/2010/11/02/la-memoire-de-geocities-compilee-en-un-fichier_1434450_651865.html), un ancien service d'hébergement web gratuit fondé en 1994, fermé en 2009
- [GitHub Pages](https://pages.github.com/), GitHub offre la possibilité d'héberger un site statique
- [Free web hosting](https://www.infinityfree.net/), héberger vos sites webs **PHP,MySQL** (ou HTML) hébergé gratuitement et sans pub. Pas de limites de sites, nom de domaine gratuit ou ajouter le votre. 5GB d'espace libre, bande passante illimitée, SSL gratuit
- [AwardSpace](https://www.awardspace.com/free-hosting/), plans d'hébergement gratuits chez [awardspace](https://www.awardspace.com/), même idée que précédent

## Mots de passe

### Gestionnaire de mots de passe

- [KeePassXC](https://keepassxc.org/), les navigateurs proposent de sauvegarder vos mots de passe. Mais ils ne sont pas conçus pour ça et ce n'est pas l'idéal d'un point de vue sécurité. Mieux vaut utiliser un gestionnaire de mots de passe sur votre machine pour les accès sensibles. KeePassXC est un gestionnaire de mots de passe multiplateforme et open-source. Il stocke vos mots de passe dans une base de données cryptée et respecte les standards. Il offre également tout un tas d'autres fonctionnalités. Il vient même [avec une extension pour votre navigateur favori](https://keepassxc.org/docs/KeePassXC_GettingStarted.html#_configure_keepassxc_browser) qui se connecte à votre base de données de mots de passe et (essaie) de remplir automatiquement les formulaires de login.

### Générateur de mots de passe

- [xkpasswd](https://xkpasswd.net/s/), créer des mots de passes sécurisés ET faciles à retenir (si vous devez le faire)

## Starterpacks

### Environement de développement

- [Environement de développement docker+reverse proxy pour un workflow multiprojets + starter pack](https://github.com/websealevel/starterpack-front-php8-postgresql-adminer)

## Git

- [inside .git](https://wizardzines.com/comics/inside-git/), comic strip de [Julia Evans](https://twitter.com/b0rk) sur le système de fichiers interne de git

### Client git

Une fois qu'on maîtrise git dans ses grandes lignes (c'est important de commencer en mode CLI pour bien se familiariser avec son fonctionnement), si on a plus envie de taper tout un tas de commandes

- [github desktop](https://desktop.github.com/), un client git développé par github, naturellement adapté pour vos dépots remote sur github mais pas que. Windows/Mac
- [github desktop-linux fork](https://github.com/shiftkey/desktop), la même mais porté sur linux
- [sourceTree](https://www.sourcetreeapp.com/), un autre client mais dispo que sur Windows et Mac :/

## Déploiement

- [FileZilla](https://filezilla-project.org/), le client ftp/sftp open source par excellence (évitez de devoir déployer en ftp, il y a de meilleures alternatives pour moins de charge mentale). ça dépanne toujours
- [Capistrano](https://capistranorb.com/), un outil pour déployer automatiquement sur un serveur distant, avec gestion de version, rollbacks etc... Pour un déploiement sans stress

## Simulateur de terminal

- [cmder](https://cmder.net/), un émulateur de console rassurant pour Windows. **On lui préférera aujourd'hui le** [WSL2](https://learn.microsoft.com/fr-fr/windows/wsl/install)

## Mouvement NoCode, outils *visual code* (*no-code* ou *low-code*)

- [No Code Summit](https://www.nocode-summit.org/fr/), conférence organisée par l'Union Française des Professionnels du NoCode qui fédère et représente les professionnels du NoCode et du LowCode
- [No-Code France](https://nocode-france.fr/), association et espace communautaire francophone dédié au No-Code (slack, chaîne YouTube, veille, meetups)
- [Makerpad](https://makerpad.zapier.com/), communauté consacrée au NoCode (tutoriels, posts, veille), crée en 2018
- [Webflow University](https://university.webflow.com/), des cours sur le développement de site webs avec Webflow
- [Bubble Academy](https://bubble.io/academy), la source principale de guides pour développer avec Bubble
- [La gazette du No-Code](https://gazette.nocode-france.fr/index.html), un média 100% NoCode dédiée au NoCode (portraits, actualitiés, interviews, tests d'outils, etc.)

## Quitter Github

Le 29 Juin 2022, le *software freedom conservancy* [a publié un article incitant à abandonner GitHub](https://sfconservancy.org/GiveUpGitHub/) pour se tourner vers des plateformes d'hébèrgement de codebase plus respectueuses de l'open-source et des utilisateurs.

L'article mentionne les raisons très claires de cette initiative et alerte sur la dérive du logiciel propriétaire GitHub. GitHub a porté un coup de grâce [en monétisant l'outil copilot entraîné sur les dépôts des utilisateurs sous licence libre (mais non sur les codebases de Windows)](https://sfconservancy.org/blog/2022/feb/03/github-copilot-copyleft-gpl/) et en laissant lettre morte les revendications et questions adressées par la communauté.

**Souscrivant à la vision et aux arguments du *software freedom conservancy*, cette liste sera migrée prochainement vers une autre plateforme.**

Des alternatives existent et vont se créer. Voici une liste de plateformes alternatives

- [codeberg](https://codeberg.org/)
- [sourcehut](https://sourcehut.org)

Sinon vous pouvez mettre en place vous même votre hebergement de gestionnaire de projets à l'aide de ces outils

- [gitea](https://gitea.io/en-us/)
- [sourcehut](https://sourcehut.org)

## Logiciels *open-source* et *logiciels libres* (free software)

- [gnu.org](https://www.gnu.org/), le site officiel de l'OS GNU/Linux et par extension du mouvement du logiciel libre. Vous y trouverez toutes les informations pratiques sur le libre
- [opensourcealternative](https://www.opensourcealternative.to/), trouver une solution alternative open-source à ...
- [degooglisons-internet](https://degooglisons-internet.org/fr/), remplacer tous vos services tiers propriétaires par du libre (partage de fichiers, communication...)
- [Framasoft](https://framasoft.org/fr/), association d'éducation populaire soutenant plusieurs projets open-source dont Framalibre
- [flop!EDT](https://flopedt.org/), gestionnaire d'emploi du temps personnalisé open-source
- [Framalibre](https://framalibre.org/), l'annuaire des logiciels libres
- [librejs](https://www.gnu.org/software/librejs/), une extension pour navigateur pour bloquer uniquement l'execution du JavaScript non libre
- [Le piège JavaScript, Richard Stallman (traduction fr)](https://www.gnu.org/philosophy/javascript-trap.html), article de Richard Stallman traduit en français sur les problèmes que posent l'execution de code Javascript dans le navigateur vis à vis du logiciel libre et de son éthique
- [En quoi l'open source perd de vue l'éthique du logiciel libre](https://www.gnu.org/philosophy/open-source-misses-the-point.html), article originellement publié par Richard Stallman sous le titre *Why Open Source Misses the Point of Free Software*. Pour bien comprendre les différences philosophiques et pratiques dans des cas très concrets entre les deux mouvements

## Capture/Édition vidéo

- [Pitivi](https://www.pitivi.org/tour/), très bon éditeur vidéo open-source, simple à utiliser, avec beaucoup de fonctionnalités avancées et puissant (notamment à l'export impeccable)
- [unscreen](https://www.unscreen.com/), retirer l'arrière plan d'une vidéo en ligne (automatique)
- [ffmpeg](https://ffmpeg.org/), collection de logiciels libres maintenus depuis les années 2000 pour manipuler les flux audio et vidéo. Indispensable
- [HandBrake](https://handbrake.fr/), un converteur vidéo open source pour convertir et compresser vos vidéos en utilisant les meilleurs algorithmes de compression
- [Shrink my video!](https://acailly.github.io/shrink-my-video/), un outil en ligne pour compresser facilement vos vidéos (préférer handbrake pour faire tout le travail en local si possible)
- [SimpleScreenRecorder](https://www.maartenbaert.be/simplescreenrecorder/), un très bon logiciel, simple et complet, de capture vidéo de son écran et du son, parfait pour enregistrer des screencasts et des tutos.
- [OBS Studio](https://obsproject.com/fr), logiciel libre d'enregistremetn vidéo et de streaming en direct multiplateforme

## Principes généraux et fondamentaux

- [What Every Programmer Should Know About Floating-Point Arithmetic](https://floating-point-gui.de/)

## Standards

### Organismes

Une liste non exhaustive d'organismes qui implémentent et maintiennent les standards ouverts dans différents domaines de l'informatique.

- [OASIS OPEN](https://www.oasis-open.org/), groupe de collaboration (individus, entreprises, gouvernements, etc.) en charge de l'implémentation et de la maintenance de standards informatiques ouverts, comme DITA, DocBook, OData, OpenDocument, etc. [Voir tous les projets ici](https://www.oasis-open.org/projects-committees/).
- [W3C](https://www.w3.org/), le *World Wide Web Consortium*, en charge de maintenir et développer les standards ouverts du Web.
- [WHATWG](https://whatwg.org/), le *Web Hypertext Application Technology Working Group* est un groupe de collaboration qui travaille sur la standardisation des navigateurs webs ([voir ici les standards](https://spec.whatwg.org/) sur lesquels ce groupe travaille) et des standards associés comme le protocole WebSocket, le Storage, XMLHttpRequest, etc. C'est un groupe qui a été formé en 2004, suite à un atelier organisé par le W3C, par des personnes travaillant chez Apple, Mozilla et Opera. Il a été crée en réponse au fait que le W3C partait un peu en cavalier seul sur le futur du standard HTML avec XHTML (qui au final a donné HTML5) sans prendre assez en compte l'état de l'industrie du développement informatique. Il représente surtout le côté industrie du web et les *vendor* de navigateur web, et cherche à accélérer le développement des standards pour les implémenter rapidement, *pour le meilleur et pour le pire* (surtout le pire). Aujourd'hui Google et Microsoft ont rejoint ce groupe et il travaille en collaboration avec le W3C dont certains membres en font également partie.
- [Internet Engineering Task Force (IETF)](https://www.ietf.org/), L’[Internet Engineering Task Force (IETF)](https://fr.wikipedia.org/wiki/Internet_Engineering_Task_Force), élabore et promeut des standards Internet, en particulier les standards qui composent la suite de protocoles Internet (TCP/IP). L'IETF produit la plupart des nouveaux standards d'Internet. Le but du groupe est généralement la rédaction d'une ou plusieurs [Request for comments (RFC)](#request-for-comments-rfc-drafts-et-w3c), nom donné aux documents de spécification à la base d’Internet.
- [Open Container Initiative (OCI)](https://opencontainers.org/), gouvernance pour maintenir et garantir des standards ouverts sur les formats de conteneurs et de leurs environnement d'exécution. En font partie Docker Inc., Red Hat, Google, etc.

### SGML

SGML est un métalangage à balise pour définir des langages à balise (markup langages). SGML est à l'origine de tous les langages à balise, comme HTML ou XML qui en sont des *applications*.

- [A brief SGML tutorial ](https://www.w3.org/TR/WD-html40-970708/intro/sgmltut.html)

### XML

#### Un mot sur le XML

Le standard [XML](https://www.w3.org/XML/) (*eXtensible Markup Language*) est extrêmement puissant pour construire des documents robustes, échangeables et faciles à maintenir (lire et écrire) dans le temps. Contrairement aux idées reçues, il n'est pas *mort* et [n' a pas vocation à être remplacé par JSON](https://codepunk.io/xml-vs-json-why-json-sucks/) car les deux standards n'ont pas du tout la même histoire, ni les mêmes ambitions. Loin de là...

XML est un format universel pouvant être lu facilement par des humains et par des machines. XML est né en 1998 du standard SGML (qui a donné l'*application HTML*, un sous-ensemble du standard SGML, plus simple et plus permissif adapté au web). XML est également une simplification du standard SGML.

Son but initial était de faire office de standard pour conserver les documents numériques dans un format indépendant des machines, des OS ou des supports physiques. L'idée du W3C était de créer un standard qui permettra de lire votre document sur une techno inconnue dans 2000 ans. C'est un projet fascinant. Il était avant tout destiné à des documents narratifs (rapports, articles, catalogues). Il est basé sur la séparation stricte du contenu et de la forme.

Les développeurs s'en sont emparés ensuite pour faire du maintien d'enregistrement pour leurs applications, ce qui n'avait pas été envisagé dans sa conception initiale.

XML s'accompagne d'autres standards comme

- [XPath](http://www.xmlfacile.com/guide_xml/xpath_1.php5), un standard qui permet de requêter la structure XML pour naviguer dans la structure de données et la manipuler
- [XQuery](https://www.w3schools.com/xml/xml_xquery.asp), un standard qui permet de reqûeter l'abre via un *langage déclaratif* (le pied) comme le SQL
- [XSLT](https://www.w3schools.com/xml/xml_xslt.asp), standard plus avancé que le CSS pour mettre en forme les données XML pour la publication (vers un autre fichier XML, le web, le papier, etc.). Permet également de modifier l'affichage d'éléments, de les réorganiser etc...
- [DTD](https://www.w3schools.com/xml/xml_dtd.asp), pour la validation des données par un schéma
- et d'autres encore (XML Schema, etc.)...

Tous ces standards font d'XML un outil à avoir dans sa poche lorsque l'on a besoin d'échanger ou de construire des structures de données complexes et *validables*, ou de produire des documents indépendemment de leurs usages (web, présentation, impression papier, etc.).

#### Apprendre le XML et ses standards associés

- [XML Tutorial, W3C Schools](https://www.w3schools.com/xml/)
- [XML Facile !](http://www.xmlfacile.com/)
- [XML in a nutshell, A Desktop Quick Reference](https://www.pdfdrive.com/xml-in-a-nutshell-e54427253.html)
- [La DTD et son langage XML](https://www.cairn.info/revue-ela-2005-1-page-73.htm), article publié par [cairn.info](https://www.cairn.info/), pour le domaine de l'édition

#### Applications XML de prestige

- [Docbook](https://docbook.org/), application XML dédiée à la publication de documents, principalement des articles et des livres d'informatique mais pas que. Le projet a originellement été développé par l'éditeur O'Reilly pour ses éditeurs, il est aujourd'hui maintenu par [OASIS OPEN](https://www.oasis-open.org/), un groupe de collaboration travaillant et maintenant des standards
- [Dita Open Toolkit](https://www.dita-ot.org/), implémentation open-source du [standard Dita](https://fr.wikipedia.org/wiki/Darwin_Information_Typing_Architecture), *the Darwin Information Typing Architecture*, projet également maintenu par OASIS OPEN. C'est un framework de documentation et de publication technique où l'on va pouvoir développer et maintenir une source de vérité pour la publier vers différents formats (PDF, HTML, Markdown, etc.)

### Standard SQL et bases de données relationnelles

- [A Relational Model of Data for Large Shared Data Banks, Edgard Codd (PDF)](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwihkqWDrsz8AhXEVaQEHfgyDeIQFnoECBQQAQ&url=https%3A%2F%2Fwww.seas.upenn.edu%2F~zives%2F03f%2Fcis550%2Fcodd.pdf&usg=AOvVaw0HymNIyGsw4MDwPW98GlLb), la publication originale de [Edgard Codd](https://fr.wikipedia.org/wiki/Edgar_Frank_Codd) en 1970, père de l'[algèbre relationnelle](https://fr.wikipedia.org/wiki/Alg%C3%A8bre_relationnelle) et du modèle relationnel
- [Use the index, Luke !](https://use-the-index-luke.com/), site maintenu par Markus Winand, une référence des bases de données relationnelles. Vous trouverez sur son site une explication complète de l'optimisation et des performences des bases de données relationnelles. Le contenu est dipsonible en ligne ou en PDF.
- [Modern SQL, a lot has changed since SQL-92](https://modern-sql.com/), le site cousin du site [Use the index, Luke !](https://use-the-index-luke.com/), de Markus Winand. Aborde les évolutions les plus récentes du standard SQL
- [Le site de Markus Winand](https://winand.at/), de Markus Winand, un expert du standard SQL (et une personne à suivre si le standard vous intéresse)
- [The Mother of all Query Languages: SQL in Modern Times | Markus Winand (Conférence)](https://www.youtube.com/watch?v=swR33jIhW8Q), conférence de Markus Winand (Data Natives Berlin, 2018) sur l'état actuel du standard SQL, de l'évolutions de ses différentes implémentations (Oracle, PostgreSQL, MySQL, etc.)
- [Norme de développement (SQLSpot)](https://www.sqlspot.com/Norme-de-developpement.html), un document complet sur une proposition de conventions et les normes de développement de bases de données relationnelles. Proposé par Frédéric Brouard. Frédéric Brouard [a écrit et co-écrit des ouvrages de référence](https://www.sqlspot.com/Quelques-ouvrages-a-lire-sans-moderation.html) (Pearson Eduction, Campus Press) sur les implémentations du standard SQL, avec [Christian Soutou](https://www.eyrolles.com/Accueil/Auteur/christian-soutou-119/)
- [Normalisation des noms des objets des bases de données](https://sqlpro.developpez.com/cours/standards/), un autre document HTML plus succint sur les normes et bonnes pratiques de nommage en SQL, par Frédéric Brouard
- [Cours complet pour apprendre les systèmes de gestion de bases de données](https://sgbd.developpez.com/tutoriels/cours-complet-bases-de-donnees/), un cours complet de [Georges Gardarin](https://www.eyrolles.com/Accueil/Auteur/georges-gardarin-34/) sur les bases relationnelles
- [Les meilleurs cours et tutoriels pour apprendre le SQL](https://sql.developpez.com/), par les membres de developpez.com. Un grand nombre de cours, tutoriels, exercices sur le sujet
- Une [sélection de livres](https://sgbd.developpez.com/livres/) par les membres de developpez.com
- [Other MySQL Documentation](https://dev.mysql.com/doc/index-other.html), documentation de MySQL sur des aspects plus avancés ainsi que **des liens pour télécharger des bases de données avec des grand volumes de données** pour pratiquer sa compréhension du standard, de MySQL et des performances

## Réseau

- [Beej's Guide to Network Concepts](https://beej.us/guide/bgnet0/html/split/), un cours de Brian "Beej" Hall continuellement mis à jour depuis 1995 sur la programmation et les protocoles réseau. Exemples initialement en C, une nouvelle version est éditée en s'appuyant sur le langage Python. [Voir la version C](https://beej.us/guide/bgnet/html/split/). [Voir le site de Brian Hall](https://beej.us/guide/)
- [Service Name and Transport Protocol Port Number Registry](https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml), le registre d'assignations des ports utilisateurs par l'*Internet Assigned Numbers Regisitry* (IANA). Les numéros de port sont assignés de différentes façons, répartis en 3 catégories : Ports Système (0-1023), Ports Utilisateurs (1024-49151), Ports dynamiques ou privés (49152-65535)

## Protocoles

### TCP/IP

- [A Protocol for Packet Network Intercommunication](https://t.co/RgRJ7GcVlk), par CERF et KAHN, membre de l'IEEE. Papier à l'origine du protocole TCP/IP

### SSH

- [Secure Secure Shell](https://stribika.github.io/2015/01/04/secure-secure-shell.html)
- [The Ultimate Guide to SSH - Setting Up SSH Keys](https://www.freecodecamp.org/news/the-ultimate-guide-to-ssh-setting-up-ssh-keys/)

### HTTP

- [HTTP Caching](https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching), une synthèse sur l'implémentation du cache du protocole HTTP. Attention, [tous les navigateurs n'implémentent pas le standard au même point](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control#browser_compatibility).
- [Un tutoriel de la mise en cache](https://www.mnot.net/cache_docs/), un très bon tutoriel en français de Mark Nottingham sur la mise en cache du protocole HTTP

## OS

- [Minix 3](https://www.minix3.org/), OS développé par S. Tanenbaum dont s'est inspiré Linus Torvalds pour créer le noyau Linux. OS destiné au départ à des fins pédagogiques, notamment via le livre [Operating Systems Design and Implementation, 3rd edition](https://www.pearson.com/en-us/subject-catalog/p/operating-systems-design-and-implementation/P200000003167?view=educator)

- [Minix 3, background](https://wiki.minix3.org/doku.php?id=www:documentation:brown), un article très intéressant de Tanenbaum sur l'histoire des OS *Unix-like*, de Minix, de ses rapports avec l'équipe Unix du Bell Labs (Ken Thompson, Dennis Ritchie, Weinberger, etc.) et de Linux.

## Infrastructure

- [Load Balancing](https://samwho.dev/load-balancing/), un article bien fait avec visualisations sur les répartiteurs de charge (*load balancer*) et les différentes stratégies d'implémentation

## *Request For Comments* (RFC), *drafts* et W3C

Des documents décrivant les aspects et spécifications techniques d'Internet. La *source*, et des lectures arides mais très intéressantes quand on prend le temps de fouiller certaines sections. Certains d'entre eux définissent des standards.

- [Draft: JSON Hypertext Application Language](https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-08), par M.Kelly
- [RFC 9110: HTTP Semantics](https://www.rfc-editor.org/rfc/rfc9110)
- [RFC 3986: Uniform Resource Identifier (URI): Generic Syntax](https://www.rfc-editor.org/rfc/rfc3986.txt), par T. Berners-Lee, R.Fielding et al.
- [RFC 7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content](https://www.rfc-editor.org/rfc/rfc7231#section-3), par R. Fielding, J. Reschke
- [W3C: Cool URIs don't change](https://www.w3.org/Provider/Style/URI.html), par Tim Berners-Lee
- [W3C: Architecture of the World Wide Web, Volume One](https://www.w3.org/TR/2004/REC-webarch-20041215/), écrit par le *W3C Technical Architecture Group*, which included the following participants: Tim Berners-Lee (co-Chair, W3C), Tim Bray (Antarctica Systems), Dan Connolly (W3C), Paul Cotton (Microsoft Corporation), Roy Fielding (Day Software), Mario Jeckle (Daimler Chrysler), Chris Lilley (W3C), Noah Mendelsohn (IBM), David Orchard (BEA Systems), Norman Walsh (Sun Microsystems), and Stuart Williams (co-Chair, Hewlett-Packard).

## Unix

- [Unix programmer's manual Third Edition](https://dspinellis.github.io/unix-v3man/v3man.pdf), publié par K. Thompson et D. M. Ritchie, 1973
- [Philosophie d'Unix](https://fr.wikipedia.org/wiki/Philosophie_d%27Unix)

## REST, *Architecture of the World Wide Web*

Ressources sur les contraintes REST à la base de l'architecture du web et sur le design de web API *RESTful*

- [REST](https://gayerie.dev/epsi-poe-201703/web-services/07_rest.html), une synthèse de David Gayerie sur REST de grande qualité, avec une bibliographie utile
- [Welcome to the REST CookBook](https://restcookbook.com/)
- [How to get a cup of coffe (in REST)](https://www.infoq.com/articles/webber-rest-workflow/)
- [Architecture of the World Wide Web, Volume One](https://www.w3.org/TR/2004/REC-webarch-20041215/), publié par le W3C, 2004. La *bible* sur l'architecture du web et sur les technologies du web (HTTP, HTML et URL)
- [Schema.org](https://schema.org/), *Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for *structured data* on the Internet*. Propose une liste de schémas à suivre pour différents modèles de données
- [Microformats wiki](http://microformats.org/wiki/Main_Page), un wiki qui décrit des specifications de structure de données interopérables
- [Zalando RESTful API and Event Guidelines](https://opensource.zalando.com/restful-api-guidelines/#)
- [OpenAPI Specification](https://spec.openapis.org/oas/latest.html), *The OpenAPI Specification (OAS)* defines a standard, programming language-agnostic interface description for HTTP APIs, which allows both humans and computers to discover and understand the capabilities of a service without requiring access to source code, additional documentation, or inspection of network traffic. C'est la spécification que suit l'outil [Swagger](https://swagger.io/)
- [REST APIs must be hypertext-driven](https://roy.gbiv.com/untangled/2008/rest-apis-must-be-hypertext-driven), billet de blog de Roy T. Fiedling très intéressant sur le fait qu'une API RESTful doit être orientée *hypertexte* (ou de manière générale par les *hypermédia*)
- [JSON Hypertext Application Language draft-kelly-json-hal-08](https://datatracker.ietf.org/doc/html/draft-kelly-json-hal-08#section-8.1), HAL representation pour les modèles de données. Une proposition de standard
- [API RESTful, spécification des schémas de données *HAL*](http://amundsen.com/hypermedia/), les différents types d'hypermédia définis pour le protocole HTTP et pour construire des API plus robustes. Le livre de l'auteur [Building Hypermedia APIs with HTML5 and Node](https://learning.oreilly.com/library/view/building-hypermedia-apis/9781449309497/), Amundsen, a l'air très intéressant
- [API RESTful, spécification des schémas de données *JSON-LD 1.1*, *A JSON-based Serialization for Linked Data*](https://www.w3.org/TR/json-ld/), une autre spécification des données renvoyées par une API, soutenue et recommandée par le W3C

## Spécifiques à un langage/écosystème

### PHP

- [php.watch](https://php.watch/), news PHP, articles, changements à venir. Le blog officiel qui suit le développement de PHP
- [PHP: The Right Way](https://phptherightway.com/) référence accessible aux standards modernes de PHP
- [The PHP Foundation](https://thephp.foundation/), groupe de travail sur l'écosystème PHP. [En savoir plus](https://www.youtube.com/watch?v=JBPtPy9iSP0).
- [PHP-FIG](https://www.php-fig.org/), le PHP Framework Interop Group, à l'origine des [PSR](https://www.php-fig.org/psr/)
- [packagist](https://packagist.org/), dépôt principal des composants PHP
- [pecl](https://pecl.php.net/), le repertoire officiel des extensions de PHP ([Modernisation de la distribution et maintenance envisagée](https://externals.io/message/121927) par la communauté et initiée par la PHP Foundation et Derick Rethans)
- [PHP Usergroup](https://php.ug/), trouvez des *usergroups* PHP près de chez vous
- [Afup](https://afup.org/home), association française des utilisateurs de PHP
- [PHP Documentor](https://docs.phpdoc.org/), produire de la documentation directement à partir des sources
- [FrankenPHP](https://frankenphp.dev/), un serveur PHP moderne écrit en C et Go, maintenu par Kevin Dunglas, qui permet d'utiliser HTTP 1.1, 2 et 3, et supporte des réponses HTTP multiples. Remplace PHP-FPM
- [NativePHP](https://nativephp.com/docs/1/getting-started/introduction), framework PHP pour déployer des applications desktop, maintenu par Marcel Pociot. **Attention, outil toujours en alpha** (2023)
- [phpStan](https://phpstan.org/), l'analyseur statique (*at compile time*) du code PHP par excellence. *Find bugs without writing tests*
- [phpCodeSniffer](https://github.com/squizlabs/PHP_CodeSniffer), l'outil par excellence pour appliquer des standards de manière semiautomatisé à son code source. Composé de deux programmes: phpcs pour sniffer les erreurs dans votre code et phpcbs pour corriger automatiquement ce qui peut l'être.
- [Le blog de Fabien Potencier](http://fabien.potencier.org/)
- [Le blog de Kévin Dunglas](https://dunglas.dev/), membre core de Symfony, mainteneur de FrankenPHP et du [protocole Mercure](https://mercure.rocks/) (entre autres). Un grand développeur et contributeur de l'écosystème PHP notamment, plein d'humilité
- [Functional Programming in PHP](https://youtu.be/LZh4_q04aKo)
- [PHP Quality Assurance](https://qa.php.net/)

[Voir le dépôt dédié à la veille PHP](https://github.com/paul-schuhm/veille-php).

### C

- [Beej's Guide to C Programming](https://beej.us/guide/bgc/)

### JavaScript

- [p5js](https://p5js.org/), une librairie JavaScript open-source pour le code créatif. Avec un focus pour rendre le code accessible et inclusif pour les artistes, designers, formateurs, débutants.
- [leaflet](https://leafletjs.com/SlavaUkraini/index.html), le projet open-source pour développer des cartes interactives et *mobile-friendly*.
- [jquery](https://learn.jquery.com/using-jquery-core/), jquery est le parfait exemple de bibliothèque bien faite. On lit souvent qu'elle est *morte*. Il y a de quoi rire. Jquery n'est pas mort, jquery est partout. Jquery a eu un rôle majeur dans l'évolution du standard de JS. La bibliothèque est tellement solide et populaire qu'il a même été [suggéré d'embarquer jquery (en cache) dans tous les navigateurs pour le futur standard HTML6](https://t.co/H9mKDqtydF). Idéalement, dans un monde parfait, jquery *devrait* disparaître tout comme JavaScript *devrait* disparaître du navigateur. En effet, les besoins de JS reculent toujours d’avantage à chaque nouvelle version du HTML. En attendant, ce n'est pas demain la veille alors autant s'y mettre pour au moins 3 raisons (a) jquery est partout, si vous travaillez sur du legacy code vous allez tomber dessus, (b) c'est hyper pratique et puissant et la surcouche n'éloigne pas trop du DOM, on apprend des choses sur le DOM qui seront toujours utiles même dans un monde *post-jquery*, même dans un univers vanilla JS (c) ça permet aussi de prototyper rapidement des interfaces dynamiques même si on décide ensuite de passer sur un framework JS (d) ça demande quand même de comprendre le vanilla JS. Voici [un tout petit dépôt](https://github.com/websealevel/doc-jquery) où l'on a sélectionné l'essentiel du fonctionnement de jquery pour bien comprendre comment cette bibliothèque fonctionne. jQuery chilling ([source de l'image](https://twitter.com/aschmelyun/status/1537393046244892672))

### Docker et conteneurs

- [Un conteneur Linux, qu'est-ce que c'est ?](https://www.redhat.com/fr/topics/containers/whats-a-linux-container), publié par RedHat
- [Docker Tag Guide | Purpose, Usage, and Examples](https://ioflood.com/blog/docker-tag-guide-purpose-usage-and-examples/), un article et guide sur la manière de tag correctement les images pour implémenter un versionnement sémantique
- [Simplify the Smallest Possible Docker Image](https://medium.com/@adriaandejonge/simplify-the-smallest-possible-docker-image-62c0e0d342ef), de Adriaan de Jonge
- [12 Fractured Apps](https://medium.com/@kelseyhightower/12-fractured-apps-1080c73d481c#.smga9216i), de Kesley Highttower
- [Best Practices Around Production Ready Web Apps with Docker Compose](https://nickjanetakis.com/blog/best-practices-around-production-ready-web-apps-with-docker-compose), de [Nick Janetakis](https://nickjanetakis.com/about). Publié en 2021, des choses ont changé sur docker compose depuis mais reste pertinent sur de nombreux points
- [La sécurité des conteneurs, qu'est-ce que c'est ?](https://www.redhat.com/fr/topics/security/container-security), un très bon article de RedHat sur la sécurité des conteneurs, de l'application conteneurisée à l’infrastructure sur laquelle le conteneur est déployée
- [Guide pour la programmation réseaux de Beej's](http://vidalc.chez.com/lf/socket.html), sur les différents types de sockets
- [Docker Bench for Security](https://github.com/docker/docker-bench-security), ensemble de scripts open-source qui permet d'auditer de manière automatique l'installation et la configuration du serveur Docker en environnement de production

## Suivi de projets

- [clickup](https://clickup.com/), alternative gratuite à Figma, plus facile à prendre en main et bourrée de toutes les fonctionnalités nécessaires
- [Mattermost](https://mattermost.com/), alternative open source à Trello, outil de workflow, travail collaboratif, suivi de tâches, etc.

## Gestion de projet, gestion de l'apprentissage et des connaissances d'équipe

- [Philippe Bourgau's XP Coaching Blog](https://philippe.bourgau.net/), des articles sur la gestion de projets et de la veille en pratique (comment travailler en accord avec les principes de l'extrem programmaing, gérer du code legacy, organisation des équipes, apprentissage et veille, etc.), par Philippe Bourgau versé dans l'[eXtrem Programming (XP)](https://fr.wikipedia.org/wiki/Extreme_programming)
- [Xtrem Reading](https://yoan-thirion.gitbook.io/knowledge-base/xtrem-reading), des articles sur l'extrem reading et comment le mettre en pratique, par [Yoan Thirion](https://www.yoan-thirion.com/#home) versé aussi dans l'[eXtrem Programming (XP)](https://fr.wikipedia.org/wiki/Extreme_programming)

## Dessin

- [excalidraw](https://excalidraw.com/), dessiner des diagrammes rapidement avec un look and feel *fait-main*
- [minimator](https://minimator.app/), un éditeur graphique SVG minimaliste dans le navigateur. Dessinez à l'aide d'une grille et exportez facilement votre svg
- [dddraw](https://fffuel.co/dddraw/), un éditeur graphique SVG gratuit en ligne

## Quelques SGBD

- [PostgreSQL](https://www.postgresql.org/), le choix à faire lorsqu'on part sur une base de données relationnelle. Projet open-source maintenu depuis 30ans, le SGBD qui va le plus loin sur l'implémentation du standard SQL
- [Dalibo, l'expertise PostgreSQL](https://dalibo.com/), ressources gratuites pour se former sur PostgreSQL
- [ClickHouse](https://clickhouse.com/), base de données relationnelle orientée colonnes. Optimisé pour l'[OLAP](https://www.oracle.com/fr/database/olap-definition.html). Vérifiez bien avant de vous en servir pour votre projet que [ce système soit adapté à votre cas d'utilisation](https://clickhouse.com/docs/en/#key-properties-of-olap-scenario)
- [Datomic](https://www.datomic.com/), un SGBD développé par [Rich Hickey](#rich-hickey). En plus de concevoir la base de données comme *une valeur* ce modèle incorpore le temps de manière native.
- [SQLite](https://www.sqlite.org/index.html), un SGBDR qui contrairement à la plupart des autres systèmes n'utilise pas l'architecture client/serveur et permet de disposer d'une base de données relationnelles dans un simple fichier. On peut utiliser [DB Browser for SQLite](https://sqlitebrowser.org/) pour avoir un gestionnaire et inspecteur de bases de données avec GUI.

## Modélisation de bases de données relationnelles

- [Initiation à la conception de bases de données relationnelles avec MERISE](https://ineumann.developpez.com/tutoriels/merise/initiation-merise/)
- [Petit guide d'analyse des données à l'aide de la méthode MERISE](https://sqlpro.developpez.com/cours/modelisation/merise/), par Frédéric Brouard
- [Règle de gestion bien écrite => Modélisation des données facile](https://blog.developpez.com/cinephil/p10397/bases-de-donnees/regle_de_gestion_bien_ecrite_g_modelisat), par CinéPhil, modérateur actif de developpez.com
- [Le Dictionnaire des données](https://www.univ-constantine2.dz/CoursOnLine/Benelhadj-Mohamed/co/grain3_2.html), article utile de Pr. Nacer-Eddine Zarour et Dr. Mohamed El Hadi Benelhadj sur l'écriture du dictionnaire de données
- [Associations réflexives](http://cours.thirion.free.fr/Cours/Merise/Asso-Refl-Cours.php), très bonne page web sur les associations réflexives en Merise, par E. Thirion
- [Normalisation des noms des objets des bases de données](https://sqlpro.developpez.com/cours/standards/), une proposition de standardisation interne à l'organisation de l'ensemble des éléments composant une base de données, par Frédéric Brouard. Propose un standard sur le nommage, les domaines de validité, la documentation, l'ergonomie et l'écriture des requêtes. Indépendant du SGBDR. Ne pas hésiter à s'en servir.
- [La méthode MERISE](http://tcosnuau.free.fr/COURS/MERISE/MERISE.HTM), par tcosnuau
- [Clefs auto-incrémentées](https://sqlpro.developpez.com/cours/clefs/), article complet de Brouard sur la génération de la valeur des clefs primaires permettant d'identifier chaque enregisterment de manière unique dans une table
- [Les 10 meilleures pratiques pour développer avec un SGBDR](https://blog.developpez.com/sqlpro/p6507/ms-sql-server/les_10_meilleures_pratiques_sur_ms_sql_s), les 10 commandements positifs ou règles impératives à suivre pour que votre SGBDR soit performant, efficace et précis ! valable pour tous les SGBDR, avec des exemples pour MS SQL Server, de Frédéric Brouard
- [Bases de données relationnelles et normalisation : de la première à la sixième forme normale](https://fsmrel.developpez.com/basesrelationnelles/normalisation/), excellente série d'articles sur les formes normales et l'algèbre relationnelle de François de Sainte Marie

## Outils de conception de base de données

- [AnalyseSI](https://launchpad.net/analysesi), un outil open-source *distraction-free* basé sur Merise 1 pour modéliser une base de données (MCD) et produire un MPD et scripts SQL
- [Oracle SQL Developer Data Modeler](https://www.oracle.com/database/sqldeveloper/technologies/sql-data-modeler/), outil graphique complet et plus complexe pour la conception de base de données, proposé par Oracle. La documentation accessible depuis le logiciel est de bonne qualité, [le blog d'helifromfinland](https://helifromfinland.blog/) est rempli d'articles utiles sur l'outil

## Outils d'administration (et conception parfois) de base de données

- [dbeaver](https://dbeaver.io/), multiplateforme, multi-sgb, open-source que demande le peuple
- [adminer](https://www.adminer.org/), une alternative open-source a phpMyAdmin (aussi open source) qui commence à être chargé historiquement. Plus légèr, plus performant, plus sécurisé, plus user-friendly. Prend en charge les base de données MySQL, SQLite, PostgreSQL, MS SQL et Oracle
- [pgAdmin](https://www.pgadmin.org/), le système d'administration open-source le plus poussé pour Postgresql
- [pspg - Postgres Pager](https://github.com/okbob/pspg), pspg est un navigateur Unix pour naviguer dans les tables d'une base de données relationnelle

## Architecture logicielle

- [Le catalogue des patrons de conception (POO)](https://refactoring.guru/fr/design-patterns/catalog), un catalogue en ligne inspiré du GoF sur les Design Patterns. Bien fait, ludique avec de nombreux exemples, schémas et implémentations dans différents langages

## Développement informatique et science académique

- [Best Practices for Scientific Computing](https://journals.plos.org/plosbiology/article?id=10.1371/journal.pbio.1001745), un papier en libre accès sur les pratiques recommandées pour le développement, la distribution et la maintenance de logiciels dans le milieu académique

## Développement informatique et écologie (ecoconception)

Voir aussi [les approches radicales et les fondements du web](#fondamentaux-radical)

- [Comment minimiser l’impact des vidéos dans nos sites web ?](https://www.editions-eni.fr/blog/comment-minimiser-limpact-des-videos-dans-nos-sites-web/), un excellent article d'[Hervé Boisgontier](https://www.editions-eni.fr/herve-boisgontier) et Boris Butaeye sur les moyens à mettre en oeuvre pour limiter l'impact environnemental des contenus vidéos distribués sur le web.

## Perl

A venir...

## Programmation fonctionnelle

### Général

- [Eric Normand](https://ericnormand.me/), Eric Normand est une référence en programmation fonctionnelle, en tant que développeur mais aussi professeur. Il a écrit des livres de qualité sur le sujet.
- [Mostly adequate guide to functional programming](https://drboolean.gitbooks.io/mostly-adequate-guide-old/content/)

### Haskell

- [Le Guide (fr)](https://github.com/bitemyapp/learnhaskell/blob/master/guide-fr.md)
- [Haskell basics](https://www.seas.upenn.edu/~cis194/spring13/lectures/01-intro.html)

Voir ce [bouquin de référence](#haskell-1).

### Clojure

- [Clojure for the Brave and True ](https://www.braveclojure.com/foreword/), un livre complet, hyper pédagogique, accessible en ligne pour s'initier à la programmation fonctionnelle avec Clojure.
- [clojuredocs](https://clojuredocs.org/), un dépôt regroupant documentation et exemples pour Clojure
- [How to earn your Clojure white belt](https://www.notamonadtutorial.com/how-to-earn-your-clojure-white-belt/)
- [4clojure](https://4clojure.oxal.org/), un site d'exercice classer par difficulté pour apprendre Clojure

### Elm

[Elm](https://elm-lang.org/) est un langage/ecosystème fonctionnel pour développer des applications web. Il compile vers Javascript. Elm possède peut être le compilateur le plus *human-friendly* au monde

### Racket, le *langage-oriented programming language*

- [Racket, the Programming Language](https://racket-lang.org/), un *language orienté language*

### Langages Assembleur

- [Reverse Engineering for Beginners](https://beginners.re/) aussi connu sous le nom RE4B et "Comprendre le langage Assembleur"

## Rich Hickey

Et oui, [Rich Hickey](https://en.wikipedia.org/wiki/Rich_Hickey) a le droit à sa propre section. Allez directement voir [ce dépôt](https://github.com/tallesl/Rich-Hickey-fanclub), le job est déjà fait avec talent pour recenser tous ses travaux.

## Défis

Apprenez à coder via des défis

- [Root Me](https://www.root-me.org/?lang=fr), testez vos compétences en hacking
- [Sad Servers](https://sadservers.com/), like leetcode for linux
- [codewars](https://www.codewars.com/), affutez votre lame en réalisant/publiant des katas
- [codinGame](https://www.codingame.com/start), on ne présente plus cette plateforme
- [Flexbox froggy](https://flexboxfroggy.com/#fr), apprendre CSS flexbox via des challenges
- [Flexbox defense](http://www.flexboxdefense.com/), un tower defense où l'on joue en CSS
- [Knights of the Flexbox Table](https://knightsoftheflexboxtable.com/), un jeu pour apprendre Tailwind CSS
- [Guess CSS](https://www.guess-css.app/), deviner le HTML/CSS utilisés dans des puzzle games
- [Tenix](https://tainix.fr/), challenges originaux et corrigés pédagogiques pour découvrir de nouveaux concepts et progresser. PHP, javascript et Python.

## Markdown

Markdown, Markdown everywhere !

Le [Markdown](https://daringfireball.net/projects/markdown/) est tout simplement le meilleur format pour créer de la documentation sur tout ce que vous faites sur votre machine. C'est un langage à balises léger. *Facile à lire, facile à écrire*. Il a été pensé originellement pour écrire *pour* le web.

Facile à apprendre, facile à exporter vers tout un tas de formats markup (HTML, PDF, LaTeX, XML, etc.). C'est *le markup ultime pour écrire*, prendre des notes, partager et surtout créer une base de connaissances, que ce soit en local ou sur le web. Markdown refait apprécier le goût du *web* : *content first*, les hyperliens et un processus de publication simple et facile.

### Markdown ecosystème

Markdown est un "standard (volontairement) incomplet" ce qui a laissé la place à de nombreuses implémentations différentes.

- [Liste des implémentations Markdown](https://github.com/markdown/markdown.github.com/wiki/Implementations), les différentes implémentations ou *parsers* Markdown
- [CommonMark](https://commonmark.org/), [une spécification Markdown](https://spec.commonmark.org/) créée en 2004 par John Gruber et Aaron Swartz, [implémentée dans de nombreux langages de programmation](https://github.com/commonmark/commonmark-spec/wiki/List-of-CommonMark-Implementations)
- [Apprendre CommonMark en quelques minutes](https://commonmark.org/help/)
- [MultiMarkdown](https://fletcherpenney.net/multimarkdown/), **superset de Markdown qui permet de produire des document complets bien formés**. Ajoute des features utiles manquantes à Markdown, notamment la gestion de meta-données et tout ce qui touche à la **connectivité entre documents Markdown**
- [marpit](https://marpit.marp.app/), framework minimal pour créer des présentations en Markdown.
- [Mark Doc](https://markdoc.io/), superset et framework Markdown, open-source, orienté publication de contenu. L'outil a été développé par Stripe, pour développer et maintenir sa documentation structurée, complexe et de qualité.
- [Babel Mark 3](https://babelmark.github.io/), la spécification originale de Markdown (proposée par John Gruber) n'étant pas complète, de nombreuses implémentations de Markdown existent avec leurs spécificités. Babel Mark 3 vous permet de comparer le résultat (HTML) de nombreuses implémentations de Markdown
- [Marp](https://marp.app/), créer ses diapos dans un écosystème full Markdown. Réutiliser ainsi facilement le contenu structuré de vos présentations pour les publier en PDF ou HTML, ou inversement. Basé sur [Marpit](https://marpit.marp.app/),
- [poc Marp](https://github.com/websealevel/poc-marp), un dépôt simple qui sert de référence sur l'usage de marp
- [Revealjs](https://revealjs.com/), un autre outil, plus lourd mais permettant de faire des présentations plus complexes, basé sur javascript. créer des présentations pour le web mais pas que. Et surtout générer des présentations directement à partir de vos notes en Markdown.
- [Slides](https://slides.com/), si vous êtes plutôt éditeur graphique/GUI, Slides est une application web qui vous permet de créer vos présentations à la main grâce à un éditeur de qualité, et vous les heberge en ligne.

## CV

- [resume.md](https://github.com/mikepqr/resume.md), écrivez votre CV en Markdown, stylisez le en CSS, exportez le en PDF/HTML

## Éditeurs de texte

- [emacs](https://www.gnu.org/software/emacs/), le projet open-source le plus célèbre après Linux. Faut-il encore le présenter ? Bonne alternative à Vim si vous n'aimez pas les *modes*.
- [Learn Vim for the last time: A tutorial and Primer](https://danielmiessler.com/study/vim/)
- [ReText](https://github.com/retext-project/retext), un éditeur petit et puissant pour le Markdown et les langages Markup.
- [Ghostwriter](https://wereturtle.github.io/ghostwriter/index.html), un éditeur markdown open-source *distraction-free*, très agréable, minimaliste et configurable.

## Écriture technique

- [Asciidoc](https://asciidoc.org/), un langage markup texte dédié à la rédaction de contenus techniques
- [Diataxis](https://diataxis.fr/), un framework et une approche de qualité pour la rédaction de documentation technique. Diataxis identifie 4 modes de documentation et vous explique chacun d'entre eux
- [Technical Writing Courses (Google)](https://developers.google.com/tech-writing), cours gratuits sur l'écriture technique, comment organiser et rédiger des documents technique
- [Rédaction durable avec Pandoc et Markdown](https://programminghistorian.org/fr/lecons/redaction-durable-avec-pandoc-et-markdown), un article et tutoriel de [the programming historian](https://programminghistorian.org/fr/) sur une méthodologie de publication avec Markdown et pandoc

## Expressions régulières (regex)

- [Regular Expressions](https://www.grymoire.com/Unix/Regular.html), par [Bruce Barnett](https://grymoire.wordpress.com/). Excellente couverture des expressions régulières (regex)
- [regexr](https://regexr.com/), tester et construire des regex dans un environnement web pédagogique

## Boîte à outils

### `sed`

- [sed, an introduction and Tutorial](https://www.grymoire.com/Unix/Sed.html#uh-0), par Bruce Barnett. sed (*`s`tream `ed`itor*) est l'éditeur de flux par excellence. Comme l'indique l'auteur de ce site web, `sed` est un outil merveilleux mais sa documentation laisse à désirer. Privilégiez ce site pour vous y initier

### `sloccount`

- [un outil open-source](https://dwheeler.com/sloccount/) pour *estimer* le nombre de lignes de codes d'un projet. Intègre des modèles pour estimer le coût de la codebase (jours-hommes, argent, etc.). Développé par [David A. Wheeler](https://dwheeler.com/)

### `rclone`

- [rclone](https://rclone.org/), *"The Swiss army knife of cloud storage"*, une interface en ligne de commande pour gérer (copier, déplacer, synchroniser) ses fichiers sur les hébergements distants (Dropbox, Google Drive, etc.)

### `wwb` (et descendants)

[writer's workbench (wwb)](https://en.wikipedia.org/wiki/Writer%27s_Workbench) était un correcteur de grammaire automatique très avancé, développé aux Bell Labs par [Lorinda Cherry](https://en.wikipedia.org/wiki/Lorinda_Cherry) et Nina Macdonald. [Cet outil a aidé le groupe UNIX à produire de la documentation technique et des documents de meilleure qualité](https://dspinellis.github.io/oral-history-of-unix/frs122/unixhist/text.htm). Un article complet y a été consacré dans le magazine [*Byte*](https://fr.wikipedia.org/wiki/Byte_(magazine)) en 1983. [Vous pouvez y accéder grâce au précieux travail d'Internet Archive](https://archive.org/details/byte-magazine-1983-10/page/n241/mode/2up). Sur GNU/Linux, ce projet s'est décliné sous la forme de plusieurs programmes comme [spell](https://manpages.debian.org/bookworm/spell/spell.1.en.html), [style](https://manpages.debian.org/bookworm/diction/style.1.en.html) et [diction](https://manpages.debian.org/bookworm/diction/diction.1.en.html). Une version en ligne est également accessible [via ce site web](https://www.writersworkbench.com/index.html).

### Manipulation de fichiers, documents

Aujourd'hui il y a tellement de webservices gratuits pour le faire. Mais quand il s'agit d'automatiser, de se soucier parfois de la base de données qu'on alimente avec nos photos et nos textes, il est toujours bon de se rappeler qu'on a tous les outils en local pour le faire dans le respect de notre vie privée et pour le meilleur.

#### Convertir des documents, éditer des pdf

- [pandoc](https://pandoc.org/index.html) : convertisseur de document universel (par exemple markdown vers pdf). Très puissant, facile à scripter et automatiser
- [ImageMagick](https://imagemagick.org/index.php), L'éditeur d'images par excellence. Exemple, convertir une image en pdf au format A4 `convert input.jpg -page a4 output.pdf`
- [pdftk (the pdf toolkit)](https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/): concaténer/découper des pdf. Par exemple `pdftk input1.pdf input2.pdf output.pdf`

#### Compresser, optimiser des documents (images, pdf etc..)

- [jpegoptim](https://github.com/tjko/jpegoptim), un outil pour optimiser/compresser des images au format jpeg,jpg. Une fois installé on peut aussi controler la qualité de la sortie avec un simple paramètre. Exemple : `jpegoptim -m50 *.jpeg` va compresser tous les fichiers `.jpeg` du repertoire courant (sur place par défaut attention !) avec une qualité de 50 (cette valeur pouvant aller de 0 à 100). Plus d'infos en lisant le manuel `man jpegoptim`

#### Capture vidéo, audio

- [simplescreenrecorder](https://www.maartenbaert.be/simplescreenrecorder/), excellent logiciel libre de capture vidéo/audio (screencast), développé par Maarten Baert. Très simple à utiliser et à configurer

## Androïd

- [F-droid](https://duckduckgo.com/?q=fdroid&t=newext&atb=v319-1&ia=web), gestionnaire et catalogue de logiciels libres pour la plateforme Android. Paquets vérifiés, mis à jour. Idéal pour vous débarasser petit à petit des applis propriéataires sur votre smartphone. Il n'y a qu'à fouiller et essayer
- [neutriNote CE](https://f-droid.org/fr/packages/com.appmindlab.nano/), une plateforme d'édition, de prise de notes en Markdown/LaTeX, dessins compètement chercheable et que l'on peut backup avec un service d'hébergement pour synhroniser des documents sur tous nos appareils. Le top
- [Nunti](https://f-droid.org/fr/packages/com.nunti/), un gestionnaire de flux RSS discret et minimaliste
- [NewPipe](https://f-droid.org/fr/packages/org.schabi.newpipe/), un client Youtube léger sans pub (alternative à feu YoutubeVanced). Permet également de rassembler au même endroit les flux de Youtube, SoundCloud, Bandcamp et PeerTube

## Langages/technos à découvrir

*Apprenez ce qui vous fait plaisir*. Même si vous ne trouverez sûrement pas de poste SmallTalk sur LinkedIn aujourd'hui, apprendre SmallTalk fera de vous un·e meilleur·e programmeur·se. Tout est transférable, *aucun chemin d'apprentissage n'est inutile*. Le passé est rempli d'idées, de concepts, de méthodes, de technologies intéressantes et longuement débatues collectivement par des personnes intelligentes. Profitons-en et regardons en arrière. La majorité des modes, de ce qui est nouveau dans le domaine informatique, de la *hype*, sont en fait des vieilles idées des années 60 ou 80. Il faut *d'abord* aller voir dans le passé, on est surpris d'y constater que *la plupart des idées nouvelles ne sont pas nouvelles*.

### Du bruit au bruit

Ce dépôt n'échappe pas à la règle et ajoute du *bruit au bruit*. Cela représente un paradoxe assez connu de celles et ceux qui veulent apprendre le web et se retrouvent confronté·e·s à un flow de ressources complètement impossible à digérer. Ces questions sont d'ailleurs discutées dans ce podcast, consacré au sujet [Comment apprendre à devenir développeur web ?](https://www.htmlallthethings.com/podcasts/how-to-learn-web-development-skills)

### SmallTalk

- [squeak](https://squeak.org/), implémentation open-source de SmallTalk
- [pharo](https://pharo.org/web/), l'héritier direct de SmallTalk, à la fois langage purement orienté objet et environnement de développement
- [Byte Magazine (1981)](https://archive.org/details/byte-magazine-1981-08/mode/2up), célèbre édition de Byte Magazine couvrant le langage SmallTalk

### Assembleur

### Prolog

- [swi-prolog](https://www.swi-prolog.org/)

### Scheme (Lisp dialect)

[Scheme](https://fr.wikipedia.org/wiki/Scheme) est un dialecte de Lisp, crée au MIT dans les années 70 par Gerald Jay Sussman et Guy L. Steele. Il conserve les aspects essentiels de Lisp, il est particulièrement adapté pour apprendre la programmation et ses concepts essentiels.

- [Site officiel de Scheme (sur gnu.org)](https://www.gnu.org/software/mit-scheme/)
- [Scheme interpreter online](https://inst.eecs.berkeley.edu/~cs61a/fa14/assets/interpreter/scheme.html), un interpréteur Scheme mis en ligne par l'université de Berkeley. Pratique pour tester rapidement
- [Why Scheme ?](https://www.shido.info/lisp/scheme1_e.html)
- [Introduction aux fonctions en Scheme](https://www.shido.info/lisp/scheme4_e.html)
- [Structure and interpretation of computer programs, 2nd edition, en ligne, HTML](https://mitp-content-server.mit.edu/books/content/sectbyfn/books_pres_0/6515/sicp.zip/full-text/book/book.html), l'édition web gratuite et complète du très grand livre d'Abelson, Gerald Jay et Julie Sussman (MIT Press, 1996)
- [Installation macOS: Homebrew Scheme](https://formulae.brew.sh/formula/mit-scheme), page d'intallation de Scheme sous macOS via le gestionnaire de paquets Homebrew
- [Installation GNU/Linux](https://www.gnu.org/software/mit-scheme/), installation de Scheme sous GNU/Linux
- [Installation sur Windows (via WSL)](https://www.gnu.org/software/mit-scheme/)

### Tcl/Tk

[Tcl](https://www.tcl.tk/) (Tool Command language) est un langage open-source versatile permettant de développer des applications Desktop, web, CLI, etc. Il vient avec Tk, un GUI toolkit pour développer des applications natives pour toutes les plateformes. [Visiter le wiki](https://wiki.tcl-lang.org/welcome) pour en savoir plus.

## RGPD

- [Guide RGPD du développeur](https://www.cnil.fr/fr/guide-rgpd-du-developpeur), le guide pour rendre son système en accord avec les principes règlementaires du RGPD, publié par la CNIL

## Ebooks

Allez fouiller sur [pdfdrive](https://www.pdfdrive.com/), ce site est incroyable. Vous trouverez certainement ici le bouquin que vous cherchez.

### Quelques *classiques* (non exhaustif)

> En cours de construction...

- [Structure and interpretation of computer programs (SICP), 2nd edition](https://web.mit.edu/6.001/6.037/sicp.pdf), de Harold Abelson, Gerald Jay and Julie Sussman, publié chez MIT Press, 1996. Ce livre, et le cours du MIT qui se trouve derrière, est juste *à part*. Les auteurs vont au coeur de ce que signifie *programmer* en tant qu'activité humaine, en introduisant le langage Scheme, un dialecte de Lisp. Ce livre va rajeunir avec le temps. Son objectif est de montrer ce que sont réellement les programmes et comment gérer la complexité intellectuelle des grands systèmes d'information. Et comme il est tout de suite dit dans l'intro du cours "*Computer science is a terrible name for this business... First of all, it's not a science... It's also not really very much about computers" (Harold Abelson)*
- [The C programming language](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&ved=2ahUKEwi1oonwoY6DAxWXVaQEHeA2D0AQFnoECA4QAQ&url=https%3A%2F%2Fkremlin.cc%2Fk%26r.pdf&usg=AOvVaw1XViDREs3vL9rDBT9kwwuN&opi=89978449), *the white book*, écrit par les deux géants [Dennis Ritchie](https://fr.wikipedia.org/wiki/Dennis_Ritchie), créateur du langage et [Brian Kernighan](https://fr.wikipedia.org/wiki/Brian_Kernighan), publié chez Prentice Hall, 1978. Le livre décrit, avec un ton unique, tout le langage C avec des exemples et la concision des grandes heures. La tout première référence sur le langage C. A noter que l'ouvrage a eu droit à une deuxième édition dix ans plus tard (1988), lorsque le langage C a été normalisé par l'[ANSI](https://fr.wikipedia.org/wiki/American_National_Standards_Institute) (1989) sous le nom équivoque d'*ANSI C*.
- [Programmation: Concepts, techniques et modèles](https://www.info.ucl.ac.be/~pvr/coursfrancais.html), écrit par [Peter Van Roy](https://www.info.ucl.ac.be/~pvr/cvvanroy.html) et Seif Haridi, traduction française publiée chez Dunod, 2007. Un livre fondamental sur les principes de la programmation. Excellent support pour réaliser de nombreux cours sur la programmation (cours, exercices, tp). Peter Van Roy a également initié le développement de [la plateforme Mozart](http://mozart2.org/), un environnemment de développement dédié à la pédagogie et à la recherche
- [Designing data intensive applications](https://www.pdfdrive.com/designing-data-intensive-applications-the-big-ideas-behind-reliable-scalable-and-maintainable-systems-e167514656.html), de Martin Kleppmann, publié chez O'Reilly, 2017.
- [RESTful Web Services](https://learning.oreilly.com/library/view/restful-web-services/9780596529260/), de Leonard Richardson, Sam Ruby, O'Reilly, 2007. S'il y a un livre à lire/étudier/feuilleter/avoir sur REST c'est celui-ci. Ce livre est passé sous licence *Creative Commons* dans le cadre du projet [O'Reilly Open Books](https://www.oreilly.com/openbook/). [Accéder à la version en ligne/PDF gratuite](http://restfulwebapis.org/rws.html)
- [Algorithms + Data Structures = Programs](https://en.wikipedia.org/wiki/Algorithms_%2B_Data_Structures_%3D_Programs), de [Niklaus Writh](https://en.wikipedia.org/wiki/Niklaus_Wirth), publié chez Prentice Hall, 1976.
- [The Art of Computer Programming (TAOCP)](https://cs.stanford.edu/~knuth/taocp.html), de Donald E. Knuth, publié chez Addison-Wesley, 1968-1969
- [Software Engineering, Tenth Edition](https://software-engineering-book.com/), un livre canonique sur l'architecture logicielle et l'ingénieurie logicielle (conduite de grands projets informatiques), de [Ian Sommerville](https://en.wikipedia.org/wiki/Ian_Sommerville_(software_engineer))
- [Operating Systems, three easy pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/), ou le *Comet OS Book*, de Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau (University of Wisconsin-Madison), publié par l'université du Wisconsin, 2008, continuellement mis à jour. Accessible en ligne. *Une référence* sur les systèmes d'exploitation.

### Refactoring, travailler sur du code legacy

- [Refactoring: Improving the Design of Existing Code](https://www.pdfdrive.com/refactoring-improving-the-design-of-existing-code-e185896299.html), de Martin Fowler, publié chez Addison-Wesley, 1999

### Software design

- [A philosophy of software design](https://www.pdfdrive.com/a-philosophy-of-software-design-e195285924.html) de John Ousterhout, publié par la Stanford University, 2018. Excellent ouvrage clair et concis sur la complexité logicielle (sa nature et ses origines) et sur des principes de design généraux. Plein d'humilité et de partage d'experience avisée.
- [Domain driven design](https://www.pdfdrive.com/domain-driven-design-e95986647.html) de Eric Evans, publié chez Addison Wesley, 2003

### Blog design

- [Are you making these design mistakes on your blog?](https://kevquirk.com/blog-design-mistakes/), très bon article qui résume les points importants à considérer et les erreurs à ne pas faire lorsque l'on designe son blog
- [Thoughts on Editing Posts](https://kevquirk.com/thoughts-on-editing-posts/), très bon article de Kev quirk sur l'édition de contenus publiés dans le passé

### Architecture de l'information / Recherche d'information

Les livres de [Peter Morville](https://fr.wikipedia.org/wiki/Peter_Morville), un pionnier de l'architecture informationnelle. Bibliothécaire de formation, il s'est ensuite intéressé au web. Hyper intéressant

- [Information Architecture for the World Wide Web: Designing Large-Scale Web Sites](https://www.pdfdrive.com/information-architecture-for-the-world-wide-web-designing-large-scale-web-sites-e184621172.html)
- [Information Architecture: For the Web and Beyond](https://www.pdfdrive.com/information-architecture-for-the-web-and-beyond-e158738770.html)
- [Search Patterns: Design for Discovery](https://www.pdfdrive.com/search-patterns-design-for-discovery-e159084430.html)
- [Introduction to Information Retrieval](https://nlp.stanford.edu/IR-book/information-retrieval-book.html), le site du livre éponyme *Introduction to Information Retrieval*, de Christopher D. Manning, Prabhakar Raghavan and Hinrich Schütze, Cambridge University Press. 2008. La version en ligne est *gratuite*. Une bonne référence sur les méthodes et différents modèles de recherche d'information

### Wordpress

- [voir ici](#livres-de-développement-wordpress)

### Sécurité des applications webs

- [The web application hacker's handbook](https://www.pdfdrive.com/the-web-application-hackers-handbook-wordpresscom-e12194346.html)

### Webmaster

Pour apprendre les bases du web, mettre en prod, configurer un serveur, la programmation CGI

- [Webmaster in a Nutshell](https://www.pdfdrive.com/webmaster-in-a-nutshell-a-desktop-quick-reference-e106392581.html)
- [Linux en concentré](https://www.pdfdrive.com/linux-in-a-nutshell-6th-editionpdf-e18844861.html)

### HTTP

- [HTTP: The Definitive Guide](https://www.pdfdrive.com/http-the-definitive-guide-e156760262.html)

### Perl

- [Intermediate Perl, 2nd Edition: Beyond The Basics of Learning Perl](https://www.pdfdrive.com/intermediate-perl-2nd-edition-beyond-the-basics-of-learning-perl-e166970357.html)
- [Programming Perl, 4th Edition](https://www.pdfdrive.com/programming-perl-4e-e33432156.html)

### Test driven development

- [Test-Driven Development By Example, Kent Beck](https://www.pdfdrive.com/test-driven-development-by-example-e50686597.html)

### Programmation CGI

- [CGI programming with Perl](https://www.pdfdrive.com/cgi-programming-with-perl-2nd-ed-e187832058.html)

### Haskell

- [Haskell, The Craft of Functional Programming](https://www.pdfdrive.com/haskell-the-craft-of-functional-programming-e158848677.html)

### Rust

- [The rust programming language](https://edu.anarcho-copy.org/Programming%20Languages/Rust/rust-programming-language-steve-klabnik.pdf), considéré comme la référence, mis a disposition en ligne gratuitement par l'éditeur. Souffre cependant de critiques sur le style, donc ne vous conviendra pas forcément
- [Programming Rust](https://www.pdfdrive.com/programming-rust-e52747056.html), une édition saluée d'O'Reilly

### Développement de jeux vidéos

- [Game programming patterns (en)](https://www.pdfdrive.com/game-programming-patterns-e158623095.html), une référence dans le domaine, un livre de [Robert Nystrom](https://twitter.com/munificentbob). Ce livre couvre l'architecture et le design dans le domaine du développement JV.

- [Artificial Intelligence for games, 2n edition (en)](https://www.pdfdrive.com/artificial-intelligence-for-games-e25411627.html), un très beau livre très complet qui référence énormément de patterns, stratégies, techniques et algorithmes pour tous vos besoins en terme d'IA. Vient avec une bibliographie très complète pour approfondir un sujet qui a su retenir notre attention

### Génération procédurale et *game design*

- [The Art of Game Design, 2nd edition (en)](https://www.pdfdrive.com/the-art-of-game-design-a-book-of-lenses-2nd-edition-e157699641.html)
- [Level Up! The guide to great video game design (en)](https://www.pdfdrive.com/level-up-the-guide-to-great-video-game-design-e157921744.html)
- [Procedural generation in game design (en)](https://www.pdfdrive.com/procedural-generation-in-game-design-e184787611.html)
- [Curating Simulated Storyworlds (en)](https://www.researchgate.net/publication/330855103_Curating_Simulated_Storyworlds), le manuscrit de thèse de [James Ryan](https://twitter.com/xfoml?s=20&t=fe7H8fGL0ox2vDtd6OOhnw) une référence sur les procédés de génération procédurale, de l'interaction entre l'intelligence artificielle et l'experience ludique et des stratégies de "nettoyage" des artefacts. Archéologue des travaux pionniers sur l'usage des machines pour produire des contenus culturels et artistiques

### Algorithmes

- [Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People, Eric Normand](https://www.pdfdrive.com/grokking-algorithms-an-illustrated-guide-for-programmers-and-other-curious-people-e158082191.html)
- [Introduction to Algorithms, 4th Edition](https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=&cad=rja&uact=8&ved=2ahUKEwiZh-_7_tSCAxViRaQEHbzNB1EQFnoECCMQAQ&url=https%3A%2F%2Fdl.ebooksworld.ir%2Fbooks%2FIntroduction.to.Algorithms.4th.Leiserson.Stein.Rivest.Cormen.MIT.Press.9780262046305.EBooksWorld.ir.pdf&usg=AOvVaw1FvA0IIbaxK-z6fPzdnF49&opi=89978449), de Thomas H. Cormen (Auteur), Charles E. Leiserson (Auteur), Ronald L. Rivest (Auteur), Clifford Stein, publié au MIT Press. Le lien est vers la 4e édition. Une référence rigoureuse et reconnue sur les algorithmes et leur analyze. Il est recommandé d'être un peu à l'aise en mathématiques pour l'apprécier pleinement. La 3e édition est facilement trouvable en ligne également.

## Le projet *Open Books* de O'Reilly

L'excellent éditeur [O'Reilly](https://fr.wikipedia.org/wiki/O%27Reilly_Media), éditeur spécialisé en informatique depuis 1978, met en ligne gratuitement beaucoup d'anciennes éditions qui ne sont plus publiées via son projet de bilbliothèque ouverte. Vous pouvez retrouvez tous ces livres [ici](https://www.oreilly.com/openbook/), téléchargeables en PDF et/ou consultables en ligne.

## Éducation, outils/langages pour initier à la programmation

- [1,2,3... codez !](https://fondation-lamap.org/projet/123-codez#guide), Le projet « 1, 2, 3… codez ! » vise à initier élèves et enseignants aux sciences informatiques, de la maternelle au collège. Il propose à la fois des activités branchées (nécessitant un ordinateur, une tablette ou un robot) permettant d’introduire les bases de la programmation et des activités débranchées (informatique sans ordinateur) permettant d’aborder des concepts de base de la science informatique (algorithme, langage, représentation de l’information…)

## *Hacker* culture

- [How To Become A Hacker](http://www.catb.org/~esr/faqs/hacker-howto.html), manuel et synthèse de Eric S Raymond sur la culture du [hacking](http://www.catb.org/jargon/html/meaning-of-hack.html) (au sens original du mot)
- [Things Every Hacker Once Knew](http://www.catb.org/~esr/faqs/things-every-hacker-once-knew/), de Eric S Raymond
- [ Eric's Random Writings ](http://www.catb.org/~esr/writings/), la liste des textes et essais publiés par Eric S Raymond, célèbre hacker, porteur du mouvement open-source et auteur de l'essai [La cathédrale et le bazar](http://www.catb.org/~esr/writings/cathedral-bazaar/), une synthèse sur la dynamique, la culture et les principes des hackers dans le mouvement de l'open source

## Compilateurs, interpréteurs

- [Compiler Explorer](https://godbolt.org/), un petit outil en ligne qui transforme votre code en code assembleur sur différentes architectures. Un outil intéressant pour expérimenter.
- [A Compiler Writing Journey (en)](https://github.com/DoctorWkt/acwj), le dépôt de [DoctorWtk](https://github.com/DoctorWkt). Il y documente étape par étape le développement d'un compilateur pour un subset du langage C. Un véritable livre en ligne avec exemples et pratiques, parfait pour débuter le voyage sur les compilateurs.
- [Crafting Interpreters (en)](https://craftinginterpreters.com/), le site du livre éponyme de Robert Nystrom, développeur actif du langage Dart chez Google. Tout le livre est gratuit en ligne ! Une référence d'un auteur sérieux qui a déjà à son actif quelques ouvrages de grande qualité (dont [Game Programming Patterns](http://gameprogrammingpatterns.com/), lui aussi complètement gratuit en ligne).

## Informatique et mathématiques et aspects bas niveau

- [Computer Organization and Design Fundamentals](https://faculty.etsu.edu/tarnoff/138292/), de David Tarnoff, 2005-2007
- [Code: The Hidden Language of Computer Hardware and Software](https://www.amazon.fr/Code-Language-Computer-Hardware-Software-dp-0137909101/dp/0137909101/ref=dp_ob_title_bk), de Charles Petzold (1ere ou 2nd édition), publiée chez Addison Wesley, 2022. Un *classique* sur le fonctionnement des ordinateurs et l'encodage de l'information. Un must-read
- [The Annotated Turing: A Guided Tour Through Alan Turing's Historic Paper on Computability and the Turing Machine](https://www.amazon.fr/Annotated-Turing-Turing%E2%80%B2s-Historic-Computability/dp/0470229055), de Charles Petzold, publié chez Wiley, 2008. Un excellent livre qui accompagne le lecteur dans le papier fondateur de Turing de 36 pages sur le fondement de l'informatique. Passionnant
- [Méthodes mathématiques pour l'informatique - 5e édition](https://www.dunod.com/sciences-techniques/methodes-mathematiques-pour-informatique-cours-et-exercices-corriges), Jacques Vélu, Geneviève Avérous, publié chez Dunod, 2019. Ce manuel explique en profondeur tous les thèmes qui constituent le socle des connaissances mathématiques indispensables à tout informaticien. Avec exercices corrigés.
- [Category Theory For Programmers](https://github.com/hmemcpy/milewski-ctfp-pdf), de Bartosz Milewski

## Ressources pour formateur·trice

- [Pédagogie (Tenors)](https://www.tenors.fr/blog/categories/p%C3%A9dagogie), différents articles sur les ressources pédagogiques
- [Malette pédagogique (EduServices)](https://view.genial.ly/63218dc0e4749a0011f32037/guide-la-mallette-pedagogique), une collection de ressources pour former un kit de départ pour la formation

## En vrac

### Articles / Billets de blog

- [Developer Task Automation – It’s Easier Than You Think ](https://spin.atomicobject.com/2020/03/18/dev-task-automation/),*starterpack* pour mettre en place les bases de votre workflow d'automatisation en shell
- [Semantic Versioning 2.0.0](https://semver.org/), standard de versionnement expliqué et détaillé pour la gestion des dépendances dans les systèmes
- [How to Use Google – Search Tips for Better Results](https://www.freecodecamp.org/news/use-google-search-tips/), améliorer sa capacité de *pull*
- [Dependency Inversion Principle](https://wiki.c2.com/?DependencyInversionPrinciple=)
- [Reducing Coupling, Martin Fowler](https://martinfowler.com/ieeeSoftware/coupling.pdf)
- [The Principles of Functional Programming](https://www.freecodecamp.org/news/the-principles-of-functional-programming/amp/)
- [Don’t try to sanitize input. Escape output.](https://benhoyt.com/writings/dont-sanitize-do-escape/) [securité]
- [Java at 20: How it changed programming forever](https://www.infoworld.com/article/2923773/java-at-20-how-java-changed-programming-forever.html), un article de Elliote Rusty Harold qui revient sur les apports de Java a l'occasion de ses 20 ans d'existence
- [Rust for the Brave and True (en)](https://dev.to/gruberb/rust-for-the-brave-and-true-4766), un article qui décrit un chemin d'apprentissage de Rust avec une envie de se créer un environnement sans distraction, proche de la machine
- [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!)](https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/), un excellent article de [Joel Spolsky](https://www.joelonsoftware.com/about-me/) (2003) sur l'Unicode, l'encodage UTF-8 et les characters sets
- [We have used too many levels of abstractions and now the future looks bleak](https://unixsheikh.com/articles/we-have-used-too-many-levels-of-abstractions-and-now-the-future-looks-bleak.html)
- [Use plaintext email](https://useplaintext.email/)
- [Migrating a 2TB database in 7.5 minutes](https://usefathom.com/blog/migrating-our-database)
- [Parse, don’t validate](https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/), d'Alexis King
- [Webperf: Boost Your PHP Apps With 103 Early Hints](https://dunglas.dev/2023/10/webperf-boost-your-php-apps-with-103-early-hints/), de Kévin Dunglas sur l'usage du code status 103 pour améliorer les performences des services web (minimiser la latence perçue)
- [File upload security and good practices checklist](https://github.com/dilaouid/shitshit/blob/main/backend-good-practices-security/FILE_UPLOAD.md)
- [Why History Needs Software Piracy](https://technologizer.com/2012/01/23/why-history-needs-software-piracy/), de Benj Edwards, publié sur [Technologiser](https://technologizer.com/)
- [You (probably) don’t need to learn C](https://nedbatchelder.com/blog/202401/you_probably_dont_need_to_learn_c.html), de Ned Batchelder (2024). "*Find a level of abstraction that works for what you need to do. When you have trouble there, look beneath that abstraction. You won’t be seeing how things really work, you’ll be seeing a lower-level abstraction that could be helpful. Sometimes what you need will be an abstraction one level up*"
- [Advice From The CIA: How To Sabotage Your Workplace](https://www.corporate-rebels.com/blog/cia-field-manual), de Joost Minnaar. Un aperçu de ce document publié par la CIA lors de la seconde guerre mondiale et comment ces conseils de sabotage se retrouvent aujourd'hui dans les organisations

### Papiers

- [Out of the Tar Pit, Moseley & Marks](http://curtclifton.net/papers/MoseleyMarks06a.pdf), papier fondateur sur l'émergence et la gestion de la complexité dans la construction de systèmes d'information
- [How Do People Organize Their Desks? Implications for the Design of Office Information Systems, Malone](https://www.researchgate.net/publication/220515815_Malone_T_How_Do_People_Organize_Their_Desks_Implications_for_the_Design_of_Office_Information_Systems_ACM_Transactions_on_Office_Information_Systems_11_99-112), analyse du rôle de la spatialisation/localisation spatiale dans le processus de recherche et de l'accès à la mémoire
- [How did Dennis Ritchie Produce his PhD Thesis? A Typographical Mystery](https://www.cs.princeton.edu/~bwk/dmr/doceng22.pdf), un papier de Brian Kernighan sur la thèse perdue de Dennis Ritchie et comment a-t-il pu la mettre en page étant donné sa complexité typographique et les programmes de préparation de document de l'époque
- [Document preparation archeology](https://www.cs.princeton.edu/~bwk/202/index.html), Brian Kernighan explore les premiers travaux et programmes dédiés à la préparation de document et à la typographie informatique
- [Programming language semantics:It’s easy as 1,2,3](https://t.co/GbsQMnAyKZ), par GRAHAM HUTTON
- [RRB-Trees: Efficient Immutable Vectors ](https://infoscience.epfl.ch/record/169879?ln=en), apprendre comment fonctionne et comment implémenter des vecteurs immutables pour la programmation fonctionnelle
- [MapReduce: Simplified Data Processing on Large Clusters](https://t.co/uOCCUyxsC5), de Jeffrey Dean and Sanjay Ghemawat (Google) sur la procédure MapReduce pour gérer et générer des grands volumes de données
- [TAO: Facebook’s Distributed Data Store for the Social Graph](https://t.co/mjoQTRjk7c), de Nathan Bronson, Zach Amsden, George Cabrera, Prasad Chakka, Peter Dimov, Hui Ding, Jack Ferris, Anthony Giardullo, Sachin Kulkarni, Harry Li, Mark Marchukov
Dmitri Petrov, Lovro Puzar, Yee Jiun Song, Venkat Venkataramani (Facebook). Modèle de données et d'API pour la gestion de graphes représentant des réseaux sociaux
- [The Paperboy, The Wallet, and The Law Of Demeter](https://t.co/kidvfZghjE), de David Bock, sur la "Loi de Demeter" en POO
- [Forces in the Physics of Software the final word](https://drive.usercontent.google.com/download?id=1iy2Jopayt5MYetEiMg-XyJ_ZkXXVEDKV&export=download), de Carlo Pescio (draft). Une tentative de modélisation du développement et de l'architecture logicielle avec des concepts empruntés à la mécanique.

### Blogs

Le coeur du web, c'est les blogs et les pages personnelles.

- [blogroll (en)](https://blogroll.org/), un blog qui liste des bons blogs (comme ce dépot essaie de lister des bonnes ressources gratuites). Dès qu'un ecosystème se cree, il y a toujours un objet hyper méta qui a pour but de produire de la métadonnée sur ses compagnons. C'est le cas de blogroll. Attention, c'est en anglais par contre, sorry mais il fallait le mentionner
- [Simon Willison’s Weblog](https://simonwillison.net/), le blog de Simon Willison, co-créateur du framework Django, développeur open source. Excellente curation et ligne éditoriale
- [Kev Quirk (en)](https://kevq.uk/), Kev Quirk travaille dans la sécurité informatique et tient un petit blog au look brutaliste (*content first !*) passionant, qui pointe sur tout un tas de sites tout aussi intriguant et passionants
- [Tiny Projects (en)](https://tinyprojects.dev/), l'auteur y parler de tout un tas de petits projets qu'il tente, documente et essaie parfois de mettre en production. Assez passionant
- [Filina consulting (en)](https://afilina.com/), [Anna Filina](https://twitter.com/afilina?s=20&t=hsMUOt5TRY3Tl4bjrh43mA) est développeuse, consultante et intervient sur du legacy code. Elle est spécialisée dans la maintenance de projets et le développements de tests. Elle propose sur son site un tas de ressources (tutoriels, conferences, billets)
- [Tech Blogs, une liste de blogs techs du feu (en)](https://tech-blogs.dev/)
- [David A. Wheeler’s Personal Home Page](https://dwheeler.com), le site de David A. Wheeler, un daron du logiciel open-source, de la sécurité logicielle etc. Nombreux articles et livres accessibles gratuitement.
- [joearms.github.io](https://joearms.github.io/index.html#Index), blog de Joe Armstrong, *Erlang and other stuff*
- [jwz.org](https://www.jwz.org), le site de [Jamie Zwinski](https://fr.wikipedia.org/wiki/Jamie_Zawinski). Un des cofondateurs de Netscape et de Mozilla.org. Voir son [blog ici](https://www.jwz.org/bloh) ou ses [articles techniques là](https://www.jwz.org/doc/)
- [codefol.io](https://codefol.io/about/), le blog d'un développeur de 40 ans d'experience
- [DaedTech: stories about Software](https://daedtech.com/), d'Erik Dietrich
- [Samwho](https://samwho.dev/blog), le blog de Sam. Écrit sur la répartition de charges, l'allocation mémoire et d'autres sujets
- [Page personnelle de Brian Kernighan](https://www.cs.princeton.edu/~bwk/), publications, recherche, cours, livres de Brian Kernighan
- [helifromfinland](https://helifromfinland.blog/), articles d'Heli sur Database Designing, Oracle SQL Developer Data Modeler, User Groups etc.
- [gigamonkeys.com](https://gigamonkeys.com/), le blog de [Peter Seibel](https://github.com/gigamonkey), l'auteur de [Coders at work](https://codersatwork.com/) et de [Pratical Common Lisp](https://gigamonkeys.com/book/), deux excellents ouvrages
- [Dennis Yurichev's blog](https://yurichev.com/news/?C=N;O=D), le blog de Dennis Yurichev, l'auteur du livre [Reverse Engineering for Beginners](https://beginners.re/) aussi connu sous le nom RE4B et "Comprendre le langage Assembleur"
- [Eli Bendersky website](https://eli.thegreenplace.net/)
- [null program](https://nullprogram.com/), le blog de Chris Wellons
- [computing the human experience](https://computingthehumanexperience.com/), le site de [Grady Booch](https://fr.wikipedia.org/wiki/Grady_Booch)
- [Le blog de SQLpro](https://blog.developpez.com/sqlpro/), le blog de Brouard sur le SQL pour SQL Server, PostGreSQL et tous les autres SGBDR
- [Le site du livre *Software Engineering*](https://software-engineering-book.com/intro/), de Ian Sommerville. Slides, supports pour cours, études de cas
- [Dennis M. Ritchie (in memoriam)](https://www.bell-labs.com/usr/dmr/www/), site web personnel de Dennis Ritchie (posthume)
- [SQL Short Reads](https://sqlshortreads.com/), de Chris Perry. De nombreux articles sur des cas d'utilisation de SQL en situation réelle

### Podcasts

- [podcasts sur wordpress (fr)](#podcasts-sur-wordpress)
- [syntax (en)](https://syntax.fm/)
- [html all the things (en)](https://www.htmlallthethings.com/), web development, web design and small business
- [phproundtable (en)](https://phproundtable.com/)
- [Web: et 1, et 2, et 3.0 (fr)](https://www.franceculture.fr/emissions/la-methode-scientifique/web-et-1-et-2-et-3-0), on apprécie toujours les titres idiots de la méthode scientifique sur france culture. Podcast très intéressant sur l'histoire du web jusqu'au web 3.0. L'invité [Benjamin Bayart](https://fr.wikipedia.org/wiki/Benjamin_Bayart), cofondateur de la Quadrature du Net, en plus d'être hyper intéressant a un sens de l'humour qu'on appréciera.
- [IFTTD (fr)](https://ifttd.io/listes-des-episodes/), un podcast de dev. Parle régulièrement d'outils no-code
- [The freelancer podcast (en)](https://studywebdevelopment.com/podcast.html), podcast qui traitent de sujets qui intéresseront les développeurs/designer freelance
- [L’actualité de la Tech à travers 49 podcasts francophones](https://blog.link-value.fr/actualite-tech-podcasts-9b327345e3af), liste de podcasts web, mobile, ops, etc. francophones
- [Radio Devops](https://shows.acast.com/radio-devops), le podcast des Compagnons du DevOps

### Cours

- [Litterature as data](https://www.hum307.com/), cours de [Brian Kernighan](https://www.cs.princeton.edu/~bwk/) et [Meredith Martin](https://english.princeton.edu/people/meredith-martin), un cours d'introduction à la manipulation de textes littéraires et de données en général (*Digital Humanities*)
- [Beej's Guide to Network Concepts](https://beej.us/guide/bgnet0/html/split/), un cours de Brian "Beej" Hall continuellement mis à jour depuis 1995 sur la programmation et les protocoles réseau. Exemples initialement en C, une nouvelle version est éditée en s'appuyant sur le langage Python. [Voir la version C](https://beej.us/guide/bgnet/html/split/). [Voir le site de Brian Hall](https://beej.us/guide/)

### Conférences

- [The Mother of All Demos](https://www.youtube.com/watch?v=yJDv-zdhzMY), Douglas Engelbart (1968)
- [The language of the system, Rich Hickey](https://youtu.be/ROor6_NGIWU)
- [Database as a value, Rich Hickey](https://youtu.be/EKdV1IgAaFc)
- [The value of values, Rich Hickey [vostfr]](https://youtu.be/VJi1vOwu2SM)
- [Are we there yet ?, Rich Hickey](https://youtu.be/ScEPu1cs4l0)
- [Hammock Driven Development, Rich Hickey](https://youtu.be/f84n5oFoZBc)
- [Is Software Engineering Still an Oxymoron? GOTO 2021 ](https://www.youtube.com/watch?v=D43PlUr1x_E), conférence organique et transdisciplinaire d'Alan Key le lien entre le développement informatique, l'ingénieurie et la science.
- [Rethinking CS Education | Alan Kay, CrossRoads 2015 ](https://www.youtube.com/watch?v=N9c7_8Gp7gI), conférence d'Alan Key sur le système éducatif et la manière de former au développement informatique avec beaucoup de recul
- [The computer revolution hasnt happened yet](https://www.youtube.com/watch?v=oKg1hTOQXoY), Alan Kay at OOPSLA 1997, toujours très transversal, sur les origines de l'OOP et ses ambitions initiales (produire des sytèmes à grande échelle)
- [Same-origin policy: The core of web security, OWASP Wellington](https://youtu.be/zul8TtVS-64), la SOP (Same Origin Policy) merveilleusement bien expliquée. La vidéo de référence sur le sujet. Une spécification implémentée par les navigateurs, à connaître (au moins vaguement) pour tous les développeurs (front ou back)
- [Tech Talk: Linus Torvalds on git](https://youtu.be/4XpnKHJAok8), je passerai pas un weekend avec Linus Torvald (le type est insupportable) mais faut avouer qu'il est vraiment intéressant
- [Noise based RNG](https://youtu.be/LWFzPP8ZbdU), une conférence intéressante sur la manière de produire de l'aléatoire de manière satisfaisante
- [I used Elm in production and it cost me my job, Annaia Berry](https://youtu.be/RFrKffrKCeU)
- [Assignment, State, and Side-effects](https://youtu.be/dO1aqPBJCPg)
- [The Art of Code, Dylan Beattie](https://youtu.be/6avJHaC3C2U)
- [Building the ultimate login and signup](https://www.youtube.com/watch?v=E25KxLKwY-M&list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3&index=17&t=1270s), vous pensiez que construire un formulaire de connexion/inscription à une appli web est trivial ? Ici vous verrez que non, un décorticage méthodique de toutes les potentielles failles de sécurité à prévoir quand on design un système de login. Donné par Matt Cotterelll, un ingénieur en sécurité basé en Nouvelle Zélande
- [Rich Harris - Rethinking reactivity](https://www.youtube.com/watch?v=AdNJ3fydeao&list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3&index=38&t=1s), conférence de Rich Harris, le créateur de Svelte sur la réactivité en programmation client. A croire que pour être un génie il faut commencer par s'appeler Rich.
- [Lets LISP like it's 1959](https://www.youtube.com/watch?v=hGY3uBHVVr4&list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3&index=38), une conférence vraiment intéressante sur la pratique et l'histoire des LISP, et bien sûr avec un humour pudique hyper agréable
- [Conférences de Web2day](https://www.youtube.com/c/Web2daynantesOrgweb2day/videos), conférences du festival Web2day tous les ans à Nantes
- [How to speak](https://www.youtube.com/watch?v=Unzc731iCUY), Patrick Winston (MIT) propose quelques heuristiques sur la manière de parler en public, de se présenter et de présenter ses idées

### La vérité par l'humour

- [*The Hustle*, Krazam](https://youtu.be/_o7qjN3KF8U)
- [*Microservices*, Krazam](https://www.youtube.com/watch?v=y8OnoxKotPQ)
- [*Positive Affirmations for Site Reliability Engineers*, Krazam](https://www.youtube.com/watch?v=ia8Q51ouA_s)
- [*Interview with Senior JS Developer in 2022*, Programmers are also human
](https://youtu.be/Uo3cL4nrGOk)
- [Wat, Gary Bernhardt](https://www.destroyallsoftware.com/talks/wat), exploration des arcanes de l'implémentation de différents langages

### Génération procédurale

- [Procedural Generation: Programming The Universe](https://youtu.be/ZZY9YE7rZJw),[javidx9](https://www.youtube.com/channel/UC-yuWVUplUJZvieEligKBkA) est un programmeur passioné, au flegme quasi britanique, qui vous accompagne avec bienveillance sur des projets de toute sorte, de développent de jeu vidéo et notamment de génération procédurale. Un vrai bijou de savoir-faire et de sympathie
- [Designing a Procedurally Generated Game - Dwarf Fortress, Darkest Dungeon, etc](https://youtu.be/S9pc8li4fuQ)
- [End-to-End Procedural Generation in Caves of Qud](https://youtu.be/jV-DZqdKlnE)
- [Dwarf fortress](http://bay12games.com/dwarves/), un projet fou [de générateur de monde de fantasy interactif](http://bay12games.com/dwarves/features.html), qui dure depuis plus de 20ans, fabriqué avec passion par deux frangins. Pour l'anectode, [dwarf fortress est rentré au MoMa](https://www.moma.org/collection/works/164920). Le jeu sert également de base pour [écrire des histoires](http://bay12games.com/dwarves/dev_story.html).
- [End-to-End Procedural Generation in Caves of Qud](https://www.youtube.com/watch?v=jV-DZqdKlnE&list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3&index=41&t=2320s), une conférence des devs de Caves of Qud, un "rogue-like" ASCII sur leurs techniques de génération procédurale pour générer des cultures, villages, personnages, environnements etc...

### Game Developers Conference (GDC)

La conférence annuelle de la communauté du développement du jeux vidéos. [Des tonnes et des tonnes de conférences](https://www.youtube.com/c/Gdconf) gratuites, de qualité (également dans la captation) à regarder.

- [Magic: the Gathering: Twenty Years, Twenty Lessons Learned](https://youtu.be/QHHg99hwQGY), très belle conférence sur le game design sur le long terme et le renouvellement du gameplay et d'une licence
- [Diablo: A Classic Game Postmortem](https://youtu.be/VscdPA6sUkc), conférence superbe, drôle et enrichissante sur le développement de Diablo dans les années 90 par le créateur original lui même

### Chaînes YouTube

- [Krazam (en)](https://www.youtube.com/channel/UCgBVkKoOAr3ajSdFFLp13_A), un humour tech de niche unique au monde
- [ici Amy Plant (fr)](https://www.youtube.com/channel/UC9wzC5mFFcIdguoyveTo6Ng), cherchez pas cette meuf produit du contenu unique
- [The Coding Train (fr)](https://www.youtube.com/channel/UCvjgXvBlbQiydffZU7m1_aw), l'innénarable Daniel Shiffman. Apprendre plein de trucs en codant des petits projets dans le fun
- [PHP UK Conferences (en)](https://www.youtube.com/c/phpukconference), oui c'est la chaine de la conférence éponyme et oui ça parle de PHP. Toutes les captations des conférences de chaque année sont présentes ici. Pour tous les dev qui veulent se maintenir informés sur PHP et son écosystème
- [AFUP PHP (fr)](https://www.youtube.com/@afupPHP), des tonnes de conférences de la communauté PHP française, beaucoup de conférences vraiment intéressantes et de qualité
- [GDC France (fr)](https://www.youtube.com/c/Gdg-franceBlogspotFr/about), notre GDC à nous. Héberge notamment toutes les captations du DevFest ayant lieu tous les ans à Nantes
- [DesignerUP (en)](https://www.youtube.com/DesignerUp), améliorez votre savoir-faire en UI/UX et design produit
- [ParfaitementWeb (fr)](https://www.youtube.com/c/ParfaitementWeb), une chaîne très appréciable qui est *content first*, va a l'essentiel et dont le contenu est de qualité sans chercher à capitaliser sur les tendances et montre un état des lieux honnête du développement web
- [Galileo51 Galilei (fr)](https://www.youtube.com/channel/UCXdBefIuCkeLl2IYJaZyMdQ), conférences sous-titrées en français sur la physique ou l'informatique/logiciel (oui c'est la chaine de l'auteur principal, un peu d'auto-promotion mais impartiale et objective)

### Playlists

- [MIT Course : Structure and Interpretation of computer programs, 1986 ](https://youtube.com/playlist?list=PLE18841CABEA24090), de l'or en barre
- [Playlist de conférences et vidéos informatique](https://youtube.com/playlist?list=PLS3XEhTy6-Ale8Et6pxRR2I3LYNt8-rX3), une playlist de conférences en informatique maintenue par un des auteurs du dépôt. Sujets divers
- [JavaScript Objects and Prototypes In-depth](https://youtube.com/playlist?list=PLqq-6Pq4lTTaflXUL0v3TSm86nodn0c_u), excellente série de vidéos détaillées pour bien comprendre les specs de JS et de son système de prototypes
- [Le tribunal des bureaux](https://www.youtube.com/watch?v=YglE-FnSd3g&list=PLDN-m4HWH8MBKJLYIK-80qJBBkVJbPo9p), cette série est un ovni qui n'a rien à envier aux Monty Ptython. Sous couvert d'humour (on est là avant tout pour se marrer) [ackboo](https://twitter.com/ackboo), journaliste chez Canard PC et détenteur de la chaire de bureaulogie au Collège de France, livre ici une prestation de santé publique qui devrait être financée par la sécu. Vous ne regarderez plus jamais votre bureau et celui des autres de la même manière. Il est peut-être temps de changer votre bureau pour vous respectez davantage et éspérer vivre plus longtemps en bonne santé. Pour les passioné·es de bureaulogie (tous niveaux confonfus). *La passion oui, le bordel non !*
- [DevFest Nantes 2022](https://www.youtube.com/watch?v=rQaEzZIZIRg&list=PLuZ_sYdawLiWIRK-QW6zpEJMSeCtspXP8)
- [Forum PHP 2022 (AFUP)](https://www.youtube.com/watch?v=nxs55WKRyQs&list=PL9zDdgiGjkIcN0fBpm7NX3ZC5Fh7e00Mj)
- [Category Theory](https://www.youtube.com/watch?v=I8LbkfSSR58&list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_), de Bartosz Milewski. Pour les programmeur·ses. Passionant ! [Voir le dépôt associé (livre)](https://github.com/hmemcpy/milewski-ctfp-pdf)

### Computer graphics et art génératif

- [Building Collision Simulations: An Introduction to Computer Graphics](https://youtu.be/eED4bSkYCB8)
- [generativeartistry](https://generativeartistry.com/), un superbe site regroupant une multitude de tutoriels sur de l'art génératif

### Créativité, modèles mentaux

- [John Cleese on Creativity In Management](https://youtu.be/Pb5oIIPO62g), le célèbre membre des Monty Python donne son point de vue sur le processus créatif en se basant sur ses expériences d'écriture avec les Monty Python

## Fondamentaux, radical

- [suckless](http://suckless.org/philosophy/)
- [POSSE](https://indieweb.org/POSSE), publier votre propre site, la pratique de publier son contenu d'abord sur son site avant de partager des liens sur les réseaux sociaux pour que les utilisateurs interagissent directement avec vous et votre contenu en priorité
- [motherfuckingwebsite](https://motherfuckingwebsite.com/) : les qualités du web 1.0 par l'exemple et *à coup de batte*. Mais la question de fond est plus que légitime et pertinente
- [mother fucking websites](https://duckduckgo.com/?q=motherfuckung+website+&t=fpas&ia=web), les forks de l'original qui surencherissent avec humour
- [The Duct Tape Programmer (en)](https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/), article
- [Minimal Viable Programs (en)](https://joearms.github.io/published/2014-06-25-minimal-viable-program.html), article
- [The Rise of ``Worse is Better'' (en)](https://www.jwz.org/doc/worse-is-better.html)

## Contribuer à des projets open-source

Par où commencer ? Comment faire ?

- [first timers only](https://www.firsttimersonly.com/), un guide pour rentrer dans la contribution à l'open-source
- [Producing Open Source Software](https://producingoss.com/en/index.html), un guide pour bien démarrer un projet open-source

## Rester informé·e

- [Hacker News](https://news.ycombinator.com/)
- [daily.dev](https://daily.dev/), créez votre feed d'actualités, posts sur des thématiques qui vous intéressent et suivez des gens qui publient des articles intéressant
- [Le Journal du Net](https://www.journaldunet.com/)
- [w3techs](https://w3techs.com/), des études sur l'usage des différentes technologies du web
- [La newsletter de developpez.com](https://www.developpez.com/newsletter/)

## Prendre soin de soi

Des heuristiques à la volée

- **La reconnaissance, ça passe avant tout par le salaire**. Même si on aime notre boulot, un boulot c'est un boulot. Faites-vous payer convenablement. C'est plus facile à dire qu'à faire, c'est un rapport de force à négocier, mais tout s'apprend, notamment à se (faire) respecter.
- Programmer c'est cool mais y'a autre chose dans la vie
- Quand on bloque sur un bug on s'arrête, on fait autre chose, et on revient avec la solution
- Quand on est fatigué, on s'arrête (au moins un moment)
- Quand on voit qu'on arrive plus à rien, on arrête. Si on ne peut pas arrêter tout de suite alors on fait des petites choses qui traînent et qui restent à faire. Au moins on avance et c'est satisfaisant.
- On peut tenir un journal (en Markdown bien sûr !) où on note chaque jour tout ce qu'on a fait dans la journée (on peut limiter au taf, mais on peut l'étendre à tout ce qu'on veut en fonction des besoins). On fait des listes avec des entrées courtes, pas besoin de détails. Ça sert à quoi ? A se dire "ah ouais quand même j'ai fait des trucs aujourd'hui même si j'arrête ma journée sur un bug que j'ai pas résolu et que j'ai l'impression d'être un gros looser"
- Quand on bloque sur un truc et que quelqu'un vous propose d'aller *X* (au choix boire un verre, manger un truc, aller voir un film, etc.) ne vous dites pas "non je ne peux pas, je dois finir ça *d'abord*. M***, si j'étais bon je pourrais résoudre ce problème et aller *X*. Mais comme je suis débile bin je dois rester devant mon ordi tout·e seul·e à galérer." Essayez plutôt "J'arrive dans 5 minutes" et lâchez votre ordi.
- Faire un peu de sport ça fait toujours du bien. Même si on en fait pas beaucoup, au moins se créer une habitude. Par exemple "Le mercredi à 17h je vais à la piscine, c'est non négociable, même si je nage 5min". Le fait d'y aller, qu'on ai envie ou pas, déjà c'est une victoire et le début d'habitudes saines pour vivre plus longtemps
- [Faire (très) attention au burnout et identifier les symptômes le plus tôt possible](https://www.passeportsante.net/fr/Maux/Problemes/Fiche.aspx?doc=epuisement_professionnel_pm). Vous n'avez pas envie de vivre ça (votre conjoint·e/chat·te/chien·ne non plus). Un [témoignage d'un dev](https://www.jesuisundev.com/burnout/)
- [[DevFest Nantes 2022] Ctrl+Alt+Depression](https://www.youtube.com/watch?v=MN3D0uLEERU), une très bonne et courageuse conf/partage d'expérience sur la dépression et le burnout, donnée par Manon Gruaz au DevFest de Nantes 2022.

## Prendre soin de sa machine et de ce qu'il y a dessus au quotidien

- [Lynis](https://cisofy.com/lynis/), outil d'audit open-source pour les systèmes d'exploitation Unix/Linux. Il vous fera un audit complet des vulnérabilités (configuration, binaires, droits et autorisations des utilisateurs, vulnérabilités de l'OS, etc.) de votre machine à partir duquel vous pouvez prendre les mesures nécessaires.
- [rkhunter](http://rootkit.nl/), outil pour détecter et supprimer les [rootkits](https://fr.wikipedia.org/wiki/Rootkit) (logiciels malveillants donnant un accès non autorisé à un ordinateur de manière furtive) qui pourraient s'être faufilés sur votre machine.
- [Linux Malware Detect](https://www.rfxn.com/projects/linux-malware-detect/), un logiciel anti-malware pour les systèmes Linux.
- [Bleachbit](https://fr.wikipedia.org/wiki/BleachBit), logiciel open-source gratuit, puissant (il est sorti en 2008 et maintenu depuis), multiplateformes de nettoyage d'espace disque sécurisé, de protection de la vie privée et d'optimisation. Pour prendre soin dans le temps de sa machine. Bleachbit vient avec une interface graphique mais également une interface en ligne de commande pour être utilisé directement depuis vos scritps et workflows.
- [Stacer](https://github.com/oguzhaninan/Stacer), optimisation et monitoring de votre machine linux, avec une interface graphique sympa
- [backup-manager](https://github.com/sukria/Backup-Manager), un programme [configurable](https://doc.ubuntu-fr.org/backup-manager), scriptable, simple et puissant pour faire des backups automatiques ou manuels, complets/incrémentaux, de vos données et vos bases de données. Que vous utilisiez ce logiciel ou un autre, peu importe, la première sécurité c'est de ne pas perdre vos données. *Tape is cheap, and `rm` is forever*.

## *Makers*, partage de guides, de tutoriels sur la fabrication et l'artisanat - "Do it yourself"

- [instructables](https://www.instructables.com/), explorer, documenter et partager vos créations artisanales

## Géométrie, art génératif, algorithmes, procédural

- [Red Blob Games](https://www.redblobgames.com/), le site d'Amit Patel. Un bijou de pédagogie sur les structures de données, algorithmes, la génération procédurale etc. Une vrai référence notamment sur [la manipulation des grilles hexagonales](https://www.redblobgames.com/grids/hexagons/) et les algorithmes de pathfinding. Chaque article est garni de démos interactives, révisé sans arrêt. Contenu de très grande qualité.

## Correction

- [Lexique des règles typographiques en usage à l’Imprimerie nationale](https://www.eyrolles.com/Audiovisuel/Livre/lexique-des-regles-typographiques-en-usage-a-l-imprimerie-nationale-9782743304829/), l’ouvrage de référence de base du correcteur appelé aussi *code typo*.
- [Vitrine linguistique](https://vitrinelinguistique.oqlf.gouv.qc.ca/), vitrine linguistique, sert de référence en ligne à de nombreux·ses correcteur·rices
- [André jouette: dictionnaire d'orthographe et d'expression ecrite](https://www.amazon.fr/Dictionnaire-dorthographe-dexpression-%C3%A9crite-Jouette/dp/2850362247)
- [ACLF](https://www.associationdescorrecteurs.fr/), Association des Correcteurs de la Langue Française. Vous y trouverez notamment les liens vers [les outils indispensables](https://www.associationdescorrecteurs.fr/outils/les-indispensables/) reconnus comme tels par toute la profession
- [Voir l'entrée sur `wwb`](#boîte-à-outils)

## Trouver du boulot

### A distance (*remote*)

- [AngelListTalent](https://angel.co/)
- [REMOTE.CO](https://remote.co/)
- [We Work Remotely](https://weworkremotely.com/)
- [flexjobs](https://www.flexjobs.com/)
- [authentic jobs](https://authenticjobs.com/)
- [homajob](https://homajob.com/)
- [remoteok](https://remoteok.com/)
- [remotive](https://remotive.com/)

## Banques de ressources, dépôts, cours

### Général

- [Free web development resources](https://markodenic.com/free-web-development-resources/), un site maintenant une liste de ressources pour le développement web
- [webcode.tools](https://webcode.tools/)
- [Awesome Web Development Resources](https://github.com/markodenic/web-development-resources), un dépôt impressionant (et mieux organisé que celui-ci) référençant des tonnes de ressources pour le développement web
- [web fundamentals](https://developers.google.com/web/fundamentals), les références de Google pour faire du bon web
- [design resources for developer](https://github.com/bradtraversy/design-resources-for-developers)
- [awesome-learning-resources](https://github.com/lauragift21/awesome-learning-resources)
- [Best-websites-a-programmer-should-visit](https://github.com/sdmg15/Best-websites-a-programmer-should-visit), une liste de sites web utiles aux programmeu·r·ses
- [Web Development Resources You Ever Need](https://github.com/iamismile/web-dev-resources), un dépôt maintenant une liste de ressources pour le développement web
- [Design Resources for developers](https://github.com/bradtraversy/design-resources-for-developers), un autre dépôt maintenant une liste de ressources pour le design/composants web
- [Web development resources](https://github.com/MilanAryal/web-development-resources), un autre dépôt maintenant une liste de ressources pour le dev
- [le site de E. Thirion](http://cours.thirion.free.fr/Cours/BaseDeDonnees1/index.php), les cours de E. Thirion sur MySQL. E. Thirion est un chercheur et enseignant en informatique depuis des années et a développé un site pour réunir et partager ses cours sur tout un tas de sujets liés au développement informatique (bases de la programmation, POO, UI, développement web, [bases de données relationnelles](http://cours.thirion.free.fr/Cours/BaseDeDonnees1/index.php), [Merise](http://cours.thirion.free.fr/Cours/Merise/index.php), etc.). Et on l'en remercie.
- [My knowledge wiki (en)](https://wiki.nikiv.dev/), de [Nikita](https://twitter.com/nikitavoloboev), un développeur qui partage toute sa veille sous forme de wiki hébergé sur Github. De quoi creuser dans toutes les directions. Une mine de ressources commentée.
- [My favorite technical blogs](https://lists.eatonphil.com/blogs.html), une liste filtrée de blogs techniques proposée par Phil Eaton

### Outils "*no code*", "*low code*" ou plutot *visual code*

- [awesome-nocode-lowcode](https://github.com/valentin-vogel/awesome-nocode-lowcode)

### Côté client (*Front-end*)

- [Jonas' Resources for Hand-Crafting Beautiful and Performant Websites](https://codingheroes.io/resources/)
- [omatsuri](https://omatsuri.app/)
- [frontend dev bookmarks](https://github.com/dypsilon/frontend-dev-bookmarks), une liste de ressources de qualité pour les développeurs frontend
- [css-protips](https://github.com/AllThingsSmitty/css-protips), un dépôt qui documente tout un tas de conseils pour le CSS avec exemples à l'appui
- [front end checklist](https://github.com/thedaviddias/Front-End-Checklist), liste tout ce que vous devez pensez à checker sur votre front avant d'envoyer en prod

### Développement de jeux vidéos

- [GameDev Ressources](https://github.com/Kavex/GameDev-Resources), un dépôt recenssant une tonne de ressources pour le développement de jeux vidéos (asset, code, design, outils, etc.)
- [Magic tools](https://github.com/ellisonleao/magictools), un autre dépôt recenssant une tonne de ressources pour le développement de jeux vidéos (asset, code, design, outils, etc.)
- [Keys to Economic Systems](https://gdkeys.com/keys-to-economic-systems/?utm_source=pocket_mylist), un excellent article sur la modélisation de systèmes économiques dans un jeu vidéo.
- [Game Loop, game programming pattern](https://gameprogrammingpatterns.com/game-loop.html), un article complet sur l'implémentation d'une game loop et ses différentes variantes
- [Fix Your Timestep!](https://gafferongames.com/post/fix_your_timestep/), un classique de Glenn Fiedler sur son site [Gaffer On Games](https://gafferongames.com/)

### Applications web et réseaux à héberger *soi-même*

- [Awesome-Selfhosted](https://github.com/awesome-selfhosted/awesome-selfhosted), un dépôt qui liste des logiciels libres (free software) webs et réseau à herberger soi-même

### Conférences

- [awesome-talks](https://github.com/JanVanRyswyck/awesome-talks), un dépôt maintenant une liste de conférences tech, sacré taff

### Revues et magazines informatiques

- [magazines abandonware](https://abandonware-magazines.org/), bibliothèque numérique consacrée aux anciens magazines informatiques. Découvrir ou redécouvrir des numéros complets d'anciens titres informatiques francophones

### Machine learning

- [Awesome MLOps](https://github.com/visenger/awesome-mlops)

### Spécifique à une techno

#### PHP

- [Awesome PHP](https://github.com/ziadoz/awesome-php), une liste organisée de ressources pour PHP (lib, books, podcasts, frameworks...)
- [Clean Code PHP](https://github.com/jupeter/clean-code-php), des principes de clean code appliqués à PHP

#### Java

- [Le didacticiel "Développons en Java"](https://www.jmdoudoux.fr/accueil_java.htm#dej), le site de la légende française de l'écosystème Java, [J.M. Doudoux](https://www.jmdoudoux.fr/presentation.htm). Il propose notamment un didacticiel *Développons en Java*, de 128 chapitres des bases jusqu'aux sujets les plus pointus, toujours mis à jour. Pour approfondir Java il est difficile de faire mieux dans la francophonie
- [A Java geek](https://blog.frankel.ch/), blog de Nicolas Fränkel. Excellents articles sur l'écosystème Java

#### JS

- [awesome-js](https://github.com/ggomaeng/awesome-js), une liste organisée sur les fondamentaux JS et algos
- [awesome-json](https://github.com/burningtree/awesome-json), la même sur des lib et ressources pour le json
- [awesome-fp-js](https://github.com/stoeffel/awesome-fp-js), la même sur la programmation fonctionnelle
- [awesome-jquery](https://github.com/petk/awesome-jquery), la même sur Jquery
- [airbnb/javascript](https://github.com/airbnb/javascript), le guide des bonnes pratiques JS d'airbnb

#### Typescript

- [awesome-typescript](https://github.com/dzharii/awesome-typescript), la même pour Typescript

#### Vue.js

- [awesome-vue](https://github.com/vuejs/awesome-vue)

#### Node.js

- [wesome-nodejs-security](https://github.com/lirantal/awesome-nodejs-security), la même sur des ressources pour sécuriser ses projets node.js

#### Flutter

- [awesome-flutter](https://github.com/Solido/awesome-flutter), un dépôt qui maintient une liste filtrée de ressources pour Flutter

### Projets open-source

- [awesomo](https://github.com/lk-geimfari/awesomo), une liste de projets open-source intéressants (notamment si on veut se mettre à contribuer à l'open source)

### Design

- [awesome-design-patterns](https://github.com/DovAmir/awesome-design-patterns), des solutions réutilisables face à des problèmes courants d'architecture logicielle

### Architecture logicielle

- [A comprehensive list of books on Software Architecture](https://github.com/mhadidg/software-architecture-books)

### Apprendre

- [The design system primer](https://github.com/donnemartin/system-design-primer), dépôt qui liste de nombreuses ressources pour apprendre à designer des systèmes informatiques sur le web. Focus sur la préparation aux entretiens

- [project-based-learning](https://github.com/practical-tutorials/project-based-learning), une liste de tutoriels dans différents languages pour apprendre des technos sur des idées de projet

- [build-your-own-x](https://github.com/codecrafters-io/build-your-own-x), des guides sélectionnés et corrigés pour recréer des logiciels que vous utilisez tous les jours (client BitTorrent, Bot, CLI, git, etc.). Vous permet de comprendre comment ces logiciels fonctionnent et d'apprendre des technos

- [every-programmer-should-know](https://github.com/mtdvio/every-programmer-should-know), un immense dépôt qui agrège une collection de savoirs techniques bon à connaître ou à découvrir lorsqu'on est développeur.

- [professional-programming](https://github.com/charlax/professional-programming), collection de ressources pour apprendre sur tout un tas de sujets liés aux webs

- [system-design-primer](https://github.com/donnemartin/system-design-primer), apprendre comment designer des grands systèmes d'information
- [awesome-guidelines](https://github.com/Kristories/awesome-guidelines), les standards d'écriture adapotés par chaque communauté (langage/techno)

-[app-ideas](https://github.com/florinpop17/app-ideas), des idées d'applications à développer si on est en panne d'inspiration

### API

- [public-apis](https://github.com/public-apis/public-apis), une collection d'API publiques classées par thématique. Magnifique travail
- [markodenic/public-apis](https://github.com/markodenic/public-apis), un autre dépôt listant des api publiques, par [Marko Denic](https://markodenic.com/)

### Divers

- [coding horror posts](https://gist.github.com/tssm/7789984), un dépôt qui liste les posts de[coding horror](https://blog.codinghorror.com/)
- [developer roadmap](https://github.com/kamranahmedse/developer-roadmap), un dépôt qui propose des chemins d'apprentissage pour les différents postes du web
- [gitignore](https://github.com/github/gitignore), une collection de templates pour vos fichiers `.gitignore`
- [big-list-of-naughty-string](https://github.com/minimaxir/big-list-of-naughty-strings), un dépôt qui recense toutes les chaînes de caractères qui pourraient poser problème quand elles entrent dans votre application
- [the-art-of-command-line](https://github.com/jlevy/the-art-of-command-line), s'améliorer en ligne de commande
- [html5-boilerplate](https://github.com/h5bp/html5-boilerplate), un template de départ professionnel pour vos fichiers html

### Lecture : articles, livres techniques (informatique, mathématiques)

- [techbooks](https://github.com/zouyanjian/techbooks/tree/master/history_books), un dépôt qui héberge une tonne de bouquins techniques au format PDF
- [free-programming-books](https://github.com/EbookFoundation/free-programming-books), un dépôt qui héberge une tonne de bouquins techniques au format PDF maintenu par la [Free Ebook Foundation](https://ebookfoundation.org/)
- [free-programming-books en français](https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-fr.md), même dépôt que précédemment mais listant que des livres de programmation en français !
- [pdfdrive](https://www.pdfdrive.com/), une appli web qui scrap le web en quête de pdf pour vous. Application de service publique. Edit: non fonctionnel actuellement (07/2023)
- [internet archives](https://archive.org/), une bibliothèque en ligne à but non lucratif. Des tonnes et des tonnes de livres à retrouver, explorer, télécharger gratuitement
- [framabook](https://archives.framabook.org/category/manuels/index.html), des livres livres de droit, projet porté par [framasoft](https://framasoft.org/fr/)
- [papers we love](https://github.com/papers-we-love/papers-we-love), un dépôt recensant et hébergeant (quand c'est possible) tout un tas d'articles sur l'informatique. Recense également une collection de sites pour trouver des papiers intéressants à lire
- [des livres](https://drive.google.com/drive/folders/1g-fs7vr3_2pGw5sevD_eutVuskKLFMz7?usp=sharing), des livres sur la programmation/informatique, le dessin, des motifs géométriques, mathématiques
- [livres gratuits pour les designers](https://www.lapa.ninja/book/)
- [Free books center](http://www.freebookcentre.net/), des liens vers des centaines de livres techniques gratuits
- [Programming Books: An Ordered and Curated Reading List for Software Craftsmanship Growth](https://www.programmingbooks.dev/), une liste de livres d'informatique classée par niveaux, par [Cenny Davidsson](https://www.programmingbooks.dev/about/)
- [200+ Useful Free Math Books for Lifelong Learners](https://abakcus.com/useful-free-math-books-for-lifelong-learners/), une liste de livres de mathématiques disponibles gratuitement en PDF

## Vendre

### Vendre des templates

Vendre des templates HTML/CSS/JS, plugins, graphismes etc. :

- [themeforest.net](https://themeforest.net/)
- [monsterone.com](https://monsterone.com/)
- [codester.com](https://www.codester.com/)
- [creativemarket.com](https://creativemarket.com/)
- [designhill.com](https://www.designhill.com/)
- [templatemonster.com](https://www.templatemonster.com/)
- [mojomarketplace.com](https://www.mojomarketplace.com/)

### Vendre des articles

- [CommunityWriterPrograms](https://github.com/malgamves/CommunityWriterPrograms), une liste de sites/éditeurs à qui vous pouvez soumettre des articles techniques contre rémunération
- [digitalocean](https://www.digitalocean.com/community/pages/write-for-digitalocean), proposer des articles sur l'administration et l'écosystème linux, Docker ou la sécurité informatique. Seuls des articles portant sur des logiciels open-source sont acceptés. En voici une liste non exhaustive, pour en voir davantage [rendez-vous sur ce dépôt](https://github.com/malgamves/CommunityWriterPrograms).
- [SMASHING MAGAZINE](https://www.smashingmagazine.com/write-for-us/)
- [testdrivenio](https://testdriven.io/blog/), sur les tests, l'optimisation et la mise à l'échelle de systèmes
- [auth0](https://auth0.com/apollo-program), sujets acceptés: identité/sécurité, mobile (natif et cross platform), python, Electron, Java, .Net
- [tutorialspoint](https://www.tutorialspoint.com/about/tutorials_writing.htm), sur les technos de l'information, la qualité, les technos webs, big data, sujets académiques, etc.
- [envatotuts+](https://code.tutsplus.com/articles/call-for-authors-write-for-tuts--cms-22034)
- [Guest Writer Program](https://circleci.com/blog/guest-writer-program/)
- [draft.dev](https://draft.dev/write)
- [honeybadger](https://www.honeybadger.io/blog/write-for-us/), php, ruby, python
- [linode](https://www.linode.com/lp/write-for-linode/)

## Trouver des livres techniques d'occasion pas cher

Les livres ça coute cher. Heureusement on en trouve plein en ligne gratuitement. Mais certain·e·s aiment bien le papier, vivre parmi les livres et en devenir familier pour retrouver facilement un chapitre dans un bouquin au pied levé, entourer, surligner, mettre des marque pages partout etc...

Pour cela on peut trouver pas mal de vieux livres mais qui restent toujours pertinent sur [recyclelivre.com](https://www.recyclivre.com/shop/11600-), une recyclerie de livres en ligne. On peut facilement repartir avec des livres de qualité pour quelques euro. En plus recyclelivre fait de la réinsertion sociale et verse une partie de ses bénéfices à des associations écolos.

Certaines villes ont peut être encore la chance d'avoir des *Librairies médicales et scientifiques*, un ancien réseau de librairies pour les étudiants. Ces librairies disposaient d'une section informatique et distribuait notamment des livres de l'éditeur O'Reilly.

Si vous avez des adresses de librairies physiques pour des livres techniques en informatique n'hésitez pas à les suggérer via une Pull Request. C'est très difficile d'en trouver malheureusement [dès qu'on s'éloigne de la capitale](https://www.chienlit.com/librairies-paris-litterature-informatique/)...