Je viens de m'apercevoir que j'ai dépassé les 3000 posts !!! #Proud #AccomplissmentPersonnel #DépassementDeSoi #UnVraiButDansLaVie #PouvoirMourirEnPaix
Je me troll un petit peu moi-même et c'est surtout que lorsque j'avais démarré mon tout premier shaarli il y a 5 à 7 ans je dirai, que je n'avais pas bien backupé ce dernier parce que #GrosseLoose et que j'en ai recommencé un autre quelques temps plus tard en récupérant ce que j'avais pu des posts de mon instance précédente, je me souviens m'être dite "bof, de toute façon, c'est encore un truc dans lequel tu te lances et que tu vas abandonner".
Au final, mon Shaarli est devenu mon lieu principal d'expression, il concentre toute une part de moi-même que je n'exprime pas au travail, devant les clients ou encore en famille. Et c'est encore plus dingue de se rendre compte que je me sens plus proche de personnes que je peux lire avec toujours autant de plaisir depuis toutes ces années - alors que je ne les ai jamais rencontrées -, que de certaines membres de ma propre famille.
Merci à celles et ceux qui me lisent encore et à mes loulous chéris qui postent à présent sur notre belle river :D
Comment générer des nombres pseudo-aléatoires (PRNG) ou véritablement aléatoire (TRNG) depuis Kotlin 1.3. Cela est un bon début pour se diriger vers du Kotlin-Native.
Lister les commiteurs d'un répo :
git log --pretty=format:"%an (%ae)" | tr '[:upper:]' '[:lower:]' | uniq | sort
Compter ce nombre de commiteurs :
git log --pretty=format:"%an (%ae)" | tr '[:upper:]' '[:lower:]' | uniq | wc -l
Quel est mon problème ?
Je dois lancer un projet Aurelia que j'édite sous VSCode et dont les fichiers sont surveillés par Gulp et par BrowserSync. Or le nombre de fichiers surveillables explose à cause de VSCode qui va également fouiner dans le répertoire node_modules
afin de valider les imports de classes et leurs usages dans mes fichiers TypeScript...
Pour vous donner un ordre d'idée, mon répertoire node_modules/
contient 21953 fichiers pour 160 Mo. Autant vous dire que la limite des 8192 fichiers est dépassée de loin.
Comment retrouver la limite portée actuellement par Linux ?
En saisissant la commande
cat /proc/sys/fs/inotify/max_user_watches
Comment augmenter cette limite ?
En saisissant la commande :
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Celle-ci vous permettra d'avoir 512 Mo de descripteurs ouverts simultanément sur une machine 64 bits, ce qui devrait vous laisser le temps de voir venir.
P.S : la rame n'est consommée que si les fichiers sont ouverts.
Pour @Chlouchloutte et @Lenny.
Chlouchloutte et moi discutions aujourd'hui du kata de code consistant à écrire un convertisseur de nombre décimaux en nombre romains. Son comportement est le suivant :
- À partir d'un Integer, je dois pouvoir récupérer sa valeur en écriture romaine sous la forme d'une String.
Comment le coder façon Yegor Bugayenko ?
Il y a deux façons de voir ce problème :
- Mettre en avant le concept de nombre
- Mettre en avant le concept de conversion.
1) Représenter d'abord les nombres
Je vais écrire l'interface suivante :
interface Converter {
fun value():String
}
Et un implémentation :
class IntegerAsRomanNumber(
private val number:Integer
) : Converter {
fun value():String {
// Conversion code
}
}
// Usage
val number = 123
val romanNumber = IntegerAsRomanNumber(number).value()
2) Représenter d'abord l'action de conversion
Nous conservons l'interface mais en précisant la structure dans le nom de la méthode :
interface Converter {
fun romanValue():String
}
Et son implémentation :
class Number(
private val number:Integer
) : Converter {
fun romanValue():String {
// Conversion code
}
}
Vous avez du remarquez que l'implémentation sera la même dans les deux cas et que la seul chose qui diffère sera le "wording". En réalité la première façon est verbeuse mais pratique puisqu'elle nous masque la problématique de conversion au profit de la mise en exergue du nouveau type de la donnée. Ce qui nous permettrait de créer plusieurs convertisseurs nous permettant de passer d'un type à un autre comme suit :
interface Converter<OUTPUT> {
fun value():OUTPUT
}
Exemple d'utilisation :
val number = 123
val egyptianNumber:String = RomanAsEgyptian(IntegerAsRoman(number)).value()
Et le concept de décoration fait sens à ce moment.
Comment comprendre le nombre colossale de permutations possible à l'aide d'un jeu de 52 cartes.
loool Pour les coupines quand vos chéries sont "trop insistants".
Énorme astuce pour générer des nombres aléatoires. J'aime l'idée.
Nul n'est censé ignorer la Loi... Oui ok sauf que...
Depuis 20 ans, l'Assemblée Nationale et le Sénat nous font tourner à environ 25 000 publications annuelles au journal officiel de textes en tout genre.
C'est colossale, si ça se trouve une ligne planquée quelque part vous interdit de manger des cacahuètes sans lunettes de soleil et au vu de la taille des différents Code, il est humainement impossible de tout lire et surtout de tout retenir.