windu.2b Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 Bonjour à tous, Alors voilà : je lance ce topic pour vous parler d'un projet que je réalise depuis quelques temps, et qui pourra peut-être vous être utile aussi. Il s'agit de JCaddie, une application développée en Java et destinée à permettre de gérer ses listes de courses. Je compte donc centraliser dans ce topic toutes les infos, questions, remontées de bugs et demandes de fonctionnalités émanant des INpactiens. Principes de fonctionnement "Si vous êtes comme moi, c'est à dire incapable de faire une liste de courses qui reprenne les produits dont vous avez souvent besoin, et que vous vous apercevez toujours en arrivant chez vous que vous avez oublié le sucre pour le café, voire le café aussi... JCaddie est sera fait pour vous! Oui, mais en quoi consiste JCaddie, exactement? vous dites-vous très certainement (si si: vous vous le dites très certainement)! Et bien il s'agit d'une application que je développe actuellement, et qui permettra de gérer des listes de courses, en proposant d'emblée toute une flopée de produits et de catégories de produits, liste qui sera bien évidemment extensible par l'utilisateur. Ainsi, vous pourrez créer une nouvelle liste de courses, en compléter une déjà existante par simple D&D, créer des templates, gérer les prix des produits (avec possibilité du suivi de l'évolution des prix), et bien sûr pouvoir connaître à l'avance le prix des courses que l'on s'apprête à faire. Pour plus d'informations, je vous invite à consulter ces quelques billets Liste des fonctionnalités Afin de centraliser les informations, les fonctionnalités répertoriées sont listées ici Liste des bugs connus Afin de centraliser les informations, les bugs répertoriés sont listés ici Dernière version publique La dernière version publiée est la 0.2.90 (future 0.3) (Toutes les versions déjà publiées sont disponibles ici) F.A.Q. Sous quelle licence JCaddie est-il distribué ?JCaddie est distribué sous licence GPL v3 ou supérieure. JCaddie est-il gratuit ?Oui, JCaddie est et sera toujours distribué gratuitement. Quels sont les dépendances de JCaddie ? JCaddie nécessite Java 5 ou supérieur, ainsi que 3 librairies : hsqldb.jar AppleJavaExtensions.jar log4j-1.2.15.jar Pour l'instant, seule la JVM de Sun a été vraiment testée. Des retours à partir d'autres JVM m'intéressent. [*] Comment se procurer le code-source de JCaddie ? JCaddie est un logiciel libre, son code-source sera donc toujours librement accessible. On peut se procurer la toute dernière version du code (le "trunk") à partir de ce dépôt SVN : svn co svn://svn.gna.org/svn/jcaddie/trunk jcaddie ATTENTION ! Le code situé dans "trunk" est toujours compilable, mais n'est pas toujours exécutable correctement ! Des bugs peuvent apparaître et il est donc conseillé de ne l'utiliser que si vous savez ce que vous faites ! Vous pouvez aussi télécharger les versions distribuées depuis le site Web les hébergeant. À partir de la version 0.3, des paquets (.tar.gz et .zip) avec et sans les sources incluses seront proposés. [*] Où puis-je trouver de la documentation sur JCaddie ? Actuellement, la documentation n'a pas encore été mise en ligne. Elle le sera pour la version 0.3, le temps de toute mettre au "propre". Vous y trouverez : La Javadoc ; Les diagrammes de classes ; Les schémas et structures des bases de données (pour la sauvegarde des catalogues et des caddies). [*] Puis-je participer ? Oui, les participations sont les bienvenues. Actuellement, je suis le seul développeur (mais je n'exclue pas d'autoriser d'autres codeurs), cependant vous pouvez apporter votre contribution de nombreuses façons : En testant l'application et en me remontant les bugs rencontrés (ne pas oublier de fournir la pile d'exceptions, afin que je puisse plus facilement identifier le bug) En proposant des fonctionnalités qui vous intéressent En écrivant des patchs de code (cf. "Comment se procurer le code-source de JCaddie ?") En faisant de la pub pour JCaddie En proposant des améliorations graphiques (logo, maquette de l'interface graphique...) Lien vers le commentaire Partager sur d’autres sites More sharing options...
kran Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 Allé! maintenant au boulot! mais pourquoi tu l'as mis dans BlaBla?? parce que tu sais que ca va flooder? Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 D&D Le mec qui se fait chier à créer une balise acronym au lieu d'écrire Drag & Drop tout connement Sinon je suis également favorable au déplacement du topic vers la section prog, avec l'autorisation de son auteur. Lien vers le commentaire Partager sur d’autres sites More sharing options...
nemesis93_75 Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 Une question, j'arrive pas à le lancer sous mac? il me dit "The jar file JCaddie-0.2.1.jar couldn't be launched." tu pense savoir pourquoi? Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 4 mars 2008 Auteur Partager Posté(e) le 4 mars 2008 mais pourquoi tu l'as mis dans BlaBla??parce que tu sais que ca va flooder? Pour toucher un maximum de monde en fait. Mais c'est vrai que j'ai hésité... Et puis je me suis dit qu'il n'y aura pas que des développeurs qui seront intéressés. Mais bon, si les modos pensent qu'il vaut mieux déplacer en "prog", oki Une question, j'arrive pas à le lancer sous mac? il me dit "The jar file JCaddie-0.2.1.jar couldn't be launched."tu pense savoir pourquoi? Hummm... tu l'as lancé en double-cliquant ou en exécutant la commande ? Si premier cas, essaye avec la commande (après t'être placé dans le bon répertoire) et copie/colle ici les éventuelles erreurs générées, stp Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 Moi je ne pense pas, je fais ce qu'on me demande. À toi de voir où tu préfères mettre ton sujet. Rien ne t'empêche de faire de la "pub" ensuite dans blabla. Ou alors dans le bar de la prog pour ici. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 4 mars 2008 Auteur Partager Posté(e) le 4 mars 2008 Moi je ne pense pas, je fais ce qu'on me demande. À toi de voir où tu préfères mettre ton sujet. Rien ne t'empêche de faire de la "pub" ensuite dans blabla. Ou alors dans le bar de la prog pour ici. Ben, si possible j'aimerais que le topic reste dans "Bla Bla" (si cela ne va pas à l'encontre des règles habituelles), car mon appli ne vise pas que des développeurs, loin de là même. Lien vers le commentaire Partager sur d’autres sites More sharing options...
maxxim Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 et voila mon démarrage de jcaddie : maxime@maxime-desktop:~/jcaddie$ java -jar JCaddie-0.2.1.jar r��cup��ration:/tmp/7912 JdbcOdbcDriver class loaded registerDriver: driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@19bd03e] DriverManager.initialize: jdbc.drivers = null JDBC DriverManager initialized registerDriver: driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@84abc9] DriverManager.getConnection("jdbc:hsqldb:file:/tmp/7912") trying driver[className=sun.jdbc.odbc.JdbcOdbcDriver,sun.jdbc.odbc.JdbcOdbcDriver@19bd03e] *Driver.connect (jdbc:hsqldb:file:/tmp/7912) trying driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@84abc9] getConnection returning driver[className=org.hsqldb.jdbcDriver,org.hsqldb.jdbcDriver@84abc9] requete:SELECT OID, NAME FROM CATEGORY ORDER BY NAME SELECT OID, NAME, POIDS, XCATEGORY, UNIT.NAME AS XUNIT, (SELECT VALUE FROM PRICE, PRODUCT WHERE XPRODUCT=PRODUCT.OID ORDER BY DATEDEB DESC LIMIT 1) AS VALUE FROM PRODUCT, UNIT WHERE UNIT.OID=PRODUCT.OID ORDER BY XCATEGORY ASC,NAME ASC requete: SELECT OID, NAME, POIDS, XCATEGORY, UNIT.NAME AS XUNIT, (SELECT VALUE FROM PRICE, PRODUCT WHERE XPRODUCT=PRODUCT.OID ORDER BY DATEDEB DESC LIMIT 1) AS VALUE FROM PRODUCT, UNIT WHERE UNIT.OID=PRODUCT.OID ORDER BY XCATEGORY ASC,NAME ASC log4j:WARN No appenders could be found for logger (org). log4j:WARN Please initialize the log4j system properly. 1.95 1.95 Exception in thread "main" java.lang.IllegalArgumentException: No enum const class org.windu2b.jcaddie.model.UserPreferences$Unit.L at java.lang.Enum.valueOf(Enum.java:192) at org.windu2b.jcaddie.model.UserPreferences$Unit.valueOf(UserPreferences.java:70) at org.windu2b.jcaddie.io.FileUserPreferences.<init>(FileUserPreferences.java:49) at org.windu2b.jcaddie.Main.<init>(Main.java:42) at org.windu2b.jcaddie.Main.createApplication(Main.java:298) at org.windu2b.jcaddie.Main.main(Main.java:128) pas spécialiste en java je fais peut-être une couille... Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 4 mars 2008 Auteur Partager Posté(e) le 4 mars 2008 et voila mon démarrage de jcaddie : ... pas spécialiste en java je fais peut-être une couille... Oki, je suis sur le coup. Je regarde ça ce soir, merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 et voila mon démarrage de jcaddie : ... pas spécialiste en java je fais peut-être une couille... Oki, je suis sur le coup. Je regarde ça ce soir, merci j'ai la même erreur que je t'avais déjà CC sur ton dossier pour info : $ java -versionjava version "1.6.0_03" Java SE Runtime Environment (build 1.6.0_03-b05) Java HotSpot Client VM (build 1.6.0_03-b05, mixed mode) Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 4 mars 2008 Auteur Partager Posté(e) le 4 mars 2008 et voila mon démarrage de jcaddie : ... pas spécialiste en java je fais peut-être une couille... Oki, je suis sur le coup. Je regarde ça ce soir, merci j'ai la même erreur que je t'avais déjà CC sur ton dossier En effet Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredragon Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 Alors, pour les interpréteurs autre que sun, avec gij 4.2, ca ne marche pas. pour la version sun, j'utilise java 6, et la ca marche (enfin, ca va jusqu'à l'erreur vue ci-dessus ). Concernant le gij, je remet un résumé du lien sur ce problème que windu m'a filé par mp l'autre jour : En cas d'erreur Cannot load AWT toolkit: gnu.java.awt.peer.gtk.GtkToolkit pour ma part c'est parce qu'il voulais utiliser gij au lieu de sun java.Pour vérifier quelle interpréteur java est utilisé par défaut : sudo update-alternatives --config java , ca liste ce qu'il y a, avec une étoile devant celui par défaut. pour changer (et mettre sun java 6 dans mon cas) il faut taper le numéro de la ligne correspondante, et c'est bon. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 4 mars 2008 Auteur Partager Posté(e) le 4 mars 2008 Bon, j'ai déjà corrigé plusieurs petits bugs, tels que : Problème d'encoding lors de la lecture des bases de données ; Problème bloquant concernant les Unit (celui que plusieurs d'entre vous ont rencontré). Et j'ai aussi détecté d'autres bugs. Entre autre, ma requête SQL qui récupère les produits et leur dernier prix respectif n'est pas correcte du tout ! D'ailleurs, je vous la c/c ici, si quelqu'un a une idée de comment résoudre cela : SELECT OID, NAME, POIDS, XCATEGORY, UNIT.NAME AS XUNIT, (SELECT VALUE FROM PRICE, PRODUCT WHERE XPRODUCT=PRODUCT.OID ORDER BY DATEDEB DESC LIMIT 1) AS VALUE FROM PRODUCT, UNIT WHERE UNIT.OID=PRODUCT.OID ORDER BY XCATEGORY ASC, NAME ASC Le problème semble venir de la requête imbriquée : je cherche à récupérer le dernier prix connu pour le produit désigné par la requête "supérieure", mais mes clauses ne doivent pas être correctes (pas sûr d'être bien clair ) Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredragon Posté(e) le 4 mars 2008 Partager Posté(e) le 4 mars 2008 j'aurai fais un truc comme ca : select product.oid, product.name, product.poids, product.xcategory, unit.name as xunit, price.value from product, unit, price where unit.oid=product.xunit and product.oid=price.xproduct and price.oid=(select top 1 oid from price where xproduct=product.oid order by date desc) order by xcategory asc, name asc mais bon, il doit y avoir mieux que les requetes corrélées pour les perfs (avec un inner join, c'est pas jouable?). puis bon, c'est du bricolage, j'ai pas testé ni rien, faut l'adapter au besoin et corriger les éventuels oubli / erreurs. juste un truc, dans le schéma que tu avais fourni, dans la table price, tu as une colonne date, or on vois datedeb dans ta requète... des fois que ca vienne de la tout simplement... sinon, c'est le schéma qui est pas à jour! Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 5 mars 2008 Auteur Partager Posté(e) le 5 mars 2008 j'aurai fais un truc comme ca : select product.oid, product.name, product.poids, product.xcategory, unit.name as xunit, price.value from product, unit, price where unit.oid=product.xunit and product.oid=price.xproduct and price.oid=(select top 1 oid from price where xproduct=product.oid order by date desc) order by xcategory asc, name asc mais bon, il doit y avoir mieux que les requetes corrélées pour les perfs (avec un inner join, c'est pas jouable?). puis bon, c'est du bricolage, j'ai pas testé ni rien, faut l'adapter au besoin et corriger les éventuels oubli / erreurs. juste un truc, dans le schéma que tu avais fourni, dans la table price, tu as une colonne date, or on vois datedeb dans ta requète... des fois que ca vienne de la tout simplement... sinon, c'est le schéma qui est pas à jour! Le schéma est incorrect sur ce point (je l'avais fait de tête au boulot, alors que mes brouillons sont chez moi). De toute façon, j'aurais carrément eu une erreur SQL s'il y avait erreur dans le nommage des champs. Là, ça récupère des données, mais pas du tout comme je le voudrais (ça ne me récupère que 4 produits dans "Fruits & légumes" au lieu de 10-12, et ils ont tous le même prix, qui n'est correct que pour un seul d'entre eux)... Je testerai ce soir la requête que tu proposes, on verra ce que ça donne. Merci bien Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 5 mars 2008 Auteur Partager Posté(e) le 5 mars 2008 Tiens, question conne : un librairie sous licence (entre autre) LGPL peut-elle être couplée à un programme sous licence GPL ? Car j'ai repéré récemment SwingX, dont certains trucs peuvent m'intéresser, mais je ne voudrais pas faire le con avec les licences... Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 5 mars 2008 Partager Posté(e) le 5 mars 2008 Si tu ne fais que linker la librairie, c'est bon, si tu copie du code, il faut que tu relicencies. http://gplv3.fsf.org/dd3-faq#documentContent Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 5 mars 2008 Auteur Partager Posté(e) le 5 mars 2008 Si tu ne fais que linker la librairie, c'est bon, si tu copie du code, il faut que tu relicencies. http://gplv3.fsf.org/dd3-faq#documentContent Donc des appels aux classes et méthodes de SwingX, ça passerait... Par contre, interdiction formelle pour moi de modifier le code de SwingX, j'ai bon ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
lorinc Posté(e) le 5 mars 2008 Partager Posté(e) le 5 mars 2008 exact Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 5 mars 2008 Auteur Partager Posté(e) le 5 mars 2008 Bon, ça y est presque... SELECT OID, NAME, POIDS, XCATEGORY, UNIT.NAME AS XUNIT, PRICE.VALUE FROM PRODUCT, UNIT, PRICE WHERE UNIT.OID=PRODUCT.OID AND PRODUCT.OID=PRICE.XPRODUCT AND PRICE.XPRODUCT= (SELECT TOP 1 PRICE.XPRODUCT FROM PRICE WHERE XPRODUCT=PRODUCT.OID ORDER BY DATEDEB DESC) ORDER BY XCATEGORY ASC, NAME ASC Cette requête me renvoie bien les prix et les produits comme il faut, sauf si le produit a plusieurs prix. Dans ce cas, elle renvoie le premier prix (chronologiquement), et même en mettant ASC a lieu de DESC dans la requête imbriquée Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 6 mars 2008 Partager Posté(e) le 6 mars 2008 Non tu peux recopier du lgpl (toutes versions) dans ton code, mais il faut relicencier en GPL V3. Par contre, tu ne peux pas utiliser du code en GPL V2 only (que ce soit pour une lib ou une copie de code). Du V2 ou later ça va par contre. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 6 mars 2008 Auteur Partager Posté(e) le 6 mars 2008 Non tu peux recopier du lgpl (toutes versions) dans ton code, mais il faut relicencier en GPL V3.Par contre, tu ne peux pas utiliser du code en GPL V2 only (que ce soit pour une lib ou une copie de code). Du V2 ou later ça va par contre. Ah oki... Bon ben me voilà rassuré sur tous les points. JCaddie repose aussi sur du code "GPL v2 or later" (tiré de Sweet Home 3D), mais ça je savais que j'avais le droit de publier en GPL v3+. Tiens, dernière petite question d'ordre légale : pour les fichiers venant de Sweet Home 3D, et initialement publiés en GPL2+, dois-je laisser la licence telle quelle ou la modifier pour marquer GPL3+ ? Exemple : /* * HomeFrameController.java 1 sept. 2006 * * Copyright © 2006 Emmanuel PUYBARET / eTeks <info@eteks.com>. All Rights Reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ // déclaration du package et des imports /** * Home frame pane controller. * @author Emmanuel Puybaret */ public class HomeFrameController extends HomeController { public HomeFrameController(Home home, HomeApplication application) { super(home, application); new HomeFramePane(home, application, this).displayView(); } } On y voit l'auteur cité, et la date de création du fichier... dois-je mettre à jour en rajoutant mes informations ou en écrasant complètement les siennes ? Je penche pour le premier choix (sachant que j'ai en fait renommé et adapté la classe, là on ne voit que le fichier d'origine). Lien vers le commentaire Partager sur d’autres sites More sharing options...
theocrite Posté(e) le 6 mars 2008 Partager Posté(e) le 6 mars 2008 Tu gardes les infos bien sûr, il conserve toujours ses droits d'auteur sur le code qu'il a produit. Par contre tu supprimes GPLV2 pour remplacer par GPLV3. Et tu rajoutes ton nom si tu fais des modifs dedans. Tup eux même mettre un lien "based on ... from" pour dire sur quoi tu t'es appuyé. Lien vers le commentaire Partager sur d’autres sites More sharing options...
windu.2b Posté(e) le 6 mars 2008 Auteur Partager Posté(e) le 6 mars 2008 Tu gardes les infos bien sûr, il conserve toujours ses droits d'auteur sur le code qu'il a produit. Par contre tu supprimes GPLV2 pour remplacer par GPLV3. Et tu rajoutes ton nom si tu fais des modifs dedans.Tup eux même mettre un lien "based on ... from" pour dire sur quoi tu t'es appuyé. Oki Lien vers le commentaire Partager sur d’autres sites More sharing options...
Aoren Posté(e) le 7 mars 2008 Partager Posté(e) le 7 mars 2008 si j'ai bien compris, après tu imprimes ta liste de courses si oui ca va à l'encontre de l'environnement ca vas y que je t'imprime une liste format a4 tous les samedi (soit 52 feuilles par an, 520 pour 10 ans, 5200 pour 100 ans, 52.000 pour 1.000, etc....) je précise hein ! perso je fais mes listes de courses sur mes tickets de caisse enfin bon, bravo quand même Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.