Blog Archives

Comportement indéfini et optimisation

Dans certains langages (typiquement C et C++), la sémantique de certaines opérations est indéfinie. Cela permet au compilateur de ne s’intéresser qu’aux cas qui sont définis (et donc de les optimiser) sans s’occuper des effets produits sur les cas indéfinis. C’est un concept très précieux pour améliorer sensiblement les performances. Mais cela peut avoir des […]

AImageView (composant Android)

Pour afficher une image sur Android, le SDK contient un composant ImageView. Cependant, son mécanisme de configuration du redimensionnement de l’image (ScaleType) me semble déficient : il ne gère pas tous les cas courants ; le choix de la bonne constante (si elle existe) n’est pas toujours très intuitif. J’ai donc écrit un composant AImageView (qui hérite […]

SSHFS inversé (rsshfs)

SSHFS permet de monter un répertoire d’une machine distance dans l’arborescence locale en utilisant SSH : sshfs serveur:/répertoire/distant /répertoire/local Mais comment monter un répertoire local sur une machine distante ? Une solution simple serait de se connecter en SSH sur la machine distante et d’exécuter la commande sshfs classique. Mais d’abord, ce n’est pas toujours directement […]

 

19 mars 2014

Commentaires fermés

Compiler un exécutable pour Android

Je vais présenter dans ce billet comment compiler un exécutable ARM pour Android, l’intégrer à un APK et l’utiliser dans une application. À titre d’exemple, nous allons intégrer un programme natif, udpxy, dans une application minimale de lecture vidéo. Contexte Le framework multimédia d’Android ne supporte pas nativement la lecture de flux UDP multicast (1, […]

GIT : squasher des merges

Supposons que je souhaite ajouter une fonctionnalité à un projet sur GIT. Je prends la version actuelle de la branche master (A), puis ajoute sur ma branche topic les commits X et Y. X—Y topic / –A master Je propose la fonctionnalité upstream (par un git request-pull ou une pull request), qui met un peu […]

Formater du code C avec indent et Vim

Pour suivre des règles de codage et s’y tenir, rien de tel qu’un outil qui formate automatiquement le code (c’est plus rapide et sans erreurs). Sous Eclipse par exemple, la combinaison de touches Ctrl+Shift+F est indispensable. Mon but est d’obtenir la même fonctionnalité sous Vim pour le langage C. indent L’outil indent permet de formater […]

Prompt Bash pour GIT

J’utilise GIT depuis quelques mois, et je trouve ça vraiment génial. Si vous ne connaissez pas, ou peu, vous ne pouvez pas ne pas lire le livre Pro Git (sous licence cc-by-nc-sa). Les explications très claires permettent en quelques heures de maîtriser toutes les fonctions de base, et d’être à l’aise avec la gestion des […]

Android en ligne de commande

Ce billet décrit comment développer et compiler des applications pour Android en ligne de commande (en plus ou à la place d’Eclipse avec ADT). Je trouve que c’est utile dans certains cas ; par exemple, il vaut mieux utiliser un script de build automatique, que chacun pourra réutiliser, plutôt qu’un wizard sur un IDE particulier. Installation […]

Programmes auto-reproducteurs (quines)

Vous êtes-vous déjà demandé comment écrire un programme qui génère son propre code source ? Si vous n’avez jamais essayé, je vous conseille de prendre un peu de temps pour y réfléchir avant de lire la suite. Ce n’est pas évident, car chaque caractère ajouté dans le code source doit également apparaître sur la sortie… Un […]

Résoudre le cube-serpent 300 fois plus rapidement en C

Il y a 3 semaines, j’avais écrit un solveur de cube-serpent en Python. Un commentaire, en apparence anodin, m’a mis dans la tête une question que je ne pouvais pas laisser sans réponse : combien de fois plus rapidement s’exécuterait le même algorithme implémenté en C que celui en Python (interprêté) ? 2× ? 10× ? 50× ? Pour y […]

Résoudre le cube-serpent en Python

Je me suis amusé à écrire un petit programme en Python qui résout le cube-serpent (ainsi nous pouvons dire qu’un serpent en résout un autre). Mon but était surtout d’apprendre le langage Python, avec un problème intéressant, pas trop compliqué (c’est de la force brute). Il m’a permis de découvrir différents aspects de Python. Je […]

Pluzz.fr : France Televisions lance son service de TV de rattrapage non lisible

Le 5 juillet (hier donc), France Télévisions a lancé son service de télévision de rattrapage, qui ne permet pas de lire les vidéos. À moins d’accepter d’installer un système d’exploitation particulier avec un logiciel particulier (propriétaires évidemment). C’est comme s’ils diffusaient leurs émissions uniquement pour les utilisateurs équipés d’une TV Sony ou Philips, et pas […]

Agréger différentes sources de VOD en OGG/Theora

Pour mes flux RSS, j’utilise l’outil tt-rss installé sur mon serveur, qui récupère régulièrement tous les flux auxquels je suis abonné. Le but de ce billet est de mettre en place un mécanisme similaire qui s’applique aux sources de vidéo à la demande (pas forcément prévues pour être agrégées), et qui les convertit dans le […]