Le pub des programmeurs
- 1 927 réponses
- 117 participants
- 131 732 vues
- 130 followers

Anonyme



Captain Niglo

C'est vachement pratique Excel pour faire des trucs comme ca
Avant j'étais prétentieux, maintenant je suis parfait.
SoundCloud | Stompin at decca | I can't give you anything but love

Djardin

Bon, un autre problème, pour le lol :
On utilise un logiciel de gestion de version (SVN), couplé à de l'intégration continue (Jenkins) pour lancer les tests automatiques.
Pour les tests justement, on a des fichiers de configuration :
genre moi, j'ai le chemin qui est D:/projet/pouet, je vais sur la base de données BaseDeDonnéesDjardin, et je garde la sécurité (une option dans un web.xml)
un collègue aura C:/workspace/pouet et baseDeDonnéesCollègue.
Et Jenkins aura C:/Jenkins_home/projets/pouet, basededonnéesJenkinsTests et pas de sécurité.
Donc ça nous fait 4-5 options à modifier, dans 3-4 fichiers. rien de grave. seulement quand on commite, si on change autre chose dans ces fichiers, on doit les commiter, et ça fout tout en carafe.
Vous avez une solution ?
En gros, je pensait à faire un seul fichier de config, et lancer avant la compilation un script qui recopie les paramètres de conf aux bons endroits, en lisant l'unique fichier de conf (qui lui ne sera pas commité). On bosse avec Maven.
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

Nyl auster

Citation :Vous avez une solution ?
non mais, même si visiblement j'arrive trop tard, faut vraiment éviter d'utiliser SVN, y'a des outils modernes de versionning tel que git qui permettent de faire des branches sans souffrir le martyr; et de faire des "tags" de livraisons sans copier tout ton trunk et faire un merge sans faire un conflit tous les 5 minutes
svn, c'est le seul outil qui fait des conflit même quand t'es le seul à commiter sur ton projet

Djardin

Hors sujet :
On en avait un peu discuté.
Et il en est ressorti que GIT, c'est bien si justement du veux avoir 35 versions différentes, avec branches, tags, etc.
Là, on bosse en intégration continue, en Agile, donc une seule et unique branche, et on tague uniquement à la livraison, pour en garder une copie, mais on bosse sur la même base, tous ensemble.
Dans ce que j'ai compris, le plugin Maven assembly pourrait faire un truc. ou alors utiliser des profils de maven....
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

miles1981

Pas une superbe idée SVN en Agile. Git ou MErcurial, OK, mais pas SVN. On intègre pas efficacement. Et une branche pour un dev agile, c'est beurk. Impossible de commiter à la fin de la journée proprement (ce qui est déjà en soi une énormité) sans devoir déjà merger avec le premier qui a commité.
Et oui, il faut que ces paramètres de conf soient à l'extérieur et pas géré par ton VCS, quel qu'il soit.
Audio Toolkit: http://www.audio-tk.com/

Djardin

Bon, mon problème évolue :
sur Jenkins, Maven lance le build. j'ai rajouté 3 lignes dans le pom.xml pour lui dire de remplacer les propriétés par celle du serveur jenkins. je modifie donc avant de compiler toutes les ressources qui m’intéressent.
Par contre, sur Eclipse, dès que je modifie un fichier, et le sauvegarde, il est automatiquement recopié dans un dossier target, pour être lancé sur le serveur. ça ne passe pas par une commande maven, et donc, ça ne modifie pas mes putains de sa mère de ressources.
Vous savez comment configurer ça ? c'est un projet WTP. on a lancé une commande maven à l'initialisation du projet sous eclipse : "mv eclipse:clean eclipse:eclipse -Dwtpversion=2.0", et c'est tout.
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

Anonyme

Je bosse sur un projet, et j'ai besoin de récupérer une donnée midi afin de la convertir en une tension après.
Flowcode a des fonctions entièrement dédié au midi (chouette !) mais je ne comprends pas comment l'utiliser

Ha oui, je bosse avec un pic.

Rémy M. (chimimic)

récupérer une donnée midi afin de la convertir en une tension
Si tes données MIDI sont de simples notes, tu peux récupérer la valeur de la note (deuxième octet de la trame) ou la valeur de la vélocité (troisième et dernier octet de la trame). Cette valeur, comprise entre 0 et 127 peut ensuite être utilisée pour attaquer un convertisseur N/A (numérique / analogique) basique - un simple réseau R/2R suffit si tu dispose d'assez de sorties sur ton PIC.
Je n'utilise pas FlowCode mais s'il gère le MIDI (une simple liaison série en fait), tu devrais pouvoir récupérer l'ensemble des octets reçus et travailler dessus, au fil de l'eau ou en passant par un tampon (buffer) intermédiaire. Tout dépend du flux de données MIDI qui arrivent sur ton uC.
Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com
[ Dernière édition du message le 22/11/2012 à 19:46:31 ]

Anonyme

Je vais voir si je peux faire ça sans utiliser leur fonction. Merci


Zerosquare

tu peux récupérer la valeur de la note (deuxième octet de la trame) ou la valeur de la vélocité (troisième et dernier octet de la trame)
Au minimum, il faut aussi filtrer les messages temps réel (qui peuvent être intercalés en plein milieu de la trame), en particulier l'Active Sensing.
un simple réseau R/2R suffit si tu dispose d'assez de sorties sur ton PIC
[ Dernière édition du message le 23/11/2012 à 00:39:32 ]

Captain Niglo



Avant j'étais prétentieux, maintenant je suis parfait.
SoundCloud | Stompin at decca | I can't give you anything but love

Zerosquare


Rémy M. (chimimic)

Pour l'active sensing (et autres temps réel) tout à fait d'accord aussi, je filtre systématiquement à chaque octet reçu.
Allez, bonne continuation

Formateur en techniques sonores ; électronicien ; auteur @ sonelec-musique.com

Djardin

Bon, ben je semble avoir régler mon problème, en faisant un beau paquet de profile sur maven.
en gros, les propriétés ne sont pas précisé.
Jenkins lance Maven, et les rempli, hop, on est content, tout marche.
Pour nous, chaque fois qu'on modifie un des 4 fichiers (donc très rarement, puisque c'est 4 fichiers de confs sur 400 fichiers de code), ben on lance une petit coup de maven à nous pour mettre à jour. ça ira bien.
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

Djardin

Des gens ici s'y connaissent en Junit ?
c'est censé faire des tests automatique, et si la fonction plante, dire "houlala, la fonction ne marche pas".
là, j'ai un gros problème : pour une des fonctions, j'ai une exception. et au lieu d'avoir un "faillure" ou "error", j'ai juste l'exception, qui arrète tout Junit, donc ne lance pas tout les tests suivants, ne dit pas que celui là ne marche pas, et plante, c'est tout.
ça dit quelque chose à quelqu'un ?
(note : je ne veux pas corriger le bug qui lance l'exception dans mon programme, je veux que Junit considère que le test est loupé, et me dise "faillure", et passe au test suivant. parce que là, le test n'est pas indiqué, donc c'est mis comme succès, vu que tout les autres tests sont passés)
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

VvSurLeRiddim


miles1981

Audio Toolkit: http://www.audio-tk.com/

Djardin

C'est jsutement ça mon problème, le test est censé remonté une exception, et en fait, non.
l'erreur, c'est :
Citation :
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [../applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [../applicationContext.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:126)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:92)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:467)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:397)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.xxxx.yyyy.server.ServiceManager.init(ServiceManager.java:137)
at com.xxxx.yyyy.server.ServiceManager.getInstance(ServiceManager.java:119)
at com.xxxx.yyyy.server.ServiceManager.getInstance(ServiceManager.java:104)
at com.xxxx.yyyy.server.services.acars.AcarsParserService.getMessageType(AcarsParserService.java:814)
at com.xxxx.yyyy.server.services.acars.AcarsParserService.parseHeader(AcarsParserService.java:799)
at com.xxxx.yyyy.server.services.TestAcarsParser.testHeaderParserOnDep(TestAcarsParser.java:119)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:53)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:123)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:104)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164)
at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110)
at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172)
at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70)
Caused by: java.io.FileNotFoundException: class path resource [../applicationContext.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:158)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
... 48 more
Junit aurait un rapport avec Spring ? que faire planter spring ferait aussi planter Junit ?
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

Zerosquare



miles1981

Audio Toolkit: http://www.audio-tk.com/

Anonyme


Pour ma part je suis plus programmation web ( PHP ) si on peux appeler ça de la programmation. Sinon comme tout bon enfant de l'internet j'ai déjà essayé de faire parler mon ordinateur avec des modules pythons


Djardin

Citation de : miles1981
Apparemment, tu as un souci avec une classe de ta GUI qui est initialisée dans ton service, ou un truc qui utilise une description xml mais qui n'est pas trouvée. Peut-être parce que cette définition est dans la config de ton appli, mais tu exécutes ton test dans un dossier local qui n'a pas cette définition ?
Ouaip, je pense que c'est ça.
le problème, c'est que Junit devrait dire "fichier absent, donc le test est loupé, test en echec +1." au lieu de ça, Junit dit "argg, abandonne tout, et fait comme s'il ne s'était rien passé".
Donc corriger le programme, ça, c'est faisable. par contre, c'est corriger le fonctionnement de Junit qui m'arrangerait grandement.
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

miles1981


Audio Toolkit: http://www.audio-tk.com/

Djardin

Bug report ? à Junit ? genre personne n'a eu de problème comme ça avant moi ?
Référence en matière de bon gout capillaire et vestimentaire.
homme à tête de zizi.

miles1981

Audio Toolkit: http://www.audio-tk.com/
- < Liste des sujets
- Charte