Je continue ma série de tutos sur les technos manquées en Java 7 et 8. Ici les Callable.
Ce sont des Runnable mais qui peuvent retourner un objet (je vous renvoie aux principes de la programmation asynchrone en JavaScript).
Comme pour certains termes financiers, je posterai quelques définitions sur les lambdas.
Prédicat :
=> Fonction qui retourne un booléen.
Les prédicats sont très utilisés dans les filtres, par exemple vous souhaitez parcourir une collection et ne retourner dans une liste que les personnes étant majeures, alors vous créerez une lambda prenant en paramètre une personne et qui retournera true si celle-ci est majeure ou false sinon.
Exemple :
-
Prédicat sans paramètres :
( ) -> true
-
Prédicat sans paramètres mais où l'on spécifie explicitement le return (qui est facultatif en PF) :
( ) -> { return true; }
-
Prédicat avec un paramètre et le return :
(person) -> { return person.isMale(); }
-
Prédicat avec deux paramètres :
(persA, persB) -> { Object.equals(persA, persB); }
-
Prédicat avec deux paramètres, le return et dont on spécifie le type des paramètres :
(Person persA, Person persB) -> { return Object.equals(persA, persB); }
Je commence une série de tutos sur AngularJS 2 (faut que je m'y mette, j'ai vraiment pris trop de retard depuis quelques mois).
Un petit tuto des dégrossi très vite les principes de bases facilitant l'appréhension d'une application.
Un autre tuto pour se "débarrasser" de JQuery. Je pense aussi que le framework en fait volontairement trop pour que nous soyons dépendant à ce dernier.
Un tuto sur Git remonté par Roudoudoutte (thanks).
Je poursuis ma migration vers le fonctionnel sur Java 8 avec un petit tuto sur les stream et les map-reduce. Le tout est guidé par une multitude de petits exemples simples.
Exactement ce qu'il me fallait !
Whouuuu les "nouvelles" technologies prennent de l'avance !!! EcmaScript 6 est dans les bacs et propose une tripotée de mise à jour.
Attention à celles et ceux qui ne prendront pas la peine de monter dans le train en marche, cela va leur faire trèèès très mal d'ici un ou deux ans.
Un tuto pour comprendre ce qu'est XML, ce qu'est une XSD et comment cela fonctionne.
Je découvre le blog de Jean-Christophe Gay. Très sympa et assez complet sur Java 8.
Attention : si vous ne vous êtes toujours pas mis aux lambdas, aux Clojures et aux Predicats, vous allez avoir du mal à vous revendre dans l'univers Java. Début 2016, cela deviendra indispensable !
P.S : vous savez que je déteste la programmation fonctionnelle car l'inférence de type permet de produire bien trop souvent un code immaintenable, cependant, utilisée avec BEAUCOUP de parcimonie, elle permet de factoriser énormément de code technique et éviter les doublons. Bref, je m'y suis mise, ce n'est pas pour rien.
Un tuto sur CURL.
Comment pimper sa Linux Mint en quelques copier-coller. Merci à Timo !
Des couleurs en bash. Je me sers trop souvent de cette page pour ne pas la linker.
SUPPPPPPPPPPPPPPPER UTILE Je copie-colle !
Ce qu'il faut éviter
Pour annuler des commits, il existe la commande git reset.
git reset --hard HEAD~1
HEAD is now at 444b1cf Rhoo
Celle-ci est pertinente tant que les commits n'ont pas été poussés. Git vous retiendra au push d'ailleurs :
git push
To /tmp/repo
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '/tmp/repo'
En effet, à partir du moment où un commit existe sur le serveur, il est potentiellement utilisé par des collaborateurs (mergé, à la base d'une branche, etc.). On pourrait faire le sale et forcer le push :
git push -f
Total 0 (delta 0), reused 0 (delta 0)
To /tmp/repo
+ b67c343...444b1cf master -> master (forced update)
Mais il y a beaucoup mieux !
Ce qu'il faut faire
Annuler un commit, c'est finalement appliquer l'inverse de son diff !
On peut rediriger le diff des commits à annuler vers la commande patch --reverse :)
git diff HEAD^ | patch --reverse
Pour faire plus simple, il y a git revert !
Par exemple pour annuler les trois derniers commits :
git revert HEAD~3..HEAD
Ou pour annuler un commit en particulier :
git revert 444b1cff
Il suffit alors de pousser proprement le commit obtenu sur le serveur. Les éventuels collaborateurs qui avaient basé leur travail sur les commits annulés devront gérer les conflits au moment venu...
Je coudifie la coudification de SebSauvage.
Idem coude toussa (http://liens.vader.fr/?Tu7tcQ)
Un bon tuto tu les relations one-to-many, many-to-one et many-to-many.
Ou comment réapprendre le solfège en quelques minutes :D
Comment les FlexBox de CSS2-3 / HTML5 nous aident à résoudre les problèmes précédemment insolubles du positionnement web.