Monthly Shaarli

All links of one month in a single page.

December, 2020

What are your favorite non-standard CLI utils/applications | Lobsters

A great list of tools. A majority of them are written in Rust 😄

An open-source free library of 1000+ icons | Emblemicons
A Calendar in Three Lines of CSS – Calendar Tricks
.calendar {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
}
.first-day {
  grid-column-start: 3;
}

<div class="calendar-wrapper">
  <h1>Decemeber</h1>
  <ul class="calendar">
    <li class="weekday">Sun</li>
    <li class="weekday">Mon</li>
    <li class="weekday">Tue</li>
    <li class="weekday">Wed</li>
    <li class="weekday">Thu</li>
    <li class="weekday">Fri</li>
    <li class="weekday">Sat</li>

    <li class="first-day">1</li>
    <li>2</li>
    <li>3</li>
    <!-- ... -->
    <li>29</li>
    <li>30</li>
    <li>31</li>
  </ul>
</div>

(via https://warriordudimanche.net/article1443/5fea073b4eaa9)

Developers up in arms over Google Maps API ‘insane’ price hike

De sebsauvage:

Reminder: When Google was dominating the online map services with GoogleMaps, it has been decided to increase the price by 1400%.
This increase is the medium reported by the users.
So no, GoogleMaps is not free if you want to use a map on your website or app: As soon as people start to consult your cards, you have to pay for it. Very quickly.
Google is not your friend. Google is SELLING access to its private maps.

Blog Stéphane Bortzmeyer: Developing and running an Internet crawler

For the Gemini space 🎨
Source code is available on a Gitlab instance : https://framagit.org/bortzmeyer/lupa

The Use Of assert() In SQLite

About the usage of assert, ALWAYS, NEVER, testcase

No cookie for you - The GitHub Blog

Github removes all non-essential cookie from the platform, so there is no cookie banner anymore.

Un guide rapide de Mastodon 🐘

Un article de présentation du Fediverse (Mastodon).

(via https://sebsauvage.net/links/?6cWXWA)

Comment acheter 🛒 une étoile ⭐ ? | Geeek

TL;DR c'est une arnaque

Note: avoir les dernières versions des iconfonts

Avoir les dernières versions des iconfonts via le CDN de Google. Le lien pointe ici vers Material Icons Round.
C'est hacky, mais cela fonctionne 👍

ANSSI-FR/MLA: Multi Layer Archive - A pure rust encrypted and compressed archive file format

Similar to the tar.gz format, with encryption included.

Le ruissellement, c'est du flan | korii.

En premier,

les baisses d'impôts pour les plus riches accroissent les inégalités.

En deuxième,

les baisses d'impôts pour les plus riches n'ont pas d'impact positif sur les performances économiques d'un pays.

The Modern JavaScript Tutorial
La meilleure technique de résolution de problèmes en programmation - Je suis un dev

Plein de bons conseils !

5 lines I put in a blank .vimrc | Sword and Signals

Et pour ne même pas avoir à le mémoriser, il suffit d'utiliser Espanso 😄
Ou d'automatiser la configuration via Ansible, etc...

Become shell literate

Using the shell for daily tiny tasks ❤️

L’homme qui hululait à l’oreille des formulaires – 24 jours de web

Sur la bonne utilisation des formulaires

The Function - David Beazley - YouTube

Without comment, the code explains itself.
About functions in python and how they can be used, called, callback, *args, **kwargs and more.

How To Use Bash Parameter Substitution Like A Pro - nixCraft
command meaning
${parameter:-defaultValue} Get default shell variables value
${parameter:=defaultValue} Set default shell variables value
${parameter:?"Error Message"} Display an error message if parameter is not set
${#var} Find the length of the string
${var%pattern} Remove from shortest rear (end) pattern
${var%%pattern} Remove from longest rear (end) pattern
${var:num1:num2} Substring
${var#pattern} Remove from shortest front pattern
${var##pattern} Remove from longest front pattern
${var/pattern/string} Find and replace (only replace first occurrence)
${var//pattern/string} Find and replace all occurrences
${!prefix*} Expands to the names of variables whose names begin with prefix.
${var,} Convert first character to lowercase.
${var,pattern} Convert only if the pattern match
${var,,} Convert all characters to lowercase.
${var,,pattern} Convert only if the pattern match
${var^} Convert first character to uppercase.
${var^pattern} Convert only if pattern match
${var^^} Convert all character to uppercase.}
${var^^pattern} Convert only if pattern match
Blog Stéphane Bortzmeyer: RFC 8943: Concise Binary Object Representation (CBOR) Tags for Date
cargo-mobile: Rust on mobile made easy! | Brainium Dev Blog

To follow for the support the development in Linux and Windows OSs

GOTO 2018 • Containers From Scratch • Liz Rice - YouTube

So much cool informations about kernel interfaces and docker:

  • Docker is basically built on top of kernel namespaces,
  • On Unix systems, every processes information is stored inside /proc
  • Control the resources used through /sys/fs/cgroup interface (cgroup → control group)
    • Inside each dir of cgroup, there is a docker directory ! These directories contain informations for each container.

Wow it is great to know the basics of the container under the hood !

Guide to Advanced CSS Selectors - Part One | Modern CSS Solutions

Selectors: * [attribute] > ~ +

With the part two about pseudo -classes and elements selectors. Examples used in development are explained 👍

Hexagonal Grids

How to use hexagonal grids. It is complete ! Wow well done.

Everything is here to create a game based on hexagons :)

Le discours indirect en allemand

Propre, net, carré, précis.

Shared bookmarks on https://shaarli.fweiss.com/

Shaarli von einem Freund

Dictionnaire français pour hashcat | Zythom

Pour se faire une liste des mots pour des attaques de mots de passes par dictionnaires : récupérer les mots de Wikipedia

Emissions des voitures essence, diesel et hybrides récentes : le Gouvernement rend publique l’étude scientifique réalisée par l’IFPEN | Ministère de la Transition écologique

Étude du Gouvernement

Les véhicules hybrides rechargeables présentent des niveaux d’émissions de CO2 variables en fonction de l’état de charge de la batterie. Les émissions sont très faibles lorsque le véhicule est rechargé quotidiennement et les distances parcourues inférieures à 50 km par jour. Lorsque les recharges sont peu fréquentes ou les distances parcourues élevées (supérieures à 100 km par jour), les émissions se rapprochent de celles d’un véhicule thermique de modèle équivalent. L’efficacité environnementale réelle de cette technologie de véhicule est donc conditionnée à son usage et notamment aux bonnes pratiques en termes de fréquence de recharge des utilisateurs.

Deutsche Grammatik online lernen

Le site est certes vieux, mais les exercices sont bien pratiques !

Game UI Database | Welcome
D’où viennent le nom de la clémentine et de la mandarine et comment les différencier ? (Christmas Special) | Le Détective des Mots

La clémentine est un croisé d'oranger et de mandarine, sans pépin (donc stérile). Son nom provient du frère Clément qui a été le premier à en faire pousser une.

Ten awesome, rigorous, and curated Python interview questions | by Hillel Wayne | HackerNoon.com | Medium
The Zen of index.html

Keep it easy, easy peasy

Mes apprentissages décisifs en tant que développeur - Je suis un dev
  1. Comprendre ce qu'on fait [Simple, basique, mais c'est un prérequis]
  2. Connaître plusieurs paradigmes permet de résoudre un problème avec de meilleures
  3. On ne transige pas avec la qualité de son programme en production, et on s'en fout de la qualité lors de résolution du problème : il faut prototyper jusqu'á trouver une solution qui fonctionne.
  4. Prendre le temps de lire ce qui est mis à disposition (erreurs, documentation entre autres).
Exotic Programming Ideas: Part 4 (Datalog)

Fun ! This respect the KISS principle 😄
Using the tool named souffle.

githooks - Hooks used by Git - File Formats | ManKier
Des boutons appelants la même fonction avec des arguments différents grâce à functools.partial() - Dorian Fevrier's blog

Sur l'utilisation de functools.partial

How to Make an Area Chart With CSS | CSS-Tricks

Wow ! Charts are only created with HTML and CSS, making them very efficient

Le tableau de la résistance des mots de passe

Et les différentes techniques d'attaques

Microsoft (oui encore) - Liens en vrac de sebsauvage

Le rapprochement si évident 🤣

Mutiny!

Looks cool :)

You.com | Trusted Search

Ok ! something new is coming in the search engine world. Watch and see :)
Its goal is to fix the flaw of google.

Animez en HTML / CSS vos dépôts Github – Korben

Attention, un prochain outil va apparaître rien que pour cela dans 3, 2, 1

Restic, remplaçant de borg et duplicati ⋅ Plume
Moineau masquée 🔻 on Twitter: "[Violences conjugales, thread de phrases qui m'ont aidée] "Vous me parlez de ses besoins, mais que voulez-vous pour VOUS ?" (ma psychologue)" / Twitter
Blog Stéphane Bortzmeyer: Fiche The trojan war

Fiche sur le livre de la guerre de Troie

Very Short Introductions - Oxford University Press

Des livres qui compilent au maximum le savoir de l'humanité sur un sujet. Je gardes cela sous le coude.

A Haskell Reading List

Might be useful someday

Backup simple d'un téléphone sans passer par les GAFAM. - Liens en vrac de sebsauvage

Nice !

Hire people who give a shit. - Rational in the Fullness of Time

TL;DR

To be more specific, there’s actually two things to screen for:

  1. they give a shit about X, and
  2. they give a shit about their work in general.
Why scientists are turning to Rust

Example of a scientist turning into Rust.
Some arguments in favor of Rust:

  • Microsoft use it too to rewrite parts of Windows because 70% of their bug fixes each year are related to memory safety. Something that can not happen in Rust.
  • the engine Servo of Firefox is written in Rust
  • It is the fastest growing language according to Github
  • the compiler produce high informative error messages
  • a well complete and high-quality ecosystem: tooling (cargo, clippy, , community, IDE integration, Rust playground

BUT the learning curve is steep.

Idea to learn Rust : RIIR scientific algorithm :stuck_out_tongue_closed_eyes:

Awk awk awk | Zythom

😮

cat toto.txt | sort | uniq > pas-de-doublons.txt

to

cat toto.txt | awk '!x[$0]++' > pas-de-doublons.txt
Docker : l'image scratch, c'est quoi ?

La ligne FROM scratch dans un dockerfile indique que l'image est construite à partir d'aucune dépendance. Elle nous permet de construire des images de base.

Trianglify Wallpaper – Générez des fonds d’écran abstraits – Korben

Yep, c'est beau et pratique. La simplicité d'utilisation est là !

Bluetooth A2DP : attention au codec utilisé (aptX, SBC, AAC)

Il y a différents codecs utilisables.
Le SBC est supporté partout mais est dégueulasse 👎. À utiliser en dernier recours.
Si la qualité audio n'est pas bonne, c'est peut être que le codec SBC est utilisé.

Il y a ensuite trois codecs optionnels pour A2DP (Advanced Audio Distribution Profile):

  • aptX (propriétaire): 👍 mais a souvent des problèmes de compatibilité
  • AAC et le MP3 sont 👍, si ils sont supportés ! Le son est généralement déjà encodé dans un de ces deux codecs.

Personnellement, le casque que je possède utilise le A2DP Sink pour communiquer, dont la qualité semble bonne, puis le AAC ou MP3 en codec 😄 Il n'est cependant pas possible de l'utiliser avec le microphone intégré au casque, je dois rebasculer sur le HSP/HFP et la qualité prend un coup.

Microsoft et Linux - Liens en vrac de sebsauvage

Les données du cache sont dans le répertoire .config 🤦

Le RGPD et l'Education nationale, un vaste chantier inachevé - ZDNet

On souligne encore le comportement de l'Éducation Nationale:

  1. Utilisez les logiciels libres, c'est bien et encouragé.
  2. Fournir des licences et des services Microsoft aux employés du ministère, et aux étudiants

Mais cela laisse le choix entre les deux à l'utilisateur.

Ruby 3.0.0 Released
  • 3 times faster
  • with some syntactic sugar and more coherence
  • the copy/paste of the virtual environment of Ruby (IRB) is now as fast as expected.
  • type can be defined with RBS and TypeProf is currently a kind of type inference and generate the prototype of the signature in RBS format

Nice !

Bulletin, la newsletter des gens curieux et optimistes

De l'info positive 👍

(via https://sebsauvage.net/links/?BMWUvQ)

ISO 8601 - Wikipedia - Le Hollandais Volant

Oh oui ! Ce format est bien pratique, je l'utilises par exemple pour le nommage de mes fichiers, notes de cours, etc... Tout en fait !

ANSSI-FR/rust-guide: Recommendations for secure applications development with Rust
It’s not legacy code — it’s PHP. Vimeo has been using PHP in production… | by Matt Brown | Vimeo Engineering Blog | Dec, 2020 | Medium

TL;DR PHP has improved and can be used for large-scale website

Effet Lindy — Wikipédia

L'effet Lindy est une théorie selon laquelle l'espérance de vie future d'une chose non périssable, implique une espérance de vie restante plus longue à chaque fois qu'elle survit à une période de temps.

Combien faut-il d'utilisateurs de GNU/Linux pour changer une ampoule ? - Projet GNU - Free Software Foundation
Stop using Material Design text fields! - Matsuko Friedland

In a summary:

Don't use placeholder text.
Don't use disabled form fields and buttons, whenever possible.
Don't make multi-column forms.
Do make sure labels and instructions are always visible.
Do put your labels and instructions above text fields.
Do make sure your labels, inputs, and any help text are associated properly.
Do make sure all text meets WCAG colour contrast requirements.

A few words on Git. – Hadi Hariri

And I agree too, git sucks as UX.
I am the first one to be the git workflow breaker.

Du responsive sans media queries | Putain de code

Combiner flexbox, min-width ou flex-basis et overflow: hidden.

Concevoir des formulaires inclusifs – 24 jours de web
Que choisir entre Rust et Go - Blob Trotter

Chaque langage à ses avantages et a été crée pour une raison ! Les deux langages sont passées ici en revu

Original article

Comment formater ou effacer correctement un SSD – Korben

et sur les différents types de SSD. Comment bien les choisir ?

Télétravail : la Cnil interdit les keyloggers et tous les outils de surveillance déloyale du salarié
Pure CSS Shapes 3 Ways | Modern CSS Solutions

clip-path seems very powerful ! borders and linear-gradient can be used to create triangle though

Pour un monde avec un million de Netflix – Framablog

Un DRM c’est un programme informatique dont l’objectif est de faire dysfonctionner la lecture d’un fichier dans le cas général. C’est un buggeur. Informatiquement c’est assez étonnant comme pratique, ça consiste à faire en sorte que les programmes fonctionnent moins bien.

Excellente explication ! Le billet de blog sous le coude pour être partagé

Macron, nucléaire, renouvelable et stockage de l’électricité - Le Hollandais Volant

Des réflexions pertinentes sur l'énergie

La chasse fait-elle plus de morts que le terrorisme, mais moins que les violences conjugales ? - Libération

Les violences conjugales bordels. C'est quoi ces chiffres si élevées ?! 😤

Blog Stéphane Bortzmeyer: RFC 8961: Requirements for Time-Based Loss Detection

Comment reconnaître un paquet perdu et quels sont les protocoles pour éviter, détecter et réparer ce genre de problème ?

happy_freelancing.md

#Feedback d'un freelancer en développement web

Son parcours:

À New York:

« Et bien déjà, de combien de développeur as-tu besoin ? » « Une trentaine. » « Trente développeurs Ruby ? Et pourquoi faire ? Et combien es-tu prêt à les payer, tes développeurs ? » « $150 000 par an. » « Personne ne viendra travailler pour toi à ce salaire. Les développeurs peuvent avoir des salaires équivalents dans des petites sociétés. Pourquoi viendraient-il travailler dans une grosse société de finance pour gagner aussi peu ? »

Après être revenu des USA, il s'est rendu compte que ses compétences ont plus de valeurs que ce qu'il pense.

Le contrat au forfait est inadapté au monde du dévelopement: à partir du moment où le contrat est signé, les intérêts du client et du freelance divergent immédiatement. Le contrat à l'heure est préférable.

Le point clé consiste simplement à être transparent, totalement honnête avec son client. Si vous pensez que travailler au forfait se passe toujours mal, et que vous comprenez ces raisons (d’ailleurs cela vous est probablement déjà arrivé à vous, en plus des nombreux témoignages qui abondent sur le sujet), il est de votre devoir de prendre le temps et l’énergie pour expliquer cela à votre client. [...]

Avantage pour le client:

  • les temps passées sur chaque choses sont justifiées
  • les fonctionnalités onéreuses mais qui apportent finalement une faible valeur ajoutée sont démontrées
  • si une demande est hors du domaine d'expertise, un spécialiste peut être recommandé afin que le prix sois moins cher, et elle sera mieux réalisée

Avantage pour le freelance:

  • le travail est payé à sa juste valeur
  • après avoir passé du temps sur un problème non-anticipé, le freelance devra contacter le client pour lui expliquer son erreur, et que cela risque de lui coûter cher, pour une valeur ajoutée faible: s'il désire tout de même la réalisation de sa demande, alors le freelance pourra l'accomplir pour sa juste valeur. Le client aura dans tout les cas conscience de la difficulté et de la valeur de ce travail.
  • facturer les heures permet de travailler moins, car la concentration doit être maximale sur ces heures. Le client doit donc faire travailler le moins possible.

Les bénéfices du travail en précarité: il n'y a pas de contrat d'exclusivité: le contrat peut être annulé des deux côtés à n'importe quel moment. En pratique, il est indispensable de faire des efforts afin de travailler ensemble et de se comprendre. La précarité empêche d'endormir ces efforts. Ainsi le freelance apporte la garantie qu'il fera son possible afin de garantir la bonne marche du projet; et le client s'engage de même.

Le système est donc gagnant pour tout le monde.