Notes

1. Évènements

2. Liens

3. Koans

Les petits conseils des maîtres chinois.

4. Sites basés

Sites perso ou sans ligne directrice mais très basés :

Sanctum
site perso (mainteneur d'Arabasque, a contribué à Vim, cgit…). etc est intéressant aussi.
Revvy
site hébergeant plusieurs services

gopher://sectordisk.pw gopher://katolaz.net/0/edtutorial.txt

5. Articles intéressants

6. Projets

Idée de workflow, 3 projets en parallèle (en plus de l'écriture de cours) :

  • projet bas niveau : eudyptula, noyau…
  • projet haut niveau : calendrier, aoc…
  • RE

Je me fixe un projet pour chaque catégorie / semaine et je ne le change pas avant la fin de la semaine.

Exemple :

  1. Eudyptula / noyau / sysadvent / écriture de firmware / arduino
  2. aoc / projet perso web

6.1. Top moumoute

De ceux que je veux absolument faire.

  • [-] Noyau C
  • [ ] Noyau Rust
  • [ ] Jeu MSX
  • [ ] Jeu NES
  • [ ] Jeu SNES
  • [ ] Jeu (3)DS
  • [ ] RTS 100% libre (des assets au code)
  • [ ] MC like
  • [ ] Raytracer
  • [ ] Raytracer sur un truc à la con (DS, SNES…)
  • [ ] Botnet
  • [ ] Virus
  • [ ] Logiciel de triche

6.2. Challenges

6.2.1. CodingChallenges

https://codingchallenges.substack.com/ - https://codingchallenges.fyi/

Avoir 1 dépôt / projet ? des dépôts qui se regroupent parfois (ex. avec les clones d'outils cli ?)

Faire une liste de catégories pour faire les défis. La faire avant de commencer et ne pas la modifier plus que ça. Piocher dans ces technos pour faire les défis. On essaie d'être le plus bare metal possible.

I want it on my PDP-11
ANSI C, Ada, Fortran, Turbo Pascal
Madman
ASM (ARM, RISCV, X86…)
Retro
ANSI/ISO C, PHP, Perl
'10
Rust, JS (avec framework comme NodeJS), Go, Java
Functional enjoyer
Haskell, Ocaml

Liste

  • [ ] wc
  • [ ] JSON parser
  • [ ] Compression tool
  • [ ] cut
  • [ ] Load Balancer
  • [ ] Sort tool
  • [ ] Calculator
  • [ ] Redis Server
  • [ ] grep
  • [ ] uniq
  • [ ] Web Server
  • [ ] URL shortener
  • [ ] diff
  • [ ] Shell
  • [ ] cat
  • [ ] IRC client
  • [ ] Memcached Server
  • [ ] Spotify Client
  • [ ] Bot Discord
  • [ ] Linkedin Carousel Generator
  • [ ] sed
  • [ ] DNS Resolver
  • [ ] Traceroute
  • [ ] Realtime Chat Client & Server
  • [ ] NATS Message Broker
  • [ ] Git
  • [ ] Rate limiter
  • [ ] NTP Client
  • [ ] Scheduling Automation App
  • [ ] Lisp interpreter
  • [ ] QR code generator
  • [ ] Crontab tool
  • [ ] head
  • [ ] jq
  • [ ] Google Keep
  • [ ] Pong
  • [ ] Redis CLI Tool
  • [ ] Network Modelling Tool
  • [ ] Social Media Tool
  • [ ] curl
  • [ ] HTTPS load tester
  • [ ] tr
  • [ ] Tetris
  • [ ] DNS Forwader
  • [ ] Port Scanner
  • [ ] yq
  • [ ] Chrome Extension

6.2.2. AoC

[ ] 2015
1 langage différent / jour
[ ] 2016
[ ] 2017
[ ] 2018
[ ] 2019
[ ] 2020
en C
[ ] 2021
[ ] 2022
[ ] 2023
[ ] 2024

6.2.3. Eudyptula [50%]

https://git.gnous.eu/Rick/eudyptula/src/branch/master/TASKS.txt

[X] Tache 1
premier module basique, un helloworld
[X] Tache 2
compilation du noyau (fait sur Gentoo, pas en rapport avec l'eudyptula)
[X] Tache 3
découverte des patchs par mail
[X] Tache 4
coding style
[X] Tache 5
device driver
[X] Tache 6
Misc characters device
[ ] Tache 7
compilation de linux-next (pas fait, mais procédure similaire au noyau classique)
[X] Tache 8
debugfs et verrous (sémaphore / mutex…)
[X] Tache 9
sysfs et verrous
[ ] Tache 10
premier patch de style à soumettre à la liste de mails du noyau
[ ] Tache 11
modification d'un driver noyau pour voir comment marche la partie sysfs pour les devices
[X] Tache 12
type liste chaînée propre au noyau
[X] Tache 13
cache
[ ] Tache 14
tâches du noyau
[ ] Tache 15
création d'un syscall (noyau)
[ ] Tache 16
outil et fix de drivers (noyau)
[ ] Tache 17
thread
[ ] Tache 18
thread
[ ] Tache 19
réseau
[ ] Tache 20
système de fichiers (noyau)

6.2.4. sysadvent [12%]

Page du challenge - Lien historique

Utilisation des syscalls Linux pour faire des tâches.

  1. [X] cat (open, read, close, write)
  2. [X] fork (clone, getppid, getpid, gettid, getuid)
  3. [X] mapping de fichiers avec la mémoire (ftruncate, mmap)
  4. [ ]
  5. [ ]
  6. [ ]
  7. [ ]
  8. [ ]
  9. [ ]
  10. [ ]
  11. [ ]
  12. [ ]
  13. [ ]
  14. [ ]
  15. [ ]
  16. [ ]
  17. [ ]
  18. [ ]
  19. [ ]
  20. [ ]
  21. [ ]
  22. [ ]
  23. [ ]
  24. [ ]

6.2.5. NaN

https://github.com/NotANameServer/challenges

  1. [X] Algorithme de tri : à améliorer
  2. [ ] Génération de labyrinthe
  3. [ ] Résolution de labyrinthe
  4. [ ] Implémentation d'un serveur HTTP
  5. [ ] Automates cellulaires
  6. [ ] Client IRC
  7. [ ] Calculatrice
  8. [ ] Puissance 4
  9. [ ] Puissance 4 - Protocole
  10. [ ] Jeu de boules
  11. [ ] Le juste prix

6.3. En cours

calendrier

pour stocker des events et s'organiser pour y aller

Les tests sont en cours d'écriture, il faut commencer aussi à faire le back en parallèle. Le front sera en Laravel / Livewire (équivalent VueJS en php / blade).

scripts
fusion de plusieurs dépots (autoRequirements, rotateX61T et swapiswap). Il contiendra les futurs scripts trop petits pour avoir un dépôt à part.
test-msx
apprendre l'ASM pour le MSX
test-3ds
apprendre à dev sur la 3DS
test-snes
apprendre le dev sur SNES
triachievements

site permettant de trier les jeux par temps de complétion

À reprendre (peut-être pas depuis 0). Il faut rajouter des sources pour les heures et si possible réduire le temps de calcul ou mettre en cache après.

secretsantagenerator

petit site pour faire un secretsanta

Meilleure interface + compte pour créer un secretsanta, le partager par mail, pas besoin de compte pour voir à qui on doit offrir quelque chose (cf. tickets).

spotifytobandcamp

cherche des artistes se trouvant dans une playlist spotify sur bandcamp

Faire une meilleure interface et le continuer.

plane

plugin csgo pour gérer des LANs

À reprendre pour CS2 et voir pour une interface web pour les admins ?

macros

permet de refaire une séquence de touches enregistrées

À améliorer avec notamment la compilation pas que sur Gentoo et l'ajout des touches du clavier.

red

ed en rust

Apprendre davantage ed pour faire une meilleure implémentation.

blog-utils
docker et script pour le blog
overlay
overlay gentoo
deploiement
ansible pour déployer mon infra
nuir
thème du blog
gemini-server

un serveur gemini en guile

Revoir la doc. de Guile sur SSL pour le continuer.

(no term)
chip8
emulator
le continuer et le débogguer bordel de dieux
compilator
le commencer lol
vim-testalgo
plugin vim pour testalgo
rishtik

un shell basique

L'archiver et le reprendre de 0 ?

groupementliens
une sorte de shaarly, à checker et l'archiver si inutile

6.4. À archiver

partage-notes

partager facilement des notes org

À regarder s'il y a des trucs à garder, sinon on archive / supprime ?

motusbash

le motus mais dans un script bash

À archiver ?

extractdiscordresearch

extraire la recherche discord

Check si toujours utilisable.

morse-light

un système pour faire des signaux morses avec un arduino

À archiver ?

6.5. A commencer

421
jeu du 421 dev en Java avec interface graphique
aukus
shazam mais libre (application + à voir pour la reconnaissance de son)
cdille
moteur de blog en C en parsant des fichiers textes vers HTML
testalisp
testalgo en lisp
(no term)
blockchain
(no term)
un langage
(no term)
firmware montre connectée
(no term)
jeu walking sim dans espace liminal
(no term)
RAT
(no term)
moteur 3D
(no term)
jeu doom like
(no term)
shader (https://www.shadertoy.com)
(no term)
demo

6.6. Finis

6.6.1. Terminés

Ces projets sont finis mais peuvent recevoir des mises à jours de sécurité ou pour rajouter des fonctionnalités dans le futur. Ils ne sont plus en développement actifs.

juniper-config-to-set
permet de convertir des configurations pour juniper

6.6.2. Archivés

Je ne toucherai plus à ces projets, plus de mise à jour (sauf cas exceptionnel). Ils sont abandonnés / dans une forme finale qui me convient.

mastodon-icone
ajouter une icone de profile mastodon sur un autre site

Created: 2024-04-06 sam. 14:29

Validate