S'abonner au Flux RSS

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.

lundi 2 juin 2008

MSN/Jabber - Pourquoi du comment

Il est évident que de nos jours, la messagerie instantanée par internet est totalement indispensable. C'est très rapide, ça coute rien, c'est super adapté pour passer des bouts de codes ou des commandes. Bref, le mot "indispensable" était bien choisi. Mais comme toute chose appartenant au monde de l'informatique, il faut choisir son camp (voire sa religion pour les plus fanatiques d'entre nous). D'où ce petit article sur Jabber/MSN.


MSN c'est :

  • énormément de monde, presque tous mes contacts l'utilisent
  • Beaucoup de fonctionnalités : smileys, smileys persos, vidéo, audio, jeux, certains trucs collaboratifs
  • c'est propriétaire, donc difficile à intégrer dans des projets
  • Malgrès les 2 premiers points, ça évolue très peu. Une légère ouverture au développement (via technologies propriétaires), pas super sécurisé,
Jabber (XMPP) c'est :
  • énormément peu de monde, presque aucun de mes contacts l'utilisent (ironique...)
  • Un peu moins de fonctionnalités mais tout de même plus pratique (pas de limitation en taille de messages par exemple)
  • c'est open source, il y a énormément de clients, c'est extrèmement facile à intégrer à n'importe quel projet de dev
  • ça utilise du XML, donc d'autant plus pratique
  • ça peut être super léger, tout comme on peut appliquer un chiffrement fort des données
  • l'XML permet beaucoup de maniabilités pour intégrer des fonctionalités plus avancées
Alors pourquoi l'un, pourquoi l'autre... Je trouve MSN vraiment très lourd. Malgrès les fonctionnalités "extra-textuelles"  (entendre par là tout ce qui n'est pas du texte : vidéo, audio...) assez variées, je trouve les fonctionnalités de base trop limitées. Premier exemple, les messages textuels sont limités à très peu de caractères ; peut dérangeant dans le cas d'une discussion kikoolol mais extrêmement exaspérant lorsqu'il s'agit de  passer un bout de code ou un bout de fichier de config à un collègue. Il en va de même pour les smileys invasifs qu'imposent le logiciel officiel qui se nichent partout là où on ne les attend pas.

Du point de vu d'un développeur quelconque, très peu de possibilités sont offertes par MSN. Certains langages MS semblent implémenter des choses intéressantes mais c'est pas au point à mon gout.

Si l'on parle un peu plus de Jabber, je pense que quelques mots peuvent le décrire d'une façon assez claire : léger mais extensible, sécurisé mais clair, ouvert et donc exploitable par n'importe quoi.

Ormis le fait que très peu de personnes utilisent ce protocole pour le moment (bien que Google ait admirablement intégré Jabber à ses services GTalk/GMail). Je trouve Jabber très séduisant par sa simplicité et sa robustesse.

Pour les développeurs, c'est un bonheur complet. Actuellement Jabber me sert à surveiller mes serveurs dédiés et mon gestionnaire de projet flyspray m'envoie des messages instantanés à chaque mise à jour d'une tâche.

Conclusion, passez à Jabber :D