Une commande pour redemarrer la GUI cinnamon (à bind à une combinaison de touches)
pkill -HUP -f "cinnamon --replace"
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())
}
}
Le wrapper C# de facepunch pour les libs steamworks
@kysofer, Trouvé !
Du coup ça ne fonctionne qu'en mode débugger et quand on ne modifie que le body d'une méthode (si il y a des changements dans la signature ça ne marchera pas)
L'autre jour j'ai eu du mal à expliquer à Axel les différents termes autour du JS, node, npm, ES6
Je viens de tomber sur cet article qui explique tout en détail
Je le met de coté ici pour pouvoir le ressortir au besoin
@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.
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
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
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
Conférence sur comment est pensé le systeme de services d'android
Un outil en ligne de commande qui permet de corriger automatiquement les fautes de frappe dans la dernière commande tapée
Conventions du versionning d'API web