Javascript

Manipuler du JSON en PHP

Publié dans PHP | Un commentaire

Pour manipuler du JSON en PHP, il y a 2-3 petites choses à savoir. L’encodage, décodage c’est la première étape. Ensuite on peut s’amuser à gérer des cas bizarres et les erreurs. Et après… après on peut s’amuser avec des schémas si jamais l’envie nous prend.

Encodage / Décodage

Tout d’abord, les méthodes qui font l’essentiel du travail :

  • json_decode: transforme une chaîne de caractères JSON en variable PHP
  • json_encode: transforme une variable PHP en chaîne de caractères JSON

Cependant, il faut garder en tête que ces méthodes ne travaillent qu’avec de l’UTF-8. Allez savoir pourquoi alors que c’est plutôt l’inverse en PHP généralement… mais bref. Du coup, un petit coup de utf8_encode / utf8_decode avant d’utiliser json_decode sur autre chose que de l’UTF-8. Même topo pour json_encode.
La documentation PHP nous fournit quelques autres informations intéressantes, par exemple au sujet de la manière d’accéder à un objet contenant un trait d’union en PHP ($myObject->{'param-etre'}).
Continuer la lecture →

Subtilité sur les classes abstraites Java

Publié dans Java | Laisser un commentaire

J’ai découvert une petite subtilité dans l’utilisation des classes abstraites aujourd’hui. Imaginons une interface Java qui est partiellement implémentée par une classe abstraite. Cette classe abstraite est assez naturellement étendue par une bonne vieille classe Java (la version française du POJO ;p). Jusqu’ici tout va bien.

Exemple 1 : héritage Java

Exemple 1 : héritage Java

Maintenant, imaginons que les méthodes implémentées dans notre classe abstraite, utilisent des méthodes implémentées seulement dans notre POJO. C’est là qu’est la subtilité (que j’annonce subtilement).
Continuer la lecture →

Isaac Asimov : les personnelles

Publié dans Geekeries | Laisser un commentaire

J’y pense pof comme ça : Isaac Asimov avait vraiment un truc avec les personnelles toilettes ! Nan ?

c++ – Error: expected type-specifier before ‘ClassName’

Publié dans C / C++ | 3 commentaires

Une discussion intéressante à lire : c++ – Error: expected type-specifier before 'ClassName' – Stack Overflow quand la compilation C++ vous insulte avec un « expected type-specifier« .

Explication

Le compilateur ne trouve tout simplement pas le type que vous êtes en train d’utiliser… Dommage !

Solution

Une petite checklist fournie par cette discussion sur Stack Overflow :

  • You forgot to #include the header that defines it.
  • Your inclusion guards are defective.
  • Or, the compiler is thinking you meant one scope when really you meant another (For example, if you have NamespaceA::NamespaceB, AND a ::NamespaceB, if you are already within NamespaceA, it’ll look in NamespaceA::NamespaceB and not bother checking ::NamespaceB) unless you explicitly access it.

Soit en français :

  • Oublie du #include « MyClass.h » dans MyClass.cpp
  • Problème dans la « garde » du header. (c’était mon cas, j’avais copier/coller un .h et son .cpp, et j’avais oublié de modifier « #ifndef MYCLASS_H » dans le header…)
  • Un truc au sujet des namespaces que j’ai la flemme de lire 😀

UCT, GTM, BST, CET et CEST : mes amis !

Publié dans Geekeries | Laisser un commentaire

Il y a de quoi s’arracher les cheveux…
En Europe :

  • UK et Portugal sont en GMT en hiver, et BST en été
  • France, Germany, Italy, etc, … sont en CET en hiver, et CEST et été

Et relativement à GMT :

  • BST et CET: GMT+1 ou UTC+1
  • CEST: GMT+2 ou UTC+2

L’article de Wikipédia à ce sujet a une carte assez claire : CET.
Franchement, on devrait toujours parler en UTC sur des projets collaboratifs, ce serait quand même plus simple !!!

Modifier la page d’erreur 404 sous WordPress

Publié dans Wordpress | Laisser un commentaire

Je suis très fier de la page 404 de ce blog : page 404 ! Mais j’ai eu un petit peu de mal à la faire fonctionner partout, ce qui est un comble pour une page d’erreur 😉 L’astuce, c’est qu’il faut modifier 2 fichiers WordPress pour que cela fonctionne partout ! Et qu’il faut préciser le chemin absolu vers une image et non un chemin relatif (puisqu’ils ne connaissent pas la balise « base » chez WordPress…).

  • Interface d’administration
  • Apparence > Editeur
  • Puis sélectionner la page 404.php (Modèle pour l’erreur 404)

Au début du fichier, vous trouverez quelque chose du style :
Continuer la lecture →

Démarrer un projet Node.js

Publié dans Javascript | Laisser un commentaire

Je n’arrive pas à trouver un fichu « Hello World! » expliquant correctement comment créer une bonne base pour un projet Node.js ! Fichtre !
Ce que je déduis pour l’instant provient principalement de cet article Tutorial: RabbitMQ + Node.js et de ce que je commence à comprendre de cet environnement.

nodejs-logo
Continuer la lecture →

Comment bien débuter avec Node.js

Publié dans Javascript | 2 commentaires

On entend parler de Node.js depuis maintenant quelques temps et même si je reste assez dubitatif à l’idée de mettre du Javascript côté serveur, j’ai plusieurs fois souhaité testé la bête. Aujourd’hui c’est chose faite puisque je suis censé produire quelque chose pour dans deux jours (enfin ça c’était il y deux jours) sur… Node.js !
En quelques bribes j’aimerai expliquer ma démarche de prise en main de Node.js. On verra plus tard si j’ai le temps d’approfondir ça dans d’autres billets.

Installation

Rendez-vous sur le site officiel de Node.js pour télécharger l’installateur. Au passage, on en profite pour mettre au chaud la documentation de l’API (un petit PDFCreator / Poche / Respawn du mode View on a single page fait bien l’affaire).
Vous pouvez désormais utiliser la ligne de commande node.
Continuer la lecture →

Thunderbird, Minimize Tray – Bug à plusieurs fenêtres

Publié dans Geekeries | Laisser un commentaire

Ah. Bon. Un petit bug peut apparaître dans Thunderbird avec l’extension « Minimize Tray Revived ». Deux fenêtres de Thunderbird (ou plus) s’ouvrent au démarrage au lieu d’une seule, et il est impossible de fermer l’une des deux sans fermer l’autre…

La solution ? Désactiver temporairement « Minize Tray », relancer Thunderbird, fermer les fenêtres indésirables, réactiver « Minimize Tray », et redémarrer Thunderbird. That’s it!

PHP diff et merge

Publié dans PHP | Un commentaire

Une question que je me pose en ce moment… Comment, en PHP, comparer deux version d’un même texte et n’en faire plus qu’une contenant les différentes modifications. En gros: difference + merge. C’est ce qui est utilisé couramment dans les systèmes de Wiki (dont Wikipédia) et je vois quelques applications à cela qui pourraient être très sympathiques.
Après une petite recherche, voilà ce que je retiens de ce qui existe.

PHPDiff

Le projet PHPDiff est géré par Chris Boulton, sous licence BSD et accessible via Github: PHPDiff sur Github.
Ce projet m’intéresse particulièrement car un certain Xiphe a créé une interface Web dynamique (bref, en Javascript) pour choisir comment merger deux textes. Ce qui peut s’avérer utile en cas de conflit. C’est accessible en licence GPL sous Github: jQuery Merge for PHP Diff sur Github. La démo est vraiment bluffante : Démo jQuery Merge.
Continuer la lecture →