jeudi 28 novembre 2013

Créer un utilisateur SNMP v3

La configuration d'un service SNMP est assez compliquée. J'ai mis pas mal de temps pour trouver une source intéressante (et surtout simple à suivre) alors je vous la file : http://www.bortzmeyer.org/snmp-v3-inciga-cacti.html. Le gars est un passionné de l'analyse des RFC (entre autres) !

Voici en résumé ce qu'il y a à retenir :
sudo apt-get install snmpd snmp
Seul snmpd est nécessaire pour le serveur, mais le client snmp permet de créer des utilisateurs facilement et de les tester.

Pour ajouter un utilisateur il faut couper le daemon avant :
sudo service snmpd stop
sudo net-snmp-config --create-snmpv3-user -a SHA -x AES
On choisit un login, un password, et une clé d'encryptage (qui peut être la même que le mot de passe). Dans l'exemple l'utilisateur "clinique" a été créé, avec le mot de passe "cahuzac" et la clé d'encryptage identique.

Pour ma part, j'ai modifié le type d'utilisateur de rwuser vers rouser. La commande précédente indique clairement quels fichiers ont été modifiés, il est donc facile de revenir dessus. Ensuite on relance le daemon :
sudo service snmpd start
Enfin, on vérifie que tout est bon
snmpwalk -v3 -u clinique -a SHA -A cahuzac -x AES -X cahuzac -l authPriv localhost
Si vous voyez une sortie qui fait 3km, c'est que ça fonctionne !

samedi 20 octobre 2012

En Bref : passer de gitosis à gitolite

273px-Git-logo.svgJe fais le ménage dans mes favoris de Firefox, et je vois que je n'ai jamais publié d'article pour passer du système de dépot Gitosis à Gitolite.

Comme ça fait un bail que je l'ai fait, je n'ai plus le détail de la procédure en tête. Ce dont je me rappelle c'est qu'à la mise à jour du Ubuntu Server Gitosis a été supprimé des dépôt et le paquet s'est désinstallé tout seul. Gitolite est son remplaçant.

Pour l'installation, j'ai procédé comme suit (cf bloc-note que j'avais conservé)

sudo adduser git
scp ~/.ssh/id_rsa.pub git@localhost:~/admin.pub

su - git
git clone git://github.com/sitaramc/gitolite
mkdir bin
gitolite/install -ln
bin/gitolite setup -pk admin.pub
logout
sudo passwd git -l

git clone git@localhost:gitolite-admin.git
Ensuite pour convertir le fichier de configuration :
gitolite/convert-gitosis-conf gitosis/gitosis.conf > gitolite.conf
Il reste enfin à vérifier le fichiers de configuration (je me souviens avoir corrigé les groupes utilisateurs) et déplacer le stockage des fichiers du dépôt sur le serveur.

jeudi 25 août 2011

Le site d’une graphiste pas comme les autres

aliceHello, je ne vous cache pas que je prend le temps de poster sur mon blog car on m’a gentiment fait remarquer qu’il était devenu invisible sur Google.

Je profite donc de ce moment privilégié pour vous parler d’Alice Chartrain, jeune graphiste pleine d’avenir (et jeune diplomée d’une licence pro. graphisme et édition). Sa spécialité est le graphisme print, donc tout ce qui sort sur papier : affiches, logos, édition, packaging, flyers, …

Elle est actuellement en recherche d’emploi, donc si vous avez connaissance de boites de graphisme qui recrutent, ou si vous avez des projets n’hésitez surtout pas à me contacter en commentaire. Son site Internet (hébergé sur le serveur familial) a été mis à jour récemment pour que vous puissiez vous faire une idée de son travail.

samedi 23 avril 2011

jQuery - Structure de plugin - Classe interne

jquery-logo
De retour sur ce blog, j’aimerais partager une structure de plugin jQuery que j’ai mis au point. Je me suis inspiré du site officiel, et d’un autre site qui définit des design patterns de plugins.
L’idée est d’avoir une classe pour définir les méthodes (publiques ou privées) et pour sauvegarder l’état de l’instance. Dans mon exemple, la méthode “next” se souvient de la variable “i”. Egalement, l’appel des méthodes se fait à la mode jQueryUI (tel que conseillé par le site officiel).
Sans plus tarder, voici la structure que j’ai retenu :
/*
* Slider jQuery plugin
*/
(function($){
  $.fn.slider = function(method) {
    /**
     * Internal Class
     */
    var SliderClass = function($obj, options){
      var data = {};
      var i = 0;
      /* PUBLIC */
      this.type = 'SliderClass';
      this.dump = function() {
        console.group('SliderClass Dump');
        console.log($obj);
        console.log(options);
        console.log(data);
        console.groupEnd();
      }
      this.print = function(txt) {
        console.group('SliderClass Print');
        console.log(options.print_prefix+txt);
        console.groupEnd();
      }
      this.next = function() {
        console.group('SliderClass Next');
        doNext();
        console.log(i);
        console.groupEnd();
      }
      /* PRIVATE */
      function doNext() {
        i++;
      }
    }
    /**
    * Call mechanism
    */
    var args = arguments;
    // init
    if (typeof method === 'object' || !method) {
      var options = $.extend({}, $.fn.slider.defaults, args[0]);
      return this.each(function() {
        var $this = $(this);
        if (!$this.data('slider')) {
          $this.data('slider', new SliderClass($this, options));
        }
      });
    }
    // methods
    else {
      return this.each(function() {
        var data = $(this).data('slider');
        if (data[method]) {
          data[method].apply( data, Array.prototype.slice.call( args, 1 ));
        }
        else {
          $.error( 'Method ' +  method + ' does not exist on jQuery.slider' );
        }
      });
    }
  };
  /**
   * default configuration properties
   */
  $.fn.slider.defaults = {
    print_prefix: 'Hello, I say : '
  };
})( jQuery );
Ce que j’apprécie dans cette structure, c’est qu’il est très simple d’ajouter des fonctionnalités, tout se passe sur la classe, et toutes les données sont préservées entre chaque appel.
Un exemple zippé prêt à l’emploi sur CE LIEN. Comme c’est du debug, ouvrez votre console Firebug pour voir le fonctionnement. N’hésitez pas à me faire des retours, j’ai essayé de mélanger ce qui me plaisait sur le net tout en simplifiant le code mais c’est sûrement perfectible.

mardi 11 janvier 2011

Une petite formation CSS ?

mainDans le Web, tout le monde fait du CSS, mais qui comprend vraiment ce qui peut se passer quand le rendu ne correspond pas à ce qu’on attendait ? Qui est suffisament à l’aise pour faire ce qui lui chante sans s’arracher les cheveux une seule fois ? En réalité, on a tous certaines lacunes ou points de mystère.
Je ne prétends pas avoir la connaissance complête et exacte de ce sujet, mais je le maitrise bien car il m’intéresse particulièrement. Dans le cadre professionnel, le besoin s’est fait sentir d’éclaircir nos connaissances et j’ai proposé de faire des recherches dans le but de présenter à mes collègues une formation CSS.

Sources et remerciements

Tout d’abord je tiens à remercier ProwebCE pour une bonne partie du temps de travail (en même temps je suis payé pour ça Clignement d'œil).
Mes sources sont multiples et j’ai parfois pompé des parties entières, aussi je citerai les sites principaux en les remerciant de leur compréhension (des fois que ce sujet devienne connu !) :

La formation

La voici, la voilà !
Les fichiers sont au format Office 2007, je pourrai les mettre en PDF si ça intéresse quelqu’un. La formation ne se veut pas exaustive mais veut surtout couvrir les points clés du CSS. Sauf cas précis, je ne parle pas des propriétés CSS (une centaine, voire plus avec CSS3) aussi libre à vous de mener vos recherches sur les points qui vous intéressent. Ca vous laisse l’occasion de faire des découvertes au fur et à mesure de vos développements, elle est pas belle la vie d’un développeur ? Sourire
Toute remarque ou suggestion est bonne à prendre, j’ai déjà eu quelques retours agréables en direct mais si vous découvrez que j’ai dit des horreurs n’hésitez pas à me le confier en commentaire.

dimanche 7 novembre 2010

Dévelopement sur Android - débuts avec Java et PhoneGap

img_199912_android-labUne des raisons qui m’ont fait acheter un téléphone Android est la liberté d’utilisation qui va avec. En tant que développeur il y a énormément de façon de s’éclater, le développement sur Mobile en faisant partie.

Autant développer directement en Java (langage de prédilection sur Android) a été très simple grace à Motodev et les tutos intégrés, mais l’utilisation de PhoneGap (pour développer en HTML/CSS/Javascript) a été plus compliqué, surtout sur Windows.

 

Pour commencer : Java et Motodev

Comme je viens de le dire, le langage de prédilection sur Android est Java. C’est un Java un peu particulier, un ensemble de classes propres à Android a été ajouté et le code est précompilé grace à la machine Dalvik. Je ne suis pas rentré dans les détails, tout ce que je sais c’est que ça améliore les performances et l’utilisation mémoire.

Le site officiel fournit un Toolkit à intégrer dans l’IDE Eclipse, mais c’est à vous de l’installer et de le configurer. Partant de ce constat, Motorola a créé une solution toute prête : Motodev. Cette solution est tout simplement Eclipse avec tous les outils déjà intégré. En dehors de quelques liens vers les technos Motorola, cet IDE n’est pas limité aux seuls téléphone de la marque. De plus, on peut même l’installer en plugin Eclipse plutôt qu’en bundle, encore une bonne raison de l’utiliser !

Pour l’installation c’est très simple : installer le Java Development Kit (JDK), se créer un compte sur Motodev (nécessaire pour télécharger les kits Android), installer Motodev. Au premier lancement, il demandera le répertoire de travail, sauf si vous l’avez installé en plugin. Je choisi alors un dossier séparé d’Eclipse. Après il vous demandera votre compte Motodev et la version du kit Android que vous souhaitez installer. Choisissez celle de votre téléphone, ou une version inférieure. Une fois installé, vous arriverez sur votre espace de travail, et vous pourrez consulter le tuto HelloAndroid ! Il faudra également configurer un périphérique virtuel pour tester vos applications sur l’émulateur, ou installer le pilote USB pour tester directement sur votre téléphone.

Voici un aperçu de l’interface de Motodev lorsque je teste mon HelloAndroid :motodev_screen

Installer PhoneGap

Je suis développeur Web. L’idéal pour moi est donc de retomber sur mes pieds et coder mes applications avec des langages que je connais bien. C’est pour ça que je me suis tourné vers PhoneGap, un soft qui fait l’interface entre le système et vos pages Web (qui constituent l’appli). En dehors du coté pratique de ne pas faire de Java quand on n’est pas expert, PhoneGap est compatible avec de nombreux téléphones (iPhone, Android, Windows Mobile, Blackberry, …) et gère lui meme la compatibilité avec les anciennes versions d’Android. A travers des objet Javascript, vous aurez accès aux éléments du téléphones tels que le GPS, l’accéléromètre, la barre de notification …

Installer Apache Ant

Pour utiliser PhoneGap, il va falloir compiler le fichier .jar, et pour cela il va falloir utiliser Apache Ant. Sur Linux, c’est presque trop facile : “sudo apt-get install ant”. Sur Windows, il faut passer par WinAnt.

Configurer les variables d’environnement

Sur Windows encore une fois (je sais pas comment c’est géré sur Linux) il faut également changer des variables d’environnement.

Tout d’abord, créer la variable ANDROID_HOME avec comme valeur “C:\Program Files\Motorola Mobility\MOTODEV Studio for Android 2.0\android_sdk” (sauf si vous l’avez installé ailleurs bien sûr). Ensuite, ajoutez à la fin de PATH “C:\Program Files\Motorola Mobility\MOTODEV Studio for Android 2.0\android_sdk\tools” pour avoir les outils Android à portée de ligne de commande.

Compiler PhoneGap

Téléchargez PhoneGap, dézippez le dans le dossier de MOTODEV, puis ouvrez la ligne de commande dans “C:\Program Files\Motorola Mobility\MOTODEV Studio for Android 2.0\phonegap\phonegap-android\framework” (nécessite d'etre admin, car on est dans "Program Files"). Exécutez :

android update project -p .
ant jar

Normalement vous aurez un beau “BUILD SUCCESS”

Tutoriel HelloPhoneGap

A partir de maintenant, vous pouvez suivre le tuto sur le site de PhoneGap. Juste 2 petites coquilles :

  • J’ai du renommer js/phonegap.js.base en js/phonegap.js car la compilation ne l’avait pas fait,
  • J’ai changé l'inclusion dans index.html (il manque le dossier js), d’ailleurs je conseille de les mettre dans /js/phonegap/ plutôt, car ces fichiers Javascript sont particuliers, ce sont ceux qui permettent d’accéder au périphérique.

Conclusion

Nous avons vu comment configurer un IDE basique, et y intégrer la technologie PhoneGap. Néanmoins pour aller plus loin, on pourrait peut-être mixer des éléments d’interface en Java et du contenu en HTML (pour faire une barre de navigation par exemple), ou utiliser un framework JS pour l’interface, tel que jQuery Mobile (en cours de dévelopement).

Mon expérience là dessus m’a montré que les performances ne sont pas là. Peut-être à cause de la jeunesse du projet jQuery Mobile, mais je pense que le simple fait de tout faire passer par du Javascript est loin d’être optimisé. Une bonne raison pour préférer Adobe Air à PhoneGap, ou pour réapprendre le Java ?

mardi 28 septembre 2010

En bref : des nouvelles de mon blog - un serveur Web chez moi ?

serveur-ovh-xeonCa fait un moment que je n’ai pas posté sur mon site. C’est vrai que je ne prend plus le temps d’écrire des billets, je préfère Twitter pour lacher des liens.

Ce qui m’amène au coeur du sujet : je pense fusionner mon blog et mes posts Twitter, ou tout du moins faire apparaitre et regrouper sous forme de “brèves” des infos intéressantes qui ne demandent pas l’effort de rédiger un article.

Le soucis : sur Blogger ce n’est pas possible. Si j’ai choisi Blogger c’est que je ne veux pas payer un abonnement pour du loisir et les serveurs payant sont trop bridés pour du Wordpress. Je me suis dit que je pouvais m’acheter un ordi bon marché, compact, silencieux, économe en énergie (un NetTop quoi …) en tant que petit serveur personnel à faible traffic. Ainsi je pourrai faire tourner Apache (voire Lighttpd ou Nginx), Subsonic, héberger ma musique et mes films avec partage UPNP vers la Freebox, partager mon imprimante, etc. Bref, la liberté ! Et grace à Free et mon ip fixe, je pourrais migrer le nom de domaine actuel vers mon nouveau serveur.

Pour la machine, je penche fortement vers celle là : le Shuttle XS35-704. Elle consomme entre 30 et 40kWh, ce qui revient à une trentaine d’euros par an d’électricité. A titre de comparaison, ça correspond à la consommation électrique du boitier ADSL Freebox, qui reste lui aussi le plus souvent allumé 24h/24. J’ai testé les processeurs Atom, ils ne sont pas mauvais (pour du mono tâche) et j’ai fait un test avec ma machine actuelle, mon débit Internet tiens la route et mes sites sont accessibles sans délai excessif.

La migration ne se fera cependant pas du jour au lendemain. Mon choix n’est pas arrêté et comme je n’ai pas 400€ à claquer comme ça je préfère prendre mon temps. De plus je souhaite conserver mes posts et ma charte graphique (faite maison) ce qui demandera pas mal de boulot d’adaptation sur Wordpress avant de me lancer.

Ce qui me ramène à la raison première de ce sujet : je ne poste plus car j’ai l’esprit occupé. Si vous voulez des nouvelles fraiches, vous pouvez vous abonner à mes Tweets ! Na !

 
© 2009 Le blog d'Alexandre Paixao. Tous droits réservés | Propulsé par Blogger