Ludochaordic
Fantaisies programatico-ludiques

Tag: prog - Articles:

A review of HTML linters

... and how to use them in CI pipelines. Overview Introduction / motivation HTML linters and their usage W3C v.Nu HTML checker html-tidy htmlhint html-validate LintHTML html-eslint Evaluating HTML linters on reference pages Conclusion Related tools & readings HTML Doctype - Author: Seobility - License: CC BY-SA 4.0 Overview HTML linters: W3C v …

Read More

Quelques sites web que j'ai conçu

Au cours des 18 derniers mois, j'ai eu l'occasion de concevoir plusieurs sites web pour des proches et des associations où je suis bénévole. Dans cet article, je reviens sur mes choix de solutions pour les mettre en place, et partage mes réflexions concernant les alternatives pour concevoir de "petits …

Read More

Setting up linters in Gitlab CI for C++ and Groovy / Jenkins code

A very short blog post to share some minimal code snippets on how to quickly and easily setup Gitlab CI pipelines to run static code analysis tools on C++ code and Jenkins pipelines (or any Groovy code). Linting C++ code with clang-tidy clang-tidy is a clang-based C++ linter tool that …

Read More

Another animated dungeon: The Sky-Blind Spire

Following last week animated PDF adventure, I have been reading a series of one page dungeons... And yesterday I had the opportunity to play the best one in my opinion: The Sky-Blind Spire by Michael Prescott. It has everything I love on one page: a maze to explore, mysteries to …

Read More

Animated one-page-dungeon : Escape of the Torment

Last week, while translating John Harper's micro-TTRPG World of Dungeons: Turbo Breakers, I discovered the wonderful world of one page dungeons, starting with Michael Prescott splendid production at trilemma.com and also the yearly One Page Dungeon Context. While crawling through the OPDC 2021 entries, I discovered a great map …

Read More

Hacktoberfest on fpdf2 & v2.4.6

Last month, I realized late that October was hacktoberfest month! This online event is a month-long celebration (October 1-31) of open source software run in partnership with different software companies, with a focus on encouraging contributions to open source projects. While I participated in the 2019 edition as a contributor …

Read More

Bonnes pratiques Gitlab CI

À E-voyageurs Technologies, je travaille au sein d'une équipe en charge de l'usine logicielle, qui administre depuis plusieurs années une instance Gitlab self-hosted. Cet article contient quelques-unes de nos recommandations à l'intention des utilisateurs de notre Gitlab, ayant pour but à la fois améliorer les performances de leurs pipelines …

Read More

Live demo for Hesperides!

Today I finally took the time to put up a live demo website for Hesperides! https://hesperides.herokuapp.com Hesperides is an open source tool dedicated to configuration management: it stores applications properties and mustache templates for configurations files. It is strongly hierarchized based on few main concepts: modules, applications …

Read More

Undying Dusk : a PDF video game

Undying Dusk is a video game in a PDF format, with a gameplay based on exploration and logic puzzles, in the tradition of dungeon crawlers. A curse set by the Empress keeps the world in an eternal dusk. You have recently found shelter in an eerie monastery. Featuring: ~ 200 000 …

Read More

fpdf2 release 2.2.0

Today, I am happy to announce a new version 2.2.0 of fpdf2 ! https://github.com/pyfpdf/fpdf2/ Doc: https://pyfpdf.github.io/fpdf2/ During the last few months, I contributed a few improvements to fpdf2, David Ankin fork of PyFPDF, the user-friendly Python library to generate PDFs: from …

Read More

Pelican, Pingback and Webmentions

Linkback protocols are an old breed. They were born in a time where MySpace, Wikipedia & WordPress had just been launched, and Friendster was more popular than this new website called Facebook. Diagram source: PPRuNe article on linkbacks The latest linkback protocol, Webmention, is relatively recent though, as it became a …

Read More

Nonograms, Topolokus et compagnie

Depuis le 24 mars, avec ma compagne, nous avons décidé de partager un petit puzzle logique par jour à nos amis & familles, pour les distraire un peu en cette période difficile. J'avais même bricolé un petit système de score, et j'en profite d'ailleurs pour féliciter ici les gagnants ! Comme aujourd'hui …

Read More

Minutes of the FOSDEM 2020 conference

The FOSDEM'20 (Free & Open Source Developers’ European Meeting) conference is: a free event for software developers to meet, share ideas and collaborate It took place last week-end at the Université Libre de Bruxelles, and I had the chance to attend it. Sincere thanks to my employer, oui.sncf, for financing …

Read More

Using python requests-futures to crawl all jobs on a Jenkins 4 times faster

At work, we needed to retrieve the full list of jobs a given Jenkins instance was hosting. Our first solution was to use the jenkinsapi Python package: import xml.etree.ElementTree as XmlElementTree from jenkinsapi.jenkins import Jenkins def get_all_jenkins_jobs(server_url): jenkins = Jenkins(server_url, lazy=True, timeout=30, username=os …

Read More

GitHub project statistics and Python interactive coding

Iframes not supported. Click on the link below to access the graphs. The iframe above displays some graphs I've built last week, in order to get some insight on some GitHub projects issues & pull requests evolution. They are directly inspired by nf-core project activity statistics. Click here to open those …

Read More

Listing all GitHub security alerts of a user's projects using GraphQL and Python

Almost a year ago, GitHub introduced security alerts. They are an awesome feature. They function as notifications you receive whenever a vulnerability affecting one of your project dependencies. But long after receiving a notification, how to list all security alerts affecting your repositories ? I didn't found an out-of-the box solution …

Read More

Traduction du Temple du Non, une histoire interactive Twine du studio Crows Crows Crows

Crows Crows Crows est un studio de jeu vidéo créé en 2015, à l'origine entre autres du jeu complètement déjanté Dr. Langeskov, The Tiger, and The Terribly Cursed Emerald: A Whirlwind Heist et le créateur du studio, William Pugh, est également un des auteurs de The Stanley Parable. En 2016 …

Read More

Python module imports visualization

flask httpie requests simplejson botocore scrapy docker-compose ansible What are those diagrams ? They show dependencies between the internal modules of various well-known Python libraries. They goal is to provide a global overview of a Python project architecture, as a map of modules & packages, the top-level code abstractions. Note that all …

Read More

Post-mortem de la Global Game Jam 2018

Le week-end dernier, j'ai participé à ma première Global Game Jam, à Nantes. Dans cet article, je vais vous présenter comment elle s'est déroulée, et faire le point sur ce qui a plus ou moins bien marché pour notre projet, The King Must Know, dont voici l'écran d'accueil : J'avais déjà …

Read More

Certification développeur RGAA Access42

Connaissez-vous l'accessibilité numérique ? En très bref: L'accessibilité numérique est la mise à la disposition de tous les individus, quels que soient leur matériel ou logiciel, leur infrastructure réseau, leur langue maternelle, leur culture, leur localisation géographique, ou leurs aptitudes physiques ou mentales, des ressources numériques. Pour plus de détails …

Read More

Extracting setup_requires dependencies out of a setup.py

I ended up not using this code, but it may be useful to others: mock_setup_provider.py: import sys from unittest.mock import Mock class MockSetupProvider(Mock): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.captured_setup_requires = set() def setup(self, *args, **kwargs): self.captured_setup_requires.update(kwargs.get('setup_requires')) setup_extractor …

Read More

JSONP & exceptions with Spring web 4

Since Spring 4.1, it is really easy to enable JSONP on an API controller: @RestController @RequestMapping(value = "/") public class MyController { @ControllerAdvice static class JsonpAdvice extends AbstractJsonpResponseBodyAdvice { public JsonpAdvice() { super("callback"); // name of the query parameter to use } } @RequestMapping(value = "/", method = RequestMethod.GET) public MyAPIResult getStuff(...) { ... } } There is no RFC …

Read More

Rendering deep text-based mindmaps with WiseMapping and Python

In this blog post, I'm going to demonstrate how to reuse WiseMapping HTML+JS rendering engine to easily visualize... text-based mindmaps like this one have many benefits they are readable as-it-is they don't require any tool to be edited [they follow the UNIX tenets](http://www.ru.j-npcs.org/usoft …

Read More

Analyse statique de code Java : Google Error Prone, Findbugs et PMD

Ce court article détaille comment mettre en place simplement 3 analyseurs de code statique avec Maven. Contexte Au sein de mon équipe à Voyages-Sncf, le nombre de composants Java est en train d'augmenter. Nous avons déjà toute une batterie de tests pour valider notre code, ainsi qu'un Sonar en place …

Read More

Solving a painful browserify limitation : portable source files selection with a wildcard pattern

In any UNIX shell, the following will always work out of the box: browserify src/main/lib/js/*.js > out-bundle.js But of course, not under Windows. And browserify does not accept directory names as primary parameter, nor wildcard globbing patterns. There is a pending issue & pull request aiming to …

Read More

Fixing fonts that raise a &DFLT table doesn't satisfy the spec. LangSysCount is not zero& error in Firefox

Did you ever got this infamous error message in Firefox debug console (with CSS error messages enabled) ? downloadable font: Layout: DFLT table doesn't satisfy the spec. for script tag DFLT (font-family: "MyBeautifulFont" style:normal weight:normal stretch:normal src index:1) source: http://W.X.Y.Z/fonts/myfont …

Read More

Disabling error stack traces with SpringBoot, but only in prod

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 …

Read More

Visualisation des votes sur republique-numerique.fr

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 : Exemple de lecture de ce graph: 33 propositions ont reçu exactement 8 votes positifs. Ce graph n'apporte …

Read More

Solving BeanCreationException: Error creating bean with name 'entityManagerFactory'

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 …

Read More

AngularJS console debugging tips + pre-commit hooks

Just some handy accessors for the brower console : var myScope = $('#directive > select.or').scope() var $rootScope = $('body').scope() // if 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 …

Read More

Cross-browsers testing : zuul or sauce-tap-runner to replace testling by SauceLabs ?

Since July 2014, Substack great cross-browsers testing tool testling has been unavailable. Today I was looking for an alternative to use with ecovoit, my carpooling search engine. Saucelabs is a very interesting solution, and is free for open-source projects. Now I found 2 tools to easily launch your Javascript TAP …

Read More

Genealogy tree visualization with d3.js

I'm happy to introduce you with genealogic-d3, a Javascript visualization library to nicely display genealogy trees that I've been working on during the past 3 days. I'm quite satisfied by the result. You'll find a live demo you can play with at https://chezsoi.org/lucas/genealogic-d3/skywalker.html I …

Read More