19/12/2010

Encore des nuages!

Bonjour bonjour!!

Comme je l'ai dit dans la précédente note, nous avons quasiment terminé ce que nous avions à faire, alors nous nous faisons plaisir en faisant des jolis nuages!

Effectivement, ils ne sont pas tous sur le même modèle, mais dans la mesure où les mots principaux (sauf peut-être pour le russe) ressortent vraiment bien, nous avons décidé de ne pas tous les faire selon le même moule (et puis c'est monotone sinon quand même...)....

Donc pour le sens concret de 'frontière', voici les nuages pour l'espagnol, le portugais, le finnois, le français et l'italien:




06/12/2010

On avance d'un pas et on ne recule pas apparemment

Bonjour à tous!

Quelle joie de poster une nouvelle note tout en couleurs quand dehors tout est blanc!! Alors que je pourrais faire de la luge dans le parc à côté de chez moi, dévaler les petites collines, faire des batailles de boules de neige, tout ça tout ça, je vous gratifie d'une nouvelle note!!

Mais ENFIN, voici une note qui ne parle pas que des soucis rencontrés!

Après consultation de M. Fleury, il s'avère que notre script est plutôt pas trop mal, et que le MAL vient  que de bash (et un tout petit peu de nous aussi). Nous sommes donc finalement arrivées au bout de toutes les tâches faisables automatiquement, il nous reste donc à traiter manuellement les petits soucis rencontrés puisqu'au final notre travail est semi-automatique!

C'est donc avec une grande fierté/joie/allégresse (rayez la mention inutile) que je vous annonce ceci: on peut enfin faire les nuages et tous les autres trucs rigolos!!!!!

Voici par exemple les nuages pour le sens concret de 'frontière' en anglais, en allemand et en russe:




Voilà c'est tout pour aujourd'hui!!!

29/11/2010

On avance d'un pas, on recule de deux...

Bonne soirée enneigée!!


On approche peu à peu de la date de rendu de notre fabuleux site et il reste tout de même pas mal de soucis à régler!

Alors, d'abord, les bonnes nouvelles: le contexte, c'est fait!

La commande:



Le tableau est maintenant plus complet:



On peut d'ailleurs voir qu'à côté du numéro de chaque dump il y a désormais la mention de l'encodage d'origine.

Le résultat pour le contexte:



Mais nous avons toujours des soucis dans l'encodage!!
La commande iconv fonctionne presque tout le temps... D'ailleurs en ouvrant chaque fichier dans Notepad++ ou Smultron ou BBedit (etc.) on peut voir que les fichiers sont bien en UTF-8. Néanmoins, néanmoins...
J'ai toujours de gros soucis pour le russe....

La conversion en UTF-8 se fait mais l'affichage (que j'ai bien modifié via Firefox hein) est très bizarre.

Par exemple, un fichiers originellement en windows-1251:

Il s'affiche quasi normalement.
On le convertit en UTF-8, et voilà le résultat:


La recherche de contexte se faisant dans le fichier converti, on n'obtient aucun contexte (bah oui...) puisque le mot recherché est indescriptible......

Mais ce n'est pas fini! (Ah non hein!)

Certains dumps se retrouvent bizarrement en caractères latins....... Avant conversion bien sûr.... Donc impossible de chercher le contexte du mot "граница" dans la mesure où nous n'avons pas l'alphabet cyrillique dans le dump (on a bien par contre le mot "granica" << transcription en alphabet latin)... D'où peut venir ce problème?

Page originelle:


Dump:



Donc voilà voilà... Si quelqu'un a le même problème...

Et juste pour montrer la superbe différence entre le résultat de la commande file -i et la recherche du charset via egrep (en rouge: file -i, en vert: résultat egrep):



Ah oui!

J'allais oublier, les fichiers à concaténer sont concaténés, mais là je ne vous montre pas ma commande quand même!! Bon je donne quand même la syntaxe de 'cat':

cat fichier_a_concatener1 fichier_a_concatener2 >> (ou >) fichier_en_sortie

22/11/2010

Encodage en UTF-8

Oyez oyez!


Nous avons commencé la difficile étape de l'encodage en UTF-8. Difficile étape car la commande "file" ne semble pas vouloir fonctionner correctement et ne récupère donc pas toujours les bons encodages initiaux des pages traitées (ainsi, alors que certaines pages sont en windows-1251, "file" me récupère du us-ascii ...). On va donc récupérer les encodages directement après le "charset=" des pages html aspirées!!

Après cela on pourra donc convertir gentiment via "iconv" nos fichiers. À noter que si le fichier est déjà en utf-8, une gentille boucle ne le convertira pas mais se contentera de faire une copie et de renommer le fichier afin d'avoir un avant/après encodage pour TOUS les fichiers... Mais on changera peut-être cela par une inscription dans le tableau "fichier déjà en utf-8", bref, on verra ce qui nous plaît le plus après votes et délibérations.

Voilà une capture de ce qui se passe dans le terminal:




Le message en jaune ne s'affiche évidemment pas lorsque le fichier initial n'était pas en UTF-8 et qu'il y a bien une conversion.


Je ne m'étends pas plus aujourd"hui car en ce moment, je pense ne pas être la seule d'ailleurs, je cours un peu après le temps... Je mettrai donc des explications avec des bouts de script un peu plus tard!!


Bonne journée!!

16/11/2010

Problème d'aspiration des pages

Bonjour à tous!!



Quelle joie en cette belle journée ensoleillée de vous faire part de mes problèmes d'aspiration de pages!

Je ne donnerai ici pas de solutions aux problèmes rencontrés dans la mesure où je n'en ai pas pour le moment. Aussi, j'en appelle à votre bon cœur: si vous avez la solution à mon problème, merci de bien vouloir me la donner!!

Comme je l'avais dit dans une précédente note, certaines pages ne veulent pas être aspirées par wget, ni par lynx d'ailleurs... Je crois avoir compris, en partie, d'où vient le problème. En effet, à la fin de chaque lien, les symboles %0D viennent se greffer, corrompant ainsi la validité d'un très grand nombre de mes URLs...
J'ai essayé pas mal de choses:

  • vérifier que mes fichiers d'urls étaient bien encodés
  • vérifier qu'il n'y avait pas de retour chariot à la fin de chaque ligne de chaque fichier url (non y'a pas)
  • tenter de supprimer avec egrep
  • tenter de faire un cut en utilisant le % comme séparateur de colonnes
  • et bien d'autres choses
Rien n'a fonctionné. Rien de rien. >> On a trouvé! (voir plus bas)

Donc si vous savez quoi faire: je prends!


EDIT: Kelly apporte la réponse dans son commentaire

"j'ai résolu le problème :D il suffit de prendre les fichiers allemand.txt, finnois.txt et russe.txt et de les mettre en UNIX grâce à Notepad++ ... Bon ok, on l'a vu en cours grâce a Monsieur Fleury"

08/11/2010

Aspiration des pages avec wget et lynx

Eh oui nous sommes de vraies stakhanovistes du bash!!

Maintenant que nous avons réglé les problèmes de commandes non installées, on peut enfin aspirer les pages des liens que nous avons récupérés.

Pour cela, on intègre dans la boucle qui lit chaque ligne (donc chaque url) de chaque fichier, une petite commande wget qui récupère l'url et aspire le contenu de la page.

La commande:


Le seul petit souci est que certain site (comme Wikipédia par exemple) bloque quelques fois cette aspiration!!

Alors comment faire pour récupérer ces pages??


On utilise la commande lynx!!!


La commande:


Lorsque j'avais essayé mercredi dernier j'avais bel et bien récupéré les pages que je n'arrivais pas à avoir avec wget. Malheureusement, en réessayant aujourd'hui, j'en récupère certaines qui n'étaient pas disponibles avec wget mais je n'arrive pas à toutes les avoir quand même (et pourtant j'avais eu celles en question la semaine dernière)... Il va donc falloir trouver une solution à ce problème.


Le résultat du script donne un tableau comme ceci:


Je n'ai pas WGET, que faire?

Amis du soir, bonsoir!

Cela faisait longtemps que les jeunesses talinistes ne vous avaient pas gratifiés d'une sympathique note!
Il est temps de reprendre les bonnes habitudes.
La semaine dernière nous avons vu que l'on peut (en théorie) aspirer des pages web grâce à la commande wget.

Nous nous sommes donc attelées à la difficile tâche d'aspirer les pages de nos quelques 250 liens... Super super!!

Alors déjà, sachez que selon votre version de Cygwin, vous n'avez peut-être pas la commande wget (ni lynx d'ailleurs, et pas mal d'autres encore).
Pour cela, rien de très compliquer, il suffit de télécharger les paquets!
Comment fait-on?


Récupérer une commande:
  • On va sur le site de Cygwin: http://www.cygwin.com/
  • On télécharge le setup.exe en cliquant sur ça: 
  • On choisit "install from internet"
  • On met View sur Full
  • Dans la barre de recherche on tape "wget"
  • Puis on clique sur l'icône à côté de "skip" jusqu'à avoir la version qui nous plaît
  • Suivant
  • Le téléchargement s'effectue
  • Vous pouvez relancer Cygwin
  • Si vous taper wget -h vous aurez une liste de toutes les options!
Mais si comme moi vous n'avez pas de chance et que lorsque vous essayez d'utiliser wget cela vous affiche un super message d'erreur du genre "Error while loading shared libraries" avec un chemin juste avant vous indiquant où devrait se situer cette "shared library" n'ayez crainte, il y a toujours une solution!!

Il suffit en effet de télécharger le fichier dll cygz.dll et de la placer dans le même répertoire que wget.exe:
  • Télécharger cygz.dll en cliquant sur ce lien
  • Placer le dans le répertoire par défaut où doit se trouver wget.exe (et toutes les autres commandes!!): C:\cygwin\bin
Et voilà!! Wget fonctionne!!!!!!

27/10/2010

Encore et toujours le tableau

En surfant sur les sites des étudiants de l'an passé, j'ai vu ces jolis petits tableaux:

(Roxane Anquetil, Marine Damiani, Leidiana Martins)


J'ai beaucoup aimé la présentation et j'ai donc copié ces demoiselles!!

J'expliquerai plus tard comment j'ai procédé car j'aimerais bien si quelqu'un a trouvé une façon plus simple que la mienne de faire que cette personne me donne des tuyaux.

Bref, j'ai fini par obtenir ça (bon il faut imaginer qu'il y aura d'autres colonnes après hein!!):

Personnaliser son tableau

Ce billet est une suite de celui de Kelly sur le bouclage de la boucle!

Aujourd'hui c'est mercredi et mercredi c'est le jour des enfants, donc nous on s'amuse, on met des couleurs partout.

De mon côté je me suis donc amusée à mettre une image dans certaines colonnes/cellules du tableau et à changer la couleur des liens, à mettre une légende, tout ça tout ça.


Donc pour rajouter une légende, c'est pas dur, après la balise <table> on ajoute la balise <caption> -légende (ici la légende est contenue dans la variable $caption)- </caption>. En réalité, vous pouvez mettre les balises <caption> où vous le voulez, moi je les ai mises là pour que la légende soit juste au-dessus du tableau et qu'elle fasse la même largeur...
Puis on voudrait que les en-têtes soient bien centrés dans leurs cellules donc dans la balise <tr> on ajoute l'option align="center", si on veut que ce soit à gauche on met "left" et je vous laisse deviner pour la droite (trop dur).
Les cellules des en-têtes sont 'balisées' avec <th> et non <td>. Ici on a rajouté dans la balise <th> l'option background="image.jpg". On aura donc en image de fond l'image appelée image.jpg à condition que celle-ci se trouve dans le même répertoire que le tableau qui sera créé. Donc si elle ne se trouve pas dans le répertoire TABLEAUX mais dans le répertoire IMAGES par exemple il faudra mettre background="IMAGES/image.jpg".

Puis on voudrait que les liens aient une autre couleur, ouais ça pourrait être chouettos!!

Alors comment fait-on? Bah comme ça:


Après la balise <a href> on ajoute une balise <font color=#couleur>, on y met le code couleur désiré, on oublie pas d'échapper les "" sans quoi le dièse sera pris pour un début de commentaire.

Et voilà. Vous avez un super tableau!!



Maintenant, il ne nous reste plus qu'à bidouiller pour avoir un joli tableau avec des supers bordures, de jolis fonds, etc.


Dans un prochain billet (d'ici quelques semaines je pense), on vous expliquera comment vous épargner tout ce mal grâce à la mise en place d'un style CSS (enfin si on trouve le courage)!!

Le rajout des en-têtes, la boucle est bouclée

Pour peaufiner encore et toujours plus notre tableau (et pour aller jusqu'au bout de la maniaquerie) , pourquoi ne pas rajouter des en-têtes pour chaque colonne ?
Pour se faire, il suffit de rajouter cette simple ligne dans le script du billet précédent.


Mais attention, notre script redouble de danger . En effet, si on s'aventure à mettre cette ligne dans la boucle, le résultat sera plus que moche , mais il a pour avantage de bien se rendre compte de la signification du mot "boucle" . L'image de gauche vous montre quel serait le résultat de la ligne insérée à l'intérieure de la boucle for.




Voici à présent le résultat souhaité ! Nous l'avons obtenu en déplaçant la ligne de code html hors de la boucle. Fastoche !


















ps : vous pourrez admirer les changements esthétiques qui ont été réalisés même si, il est vrai " les goûts et les couleurs, ca ne se discute pas "

25/10/2010

Création du tableau contenant les liens

Buorre beaivi comme on dit chez les Lapons!

Une fois de plus, la météo a fait des siennes tout le week-end (enfin en tout cas par chez moi) et le soleil repointe le bout de sa truffe le lundi comme pour bien nous narguer. Alors entre ma séance de bronzage par 5°C (toujours avec le punch coco bien sûr) et mon, ô combien, aventureux périple à vélo sur les bords de Marne (et de Seine d'ailleurs) j'ai décidé de vous gratifier d'une nouvelle note sur l'avancée de notre projet.

Et le thème du jour est: la création d'un tableau contenant les URLs des pages contenant le Graal mot "frontière".

Alors nous avons vu en cours un script de base qui permet d'avoir un tableau contenant nos liens. Bon. C'est chouette mais on va aller un peu plus loin.

Alors ce qu'on veut aujourd'hui c'est donc un tableau avec un numéro devant chaque lien. On a donc repris le script fait en cours et rajouter un petit compteur incrémenté via la commande let:


Vous pouvez aussi remarquer qu'on a ajouté dans la balise <a href> l'option target="_blank" qui permet d'ouvrir le lien dans une page blanche plutôt que dans la page actuelle (ce qui permet de ne pas faire 'précédent' à chaque fois).

Et donc ça donne ça:



Bon c'est pas mal, mais on veut faire plus fort, plus grand, vers l'infini et au-delà.

Alors on a essayé de traiter tous les fichiers d'URLs d'un coup. Pour cela, plutôt que de choisir un fichier, on va choisir un répertoire (par exemple celui qui contient les fichiers d'URLs du sens concret du mot frontière). Et plutôt que d'avoir une boucle, on va en avoir deux. Ouais, on est des folles.






Alors je ne mets pas toutes les explications parce que je n'ai pas encore eu le temps, et pis pour ceux qui s'aideraient de ce script, vous faire réfléchir un peu au pourquoi du comment.

Et ça donne ça:

Ah oui, on a ajouté des couleurs (bon on va les changer parce que celles-la elles piquent les yeux)!!

Ce qui peut être sympa, c'est aussi d'avoir le nom de la langue devant. Ouais ça peut faciliter la lecture. Et puis à la place du lien complet, on va mettre 'lien' + le numéro du lien.



Le résultat:


Et voilà!!!

Si besoin est, laissez un commentaire pour demander des explications.

21/10/2010

Préparation de notre environnement de travail

Comme je sais que vous attendez tous le récapitulatif de chaque cours avec impatience, j'ai donc décidé, dans ma grande mansuétude, de ne pas vous faire languir une seconde de plus.

Donc à la séance du 20 octobre, nous avons vu des tas de choses: comment préparer notre environnement de travail et un début de script qui récupère les URLs contenus dans un fichier pour les mettre dans un tableau contenu dans un fichier html.


Alors d'abord, comment crée-t-on notre environnement de travail?

Facile! Un script a été mis à notre disposition ici.

Alors, on se place dans le dossier désiré (avec cd), par exemple sur le Bureau.


Puis on lance le script:


On peut voir que les répertoires nécessaires ont été créés:


Alors oui, on aurait pu faire comme ça:


Mais on a déjà un script tout prêt alors pourquoi se compliquer la tâche?




Ensuite, nous avons vu comment créer un tableau contenant les URLs de notre fichier.
Le script ressemble à ça (avec explications de Kelly):


Et quand on le lance ça donne:



Le résultat (avec quelques changements effectués dans le script de base):

Changements dans la répartition des langues

Alerte alerte.

Face au manque de ressources en quechua, nous avons quelque peu changé la répartition des langues traitées:

  • Julie B. se cramponnera à l'espagnol, au portugais et à l'anglais
  • Kelly s'occupera de l'iTALien et du français
  • Julie S. se dépatouillera avec le finnois, l'allemand et le russe

Mais il y a quand même une bonne nouvelle: nous avons nos liens en italien, allemand, russe, finnois, espagnol, portugais et français déjà!!! Manque plus que l'anglais!!

20/10/2010

Et oui, sous windows, il existe aussi des difficultés



Voulant me lancer dans le script du jour :
Cygwin a coupé court à mon rêve. Impossible de lancer le script sans message d'erreur :

Une explication à ça ?! oui !
Comme il y a des incompatibilités entre windows et unix, quand on veut exécuter notre script, cygwin n'est pas content ! Le script ayant été généré sous windows, quand il arrive sous unix, il n'est pas bien compris. Pour pallier le problème, il faut, dans notepad ++ convertir le programme au format unix, et hop, tout devient possible.
Nous obtenons donc :

NB : si votre version de notepad est récente, il se peut que vous rencontriez des difficultés pour trouver le format unix. Pour le trouver il faut aller dans Propriétés ->nouveau dossier -> Unix

Bon script !

Petits problèmes...sous ubuntu (quand le script est fait sous le vilain windows)

Hello ! Alors pour ceux qui travaillent sous ubuntu et qui comme moi auraient pu avoir ce gentil petit message :


Le problème ici a été abordé durant le cours de GIM, les fameux retours-chariots ne sont pas les mêmes sous windows et sous linux. Ce script a apparement été conçu sous windows et il ne fonctionne pas car les retours-chariots (^M) ne sont pas interprétés correctement.

Solution :
  1. soit on retape le script à la main (vu qu'il est pas trop long acceptable pour cette fois)
  2. soit on convertit le fichier au format adéquat (commande dos2unix, conversion sous emacs, conversion sous VI) plus ou moins de succès selon les versions de l'environnement sous lequel on travaille


youhouuu ! plus de message d'erreur !
... ah non il y a un nouveau problème.
Ici c'est un petit problème de syntaxe, ma version de bash ne reconnait pas les accolades.

solution : à la place de { est attendu do, et à la place de } est attendu done, on
remplace !!

comme çà :


et voilà ...

plus de message d'erreur, on obtient un joli tableau contenant notre liste d'urls.