Mise à jour : La version 2.1 est disponible au téléchargement en bas de l'article.
L'équipe de traduction du Full Circle Magazine souhaitait mettre en place un système de lecture en ligne de son travail.
Malgré les recherches, seules des solutions à base de Flash était disponibles. À contre-cœur, nous avons donc décidé d'en utiliser une, à défaut de mieux.
Si vous suivez un peu l'activité de notre site, vous avez sans doute remarqué les commentaires outrés de certain de nos lecteurs qui ne comprenaient pas l'impasse dans laquelle nous étions : proposer la lecture en ligne des numéros du FCM en flash ou ne rien proposer du tout ?
C'est là qu'un de nos contributeurs à levé le bras pour dire : Je m'en occupe !
- Je te laisse te présenter :
Ben, bonjour à tous je m'appelle Paul Kocialkowski, j'ai actuellement 14 ans et je vais rentrer en 3ème, au collège.
Un beau jour, j'ai décidé d'installer un truc dont j'avais vaguement entendu parler et qui se faisait appeler « Linux ».
Il me semble que j'ai tapé Linux dans Google et que je suis tombé sur la page d'accueil d'ubuntu-fr.
J'ai alors téléchargé et installé Ubuntu, qui était en version 8.04 à l'époque. J'ai petit à petit pris connaissance de la philosophie du libre et j'ai alors réalisé que je n'utilisais plus GNU/Linux simplement pour faire un test, en dualboot avec Windows, mais par nécessité d'être libre. Depuis, j'aide comme je le peux la communauté du libre.
Bien qu'ayant commencé mon aventure GNU/Linux avec Ubuntu, je pense que je ne vais pas tarder à m'orienter vers Fedora, qui respecte plus ma vision du libre.
- Pourquoi as-tu décidé de te laisser dans l'aventure FCM-fr ?
Comme je le disais : pour « aider comme je le peux la communauté du libre ».
Plus particulièrement car je lisais déjà le FCM dans la langue de Shakespeare. Contribuer à sa traduction en français était dans mes cordes et me permettrais ainsi d'apporter ma petite contribution au monde du libre.
Comme je n'ai qu'un niveau de collégien en anglais, je fais surtout de la relecture, mais aussi un peu de programmation 
- Pensais-tu que tu participerais à cette aventure au-delà de la traduction ?
À vrai dire, je n'y ai jamais trop réfléchi. J'ai choisi de contribuer à ce projet en tant que relecteur, mais cela n'excluait pas que j'y contribue par d'autres moyens, j'en étais quand même conscient.
- Qu'est-ce qui t'a poussé à vouloir développer cet outil ?
Et bien, quand j'ai vu qu'une solution en flash avait été mise en place pour voir en ligne les différents numéros, je me suis dit beurk, du flash pour un projet libre, c'est vraiment dommage.
Le hasard a fait que, cette semaine là, je développais quelques petits scripts de diaporama pour acquérir plus de connaissances en AJAX.
Je me suis alors lancé le défi de réaliser, uniquement avec des logiciels, standards et formats ouverts une visionneuse en ligne respectable (pas seulement un bout de code bancal).
J'ai pris beaucoup de plaisir à développer cette visionneuse dans ce cadre de « défi » et je pense que ça m'a beaucoup apporté, d'une part en tant que première expérience de programmation web non pour mon compte, mais pour un groupe et un public et d'une autre part en compétences de programmation AJAX.
- Est-ce que tu peux présenter ton système de lecture en ligne ?
Mon système de lecture, ou « visionneuse », utilise AJAX (JAVASCRIPT + XHTML + CSS).
Ajax permet de faire défiler les éléments tandis que XHTML et CSS assurent un rendu graphique de la page.
Le script qui permet de faire défiler les images mesure environ 300 lignes répartie en plusieurs fonctions :
- Une première qui définie le nombre de pages (d'images) du numéro (du dossier correspondant). C'est utile pour connaître la taille du cadre englobant toutes les images, et donc la taille à ne pas dépasser lorsque l'on utilise les fonctions pour faire défiler les images.
- Deux autres qui servent à faire défiler les pages de la gauche vers la droite et de la droite vers la gauche.
- Encore deux pour aller directement à la fin et au début du numéro.
- Et une dernière qui sert à contrôler si la taille réunie de toutes les pages n'a pas été dépassée et le cas échéant apporte une correction.
- As-tu un nom ?
Je ne pense pas que lui donner un nom soit nécessaire, car je ne la destine pas à une autre utilisation que de permettre aux lecteurs du fcm-fr de voir nos traductions en ligne.
Pour moi, ça restera toujours la « Visionneuse en ligne de l'équipe francophone de traduction du Full Circle Magazine »
- Tu as réfléchi au choix de la licence ? (GPL.. Creative common,...)
Étant donné que je respecte la liberté des utilisateurs, j'ai tout de suite pensé à la GNU GPL (3.0).
La licence est d'ailleurs officiellement définie dans le fichier README, à la racine de la visionneuse.
- On peut parler de la version 1.0 ?
En effet, c'est bien la 1.0 de la visionneuse. 1.0 car il y aura évidement d'autres versions qui viendrons ajouter des fonctions, corriger des bugs...
- On a déjà des remarques intéressantes dans les commentaires du billet de FullCircle-fr. Est-ce que tu vas te lancer dans la future version de ton programme ?
Oui, j'attaque ça demain matin 
- Je te laisse le mot de la fin !
Et bien, j'aimerais remercier toute l'équipe de traduction francophone du Full Circle Magazine, et plus particulièrement Dadall et ScurZ qui ont su me conseiller et me donner plein de bonnes idées !
Voilà, la découverte du monde libre, de ses convictions et de ses outils permet d'admirer ce genre de comportement. Encore merci à toi PaulK, de la part de l'équipe de traduction 
Les liens :
Note : A peine 24h après sa sortie, le visionneuse passe en version 2.0.
- Télécharger la version 2.0 (miroir officiel - miroir 1)
- Lire le changelog (ici )
Note 2 : ... et à peine 24h après la sortie de la version 2.0, voici la version 2.1 qui apporte son lot de corrections/améliorations. Vous pouvez télécharger cette version en cliquant par ici ou là.









Commentaires
C'est ou qu'on contacte le monsieux ? Parqu'il faudrait qu'il apprenne l'usage de mysql_real_escape_string assez rapidement...
the_gluLe monsieur il dit que sa version d'apache le fait automatiquement et donc qu'il n'y a pas pensé.
Le monsieur dit aussi qu'il a essayé de cracker son code par injection SQL et qu'avec cette méthode, il n'a pas réussi.
Enfin, le monsieur va publier la 2.1, en incluant cette mise à jour de sécurité
Le monsieur vous remercie.
PauKOuaip j'ai vu que ça marchait pas sur le site du FCM, mais c'est pas une raison pour ne pas utiliser de bonnes pratiques
the_gluEt en plus, vous avez essayé de craquer mon système !
Quelle honte !
Sérieusement, je vais faire le patch 2.1 dès que j'en aurais le courage.
PaulKCool article, bravo à PaulK, j'avais justement remarqué hier qu'il y avait eu un changement et que ca n'étais plus en flash ! Bravo !!
Edouard@the_glu: euh... il a le temps je pense vu son âge...
Edouard@Edouard Pas quand c'est publié et en prod :p
TralalOui, c'est vrai, c'est important, mais comme apache le gère tout seul sur le serveur du fullcircle, pas de gros souci pour sa sécurité.
Bien que le code source soit disponible, je ne vois pas très bien l'intérêt d'installer ça chez soi, et je doute que quiconque l'ai déjà fait, ce qui limite les dégâts.
Je publierais un patch de sécurité dès demain.
Et merci pour vos réactions.
PaulK14 ans ??? o_0 ça me troue le c**
T'as de l'avenir mon petit ^^
En tout cas bravo, c'est un super outils.
VV666(par contre moi, ça me choquait pas que se ne soit pas du flash... c'est peut être parce que je connais AJax et que je suis plus étonné de rien sur le web ^^⁾
C'est tout simplement genial ce petit script!
Vous devriez le proposer a la partie anglaise de FCM (si ce n'est déjà fait)
Pour ce qui est des critiques sur le code. C'est sympa de lui montrer ses "erreurs" mais c'est pas la peine d'etre désagréable.
Moi a 14 ans j'aurais bien voulu savoir faire ca
philippe@Philippe : Ouaip, il faudrait le faire. On va voir si ils peuvent l'utiliser, mais j'ai des doutes la dessus : ils ont encore des problèmes avec leur site officiel et le temps de connexion à ce dernier est souvent interminable...
@the_glu : la critique semble bonne, mais pas la forme. Un peu de courtoisie ne fait jamais de mal
dada@philipe : Oui, on a vaguement envisagé de le transmettre au FCM anglais. Toutefois, rien ne presse, autant le fignoler en fonction des commentaires de chacun.
Sinon, je n'ai pas eu l'impression qu'on ait été désagréable avec moi.
Merci pour tous ces commentaires vraiment encouragents.
PaulKDésolé d'avoir pu paraitre agressif, mais c'est le genre de trucs qui me font sauter en l'aire :p
Sinon c'est normale de pas avoir de couvertures ?
(Et Tralal smoi, me suis planté de pseudo)
the_gluQuel bonheur de découvrir de jeunes talents

BenjaminEncore bravo pour ton travail PaulK, c'est un avantage certain pour le FCM (et en plus ça fait parler de nous, que demander de plus)
@paulk : j'y connais rien donc je vais sans doute dire une bêtise mais qu'est ce qui fait que ce script est si spécifique a FCM? pourquoi cette visionneuse ne peut pas être utilise par d'autre site?
@the_glu : en fait c'est pas que c'était agressif mais plutot condescendant.
philippe@the_glu : Ah, les couvertures... Ces dernières sont censées êtres générées par php, sauf que ce dernier n'a pas les droits d'écriture sur les fichiers fraichement uploadés (qui appartiennent à l'utilisateur uploadant), donc il ne peut pas les générer. Si on passe un chmod sur le dossier, alors il les génèrera, mais ça n'a pas été fait.
Je pense que je vais rajouter, dans le script qui convertit le pdf en png une fonction pour qu'il génère la miniature de la couverture.
@philippe : En effet, cette visionneuse peut être utilisée par un autre site, mais elle a été crée pour répondre aux besoins de notre équipe. Elle donc est un peu spécifique au FCM.
PaulK(Je veux dire qu'elle n'a pas été conçue en tant que visionneuse générique.) Toutefois, quelques changements dans le code peuvent lui permettre de le devenir.
2.1 out
PaulKWahoo !
Bravo PaulK, je suis impressionné de voir le résultat de ton travail !
Je me demande ce que je faisais quand j'avais ton age... A oui, je jouais encore à la Super Nes :-p
Bonne continuation.
BazA++
@ PaulK, c'est possible d'avoir le code sources ? Mon collègue de travail voudrait y jeter un coup d'œil.
Merci pour lui.
Il est super ton boulot.
VV666@VV666 :
PaulKDépôt de dadall : ftp://www.dadall.eu/fcm-fr/visio/
Mon Dépôt : ftp://82.233.88.171/Full%20Circle%2...
Je viens de mettre à jour mon dépôt. Il y a donc la v1, la v2 et la 2.1.
dadaJ'édite le billet.
Bravo pour le travail de FCM et pour ce fantastique outil qu'à creer PaulK.
CenwenC'est bien de lui montrer ses erreurs mais je dis encore chapeau, faire ça un peu plus d'un an sur linux et à 14 ans. Bravo et bienvenue dans le libre.
Le boulot à l'air super bien fait!
Mais par contre, pourquoi utiliser une base SQL?
Ce serait bien plus simple si la visionneuse se contentait d'un seul paramètre : le nom du fichier pdf à afficher !!
PierreSuper!
J'aimerais pouvoir utiliser ce script sur un site en jsp, mais cela va nécessiter pas mal d'adaptations je pense... Est-il prévu dans une prochaine version d'isoler le javascript du code php pour le rendre utilisable avec d'autres technologies?
Pour info, imagemagick permet d'extraire les pages d'un pdf en images très simplement, par exemple:
http://www.commentcamarche.net/faq/...
OrelEagle
OrelEaglePS: c'est pas très lisible du texte gris clair sur un fond blanc!!! J'espère ne pas avoir fait trop de fautes...
Je transmets la remarque à PaulK dès que je le croise
dada@Pierre : Le SQL sert pour les statistiques, les utilisateurs et la correspondance id du magazine -> lien de téléchargement.
Utiliser SQLite serait mieux, comme tjrs...
@OrelEagle : J'ai développé la visionneuse sans le php, c'est trop le bazard sinon ! Si tu veux juste la source du javascript, je te la joins en séparé dans un mail ? Mon adresse est paul.kocialkowskiremplacer par @free.fr .
PaulK@OrelEagle : Ça devrait aller mieux pour relire les commentaires
@PaulK : Encore du boulot pour toi ! :D
dadaC'est vrai que c'est sympa d'avoir les stats mais c'est superflu pour un script dont l'objectif est d'afficher un PDF
Plus ton script sera simple à utiliser, plus il aura de succès, n'oublie pas les principes KISS (Keep It Small and Simple)
Mais ton travail est déjà remarquable ! Bravo !
Pierre@Pierre : Le module de statistiques m'a été demandé par un membre du fcm-fr, dans la version 1.0, il n'y est pas.
@Dada : Je remarque que j'ai fait une erreur dans l'article, je dis que l'AJAX est du Javascript + HTML + CSS, ce n'est pas du HTML mais du XHTML. Même erreur pour la ligne d'en dessous.
PaulKCorrigé
dada