Une petite introduction sympa autour de ce gestionnaire de conteneurs.
Un bien belle citation d'un PDG milliardaire sur ce qu'est, pour lui entendons-nous, la mondialisation :
Je définirais la mondialisation comme la liberté pour mon groupe d’investir où il veut, le temps qu’il veut, pour produire ce qu’il veut, en s’approvisionnant et en vendant où il veut, et en ayant à supporter le moins de contraintes possibles en matière de droit du travail et de conventions sociales.
Percy Barnevick ancien P-DG de ABB
Un site de tuto pour le chiffrement. En première page, la différence entre Chiffrer et Crypter parce que les mots sont important
La définition que donne Franck Lepage de la démocratie dans l'une des ses conférence gesticulée :
Est démocratique, une société qui se reconnaît divisée, c’est-à-dire traversée par des contradictions d’intérêts et qui se fixe comme modalité, d’associer à parts égales, chaque citoyen dans l’expression de ces contradictions, l’analyse de ces contradictions et la mise en délibération de ces contradictions, en vu d’arriver à un arbitrage.
Franck Lepage
Une brève description tirée de la Wikipédia expliquant à quoi servent chacun des modules d'Hibernate et par extension quand les utiliser dans un projet.
Hibernate se compose de plusieurs modules développés par des équipes différentes.
Core
Le module principal d'Hibernate contient les fonctionnalités clefs (principalement connues depuis la version 2 de la bibliothèque) telles que les sessions, les transactions, le cache d'objet ou le langage SQL.
Annotations
Apporte le support des Annotations tel que décrit dans JSR 175. Cette approche permet d'éviter la description de la correspondance entre les champs d'une table et les champs du POJO en XML.
Entity managerModifier
Permet le support de JSR 220 JPA par le module Core.
Shards
Ce module permet la partition horizontale du Core Hibernate.
Validator
Module de validation des contraintes d'entité de la base de données, implanté sous forme d'annotations telles que les plages de valeurs autorisées, les formats de chaine de caractères, la détection des valeurs nulles, etc.
Search
Le dernier module apporte une couche d'abstraction pour la recherche de Lucene appliquée sur les entités persistantes maintenues par Hibernate.
Tools
Ensemble d'outils pour Ant ou Eclipse facilitant le développement avec Hibernate."
Toujours sur les tutos en Java 8 je vais essayer de vous expliquer les mapper et la méthode .map de l'API Stream.
Définition 'Mapper' :
Objet ou fonction permettant de convertir un élément en un autre élément.
Exemple :
J'ai une liste de String :
List<String> list = ...;
Que je souhaite convertir en ceci :
List<Integer> sizes; // qui contient la taille de chacune des String de la liste précédente.
En vieux Java j'écrirais :
private List<Integer> convert(List<String> strList) {
List<Integer> result = new ArrayList<>(list.size());
for (String str : strList) {
result.add(str.size());
}
return result;
}
En lambda j'écrirai :
private List<Integer> convert(List<String> strList) {
return strList.stream().map(str -> str.size()).toList();
}
Et votre mapper c'est cette petite lamdba 'str -> str.size()' qui sera appliquée à chaque élément de la liste un par un.
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); }
Définition :
Sur le marché du change, les monnaies s'échangent via des animateurs de marché (appelés market makers) qui correspondent pour nous à des bureaux de change (oui comme quand vous allez à l'étranger pour demander des dollars contre des euros). Pour ces animateurs, il existe deux prix : celui auquel il sont prêt à acheter votre devise étrangère (c'est le Bid) et celui auquel ils sont prêt à vous vendre la devise de leur pays (c'est l'Ask) ; leur but étant pour eux de récupérer la différence.
Exemple :
Vous aller en Russie dans un bureau de change. Vous souhaiter convertir vos euros contre des roubles. Le Bid c'est le prix en roubles auquel le bureau accepte d'acheter vos euros. L'Ask c'est le prix en euros auquel le bureau accepte de vous reprendre vos roubles.
Définition :
Un CDS ou Credit Default Swap est un contrat permettant à un créancier d'échanger un risque de défaillance lors du remboursement d'un crédit contre une prime. Autrement-dit, un CDS est ni plus ni moins qu'une assurance qui se déclenche en cas d'impayer pour un organisme prêtant de l'argent à un tiers.
Exemple :
Je suis une banque, j'ai octroyé un crédit à un particulier : M. Jean Much-Muche. Mais j'ai grave la trouille que Jean Muche-Muche il ne me paie pas, aussi je vais voir un assureur et je contracte avec lui un CDS dans lequel j'accepte de filer une partie de mes remboursements pour couvrir le risque de défaut de paiement de Jean Muche-Muche. Ce CDS est est mon assurance.
Et dans la vraie vie ?
Il y a deux points d'attention avec les CDS :
- l'assurance n'a pas l'obligation de mettre de l'argent de côté pour être sûr de pouvoir rembourser son assuré ;
- je peux prendre le même CDS que ma banque sur la transaction entre elle et Jean Muche-Muche même si je n'ai rien à voir dans leurs affaires. Je parie juste que Jean Muche-Muche va se foirer et je tente ma chance pour gagner un beau pactole. #CoucouLaGrèce #CoucouLaCrisesDesSubprimes
Définition :
Un swap de taux ou swap de taux d'intérêt est un accord entre deux parties stipulant que l'une de ces deux parties va prêter une certaine somme, à taux fixe, à la seconde partie ; tandis que cette seconde partie va prêter cette même somme à la première mais cette fois-ci à taux variable. Ce taux variable étant indexé sur quelque chose (indice, sous-jacent, etc).
Exemple :
Je pense que le cours de l'or va grimper, tandis que ma banque pense que le cours de l'or va chuter. Je me mets d'accord avec ma banque pour que nous nous prêtions mutuellement 1 000 000 €. Moi, je vais rembourser ma banque à taux fixe, par exemple 4% chaque année mais ma banque, elle, va me rembourser à taux variable par exemple à 3 % par année. Au début je vais perdre de l'argent mais... Si comme je l'ai prévu le cours de l'or s'envole... Alors ma banque va me rembourser à 6%, voire 8%, voire peut-être même 16% !! Et à cet instant j'empocherai la différence (qui constitue un énorme paquet de fric).
N.B : il s'agit clairement ici d'un produit de casino (i.e qui sert juste à parier de la thune) ou tout du moins un produit pour lequel je ne trouve pas d'exemple d'usage utile dans "la vraie vie".
Définition :
Un mirror product (ou produit miroir) est le produit dérivé que revend une société en optant le point de vue opposé à celui qu'elle avait en achetant le produit qu'elle revend.
Exemple :
Une holding (i.e la maison-mère d'une société) a des filiales qui ont toutes le même besoin : elles veulent acheter une option à l'achat sur de l'or. Pour minimiser le nombre de transactions, c'est la maison-mère qui va acheter l'ensemble ces options à l'achat à une banque et à la place de ces filiales. Afin de préserver un bilan neutre, la holding va revendre ces options à ses filiales. Elle adopte à ce moment précis le point de vue d'une banque.
Le fait de revendre un produit que l'on vient d'acheter, c'est le mirror product.
Définition :
Le strike est le prix auquel le sous-jacent d'une option s'échangera via cette option. N.B : un sous-jacent est un produit financier de base comme une action, de l'or, des patates, etc.
Exemple :
Vous prenez une option à l'achat sur de l'or. Votre option vous permet par exemple d'acheter le lingot d'or à 60 000 € pendant 6 mois et quelque soit le cours de l'or. Admettons que le prix de l'or grimpe à 70 000 € le lingot, cependant votre prix à vous reste 60 000 € le lingot grâce à votre option.
Ce prix qui reste à 60 000 € sans bouger, c'est votre strike. (Et le sous-jacent de cette option, c'est l'or)
Définition :
Le swap de devises est un accord entre deux parties pour s'échanger aujourd'hui deux montants l'un dans une première devise, l'autre dans une seconde devise. Ensuite ces deux parties vont se mettre d'accord pour se ré-échanger ces montants soit en une seule fois à une date donnée, soit en plusieurs fois pendant une période. Dans cette démarche, l'entité vendeuse du swap de devise demande le paiement d'un intérêt sur la somme échangée.
Dans les fait, cela permet un décalage de trésorerie dans le temps.
Exemple :
Reprenons notre histoire de Rafales français vendus à la Russie. Il y a 5 ans lorsque la Russie avait signé son engagement à payer 1 milliards d'euros les Rafales, elle avait convenu avec une banque d'un Forward lui garantissant qu'elle pourrait échanger 1 milliard d'euros contre 1,2 milliards de roubles en 2015 à un taux défini à l'avance. Or cinq années plus tard, une fois en 2015, les français n'ont pas tenus leurs engagements et les Rafales ne seront jamais livrés. Cependant la Russie se retrouve avec 1 milliards d'euros sur les bras puisque le Forward qu'elle avait contracté 5 ans plus tôt l'oblige à convertir ses 1,2 milliards de roubles en euros en 2015. Que fait la Russie alors ?
Elle prend un swap de devises. Elle demande à une banque (peut-être la même) de lui échanger son milliard d'euros contre des roubles et elle s'engage à refaire la conversion inverse dans 3 ans (ou plus). Ce qui lui laisse encore 3 ans pour trouver de quoi acheter des trucs d'un montant de 1 milliards d'euros et lui offre en plus l'opportunité de disposer de roubles dont elle a besoin dans sa vie de tous les jours pendant ces trois ans. Bref elle n'a pas perdu 1,2 milliard de roubles de trésorerie.
Définition :
Un Forward est une Option (cf. la définition sur mon Shaarli) particulière qui a deux contraintes :
- elle ne s'active qu'à une date donnée (on dit à terme) ;
- l'acquéreur est obligé de l'utiliser (contrairement à l'Option où le propriétaire a un droit d'utilisation, c'est-à-dire qu'il peut choisir de l'utiliser ou non. En ce sens le Forward étant une obligation il est bien plus contraignant que l'Option).
Exemple :
Je suis la Russie et je veux acheter des Rafales français pour 1 milliards d'euros. Je vais vouloir payer mes Rafales dans 2 ans au moment de la livraison. Or moi j'ai des roubles et les français veulent des euros. Le problème c'est que le taux de change roubles/euros est imprédictible dans deux ans... Et si ça se trouve je me retrouverai payer mes Rafales deux fois plus chers comme je pourrai les payer deux fois moins chers... Bref c'est trop risqué il faut que je me couvre ! J'ai prévu 1 milliards aussi ce doit être 1 milliards, ni plus, ni moins.
Donc j'achète aujourd'hui auprès de ma banque un Forward qui m'assurera que je pourrai échanger dans 2 ans, mes 1,2 milliard de roubles contre 1 milliard d'euros quelque soit le taux de change roubles/euros à cette date. J'ai donc minimisé mon risque en me rendant indépendant de l'incertitude des marchés financiers dans le futur.
Évidemment, la banque ne m'offre pas ce contrat gratuitement, je vais sûrement payer ce Forward 50 ou 100 millions de roubles, donc en réalité les 1 milliards d'euros m'auront coûté (1,2 milliard de roubles + 100 millions de roubles) soit 1,3 milliard de roubles (c'est un peu plus que le taux de change espéré mais c'est quand même bien mieux que 1,7 milliard ou 2,3 milliards de roubles.
J'ai décidé de lister les définitions (mes définitions) des produits financiers. Aujourd'hui je commence par faire simple : les actions.
Définition :
Une action est une partie de la propriété de quelque chose (en général d'une entreprise). Autrement dit, si un truc est divisé en 100 actions et que vous en possédez 15, alors vous êtes propriétaire de 15% du-dit truc (avec les droits et les obligations qui vont avec).
Une vision plus théorique des techniques de refactoring mais toujours bon à avoir.