Allez voir mon nouveau blog: juliendesrosiers.com/blog !
Singe

WWTF?

…Moi? Payer? …Ce prix là? Pour voir des vidéos (WWDC 2008 session videos) de Apple pour voir comment faire des meilleures applications pour le iPhone, Mac et Serveur?

Je comprends maintenant pourquoi la majorité des programmeurs font des logiciels pour Windows avant d’en faire pour le Mac… C’est de l’arrogance pure. Je pense qu’ils se sur-estiment un peu fort là. Ok, leurs produits sont bons, leurs logiciels aussi. Je suis le premier à choisir un Mac avant un Pc… Mais de là à payer 500$ pour des vidéos… Surtout que c’est de la part de Apple? C’est exagéré à mon avis. Pour comparaison, les vidéos sur Lynda.com sont Vraiiiiment moins cher que ça.

Pour aller voir directement, voici le lien : http://developer.apple.com/products/video/wwdc08/index.html

1 Nov 2008, 7:40am Uncategorized: 1 comment |

Mes 9 leçons tirés de plogue.ca

  1. CakePHP c’est trop lourd pour un hébergement mutualisé. Quand je l’ai lancé j’étais avec MediaTemple, j’avais le gridserver. Maintenant c’est hébergé sur Dreamhost et j’ai un peu plus de vitesse. C’est incroyable. MediaTemple c’est pourtant pas mal plus cher que Dreamhost! Par contre sur MediaTemple, c’était MySQL 4… Je ne sais pas si ça peut avoir une telle influence sur la performance???
  2. C’est pas tout de faire une applications de partage de nouvelles à la 2.0. Il faut avant tout résoudre un problème de l’utilisateur, ou au moins le divertir en lui offrant quelque chose d’utile. Plogue est une pâle copie de ce qui existe déjà avec Digg et reddit. Il y a juste moins de fonctionnalités. Donc ça n’apportait pas grand chose de mieux pour l’utilisateur que ce qu’il avait déjà en terme de bookmark avec son fureteur de tout les jours.
  3. Copier une applications Web ne suffit pas. Il faut qu’elle soit meilleure. Pas nécessairement révolutionnaire… Mais pas mal meilleure que ce qui se fait déjà. Si non ça ne vaut pas la peine.
  4. Avoir une bonne application ne suffit pas. Il faut en parler pour que les gens l’utilisent. En parler ne suffit pas. Il faut en parler aux bonnes personnes. Et on peut juste trouver les bonnes personnes en en parlant à tout le monde.
  5. il faut aimer le language (et le framework) qu’on utilise pour coder cette application. Parce qu’on aura à y faire des mises à jour pour l’améliorer. Alors autant être passionné par la technologie qu’on utilise.
  6. Il faut que notre application ait une touche cool. Une identité unique… Une histoire à raconter.
  7. Il faut vraiment un système pour resetter le password des gens qu’il l’oublient. Ça peut parraître évident pour la pluspart des gens. Mais moi je voyais ça comme un “nice-to-have” feature. Quelque chose que je pouvais me permettre de faire dans une phase 2. Erreur! C’est très important! Il y a vraiment des gens qui ne notent pas leur mot de passe et qui en utilisent plein donc ils oublient forcément leur password pour votre toute nouvelle application. Peut-être parce qu’ils s’imaginent que vu qu’il vous connaisse, ils doivent trouver un mot de passe qu’ils n’utilisent nulle-part ailleur pour être sûr de ne pas se faire hacker leur compte facebook. En tout cas, c’est ça que j’ai peur quand je m’inscrit à une application de quelqu’un que je connais :-S.
  8. Pour les applications qui ciblent un public niche, le Québec est un trop petit territoire pour lancer son application. Il vaut mieux commencer en anglais. À moins d’avoir un tas de fric à mettre dans la publicité!
  9. Il faut déployer l’application discrètement, et ensuite lorsqu’on sait qu’elle roule bien, la lancer officiellement en annoncant l’adresse à vos amis. Si non je trouve ça juste trop stressant de penser qu’il y a du monde qui vont voir mon bug pendant que j’essaie de le résoudre à la dernière minute.

Est-ce que vous trouvez qu’il y en aurait d’autres des leçons que j’aurais dû tirer de mon aventure dans plogue.ca ? Si oui, n’hésitez pas à les mettre dans les commentaires.

25 Oct 2008, 4:51am Uncategorized leave a comment |

Nouveau design!!!

J’ai eu du temps libre ces derniers jours. J’ai donc concocté ce design beaucoup plus personnel. Je voulais me débarrasser de mon thème qui venait par défaut avec Wordpress.

J’espère que vous aimez!

PS: Oh! Et en passant; si vous voyez ce site dans Internet Explorer 6, vous allez trouver qu’il est un peu laid. Donnez-vous une chance, et téléchargez donc Firefox! ;-)

8 Oct 2008, 8:29pm Uncategorized 2 comments |

Video de jquery

4 Oct 2008, 8:08am Uncategorized leave a comment |

XHTML dans Textmate

Comme vous savez peut-être, je suis un inconditionnel du fameux IDE textmate.

J’ai découvert de quoi qui va vous surprendre. Quand on fait un <br/> avec le shortcut br ctrl shift < … ébien il ne met jamais les / à la fin de la balise. et quand on insère une image, il ne met jamais le / à la fin de la balise. Et ce, même si on est dans un document XHTML strict!

Alors, pour changer ceci, il faut aller ajouter une variable d’environnement (voir ce post) : TM_XHTML et mettre sa valeur à / (juste un forward slash).

C’est tout! À partir de maintenant, quand on insère une balise, il met le slash à la fin si c’est une balise sans fermeture et qu’on est dans un document xhtml.

1 Oct 2008, 9:13am Uncategorized: leave a comment |

Charger une image en Actionscript 3

Je sais qu’on peut trouver cette info un peu partout sur le Web. J’écris ceci parce que j’ai cherché et que je n’ai pas trouvé. Pourtant c’est simple. Pour charger une image dans AS3, il faut commencer par importer ces classes :

import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;

il faut ensuite créer la variable globale qui contiendra le loader:

private var _chargeur:Loader = new Loader();

maintenant, notre fonction :

public function ChargeurDeBitmap() {
_chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
_chargeur.load(new URLRequest("image.jpg"));
}

Finalement, reste à mettre la fonction qui sera appellée par l’événement COMPLETE :

public function onComplete(evenement:Event):void{
var image:Bitmap = new Bitmap(_chargeur.content);
var bitmap:BitmapData = image.bitmapData;
addChild(image);
}

Donc en résumé :

import flash.display.Sprite;
import flash.display.Loader;
import flash.events.Event;
import flash.net.URLRequest;

private var _chargeur:Loader = new Loader();
public function ChargeurDeBitmap() {
_chargeur.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
_chargeur.load(new URLRequest("image.jpg"));
}
public function onComplete(evenement:Event):void{
var image:Bitmap = new Bitmap(_chargeur.content);
var bitmap:BitmapData = image.bitmapData;
addChild(image);
}
25 Sep 2008, 4:07pm Uncategorized: 6 comments |

Accéder à son serveur à partir de l’extérieur

*** Avertissement, Il faut dire que mon ISP est Vidéotron. Celui ci bloque les connexions entrantes sur le port 80. Il se peut que vous ayiez un ISP qui ne bloque pas ce port. Auquel cas ce tutoriel ne vous sera d’aucune utilité. ***

Ces derniers temps j’ai essayé d’accéder à mon serveur Ubuntu (Hardy Heron) à partir de l’extérieur de mon réseau local. J’ai installé le serveur web lighttpd sur ubuntu en suivant les indications sur ce tutoriel et j’ai réussi à faire rouler des pages et des scripts CGI accessibles à partir de mes autres ordis de mon réseau local.

Oui, juste à partir de mon réseau local… Mais je me disais que ce serait bien de pouvoir y accéder à partir de mon travail. Alors je me suis pris un account chez dyndns pour avoir une adresse constante où aller chercher mon serveur. J’ai configuré tout ceci à l’aide de ce tutoriel.

Ensuite, ça ne fonctionnait pas lorsque je tentais un telnet à partir de mon serveur externe vers mon serveur à la maison. Pour cela j’allais sur le pratique whatismyipaddress.com et je copiais mon adresse de mon réseau. et je faisais la commande :

telnet <adresse ip>:80 ou telnet <adresse dyndns>

Maintenant, je viens de trouver la solution. Il a fallu que j’alle dans les propriétés de mon routeur (Linksys WRT54G2). Pour cela j’ai tapé dans mon browser : 192.168.1.1, chez vous ce peut être aussi 192.168.0.1 … Là on se connecte à l’admin de son routeur, et selon le modèle du routeur, la marche à suivre sera un peu différente. En fait, cette procédure est appellée Port Forwarding. Transfert de port. Donc dans l’admin de mon routeur Linksys, j’ai une section qui est Applications & jeux . Là dedans il y a Transfert de connexion. C’est ici que ça se passe.

Dans la colonne Application, tapez : http
Dans Début tapez : 8080
Dans Fin tapez : 8081
Pour Protocoles, choisissez TCP et UDP, donc : les deux
et pour l’adresse IP : entrez l’adresse IP de votre machine dans votre réseau local. C’est l’adresse de votre serveur Web qui a lighttpd d’installé.

Maintenant que vous avez changé vos configurations dans votre routeur, changez les configurations dans votre serveur Web.

Démarrez votre serveur Ubuntu qui a lighttpd d’installé.

Allez dans le répertoire où il y a le fichier de configuration de lighttpd (lighttpd.conf) et éditez le, dans mon cas c’est dans /etc/lighttpd/ , donc je tape :

sudo nano /etc/lighttpd/lighttpd.conf

Ensuite allez à la ligne où il y a server.port, et entrez la valeur 8080 au lieu de la valeur par défaut qui est 80. Cette ligne devrait maintenant ressembler à ceci :

server.port   = 8080

Petite parenthèse ici pour les gens qui utilisent Apache au lieu de lighttpd, je crois que pour vous, c’est dans le fichier httpd.conf qui est normalement dans /etc/httpd/. Et dans ce fichier, vous devez mettre une directive Listen 8080. Mais je ne suis pas certain, c’est à vous de vérifier. En fait je ne suis pas certain qu’il faille vraiment modifier ces choses dans votre config de serveur web. Tout ce que je sais c’est que ça marche pour moi.

Maintenant on redémarre le serveur lighttpd avec la commande suivante :

sudo /etc/init.d/lighttpd restart -f /etc/lighttpd/lighttpd.conf

Le premier chemin c’est le fichier exécutable de lighttpd, et le second (après le -f) c’est le chemin pour le fichier de configuration lighttpd.conf.

Voilà, c’est tout.

Maintenant, si vous voulez tester que votre serveur répond bien, allez dans un ordinateur hors de votre réseau local ou alors loguez vous en ssh à un serveur qui est à l’extérieur de votre réseau local et tapez la commande GET <adresse de votre réseau>:8080 ou GET <adresse de votre dyndns>:8080

Pour savoir l’adresse de votre réseau, encore une fois, vous pouvez la trouver en allant sur whatismyipaddress.com à partir d’un ordinateur de votre réseau local.

Avec cette commande GET, vous devriez recevoir le html de votre page d’accueil qui est hébergée sur votre serveur. C’est tout!

Si vous avez des commentaires, n’hésitez pas à les écrire et je vous répondrai.

14 Sep 2008, 11:01am Uncategorized: leave a comment |

J’ai terminé mon stage chez CloudRaker… Et je suis engagé!

Je vais commencer mon emploi à temps plein à partir de mardi prochain (le 3 juin) chez CloudRaker. Je travaillerai à titre de Développeur Web dans cette agence qui compte environ 35 employés. Je ferai du PHP, du Python, du XHTML-CSS, du Javascript et du Ajax entre autre.

Je suis très honoré de faire partie de cette équipe de talentueux perfectionnistes et visionnaires.

Je vous en reparlerai prochainement!

@+

31 May 2008, 11:18am Uncategorized: leave a comment |

Petite limitation sur iPhone

Comme vous savez je suis actuellement en stage chez CloudRaker. Je travaille sur la version mobile du site web et on vise particulièrement le iPhone. J’ai fait une petite découverte récemment que je crois intéressant à vous partager.
En css, on applique une background-image à une Div et l’image n’apparait pas dans le iPhone Simulator (qui vient avec le iPhone SDK). L’image ne load tout simplement pas…
Alors j’ai pensé à réduire la hauteur de l’image (qui faisais au départ environ 800×4990 px) en réduisant sa hauteur à coups de 1000. Donc une version en 4000, 3000 2000 et 1000 de haut.
Conclusion? celle de 3000 de haut ne load tout simplement pas, mais cette de 2000 oui.
Donc il y a une limitation de hauteur dans le user-agent du iPhone. Je ne sais pas si il y a la même limitation avec certaines versions de Safari, mais celle que j’ai testé sur Leopard (3.1) n’avait pas ce problème.
À noter que je n’ai pas pu tester avec un vrai iPhone, parce que le iPhone est cher et qu’ici au Canada, avoir l’internet sur son mobile est hors de prix, donc si de l’autre côté de l’océan quelqu’un pourrait tester ceci et me le dire ce serait intéressant.

21 May 2008, 4:25pm Uncategorized: leave a comment |

Premier post

Je suis content de vous accueillir sur mon blog. Sur ce blog je vous partagerai mes connaissances et découvertes dans la sphère du Web (Programmation, Design, etc).

3 May 2008, 5:09pm Uncategorized leave a comment |