dimanche 27 février 2011

Des publicités pour les soutenirs !

Comme vous le savez, pour beaucoup l'informatique est une passion. Grâce à Internet l'accès à l'information est très rapide et le plus souvent gratuit !
Mais qui est derrière cette profusion d'information? Et bien il y a des personnes désireuses de partager et faire partager leur savoir. Seulement voilà, beaucoup utilise des hébergements payant pour permettre de donner une certaine qualité à leur site.
En général, ces sites mettent en place des espaces publicitaires pour aider à payer les hébergements. Quelques sites ont même constituer une société ou une association pour gérer l'aspect légal du site. En tant que visiteur, je "m'oblige" à soutenir les sites que j'apprécie et que je consulte régulièrement soit en cliquant sur une publicité Google, soit en passant par un site pour l'achat sur le site d'Apple. Cela ne me coute rien tout en aidant au maintien de ces sites.
Il ne faut pas croire les publicités mise sur les sites web ne sont pas là pour enrichir les auteurs du site. Certain site ont même franchis le pas en proposant un abonnement supprimant toutes publicités de leur site !

Internet est une énorme base de données de connaissance soutenons les sites qui nous aide !

Cocoa Minded une bonne initiative !

Pour ceux qui ne le savent pas, je développe des applications avec le langage Objective-C mis en avant par Apple sur son système d'exploitation Mac Os X. Grâce au succès incontesté de l'iPhone et plus récemment de l'iPad beaucoup de développeurs s'y sont mis.
Deux développeurs Canadiens nous concoctent de façon régulière et depuis plus d'un an de très bons podcasts en langue Française.

Pour les écouter, vous avez le choix entre iTunes et leur site web. C'est à diffuser et faire connaitre à tous!

vendredi 25 février 2011

Un SSD c'est quoi ?

À force de lire tout et n'importe quoi (surtout n'importe quoi) sur les SSD, je voudrais partager mon savoir et expliquer du mieux possible les gains possibles avec un SSD.

Premier point : Les capacités sont ridicules pour un prix au Go extravagant !
Serte, il n'est pas rare d'avoir des SSD à plus de 3$ le Go, mais c'est le prix de la technologie. Rappelez-vous les premiers disques durs de 1Go, à quel prix étaient-ils ? 1500 francs français à leur lancement ! Ils sont restés très chers pendant beaucoup de temps. L'histoire n'arrête pas de se répéter avec les périphériques de stockage. Si le prix vous rebute, attendez ! La démocratisation de cette technologie est en route.

Deuxième point : TRIM et Garbage Collector, à quoi ça sert au juste ?
Avant tout, il faut connaitre le mode de fonctionnement d'une puce mémoire FLASH NAND. Par exemple une puce de 1Go. Pour permettre une bonne gestion, cette puce sera découpée en bloc de 4Ko. Lorsque l'ont écrit dans la puce on écrit par bloc de 4Ko. Mais on efface également par bloc de 4Ko. La particularité des mémoires Flash c'est qu'elles doivent être à 1 sur tout le bloc pour qu'il soit possible d'écrire, sinon, il faut effacer le bloc puis écrire (ce qui double le temps de traitement).
C'est là que le Garbage Collector et TRIM entre en jeux.
 La fameuse commande TRIM permet d'effacer les blocs de 4Ko qu'ont libère au cours d'une opération sur un fichier. Son utilisation ralentie un petit peut la suppression de fichier. Mais qui a besoin qu'une suppression de fichier soit si rapide ? Pas grand monde. Par contre, il faut que la copie ou le déplacement soit rapide. Les systèmes d'exploitation récents ont pour la plupart eu des mises à jour ajoutant le support de cette commande. La seule exception est Mac OS X d'Apple. La première version bêta de Mac OS X Lion (10.7) gère cette commande, mais seulement sur les SSD livrés par Apple.

Le Garbage Collector, est un traitement qui est automatiquement effectué par le SSD lorsqu'il n'est pas sollicité. Il se charge d'effacer les blocs de 4Ko qui ne sont plus utilisés. Cela permet d'éviter le ralentissement lors de la réécriture sur les blocs non utilisés, mais pas effacés.

Troisième point : Les gains de performance sont négligeables avec un SSD !
C'est FAUX. Le SSD des derniers Mac Book Air fait oublier à leur utilisateur qu'il utilise un Core2Duo de 3ans !
Un SSD apporte de nombreux atouts par rapport à un disque dur classique. Outre la capacité, le SSD est extrêmement rapide sur la lecture des petits fichiers. Pourquoi ? Il n'y a aucune pièce mécanique et le temps de déplacement des têtes d'un disque dur classique est pour beaucoup dans leur piètre performance dans ce domaine.
La lecture de gros fichier est parfois équivalente avec un disque dur classique ? Oui, et encore, il faut que tous les secteurs à lire sur le disque dur se suivent et qu'il soit placé au plus près du centre des plateaux pour obtenir de bonne performance. Sur un SSD, seuls le temps d'accès à la mémoire et le temps de traitement du contrôleur ralentissent les données.
Les contrôleurs utilisés dans les SSD sont extrêmement poussés. Pour la plupart, il utilise des techniques de stockage RAID pour augmenter les débits, garde de la mémoire en réserve pour les cellules qui meurent et ainsi augmenter la durée de vie.

Quatrième point : sur la durée les performances se dégradent !
Parfois oui. Certains SSD de première génération ne disposent pas de la commande TRIM ou du Garbage Collector ce qui le ralentit. Mais cela ne ralentit pas au niveau de performance d'un disque dur classique. On s'en rend compte avec des logiciels de test des performances, rarement en utilisation courante.

Cinquième point : la durée de vie des SSD est limitée !
Oui comme toute chose sur cette terre. Cependant, les constructeurs l'on compris et ont pour la plupart développé des systèmes pour y remédier. Pour pallier au fait que certaines cellules vont mourir plus tôt que prévu et pour celles qui mourront normalement, il réserve une partie de la mémoire FLASH à un usage de remplacement. Ainsi les SSD ont logiquement des capacités en multiple de 8 (soit 8, 16, 32, 64, 128, 256, 512, etc.), mais le constructeur va réserver quelques Go. Cela donnera des capacités telles que 30Go au lieu de 32Go, 60Go, 120Go, 250Go, 500Go. Plus le disque est gros plus ils en réservent. Cela permettra au SSD de durer plus longtemps avant que la capacité ne baisse.

ERROR 1577 (HY000) at line 1: Cannot proceed because system tables used by Event Scheduler were found damaged at server start

Cette erreur apparait après avoir réaliser la mise à jour de MySQL 5.0 vers la version 5.1. Ce problème est lié au droit d'accès au base de données et au table. La commande doit être exécuté en tant que Root (sudo est là pour ça).

Pour régler le problème, il suffit d'executer cette commande :
sudo mysql_upgrade -u root -h localhost -p --verbose --force
Redémarrer le serveur MySQL et l'erreur n'apparaitra plus !

Dotdeb la solution au lenteur de mise à jour de Debian [MAJ]

Après mon coup de gueule d'hier sur les lenteurs des mises à jour des packages officiel Debian, j'ai réalisé une petite recherche.

Je suis tomber sur un site qui est la réponse à mes questions et mes besoins. Il s'appel dotdeb.org Sur leurs dépôt, les nouvelles versions arrivent en quelques jours !

La réponse à mes versions manquantes est là. Les nouvelles versions sont proposés autant pour Squeeze que pour Lenny. Grâce à eux je peux installer PHP 5.3 sur Lenny sans devoir recompiler !
Un grand merci à ceux qui sont derrière ce site et qui aide de ce fait beaucoup de monde !

La seule chose à laquelle il faut faire attention c'est que les dépôts sont signés et qu'il faut installer la clé de chiffrement. Si vous êtes derrière un pare-feu qui filtre les connexions sortantes, il faut autoriser les sorties sur le port 11371 utilisant le protocole HTTP (donc TCP).

Est-il possible de récupérer une clé dans un fichier texte avec le navigateur ?

[MAJ]
Cette commande permet d'enregistrer une clé précédement importé du serveur dans un fichier. Pour le faire, il faut un ordinateur qui a téléchargé la clé du serveur keys.gnupg.net.
gpg -a --export 89DF5277 > dotdeb.key
Ensuite, copier le fichier sur le serveur qui ne peux pas acceder directement au serveur de clé, puis entrer la commande suivante pour ajouter la clé à APT :
cat dotdeb.key | sudo apt-key add -
Et voilà maintenant vous pouvez mettre à jour PHP et MySQL en toute sécurité.

Donnez un coup de fouet à votre CoreDuo

Tout récemment, le disque dur système de mon PowerMac G5 est tombé en panne. C'était un bon vieux Raptor de 75Go. Aujourd'hui, les disques dur de grosses capacités ne coute plus grand chose mais les performances ne sont pas nécessairement là. Le remplacement est donc urgent, et je décide de le remplacer par un SSD de 60Go signé Ocz.

L'installation  se passe bien puis je redémarre l'ordinateur sur le SSD. La différence n'est pas flagrante car le SSD est connecté en SATA de première génération. Cependant, le démarrage est plus rapide et la fluidité des applications bien plus grande. Par exemple, Page s'ouvrait en 10 ou 15 secondes alors que maintenant, je n'ai pas le temps de dire "ouf". L'application fait un bond dans le Dock est elle est lancé.
Le gain est bien là et avec les 4Go de RAM et deux G5 à 2,5GHz me voilà avec une belle machine.

Seulement, je n'ai pas acheter un SSD mais deux. Le deuxième, je le destine à un petit mac mini qui se traine. Malgrès sont disque dur à 5400 tpm, Word met près d'une minute à ce lancer. C'en est trop, j'ai décidé de le remplacer par le SSD.
Après avoir installer le SSD dans la machine et le disque dur dans un boitier externe, j'installe Mac Os X 10.6 sur mon petit Core Duo @ 1,66GHz.
La surprise fût grande lors du redémarrage, la petite roue sans fin qui aide à patienter au démarrage n'as même pas le temps de faire un tour complet que le bureau s'affiche. Je n'aurais jamais imaginer qu'un SSD puisse libérer autant de puissance.

Perdons nous patience ou est-ce une histoire marketing ?
En effet, à chaque renouvellement de gamme d'ordinateur, les constructeurs nous vente les mérites de leur ordinateurs. C'est pour vendre! Mais aurions-nous envie de changer si nos ordinateurs ne ralentissait pas ? Mon petit CoreDuo fait partie des premières séries de Mac Intel et malgré ces 5 années, il vient de repartir pour de nombreuses autres (je l'espère).

jeudi 24 février 2011

Apple présente sont implémentation de Light Peak

Apple viens de présenter ses nouveaux portables MacBook Pro 13" à 17" avec une nouvelle exclusivité !

En effet, Intel parle depuis un certain temps de sa technologie Light Peak mais la phase de l'industrialisation n'était pas encore réalisé. Il semble que cela soit le cas maintenant sous le nom de Tunderbolt. En français, nous pourrions le traduire par "Foudre".

Apple offre là une exclusivité pour les premiers pas de sa technologie. Le paris est-il risqué ? L'avenir nous le dira. Pour Intel et Apple il faut convaincre les partenaires à l'adopter comme la nième interface. Il est courant de voir des boitiers pour disque dur externe avec l'USB2 ou 3 et l'eSata. Macway a même réaliser un boitier très polyvalent car il dispose de l'USB2, du FireWire 400 et 800 et de l'eSata. Bientôt du Light Peak ?

Rappelez vous en 98, Apple abandonne du jour au lendemain tous ses connecteurs propriétaire pour faire place à l'USB et au Firewire 400. Au final, ils ont démocratisé mieux que personne ce connecteur mal connu et peux utilisé !

L'histoire se répètera-elle ? C'est à souhaiter car un tel connecteur est une aubaine pour bon nombre d'entre nous. Il faudra voir avec les périphériques compatibles mais imaginez un dock pour portable ou il vous suffit de connecter ce seul câble et l'alimentation pour être connecter à tous vos périphériques ?

PHP 5.2.17 et Debian

PHP 5.2.17 est sortie le 6 Janvier 2011 et les utilisateurs de Debian Lenny n'auront pas d'autre choix que de recompiler à la main pour avoir droit aux dernières corrections.

Étant développeur web, je m'attend à ce que les dernières versions des logiciels que j'utilise puissent être mis à jour rapidement. En effet, il n'est pas nécessaire d'avoir les mises à jour dans l'heure qui suit, mais si le délais était un peux plus cours cela aiderais beaucoup de monde.

Depuis quelques jours la version Squeeze de Debian est sortie mais là aussi la version de PHP n'est pas la dernière (5.3.3 sur les dépôts alors que la 5.3.5 est disponible).

Si certain trouve que j'exagère, il est possible que oui. Mais le temps d'attente des mises à jour pénalise parfois les utilisateurs. Et même avec beaucoup de bonne volonté et malgrès le fait que je suis développeur, je n'ai pas l'intention de recompiler PHP à chaque nouvelle version pour la distribution Debian.

D'autre diront, pourquoi crier au loup ? Tous le monde sait ça !
Pas moi et je viens d'être confronté au fait que je suis bloqué sur PHP 5.2.6 sur le serveur alors que j'ai 5.3.3 sur mon poste de développement. Et que forcément j'ai utilisé des fonctions et argument de fonction qui n'existe pas dans la version du serveur. Cela m'oblige à faire du code conditionnel avec des réactions différentes selon la version de PHP. Cela ne m'était jamais arrivé auparavant et c'est très frustrant.

Maintenant, si il existe un dépôt utilisable sur Debian permetant de mettre à jour PHP rapidement avec les dernière version, je suis preneur.
Je prend également, si quelqu'un à une procédure simple pour compiler et installer PHP tout en mettant à jour la version de Debian. Je n'aime pas avoir deux versions d'une même logiciel sur un serveur.

Symfony et le reverse proxy Apache

Avez-vous déjà utilisé une application développé avec symfony derrière un reverse proxy géré par Apache 2 ?

Pour ma part, oui et il m'arrive un problème récurent avec le plugin sfDoctrineGuardPlugin.
En effet après l'identification il redirige l'utilisateur. Le choix de la redirection ce fait dans cet ordre :

  1. Il tente de récupérer l'url enregistré dans le fichier app.yml sous la clé : sf_guard_plugin_success_signin_url
  2. Il renvoie vers la page "référer".
  3. Il renvoie vers la route "@homepage"

Comme le port du serveur Apache interne n'est pas le 80, il tente de rediriger l'utilisateur sur ce port. Par exemple, si le port interne est le 88 et que l'URL du site est "www.test.dlt", je vais me retrouver avec l'URL suivante : "www.test.dlt:88". Ce qui est faux car l'URL pointe vers le reverse proxy Apache qui attend les connexions sur le port 80.

Pour ma part j'ai réglé le problème en définissant la clé dans app.yml à "accueil/index".

jeudi 17 février 2011

Apache et les VirtualHost SSL

Ajourd'hui, je vais vous montrer comment configurer plusieurs VirtualHost SSL sur Apache.
Cela fait plus de 8 mois que je me bat avec cette configuration impossible à mettre en place.

Prérequis : Apache 2.2.9 minimum, mod_ssl, openssl

La première chose à faire est de se créer sont certificat. Pour cela j'ai suivi cette procédure. Le seul point à changer est pour le "Common name", il faut mettre "*.mondomaine.tld". Cela permet d'avoir un certificat valable pour tous les sous domaine.

Ensuite, configurer les VirtualHost comme si cela était des hôtes sans SSL (sur le port 443 tout de même).

Pour la directive "ServerName", précisier le port après le nom du serveur (ex: test.mondomaine.tld:443).

Ajoutez la configuration SSL :
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown

Puis redémarrer Apache et cela fonctionne.

Il faut répéter la manœuvre autant de fois qu'il est nécessaire pour vos configurations.
Dans le cas d'un sous domaine avec un certificat wildcard vous n'avez pas besoin de changer la configuration SSL. Sinon, il suffit de choisir le bon certificat et la bonne clé.