Vue lecture

Rotoscopie - How I Animated This Video

Une techno qui facilite la production d'animations en rotoscopie, j'ai aucune idée de ce que je vais en faire mais tout ce que je sais c'est qu'il faut que je garde ça de coté
Permalien

  •  

Visual Studio Live Share: Lien pour s'authentifier

Live share déconne un peu avec VSCodium et l'authentification integrée ne fonctionne pas, la solution est de passer par ce lien et de copier la clé générée apres avoir été redirigé (En faisant F1 sur VSCodium et en selectionnant "Sign-in with a user code")
Permalien

  •  

CommandLineFU.com

Un site où les gens repertorient leurs lignes de commandes pour les retrouver plus tard, y'a potentiellement des trucs super pratiques
Permalien

  •  

danefairbanks/TwitchClipManager: Manage Twitch Clips

Un script c# qui permet de télécharger les clips twitch d'une chaine

Je le met ici parce que dans le README le mec donne une manip pour récuperer son token d'authent. directement dans les cookies du navigateur au lieu de passer par un 3rd party
Permalien

  •  

Jason Weimann - Tests unitaire

En regardant une video de Brackeys, j'ai entendu parlé de ce mec qui vend des formations de gamedev en ligne, il a l'air d'appliquer pas mal de concepts "craft" comme les tests unitaires ou les design patterns
Permalien

  •  

Script pour configurer Media Player Classic rapidement - GitHub - DespairParadise/DCP-BuildScript

Un pote m'a envoyé ce repo pendant une discussion sur les lecteurs video libre, pour l'instant j'ai pas de raisons de sortir de ma zone de confort et remplacer VLC par MPC mais je le met de coté ça peut toujours servir

Description du-dit pote :
"en fait ce sont des réglages des différents filtres des codecs aux petits oignons, un module de son bien meilleur qui peut convertir les sources 5.1 en 2.0 pour ton casque bien mieux que ceux de VLC etc."

Seems about right
Permalien

  •  

Twitter : "[Thread] Le 16 mars 2020, l'équipe de Neil Ferguson a sortis une étude nommée: "Impact of non-pharmaceutical interventions (NPIs) to reduce COVID-19 mortality and healthcare demand". Elle est édifiante et je vais essayer de vous la résumer ici"

Thread hyper interessant qui résume un article scientifique de Neil Fergusson sur l'impact de la pandémie en cours, c'est simple concis et ça se veut le moins alarmiste possible par rapport à la gravité de la situation
Permalien

  •  

Script bash : Executer une lambda sur une liste de dossiers

Quand je bossais sur les commons, je me suis fait cette commande pour appliquer une lambda à tout les repertoires enfants commençant par "common-"

#!/usr/bin/env bash
export DIRS=$(find . -maxdepth 1 -mindepth 1 -type d -name "common-*" -printf '%f\n')
for folder in $DIRS
do
(cd $folder && eval $1)
done

Et ça s'utilise comme ça
./foreach mvn clean install -Pprod <a href="https://cakeozolives.com/shaarli-lenny/?addtag=lance" title="Hashtag lance">#lance</a> le build en prod sur tout les commons
Permalien

  •  

Lib technique JS - Gestion d'horaires

Je met de coté ici une petite classe technique qui permet de faire des opérations sur des horaires (addition, soustractions, division etc)

Elle était a la base faite pour un script google sheets du coup le jour où je veux l'utiliser il faudra se débarasser des classes de chez google (genre le Logger)

function test(){
  Logger.log("plus = 09:30 : ", new Time("08:00").plusTime(new Time("01:30"))) 
  Logger.log("plus = 10:00 : ",  new Time("08:00").plusTime(new Time("02:00"))) 
  Logger.log("plus = 08:01 : ",  new Time("08:00").plusTime(new Time("00:01")))

  Logger.log("minus = 07:59 : ", new Time("08:00").minusTime(new Time("00:01"))) 
  Logger.log("minus = 23:00 : ", new Time("01:00").minusTime(new Time("02:00")))  
  Logger.log("minus = 22:59 : ", new Time("01:00").minusTime(new Time("02:01")))
  Logger.log("minus = 22:58 : ", new Time("01:00").minusTime(new Time("26:02")))

  Logger.log("divide = 03:20 : ", new Time("10:00").divideTime(new Time("03:00")))  
  Logger.log("divide = 04:00 : ", new Time("08:00").divideTime(new Time("02:00")))  
  Logger.log("divide = 08:00 : ", new Time("08:00").divideTime(new Time("01:00")))

  Logger.log("modulo = 00:15 : ", new Time("01:00").moduloTime(new Time("00:45")))
  Logger.log("modulo = 01:00 : ", new Time("02:30").moduloTime(new Time("01:30")))

  Logger.log("asDate = AUJOURD'HUIT01:00:00 : ", new Time("01:00").asDate())

  Logger.log("asDecimal = 0.5 : ", new Time("00:30").asDecimal())
  Logger.log("asDecimal = 1.5 : ", new Time("01:30").asDecimal())
  Logger.log("asDecimal = 1.25 : ", new Time("01:15").asDecimal())

  Logger.log("fromDecimal = 12:30 : ", Time.fromDecimal(12.5))
  Logger.log("fromDecimal = 00:45 : ", Time.fromDecimal(0.75))
  Logger.log("fromDecimal = 01:45 : ", Time.fromDecimal(1.75))
  Logger.log("fromDecimal = 02:30 : ", Time.fromDecimal(2.5))  

  Logger.log("fromMinutes = 23:45 : ", Time.fromMinutes(-15)) 
  Logger.log("fromMinutes = 02:00 : ", Time.fromMinutes(120)) 
}

/**
* Représente une heure de la journée au format "HH:MM"
*/
class Time{

  /**
  * Constructeur.
  * Param : 
  *    hour:String - L'heure au format "HH:MM"
  */
  constructor(hour){
    this.hour = hour
  }

 /**
  * Initialise un Time à partir d'un nombre de minutes
  * Param : 
  *    mins:String - L'heure au format "HH:MM"
  */
  static fromMinutes(value){
    function addZeroToHour(hour, minutes){
      if(minutes < 0){
        hour -= 1
      }
      return hour >= 0 ? ((hour<10 ? '0' : '') + hour) : addZeroToHour(24 + hour)
    }

    function addZeroToMinutes(minutes){
      return minutes >= 0 ? ((minutes<10 ? '0' : '') + minutes) : addZeroToMinutes(60 + minutes)
    }

    var hour = (value/60 |0) % 24
    var minutes = value % 60
    return new Time(addZeroToHour(hour, minutes) + ':' + addZeroToMinutes(minutes))
  }

  static fromDecimal(value){
    let hour = Math.floor(value)
    let minutes = (value % 1) * 60
    return new Time((hour < 10 ? '0' : '') + Math.floor(hour) + ":" + (minutes<10 ? '0' : '') + Math.floor(minutes))
  }

  asDate(){
    var splitted = this.hour.split(':')
    let date = new Date()
    date.setHours(splitted[0], splitted[1], 0)

    return date
  }

  asMinutes(){
    var splitted = this.hour.split(':')
    return splitted[0]*60 + +splitted[1]
  }  

  asDecimal(){
    return this.asMinutes() * (1/60)
  }

  asHours(){
    return this.hour
  }

  plusTime(other) {
    return Time.fromMinutes(this.asMinutes() + other.asMinutes())
  }

  minusTime(other) {
    return Time.fromMinutes(this.asMinutes() - other.asMinutes())
  }

  divideTime(other){
     return Time.fromDecimal((this.asMinutes() / other.asMinutes()))
  }

  moduloTime(other){    
    return Time.fromMinutes(this.asMinutes() % other.asMinutes())
  }
}

Permalien

  •  

Var, let, const en JS : Quelles différences ?

@kysofer On en parlait au téléphone. En fait il faut pas confondre la différence var/let en js avec la différence val/var en kotlin.

En gros la différence entre un var et un let c'est la portée qu'il aura, ça fait pas du tout référence à la possibilité de l'avoir en read-only ou non.

Permalien

  •  

Git : Supprimer les modifications d'un fichier dans le dernier commit (en local)

Imaginons que je travaille sur un répo qui contient un fichier binaire (comme un document word ou un tableau excel)

J'ai fait des modifications de mon coté que j'ai push et mon collègue en a fait aussi, au moment de pull les changements distants avant de push les siens, il se rend compte que le merge plante a cause d'un conflit dans le fameux fichier binaire.

Il va devoir annuler les changements de son coté, tirer la version la plus récente et remettre ses changements par dessus à la main.

Pour commencer, il doit arreter la procédure de merge (et donc annuler son pull) :

git merge --abort

Ensuite il doit ensuite retirer son fichier de son dernier commit (HEAD^ représentant le dernier commit local) :

git reset HEAD^ fichier/qui/pose/probleme.docx
git commit --amend

Puis supprimer ses changements locaux (ou les mettre de coté pour récuperer le contenu apres le pull)

git checkout -- fichier/qui/pose/probleme.docx

et enfin il pourra pull la version distante qui posait problème avec un git pull
Permalien

  •  

Very Serious Business - Raid de 4chan contre une convention sur l'agilité

Je viens de tomber sur la dernière video d'internet historian, je me suis dit que le sujet vous parlerais

@kysofer Quand tu me parlais de bruno le salé je t'avais mentionné l'internet historian, c'est l'occasion d'y jeter un oeil

Si ça vous plait, il avait aussi fait une série sur les raids contre le mouvement he will not divide us de Shia Leboeuf, c'est vraiment hyper marrant de voir tout le cheminement

https://www.youtube.com/watch?v=_p4h3jwJob0&list=PLHTeAiqTTlUgv17EkpWRX9vHIelEvOJVm
Permalien

  •  

Snippet - Desactiver IPV6 sur Debian

Snippet pour désactiver l'adressage IPV6 sur une machine debian

sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.all.autoconf=0
sysctl -w net.ipv6.conf.default.disable_ipv6=1
sysctl -w net.ipv6.conf.default.autoconf=0

Permalien

  •