Journal
Ce journal contient 354 entrées.
Teach Yourself Japanese
Teach Yourself Japanese
Getting started with the i3 tiling window manager
Démarrer avec i3
/proc
/proc in a nutshell :)
AcoustID
AcoustID is a project providing complete audio identification service, based entirely on open source software.
The Unreasonable Effectiveness of Recurrent Neural Networks
Expérimentations avec des réseaux de neurones récurrents.
Voir aussi (excellent blog): http://colah.github.io/posts/2015-08-Understanding-LSTMs
Voir aussi (excellent blog): http://colah.github.io/posts/2015-08-Understanding-LSTMs
OverTheWire: Wargames
"The wargames offered by the OverTheWire community can help you to learn and practice security concepts in the form of fun-filled games."
Pour les débutants, commencez par Bandit, pour intégrer les bases: http://overthewire.org/wargames/bandit
Pour les débutants, commencez par Bandit, pour intégrer les bases: http://overthewire.org/wargames/bandit
Seeing Theory
A visual introduction to probability and statistics.
Transcode
transcode est un programme de traitement vidéo permettant notamment de stabiliser des vidéos.
Computing linear regression in one pass
Dans le même ordre d'idée que le lien précédent, sauf qu'il s'agit cette fois d'effectuer une régression linéaire en continu. Comme beaucoup d'algorithmes continu, il présente l'avantage de travailler en mémoire constante.
Le thumbnail vient de XKCD : https://xkcd.com/1725
Le thumbnail vient de XKCD : https://xkcd.com/1725
Computing skewness and kurtosis in one pass
Comme vous l'avez peut être déjà remarqué, une bonne partie de mes travaux de thèse ont porté sur le traitement continu de flux de données : http://benjaminbillet.fr/media/benjaminbillet_memoire.pdf
De fait, je m'intéresse beaucoup aux techniques mathématiques permettant de réaliser des calculs en continu (c'est-à-dire sans mémoriser l'intégralité des résultats passés).
Cet article de blog décrit comment calculer en continu l'espérance, la variance, l'écart-type, le coefficient de dissymétrie et le coefficient d'aplatissement sur un flux d'échantillons. De manière plus générale il s'agit d'une méthode pour calculer les moments (https://fr.wikipedia.org/wiki/Moment_%28mathématiques%29). On pourrait imaginer donc l'utiliser pour calculer d'autres mesures statistiques d'ordre supérieur. J'essayerais d'ailleurs, si je parviens à bien tout comprendre, d'en faire une implémentation généralisée :)
Quelques références:
- B. P. Welford (1962)."Note on a method for calculating corrected sums of squares and products".
- Donald E. Knuth (1998). The Art of Computer Programming, volume 2: Seminumerical Algorithms, 3rd edn.
De fait, je m'intéresse beaucoup aux techniques mathématiques permettant de réaliser des calculs en continu (c'est-à-dire sans mémoriser l'intégralité des résultats passés).
Cet article de blog décrit comment calculer en continu l'espérance, la variance, l'écart-type, le coefficient de dissymétrie et le coefficient d'aplatissement sur un flux d'échantillons. De manière plus générale il s'agit d'une méthode pour calculer les moments (https://fr.wikipedia.org/wiki/Moment_%28mathématiques%29). On pourrait imaginer donc l'utiliser pour calculer d'autres mesures statistiques d'ordre supérieur. J'essayerais d'ailleurs, si je parviens à bien tout comprendre, d'en faire une implémentation généralisée :)
Quelques références:
- B. P. Welford (1962)."Note on a method for calculating corrected sums of squares and products".
- Donald E. Knuth (1998). The Art of Computer Programming, volume 2: Seminumerical Algorithms, 3rd edn.
libcoap: C-Implementation of CoAP
Implémentation en C du protocole CoAP (un protocole REST pour les machines fortement limitées en ressources, pour lequel il existe un mapping avec HTTP), décrit dans la RFC 7252.
En plus du protocole de base, cette librairie implémente les ressources observables (RFC 7641) et la découverte des ressources liées (RFC 6690). Elle implémente aussi certains brouillons, comme l'annuaire de ressources CoAP (https://tools.ietf.org/html/draft-ietf-core-resource-directory-10).
RFC 7252 : https://tools.ietf.org/html/rfc7252
RFC 7641 : https://tools.ietf.org/html/rfc7641
RFC 6690 : https://tools.ietf.org/html/rfc6690
En plus du protocole de base, cette librairie implémente les ressources observables (RFC 7641) et la découverte des ressources liées (RFC 6690). Elle implémente aussi certains brouillons, comme l'annuaire de ressources CoAP (https://tools.ietf.org/html/draft-ietf-core-resource-directory-10).
RFC 7252 : https://tools.ietf.org/html/rfc7252
RFC 7641 : https://tools.ietf.org/html/rfc7641
RFC 6690 : https://tools.ietf.org/html/rfc6690
EXIF Tags
Liste des champs de l'Exchangeable Image File Format (EXIF) décrit de manière synthétique.
Les algorithmes : nouvelles formes de bureaucraties ? | InternetActu
L'essayiste Adam Clair dresse une intéressante comparaison entre algorithme et bureaucratie. Les algorithmes sont paradoxaux rappelle-t-il : « ils sont conçus pour améliorer la prise de décision humaine en supprimant supposément ses biais et ses limites, mais les protocoles analytiques inévitablement réducteurs qu’ils mettent en œuvre se révèlent surtout vulnérables à des formes d’utilisation abusive. » Comme le dit très bien Cathy O’Neil dans son livre : loin d’être neutres et objectifs, « les algorithmes sont des opinions formalisées dans du code ».
On parle bien sur ici des algorithmes dans le sens restreint de prise de décision pour le compte d'une organisation (les États, en l'occurrence). Par définition, donc, les algorithmes ne sont pas une *nouvelle* forme de bureaucratie ; ils en sont une parfaite implémentation. Il est effectivement peu pertinent de s'en prendre aux algorithmes pour critiquer les travers des bureaucratie, tout comme il est peut pertinent de s'en prendre au machine pour critiquer la disparition de l'emploi.
On parle bien sur ici des algorithmes dans le sens restreint de prise de décision pour le compte d'une organisation (les États, en l'occurrence). Par définition, donc, les algorithmes ne sont pas une *nouvelle* forme de bureaucratie ; ils en sont une parfaite implémentation. Il est effectivement peu pertinent de s'en prendre aux algorithmes pour critiquer les travers des bureaucratie, tout comme il est peut pertinent de s'en prendre au machine pour critiquer la disparition de l'emploi.
Géolocalisation des trains
Tous les trains de la SNCF positionnés en temps réel (délai d'environ 5mn) sur une carte interactive.
Tools | Ludum Dare
Liste d'outils utilisés par les participants au Ludum Dare (compétition de développement de jeux vidéo en 48h avec un thème imposé). Il y a de tout, des outils simplifiés (Construct, Game Maker, GDevelop), des moteurs (Unity, Murl), des outils de dessin et de modélisation, etc.
Réparer npm lorsqu'il s'autodétruit
Si, pour une raison inconnue, npm s'autodétruit après une mise à jour globale (npm update -g), il peut s'agir d'un problème lié à une ancienne version.
Réinstallez node (par exemple: brew uninstall --force node && brew install node) puis réinstallez npm en utilisant la version de npm fournie avec node (npm install -g npm).
C'est un problème idiot, mais malheureusement fréquent: https://github.com/npm/npm/issues/4099
Réinstallez node (par exemple: brew uninstall --force node && brew install node) puis réinstallez npm en utilisant la version de npm fournie avec node (npm install -g npm).
C'est un problème idiot, mais malheureusement fréquent: https://github.com/npm/npm/issues/4099
Table des matières: Tout ce que les développeurs devraient savoir sur les performances en SQL
Tout est dans le titre. Il y a beaucoup de choses intéressantes, notamment sur les performances de la pagination et des tris.
Amit’s A* Pages
Beaucoup d'informations et d'expérimentations autour de A* (algorithme de pathfinding dont j'avais déjà parlé là en citant le même blog : http://www.benjaminbillet.fr/news/index.php?link=d5gw4e).
Il y a plusieurs sujets abordés en bas de page, dont la construction de maps dans les jeux vidéos.
Voir aussi: http://www.redblobgames.com
Il y a plusieurs sujets abordés en bas de page, dont la construction de maps dans les jeux vidéos.
Voir aussi: http://www.redblobgames.com
Strong consistency models
Article intéressant sur les modèles de consistances.
Ce blog est une mine d'informations.
Ce blog est une mine d'informations.
World's Smallest h.264 Encoder | Cardinal Peak
Le plus petit encodeur compatible avec la norme d'encodage vidéo H.264.
UserAgentString.com - List of User Agent Strings
Liste d'User-Agent par navigateur. Je n'aurais pas imaginé qu'il puisse en exister autant.
Voir aussi le délirant historique des User-Agent: http://webaim.org/blog/user-agent-string-history
Voir aussi le délirant historique des User-Agent: http://webaim.org/blog/user-agent-string-history
EE Times - 10 FPGA Design Techniques You Should Know
"There are a number of universal design techniques with which FPGA engineers should be familiar -- here are some of the most important."
A lire, ne serait-ce que par curiosité ;)
A lire, ne serait-ce que par curiosité ;)
Blue-Green Deployment
Le déploiement bleu-vert est une technique classique pour déployer une nouvelle version d'un serveur en évitant une interruption de service.
A noter: les tenants de cette technique passent souvent sous silence les problèmes de synchronisation entre les bases de données bleue et verte. La solution la plus radicale consiste à interdire les écritures, pour ne pas avoir à gérer la synchronisation. Ce n'est pas forcément idéal en pratique.
Si l'on souhaite conserver les écritures, alors deux cas se posent:
- le schéma de la base verte est le même que celui de la base bleu : il suffit que le système vert réplique les écritures dans les deux bases.
- le schéma de la base verte est différent de celui de la base bleu : il faut s'assurer que le système vert soit rétro-compatible avec la base bleue, pour pouvoir répliquer les écritures.
Voir aussi: https://www.rainforestqa.com/blog/2014-06-27-zero-downtime-database-migrations/
A noter: les tenants de cette technique passent souvent sous silence les problèmes de synchronisation entre les bases de données bleue et verte. La solution la plus radicale consiste à interdire les écritures, pour ne pas avoir à gérer la synchronisation. Ce n'est pas forcément idéal en pratique.
Si l'on souhaite conserver les écritures, alors deux cas se posent:
- le schéma de la base verte est le même que celui de la base bleu : il suffit que le système vert réplique les écritures dans les deux bases.
- le schéma de la base verte est différent de celui de la base bleu : il faut s'assurer que le système vert soit rétro-compatible avec la base bleue, pour pouvoir répliquer les écritures.
Voir aussi: https://www.rainforestqa.com/blog/2014-06-27-zero-downtime-database-migrations/
Colorful Image Colorization
Cette technique de recolorisation d'image donne des résultats impressionnants
Loading models - Vulkan Tutorial
Vulkan (précedemment connu sous le nom d'OpenGL Next) est une interface de programmation graphique destinée à remplacer OpenGL. Plus moderne et plus efficace, il vise à unifier les versions mobiles (OpenGL ES) et bureau (OpenGL).
Je m'y suis mis pour tester, et c'est clairement un gros dépoussiérage d'OpenGL. Tout est plus clair (simplification), plus direct (suppression des fonctionnalités obsolètes ou redondantes), etc.
Je m'y suis mis pour tester, et c'est clairement un gros dépoussiérage d'OpenGL. Tout est plus clair (simplification), plus direct (suppression des fonctionnalités obsolètes ou redondantes), etc.
git-flow cheatsheet
Comprendre git-flow en une infographie.
Seamless Cloning using OpenCV ( Python , C++ ) | Learn OpenCV
Utilisation du Seamless Clone d'OpenCV pour fusionner deux images.
Face Swap using OpenCV ( C++ / Python ) | Learn OpenCV
Je me suis mis à OpenCV récemment pour développer un outil de redimensionnement d'image avec détection de visage. J'en parlerais peut être dans le blog technique, vu que j'ai rencontré pas mal de soucis avec sa compilation et son binding JNI.
Bref, je suis tombé sur cet article décrivant comment faire du "face swapping" avec la librairie.
Bref, je suis tombé sur cet article décrivant comment faire du "face swapping" avec la librairie.
htop-explique | Le blog de Carl Chenet
Traduction française de l'excellent "htop explained": https://peteris.rocks/blog/htop
The Infinite Drum Machine
Une expérience de classification automatique sur des fichiers audio représentant des sons du quotidien. L'algorithme ne reçoit aucune information à priori (non supervisé) hormis les fichiers audio. La technique utilisée dans cette expérience est t-SNE (t-Distributed Stochastic Neighbor Embedding), permettant de réduire un espace à n dimensions vers un espace plus petit (ici 3 dimensions: X, Y, et couleur).
Description de t-SNE: http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf
Description de t-SNE: http://jmlr.org/papers/volume9/vandermaaten08a/vandermaaten08a.pdf
How to Write Papers So People Can Read Them - POPL 2016
Comment écrire des articles scientifiques compréhensibles (certains principes généraux s'appliquent pour tout travail d'écriture).
Les slides: https://www.mpi-sws.org/~dreyer/talks/talk-plmw16.pdf
Les slides: https://www.mpi-sws.org/~dreyer/talks/talk-plmw16.pdf
CDNs aren't just for caching - Julia Evans
Un CDN ne sert pas qu'à faire du caching, mais aussi à:
- amener le contenu au plus près des clients, donc accélérer l'accès
- accélérer l'ouverture des connexions TLS (https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake)
- réduire l'impact des attaques par déni de service
- amener le contenu au plus près des clients, donc accélérer l'accès
- accélérer l'ouverture des connexions TLS (https://en.wikipedia.org/wiki/Transport_Layer_Security#TLS_handshake)
- réduire l'impact des attaques par déni de service
DBeaver | Free Universal SQL Client
"Free multi-platform database tool for developers, SQL programmers, database administrators and analysts. Supports all popular databases: MySQL, PostgreSQL, SQLite, Oracle, DB2, SQL Server, Sybase, Teradata, MongoDB, Cassandra, Redis, etc."
Et plus stable que MySQL workbench.
Et plus stable que MySQL workbench.
A Year Without a Byte | code.flickr.com
Quelques techniques utilisées par Flickr pour économiser l'espace de stockage.
- Pour éviter des baisses de performance, on conserve toujours un peu d'espace disque libre (traditionnellement 10%). Toutefois, ce paramètre peut être ajusté empiriquement en fonction de l'usage (ici, réduit à 5%)
- Stocker moins de formats de miniature et laisser les clients (webs et mobiles) ajuster la taille de leur côté. Par exemple, si un client a besoin d'afficher une image en 1024x1024px, il va télécharger la version 2048x2048 et effectuer la réduction de son côté.
- Utiliser des algorithmes de compression d'image plus sophistiqués. Ces techniques consomment plus de CPU, mais peuvent réduire significativement la taille des images. Là encore, c'est à voir en fonction du besoin.
- Pour éviter des baisses de performance, on conserve toujours un peu d'espace disque libre (traditionnellement 10%). Toutefois, ce paramètre peut être ajusté empiriquement en fonction de l'usage (ici, réduit à 5%)
- Stocker moins de formats de miniature et laisser les clients (webs et mobiles) ajuster la taille de leur côté. Par exemple, si un client a besoin d'afficher une image en 1024x1024px, il va télécharger la version 2048x2048 et effectuer la réduction de son côté.
- Utiliser des algorithmes de compression d'image plus sophistiqués. Ces techniques consomment plus de CPU, mais peuvent réduire significativement la taille des images. Là encore, c'est à voir en fonction du besoin.
GitHub - tdebatty/java-string-similarity: Implementation of various string similarity and distance algorithms: Levenshtein, Jaro-winkler, n-Gram, Q-Gr
Une librairie Java pour calculer des distances ou des scores de similarité entre des chaînes de caractères.
Algorithmes implémentés :
Levenshtein O(m*n)
Normalized Levenshtein O(m*n)
Weighted Levenshtein O(m*n)
Damerau-Levenshtein O(m*n)
Optimal String Alignment O(m*n)
Jaro-Winkler O(m*n)
Longest Common Subsequence O(m*n)
Metric Longest Common Subsequence O(m*n)
N-Gram O(m*n)
Q-Gram O(m+n)
Cosine similarity O(m+n)
Jaccard index O(m+n)
Sorensen-Dice coefficient O(m+n)
Algorithmes implémentés :
Levenshtein O(m*n)
Normalized Levenshtein O(m*n)
Weighted Levenshtein O(m*n)
Damerau-Levenshtein O(m*n)
Optimal String Alignment O(m*n)
Jaro-Winkler O(m*n)
Longest Common Subsequence O(m*n)
Metric Longest Common Subsequence O(m*n)
N-Gram O(m*n)
Q-Gram O(m+n)
Cosine similarity O(m+n)
Jaccard index O(m+n)
Sorensen-Dice coefficient O(m+n)
FarmBot
FarmBot, un robot pour contrôler une petite plantation. Il peut planter, contrôler l'arrosage, détecter et tuer les mauvaises herbes, etc.
C'est un bien beau bidule, il faut avouer.
Les plans sont open-source, ce qui est un bon point, mais la fabrication des pièces nécessite d'être bien équipé (imprimante 3D, outil de découpe du métal).
Possibilité de commander un kit de pièces pour 3500$, ce qui est malheureusement beaucoup trop cher :/
C'est un bien beau bidule, il faut avouer.
Les plans sont open-source, ce qui est un bon point, mais la fabrication des pièces nécessite d'être bien équipé (imprimante 3D, outil de découpe du métal).
Possibilité de commander un kit de pièces pour 3500$, ce qui est malheureusement beaucoup trop cher :/
Megaprocessor
Traduction de la page d'accueil du projet:
Qu'est-ce que c'est ? Le Megaprocessor est un microprocesseur, mais construit en plus gros. Beaucoup plus gros.
Comment ? Comme tous les processeurs modernes, le Megaprocessor fonctionne avec des transistors. Par contre, au lieu d'utiliser des transistors gravés sur une minuscule puce en silicium, il utilise des transistors individuels (NB: taille équivalente à un cube de 0.5 cm de côté). Par milliers. Et aussi énormément de LED (NB: diode électro-luminescente).
Pourquoi ? Réponse courte : Parce que je le voulais.
Pourquoi ? Réponse longue : Les ordinateurs sont plutôt opaques, il est impossible de comprendre comment ils marchent en regardant à l'intérieur. Ce que j'ai voulu faire, c'est entrer à l'intérieur et voir ce qui se passe. Le souci, c'est qu'on ne peut pas se rétrécir suffisamment pour marcher à l'intérieur d'une puce de silicium. Par contre, on peut faire le contraire : construire un processeur suffisamment gros pour marcher à l'intérieur. En plus, en ajoutant plein de LEDs, on pourrait VOIR les données circuler et les opérations logiques s'effectuer en temps réel. Ce serait génial.
--
Et je confirme : c'est génial. On peut même le programmer avec un assembleur basique (http://megaprocessor.com/programming.html)
Qu'est-ce que c'est ? Le Megaprocessor est un microprocesseur, mais construit en plus gros. Beaucoup plus gros.
Comment ? Comme tous les processeurs modernes, le Megaprocessor fonctionne avec des transistors. Par contre, au lieu d'utiliser des transistors gravés sur une minuscule puce en silicium, il utilise des transistors individuels (NB: taille équivalente à un cube de 0.5 cm de côté). Par milliers. Et aussi énormément de LED (NB: diode électro-luminescente).
Pourquoi ? Réponse courte : Parce que je le voulais.
Pourquoi ? Réponse longue : Les ordinateurs sont plutôt opaques, il est impossible de comprendre comment ils marchent en regardant à l'intérieur. Ce que j'ai voulu faire, c'est entrer à l'intérieur et voir ce qui se passe. Le souci, c'est qu'on ne peut pas se rétrécir suffisamment pour marcher à l'intérieur d'une puce de silicium. Par contre, on peut faire le contraire : construire un processeur suffisamment gros pour marcher à l'intérieur. En plus, en ajoutant plein de LEDs, on pourrait VOIR les données circuler et les opérations logiques s'effectuer en temps réel. Ce serait génial.
--
Et je confirme : c'est génial. On peut même le programmer avec un assembleur basique (http://megaprocessor.com/programming.html)
98 personal data points that Facebook uses to target ads to you - The Washington Post
Facebook utilise 98 informations vous concernant pour déterminer quelles sont les publicités les plus susceptibles de vous intéresser.
9. Ethnic affinity
...
20. Users in long-distance relationships
...
31. Conservatives and liberals
...
45. How much money user is likely to spend on next car
...
79. Users who are “heavy” buyers of beer, wine or spirits
...
82. Users who buy allergy medications, cough/cold medications, pain relief products, and over-the-counter meds
...
89. Users who are “receptive” to offers from companies offering online auto insurance, higher education or mortgages, and prepaid debit cards/satellite TV
Effrayant.
9. Ethnic affinity
...
20. Users in long-distance relationships
...
31. Conservatives and liberals
...
45. How much money user is likely to spend on next car
...
79. Users who are “heavy” buyers of beer, wine or spirits
...
82. Users who buy allergy medications, cough/cold medications, pain relief products, and over-the-counter meds
...
89. Users who are “receptive” to offers from companies offering online auto insurance, higher education or mortgages, and prepaid debit cards/satellite TV
Effrayant.
How to measure smartphone power usage |
Mesurer la consommation électrique d'un smartphone. Testé et approuvé.
Welcome! — Pygments
Pygments, coloration syntaxique (export RTF possible, permettant de copier-coller le code formaté dans une présentation, par exemple).
xkcd: Automation
C'est bien vu. Préférez toujours la réutilisation d'un code existant, une librairie ou un outil plutôt que vos propres codes (qui devront malheureusement être maintenus). Toutes proportions gardées, bien entendu.
Procedural Content Generation in Games | A textbook and an overview of current research
La synthèse procédurale de contenu pour les jeux vidéos est un sujet qui m'intéresse beaucoup. J'en ai fait un tour d'horizon pour la fête de la science à l'INRIA (http://benjaminbillet.fr/wiki/doku.php?id=fete_de_la_science_2012) mais en voici un textbook beaucoup plus complet :)
1 Introduction
2 The search-based approach
3 Constructive generation methods for dungeons and levels
4 Fractals, noise and agents with applications to landscapes and textures
5 Grammars and L-systems with applications to vegetation and levels
6 Rules and mechanics
7 Planning with applications to quests and story
8 ASP with applications to mazes and levels
9 Representations for search-based methods
10 The experience-driven perspective
11 Mixed-initiative approaches
12 Evaluating content generators
On y retrouve de nombreux sujets abordés dans ma présentation, mais avec plus d'excellents chapitres sur la génération de règles, de gameplay, de scénarios et de quêtes.
1 Introduction
2 The search-based approach
3 Constructive generation methods for dungeons and levels
4 Fractals, noise and agents with applications to landscapes and textures
5 Grammars and L-systems with applications to vegetation and levels
6 Rules and mechanics
7 Planning with applications to quests and story
8 ASP with applications to mazes and levels
9 Representations for search-based methods
10 The experience-driven perspective
11 Mixed-initiative approaches
12 Evaluating content generators
On y retrouve de nombreux sujets abordés dans ma présentation, mais avec plus d'excellents chapitres sur la génération de règles, de gameplay, de scénarios et de quêtes.
7 techniques mathématiques
1. La descente de gradient
2. Le kdtree
3. La décomposition en valeurs singulières
4. La dimension de Vapnik-chervonenkis
5. Distributed Stochastic Neighboor Embedding
6. Radial basis Kernel trick
7. Affinity Propagation Clustering
2. Le kdtree
3. La décomposition en valeurs singulières
4. La dimension de Vapnik-chervonenkis
5. Distributed Stochastic Neighboor Embedding
6. Radial basis Kernel trick
7. Affinity Propagation Clustering
Une introduction aux arbres de décision
Résumé :
Les arbres de décision sont l’une des structures de données majeures de l’apprentissage statistique. Leur fonctionnement repose sur des heuristiques qui, tout en satisfaisant l’intuition, donnent des résultats remarquables en pratique (notamment lorsqu’ils sont utilisés en « forêts aléatoires »). Leur structure arborescente les rend également lisibles par un être humain, contrairement à d’autres approches où le prédicteur construit est une « boîte noire ».
L’introduction que nous proposons ici décrit les bases de leur fonctionnement tout en apportant quelques justifications théoriques. Nous aborderons aussi (brièvement) l’extension aux Random Forests. On supposera le lecteur familier avec le contexte général de l’apprentissage supervisé.1
Les arbres de décision sont l’une des structures de données majeures de l’apprentissage statistique. Leur fonctionnement repose sur des heuristiques qui, tout en satisfaisant l’intuition, donnent des résultats remarquables en pratique (notamment lorsqu’ils sont utilisés en « forêts aléatoires »). Leur structure arborescente les rend également lisibles par un être humain, contrairement à d’autres approches où le prédicteur construit est une « boîte noire ».
L’introduction que nous proposons ici décrit les bases de leur fonctionnement tout en apportant quelques justifications théoriques. Nous aborderons aussi (brièvement) l’extension aux Random Forests. On supposera le lecteur familier avec le contexte général de l’apprentissage supervisé.1
GitHub - dokan-dev/dokany: User mode file system library for windows with FUSE Wrapper
Génial, un équivalent à FUSE (Filesystem in Userspace) pour Windows. Il s'agit d'une interface permettant d'écrire des systèmes de fichier "virtuels", c'est-à-dire ne nécessitant pas de modifier le noyau du système d'exploitation pour fonctionner.
C'est une fonctionnalité qui a toujours manqué à Windows.
C'est une fonctionnalité qui a toujours manqué à Windows.
Oh, shit, git!
Une collection d'astuces pour rattraper les (petites) erreurs de manipulation avec git. Par exemple corriger le message d'un commit, amender un commit, etc.
How Not To Sort By Average Rating
Une meilleure méthode pour la gestion des notations. Cette technique prend en compte à la fois la proportion de notes positives et la taille de l'échantillon.
Elm – fun with L-System (Part 1) | theburningmonk.com
Un L-Système ou système de Lindenmayer est une grammaire formelle permettant de décrire un ensemble de règles et de symboles qui modélisent un processus de croissance.
Les symboles représentent l'état de l'être vivant à une itération X, tandis que les règles représentent la transformation des symboles en autres symboles (ou groupes de symboles). A partir de l'état X, les règles permettent de construire l'état X+1 et ainsi de suite jusqu'à obtenir une structure complexe.
J'ai traité le sujet des L-Systèmes lors de la fête de la science 2012 à l'INRIA. Voir ma présentation ici : http://benjaminbillet.fr/wiki/doku.php?id=fete_de_la_science_2012
Voir aussi : http://blog.rabidgremlin.com/2014/12/09/procedural-content-generation-l-systems/
Les symboles représentent l'état de l'être vivant à une itération X, tandis que les règles représentent la transformation des symboles en autres symboles (ou groupes de symboles). A partir de l'état X, les règles permettent de construire l'état X+1 et ainsi de suite jusqu'à obtenir une structure complexe.
J'ai traité le sujet des L-Systèmes lors de la fête de la science 2012 à l'INRIA. Voir ma présentation ici : http://benjaminbillet.fr/wiki/doku.php?id=fete_de_la_science_2012
Voir aussi : http://blog.rabidgremlin.com/2014/12/09/procedural-content-generation-l-systems/
Shadertoy BETA
Un shader est un programme permettant de paramétrer une partie du pipeline de rendu réalisé par une carte graphique ou un moteur de rendu logiciel. Ces programmes sont exécutés directement par le GPU de la machine, étant donné que ces programmes effectuent de nombreuses opérations vectorielles pour lesquelles le GPU est très efficace.
Il existe des shaders de plusieurs types, qui influent sur différentes étapes du pipeline, les plus connus étant les "vertex shaders" (qui influent sur la projection de l'espace 3D sur l'espace 2D) et les "pixel shaders" (qui influent sur les pixels).
Cet outil permet d'écrire des shaders en ligne et de les tester directement. Il y a des choses assez impressionnantes.
Il existe des shaders de plusieurs types, qui influent sur différentes étapes du pipeline, les plus connus étant les "vertex shaders" (qui influent sur la projection de l'espace 3D sur l'espace 2D) et les "pixel shaders" (qui influent sur les pixels).
Cet outil permet d'écrire des shaders en ligne et de les tester directement. Il y a des choses assez impressionnantes.
Ce journal est basé sur Ginger, un gestionnaire de lien minimaliste développé dans le cadre d'un stage de perfectionnement. Pour plus d'informations, consulter le wiki consacré à mes projets personnels.