nyroBlog
Ban NyroBlog, by Emi
Image by Emi - ?

Tag: Travail


Un robot MSN nommé Renara ?

Hier soir, un nouveau contact que je connais pas m'ajoute à ses contacts. Ce n'est pas la première fois, il arrive que certains clients potentiels préfèrent ce moyen de communication à l'email. D'autant plus que son pseudo est : renara http://renara.org (renara@hotmail.fr).

J'accepte ce nouveau contact et visite le site en question (non, je ne ferai pas de lien !) : absolument immonde, avec des pubs google alors qu'on ne s'attend pas à en trouver sur le site d'une pianiste. Bref, ce ne serait vraiment pas étonnant que cette personne me demande un devis pour son site... Mais là, c'est vraiment laid, immonde.

Une demi-heure se passe et toujours pas de contact de cette personne. Je me décide pour savoir de quoi il en retourne. Extrait complet de la discussion :

(22:37) ..:: Nyro ::.. : Bonsoir
(22:39) renara http://renara.org/ : Vous êtes invités à visiter le site http://renara.org
(22:40) ..:: Nyro ::.. : ai-je besoin d'une invitation pour ça ?
(22:41) ..:: Nyro ::.. : puis-je savoir à qui ai-je l'honneur ?
(22:41) ..:: Nyro ::.. : levirel@hotmail.com ?
(22:50) renara http://renara.org/ est maintenant Hors ligne

J'en ai conclu que c'était un robot. L'adresse email que j'ai indiquée est issue du whois.

Alors comme je n'aime pas du tout ce genre de pratique, j'ai décidé décrire ce billet avec, comme vous l'avez vu, des liens direct vers les emails, en espérant que des spammeurs passent par là et le bombardent. En plus, je vais lui faire du mal pour son référencement qui est d'ailleurs tout aussi médiocre que le site.

Des expériences similaires pour vous ?

Edit : Zataz en parle...

Firefox réduit au minimum pour un maximum d'efficacité

Firefox est un outil de travail, absolument indispensable à tout développeur. Suite à une petite discussion avec Miho, je vais vous faire ici un tour complet de tous les plugins et astuces d'affichage que j'utilise pour en tirer le meilleur parti.

Les extensions
Firefox propose une très grand nombre d'extensions. Certains sont très utiles, d'autres un peu moins, mais toutes trouvent des utilisateurs. Je vais donc vous lister ici celles que j'ai installés, par ordre de préférence/utilisation.

  • FireBug permet de déboguer HTML, CSS, JavaScript et Ajax très simplement et très rapidement. Malheureusement, je ne l'utilise pas car cette extension augmente considérablement la taille en mémoire de mon Firefox, passant très rapidement de 70-80Mo à plus de 300 ! Il intègre les fonctionnalités de Dom Inspector et Live HTTP Headers et en a bien d'autres. Visitez le site officiel pour tout savoir.
  • Web Developer est un autre incoutournable du développement web. Permet de désactiver images, javascript, CSS et tout plein d'autres choses, d'afficher toutes sortes d'information sur la page (taille totale des script, des images, de la page), vider le cache en 2 clics, redimenssionner la fenêtre, valider la page et encore plein d'autres choses. Là encore je ne peux que vous encourager à visiter le site officiel
  • Dom Inspector permet de voir l'architecture de votre page HTML telle qu'elle est actuellement, avec les modifications éventuelles qu'auront réalisé des éventuels scripts.
  • Live HTTP Headers affiche toutes les requêtes envoyées par Firefox avec toutes les infos qui vont avec. Par requêtes, comprenez chargement de page HTML, image ou script, mais aussi requêtes Ajax, flash ou tout autre chose dans le même genre.
  • Tab Mix Plus ajoute plein de configurations à la gestion des onglets. Pour moi c'est le mode fenêtre unique, les popups ouvertes en onglet, l'ouverture automatique en onglet automatique et plein d'autres trucs.
  • CustomizeGoogle ajoutera plein de petites fonctionnalités à vos recherches Google, comme un compteur de positions, des liens vers d'autres moteurs, vers Wayback Machine, de supprimer les pubs, etc...
  • GooglePreview ajoute la fonctionnalité qui manque à l'extension précédente, l'affichage des vignettes des sites dans les résultats.
  • Full Fullscreen vous offre la possibilité de visualiser vos sites sans absolument rien d'autre.
  • FoxyTunes contrôle votre lecteur média dans la barre d'état de Firefox, utile pour toujours garder la main dessus.
  • Custom Buttons offre la possibilité de créer vos propres boutons avec vos propres actions, écrites en JavaScript (j'y reviendrai dans un prochain billet). Il se trouve en bas de la liste car je viens de le découvrir...

L'interface
Tout d'abord j'ai un windows XP customisé afin de réduite au maximum la barre des tâches et la barre de titre pour libérer un maximum de place au contenu même de chaque fenêtre.
De plus j'utilise un thème Mini pour Firefox afin de rendre les polices, menu et icônes au minimum et encore gagner de la place.
Je me retrouve donc avec un espace d'affichage des pages web de 676 par 1280 pixels (si si, c'est Photoshop qui le dit !) pour une résolution d'écran de 1280 par 800. Je gagne 43 pixels par rapport à une configuration de base, thème Windows et Firefox compris. Ca paraît petit, mais j'ai l'impression que c'est énorme.
J'ai donc un espace maximal pour visualiser les pages. De plus je trouve ces deux thèmes beaucoup plus jolis que ceux de bases, surtout pour celui de Windows et son bleu qui m'arrache les yeux...

Les petits plus... qui font beaucoup !
Puisque j'utilise Tab Mix Plus pour n'avoir qu'une seule fenêtre, j'ai paramétrer la barre des onglets pour être toujours visibles, avec des taille d'onglet petites, affichant la barre de chargement et changeant de style si la page n'a pas été vue. Lorsque j'utilise la recherche de Firefox, entre une nouvelle adresse, clique sur un lien externe sur un site ou ouvre une nouvelle page depuis une autre application, j'ai un nouvel onglet qui s'ouvre pour ne jamais perdre la page sur laquelle j'étais.

J'ai positionné les boutons de Web Developper tout en haut à gauche, sur la même ligne que le menu général de Firefox, ce qui a pour effet de rendre toutes les fonctionnalités accessibles en un clic.

Pour finir, voici un petit screenshot de mon Firefox tout joli tout beau.

Dans la même idée, j'ai modifié la position des boutons de Thunderbird pour gagner encore aussi de la place, et de l'efficacité, en supprimant les boutons non utilisé et en plaçant les plus utilisé (indésirables et répondre) plus proche des messages.

Et vous, des astuces dans le même genre ? Des extensions que vous utilisez chaque seconde ?

Petit bilan après 2 mois à LA

Histoire de ma vie de tous les jours à Los Angeles pendant mon stage.

Voilà maintenant 2 mois et demi que je suis à Los Angeles. Petit bilan de ce que j'ai appris, ce que je fais chez Fluidesign, et comment se passe ma vie de tous les jours ici.

Le travail
Arrivée tous les jours vers les 8h30 pour commencer à 9h00. Ca me permet de lire mes mails et mes RSS tranquillement le matin. Je suis très souvent le premier au bureau, me demandant même des fois si à 9h et quelques, alors que personne n'est là, si ce n'est pas un jour férié ou si ce n'est pas dimanche. Je travaille sur mon portable, et ça m'arrange bien pour justement rester sur MSN et lire mes mails tout au long de la journée. Pas forcément le meilleur moyen pour être productif...

On me donne du travail par AIM (c'est le standard en messagerie instantanée ici) ou par mail, on me demande combien de temps il me faudrait pour faire telles ou telles choses sur un site. J'avoue que c'est un peu dur de donne précisément, surtout que ce n'est pas souvent sur du PHP pur et dur, mais souvent sur des modifs HTML/CSS, quelques fois du JavaScript. D'autant plus que j'ai l'impression que je suis moins productif ici que lorsque je travaille chez moi. J'ai l'impression de mettre 10 ans pour faire un truc tout simple.

Durant les 2 dernières semaines, je ne faisais pas grand chose, il n'y avais pas de travail pour moi. C'est pour cela que j'ai pu me culturer sur le PHP et les design pattern.

Les projets
On me l'a indiqué plusieurs fois, l'entreprise signe des closes de confidentialité avec le client. C'est pourquoi je ne vous parlerai pas des projets sur lesquels je travaille actuellement, mais sur ceux qui sont en ligne, et donc visible par tout le monde.

GameWorks
Gameworks a été l'un des premiers projets sur lequel on m'a laissé travaillé seul pour des modifs HTML/CSS sur différentes pages du site. Je n'ai jamais bien compris ce qu'était réellement GameWorks. Si j'ai bien compris, ils organisent des repas/jeux/party pour des amis entreprises. Le tout est en lien étroit avec Sega. Les pages en particulier. J'ai fait aussi quelques petits changements minimes dans l'administration et je travaille encore dessus pour l'ajout de nouvelles pages événementielles.

Kayne
Kayne est un autre site sur lequel j'ai fait et je ferai encore des modifications HTML. Le client émet des rapports au format PDF, avec de jolis graphiques parlant de la bourse. Le soucis, c'est qu'il y a parfois des graphiques à modifier sous Illustrator/Photoshop, et que le client est très exigeant. Alors comme ce n'est pas ma tasse de thé, j'ai mis beaucoup de temps pour faire ma 1ère page. Mais une fois qu'on a pris la main, ça va vite. Et avant de publier une page, il faut d'abord la faire valider par quelqu'un d'autre de la boîte, puis par le client, et seulement si tout est ok elle passe en ligne...

First Annoucement
First Annoucement a été le premier projet où j'ai vraiment fait de la programmation PHP et où j'ai pu m'amuser avec du javascript. Le site permet aux futurs parents de préparer leur faire-part électronique en choisissant un thème, renseignant les destinataires depuis leur Outlook, Messagerie (AIM, MSN, Google ou Yahoo!) fichier CSV ou simplement par un champ texte. On peu aussi préparé le nom des parents et celui du bébé pour gagner du temps. Une fois le bébé arrivé, les parents renseignent la date et l'heure de naissance, le poids, la taille, ajouter des photos, peuvent modifier leur message et répandre la bonne nouvelle : Spread the news.
Là où je suis intervenu (car le site existait déjà) a été pour modifier la navigation, remanier les vérifications javascript pour faire de belles erreurs dans un div et non une alerte javascript. Mais le plus intéressant (et le plus long...) a été le fonction de Crop des images. j'ai utilisé ce script basé sur scriptaculous qui fonctionnent très bien. J'ai du mettre le nez dans le code pour modifier quelques petites choses : l'affichage des outils de resize différents et uniquement dans les coins. Et puis j'avais un autre problème lorsqu'on rechargeait une nouvelle image. J'y ai passé beaucoup de temps pour au final avoir un outil qui fonctionne bien. Une fois les nouveaux parents content de leur crop, ils enregistrent la nouvelle image. Là je passe par une petite requête AJAX pour envoyer les coordonnées du crop, et mon script PHP fait le reste. Bref, un site sympa, qui m'a demandé beaucoup de temps car de nombreux problèmes sont apparus pour la compatibilité avec Safari ou IE (6 ou 7...)

Voilà, 3 sites sur lesquels j'ai travaillé. Il y en a d'autres, mais non significatifs ou encore moins intéressant (Kayne est à la limite d'ailleurs...).

Mes progrès
Je suis à Los Angeles. Les gens ici parlent anglais. Etonnant, non ? Ce qui induis donc que je dois parler et comprendre l'anglais. Là où ça se corse, c'est quand on sait le piètre niveau que j'avais. Que j'avais. Car en 2 mois, j'ai progressé. Pas de la façon dont je pensais, mais j'ai progressé.

Comme je l'ai dit plus haut, j'échange énormément avec mes collègues par mail ou AIM. Il m'arrive de contacter mon voisin de bureau par AIM... Mon anglais écrit et mon écriture ont donc très largement progressé. J'avoue que j'ai toujours mon petit dictionnaire MédiaDico de lancer pour les petits mots dont je ne saisi pas exactement le sens et qui me paraissent important. Mais plusieurs personnes me l'ont dit, mon anglais écrit est bon. Je mets en signature de chaque mail interne un petit mot pour me demander de me corriger. Ce que les gens font quelques fois. Il ne faut d'ailleurs surtout pas hésiter à demander une telle correction : je pense que c'est le meilleur moyen de progresser rapidement et efficacement.

L'anglais parlé maintenant. Au niveau de l'oreille anglais, j'ai là aussi énormément progressé. Le collègue avec qui j'échange principalement parle extrêmement vite (même les autres collègues le disent) et parfois un peu dans sa barbe. La première fois que j'ai échangé avec lui a été très difficile à comprendre. J'ai dû lui demander de répéter plusieurs fois, lui faisant un effort de prononciation et de reformulation. Mais ce fait m'est très bénéfique. Mon oreille s'améliore, et je distingue maintenant beaucoup mieux les mots dans les phrases, entendant ces petits bouts de mots non accentués que nous autres français avont tant de mal à détecter la présence. Je m'en suis rendu compte en écoutant ma musique. Avant, je ne comprenais que les refrains car ils revenaient souvent et j'avais donc le temps de les assimilé. Maintenant, je comprends beaucoup plus de mots. Pour la compréhension du sens, c'est encore autre chose. Je comprends le sens des phrases beaucoup plus facilement qu'avant sans pour autant comprendre le sens de chaque mot. Ce qui fait que par un mécanisme de rétroaction, je comprends le sens des mots que je ne comprenais pas avant, et donc je progresse encore d'avantage (vous suivez là ?). Bref, je progresse.

Mon expression orale maintenant. c'est là que je n'ai pas progressé autant que je ne l'espérais. Au travail, je ne parle pas beaucoup. Lorsque je dois m'exprimer, je ne le fait pas en tout aisance et je cherche encore mes mots, trop souvent. Les structures des phrases, les petites erreurs scolaires qu'on fait souvent s'amenuisent de jours en jours, mais je ne parle pas assez pour que cela soit absolument significatif. Je parle plus avec mes collocs, qui ont eux des accents (l'un d'origine portoricaine, l'autre indonésien).

Mes progrès sont là, je les ressens. Ils ne vont pas s'arrêter là, j'en suis sûr. Ce petit bilan personnel m'aide d'ailleurs à m'en rendre compte un peu plus.

La vie de tous les jours
Tout simplement une journée type de travail :
Levé vers 7h30/7h45, douche, 2/3 cookies si la faim se fait ressentir, départ de l'appartement. C'est parti pour 10/15 minutes de marche pour rejoindre Wilshire Boulevard et mon arrêt de bus. Parfois je prends des rollers prêtés par mon colloc pour aller plus vite. C'est un faux plat descendant, donc ça va tout seul.
Le bus que j'utilise n'est pas le plus rapide. Il y en a un autre un peu plus cher qui s'arrête moins. L'avantage en temps n'étant que très minime, je continue de prendre cette compagnie. De plus, les bus ne sont pas bondés comparés à l'autre.
Arrivé au bureau vers 8h30 (ou plus tard selon le bus), installation de mon ordi, remplissage du 1er vers d'eau à la fontaine. Les collègues arrivent doucement. Certains jours je vais à la boulangerie française Amandine (c'est le nom de la boulangerie, pas de la boulangère...) tenu par des asiatiques qui font de bons croissants. Un petit croissant au chocolat par ci, un autre aux amandes ET chocolat par là et tout se passe bien. Et c'est gratuit ! Ceci car fluidesign est en train de faire leur site. Je ne sais pas trop quel marché ils ont, mais on ne va pas s'en plaindre !
La journée commence après lecture de mes mails et RSS (un heure, voir plus...). Je continue le travail inachevé de la veille ou bien regarde ce qu'il y a à faire, demande si quelqu'un a du travail pour moi etc... Et je fais mon travail, comme tout stagiaire qui se respecte. Si j'ai besoin je demande à mon collègue qui est une bête en HTML / CSS.
Le midi, c'est repas sur place préparé la veille ou Fast food avec les collègues, selon les envies. L'avantage ici c'est qu'il y a 10 000 sortes de fast food différents. J'essaie d'en tester un maximum.
La journée passe vite, voyant défilé beaucoup de ligne HTML, CSS, JavaScript ou PHP, toujours avec de la musique dans les oreilles issues de webradios diverses.
Arrivée vers les 18h00, je commence à fermer mes applications une à une, pour souvent partir vers les 18h15 et prendre le bus pour rentrer. Il arrive souvent que Wilshire soit blindé à cette heure là, merci mon téléphone et la musique pour me faire patienter. Arrivée à mon arrêt, c'est reparti pour les 10/15 minutes de marche.
Rentré dans l'appart, un des collocs est là à faire son heure de vélo ou porté de poids. Repas du soir devant la télé, puis la soirée sera faite d'ordi ou de télé.
Couché vers les 23h00.

Demain sera pareil qu'aujourd'hui, en différent...

PHP, mes lectures du moment

Comme il m'arrive d'avoir du temps libre pendant mon stage, j'en profite pour lire de nombreux articles sur la programmation objet en PHP, la conception de sites, framework ou applications web.

Je vais donc vous faire une petite liste des plus intéressants. Beaucoup d'articles datent de 2004 ou même avant. La plupart sont en PHP 4, il faut donc savoir ce que l'on peut maintenant faire de mieux grâce à PHP 5 et son nouveau modèle objet.

Pour commencer, un petit tour sur la doc officielle et son paragraphe sur le langage objet en PHP 5. La lecture complète de ce paragraphe est plus qu'instructive, et changera sans doute votre vision des objets PHP.
La partie sur la surchage est très intéressantes, pour pouvoir faire des choses du genre $objet->variable = 'chouette';, où variable n'existe pas réellement en tant que propriétés de l'objet. La même chose est possible avec les appels de fonctions.
La petite page sur Réflexion et ses différentes classes/interfaces est tout aussi intéressante pour qui veut faire des instanciations et appels de méthodes dynamiquement et proprement.
Enfin, la minuscule page sur les masques introduit ce qui suit.

Qu'est-ce qu'un masque (ou design pattern ou patron de conception) ?
Wikipédia nous répond très simplement :

Un patron de conception est un concept destiné à résoudre les problèmes récurrents suivant le paradigme objet.

En lisant cet article, une fièvre studieuse est montée en moi pour lire tous les articles sur chaque patron de conception. Certains sont très peu explicites, il faut donc se creuser un peu la tête pour en voir l'application ou l'implémentation quand elle n'est pas donnée. Parfois, il est plus facile de lire le code et le comprendre, puis de remonter à la description pour comprendre à quoi cela sert vraiment. L'idée ici n'est pas d'utiliser tous ces patrons de conception, mais c'est d'en connaître leur existence et leur fonctionnement. Plus tard, si vous vous retrouver face à un problème susceptible d'être résolu par l'un de ces design pattern vous vous en souviendrez et vous pourrez l'appliquer rapidement, puisque vous l'aurez compris.

Ensuite, je me suis mis en tête de lire sur les différentes implémentations de ces patrons de conception PHP. C'est là que les vieux articles entre en jeux.
Le plus important est PHP Patterns, dont le dernier article date de 2005, mais dont la pertinence des articles et les exemples simples en font selon moi une référence. La partie la plus intéressante se trouve dans la partie design. Lisez-donc un maximum d'article en gardant à l'esprit que c'est du PHP4, et qu'il faudra donc repasser ça à la sauce PHP 5 à grands coups d'abstract, interfaces et autres...

Et puis avec ces lectures, j'atteri sur ce post à propos de Smarty et des moteurs de templates, de 2001 mais qui garde tout son sens encore maintenant. La plupart des arguments sont pertinents, quelques-uns un peu moins... Et puis là où ça devient encore plus intéressant, au délà de la discussion, c'est sur cette page où la personne donne un exemple utlra-léger mais ultra-fonctionnel d'un moteur de templates.

Et puis d'autres liens, donnés en vrac :

Enfin, une liste de framework, tous ayant des points de vues différents et des philosophies différentes. Les regarder et se plonger un peu dans le code de chacun est long est fastidieux, mais croyez-moi, très instructif !

Et plein d'autres sur Wikipédia fr et un joli comparatif sur la version anglaise.

La branche des développeurs d'IBM a posté un premier billet sur un comparatif détaillé des 3 premiers cités ci-dessus, à suivre.

Voilà, bonne lecture à tous, et si vous en avez d'autres sous le coude, n'hésitez pas à les mettre en commentaires ici.

Header flash vidéo : un moyen efficace de présenter la page

Header Vidéo sur 352 MediaJe vous parlai il y a quelques temps des headers qui changent sur les pages et des avantages qu'on pouvait en avoir.

Je suis tombé sur un site qui poussent le vice un peu plus loin, en proposant des headers en flash qui consistent en une vidéo/animation présentant le site et/ou la page en cours. Je trouve l'idée très sympa, surtout qu'elle est très bien réalisée.Jugez plutôt (en anglais) :

  • L'accueil : on présente rapidement l'entreprise et ce qu'on peut voir sur le site
  • La présentation de l'entreprise : le patron et le vice-président raconte l'histoire de la boîte, le tout accompagné d'animations flash parfaitement synchronisé très bien faites.

Vous pouvez naviguez sur les autres pages du site, les headers sont des images qui respectent la charte graphique, à savoir un fond vert, simplement... Je trouve que ces vidéos de présentation d'une excellente qualité sont vraiment utiles et se chargent très vite. Le fait de voir la personne qui parle ajoute une dimension humaine au site; il en devient immédiatement plus familier, plus agréable. Peut-être un nouvel élément à intégrer à certains sites...

En fouillant un peu plus, cette entreprise propose de réaliser votre vidéo de présentation, avec le choix de la personne qui le fera pour vous (féminin ou masculin). Les exemples qu'ils donnent :

C'est bien, mais il ne faut pas en abuser. Et je pense qu'un petit cookie flash pour savoir si la vidéo a déjà été visionnée et ne pas la relancer automatiquement serait pas mal.

En parlant de header, n'oubliez pas que vous pouvez mettre les vôtres (JPG uniquement, les flash/flv viendront peut-être un jour...) sur mon blog !