Tous les articles par Alexandre

Python avec Pycharm

Pour mes débuts en Python, J’utilise l’IDE pycharm disponible sur :

http://www.jetbrains.com/pycharm/download

Cet IDE est basé sur la plateforme de IntelliJ IDEA de Jetbrains. Il est très complet et propose les même fonctionnalités que Resharper pour C#.

Par rapport Eclipse ou Wing IDE, rien que l’ajout des imports me fait l’aimer.

On peut bien sûr l’améliorer en rajouter des live templates comme le fait Peter Hoffmann sur son excellent blog:

http://peter-hoffmann.com/2010/python-live-templates-for-pycharm.html

Mes raccourcis préférés:

Ctrl+N : chercher une classe

Ctrl+shift+N: chercher un fichier

Ctrl+shift+A: chercher une action

Ctrl+Alt+R: lancer manage.py

La liste complète des raccourcis: http://www.jetbrains.com/pycharm/docs/PyCharm_ReferenceCard.pdf

La liste complète des fonctionnalités:

http://www.jetbrains.com/pycharm/features/index.html

Si vous avez des problèmes de performance essayez toujours les trucs et astuces pour intelliJ:

http://j2eeblogger.blogspot.com/2007/10/intellij-idea-performance.html

Test unitaire Resharper + NUnit + VS 2010

Pourquoi des tests unitaires?

Pour tout un tas de raisons. En vrac:

  • permet de définir rapidement une spec
  • oblige à réfléchir avant de coder
  • la maintenance est simplifiée, si on a une bonne couverture de test unitaire, il suffit de relancer nos tests pour détecter les régressions.
  • être sûr de la qualité de ce que l’on envoie en production

en gros que des avantages…

Pourquoi Resharper pour les test unitaires?

Le plugin Resharper pour Visual Studio propose, entre autre, une interface d’exécution pour les tests unitaire.

Le problème

passer de Visual Studio 2008 à Visual Studio 2010.

Pourquoi est-ce un problème?

Le problème est une limitation de Visual Studio 2010, voir MS Connect Bug pour les détails http://connect.microsoft.com/VisualStudio/feedback/details/453668/cant-change-target-framework-for-test-project-in-vs2010
Cette limitation impose de passer les projets de test en .Net 4.0 ce qui peut avoir quelques effets de bord, surtout quand on utilise des lib externes.

Solution 1
Si vous le pouvez, passez vos projets de test en 4.0. Vous pourrez continuer d’exécuter dans VS 2010 vos tests unitaires avec resharper.

Solution 2
Si vous êtes dans mon cas, où vous des dépendances sur des libs en 3.5 ou de la post compilation n’acceptant pas un mix de version, je vous propose de passer en ligne de commande avec par exemple quelque chose comme:

RunUnitTest.cmd

@echo off
setlocal enabledelayedexpansion

set __UnitLib.1="C:\ProjUnitTestPath\bin\Debug\LibTest1.dll"
set __UnitLib.2="C:\ProjUnitTestPath\bin\Debug\LibTest2.dll"
set __UnitLib.3="C:\ProjUnitTestPath\bin\Debug\LibTest3.dll"

FOR /F "tokens=2* delims=.=" %%A IN ('SET __UnitLib.') DO (
ECHO Unit Test: %%A = %%B
if !__UnitLibAll!=="" ( set __UnitLibAll=%%B
) else set __UnitLibAll=!__UnitLibAll! %%B
)
ECHO Unit Tests: %__UnitLibAll%

"C:\Program Files (x86)\NUnit 2.5.3\bin\net-2.0\nunit-console-x86.exe" %__UnitLibAll%

Vous pouvez bien sûr faire générer à NUnit un fichier xml de résultat interprétable par un serveur d’intégration continue comme Hudson avec le paramètre « /xml=nunit-result-output.xml ».

Solution 3

Vous avez aimé la ligne de commande pour exécuter l’ensemble des tests, mais vous ne la trouvez pas très pratique pour mettre des break points?
Une solution consiste à attacher le programme NUnit à la bibliothèque de test unitaire…

Etapes à suivre:

  1. Click droit sur votre projet de test -> Properties
  2. Allez dans l’onglet Debug
  3. Sélectionnez « Start external program » et remplir avec « C:\Program Files (x86)\NUnit 2.5.3\bin\net-2.0\nunit-console.exe »
  4. Dans « Command line arguments » insérez le nom complet de votre assembly exemple « truc.toto.test.dll »

Pour débugger:
Click droit sur le projet -> Debug -> Start new instance

Pour exécuter seulement quelques-uns des tests, ajouter l’option « /runselected »

Solution 4

Vous pouvez attacher la GUI de NUnit à Visual Studio en mode debug. Ceci vous permettra de sélectionner vos tests unitaires.
NUnit Gui

Solution 5 (Mise à jour du 12/02/2011)

Enfin, vous pouvez toujours faire cohabiter une solution de projet Visual studio 2010 avec une solution Visual studio 2008.
Pour cela,

  1. vous ne touchez pas à votre solution Visual studio 2010.
  2. créez un sous répertoire ‘UnitTest’ dans votre arborescence de solution.
  3. dans ce répertoire, créez une nouvelle solution vierge avec Visual Studio 2008
  4. à partir de Visual Studio 2008 ajouter vos projets de test unitaires et leurs dépendances aux strict minimum, le compilateur reprenant le contenu du répertoire d’exécution préexistant.

A part quelques warnings vous disant que Visual studio 2008 ne peut pas compiler du .Net 4, tout devrait marcher.

Installer Java sur un NAS Synology DS210+

UPDATE: 25/09/2011 – Corrections des paths

WARNING: On the right side, you can translate this article with « Google Translate »,
BE CAREFUL, Google modify paths and names. For good scripts, thank you for using the French original.

But:

Installer Java sur un NAS Synology DS210+ et équivalent avec processeur PowerPC SPE également connu sous le nom de « e500″/ »MPC8500 » et « e200″/ »MPC5xx ».

Problèmes:

  • Synology ne fourni pas de package java compatible ou fonctionnel.
  • Toucher le moins possible à la configuration du nas.

Solution possible:

Trouver une distribution linux compatible PowerPC SPE avec par exemple OpenJDK et l’installer en chroot sur le nas.

Prérequis:

  • Un NAS à base de PowerPC SPE
  • une connexion ssh configurer vers le NAS.

Version rapide:

Télécharger l’ archive du répertoire préconfiguré avec OpenJdk d’une distribution linux Debian pour architecture PowerPC SPE:

[download id= »1″]

ou

[download id= »2″]

Décompresser cette archive sur votre nas sous le répertoire /volume1/@local/debian et créer les points de montages correspondant:

NAS> mkdir -p /volume1/@debian
NAS> cp chrootgnuspe_OpenJDKPublic.tgz /volume1/@debian
NAS> cd /volume1/@local/debian
NAS> tar xzvf chrootgnuspe_OpenJDKPublic.tgz
NAS> mkdir -p /opt/debian

vous devez donc avoir /volume1/@debian/chrootgnuspe/bin, /volume1/@debian/chrootgnuspe/boot, …etc.
le ‘@’ évite que ce répertoire soit visible dans des partages réseaux.

il ne nous reste plus qu’à monter ce répertoire en chroot…

Pour nous simplifier la tâche, 2 scripts.
initDebChroot.sh sert à initialiser cette nouvelle installation au démarrage.

#!/bin/ash
mount -o bind /volume1/@debian /opt/debian
mount -o bind /dev /opt/debian/chrootgnuspe/dev
mount -o bind /proc /opt/debian/chrootgnuspe/proc
chroot /opt/debian/chrootgnuspe /bin/bash

loadDebChroot.sh permettant de se reconnecter en chroot, on aurait pu faire un alias, mais un des buts est de ne pas modifier le nas.

#!/bin/ash

chroot /opt/debian/chrootgnuspe /bin/bash

Nous allons maintenant tester notre plateforme.

Commençons par monter tout le nécessaire et changer de répertoire racine (chroot):

Nas>./initDebChroot.sh

Nous voici dans notre environnement debian.
Dans l’archive précédemment téléchargée se trouve un hello world en java, testons-le.

#cd /root
~# ll
total 12
-rw-r--r-- 1 root root  421 Nov 11 22:13 FirstApp.class
-rw-r--r-- 1 root root  109 Oct 19 22:06 FirstApp.java
~# javac FirstApp.java
~# java FirstApp
Hello World
~#

Voilà, vous avez un kit de développement java fonctionnel sur votre nas !!

Etant basé sur une distribution debian, vous pouvez utiliser toutes les commandes de gestion de paquet, apt-*. Vous pourrez ainsi en faire un serveur web avec jetty, tomcat, installez svn, git, un serveur dns, et que sais-je.

Amusez-vous bien.

Remerciements:
Rien n’aurait été possible sans le travail de Sebastian Andrzej Siewior pour son portage vers PowerPC SPE et de ces posts sur http://lists.debian.org/debian-powerpc/2009/02/msg00128.html . Il m’a permis de bénéficier d’une distribution complète sur ce nas et d’en faire une plateforme de dev utilisable.

Références:
http://wiki.debian.org/PowerPCSPEPort

A venir, une version plus détaillée de ce tutorial expliquant comment générer soit-même ce répertoire.