Quelques trucs sur PHP #2

Une deuxième série de petits trucs sur PHP...

Page blanche

Plus j'utilise PHP, plus je me rends compte qu'il y a quand même des trucs bien foireux dedans... Notamment ceci : lorsqu'une classe contient deux définitions de la même méthode (du moins dans certains cas, j'ai pas trop approfondi pour voir si c'est vraiment systématique), on n'obtient pas d'exception, ni même la traditionnelle "fatal error" non-catchable et sans trace, mais bel et bien une page blanche sans aucune explication \o/ J'imagine que derrière PHP doit mourir lamentablement sur un "Segmentation fault"... Bref, quand vous obtenez une page blanche, pensez à vérifier si vous n'avez pas raté un copier/coller quelque part...

Duplication de tableaux

Après avoir tenté en vain de dupliquer un tableau avec le mot-clé clone (qui retourne null), j'ai cherché un peu et je suis tombé sur cet article. Donc apparemment une simple affectation suffit à dupliquer un tableau (ce qui explique au passage certaines choses concernant la quantité astronomique de mémoire qu'arrive à bouffer PHP dans certains cas) ! Comme quoi même en utilisant un langage pendant des années, on peut passer à côté de certains trucs de base...

L'instruction continue

Je parlais il y a quelque temps de l'instruction break qui admet un paramètre permettant de sortir de plusieurs boucles imbriquées d'un coup, eh bien l'instruction continue se comporte de la même façon.

Je n'avais pas insisté dessus à l'époque (parce que dans le cas du break, c'est évident) mais dans les deux cas, un switch est considéré comme une boucle. Donc si vous êtes dans un switch contenu dans une boucle et que vous voulez passer à la prochaine itération de la boucle il faut appeler un continue 2;.

Pour plus de détails sur l'instruction continue, rendez-vous sur le manuel officiel de PHP.


Quelques jeux pour iPod Touch/iPhone #3

Lux Touch

Lux Touch

Un clone du Risk plutôt agréable. Avec des parties courtes : entre 5 et 10 minutes environ. Un peu facile peut-être : sur les quelques parties que j'ai faites, je n'en ai perdu aucune... Mais ça reste distrayant quand on a quelques minutes à occuper ^^

Apparemment l'éditeur propose également des versions PC et Mac avec différentes variantes (la version iPod gratuite ne propose que la carte du monde et pas de sauvegarde de la partie en cours) mais ça me semble un peu cher (plus de 10$ à par jeu)...

Alien Breaker Lite

Un casse brique sympathique proposant une bonne dose d'options différentes et surtout une bonne exploitation de l'accéléromètre. Pas facile à diriger au début puisqu'il faut incliner l'iPod vers la gauche ou la droite pour se déplacer, on prend assez vite les choses en mains.

Alien Breaker - 1 Alien Breaker - 2 Alien Breaker - 3

Deux reproches cependant :

  • dans le bus, l'accéléromètre c'est décidément pas cool comme interface
  • comme on touche assez peu l'écran (uniquement pour lâcher la balle quand on a l'aimant ou qu'on vient de perdre une vie) il lui arrive par moment de s'assombrir, prenant ça pour une inactivité...

Bomber Online (0,79€)

Il s'agit là du deuxième jeu payant que j'ai testé sur l'iPod Touch, mais on ne peut pas dire qu'à ce prix là je me sois ruiné :p Ce clone du classique Bomberman a pour lui d'être nettement moins cher que son concurrent Bomberman Touch et en plus il est en français, ce qui n'est de loin pas le cas de tous les jeux du marché.

Bomber Online - 1 Bomber Online - 2 Bomber Online - 3

On a le choix entre deux mode de contrôles : soit via des flèches en bas à gauche (comme sur un joypad), soit en déplaçant le doigt sur l'écran. Le jeu propose un mode "aventure" solo (bon là le scénario est la juste pour faire joli...) et un mode multi-joueur (que je n'ai pas testé vu que j'ai rarement le WiFi à portée quand je joue. Mais pour les possesseurs d'iPhone, ça doit surement être sympa ^^


Plugin Post-lister pour Wordpress - version 0.4

Je viens de taguer la version 0.4 de mon plugin Post-lister avec pas mal de petites nouveautés.

La première et la plus importante fait suite à la demande d'Adrian et ajoute de deux nouveaux paramètres permettant d'afficher le contenu des articles et commentaires listés ainsi que l'avatar de l'auteur.

On a ensuite plusieurs améliorations plus mineures :

  • suite à la question de Sandrine, j'ai mis à jour la documentation en listant les options de tris propres à chaque liste et pour faciliter la configuration des widgets, j'ai remplacé le champ texte par un menu déroulant, ce qui évite d'avoir à retenir lesdits paramètres.
  • comme je trouvais les formulaires de configuration des widets un peu hauts, je les ai tous les deux découpés en deux colonnes ce qui évite d'avoir à "scroller" pour en voir le bout.
  • j'ai également complété les liens vers les commentaires dans les listes de commentaires pour qu'ils pointent sur le commentaire en lui-même (via l'ancre prévue à cet effet dans les thèmes bien faits) plutôt que bêtement vers le haut de la page de l'article associé.
  • j'ai enfin corrigé un bug qui faisait que si l'on cliquait sur le bouton "annuler" du formulaire de l'un des widgets puis qu'on enregistrait les modifications, le widget perdait l'ensemble de ses configurations.

Par ailleurs j'ai également un peu revu la doc et rajouté un fichier readme en français.

Voilà voilà, c'est tout pour cette mise à jour mais ça me semble déjà pas mal ^^


Un peu plus de place...

Cela faisait un bout de temps que je trouvais le design de ce site un peu trop étroit, ce qui engendrait en particulier des pages beaucoup trop hautes pour les articles un peu longs. De plus, à l'origine je l'avais fait pour qu'il s'affiche parfaitement avec une résolution 800x600 mais ce n'est plus forcément d'actualité : d'après Google Analytics, seules 8 visites (soit 1.24%) ont été faites avec cette résolution, ce qui est bien peu.

Faire un design flexible serait pas mal mais ça interdit de mettre une bannière très travaillée en haut. De plus, sur un écran très large, ça donne des lignes vraiment trop longues (un écran panoramique c'est bien pour un film, vu que c'est le format utilisé et pour un ordinateur portable pour réduire l'encombrement mais dans tous les autres cas, ça me semble plus emmerdant qu'autre chose...).

En conséquence, j'ai retouché un peu le thème en sortant la "sidebar" : la partie principale reste toujours consultable sans problème en 800x600 et l'ensemble s'affiche entièrement en 1024x768, donc ça me semble un bon compromis. Et on évite de "scroller" inutilement sur les articles longs ^^

Avant
Avant
Après
Après

En tous cas, c'est fou le temps qu'on peut perdre sur des CSS... et une fois qu'on croit en être sorti, on regarde ce que ça donne sous IE et c'est reparti pour un tour :tired: Vivement que cette brave merde d'IE6 disparaisse du marché... Bon en même temps, je pourrais décider de laisser tomber la compatibilité avec cette antiquité, d'autant que seul 25% des visites sur ce site se font avec IE (toutes versions confondues, dont un tiers avec IE6) mais j'essaie de faire en sorte d'avoir quand même un truc regardable et rien que ça c'est pas toujours évident.


Quelques jeux pour iPod Touch/iPhone #2

Galcon Lite

Galcon Lite

Un petit jeu de conquête spatiale mêlant stratégie et vitesse. Chaque joueur commence avec une planète et doit éradiquer son adversaire de la zone en lui prenant toutes ses planètes. Pour ce faire il lui faudra conquérir des planètes neutres et reprendre les planètes conquises par l'adversaire avant de se faire submerger.

Il y a différents modes de difficulté, les premiers étant vraiment très simples, mais ça commence à sérieusement se corser au niveau 6 (Amiral). Une partie ne dure que quelques minutes, mais on a facilement tendance à les enchainer.

Une version payante propose apparemment d'autres modes de jeu ainsi qu'un jeu multijoueur, mais je ne l'ai pas testé. Une version Mac/PC/Linux existe également parallèlement à la version iPod Touch/iPhone.

Orions: Legend of Wizards (3€99)

Ce premier jeu payant que j'ai tenté s'inspire fortement de Heroes of Might and Magic dont il reprend le principe du tout par tour, de la conquête de villes où l'on construit des bâtiments permettant de produire des unités.

Orions: Legend of Wizards - le menu principal Orions: Legend of Wizards - la carte du monde

Il ne s'agit pas cependant d'un bête clone puisque le système de combat est un peu différent et se rapproche plus d'une partie de jeu de cartes à collectionner : chacun des deux joueurs peut jouer une carte par tour qui est soit une créature, soit un sort, puis chaque créature de son camp attaque la créature située devant elle, ou - à défaut - le joueur adverse. Les créatures peuvent également avoir des pouvoirs activables une fois par tour avant l'attaque. Contrairement à un jeu de cartes à collectionner classique, le joueur a accès à toutes ses cartes (pas de pile de pioche), ce qui a pour avantage de supprimer la dose de hasard qui accompagne en général ce genre de jeux.

Orions: Legend of Wizards - les villes Orions: Legend of Wizards - les combats

Dans l'ensemble le jeu est sympa, avec de bons graphismes et une musique agréable. Je m'interroge cependant sur l'aspect répétitif à long terme (on est plus exigeant de ce côté-là pour un jeu payant que pour un gratuit, forcément)... pour l'instant je n'ai fait que deux parties, on verra à l'usage.

Bix Lite

Bix Lite

Ce jeu, est un clone de Qix - un jeu d'arcade datant de 1981 - où but est de tracer des lignes sur l'écran jusqu'à colorer 75% de la surface. Jusque-là c'est simple mais tant qu'une ligne n'est pas terminée, il ne faut surtout pas que l'un des billes présente ne la touche. Évidemment, plus on avance, plus il y a de billes à se promener dans la zone et donc plus la difficulté grandit.

Le jeu est sympa même si l'on peut regretter ses graphismes très pauvres (quasiment identiques à ceux de Qix qui ont près de trente ans, donc forcément...). La version gratuite se limite à 6 niveaux, la version payante (0€79) va plus loin.