Une liste des quelques contributions que j’ai effectuées sur des projets libres, avec une description succincte.
shadow
(article)metahanoi
(article)AImageView
/AImageViewSample
(article)rsshfs
(article)vlc-udp-deadlock
(sample pour ce patch)andudpxy
/andudpxy-sample
(article)mdbeamer
(article)delay
(article)pibuf
rogpoc
(topic)mixpoc
(article)gitbashprompt
(article)csnakesolver
(article)snakesolver
(article)pluzz
(article)J’ai développé une application qui permet de voir et de contrôler des devices
Android à partir du PC.
scrcpy
| article en | LinuxFR |
reddit | Hacker News
J’ai développé un outil qui permet aux devices Android d’utiliser la connexion
du PC sur lequel ils sont branchés (reverse tethering), sans accès root.
gnirehtet
| article fr | article en
| LinuxFR | reddit |
Hacker News
Je l’ai ensuite réécrit en Rust.
article fr | article en |
annonce | LinuxFR |
reddit | Hacker News
Maintenant, je travaille chez VideoLabs à plein temps sur VLC, donc je ne
vais plus lister chacun de mes commits. Voir la mailing-list et le git log
de VLC si ça vous intéresse.
Voici les premières principales contributions :
618a789
)1789d18
)ee83628
et suivants)983c43f
)40c6d71
)7c82c7b
et suivants)3e0cc19
et 8fbc2e6
)J’ai écrit un article détaillant la nouvelle playlist.
reddit | Hacker News
Auparavant, j’avais aussi corrigé quelques bugs sur VLC :
8a3958c
)7a46fc4
)991ed98
)3ff283b
)ea0a32e
)ea0a32e
)rav1e est un encodeur AV1, développé par Mozilla/Xiph, écrit en Rust.
Afin de pouvoir encoder (et décoder) une vidéo en utilisant plusieurs
processeurs, j’ai implémenté le tile encoding.
article en | r/programming |
r/rust | r/AV1 | Hacker News
mio est une library d’I/O asynchrone pour Rust.
J’ai supprimé l’interdiction d’enregistrer un handle avec un ensemble d’intérêts vide, étant donné que les backends le supportent. Cette modification était nécessaire au bon fonctionnement de Gnirehtet :
Quelques opérateurs manquaient sur mio::Ready
:
J’ai aussi ouvert quelques rapports de bugs :
libusb est une bibliothèque C pour communiquer sur USB.
J’ai corrigé un bug qui pouvait provoquer l’arrêt de l’event thread udev lors d’un signal. En particulier, il s’arrêtait à chaque fois qu’une FileDialog Qt/QML était ouverte :
F-Droid est un store d’applications libres pour Android. Cet article LinuxFR fournit un bon résumé.
J’ai corrigé quelques bugs qui m’agaçaient lors de l’utilisation de l’application.
L’état de l’application n’était pas mis à jour immédiatement lors d’une installation ou désinstallation d’une application (l’écran affichait donc une information erronée) :
L’application plantait lors de la désinstallation d’applications :
L’application pouvait également planter pour une autre raison si l’activité avait été détruite par le système pendant l’installation ou la désinstallation d’une application :
Android-Universal-Image-Loader est une bibliothèque facilitant le chargement d’images dans les applications Android.
J’ai corrigé un bug aspect-ratio sur les images circulaires :
J’ai rapporté un bug constaté sur l’utilisation loaders lors de la rotation d’écran, pour lequel j’ai ensuite proposé un patch :
J’ai également supprimé une petite erreur dans la documentation de
SharedPreferences
:
J’ai corrigé une fuite mémoire sur la CastCompanionLibrary
(la
bibliothèque de Google pour communiquer avec un chromecast) :
Le projet Serval, en particulier son application Batphone pour Android, a pour but de faire communiquer les téléphones sur un réseau maillé (sans infrastructure). Voir par exemple les articles du Monde, de Next Inpact ou de Korben.
J’ai effectué deux modifications concernant le protocole MDP (l’équivalent de l’UDP sur réseau Mesh).
La première rend l’utilisation du MDP similaire à l’API socket standard C, et rend possible l’utilisation de plusieurs services simultanés :
commit 954a8a0
)La seconde implémente les “bindings Java” permettant d’utiliser les sockets MDP en Java, de manière similaire à l’API socket Java.
J’ai ensuite développé, en utilisant le protocole MDP ainsi modifié, un mode talkie-walkie (communication n-to-n) sur réseau mesh :
non destiné à être mergé en l’état
Thinktube a modifié Android pour y ajouter le support du mode ad-hoc. En particulier, ils ont codé le pilote pour le faire fonctionner sur Galaxy Nexus. Cependant, tel quel, Serval ne pouvait pas piloter le wifi sur ce téléphone. J’ai donc ajouté la “colle” manquante. J’ai ensuite fait de même pour la Nexus 7 :
Tous les traitements de Serval sont effectués dans un seul thread, ce qui pose problème avec Rhizome, qui exécute des actions longues, bloquant tous traitements liés au routage et au transfert de données.
J’ai proposé une implémentation de parallélisation de Rhizome basée sur les threads POSIX :
Ce n’est pas du code, mais des réflexions sur le fonctionnement de Rhizome :
J’ai aussi implémenté un PoC pour explorer le principe d’implémenter la partie stockage de Rhizome par-dessus git :
AndroidAnnotations est un framework qui aide au développement d’applications Android en générant du code à partir d’annotations lors de la compilation.
@Background
J’ai ajouté la possibilité de sérialiser, à la demande, l’exécution de tâches en
arrière-plan. Concrètement, cela permet d’écrire @Background(serial="some_id")
pour garantir que toutes les actions ayant le même identifiant soient
séquentielles :
J’ai ensuite ajouté la possibilité d’annuler des tâches exécutées en arrière-plan :
Une régression a été introduite plus tard, que j’ai également corrigée :
Le wiki propose une intégration d’AndroidAnnotations avec Ant trop compliquée et intrusive. J’en propose une autre, plus simple et plus naturelle :
K9mail est un client mail Android.
J’ai effectué une minuscule modification d’optimisation des performances :
Un petit logiciel pour regarder la TV avec la Freebox que j’ai commis en 2005. myfreetv.sourceforge.net maintenant obsolète