Frigo nettoyé

by matthieu 7/1/2009 4:20:22 AM

Frigo nettoyé
Originally uploaded by MatthieuGD

Envoyé depuis un téléphone cellulaire

Categories :

Tags:

Les premières affaires

by matthieu 7/1/2009 2:40:33 AM

Les premières affaires
Originally uploaded by MatthieuGD

Envoyé depuis un téléphone cellulaire

Categories :

Tags:

Le déménagement léger

by matthieu 7/1/2009 12:49:49 AM

Le déménagement léger
Originally uploaded by MatthieuGD

Categories :

Tags:

Hébergement, Wordpress et performance

by matthieu 6/30/2009 11:14:00 PM

L’informatique est un monde vaste qui recouvre beaucoup de métiers différents, mais c’est quand on cherche un hébergement pour un site internet qu’on s’en rend compte vraiment.  Si on passe les offres mutualisées pour parler directement VPS ou serveurs dédiés, il existe encore de nombreux hébergeurs. Et puis même si vous êtes développeur, quand il s’agit de machines, il faut un temps d’apprentissage non négligeable pour appréhender les détails. Lorsque des problèmes surviennent n’oubliez pas que les administrateurs systèmes ne sont pas des développeurs donc souvent ils peuvent vous aider sur les symptômes (c’est déjà beaucoup) mais n’écoutez pas trop leur diagnostics.

Déjà il est préférable de se situer dans la même zone géographique que vos visiteurs (il en va de même pour vos DNS) surtout si vous avez un domaine en .com qui ne donnent aucun indice au moteur de recherche quand à votre localisation.

J’ai choisi Wordpress pour un blog car même si je ne suis pas à l’aise avec le langage PHP (depuis ça va mieux) ce moteur de blogs est un des plus populaires donc avec des nouvelles versions (et des patchs) régulièrement et un écosystème vivant (pour des plug-ins, des tutoriaux, les forums etc.). Mais cette facilité vient avec un prix : la performance.

Il existe pas mal d’articles sur les performances de Wordpress et notamment son usage du CPU. Et je dois dire que j’ai mis du temps à trouver les bonnes ressources. Beaucoup de micro-optimisations sont possibles : enlever les appels à des fonctions comme bloginfo(‘url’) en préférant les urls en dur, éviter les plug-ins qui sont gourmands en requêtes SQL, utiliser un système de cache au niveau de Wordpress comme WP Super-Cache.

Toutefois voici quelques informations glanées après des recherches approfondies :

  • regarder les paramètres recommandés par WP pour MySql trouvé via le blog de Coding Horror
  • cette présentation donnée par l’équipe de WP est précieuse, notamment sur l’usage du système de cache APC de PHP
  • Nous avons une partie indépendante de WP et nous utilisons memcached pour garder en mémoire des infomations souvent consultées et très rarement mises à jour. Ces deux liens sont intéressants pour l‘installation si vous êtes hébergés avec CPanel et Cent OS (plus il existe une page pour voir l’état du cache)
  • Attention APC ne semble pas compatible avec le module suPHP (qui permet de faire exécuter PHP par un user spécifique pour des raisons de sécurité) car c’est un mode CGI , un process par requête, donc le cache n‘est pas partagé.
  • Sous cPanel, utiliser easyapache (/scripts/easyapache) si vous faites une erreur, cela reconfigure Apache + PHP de façon très simple.
  • Si vous n'êtes pas en hébergement partagé suPHP n'est pas recommandé car plus lent que le mode DSO, il faut juste configurer le user Apache au lieu d'utiliser le user nobody

Premier coding dojo

by matthieu 6/28/2009 10:59:35 AM

Jeudi dernier j’ai fait mon premier coding dojo lors d’une rencontre de la communauté Alt.NET de Montréal. Comme son nom ne l’indique pas c’est une façon de pratiquer le partage de connaissance autour du code. Nous avons utilisé la manière ”Randori Kata” qui revient à coder à deux, l’un ayant le clavier l’autre suggérant, aidant, critiquant. On change toutes les 5 à 7 minutes les protagonistes avec des personnes présentes et volontaires.

Cela se fait dans la bonne humeur et le sujet de cette session, le Test-Driven Development, se prête bien aux discussions : le TDD étant une façon de coder et surtout de faire réfléchir au design avant l’implémentation via les tests, on jasse beaucoup :) Deux heures bien remplies dans un agenda de développeur, vous avez tout l’éte pour vous inscrire

Merci à Maxime et Eric, les organisateurs !

Dimanche matin

by matthieu 6/28/2009 12:22:00 AM


Dimanche matin
Originally uploaded by MatthieuGD

Après la gym nous prenons un café dans ce Second Cup ouvert 24h/24h. Il y a toujours un peu d'animation dans ce café : des étudiants qui révisent, des travailleurs autonomes qui travaillent, des lecteurs de journaux etc. Il faudra qu'on trouve un endroit semblable dans notre futur quartier de Rosemont.

Categories : photo

Tags:

déménagement 2

by matthieu 6/27/2009 6:53:00 AM


déménagement 2
Originally uploaded by MatthieuGD

on se prépare pour notre deuxième démenagement, moins compliqué puisque nous avons seulement nos 4 valises. Nous prenons les clés de l'appartement le 1er juillet, le 2 juillet livraison ikea et montage, le 3 livraison Sears pour quelques appareils ménagers.

Rendez-vous le week-end prochain pour le roman photo :)

Categories : photo

Tags:

Téléphone

by matthieu 6/27/2009 1:02:58 AM

Nous sommes arrivés le 1er mai dernier, et nous avons utilisé une carte pré-payée pendant les deux premiers mois. Le dernier iPhone étant sorti nous sommes allés souscrire un forfait chez Rogers pour profiter de notre statut de nouvels abonnés. Nous sommes contents car nous n’avons pas eu à laisser une caution comme il est parfois requis pour les nouveaux arrivants avec peu d’historique de crédits. Par contre comprendre le système de tarification n’est pas chose aisée, la differenciation entre appels entrants et sortants n’existe pas en France ni la zone native d ‘appel (sauf dans certains forfaits avec appels illimités depuis chez soi, i.e. la borne GSM/#G la plus proche de son domicile). Voici un extrait des explications donnéees par Rogers :

 

Your cellphone is associated to a particular Native Calling Area (NCA). That is why your friends cost to call YOU is irrelevant to where you actually are when you pick up the call. Whether you are LOCAL to your NCA, or Travelling in Europe., they are dialing the same number. Where the billing DIFFERS, is on YOUR end. You get charged the IRM/LD, or RM minutes as described as follows:

INCOMING CALLS (whether from a friend down the street or incoming from China (for example) ANSWERED IN YOUR NCA;

Charged as per daytime minute useage (fall under your contract or paygo balance).

INCOMING CALLS ANSWERED OUTSIDE YOUR NCA;

Charged as an INCOMING ROAMING MINUTE (IRM) as per Rogers billing-at $0.25/min.

OUTGOING CALLS MADE OUTSIDE YOUR NCA BUT LOCAL TO THE CA PRESENTLY SITUATED;

Charged as per daytime minute useage (fall under your contract or paygo balance).

OUTGOING CALLS MADE OUTSIDE YOUR NCA TO A LONG DISTANCE CANADIAN NUMBER (National Call);

Charged as Long Distance $0.25/min

Ah j’oubliais Rogers a la particularité de ne pas offrir un service de suivi de consommation …

Notifications sur iPhone 3.0

by matthieu 6/23/2009 2:14:19 AM

Une des grandes nouveautés de la version 3 du système d’exploitation sont les notifications.

Apple ne donne pas le droit à une application de tourner en tâche de fond, donc en quittant une application par exemple de messagerie instantanée pour aller consulter votre courrier ou visiter une page web, vous ne la minimisez pas conme sur un ordinateur de bureau ou portable, vous perdez vos discussions en cours.

Je n’ai pas vu d’explications officielles précises mais le fait que l’iPhone n’est que 128 Mo de RAM (256 pour le nouveau modèle) milite pour cette exclusivité sur cette ressource rare surtout pour un appareil avec une interface aussi riche. Je ne connais pas Android ou BlackBerry mais Windows Mobile a un système de warning à plusieurs niveaux de criticité envers les applications lorsque la mémoire vive disponible est basse.

Depuis la dernière version les applications peuvent envoyer des notifications à l’appareil, ici un exemple avec Beejive une application de messagerie instantanée :

exemple de notification

Comment cela se passe sous la capot ? Voici un résumé du worflow entre l’application, les serveurs d’Apple et votre serveur :

  1. L’utilisateur lance l’application
  2. L’application s’enregistre auprès des serveurs de notification d’Apple
  3. Ces derniers générent  un token applicatif à partir des informations de l’application et de l’iPhone et renvoie cette information à l’application.
  4. L’application transmets ce token à son serveur
  5. Le client quitte l’application par exemple
  6. Le serveur peut alors envoyer des notifications à l’utilisateur via les serveurs d’Apple avec le token précédemment enregistré sous la forme d’un son, badge (chiffre affiché sur l’icône de l’application) ou d’un court texte.
  7. L’utilisateur choisit de fermer la notification ou de lancer l’application concernée

En dessin :

schema dy système de notifications

Cela marche très bien avec l’application testée. On ne peut pas pour l’instant spécifier comme on le fait naturellement sur un ordinateur quand est-ce qu’on quitte une application et quand on la minimise. On peut bien sûr désactiver la notification mais ce n’est pas très pratique. Beejive contourne un peu le problème en laissant l’utilisateur spécifier un temps (de qqles minutes à 24h) au bout duquel les notifications ne sont plus transmises. Je pense qu’il y a une marge de progession pour le système de notifications (sans parler ici de la consommation supplémentaire induite par la connexion IP permanente entre l’iPhone et les serveurs d’Apple).

OS iPhone 3.0

by matthieu 6/17/2009 9:16:49 AM

Parmi les nouveautés de cette version du système d’exploitation celle de la recherche dans l’application de courrier est une des plus attrayantes pour moi.

La recherche avec filtre s’effectue d’abord en local (sur les courriers contenu sur l’iPhone) puis on peut choisir de continuer sur le serveur, i.e. dans les archives qui sont sur le serveur (dans mon cas exchange).

Un exemple en images :

 

iPhoneSearch (2)iPhoneSearch (1) iPhoneSearch (3)

Categories : coding

Tags: