First, lets mention Git Bash (aka msysgit) : the old version was a PITA to extend with additional packages (e.g. adding common C libs like libxml), and the new one (renamed Git for Windows), is based on MSYS2, but does not include a package manager.
Hence, we were left with …
... and the standard UNIX tool zipinfo cannot display them !

So here is Python one-liner to extract them, and other useful meta informations:
python -c "import json, sys, zipfile; json.dump([{k: str(getattr(i, k)) for k in zipfile.ZipInfo.__slots__} for i in zipfile.ZipFile(sys.argv[1]).infolist …I'm not really crazy about Yeoman's grunt-usemin : I find painful the way it enforces a unique pipeline, with its preliminary useminPrepare task and :generated targets.
But on the project I'm working on, we made the choice to use it early on, and we're sticking with it for now. And this …
Say you are generating a colored diff output with the standard difflib Python package:
diff = difflib.ndiff(file1_lines, file2_lines)
print('\n'.join(diff))
Now, I'll show you how to write a simple color_diff function that you can use to color your diff like this:
diff = difflib.ndiff(file1_lines, file2_lines)
diff …Simply add the following class to your project. It will be automatically registered at start-up if you use the @EnableAutoConfiguration annotation :
@ControllerAdvice // Makes this the default behaviour of all controllers
@ConditionalOnProperty(prefix = "app", name = "disable-default-exception-handling")
class GlobalControllerExceptionHandler {
@ExceptionHandler(Exception.class) // Catch any exception
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) // Returns an error code …Deux lectures complètement décorellées à partager:
Aujourd'hui, pour justifier leurs [les comédiens] droits, on parle d'économie. En 2004, le rapport Guillot remis au ministre de la culture et de la communication, dans l'émotion suscitée par l'annulation du festival d'Avignon, souligne qu'en 2003 "la valeur ajoutée dégagée par le secteur du …

La semaine dernière, j'ai enfin offert à un ami le petit jeu de cartes que j'ai bricolé ces dernières semaines.
Comme je pense qu'ils pourra en amuser plus d'un, voici une version prête à imprimer !
https://chezsoi.org/lucas/spyfall (PDF, 3.47Mo)
Le jeu
Pour une description complète, je …
Quelques essais de visualisation de données pour célébrer la fin de cette expérimentation de débat citoyen en ligne.
Première tentative, utilisant Charted, pour visualiser la répartition des nombre de votes toutes propositions confondues :
<iframe width="853" height="480" src="https://www.charted.co/?%7B%22dataUrl%22%3A%22http%3A%2F%2Fchezsoi.org%2Flucas%2Frepublique-numerique%2Fvotes_counts_frequencies_histogram.csv%22%2C%22seriesNames%22%3A%7B%221%22%3A%22freq_no%22%7D%2C%22charts%22%3A%5B%7B%22type%22%3A%22line%22%2C%22rounding%22%3A%22off%22%2C%22title%22%3A%22Positive%2FNegative%2FReserved%20votes%20count%20frequencies%20distribution%22%2C%22note%22%3A%22Data%20from%20republique-numerique.fr%20on%202015%2F10%2F18%20at%20midnight%22%7D%5D%7D" allowfullscreen></iframe>Exemple de lecture de ce graph: 33 propositions ont reçu exactement 8 votes positifs.
Ce graph n'apporte …
Petit bricolage du week-end dernier donc je suis assez content :

Un blender hors d'usage + une douille & son ampoule + 2 petits dominos à fils électrique = une magnifique lampe !
Et le bouton à vitesses du blender fait office d'interrupteur à intensités variables !
This evening I faced a really annoying bug: while able to exit Family View by entering my PIN in Steam.exe, I could not do so when trying to access the Steam website.
I simply could not pass the page "Adults, enter your PIN below to exit Family View." Neither …
First, install PHP debugging extensions for gdb, for example:
debuginfo-install php-5.6.8 # if you use yum
aptitude install php5-dbg # if you use aptitude
Then simply:
php_version=5.6.8
php_script_pid=$(pgrep -f $php_script_name)
curl https://raw.githubusercontent.com/php/php-src/PHP-$php_version/.gdbinit >> ~/.gdbinit
gdb …Il y a quelques jours, un ami m'a demandé de jeter un oeil à un problème qu'il recontrait: alors qu'il analysait des données de donneespubliques.meteofrance.fr dans un IPython notebook, en utilisant la fantastique lib requests, il a été confronté à un bug étrange:
Mon soucis c'est que ma …
Depuis plusieurs années, je ruminais contre Youtube: chaque fois qu'une vidéo est supprimée d'une playlist (parce que l'utilisateur qui l'avait uploadé l'a supprimé par exemple), son nom n'est même pas conservé, seul un lien mort persiste dans la liste.
Et la seule solution est alors de googler le nom de …
Depuis mai 2015, Python 3.4 est disponoble sous Cygwin.
Si vous aviez précédement installé Python 3.2, voici comment passer à la version 3.4.
Tout d'abord, je vous recommande l'excellent gestionnaire de package apt-cyg. C'est tout simplement une interface en ligne de commande équivalente au setup-x86.exe (ou …
The timeit module is useful for micro benchmarks, but does not allow to measure execution time of large snippets, as it requires the code tested to fit in a string.
Hence, I went looking for a context or decorator-based solution. And I found this bug report commented by Guido van …
Voici la galerie en question, et voici une bande son pour accompagner la lecture de cet article: http://auditiveescape.bandcamp.com/album/noted-wind
Maintenant quelques explications: ce que vous admirez, ce sont des images générées par une forme d'intelligence artificielle appelée "réseau neuronal".
Il s'agit tout simplement d'un type d'algorithme …
I've lost quite some time on this error recently :
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.AbstractMethodError: org.hibernate.jpa.boot …Just some handy accessors for the brower console :
var myScope = $('#directive > select.or').scope()
var $rootScope = $('body').scope() // if <body> has the 'ng-app' attribute
var myController = $('#directive > select.or').controller()
var injector = $(document.body).injector()
var myService = injector.get('myServiceName')
And there are 3 handy pre-commit hooks :
- repo: local
hooks …Pourquoi, mais pourquoi faut-il 3 lignes en Java pour juste extraire un groupe d'une expression régulière qui "match" ???
Matcher matcher = Pattern.compile("o?k(b|i)s+").matcher("kiss");
matcher.matches();
assert matcher.group(1) == "i";

En Python:
assert re.match("o?k(b|i)s+", "kiss").group(1) == "i …Cette après-midi, j'ai enfin résolu un problème d'installation de Microsoft .NET Framework qui datait de presque un an.
Dans l'espoir que ça puisse aider quelqu'un qui rencontre la même erreur, et parce que j'ai appris à utiliser un outil intéressant au passage, je me fends d'un petit article de blog …