jeudi 29 novembre 2007

Ajax et mason

Faire de l'ajax avec mason est parfaitement possible, meme sans aucune connaissance de la librairie prototype.js . Vous avez quand meme besoin d'installer cette librairie javascript et le la charger dans vos pages. Sur le mason headquarter, vous trouverez un composant ajax tres simple a utiliser. Tout d'abord, downloadez le et sauvegardez le dans votre arborescence de composants (a la racine par exemple). Mettons que son nom dans l'espace mason soit /ajax. Ce composant a deux fonctions:
  • La premiere est qu'il agit en tant que helper pour inclure des appels ajax dans vos pages.
  • La seconde est qu'il s'occupe de l'appel de la methode (une methode mason) du cote serveur lorsque l'evenement ajax est declenche.
La doc du composant est assez claire donc je ne vais pas en dire beaucoup plus. Juste une petite astuce quand meme: lorsque vous declarez quel formulaire serialiser pour faire votre appel ajax, il faut doubler les quotes de l'identifiant du formulaire. Par exemple:
  1. <form id="myform"> ..... </form>
  2. <a href="javascript:<& /ajax, comp=> 'SELF:ajaxservermethod' , form => 'myform' &>">Action</a>
ne fonctionne pas sur tout les navigateurs. Il vous faut ecrire ca:
  1. ..... form => '\'myform\'' .....
C'est tout pour aujourd'hui.

mercredi 28 novembre 2007

Facebook sur la voie de l'internationalisation ?

Pour l'instant, ce n'est pas encore facebook lui même, mais l'application FunWall (slide.com).

On voit apparaitre ça et la quelques mots en français, comme 'choose an image in mes fichiers'.

Je ne sais pas ce que vous en pensez, mais facebook en langue locale, personnellement ça va me faire bizarre. Comment fera-t-on pour comprendre les blagues de nos amis d'autres pays ? Tiens, je vais créer un groupe 'keep facebook english' !!


Powered by ScribeFire.

Quick and dirty encryptage et decryptage

Une fois n'est pas coutume, un peu de code pour encrypter/decrypter des chaines simples rapidement.

  1. sub simplecrypt{
  2. my ($string , $key ) = @_ ;
  3. my $mask = substr($key x length($string), 0 , length($string)) ;
  4. my $crypt = $string ^ $mask ;
  5. return unpack("H*" , $string ^ $mask );
  6. }
  7. sub simpledecrypt{
  8. my ($string , $key ) = @_ ;
  9. my $crypted = pack("H*", $string );
  10. my $mask = substr($key x length($crypted) , 0 , length($crypted));
  11. return $crypted ^ $mask ;
  12. }
Avantage: vraiment simple (base sur un XOR) et surtout independant de tout module supplementaire.

Inconvenient: vraiment trop simple. Le codage XOR n'est pas vraiment connu pour sa securite, impossible d'encrypter des chaines unicode.

Conclusion: A utiliser pour des cryptages de base d'identifiants non confidentiels. Par exemple, si vous faite des urls comme celle ci:

  1. http://www.myserver/article/77.html
et que vous ne voulez pas que vos visiteurs puissent essayer 76, 75 ...

Vous pouvez encrypter le numero avec cette methode.


mercredi 7 novembre 2007

On demande un développeur mason sur paris

C'est assez rare pour le signaler: la société apartia cherche un développeur mason pour bosser sur un gros projet déjà installé chez un client.

Une petite citation de l'annonce parue:

==============================================
I know this is not a jobs list but after seeing the "UK Developers" it
seemed not entirely out of place to say: I am looking for a Mason
developer in Paris (France) to work on a large modular application
already in production at a client's. Pay is good (ie: comensurate with
the rarity of Mason devs). Please contact me at ldm@apartia.fr

Cheers and hail HTML::Mason
=============================================

Si vous êtes dans le coin et que mason n'a plus de secrets pour vous, profitez en !



Powered by ScribeFire.

lundi 15 octobre 2007

Du nouveau chez addthis

Après 2 ou 3 semaines d'interruption de service, l'interface de addthis est de nouveau fonctionnelle avec son lot de nouveautés. Parmi celles-ci, l'ajout facile du widget de bookmarking au bas de chaque post. Bon social bookmarking !

Servir du contenu binaire

Voici comment servir du contenu binaire avec mason (en mode download):

  1. %# file.html
  2. <%init>
  3. use Apache2::Const qw(OK);
  4. my $content = ... ; # Votre contenu binaire
  5. my $mimeType = 'application/pdf' ; # par exemple
  6. my $fileName = 'rapport.pdf' ;
  7. $m->clear_buffer; # On vide le buffer de tout contenu precedant
  8. $r->content_type($mimeType) ; # Reglage du type mime
  9. $r->headers_out->add('Content-Disposition' => "attachment; filename=$fileName");
  10. # Nom du fichier
  11. binmode STDOUT ; #Sortie purement binaire
  12. print STDOUT $content; # Les donnee
  13. $m->abort(OK); # C'est fini
  14. </%init>
Pour afficher le contenu binaire en ligne (par exemple dans le cas d'une image, ou pour provoquer l'affichage d'un pdf par le plugin du navigateur), il suffit de supprimer la ligne 9. Si ca perturbe vos visiteurs d'avoir une ressource en .html qui sert un pdf, vous pouvez toujours appeller votre fichier file.pdf , et ajouter la chose suivante dans la conf d'apache :
  1. <LocationMatch "/file.pdf$">
  2. SetHandler perl-script
  3. PerlHandler HTML::Mason::ApacheHandler
  4. </LocationMatch>
On spécifie ainsi a apache qu'il doit laisser mason s'occuper de la ressource. C'est tout pour aujourd'hui ! Voir la liste des types mime.

vendredi 12 octobre 2007

Faire un widget pour blogger

Sur l'aide de blogger, on trouve une documentation très bien conçue qui explique ça très bien. On peut mettre ce qu'on veut dans le code du widget. De l'html bien sur, et surtout du javascript pour rendre un contenu dynamiquement. C'est le cas des widgets offres d'emploi de ce blog ! (en bas de page). Pour avoir les vôtres, c'est par ici !