vendredi 12 décembre 2014

Les méthodes en Java

Les méthodes en Java

Développer c’est bien, mais taper des kilomètres de code, c’est pénible ! Ceci est encore plus vrai quand nous voulons exécuter plusieurs fois la même fonction. Très concrètement si vous avez développé un programme qui renvoi la valeur minimum entre deux valeurs (voir le poste du blog « Les conditions ») il serait intéressant d’exploiter ce petit programme autant de fois que nous en avons besoin. Cela s’appelle une méthode. Par analogie : on n’invente pas la roue à chaque fois qu’on en a besoin !


Le mode de fonctionnement


1.    Dans un programme on appelle une méthode
a.    On doit lui indiquer le nom de la méthode
b.    Et lui passer des arguments/paramètres. Ceux-ci sont au nombre de 0 à n.
c.    Exemple :
Appel d'une méthode

2.    La méthode est doit avoir un nom et une signature (un type)
a.    Signature : Int ;double ;char…
b.    Dans la déclaration de la méthode on doit retrouver les arguments et leurs types
c.    Elle doit contenir un mot-clé « return » pour renvoyer la valeur au programme initial.
d.    Exemple :
Déclarer une méthode

Les éléments essentiels

Il faut se poser les questions suivantes lors de la création d’une méthode.
  • Que vais-je envoyer comme arguments (de quoi ai-je besoin pour faire fonctionner ma méthode)
  • Quelle sera la valeur renvoyée par la méthode. ATTENTION : Une méthode ne renvoie qu’une seule valeur.

Á retenir

  • Une méthode fait une seul chose.
  • Le nom d’une méthode ne commence jamais par une majuscule.
  • Réfléchir à : que dois-je envoyer (arguments) et que dois-je recevoir

 Exemple de code permettant de savoir si une année est bissextile

Exemple de code : bissextile

jeudi 11 décembre 2014

Java et les tableaux

Un outil de simplification

Après notre article sur les boucles, il est temps pour nous de passer aux tableaux dans Java. Nous verrons qu’ils nous facilitent bien la vie. L’usage des tableaux n’est pas difficile à maîtriser, mais il faut bien avoir assimilé les boucles. En règle général, les tableaux sont utilisés avec des boucle « for ».

Structurer

Le tableau dans Java va structurer les données de façon homogènes, en regroupant les valeurs de mêmes types. Il permet de réserver, d’allouer le nombre d’espace que nous avons prédéfinis. (Source : cours de Fondements de la programmation avec Mme Ballet-Glassey).

Fonctionnement

Afin d'utiliser un tableau, il faut tout d'abord le déclarer de cette manière :




Mais la taille du tableau peut être variable et sélectionnée par un Scanner:
Nous déclarons un tableau de type int dans un premier temps, puis nous allons décider de la taille de ce dernier, ici 10, avec l’opérateur new. Le tableau peut être de types int, double ou char, et sa taille ne peut être modifiée en cours d’exécution.

Le tableau débute, selon notre conception, au chiffre 0. Si nous voulons un tableau de taille 10 :
 int [] tab = new int [10], cela nous donne :

0
1
2
3
4
5
6
7
8
9





10





Si nous voulons insérer un élément dans une case, il suffit de taper : 
tab[5]=10 : tab est le nom du tableau, [5] le numéro de la case et le 10 est la valeur affectée.

Exemple

Voici une image qui résume ce que nous avons présenté
(Source: Taylan Uregen, au sein du  cours de Fondements de la programmation avec Mme Ballet-Glassey)

A retenir

Comme nous avons pu voir, les tableaux sont un outil simple et très puissant dans Java. Ils sont à utiliser avec des boucles de types for, puisque leurs tailles peuvent devenir rapidement proéminents. Il ne faut pas oublier, qu'une fois la taille choisie, nous ne pouvons plus le modifier en cours d'exécution.

lundi 1 décembre 2014

Il était une fois

Bases de données : les origines

Il y en a qui les aiment, qui les détestent, qui les considèrent comme de simples dépositaires d’informations et qu’en aucun cas, ils ne doivent pas influencer l’architecture du logiciel qui les utilise. Et enfin, certains les voient comme la véritable contribution à l’informatique mondiale. La vérité est que les bases de données, relationnelles ou pas, sont l’instrument le plus utilisé pour la sauvegarde et le partage des données de manière structurée.
Avec de la patience, nous chercherons à approfondir leurs origines et les acteurs qui ont le plus influencé le développement de cette famille de systèmes informatiques.

La genèse

Notre voyage commence dans les années ‘60, quand le nom « database » a été inventé. Comme bon nombre d’innovations technologiques, l'idée de ce nouvel instrument est né dans le milieu militaire des États-Unis pour pouvoir désigner une collection de données d’informations partagée par les utilisateurs des terminaux.
http://www.journaldunet.com/solutions/0705/070515-histoire-technologies-stockage/images/2.jpg
Exemple de cartes perforées
L'un des défis majeurs de l’époque était de créer une "relation" entre les données, initialement sur cartes perforées et, plus tard, à partir de fichiers plats, non structurés. De plus, les installations étaient sensiblement orientées côté matériel.

Plat et hiérarchique

Le premier modèle de données est représenté par un modèle de données plat, dans lequel les données sont représentées par une simple matrice, lignes et colonnes. C’est un modèle simple qui ne permet pas la liaison directe entre les différentes sources.
Les premières bases de données hiérarchiques sont apparues au début des années ‘60. Les informations étaient découpées en deux niveaux de hiérarchie : un niveau contenait les informations qui sont identiques sur plusieurs enregistrements de la base de données. Le découpage a ensuite été étendu pour prendre la forme d'un diagramme en arbre.

Premiers pas

Dans la seconde moitié des années ‘60, certaines entreprises de premier plan comme Honeywell Corp. et General Electric Corp. commencent à développer leurs propres solutions basées sur le modèle hiérarchique. Chez General Electric, CharlesBachmann est considéré comme l'un des pionniers de la base de données. Il a conçu et guidé le développement de l'IDS(Integrated Data Store), premier SGBD (Système de Gestion de Base de Données). En 1966, IBM lance le développement d'IMS (InformationManagement System), conçu spécifiquement pour soutenir le programme spatial Apollo et développé pour l’IBM System/360.
http://www.hoylen.com/photos/2009-west/06-computer-history/2009-09-25.3956.jpg
IBM System/360
Mais ce ne sont pas seulement les grands du monde électronique à prendre conscience de l'importance et du potentiel de ces nouveaux systèmes. Par exemple, Cincom fut la première société à avoir créé une base de données entièrement indépendante du matériel, appelée TOTALDMBS.

Modèle relationnel

http://en.wikipedia.org/wiki/Edgar_F._Codd#mediaviewer/File:Edgar_F_Codd.jpg
Edgar Frank Codd
(19.08.1923 - 18.04.2003)
En 1969 nait l’idée d’appliquer un modèle mathématique à la relation entre les données, grâce à un groupe de chercheurs d'IBM, mené par EdgarFrank "Ted" Codd, du nom de “relational model” (modèle relationnel). Il s’agit d’une modélisation mathématique fondée sur des règles précises pour l’ensemble entité-relation. Dans le modèle relationnel, la relation désigne l'ensemble des informations d'une table, tandis que l'association, désigne le lien logique existant entre deux tables contenant des informations connexes.

La Révolution

La théorie de Codd est révolutionnaire car elle permet de gérer les données d'une manière impensable jusque-là. Mais la technologie n’est pas encore prête à fournir des systèmes suffisamment puissants pour la mettre en pratique. Il faudra à IBM près de cinq ans pour développer un prototype de base de données relationnelle, définissant, dans l'intervalle, un nouveau langage d’interrogation des données, le SQL (Structured Query Language).
IBM favorisera le projet expérimental System R (ensuite SQL/DS et finalement DB2) conduisant à l'élaboration de nouveaux concepts tels que les vues (1975), les policy security (1975) et les transactions (1976). Toutefois, il n’exploitera pas immédiatement les résultats des recherches du groupe de Codd, les considérants antagonistes au vrai projet commercial d’IBM, soit l’IMS (InformationManagement System).

L’ascension

Celle qui en profitera est une petite start-up, SoftwareDevelopment Laboratories, dirigée par Larry Allison et Robert Miner. Allison avait eu l'occasion d'étudier de manière approfondie la recherche menée par l'équipe de Codd et il en avait immédiatement saisi le grand potentiel commercial. La société changera son nom en Relational Software Inc., avec comme défi, de produire la première base de données relationnelle commerciale. Elle trouvera en la CIA son investisseur le plus important.
Quelques années plus tard Relational Software Inc. deviendra Oracle Corporation, mais ça… c’est une autre histoire.






Sources:

vendredi 14 novembre 2014

Les bases du CSS

Question de style

Aujourd’hui nous vous avons préparé une petite introduction au CSS (Cascading Style Sheets), ou feuilles de cascade de style en français. Les feuilles de style sont utilisées pour donner une forme au code html. Le problème, si nous en utilisons pas, est qu'il faut reprendre toutes les pages une à une pour modifier une police de caractère ou une couleur de fond...


Le HTML et CSS

Le html est un langage qui fonctionne avec des balises simples, tout comme le XML, présenté il y a quelques semaines. Toutefois, une page html est divisée en deux grandes catégories.

La première catégorie est le header (en-tête) , celui-ci est utilisé pour des informations non-visibles. Il servira notamment pour charger notre Css, mais également pour afficher une icône, améliorer le référencement, ou encore charger du JavaScript.

La deuxième partie s’appelle le body, c’est là que nous plaçons toutes les informations que nous souhaitons afficher.

Une feuille de style CSS externe peut se faire avec un simple bloc-notes et il est d'usage de lui faire porter l'extension .css. Nous la lierons ensuite à la page html à l'aide d'un link placé dans le header  de la page.

Mais nous pouvons aussi déclarer les styles dans l'en-tête de la page, ou au sein des balises elles-mêmes. Cela peut être intéressant pour appliquer des styles spécifiques et ils auront un ordre de priorité plus important. C'est ce que nous appelons la "cascade".


                            Source: searchenginepeople



Mettre en forme un texte

Le formatage des polices de votre contenu est un élément primordial. En Css, nous utilisons des propriétés prédéfinies qui servent à formater nos éléments.

Par exemple, si nous souhaitons changer la police, nous utiliserons la propriété font-family, puis  pour changer la taille nous utiliserons la propriété font-size.

Plus concrètement si nous souhaitons formater les éléments texte de la balise body. 
Ça ressemblera à ceci :
Body {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
color: #333333;
La propriété color est ici utilisée pour changer la couleur. Elle peut avoir comme valeur un code hexadécimal, ou le nom de la couleur en anglais, par exemple Red.

Les marges

Pour affecter des marges aux différents éléments d'une page web, les propriétés CSS à utiliser sont margin, pour les marges extérieures et padding, pour les marges intérieures.
Source: http://le-pape.blogspot.ch/


Aller plus loin

Le Css est un langage énorme avec des centaines de propriétés. Si cet aperçu vous a mis la puce à l’oreille, nous vous invitons à vous rendre sur http://www.grafikart.fr/ où vous pourrez suivre plusieurs tutoriels concernant le CSS.




vendredi 7 novembre 2014

Les requêtes XPATH

Localiser les données

Connaître la structure d’un fichier XML, c’est bien. Mais connaître la manière d’en ressortir les informations, c’est mieux. Nous allons apprendre comment utiliser les requêtes XPath avec le logiciel Oxygen XML Editor, afin de ressortir les informations qui nous intéressent.

Le principe

Dans notre dernier post, nous vous avons expliqué la façon de structurer un fichier XML. Aujourd’hui, nous allons montrer l’utilité d’un fichier XML. Le fichier XML est comme déjà expliqué, un outil de structuration de données. Il permet d’identifier et structurer l’information. Le XML est un format texte, facilement compréhensible pour l’humain et les machines. Il est réutilisable même une fois modifié et surtout indépendant de l’OS ! Ici, nous allons nous intéresser à l’information. Nous allons vous montrer comment effectuer des requêtes XPath (simples), afin de faire ressortir les informations qui nous intéressent. Le logiciel utilisé est Oxygen XML Editor 16.
Voici l’exemple d’un fichier XML:

























Source : Exercice XML, HEVS-FIG, prof. Anne Le Calve

L’outil principal lorsque l’on travaille avec des requêtes XPath, c’est Ctrl-C / Ctrl-V. Le copier-coller doit être parfaitement maitrisé! Il y a plusieurs éléments à retenir avant de lancer votre première requête. Il vous faut cibler, tout d’abord, l’élément rechercher, ensuite vous y intégrerez les conditions. Si on prend cet exemple, pour afficher tous les éléments de la balise <valeurs>, il suffit de taper :


/catalog/products/product/price/valeur

Si vous ne voulez que la valeur du produit dont le code est 123 :

/catalog/products/product/price/valeur

et ensuite, vous insérez la condition « dont le code est 123 », ce qui donne :
/catalog/products/product[@Code='123']/price/valeur

Les conditions sont insérées par des crochets : [ ]
Voici une liste non exhaustive :

Source : http://www.w3schools.com/xpath/xpath_operators.asp

De plus, il ne nous faut pas oublier d’entrer la syntaxe correcte. Si vous ajoutez // (double slash), le logiciel va rechercher tous les éléments correspondant, indépendamment de sa place dans le fichier XML. Voici d’autres éléments :

Source : http://www.w3schools.com/xpath/xpath_syntax.asp




Un exemple

Afin de lancer des requêtes, il vous faut tout d’abord créer un fichier Xquery. Vous devrez par la suite lier les deux fichiers. Il suffit d’effectuer une transformation du fichier XML-XQUERY. Mais une vidéo vaut plus que 1000 mots ! Voici une petite vidée « aide-mémoire », qui vous montre les premières étapes à effectuer et une petite requête.


Source: Taylan

Pour conclure, il est important de se souvenir des opérateurs, des expressions et des conditions que vous utilisez de manière répétée. Le copier-coller est le meilleur moyen d'éviter les fautes de frappes. Lorsque vous effectuez une requête XPath, mettez vous en oeuvre petit à petit. Sélectionnez ce que vous souhaitez afficher, et ensuite seulement, vous insérez les conditions une à une. C'est le meilleur moyen de ne pas commettre de faute.

jeudi 6 novembre 2014

Le XML c'est simple, ou pas!

Schéma XML

Décoder un fichier XML. Comment est-il formaté, quelles sont les syntaxes et les symboles qui le compose.

La cabalistique

Enfin un langage simple. Simple car il n'y a que très peu de symboles à connaitre avant de vous lancer dans la création de petits fichiers. En début de semaine grâce à Taylan, vous avez découvert les fondements du XPATH (permet d'effectuer des requêtes dans un fichier XML). Dans cet article nous allons approfondir l'architecture d'un XML. Mais avant tout, un peu de vocabulaire.
Comme l’a expliqué Giuseppe dans sa dernière publication, il s’agit d’un langage normalisé. Seule une toute petite quantité de caractères sont exploitées.
<    </    >    "    ‘    =    <!--    -->
Dans la figure ci-dessous une mise en évidence des différents symboles.

Vocabulaire et stucture (Source : Exercice XML, HEVS-FIG, prof. Anne Le Calve)
Ce qu'il faut retenir. Les racines, les balises, les attributs... La manière dont vous les nommez est totalement "libre". En effet ce qui compte dans un premier temps c'est l'architecture. Ci-dessous une autre manière de représenter la structure (arbre hiérarchique). Cela permet également de se familiariser avec la notion de niveau. Élément essentiel dans la compréhension du Xpath.

Affichage hiérarchique (source : le-pape.blogspot.com)


Structurer

L'objectif majeur du fichier XML c'est qu'il est particulièrement universel. Alors, si celui-ci est mal formaté cet intérêt disparaîtra aussitôt. Prenons l'exemple d'un carnet d'adresses, il y a plusieurs méthodes pour l’écrire au format XML.
Exemple A :                                                                Exemple B :
Structurer un xml (source le-pape.blogspot.com)
On comprend assez vite que l'exemple "A" permet une plus grande souplesse. Il sera possible de créer autant d'adresses "type" que désiré. Notez la balise <Adresses> avec un "s" qui contiendra toutes les balises enfants <Adresse>.

Les règles à retenir

  1. Un fichier xml doit contenir une seule balise racine.
  2. Une balise ouverte <balise> doit toujours être fermée </balise>
  3. Si une balise est vide, c'est-à-dire qui ne contient pas de texte, peut-être auto-fermante <balise/>
  4. Pas de balise imbriquée, par exemple <Adresse>Chemin de l'école<CP>1923</Adresse></CP>
  5. Par convention on privilégie les minuscules pour les noms de balises et des attributs.

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.