J'y suis !
Une journée devant moi, redevenir celui que j'étais (dans mes rêves …), le développeur fou.
C'est parti.
D'abord, il faut une idée de programme (en général, tout part de là, sinon dodo.). Il se trouve que vos élèves vous ramènent quotidiennement la carte mémoire de leur appareil photos avec dessus pêle-mêle :la photo du chien,celle des grand parents ,3 vues floues d'une improbable expérience de chimie liée à un projet pédagogique incertain et enfin une dernière représentation d'une forme inconnue et peut-être non recommandable. A moins qu'il n'y ait 500 Mo de données … (ça ne prend pas de place ,ça tiens sur une clef !). Les bambins désirent en faire un site internet rapidement
Vous disposez de tout ce qu'il vous faut dans le monde du libre pour passer à l'action, si en plus vous participez à linuxedu, alors …
Nous allons créer un logiciel capable de transformer un simple répertoire contenant des photos en présentation dynamique sous forme de site internet qu'il ne restera plus qu'à publier par ftp par exemple. Si cela existe déjà, ce n'est pas grave, on fera moins bien , cela sera toujours mieux! Pour le nom, on utilisera fais-moi-un-site (fmus), noter la référence au petit prince, comme logo, on pourra prendre un mouton sur une vue simplifiée de la planète.
Pour ceux qui veulent suivre le tutoriel à la lettre , j'ai mis en ligne les 6 photos issues directement d'un appareil photo ,numérique et de vacances en Corse un jour ou l'éclairage était mauvais , elles sont donc moches et prennent beaucoup de place . Elles sont ici
Notre interface graphique (logiciel) se contentera de mettre en œuvre des outils existants, il faudra donc les tester avant de finaliser notre projet. Ouvrir une console , créer le répertoire de travail:
| Ouvrir un terminal, créer un répertoire nommé mon_projet, entrer dans ce répertoire et créer les trois répertoires sources, photos et fmus. le répertoire fmus contiendra le code source de l'application, le répertoire source contiendra les codes externes que nous allons utiliser et le répertoire photos contiendra les photographies | ![]() |
| aller dans le répertoire photos, et télécharger les photos pour la démo: wget ftp://garonne.ac-toulouse.fr/linuxedu/photos.tar.gz Décomprésser ensuite l'archive avec la commande tar -zxvf photos.tar.gz Supprimer le fichier archive avec rm photos.tar.gz | ![]() |
| Vérifier la taille des fichiers avec du -sh * | ![]() |
| Il est temps de tester le traitement des images avec ImageMagick. Entrer la commande convert -resize 400×300 DSC05288.JPG DSC05288P.JPG puis d'enchaîner avec du -sh DSC05288* | ![]() |
Ici , on va préparer la sortie (les fichiers générés par le logiciel). D'abord, comme pour les images, on va tout faire “à la main”. Après une rapide lecture de la documentation du plugin , on constate qu'il faut différents fichiers , soit à télécharger, soit à écrire nous même.
| aller dans le répertoire nommé source. cd ../sources puis, on télécharge le code javascript, pour le plugin : wget http://www.dynamicdrive.com/dynamicindex4/stepcarousel.js et pour jquery : wget http://code.jquery.com/jquery-1.5.1.min.js | ![]() |
Sinon , directement tous les fichiers utiles avec wget ftp://garonne.ac-toulouse.fr/linuxedu/sources.tar.gz
ensuite tout décompresser avec tar -zxvf sources.tar.gz
Supprimer ensuite le fichier sources.tar.gz (rm sources.tar.gz).
Lancer un navigateur , puis ouvrir avec ce navigateur le fichier index.html situé dans sources, cela peut paraître trés laid, mais en fait, on est content, il n'y a qu'à réduire les images et cela sera correct. Il restera bien sûr à modifier les sources pour que tout soit aux normes, bien citer les codes qui ne nous appartiennent pas , leur origine .
Voir la présentation rapide de lazarus
1) Dans la pratique, on récupère un média contenant des photos, simulé ici par le répertoire photos: Le logiciel devra être capable d'ouvrir un répertoire à la demande. 2) On doit pouvoir ensuite afficher les photos présentes dans ce répertoire , les sélectionner individuellement ou en bloc, les retailler, copier le résultat dans un espace cible (disons dans un répertoire nommé images), ensuite, un clique sur un bouton pourra générer les codes html accompagnant les images. 3) L'utilisateur n'aura qu'a ensuite publier les rpertoire sur le web.
Il nous faut un répertoire photos qui simulera le media (dans lequel on a déja placé 6 photos d'exemple).
Un répertoire contenant le code de notre application fmus.
Un répertoire contenant les fichiers qui ne sont pas à nous, ou qui servent de modèle.
Une fois lazarus lancé, il faut commencer par tout enregistrer (menu tout enregistrer) le fichier sources ufms.pas et le fichier projet pfms.lpi.
Ensuite, on place les différents composants sur la form (le formulaire), il suffit de choisir l'onglet correspondant dans l'EDI, cliquer une fois sur le composant, et cliquer une fois sur le formulaire pour y placer le composant.
A venir …
Voir aussi : Gérer son code et gestion des versions
Voir aussi : Utiliser un editeur WYSIWYG
Comme notre but est de publier notre logiciel sur internet (via launchpad), il nous faut gérer les versions de notre logiciel avec un outil simple et compatible avec le futur dépôt sur launchpad. On utilisera bazar.
installation : sudo aptitude install bzr
se rendre dans le répertoire contenant les sources du projet: cd fmus, puis taper la commande d'initialisation : bzr init
Si on liste les fichiers présents dans ce répertoire , l'affichage met en évidence un problème:
drwxr-xr-x 4 yves yves 4096 2011-03-08 11:14 . drwxr-xr-x 22 yves yves 4096 2011-03-08 07:35 .. drwxr-xr-x 2 yves yves 4096 2011-03-08 11:14 backup drwxr-xr-x 6 yves yves 4096 2011-03-08 07:08 .bzr -rw-r--r-- 1 yves yves 10 2011-03-08 07:19 .bzrignore -rwxr-xr-x 1 yves yves 20626468 2011-03-08 11:14 pfms -rw-r--r-- 1 yves yves 521 2011-03-08 11:14 pfms.compiled -rw-r--r-- 1 yves yves 137040 2011-03-08 11:14 pfms.ico -rw-r--r-- 1 yves yves 6627 2011-03-08 11:14 pfms.lpi -rw-r--r-- 1 yves yves 368 2011-03-07 11:53 pfms.lpr -rw-r--r-- 1 yves yves 417519 2011-03-08 11:14 pfms.lrs -rw-r--r-- 1 yves yves 791 2011-03-08 11:14 pfms.manifest -rw-r--r-- 1 yves yves 186968 2011-03-08 11:14 pfms.o -rw-r--r-- 1 yves yves 270 2011-03-08 11:14 pfms.rc -rw-r--r-- 1 yves yves 3594 2011-03-08 08:42 ufms.lfm -rw-r--r-- 1 yves yves 3687 2011-03-08 08:42 ufms.lrs -rw-r--r-- 1 yves yves 215300 2011-03-08 11:14 ufms.o -rw-r--r-- 1 yves yves 6600 2011-03-08 08:42 ufms.pas -rw-r--r-- 1 yves yves 16619 2011-03-08 11:14 ufms.ppu
le fichier binaire pèse 20 Mo ! Avant d'apprendre à réduire sa taille, on va l'exclure du système de mise à jour, car ce qui nous intéresse, c'est le code source, on pourra recompiler autant que l'on veut ! Principe du logiciel libre.
les commandes bzr add * , puis bzr ignore pfms permettent de mettre en place la gestion des versions du logiciel.
la commande bzr commit -m “premiere version” va mettre en place la toute première version (voir)
Un exemple sur un autre projet (tp sur la structure électronique niveau seconde)
strip nom_exe upx nom_exe (paquet upx-ucl)
Dans le menu "Projet" choisir "options du compilateur" Dans l'onglet "Code" choisir sans toucher au reste - Table des liens intelligente - Code plus petit Dans l'onglet "Edition des liens" sans toucher au reste - dans le groupe "Déboguage" décocher tout sauf "éliminer les symboles de l'exécutable" - dans style de liens cocher "lien intelligent" Dans l'onglet "messages" sans toucher au reste - décocher "Insérer un logo FPC" Compiler avec "Exécuter" "Construire tout"
Cette partie est fondamentale, elle permet le travail en groupe , l'échange et aussi le travail en solo, mais de façon tout à fait transparente. Les exemples sont pris à partir du groupe linuxedu, mais on peut travailler de façon autonome . D'abord aller sur launchpad , se créer un compte, ensuite votre président / chef de groupe bien aimé doit vous intégrer à son groupe de travail (ou vous pouvez tout faire vous même).
Pour publier les sources, il faut générer les clefs ssh et les intégrer dans son profil
Comme exemple, je prendrai la encore un autre projet, pour gagner du temps ..
Quand on est connecté sur la page, cliquer ur son login en haut à gauche
Ensuite cliquer sur code
Ensuite, sur la gauche, cliquer sur register a branch (pour créer un espace ou stocker le code source)
Compléter le formulaire, dans notre cas, la branche est directement hébergée sur launchpad
On valide le formulaire, on peut ensuite repasser en mode console sur notre pc, la commande bzr login-id yves-dhenain m'attribue le login que j'ai sur launchpad
ensuite bzr push –use-existing lp:~linuxedu/+junk/tp-se-seconde permet de publier les sources
et après quelques minutes :
Vite fait pour l'instant , il y a visiblement plusieurs façons pour créer ses paquets, je vais tenter avec pbuilder
sudo apt-get install pbuilder debootstrap devscripts
Puis , on tape la commande sudo pbuilder create qui va générer une longue litanie , visiblement, cela correspond à la création d'un chroot
Pour mettre à jour le chroot: sudo pbuilder update. La page officielle ubuntu sur pbuilder
Ouvrir le fichier /etc/apt/sources.list Vérifier que la ligne deb-src http://archive.ubuntu.com/ubuntu <ubuntu_version> main restricted universe multiverse est n'est pas commentée , puis