Sometimes I write things, sometimes I don't.

To content | To menu | To search

Démo : la version 1.1.1 de gSplit en vidéo

Ça commence à faire un petit moment que je n'avais pas parlé de gSplit et donc que je n'avais pas fait part de mon développement sous Ubuntu avec Java et GTK. Donc voilà une petite vidéo pour vous montrer l'actuelle version stable (numérotée 1.1.1) du petit gSplit.

La vidéo est téléchargeable.

Dès à présent, vous pouvez trouver une version packagée de gSplit dans mon PPA sur Launchpad (bien entendu, c'est un dépôt non officiel donc il faut faire attention). Pour le moment, seules les personnes utilisant Jaunty Jackalope peuvent en profiter. Pour plus d'informations pour obtenir gSplit, vous pouvez jeter un coup d'oeil sur la page qui lui est dédiée dans la documentation.

Dans un deuxième temps, comme dit à la fin de la vidéo, dans le but de développer la version 2.0.0 (qui est déjà commencée en fait), vous pouvez me suggérer toutes vos idées pour améliorer le programme aussi bien au niveau ergonomique qu'au niveau des fonctionnalités. Je prendrai note et tenterai de faire le maximum pour contenter tout le monde.

Comments

1. On Sunday 31 May 2009, 08:35 by Aurélien Paulus

Bonjour,

Ça fait un petit moment que je suis le développement de votre programme avec curiosité. Je trouve le principe génial, l’outil performant et l’utilisation relativement aisée.

Je n’ai aucune compétence en programmation, aussi je vais vous communiquer deux ou trois remarques à titre personnel et vous en ferez ce que vous en voudrez/pourrez. En tout cas, je vous souhaite tout le bien que votre logiciel mérite.

Alors, vous avez parlé du système de notification Jaunty, parfait, mais aussi pour les erreurs. À mon sens, il faudra peut-être éviter pour les erreurs puisque le principe des notifications, c’est qu’elles informent mais qu’elles ne requièrent pas l’intervention de l’utilisateur, or une erreur demande un check up n’est-ce pas ?

Deuxième chose : pourquoi ne pas envisager un mode actuel, qui serait le mode “expert”, où Monsieur tout le monde n’y connait rien au MD5 et tout le tralala et un mode “simplifié” qui utiliserait une préconfiguration standard (hashage avec renommage automatique du fichier en part 1, part 2 etc.; création automatique du fichier MD5 nommé “somme de contrôle MD5” ET un fichie inhérent aux parties (méta ?, fichier texte supplémentaire ? je n’en sais trop rien, mais si des infos méta style avec les jpg étaient possibles ce serait parfait et transparent pour M. tout le monde)). Ainsi, l’utilisateur utilisera ce programme “comme un zip”, sans se soucier de tout le boulot qu’il aura derrière. L’utilisateur expert lui, pourra tout peaufine (la procédure de hashage, le contrôle, le renommage, etc.)

Mon idée c’est qu’ainsi, l’utilisateur de l’autre côté qui recevra le fichier, sans s’y connaître, avec le mode simplifié, pourra ouvrir un fichier hash et le programme reconnaîtra le fichier, grâce aux infos méta (ou alors il ouvre le fichier d’infos), saura combien d’autres parties sont requises et vérifier dans le répertoire si elles sont là (sinon, demander à l’utilisateur de rechercher le fichier (imaginer une interaction avec Tracker ?)), de contrôler la présence du fichier MD5 et de rassembler les fichiers, de contrôler si c’est OK et c’est joué.

Une autre idée, toujours côté client (car l’expéditeur sera à mon avis l’acteur le plus efficace mais il faut bosser sur l’usage du “receveur” qui doit être hyper simple pour que le programme soit un succès), c’est de lui demander à la fin ce qu’il voudrait faire des fichiers hash (les supprimer ou les conserver ?). En effet, l’utilisateur peu “technique” risque d’avoir un disque plein sans jamais penser aux fichiers hashés…

Enfin, toujours dans mon idée de mode préconfiguré… proposer des hashages tout fait, par exemple des hashages de 10 Mo pour les mails. Mon idée : je pars en vacances et je ramène 300 Mo de photos. J’ai envie de les envoyer par mail à un ami mais je n’ai pas de service en ligne (mon compte gratuit Flickr ne suffit pas, Google Picasa est plein, peu importe la situation). J’ouvre gSplit, je sélection “envoi par email” et hop, il sectionne tout en pièces de 10 Mo… pratique non ? (il faudra se renseigner tout de même, je dis 10 Mo car c’est la limite des comptes Gmail, c’est peut-être moins ailleurs).

Enfin, dernière idée toujours liée : tenter de travailler en synergie avec Evolution ou Thunderbird : cad quand l’utilisateur clique sur “envoyer par mail”, hop, le hash se fait dans une mémoire tampon (un dossier temp quoi), pendant ce temps il est invité à saisir une ou des adresses, un objet et un message et ensuite il confirme en envoyant. S’ouvrirait alors le gestionnaire de mail permettant à l’utilisateur de voir si ça s’envoie bien. Si l’utilisateur n’utilise pas Evolution ou autre, alors le programme propose d’enregistrer les Hash et à envoyer manuellement. Penser dans ce cas à un bouton “envoyer avec Evolution/Thunderbird” ou “ma messagerie” et “préparer pour un envoi manuel par courrier électronique” ou quelque chose du genre.

Mieux, le message peut contenir un bref texte invitant le récepteur à installer gSplit sur son ordinateur pour rassembler tous les fichiers. Ça aidera le receveur s’il n’y connaît rien et le récepteur s’il n’a pas pensé à expliquer le concept (qui sera méconnu dans un premier temps).

Bien évidemment, je trouve le mode Expert est déjà clair pour un utilisateur avancé ou moyen, mais risque d’être déroutant pour beaucoup d’autres. Si vous arrivez à rendre l’utilisation de ce programme presque transparente et surtout en symbiose avec les mails (principal support d’envoi de fichiers) — et pourquoi pas aussi proposer une préconfiguration pour CD, DVD, Clé USB, etc. — bref, si ça devient transparent, alors les gens vont l’utiliser volontiers car le concept est pour moi génial (qui n’a jamais eu besoin de raccourcir un fichier et ne s’est jamais pris la tête avec la compression… car compressez une chanson ou un film… bof quoi).

Ensuite, si c’est bien intégré à Gnome et à mail ou à Brasero même (genre, pour les CD DVD, proposer de les graver avec brasero…), le programme aurait toutes ses chances de se voir intégré à Gnome voire à Ubuntu !

Voilà, c’est un peu lent et probablement pas clair. De plus, j’ai honte car je suis incapable de vous aidez, mais j’insiste sur deux choses : le concept est vraiment utile et il aidera plein de gens MAIS il faut à tout prix jouer la carte de la transparence, voire de l’effacement total du processus et de l’intégration pour que les gens moins “doués” y adhèrent et jouissent de cette chouette idée. (par exemple, en mode simple, juste utiliser une notification qui dit OK ou Erreur et en mode expert, afficher quel fichier est traité, lequel est réussi, lequel est en attente. M. tout le monde si fiche de le savoir, moi j’aime le savoir, tout le monde est content !)

Si vous le désirez, je puis clarifier certaines propositions. Je comprends aussi que vous n’ayez peut-être ni le temps, ni les compétences requises pour faire tout ça (moi même je suis incapable de faire ce que vous avez déjà fait !). C’était juste pour vous inspirer… j’attends votre retour et vos remarques (soyez francs et pertinent, y a probablement (sûrement?) des trucs un peu idiot dans ce que j’ai proposé).

Bon courage pour la suite !

Bien à vous,

Aurélien

2. On Sunday 31 May 2009, 21:43 by JackosKing

Je suis d’accord avec ce qui a été dit précédemment.
Toutes les fonctions sont là, il faut maintenant travailler sur l’ergo et le look pour que ce soit facile à utiliser ;)

Sinon c’est bien!

3. On Sunday 31 May 2009, 22:47 by Aurélien Paulus

Ah et au fait… j’ai des erreurs Java avec Gsplit… je ne l’ai pas sous la main (il faudrait que je reboot) mais Gsplit ne démarrait pas. Comme je l’avais installé via le dépôt, j’avais écarté un problème de dépendances… puis j’ai réessayé avec la console, il manquait qqch (de mémoire) dans /usr………/openjdk-6. Donc je retourne sur le serveur avec tous les paquets, les analyses et les installe manuellement un par un (avant d’avoir installé successivement sun-java-6-jre, openjdk 6 et tout ça) et miracle, Gsplit se lance ! Cool ! Je prends un fichier au hasard (Big Bug Bunny, pour ne pas le citer), je lance la procédure, le programme se tue… hum… et là dans la console une suite de problème monstrueusement “programmés” lié à du java (je sais pas programmer mais j’ai vaguement compris qu’il s’agissait de classes java et de tout le tralala). Enfin, je me trompe peut-être.

D’où ma question : j’ai tout désinstallé et retrouvé mon jaunty tout frais… cmt je fais pour faire tourner Gsplit sans accroc, comme dans le screencast (je veux dire les paquets supplémentaires et tout ça).

Bonne soirée/nuit/journée (biffez la mention inutile) ;-)

4. On Monday 1 June 2009, 03:28 by Guillaume

@Aurélien : Remarques pertinentes, j’en prend note. Le temps, je l’ai, les compétences peut-être pas toutes mais j’ai lancé le projet dans le but d’apprendre avant tout. Pour ce qui est de l’erreur, serait-il possible de la voir. Histoire de voir si c’est de ma faute ou non et donc si je peux corriger en faisant une autre release au plus vite.

@JackosKing : Merci

5. On Monday 1 June 2009, 09:59 by Linitz

Petite question qui n’a pas de rapport avec l’article : C’est quoi ton lecteur video ? C’est la première fois que j’en vois un full javascript.

6. On Monday 1 June 2009, 13:53 by Guillaume

@Linitz : C’est fait pour pouvoir visionner des vidéos au format OGG. Ça s’appelle ITheora.

7. On Monday 1 June 2009, 14:07 by Linitz

Bien sympa comme lecteur, je vais me mettre au ogg moi ^^

Merci pour l’info.

8. On Monday 1 June 2009, 23:32 by Aurélien

Bonsoir,

J’ai installé Gsplit via apt-get install. Il ne se lançait pas. Je lance via le terminal, j’obtiens une erreur car le dossier /usr/lib/jvm/openjdk-6/bin est introuvable.
J’installe donc le paquet openjdk-6-jdk.

Je lance Gsplit, il ne se lance toujours pas. Je lance via le terminal, j’obtiens : (accroche-toi)

aurelien@aurelien-laptop:~$ gsplit
UncaughtException in thread: main
Thread ID = 1
Thread prority = 5
Exception stacktrace:
java.lang.NoClassDefFoundError: org/gnome/gtk/Gtk
at gsplit.GSplit.main(GSplit.java:48)
Caused by: java.lang.ClassNotFoundException: org.gnome.gtk.Gtk
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
… 1 more

T’as du boulot devant toi :-)

9. On Tuesday 2 June 2009, 01:18 by Guillaume

@Aurélien : Ça fait peur mais en fait l’erreur est très explicite et plutôt “simple”. En gros, gSplit demande la dépendance libjava-gnome-java qui installe des fichiers nécessaires pour que gSplit puisse charger la classe “org.gnome.gtk.Gtk”. Sauf qu’ici apparemment la classe est introuvable. Ce n’est pas une erreur au niveau du code source mais c’est peut-être une erreur dans le paquet en revanche qui n’a pas installé certaines dépendances. Quelle distribution utilises-tu ? Dans quelle version ? As-tu essayé d’installer le paquet “libjava-gnome-java” ? Et enfin, peus-tu me mailer ou copier ici le contenu du fichier “/usr/bin/gsplit” ? De toute manière je vais refaire un paquet en forçant l’installation de OpenJDK pour corriger le problème que tu as résolu par toi-même.

10. On Tuesday 2 June 2009, 12:35 by Aurélien

Bon, je copie ici, comme ça si quelqu’un à la même problème il trouvera plus facilement la solution que si je t’envoie ça par mail.

Après l’installation du paquet libjava-gnome-java, effectivement Gsplit se lance (j’étais déjà arrivé à ce résultat dans mes essais passé) mais… lorsque je lance le découpage d’un fichier… il se suicide lol.

Voici le résultat dans le terminal suite à un découpage :

aurelien@aurelien-laptop:~$ gsplit
UncaughtException in thread: main
Thread ID = 1
Thread prority = 5
Exception stacktrace:
java.lang.NoClassDefFoundError: org/freedesktop/dbus/exceptions/DBusException
at gsplit.core.FileAction.<init>(FileAction.java:63)
at gsplit.core.actions.FileSplitter.<init>(FileSplitter.java:49)
at gsplit.gtk.tabs.SplitTab$3.onClicked(SplitTab.java:174)
at org.gnome.gtk.GtkButton.receiveClicked(GtkButton.java:395)
at org.gnome.gtk.GtkMain.gtk_main(Native Method)
at org.gnome.gtk.GtkMain.main(GtkMain.java:57)
at org.gnome.gtk.Gtk.main(Gtk.java:95)
at gsplit.GSplit.main(GSplit.java:65)
Caused by: java.lang.ClassNotFoundException: org.freedesktop.dbus.exceptions.DBusException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
… 8 more

Je suis sous une Jaunty 9.04 toute fraîche.

Ah et le contenu du fichier Gsplit :

#!/bin/sh
cd /usr
exec /usr/lib/jvm/java-6-openjdk/jre/bin/java -client -ea -Djava.library.path=/usr/lib/jni/ -classpath /usr/share/java/gsplit-1.1.1.jar:/usr/share/java/gtk.jar:/usr/share/java/dbus.jar:/usr/share/java/debug-disable.jar:/usr/share/java/debug-enable.jar:/usr/share/java/hexdump.jar:/usr/share/java/unix.jar gsplit.GSplit $*

Merci en tout cas pour la réactivité ;-)

11. On Tuesday 2 June 2009, 15:39 by Guillaume

@Aurélien : Ok maintenant c’est au tour du paquet “libdbus-java” d’être installé. C’est bizarre qu’il n’y soit pas déjà. Tous ces paquets sont des dépendances de gSplit par conséquent elles devraient être installées lors du “aptitude install gsplit”. Ou alors j’ai foiré le paquet :D

12. On Tuesday 2 June 2009, 23:50 by Aurélien

Miracle, ça fonctionne et même rudement bien ! Peut-être devrais-tu en effet vérifier les dépendances de ton paquet…

Sinon, que penses-tu du mode “expert/simplifié” ?

Pour moi, le mode expert peut rester tel qu’il est et évoluer, pour le mode simplifié, dans un premier temps, je vois bien les trois boutons “découpage”, “assemblage” et “vérification” uniquement mais renommé en “découper un fichier”, “assembler un fichier” et vérifier l’intégrité d’un fichier assemblé” (ou dans le menu contextuel si c’est trop long) et pourquoi pas un quatrième bouton “basculer en mode expert”.
Premier constat : au moins il y a de possibilités, au plus c’est facile à utiliser pour M. tout le monde.
Quand l’utilisateur clique sur “découper un fichier”, le programme s’agrandit par exemple et accompagne pas à pas. L’ordre est important. Par exemple, pour l’instant, on a d’abord le choix de la taille. Or, en toute logique, on devrait d’abord inviter l’utilisateur à chercher et indiquer son fichier. Quand c’est fait, seconde ligne : taille des morceaux du fichier (attention, taille des fichiers pourrait prêter à confusion pour un “nul”) avec des modes prédéfinis : email, CD, DVD, (disquette ?). Si le mode prédéfini n’est pas souhaité, proposer “taille personnalisée” et alors faire comme maintenant : saisir la taille et la qualité (Kio, Mio, etc.)
Enfin, dernère étape : où placer les parties => (le modèle de noms par défaut est très bien, M. tout le monde appréciera et ne doit pas se casser la tête pour ça) : dans le même répertoire, sur le bureau, dans un email, dans brasero, autre ?

Hop, ça se fait, n’en parlons plus ! M. tout le monde a réussi à diviser un DVD en plusieurs CD. L’expert lui aura cliqué sur le mode expert, coupé l’image d’OpenSuse de 4,6 Gio en 3,99 Gio pour le sauvegarder sur son disque externe en FAT32… lol

Qu’en penses-tu ? Je m’intéresse beaucoup à l’ergonomie des logiciels, pour avoir donné de nombreux cours à des novices (ma mère, des gens intéressés dans notre LUG, des vieux, des moins vieux…) et je me suis souvent rendu compte que des détails idiots comme “édition>préférences” sont totalement dénués de sens et empêchent toutes prises en main efficace et rapide. Je peux tenter de t’aider et de t’orienter, si tu le désires, et même faire des tests grandeurs nature avec ma mère ou autre non initié ;-)

Bien à toi,

Aurélien

PS : il faudra aussi penser à un mode d’emploi… je veux bien y passer quelques heures, ce serait intéressant d’apprendre comment on fait un mode d’emploi dans un programme…

13. On Wednesday 3 June 2009, 13:26 by Guillaume

@Aurélien : Écoute, tu as des idées très intéressantes donc si tu veux faire partie de l’aventure et m’aider à développer le logiciel ne serait-ce qu’avec tes idées, tu es le bienvenu.

14. On Wednesday 3 June 2009, 18:12 by Aurélien

Cool ;-)

Et bien, je suis partant ! S’il te faut un testeur “lambda”, un documentaliste (oui je sais, le mot est gros), un “vendeur” ?, je suis là ! Tu as mon adresse électronique de toute façon ;-)
Je vais aussi réfléchir à une façon de bien illustrer mes proposition.

15. On Friday 12 June 2009, 23:35 by Vince

Bon des erreurs java de mon coté également avec la version des dépôts :

UncaughtException in thread: main
Thread ID = 1
Thread prority = 5
Exception stacktrace:
org.gnome.glib.FatalError: GLib-CRITICAL
g_bookmark_file_load_from_data: assertion `length != 0’ failed
at org.gnome.gtk.GtkFileChooserButton.gtk_file_chooser_button_new(Native Method)
at org.gnome.gtk.GtkFileChooserButton.createFileChooserButton(GtkFileChooserButton.java:41)
at org.gnome.gtk.FileChooserButton.<init>(FileChooserButton.java:56)
at gsplit.gtk.tabs.SplitTab.<init>(SplitTab.java:102)
at gsplit.gtk.MainWindow.<init>(MainWindow.java:91)
at gsplit.GSplit.main(GSplit.java:61)

16. On Sunday 14 June 2009, 13:53 by Guillaume

@Vince : C’est un bug inattendu de la bibliothèque java-gnome. Je ne peux malheureusement rien y faire directement même si j’y contribue de temps en temps. Bref, je vais rapporter le bug aux auteurs principaux de java-gnome.

17. On Monday 6 July 2009, 22:56 by Philippe

A quand des paquets pour arch ?
Sinon les videos en 800x600 sont presque illisible sur des netbooks. (la resolution est trop grande)
Je suis aussi ok sur le principe de travailler sur l’ergonomie du logiciel.

Sinon bon travail.

18. On Monday 6 July 2009, 23:38 by Philippe

Un petit plus dans le configure L140:

[code]
} elsif ($os eq “arch”) {
$str .= “pacman -S”
[/code]

Malheureusement le paquet: libdbus-java n’existe pas sous arch,

En regardant un PKGBUILD qui avait été fait avant: http://bbs.archlinux.org/viewtopic…. (mais qui ne marche plus puisque les sources n’existent plus aux adresses mentionnés), seul java-runtime et java-gnome sont nécéssaire avec arch.

Je ne connais rien en perl mais est-il possible de faire quelque chose.

Cdlt.

19. On Tuesday 7 July 2009, 14:48 by Guillaume

@Philippe : Il y a une version de gSplit dans AUR. J’ai corrigé le “configure” avec tes infos et quelques autres (voir http://www.respawner.fr/loggerhead/…), Des retours de ce type sont bien utiles ça permettra aux packageurs des différentes distributions de mieux s’en sortir. Concernant l’ergonomie, j’ai commencé à retravailler l’interface (et java-gnome 4.0.12 va pas tarder à pointer son nez ce qui améliorera encore les possibilités). On va travailler également sur une meilleure intégration à GNOME. Je pense en particulier à l’intégration avec Nautilus. Voilà, des nouvelles bientôt j’espère pour montrer l’état d’avancement et un petit aperçu de ce que sera la version 2.