268 private links
Il y a plusieurs moyens de générer des URLs. L'auteur recherche la meilleure.
Avoir des URLs pratique à saisir: courtes avec 4 caractères. 4 chiffres ou lettres donnent déjà 1 679 616 URLs possibles. C'est plus que suffisant pour un blog. Il est possible d'étendre cela à 5 au besoin pour 60 466 176 de possibilités.
Avoir des URLs non prédictibles nécessitent au moins 64 bits d'espace d'adresse, soit 11 caractères. C'est moins pratique à saisir.
Avoir des URLs faciles à saisir est aussi idéal. En optimisant la lisibilité (supprimer les 0, O, 1, I qui peuvent se confondre), on arrive à une base 57 au lieu de 64.
Avoir des URLs significatives implique des noms, donc que ce soit plus long. Est-ce vraiment nécessaire ?
Mis bout à bout, cela donne des URLs comme https://survol.fr/n/2qQVKC6AumxR
Si les liens n'ont pas à être confidentiel, alors 4 à 5 caractères pour un identifiant est idéal. Sinon une suite de mots (3 à 5) est aussi bien lisible. Enfin, pour avoir un compromis entre non prédictibilités et néanmoins lisible, 2qQVKC6AumxR
est correct, mais difficilement partageable oralement.
Il y a donc 3 approches possibles.
Deux autres idées sont suggérées en commentaire:
En étant un peu tordu, on peut concilier identifiants courts et contenu non découvrable par bruteforce en renvoyant toujours un code HTTP 200 et affichant un contenu généré aléatoirement sur les URI non-existants.
Créer des mots inexistants qui sont pourtant justes: https://lehollandaisvolant.net/tout/tools/fake-words/
Il est tout à fait possible que la déclaration de succession aux impôts soit rédigé par les héritiers. La notice fiscale 2705-SD doit aider à bien rédiger cette déclaration.
Sur un clavier allemandel c cédille n'est pas présent. En revanche avec Ubuntu, il est possible de taper un code unicode avec Ctrl + Shift + u.
Ç à le code c7
ç à le code e7.
Protéger son serveur des bots en envoyant des zips de 1MB ou 10MB qui se décompresse en 1GB ou 10GB respectivement
Free Mobile, Bouygues Telecom, RED by SFR et Sosh ont revus les tarifs de leurs forfaits d’entrée de gamme. On en trouve plusieurs avec 20 Go de 4G à moins de 4 euros et 50 Go pour moins de 5 euros.
Les offres peuvent paraître légères avec 20 Go par mois, mais cela peut largement suffire à une majorité de personnes.
En plus du forfait téléphonique et les données mobiles, il est pertinent de savoir qu'elle est le comportement une fois la limit des Go atteint. Frais de résiliation et coût de la carte SIM. Qu'en est-il du roaming.
- Too small target areas
- Not using gap with Flexbox
- Unforgiving target areas for dropdowns
- No delay before closing drodowns
- Not animating anchor links
Long form options are much more self-explanatory for the reader.
I totally agree
Show elements in an input?
✨ Chrome: DevTools Settings > Preferences > Elements > ✅Show user agent shadow DOM
✨ Firefox: about:config > set devtools.inspector.showAllAnonymousContent to true
Use inset: -8px
to make the element overflows in its container.
C’est la notation qui comprend la notation des dates au format « 2025-02-15 », par exemple, où la granularité la plus fine de la notation se fait à droite.
Dans le code pénal, Le livre 1, titre 2, chapitre 3, article 4 est noté « article 123-4 ».
Le seul défaut de retirer les séparateurs entre les différents niveaux de granularité : cela limite à 9 le nombre de titres ou chapitres
Concernant les dates, j’ai définitivement pris l’habitude d’écrire au format YYYY-MM-DD.
– Non seulement c’est plus logique : les nombres sont écrit dans cet ordre aussi (on commence avec les milliers, puis les centaines, puis les dizaines, puis les unités : donc les grands à gauche et les petits à droite).
– En plus l’ordre naturel est l’ordre chronologique, dans le cas des dates
– Ça limite la confusion quand un américain parle à quelqu’un de censé
– C’est l’ISO 8601.
Idem
They are great! They are key-value pairs at the end of a commit message.
Les règles d'or du bricolage :
-
Ayez toujours le bon outil pour faire quelque chose.
-
Le bon outil vous coûtera toujours moins cher que le faire faire, ou faire de la merde avec le mauvais outil.
-
Et vous vous en resservirez des années.
-
Le bon outil n'est pas toujours le plus cher, ni la marque
-
Évitez les merdes chinoises tout de même
-
On ne fait pas des trous dans le béton avec une perceuse, même à percussion, mais avec un perforateur.
-
Avant de faire une soudure, il faut apprendre à faire des soudures propres.
-
Réfléchissez avant de percer un trou ou découper un truc.
-
On ne peut ni dépercer, ni dé-découper. Mesurez deux fois. Trois.
-
Ne croyez jamais les vendeurs des magasins de bricolage.
-
Le placo c'est de la merde, ne fixez jamais un truc lourd sur du placo, ou mettez triple dose de grosses chevilles Molly.
-
Ne faites jamais rien à la hâte, prenez le temps.
-
Mieux vaut le faire bien un autre jour avec le bon mood et les bons outils que mal aujourd'hui avec un mood de merde et les mauvais outils.
-
Si vous ne vous sentez pas capable de faire un truc, vous avez probablement raison. Ne le faites pas.
-
Ou entraînez-vous sur des trucs plus simples et apprenez à le faire correctement avant.
-
Utilisez toujours un tournevis de la bonne taille et de la bonne empreinte pour la vis. Une vis cruciforme peut être Pozidriv ou Philips, n'utilisez PAS le mauvais tournevis.
-
Si vous voulez fixer un truc dans un mur, il vous faut le bon type de cheville pour le type de mur, le foret du bon diamètre et une vis de taille adaptée. Si mur + foret + cheville + vis ne vont pas ensemble, vous aller faire de la merde qui ne tient pas.
-
N'essayez jamais de percer avec un foret usé. Vous allez vous fatiguer, vous allez faire un trou de merde, vous allez niquer la perceuse et vous risquez de vous faire mal. Si le foret est niqué, allez en acheter un neuf.
-
Again connaissez vos limites. Je touche à l'électricité, l'électronique, la plomberie, le second oeuvre, la mécanique, les moteurs, mais je ne toucherai JAMAIS à un pinceau, de la tapisserie, de l'enduit ou du crépi, je ne ferais que de la merde. Je le sais. C'est un fait.
Instead of
const Thing = struct {
checksum: u128,
number: u32,
flag: u8,
};
use
const SoA = struct {
checksum: []u128
number: []u32,
flag: []u8,
};
in certain circumstances:
- Reduced memory usage due to amortized padding. As flag is a byte, it requires some padding to align with larger fields like checksum.
- Better memory bandwidth utilization for batched code. If a loop needs to process all things, but the processing doesn't require all fields (at least for the majority of objects), then an array-based representation reduces the amount of data that needs to be loaded.
Great advices
It is much easier to add features to reliable software, than it is to add reliability to featureful software.
Besides, it’s very easy to accidentally think you need features that you don’t actually need.
Write serialized test scenarios
Storing UTC events loses the timezone information.
What happens if the event changes its location timezone?
What happens if the new DST rule changes?
So what to do? Store the original user's intent! Maybe derive the timezone from the location in some cases. Then store the UTC time of that event and store that as well.
Note: timezone UIs suck generally. One option is available between a lot, and the name is not always clear...
Full of good advices.
(in the context of big tech companies)
the priority of a project is to ship!
But it’s really important that one person on the project has an end-to-end understanding of the whole thing: how it hangs together technically, and what product or business purpose it serves.
You only know you’ve shipped when your company’s leadership acknowledge you’ve shipped.
you have to get clear on what the company is looking to get out of the project. [...] Align your work and communication accordingly!
Second, no matter the project goal, your leadership team will always have basically zero technical context about the project. They will rely on you for estimates, to answer technical questions, and to anticipate technical problems. Maintaining that trust should be your top priority.
How?
- track record of having shipped in the past.
- project confidence
- project competence
- communicate professionally and concisely. Share updates.
Then getting to production! Often a key detail is missing. Sometimes the user documents are stored in memcached and are MB large, or the data stored are unexpectedly sensitive legally sensible.
Can we ship right now?
Bring up the feature to as many eyes as possible!
If you want to ship, you need to do the exact opposite: you need to deploy as much as you can as early as possible, and you need to do the scariest changes as early as you can possibly do them.