nyroBlog
Ban NyroBlog, by DëuG
Image by DëuG - ?

Tag: Programmation


Et si on restait 6 mois de plus ?

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

Une dizaine de jours sans nouvelles. Mais que s'est-il donc passer pendant ce temps ? Je réfléchissais. Et comme ma décision est prise, je peux la partager maintenant.

Tout commence lundi il y a deux semaines, le patron Mike me demande comment se passe mon stage, si je suis content etc etc... Je lui réponds que oui, les gens sont géniaux et que le boulot est sympa, mais pas assez de programmation selon moi, je voudrais un peu plus de PHP...

Il me réponds qu'il en prend note. Et il ajoute une petite question, anodine : est-ce que tu veux rester après ton stage ? La question à laquelle je n'avais pas songer une seule seconde, je me voyais déjà rentré pénard dans 2 mois à la fin janvier, pour un mois de vacances et reprendre les cours à l'UTBM doucement en mars. Mais là, ça change la donne.

Avant de répondre, j'ai d'abord cherché sur internet si mon VISA me permettait de rester ou pas, et de travailler. La réponse est non. Je peux rester que 30 jours après la fin de mon stage, et pas pour travailler mais pour faire le touriste. Je mail Aquarius pour savoir s'il existe un moyen d'étendre le stage ou pas, j'aurai la réponse plus tard. Un mail aussi à l'UTBM pour savoir ce qu'il est possible de faire, si je peux interrompre mes études...

Je réponds à Mike avec toutes ces infos et commence à réfléchir, tout en modifiant quelques sites. Est-ce que je veux rester là plus longtemps ? qu'est-ce que ça changera ? Pour combien de temps ?...

Le lendemain, réponse d'Aquarius : Oui, je peux étendre mon Visa mais je devrai rentrer en France et repasser par la case remplissage de formulaire pour le VISA et passage à l'ambassade pour demander un nouveau VISA. Mais je ne dois pas tarder pour faire ces demandes. Dans le même temps, réponse de l'UTBM : oui, je peux interrompre mes études pour un projet personnel (UV intitulé ST00 à l'UTBM) qui ne me rapporte rien pour l'école. C'est juste 6 mois pour lesquels on peut faire ce qu'on le veut, du moment que c'est un peu fondé.

Bon, c'est possible, mais je devrai réécrire pas mal de papiers, en regroupé tout un tas, repasser par la petite séance de stress de l'ambassade (quoique, si ça se passe comme la 1ère fois...), rester encore 6 mois de plus loin de mes amis, ma famille, notre belle région.

Mais d'un autre côté je bosse dans une boîte à Los Angeles avec des gens sympa, mon anglais s'améliore encore, je peux voir l'océan tous les jours (les bureaux déménagent le mois prochain avec vue sur le coucher de soleil...) et je pourrai dire : "J'ai vécu un an à Los Angeles quand j'étais jeune.", c'est toujours mieux que 6 mois.

Durant ces 2 dernières semaines, je me suis donc poser la question tous les jours, changeant d'avis le matin au lever pour avoir l'avis totalement contraire le soir-même. Mais plus ça avançait, plus ma décision s'avérait claire...

Et j'ai donné ma réponse finale ce matin : "Je reste".

Donc pour ceux que ça intéresse, voilà mon programme pour les 8 prochains mois :

  • Retour en France le 26 janvier comme initialement prévu pour assistr au gala de la Gym de Thise :d
  • Durant 2 semaines, ça va être la course : ambassade des US à Paris, fiesta avec les amis, repas avec la famille, couper les cheveux et plein de petites choses à faire...
  • Départ pour Los Angeles vers le 13 ou 14 février
  • Retour au boulot le 18 février pour 5 mois
  • Arrêt du stage le 11 juillet
  • Retour définitif en France vers la fin juillet/début août

Alors ce soir, c'est remplissage des formulaires, envoie des mails pour demander des documents à droite à gauche et encore des infos.

Bon et maintenant, il faut vraiment que j'écrive mon billet sur Alcatraz...

TinyMCE en version 3 Alpha 1

Depuis un peu plus de 3 mois, on n'avait pas de nouvelles de TinyMCE. Je m'étais promené sur le site pour essayer de trouver une roadmap mais je n'avais pas trouvé.

Et aujourd'hui, qu'est-ce qui tombe dans mon netvibes ?
L'annonce de la sortie de la version 3 alpha 1

Et les changements sont réjouissants :

  • Réécriture complète du code (d'où le passage à la version 3) avec nettoyage en profondeur
  • Réduction de 33% de la taille totale des scripts
  • Réduction de 75% des requêtes au serveur
  • Les popups sont maintenant personnalisables à souhait lors d'une ouverture inline (popup Ajax)
  • Les plugins peuvent maintenant ajouter des éléments au menu contextuel, avec des sous-menus possibles
  • Chargement à la demande des éléments et non tout au chargement
  • Tous les éléments d'affichages passent maintenant par CSS (les images des boutons par exemple). Ce qui veut dire que la personnalisation sera encore amélioré à ce niveau là
  • Les listes déroulantes (pour sélectionner la police par exemple) sont maintenant crées en javascript. On peut donc voir la police sur chaque ligne comme dans votre éditeur de texte favori

Et encore plein d'autres.

Je n'ai pas encore eu le temps de regarder en profondeur comment cette nouvelle mouture marche, mais on nous dit :

From a pure feature point of view, this release might not be very impressive, but if you are interested in JavaScript and do a lot of custom development, this is the release you have been waiting for.

En français :

Du point de vue des fonctionnalités, cette version ne sera pas vraiment impressionnante, mais si vous vous intéressez au JavaScript et à la personnalisation de TinyMCE, c'est la version que vous attendiez.

Dès que j'ai le temps, je fais un petit tour des nouvelles fonctionnalités JavaScript.

Vous pouvez d'ores et déjà voir la démo de cette dernière version : attention, les fichiers de langue n'étant pas encore prêt, vous verrez sans doute des choses bizarres...

Edit : Sans avoir de timeline véritablement défini, l'équipe de Moxiecode pense sortir une version finale à la fin du mois. Ils travaillent à la correction de bug, à la documentation et un tutoriel sur comment passer de la version 2 à la version 3.

Multiple IE et Custom Buttons 2

J'ai indiquer il y a quelques jours la liste des extensions Firefox que j'utilise. Parmi elle se trouve Custom Buttons qui permet d'ajouter ces propres boutons à Firefox en réalisant ce que l'on veut, grâce à des fonctions JavaScript.

Et puis il existe un logiciel magnifique qui permet d'avoir les anciennes version d'Internet Explorer sur son Windows, en gardant son IE7 mis à jour : Multiple IE. Vous aurez donc la possibilité de tester vos sites depuis la version 3.0 de IE. Je n'en vois pas trop l'utilité, mais sait-on jamais...

Donc là où ça devient intéressant, c'est que l'on va pouvoir créer ses propres boutons dans son interface de Firefox pour directement lancer les instance IE différentes. C'est donc un IE View en plus avancé.

Et puis si vous avez d'autres navigateurs, vous pourrez les adapter comme bon vous semble !

Voici donc le code, à adapter selon les besoins, évidemment. Ici c'est pour IE7, installer normalement.
NB : tester uniquement sous Windows XP

var exeLoc = 'C:\\Program Files\\Internet Explorer\\iexplore.exe';
var url = gBrowser.currentURI.spec;
var app = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
app.initWithPath(exeLoc);
var process = Components.classes["@mozilla.org/process/util;1"].createInstance(Components.interfaces.nsIProcess);
process.init(app);
process.run(false, [url], 1);

Vous l'aurez compris, il suffira de changer la variable exeLoc pour ouvrir la navigateur que vous voulez. Ne me demandez pas d'explications pour les lignes suivantes, je ne l'ai comprends pas complètement. Je sais juste que ça marche...

Et puis comme l'extension propose de copier les boutons directement en lien hypertexte, je vous livre les miens ici. Un simple clic pour les ajouter, après avoir installer l'extension bien sûr. Puis Personnaliser votre barre d'outils pour installer vos boutons là où vous voulez. Si besoin, faites un clic-droit sur le bouton et éditer le.

 

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...