Webmasters de tous poils, rien de plus frustrant que de se couper de ses créations, même pour quelques heures. Et si un problème bloquait l'accès au site ? Et si quelqu'un rédigeait un nouvel article sur tel blog communautaire ? De nombreuses fois, l'astuce du flux RSS chargé en permanence ne suffit pas, que ce soit parce que la connexion réseau ne le permet pas ou tout simplement parce qu'aucun PC n'est disponible à proximité.

Aujourd'hui, nous allons configurer un système de réception de notification.
Vous pourrez le configurer à votre guise, pour recevoir un mail, une notification dans votre agenda Google, ou mieux, un SMS.

Pré-requis :

  • Un compte Google ;
  • Un serveur web hébergeant PHP 5.2.4 ou supérieur ;
  • Les extensions PHP suivantes : ctype, dom, libxml, spl, standard, openssl (normalement inclues par défaut dans la plupart des configurations, même gratuites).

Tout est prêt ? Let's go...

Peut être en avez-vous déjà entendu parler, vu des bouts de code étranges...
Une quine est un programme qui s'écrit lui-même sur la sortie standard. Autrement dit, l'exécution du programme affiche le code source du programme.

Quelques règles structurent ce jeu à priori trivial, la principale étant bien sûr l'interdiction d'accéder au fichier contenant le code source ! Y a des limites à la facilité, namého.
Une fois muni de cette contrainte, le jeu devient nettement plus intéressant.
L'approche de base étant bien entendu de mettre le programme dans une variable de type chaîne de caractères. Le problème ? Que met-on au moment de redéfinir la variable dans le String ? Si on recopie le programme, on obtient un programme de taille infinie ! (e.g. var i:String="var i:String=\"var i:String="). Il faut donc ruser pour écrire sa quine ! Et n'abandonnez pas : si votre langage est Turing Complet (comme la quasi totalité des langages), vous pouvez faire une quine avec.

Ci-dessous, quelques exemples de quine.

Comme souvent, l'article du jour part d'une interrogation.
Imaginons que nous disposions d'un ensemble d'articles en base de données.
Pour ne pas alourdir les accès au serveur SQL, les logs de consultation sont stockés dans un fichier texte, par exemple en serializant un array avec clé = ID et valeur=Nombre de vues. Autrement dit, on dispose de deux données a priori indépendantes :

  • Le titre et l'ID en base de données
  • L'ID et le nombre de vues en fichier texte.

Vous voyez venir le problème gros comme une maison : comment connecter ces deux jeux de données pour, par exemple, récupérer les 10 articles les plus vus ?
Une rapide réflexion vous amènera peut-être à considérer la fonction IF imbriquée n fois, mais ce n'est bien évidemment pas viable.

En fait, mySQL fournit deux fonctions pour ce genre de questionnement : FIELD et ELT.

Si vous faites un peu de programmation Flash en AS3, vous aurez remarqué que la classe Array, certes bien fournie, n'est pas parfaite : certaines opérations de base ne sont pas intégrées dedans, ce qui oblige à recoder à chaque fois des fonctionnalités aussi simples que la suppression d'un élément ou son clonage.

En fait, on peut faire mieux : en créant une classe qui hérite de Array, on peut ajouter toutes les méthodes nécessaires. La seule restriction étant qu'on ne peut plus utiliser la syntaxe des crochets pour déclarer un nouvel élément (comme [1,2,3]).
Dans mon cas j'ai nommé cette classe ArrayPlus, le code est juste en-dessous.

Présentation : SkyRaider est un nouvel auteur qui réalisera lui aussi des compilations de liens sur un rythme plus ou moins régulier.

On commence ce premier post avec un petit lot d'images insolites du net :