Journal Petite mise à jour de OUI Léger
Précédemment, je présentais ici l’extension OUI Léger pour rendre le site oui.sncf plus léger et plus rapide sur Firefox.
Ce journal a eu beaucoup de succès, je vous tiens donc au courant. Aujourd’hui, j’ai amélioré quelques petites choses, des fois que des gens ici utilisent encore OUI.sncf :
- Une image de fond est réapparue depuis le dernier journal. Elle est maintenant cachée.
- Deux marges inutiles ont été supprimées
- L’ajout des liens d’accès aux différentes pages en bas de la page (…)
Journal OUI-Léger : une extension Firefox pour rendre le site oui.sncf plus léger
Je prends régulièrement les trains de la SNCF, la Société Nationale des Chemins de fer Français. Cela m’amène à acheter des billets sur le site OUI.sncf (anciennement voyage-sncf.com).
Ça fait longtemps que je suis gêné par la lourdeur du site. La page d’accueil met bien 10 secondes à se charger, et le processus complet d’achat de billet prend plusieurs minutes sur un ordinateur classique, et ne parlons même pas de la situation sur le téléphone. Le site consomme également énormément (…)
Journal Ligne de commande : les 20 mémos d'un « autodidacte »
Depuis avril 2018 j'ai eu l'occasion de publier sur le Grimoire-Command.es les 20 mémos du précédent secrétaire de Gebull (le LUG de Bressuire).
Les sujets abordés sont variés et représentent quelques décennies de lecture de forum et de tâtonnements, scrupuleusement notés et repris en fiches synthétiques.
Comme le reste du grimoire, ce sont des mémos, des penses-bêtes, pour retrouver rapidement une commande que l'on a déjà utilisée ou aperçue. Comme pour les grimoires de jeux de rôle, il faut donc (…)
Forum Programmation.python Coût de l’introspection
Bonjour à tous,
J’ai une fonction qui se charge d’écrire des messages dans un fichier (les logs de mon application). Cette fonction peut être utilisée par différents objets. Donc pour avoir le maximum d’information dans mes logs, cette fonction fait appel à la fonction currentframe() du module inspect :
from inspect import currentframe
class Logger:
"""Log messages."""
def __init__(self):
self.logfile = sys.stderr
self.log_time = False
def __del__(self):
(…)
Wiki [Tuto/HowTo] Transférer les logs en ram avec Log2Ram
Testé sur : Raspberry Pi 2 (raspbian jessie), Odroid-XU4 (ubuntu-minimal 16.04)
Introduction
Log2Ram est une application permettant de placer les fichiers log en mémoire RAM. L'objectif étant de diminuer le taux d'écritures sur la mémoire système. Cela permet de soulager les vieux disques dur tout en accélérant légèrement le système, ainsi qu'augmenter la durée de vie des mémoires flash (cartes SD, clés USB, etc) utilisées pour le système d'exploitation.
Cette astuce permet d'augmenter la durée (…)
Journal Optimisez votre code !
Cher journal,
Je voudrais te raconter une histoire, qui n'est peut-être pas encore finie d'ailleurs, qu'on pourrait résumer en 1 mot : OPTIMISATION !
Tout commence en tout début d'année : je suis embauché chez Chacun cherche son Film, une toute petite (5, moi inclus) boite qui développe un site Web faisant la promotion du cinéma indépendant. Cette boite a fait le (très mauvais, comme on va le voir) choix de faire développer son site par une boite de prestation (…)
Wiki [Tuto/HowTo] Stopper la rotation d'un ou plusieurs disques (HDD) sur Ubuntu/Debian
Introduction
Nous allons utiliser HDParm afin de stopper la rotation d'un disque. Il faudra répéter l'opération pour chaque disque (y compris si membre d'une grappe type btrfs).
Si un logiciel (exemple mount) sollicite le ou les disques, ils se remettront à tourner automatiquement.
Attention : les disques durs externes ne peuvent pas tous être contrôlés via cette méthode.
Stopper la rotation d'un disque via ligne de commande
Passez en admin (root)
- Sur Ubuntu / Raspbian
sudo su
- Sur Debian / (…)
Wiki [Tuto/HowTo] Apache2 activer HTTP2
Wiki [Tuto/HowTo] Optimiser Zoneminder
Introduction
ZoneMinder étant un logiciel assez lourd (consommateur de ressources machine et réseau), il peut être intéressant d'optimiser son bon fonctionnement partout où on le peut. Voici quelques clés non-exhaustives afin de diminuer les lags, d'augmenter la durée de vie de certains composants de l’ordinateur, d'améliorer la sécurité, etc…
Optimisations de Zoneminder
Déplacer le dossier Swap de ZoneMinder
Le dossier swap (tampon) est utilisé lorsqu'un client veut visionner des caméras et plus particulièrement lors des retours en arrière et ralentissements (…)
Journal Kotlin + Brainfuck : efficacité, compacité, optimisation
L'une des prétentions de Kotlin, c'est grosso merdo d'être une version moderne et efficace (= sans boilerplate code) de Java.
On va tester ça avec un interpréteur BrainFuck.
La version simple
Le but du jeu est de faire le plus simple possible :
- Interprétation bête et méchante du code Brainfuck.
- Le code est lu dans un fichier externe dont le chemin est passé en argument.
- Si le code BF est pété, le programme fera n'importe quoi (pas (…)
Wiki Tuto/HowTo - Nextcloud activer système de cache (memcache) avec redis
Introduction
- Le système de cache permet de stocker en mémoire RAM (ou en SWAP si trop de RAM utilisée) certaines informations régulièrement sollicitées, évitant ainsi de passer par la base de données (MySQL, PostGreSQL, SQLITE, etc) et augmentant les performances. Si vous utilisez un cache Redis sur une autre machine que le serveur web (par exemple en cluster), utilisez php-apcu pour stocker localement les scripts php précompilés et redis pour les informations qui doivent être partagées entre les serveurs.
Note (…)
Journal [C++14 ] Expressions template pour les nuls
Expression Templates pour les nuls
Après un contact prolongé avec Joël Falcou, et pas mal de nœuds aux cerveaux pour arriver à émuler le comportement du broadcasting de Numpy avec des expression templates dans Pythran, j'ai eu l'envie soudaine, un peu folle peut-être, de réécrire un moteur d'expressions template en C++14, mais pour faire simple et didactique.
Mais de quoi zy parle
Les expressions templates sont une maintenant assez vieille technique de C++ qui permet par exemple d'éviter de (…)
Forum Programmation.shell Script Bash, tronquer noms de fichiers pour eCryptFS
Ce script fonctionne déjà ici en production.
Je cherche à l'optimiser car je l'utilise depuis peu sur un plus gros dossier.
Contexte :
Nous souhaitons effectuer des sauvegardes externes de sorte à prévenir l'incendie ou le cambriolage.
Nous souhaitons que cette copie externe soit chiffrée.
Actuellement, elle se trouve sur un disque externe mais sera bientôt synchronisée à partir d'une machine extérieur, via internet (rsync).
eCryptfs est utilisé dans un premier temps pour obtenir une version chiffrée d'une sauvegarde locale (…)
Journal The Timeless hacke ta machine et ton cerveau
Du 18 au 21 avril à Saarbrücken (Allemagne), se tenait l’événement Revision 2014, une des plus grandes demoparty du monde. L’équipe Mercury a publié une impressionnante démo dans la catégorie 64K (l’exécutable ne doit pas dépasser 64 Ko en taille) : The Timeless.
La démo dure environ 6 minutes (étape de pré-calcul omise). La première scène nous plonge dans une eau trouble que nous quittons pour contempler un soleil couchant sur une mer agitée, et dès les premières secondes (…)