Ce Blog contient mes notes.
Nullius in verba
« Being a software craftsman is far more than that. It’s commitment to excellence. It’s a lifestyle. At the end of the day, as professionals we are expected to deliver high-quality services to our clients, which is normally achieved via well-crafted software. »- Coman Hamilton -
dimanche 26 mai 2019
jeudi 23 mai 2019
Git : Delete HTTPS remote and add Git remote
git remote -v
git remote remove origin
git remote add origin git@git.ra1
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/t//.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /t//.ssh/id_rsa.
Your public key has been saved in /t//.ssh/id_rsa.pub.
The key fingerprint is:
git remote remove origin
git remote add origin git@git.ra1
ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/t//.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /t//.ssh/id_rsa.
Your public key has been saved in /t//.ssh/id_rsa.pub.
The key fingerprint is:
mercredi 22 mai 2019
Git : You which to remove untracked Files (not in the repository ou the working tree)
Caustion :
Use git clean -n : For Dry-run to see the final result, then
use git clean -f
Use git clean -n : For Dry-run to see the final result, then
use git clean -f
Git : add tracked files only
git add -u
stages modifications and deletions, without new fileslooks at all the already tracked files and stages the changes to those files if they are different or if they have been removed. It does not add any new files, it only stages changes to already tracked files.
git add -i You can select specific files and easily update, patch, or revert them.
dimanche 19 mai 2019
Java : Supprimer un element de la liste à l'interieur d'une boucle for (Remove an Element from a List Inside a Loop)
Iterator
// next() Doit être appelé avant la méthode remove(), sinon la taille (size) de Arraylist va changer.
String s = iter.next();
if (s.equals("a")) {
iter.remove();
}
}
Java : Convert Array to ArrayList
Before Java 8 :
Apache Commons Collections :
After Java 8 :
List<Personne> targetList = Arrays.stream(sourceArray).boxed().collect(Collectors.toList());
List targetList =
new
ArrayList(Arrays.asList(sourceArray));
Apache Commons Collections :
Personne[] sourceArray = { P
0
, P
1
, P
2
, P
3
, P
4
, P
5
};
List targetList =
new
ArrayList<>(
6
);
CollectionUtils.addAll(targetList, sourceArray);
After Java 8 :
List<Personne> targetList = Arrays.stream(sourceArray).boxed().collect(Collectors.toList());
samedi 18 mai 2019
Oracle : la pseudo colonne ROWNUM et BETWEEN
Réflexion : https://stackoverflow.com/questions/1986998/resultset-to-pagination
La pseudo-colonne ROWNUM est très utile pour limiter le nombre de lignes extraites,
Il doit toujours s'appliquer avant un tri Order By
Donc s'il y a un tri, il est très difficile de d'appliquer cette pseudo colonne, il faut utiliser des sous-interrogations dans la clause FROM.
Exemple :
https://www.developpez.net/forums/d3547/bases-donnees/oracle/sql/select-partir-rownum/
La pseudo-colonne ROWNUM est très utile pour limiter le nombre de lignes extraites,
Il doit toujours s'appliquer avant un tri Order By
Donc s'il y a un tri, il est très difficile de d'appliquer cette pseudo colonne, il faut utiliser des sous-interrogations dans la clause FROM.
Exemple :
https://www.developpez.net/forums/d3547/bases-donnees/oracle/sql/select-partir-rownum/
SELECT c.*
FROM (SELECT c.*, ROWNUM as rnum
FROM (SELECT id, username, job, place FROM contact ORDER BY id) c) c
WHERE c.rnum BETWEEN 5 AND 10
vendredi 17 mai 2019
Maven : Maven Out of Memory Build Failure java.lang.OutOfMemoryError: PermGen space
en cmd : export MAVEN_OPTS="-Xmx2048m
-XX:MaxPermSize=512m"
ou bien ouvrir mvn.bat et faire :
@echo off
set MAVEN_OPTS=-Xmx2048m -XX:MaxPermSize=512m
https://github.com/openhab/openhab1-addons/wiki/IDE-Setup
Git : astuce git bash pour afficher les dernières commits avec le graphe
git log --graph --all
--decorate --oneline -n "Nombre de commits à afficher"
vendredi 10 mai 2019
Erreur Oracle : ORA-01861: literal does not match format string
Soltuion : si la date est au format : 'YYYY-MM-DD', il faut utiliser la fonction to_date :
Exemple :
Column = = to_date('2019-04-04', 'YYYY-MM-DD'),
Exemple :
Column = = to_date('2019-04-04', 'YYYY-MM-DD'),
mercredi 8 mai 2019
Type des processeur(Parssseur ) XML avec exmple pour Java DOM, Sax, Jaxb
- Tree-based : représente le document XML en entier comme un arbre d'objet en mémoire
- l’avantage est de pouvoir traverser l'arbre dans les deux sens, facile à utiliser avec XPath pour la recherche du contenu à l’intérieur du document.
- L’inconvénient est le besoin d’utiliser plus de mémoire.
- Streaming : traite un seul nœud de l'arbre à la fois, soit pour la construction ou le parsing de XML, contient deux types de processeur : pull (comme StaX)et push (comme Sax).
- l’avantage est qu'il très rapide
- L’inconvénient : le document XML n'est pas stocker en mémoire donc, pas de possibilité de faire la recherche de contenu avec Xpath.
- Sax fait de la lecture seul, donc sait uniquement comment lire de l'XML, mais pas comment le créer.
- Binding Style : ressemble au DOM-Style, il stock tous les données en mémoire en même temps. Comme JAXB,
- Pour les développement, il faut ajouter des annotations au niveau des POJOs, pour indiquer quelle propriétés ou champs sera mapper la structure du fichier XML.
- Facilite la sérialisation et deserialisation du contenu
- Facile à maintenir
- JAXP : Java API for XML Processing
- XStream : Se base sur DOM ou Sax, utile pour la sérialisation de XML.
Sax vs DOM :
Sax peut démarrer le traitement avant que le document entier
ne soit disponible.
Il ne peut pas faire de backward en arrière pour relire les données
qu'il a traitées, à moins de tout recommencer.
Inscription à :
Articles (Atom)