SandRock.getBlog();

Aller au contenu | Aller au menu | Aller à la recherche

mardi 14 septembre 2010

Mail notification for subversion repository

I was searching for a little script able to email my collaborators and myself when someone commits something to my SVN repositories.

SVN commit email - sample email

There seem to be a popular perl script commit-email.pl. But I had several errors when implementing it. This is why I decided to make one. Because it's useful and easy to configure, I'll share my entire script here.

Download commit-email.php

As you can see, there is a little configuration section.

  1. <?php
  2.  
  3. // CONFIGURATION
  4. $svnlook = '/usr/bin/svnlook';
  5. $globaladdress = 'someone+logs@gmail.com';
  6. $repoaddress = array(
  7. 'repoAAA' => 'user1@aaa.com, user2@aaa.com',
  8. 'repoBBB' => 'user1@b.com, user2@b.com',
  9. );
  10. $from = 'svn-noreply@svn-hosting.lol';
  11. $replyto = 'admin@svn-hosting.lol';
  12. //

Nothing fancy here. $svnlook is the path where the svnlook command can be run. $globaladdress is a email address where all commit will be notified. $repoaddress is a field for specific repositories to add email addresses. $from and $replyto are what they are.

It's following the svn postcommit hook. My SVN repos are located in /home/svn. You can create a hook in /home/svn/repoX/hooks/post-commit containing:

  1. #!/bin/sh
  2.  
  3. REPOS="$1"
  4. REV="$2"
  5.  
  6. /usr/bin/php /home/svn/commit-email.php "$REPOS"

Don't forget to place my script in /home/svn and to install php5-cli.

jeudi 7 janvier 2010

Test de VS.PHP 2010

Bonjour à tous.

Dans le but de créer un petit projet perso en PHP + ZF, j'ai décidé de tester pour de bon VS.PHP 2010 actuellement en développement. Le test est réalisé sur le build 2.8.1.6090.

VS.PHP est une extension pour Microsoft Visual Studio conçue pour écrire des applis PHP. Je m'attend globalement à la même expérience qu'avec Netbeans 6.5+. VS.PHP 2008 coûte $99.99 ou €73.99. Notez que Visual Studio existe sous une forme gratuite ; si vous n'êtes pas développeur .NET, VS.PHP ne nécessitera pas de version payante de VS.

A noter que je ne connais presque pas le logiciel, je pars à sa découverte.

Installation

Depuis le site de dev, récupérez l'installateur le plus récemment compilé. L'installateur est un web install.

Installation...

Première utilisation

Quelle surprise de voir qu'un projet de type 'Zend MVC Project' m'est proposé ! Effectivement, dans le fenêtre de nouveau projet, on peut créer un projet classique ou un projet ZF. Ca tombe bien, c'est mon framework préféré !

New project window

En plus de tout ça, je vais utiliser AnkhSVN pour versionner mon projet...

Voilà mon projet PHP+ZF créé. La structure de fichiers proposée ne me convient déjà pas. Le template de projet crée quelques malheureux fichiers. Rien de transcendant... De plus, la colorisation syntaxique est très mal intégrée...

Ma colorisation C# PHP colors and ZF structure

Impossible de trouver les options de colorisation pour le code PHP. Une recherche sur le web m'indique qu'elles devraient s'afficher avec VS démarré en administrateur... Même pas... Petite restructuration de l'appli :

The application is ready to run Built-in web server displays an error

Un mini server web de debug est inclus. J'imagine que le but est de fournir un debug pas-à-pas. Très bon point.

Malheureusement, de nombreux bugs surviennent avec cette version beta. Actuellement VS a gardé un lock sur le fichier .phpproj et n'arrive pas à sauvegarder la structure du projet (cette action est nécessaire pour démarrer l'appli).

Néanmoins, l'IntelliSense est au rendez-vous. Vous pouvez dans un premier temps définir un include_path pour spécifier l'emplacement de votre framework.

PHP include path

Par la suite, l'IDE affichera un IntelliSense digne de celui que l'on a en developpement .NET : le meilleur.

PHP IntelliSense

Conclusion

Le bug cité ayant détruit mon projet ; considérons qu'il est trop tôt pour tester cette version. D'ici quelques jours je ferai un test avec VS 2008 si j'arrive à négocier l'extension de la durée d'évaluation...

Bug bug bug bug bug bug

lundi 13 avril 2009

Télécharger vidéo et musique sur un flux Windows Media depuis linux

Alors que cela est un calvaire sous Windows, il est possible de récupérer simplement un fichier vidéo Windows Media hébergé sur un serveur de streaming mms:// avec la commande mplayer.

Exemple : mplayer "mms://.../....wmv" -dumpstream -dumpfile "Ma Vidéo.wmv"

Simple et efficace

samedi 25 octobre 2008

Utilisation de SSH avec clés RSA

De nos jours, je vois beaucoup de jeunes geeks (et des vieux aussi) se connecter en ssh à leur server unix avec un mot de passe faible... Avec les polonais, les marocains, les roumains qui prolifèrent sur le net à la recherche de serveurs vulnérables, il faut se protéger d'une façon plus importante. Voilà de quoi mettre en place un login via une paire de clés RSA. Et en bonus : comment configurer sshd pour refuser le login par mot de passe !

Créez vos clés RSA

Pour commencer, il faut générer une paire de clés RSA. En ligne de commande, c'est très simple :

$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/SandRock/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): xxxxxxxxxx
Enter same passphrase again: xxxxxxxxxx
Your identification has been saved in /home/SandRock/.ssh/id_rsa.
Your public key has been saved in /home/SandRock/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx:xx:x:xx:x:x:x:x:x:x:x SandRock@Titan

$ ls ~/.ssh
id_rsa
id_rsa.pub

Le fichier nommé id_rsa est la clé privée et le id_rsa.pub est la clé publique. Il est indispensable de garder la clé privée en sécurité (sur une partition chiffrée par exemple).

Sous Windows, un utilitaire est disponible avec PuTTY, nommé PuTTYGen. Il permet de générer les même clés (mais le format des fichiers est différent du format obtenu avec ssh_keygen). Ne pas oublier de bien choisir une clé de type RSA avec 2048 bits.

PuTTYGen

Utilisation

Maintenant que votre paire de clés est prête, il faut déclarer sur les machines distantes quelles clés sont autorisées à se connecter. Pour cela, un fichier nommé ~/.ssh/authorized_keys contiendra les clés publiques (1 par ligne) au format du fichier id_rsa.pub (ça commence par 'ssh-rsa AAAA...'). Quelques commandes pour faire ça facilement :

$ echo "ssh-rsa AAAxxxxxxx" >> ~username/.ssh/authorized_keys // ajoute une clé au fichier par copié/collé dans une console
$ cat ~/.ssh/id_rsa.pub | ssh you@example.com "cat - >> ~/.ssh/authorized_keys"  // ajoute une clé via ssh (mot de passe distant requis)

Désormais, la simple commande ssh me@exemple.com vous authentifiera automatiquement (la passphrase de votre clé privée sera demandée) sans mot de passe. Sous Windows avec PuTTY, il faut spécifier dans les options l'emplacement de votre clé privée dans la page Connection/SSH/Auth (il faut un fichier .pkk généré par PuTTYGen).

Interdire le login par mot de passe sur vos serveurs

Attention, procéder à une telle configuration empèchera le login par mot de passe ! Si vous perdez vos clés privées, il faudra intervenir de façon physique sur le serveur pour configurer une nouvelle clé ! Prennez donc la précaution de posséder une double paire de clés stockées dans des emplacements différents. Testez aussi le bon fonctionnement du login par clé avant de faire cette manipulation.

Ouvrez simplement le fichier /etc/ssh/sshd_config avec votre éditeur favori. Cherchez la ligne commençant par PasswordAuthentication (cette ligne peut ne pas exister ou peut être commentée).

# Change to no to disable tunnelled clear text passwords
PasswordAuthentication no

Voilà qui est fait. Tout brute-force de mot de passe sera impossible.

$ ssh root@exemple.com
Permission denied (publickey).
Disconnected: No supported authentication methods available.

mercredi 24 septembre 2008

MusicTracker pour Pidgin

Utilisant pidgin quel que soit mon OS, j'ai cherché et comparé divers plugins pour afficher la musique courrament écoutée (sous Winamp ou Amarok). Mon préféré est MusicTracker. Statut personnalisable, fonctionne avec MSN est XMPP. Parfait ! :D

Sinon voici un lien sympatique (mais c'est un vieux wordpress, beurk) référençant la plupart des plugins du genre.

- page 1 de 2