Quelques infos utiles sur ssh
//
Quick usefull info on ssh
Un memo rapide sur comment chercher correctement
//
Quick memo on how to correctly search
Des astuces pour les analystes de données migrant vers Python 3
Usefull tips for data scientists moving to Python 3
Can be completed with https://github.com/arogozhnikov/python3_with_pleasure
Générateur en ligne de bruit de fond (pluie, feu de bois, vent, ...)
//
Online background noise (rain, fire cracks, wind, ...) generator
Un générateur de ronronnements en ligne
//
An online cat purr generator.
Pour rapidement transformer son Rmd en R quand on a besoin d'avoir les sorties de debug :D
//
Quickly convert Rmd into R to get debugs outputs :D
Quelques astuces pour la syntaxe du code et des commentaires afin d'user au mieux de Rstudio
//
Some tips about code and comments syntax to use Rstudio at its best
Une fonction a ajouter à son bashrc pour prendre rapidement des notes
//
bashrc function to add in order to take quick notes
Accélérer les calculs et accès aux données via la transformation de la ram en partition
//
Speed calculs and data access through ram transformation into a partition
Une fois n'est pas coutume, j'ai fait un commit avec un fichier trop volumineux dans mon repo git. Et encore une fois j'ai fait plusieurs commits avant de m'en rendre compte lors du push et son joli message d'erreur :
remote: error: File ThesisLinked/Publications/Molecular biology of the cell.pdf is 208.47 MB; this exceeds GitHub's file size limit of 100.00 MB
To git@github.com:Kumquatum/XXXXXX.git
! [remote rejected] master -> master (pre-receive hook declined)
error: impossible de pousser des références vers 'git@github.com:Kumquatum/XXXXXX.git'
/!\ ATTENTION : je ne saurais que trop vous conseiller de faire une sauvegarde de vos fichier avant d'entreprendre l'opération qui suit. Une mauvaise manip peut toujours arriver /!\
Voici donc comment s'en sortir. On commence par commit toutes les modifications courante (oui je sais ça rajoute encore plus de commit sur celui qu'on cherche à nettoyer mais ne vous inquiétez pas).
On va ensuite lister les commit non pushés pour essayer de se souvenir de celui qui nous fait doucement suer :
$ git log origin/master..HEAD
Une fois le commit incriminé identifié (ou non), on commence un joli rebase pour retourner en l'état du git :
$ git rebase -i origin/master
Vous arrivez dans une jolie interface manipulable avec nano dans laquelle il va vous falloir changer le "pick" du vilain commit en "edit" ainsi que tous ceux qui auront été fait après lui (et là si vous ne savez pas quel est le commit qui bloque, vous allez devoir mettre edit sur tous)
Ainsi :
pick 1fc6c95 Patch A
pick 6b2481b Patch B
pick dd1475d something I want to add (<= commit avec le fichier volumineux)
pick c619268 A fix for Patch B
pick fa39187 something to add to patch A
Devient :
pick 1fc6c95 Patch A
pick 6b2481b Patch B
edit dd1475d something I want to add
edit c619268 A fix for Patch B
edit fa39187 something to add to patch A
(Note : dans le cas où vous devriez reprendre depuis le premier commit, il se peut que vous ayez à travailler avec HEAD^ plutot que HEAD pour les $ git reset)
Une fois ceci fait, faites un ctrl+O pour valider cette modification, puis Entrée pour la sauver sous le nom prédéfini. Sortez ensuite de la via un ctrl+X.
Git va commencer l'opération de rebase, laissez lui quelques minutes (et n'ayez pas peur en voyant les fichiers de votre repo revenu X semaines en arrière, c'est normal). A l'issu de ceci, git va gentiment vous indiquer :
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Parfait ! Votre commit a été remis à zero, c'est à dire que vous allez devoir re-ajouter tous les fichiers que vous souhaitez continuer de suivre, en faisant bien attention de ne pas ajouter le(s) fichier(s) trop volumineux. Exemple :
git add .pdf
git add MonDossier/
git reset HEAD MonDossier/monFichierTropGros.zip
git add toto.txt
Vos ajouts sont finis ? Faites un petit "$ git status" pour être sûrs. C'est bon ? On lance donc avec joie notre commande :
git commit --amend --no-edit (--no-edit vous permet de ne pas changer le message de commit)
Cette commande va écraser le commit précédent. Si jamais vous aviez à ce stade fait une erreur, vous pouvez toujours re-ajouter/supprimer des fichiers pour ensuite relancer la même commande.
On va ensuite passer au commit suivant à éditer :
$ git rebase --continue
Et on va recommencer la même opération qu'avant car le commit suivant a également été remis à zero. Continuez ainsi jusqu'à atteindre le dernier de vos commit fait, vous vous retrouverez ainsi dans votre état initial tout en ayant éliminé le(s) fichier(s) problématique(s).
Vous pouvez alors lancer votre push classique et voir tout vos commit passer sans soucis ! (Si ce n'est pas le cas, vous avez loupé un commit avec le(s) fichier(s) en question, recommencez alors du début :/).
Bon et sinon la prochaine fois pour éviter ça, pensez à bien gérer votre/vos .gitignore pour ne pas inclure ces fichiers, et à push réguliement histoire de ne pas avoir une dizaine de commit à modifier si cette erreur se produit tout de même.
Résumé des symboles les plus courants en maths
//
Most used maths symbols summary
Un generateur de fichier .gitignore tres utile pour ne pas sauvegarder les fichiers inutiles (recuperables, regenerables, trop volumineux, ...)
//
Usefull generator for .gitignore files in order to except useless files (recoverable, regenerable, too large, ...)
Commandes pratiques en bioinformatique en une seule ligne
//
Bioinformatics usefull one line commands
Un regroupement de composants/astuces utiles pour du dev web (côté graphique)
//
Pool of usefull components/tricks for web dev (graphics)
Des erreurs courantes en git et comment (parfois) s'en sortir
//
Somme usual errors with git and how (sometimes) get out of it
Outils d'analyse qualité du code c#
Directement intégré à visual studio
Organiser son association, son équipe, et travailler ensemble sans ressource propriétaire
//
Organising an association, a team and work without any private software
Comment générer des feuilles de style XSLTbasées sur la ndoc (documentation xml dans le code)
//
How to generate XSLT stylesheet based on ndoc (xml documentation inside code)
Utiliser son navigateur comme un terminal afin de remplacer PuTTY sous Windows
//
Using your browser as a terminal for PuTTY replacement under Windows