vendredi 31 octobre 2014

CSV versus XML

David contre Goliath



Le XML. Tout le monde en parle comme le langage informatique du XXIe siècle. Souvent présenté comme la solution ultime à tous les problèmes. Mais arrivera-t-il un jour à supplanter définitivement le bon vieux format CSV ? Quel avenir peut-on encore donner  à ce dernier, face au nouveau et séduisant standard XML ? Cet article veut amener une comparaison plausible entre ses deux formats informatiques, sur le seul et unique terrain de confrontation possible, c’est-à-dire l'échange automatisé de données de type tabulaire entre systèmes d'informations hétérogènes.




Wikipédiant un peu

http://www.svsarah.com/Sailing/ewExcelWaypoint.htm
Exemple fichier CSV
En lançant une simple recherche Wikipédia, on peut se rendre compte que le sigle composé des trois lettres C, S et V, peut faire référence à :
  • Composés Sulfurés Volatils (« Halitose ?! Heu... quelqu’un a un chewing-gum ? »)
  • Chrëschtlech Sozial Vollekspartei (« Parti politique luxembourgeois !? Non, merci ! »)
  • Comma-Separated Values (« Format informatique. Ouf : on commençait à désespérer ! »)


CSV (Comma-Separeted Value) signifie "Valeurs séparées par des virgules". Ce qui veut dire que les fichiers CSV ont une virgule entre chaque élément d'information qu'ils contiennent. Rien de plus simple que cela.

Le même exercice pour XML donne, par contre, le résultat:
  • eXtensible MarkableLanguage (« Langage de balisage extensible !? Comment ça ? Pas de résultat en français ? Et… Quoi ? C’est déjà du français ça ?»)


XML est un langage de balisage, qui définit un ensemble de règles syntaxiques pour la présentation structurée de l’information. On aura une autre occasion pour approfondir ces règles. Maintenant, on va juste se limiter à dire que, grâce à ses balises, XML arrive à identifier non seulement l'information, mais aussi sa structure.


Avantage CSV

Le point fort du format CSV est sans doute sa facilité d’implémentation : chaque ligne du texte correspond à une ligne du tableau, et les portions de texte délimitées par les caractères de séparation, correspondent ainsi, aux contenus des cellules du tableau.
Comparé à l'export CSV d'une table, XML est très bavard : il réplique le nom de la colonne pour chaque cellule (une fois pour un attribut, deux fois pour un élément). Le poids du fichier généré est inévitablement supérieur à celui d'un fichier CSV. Les fichiers XML ont tendance à être très volumineux.


Egalité

Quelques points forts communs aux deux formats :
  • Format texte, non « binaires » : lisibles pour humain et machine
  • Stockage long terme et réutilisation des données
  • Reliées à aucun système : indépendants des OS


Avantage XML

http://kensall.com/big-picture/bigpix22.html
La Galaxie XML
Le format CSV n'a jamais vraiment fait l'objet d'une spécification formelle. Ils en existent plusieurs variations, qui portent sur le simple choix d’un caractère différent de séparation (virgule, point-virgule, caractère tabulation).
Le XML, non seulement a été standardisé par le World Wide Web Consortium (W3C, aussi à l’origine du HTML), mais il est un métalangage, puisqu’il permet de définir d'autres langages. XHTML, XSLT, RSS, XQuery, et plusieurs centaines d’autres langages, sont basés sur les normes XML. En fait, ce sont tous ces langages qui lui gravitent autour, qui font tout l'intérêt et le succès de XML.


Jeu, set et match !

D'un point de vue formel, un document XML est un arbre. Même si un  arbre XML permet de représenter beaucoup de choses ne signifie pas que ce soit toujours la forme la plus adaptée. Si XML est la solution pour l’échange de données avec structure complexe ou atypique, le CSV reste incontournable pour les données simples et de type tabulaire.


vendredi 24 octobre 2014

Les boucles

Aujourd'hui, nous allons parler d'une notion fondamentale de la programmation, la boucle. Nous ne parlerons pas de nœuds. Promis!

Définition

Une boucle est une syntaxe utilisée en JAVA, mais aussi dans tout langage de traitement d'information qui se respecte. Elle a comme effet la répétition d’une portion de code zéro une ou plusieurs fois.

Explication

Au fait, plusieurs paramètres rentrent en ligne de compte. Premièrement, nous avons la syntaxe d'une boucle, d'ailleurs penchons-nous un peu dessus. Cette dernière est composée d'un type de boucle qui prend en compte des paramètres testés pour une condition donnée.
Si nous devions traduire une boucle pour un enfant de cinq ans, en bon français, nous pourrions le dire ainsi:



// début de code
Titi commence à manger;
Tant que (titi n\'as pas fini sa soupe){
Titi mange une cuillère de soupe; }
Titi a bien mangé MAIS il doit encore se brosser les dents;
Titi va se brosser les dents; //fin du code

Deuxièmement, il nous faudra choisir le type de boucle qui nous intéresse. Ne prenez pas peur. Il n'y en a pas cinquante. Il y en a que trois.

Les types de boucles

Dans 90 pour-cent des cas, le type de boucle choisit est lié au type d'utilisation que nous envisageons. Il faut bien remarquer qu'il n'y a pas un type meilleur qu'un autre. En revanche, il y aura très souvent un type mieux adapté pour une utilisation donnée, plutôt qu'un autre.

La boucle while


// début code
while(condition){
Code....
Encore du code...
Code... }
// fin de code
Suite du code...
La particularité de cette boucle est de pouvoir l'exécuter zéro, une ou plusieurs fois. Elle a une utilisation plutôt standard, notamment, pour parcourir les résultats d'une base de données.

Est-ce possible que la condition ne soit jamais remplie et que nous soyons bloqués? Hélas oui! Nous appelons cela une boucle infinie. Votre compilateur ne vous affichera aucune erreur, mais votre application sera bloquée.

La boucle Do ... While

// début code
do{ Code....
Encore du code...
Code...
Suite du code...
}while(condition)
// fin de code
La boucle do.. while a comme particularité de toujours s'exécuter au moins une fois. Elle a comme principale utilisation le contrôle de valeurs ou encore le choix d'un élément dans une liste prédéfinie. Typiquement, nous en voyons dans les terminaux lorsque nous devons répondre par oui ou non à une question.

La boucle For

// début code
int nombreDePelerins;
for (nombreDePelerins= 0 ; nombreDePelerins< 10 ; nombreDePelerins++)
{ printf(" Le pape vous bénit!!\n"); } //fin de code
La boucle for est composée d'un compteur en paramètre. En pratique, elle est très souvent utilisée pour parcourir des tableaux de données. Son compteur par défaut est un atout qui fait gagner du temps et évite que nous oublions d’incrémenter nos boucles afin d’espérer en sortir un jour.

En résumé


  • Une boucle tourne tant que sa condition n'est pas satisfaite.
  • Il existe trois types de boucles en java.
  • Les atouts de chaque boucle réside dans le cas d'utilisation

vendredi 17 octobre 2014

La condition (if...else)

Débuter :

Vous rêvez de comprendre les conditions simples en JAVA ? Avant de passer aux choses sérieuses, allez faire un petit tour sur le site suivant :
http://fr.openclassrooms.com/informatique/cours/apprenez-a-programmer-en-java
Vous y découvrirez quels sont les outils de développements et comment les installer.
Si vous avez passé cette première étape avec succès, et que vous êtes de retour ici. Au nom de toute l’équipe nous vous félicitons ! Premièrement, cela prouve votre détermination à « pondre » du code. Deuxièmement,  nous sommes ravis de vous compter parmi nos lecteurs.

Après ce « blabla » d’introduction, mais avant de taper votre premier code, il est impératif de réfléchir au problème posé. Comprendre la donnée et trouver le bon algorithme ! Afin d’éviter un long discours, je vous propose un petit exemple.

La donnée :

Trier trois valeurs numériques dans l’ordre croissant ?
Prenons le problème à l’envers combien de résultat pouvons-nous avoir.
Cas
Exemples et résultats
1
X=1 ; Y=2 ; Z=3
X<Y<Z
2
X=1 ; Y=3 ; Z=2
X<Z<Y
3
X=2 ; Y=1 ; Z=3
Y<X<Z
4
X=2 ; Y=3 ; Z=1
Z<X<Y
5
X=3 ; Y=1 ; Z=2
Y<Z<X
6
X=3 ; Y=2 ; Z=1
Z<Y<X
Nous devons donc avoir 6 sorties. Nous allons représenter ça dans un arbre décisionnel.
  
Arbre décisionnel


Le plus dur est fait. Pour les plus curieux, un exemple de code sera disponible la semaine prochaine.

Optimisation :

Il y a bien sûr plusieurs solutions pour effectuer ce tri. Alors, pourquoi choisir une méthode plutôt qu’une autre ? Simplement parce que certaines sont plus rapide ! Car comme chacun le sait la patience est une vertu. D’ailleurs si certaines personnes en possèdent une bonne dose, elles la perdent instantanément lorsqu’elles basculent derrière un écran d’ordinateur. Ou un volant (mais ça c’est une autre histoire). Il paraîtrait même que deux secondes suffisent à faire passer un gentil père de famille, en tueur de mulot. Surtout si ce dernier est sans fil !
Retenez donc la chose suivante : les conditions sont très énergivore alors comptez-les.


vendredi 3 octobre 2014

Le début d'un long projet!

Bienvenue à tous!

Nous sommes heureux de vous accueillir sur notre blog. En espérant que vous trouverez plein d’informations utiles. N’hésitez pas à nous faire part de vos remarques ou des propositions de publications.








Who ? Qui ?
Quatre étudiants, quatre backgrounds, quatre nationalités


   Jacques                   Tiago                  Giuseppe             Taylan


Why ? Pourquoi ?
Quatre passionnés d’informatique qui désirent partager leurs connaissances et leurs expériences.

What ? Quoi?
Le b.a.-ba du langage de programmation JAVA et XML dans le cadre du premier semestre dans la filière d’informatique de gestion à l’HEVS.
Des défis et des exemples amusants.

Where ? Où
Uniquement disponible en ligne sur blogger.

When? Quand?
Chaque vendredi