lalahop

Tomb Raider fail

Table des matières

J'ai toujours adoré la série de jeux vidéo Tomb Raider sur PC. Un jeu étant un logiciel et un logiciel sans bug étant un logiciel insuffisamment testé, on peut observer quelques "fail" :

Tomb Raider Legend :

Le niveau 5, celui se déroulant au Kazakhstan est particulièrement buggué, même avec les deux patchs (le 1.1 et 1.2) appliqués. Dès le début du niveau, il faut effectuer un saut en parachute. En temps normal, lorsque le joueur lance Lara dans le vide, une "cinématique" s'enclenche. Avec l'option "contenu de prochaine génération" activée dans les options graphiques du jeu, le jeu plante et se ferme. Un peu plus loin dans le niveau, il faut poursuivre un train. Quand l'option est activée, des morceaux de roche ou du sol deviennent invisibles et les ennemis en voitures/motos peuvent passer au travers. Dés que l'option est désactivée, tout est ok. J'ai constaté cela sur 2 PCs ayant des configurations bien différentes et équipés de systèmes d'exploitation différents (XP et Seven pour ne pas les citer).

Tomb Raider Anniversary :

Je n'ai jamais réussi à reproduire ce bug. Je chargeais un profil à partir du menu du jeu et voici ce que m'a indiqué le jeu :

Huum ... je l'insère où la carte mémoire ? DMC ?

D'un part, je joue sur PC, pas sur PlayStation et d'autre part, je configure la langue du jeu sur français. Ça sent donc le double fail.

Une astuce pour Tomb Raider Anniversary :

Lorsque vous êtes dans le niveau 10 dit l'obélisque de Khamoon et plus particulièrement dans la pièce où il ne vaut mieux pas activer un symbole de Ânkh, il faut descendre en empruntant les blocs à gauche, puis utiliser le grappin pour atterrir sur un bloc qui se trouve en bas et à gauche de la pièce. Ensuite, à vous de trouver le levier qui permet d'abaisser le dernier pont qui cache le scarabée d'Osiris. Au retour, il faut emprunter le chemin suivant pour obtenir un artefact :

Le chemin vers l'artefact

Il paraît donc logique de continuer sur le chemin suivant pour regagner la sortie :

Le mauvais chemin vers la sortie

Le problème est que le saut final pour regagner les blocs qui se trouvent à côté de la sortie ne fonctionne que très rarement ... ou alors je suis une vraie brêle. C'est pourtant la solution conseillée.
Moi je redescend toujours au fond de la salle et je remonte par là où je suis descendu. Je remonte donc sur le petit bloc qui se trouve en bas et à gauche de la pièce (quand on regarde depuis l'entrée/la sortie), je prend le grappin pour marcher sur le mur et arriver aux blocs qui se trouvent à coté de la sortie et remonter grâce à eux. Ça passera peut-être mieux avec une image :

Mon chemin vers la sortie

D'ailleurs, lorsque je redescend, je croise toujours un monstre dans le petit couloir : il n'est peut-être pas là par hasard.

Le grand retour

Table des matières

Les raisons d'une absence

Aujourd'hui sera marqué par mon retour sur le réseau mondial. Hé oui, j'avais un site avant ce blog, toujours sur le thème de l'informatique en général. Je l'ai fermé il y a bientôt 3 ans. Il ne manquera qu'à quelques visiteurs occasionnels. Je l'ai fermé car il ne me permettait pas de m'exprimer comme je le souhaitait : seul un blog me le permettrait. Mais il faillait tout recoder. Cela aurait dû être rapide mais le manque de temps et mon entêtement ont ralentit mon retour sur le web.

En effet, j'ai codé une première version en suivant l'architecture MVC et le modèle objet. Mais elle ne me satisfaisait pas. Mais ce fût une bonne expérience car l'objet en PHP est passionnant à étudier.

J'ai ensuite découvert Blogotext. Il s'agit d'un moteur de blog simpliste, efficace et qui n'utilise pas de bases de données. Dans un premier temps, j'ai reporté à Timo, le repreneur de Blogotext, quelques failles et leurs correction ainsi que des idées d'amélioration sous couvert d'un pseudonyme. Notamment :

  • un bug lors de l'installation dû à l'utilisation des tags PHP courts (<? ?>) non supportés sur tous les serveurs selon la configuration du php.ini
  • appel à une variable non définie dans le fichier lastcomm.php
  • non filtrage, avec htmlspecialchars par exemple, des champs du formulaire des commentaires lors d'un retour du formulaire si une erreur survenait
  • le système de sessions de l'administration était faillible à la fixation et au détournement
  • amélioration du système de déconnexion de l'administration pour une meilleure suppression de la session

J'avais aussi découvert la faille CSRF dans l'administration qui permettait la suppression d'un ou plusieurs billet(s) et/ou commentaire(s) mais quelqu'un a reporté cette faille avant moi.

Puis la license de Blogotext, Creative Commons BY-NC-ND me fit réviser mon choix. En effet, je ne pouvait pas modifier tout ce qui ne me plaisait pas comme par exemple le système de captcha que je jugeait vulnérable. C'est dans ce genre de situation que l'on comprend qu'il y a une nuance entre un logiciel open source et un logiciel libre. Dans le premier cas on n'a le code source mais pas forcement l'autorisation d'en faire ce qu'on en veut.

C'est environ dans cette période que j'ai décidé de partager mon blog avec Dodo, un ami, afin d'enrichir le contenu de ce blog : chacun de nous évoquera des thèmes complémentaires. Mais il faillait toujours choisir le moteur de blog ...

J'ai donc essayé Dotclear qui ne m'a pas convenu pour des raisons purement techniques cette fois-ci. Mais ma mémoire commence à flancher et je ne sais pas vous dire ce qui m'avais déplu.

Puis, j'ai essayé WordPress. Celui-ci ne m'a pas convaincu pour ces raisons :

  • les thèmes et notamment le thème par défaut, sont codés avec les pieds.
  • tout comme Dotclear, n'importe qui peut utiliser le pseudonyme de l'administrateur. J'adore les blagues mais pas trop non plus.
  • il est difficile a sécuriser, notamment avec des fichiers htaccess à cause d'un mauvais rangement des fichiers
  • le code est globalement sale : encore du PHP4 (bon ok va pour la compatibilité), des fonctions qui en appellent d'autres qui en appellent d'autres et j'en passe.
  • WordPress enregistre de très nombreux brouillons (automatique ou dû à la prévisualisation) pendant la saisie d'un article. Cela encombre inutilement la base de données. Il faut le voir pour le croire. Oui bien sûr je pourrais écrire mon billet dans un éditeur de texte sur ma machine et le copier/coller au dernier moment. Mais si je faisais ça, d'une part, je n'ai plus besoin de WordPress : j'accède à la base de données et j'y enregistre mon billet et d'autre part, je me priverai de la prévisualisation.

Malgré tout, j'ai décidé de le garder temporairement, le temps de coder notre propre moteur, taillé à nos besoins. Peut-être faudrait-il ressortir la version objet/MVC des cartons et l'améliorer ...

Les sujets évoqués sur ce blog

Il n'y aura pas vraiment de thématique globale sur ce blog. Bien évidemment, nous parlerons majoritairement d'informatique et de nouvelles technologies mais nous pourrions très bien dériver sur de l'économie, de la politique, le cinéma ou tout autre sujet. Bref : aucune porte n'est fermée.

Il n'y aura pas non plus de niveau bien que nous ne soyons pas les élites du monde high tech.

La liberté d'expression sera de rigueur. Les propos que nous tiendrons n'engageront que nous.

Le délai de parution des articles

Aucun délai n'est prévu : nous posterons quand nous aurons quelque chose à dire et c'est tout. Je préviens d'avance qu'il va y avoir beaucoup de billets dans les jours suivants, histoire de "rattraper le temps perdu". Ne soyez donc aps déçu de voir le rythme diminuer par la suite.

A propos du nom de domaine

Guiguishow.info en voila un nom bizarre ! D'ailleurs quand on le cherche sur google on trouve des sites ... bizarres.

Premièrement, ce nom symbolise une époque, celle où j'essayais d'ouvrir l'esprit des gens en leur montrant l'autre côté de la loi dite HADOPI, les dangers de la vidéo-surveillance et le pour et le contre de la loi LOPPSI 2, le tout d'une manière relativement virulente. Mes moments de parole ont donc été surnommés "guigui's show" sans que je sache vraiment pourquoi. En manque d'imagination lorsque j'ai réalisé la version objet de ce blog, j'ai pris ce mot comme nom pour ce blog.

Deuxièmement, je n'ai pas fais de recherches avant de louer ce nom de domaine et je n'avais donc pas eu connaissance que ce mot était déjà pas mal utilisé même par des sites proposant des webcam sexy. Mais j'en vois le bon côté : guigui's show ou comment se fondre dans la masse.

Quoiqu'il en soit, méfiez-vous des imitations.

Vous avez installé GNU\Linux et votre Windows 7 vous fait la tête

Note : ce billet provient de l'ancien blog, celui que j'avais mis en ligne durant le développement de la version orientée objet du site, puis la version utilisant Blogotext. J'ai conservé la date de publication d'origine.

Table des matières

GNU\Linux n'est pas nouveau pour moi : j'ai déjà utilisé Débian sur une longue période pour le plaisir, j'ai utilisé Backtrack 2 (!) puis Backtrack 4 en live CD pour tester la sécurité de mon réseau wifi personnel. Et je ne compte plus le nombre de fois où gparted ou clonezilla, dans leur version live CD, m'ont aidés.

Ce coup là, j'ai installé Kubuntu sur mon ordinateur portable à l'aide d'une clé USB. L'installation en moins de 5 minutes m'a bluffée, d'autant que mon portable n'est pas une bête de course. Les trolls diront "normale que ça s'installe vite, GNU\Linux c'est no-features" ;).

Mais, de retour sous Windows 7 pour récupérer quelques documents, deux problèmes apparaissent. Dommage que j'ai besoin de Windows pour mon travail sinon j'aurais résolu les problèmes plus rapidement : formatage de la partition contenant Windows.

Ré-activer le verrouillage automatique du pavé numérique au démarrage de Windows

Le BIOS active bien le verrouillage du pavé numérique mais, visiblement, GRUB annule cela. Il faut donc activer le pavé numérique sous Windows et sous Kubuntu.

Occupons-nous d'abord de Windows : la solution la plus souvent conseillée sur le net est de modifier, dans le registre, la valeur HKEY_CURRENT_USER\Control Panel\Keyboard\InitialKeyboardIndicators pour la faire passer à "2".

En ce qui me concerne, la valeur était bonne pour mes deux comptes utilisateurs. La solution est donc ailleurs. Elle est aussi donnée un peu partout sur le net : il faut modifier la valeur HKEY_USERS\.DEFAULT\Control Panel\Keyboard\InitialKeyboardIndicators pour la mettre à "2" .

Attention : contrairement à la valeur "HKEY_CURRENT_USER\Control Panel\Keyboard\InitialKeyboardIndicators", il vous faut un compte avec les droits administrateurs pour modifier cette valeur.

En ce qui me concerne, la valeur initiale était : 2147483648, ce qui me semble bizarre vu que les valeurs admises par le système sont 0 ou 2. Néanmoins : premier problème résolu !

Explorer.exe : Échec de l'exécution du serveur

En effet, à chaque fois que j'ai recours à l'explorer Windows, j'ai le droit à ce message d'erreur : quand je clique sur l'icône "Ordinateur" du bureau, quand je tape "explorer.exe" dans "Exécuter", quand je tape "C:\" dans "Exécuter", etc ...

Plusieurs solutions sont diffusées sur le net. J'ai essayé celle qui consiste à réinscrire certaines dll, j'ai aussi essayé celle qui consiste à modifier la valeur "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal" du registre.

Aucune d'entre elle a fonctionné, même après un reboot. J'ai trouvé la solution par moi-même, et surtout par le plus grand des hasards.

Ouvrez votre navigateur internet et téléchargez un fichier, n'importe lequel. Sauf réglage, il va vous demander dans quel dossier vous voulez enregistrer le fichier. A gauche de la fenetre "Enregistrer sous", vous avez des liens et notamment les bibliothèques "Documents", "Images", "Musiques", "Vidéos". Pour chacune d'elle, consultez ses propriétés et vérifiez que tous les emplacements définis dans les propriétés existent bien.

En effet, quand j'ai installé Kubuntu, j'ai formaté ma partition qui contenait mes documents en FAT32 (pour avoir le top de la compatibilité, sans la charge CPU qui explose à cause de ntfs-3g), ce qui a eu pour effet, au redémarrage de Windows, de changer la lettre de ma partition et donc de faire pointer les liens "bibliothèques" dans le vide.

Et voila, deux problèmes en moins.

Installer Emesene 1.6.2 sous Windows 7 à partir du tarball

Édit du 08/03/2011 à 20h25 :
Attention : Ce billet est utile uniquement dans le cas où la dernière version d'Emesene n'est pas disponible, sous forme d'installeur pour Windows (l’installeur sert pour les 3 dernières versions de Windows : XP, Vista, 7), sur le site officiel (en bas de la page). Actuellement, la dernière version stable d'Emesene est la 2.11.7 (c'est écrit en haut de la page) et l'installeur Windows proposé sur le site installe la version 2.11.7. Vous n'avez donc pas besoin de suivre ce billet : téléchargez l'installeur, installez, exécutez !

Je constate également que tout se perd : Emesene est devenu un client multi-protocoles (MSN, GTalk, Jabber, Facebook chat, ...) comme tant d'autres et c'est bien dommage. Si vous voulez un client pour aller uniquement sur le réseau MSN (c'est le but de cet article à la base), tournez-vous vers msnp-sharp (licence MIT), aMSN (licence GNU GPL) ou bien encore, mais c'est dommage vu la licence, vers Mercury Messenger (licence propriétaire).

Enfin, sachez que ce tutoriel n'est plus valide avec le tarball/zipball de la version 2.11.7 (et donc des versions ultérieures). Si vous voulez vraiment utiliser le tarball/zipball pour installer Emesene, suivez les instructions qui se trouvent dans le fichier INSTALL_WINDOWS.txt du tarball/zipball.

Fin de l'édit

Note : ce billet provient de l'ancien blog, celui que j'avais mis en ligne durant le développement de la version orientée objet du site, puis la version utilisant Blogotext. J'ai conservé la date de publication d'origine.

Table des matières

Présentation rapide de Emesene

Emesene est un client de messagerie instantanée alternatif à Windows Live Messenger de Microsoft. Tout comme lui, il permet d'utiliser le protocole MSN. Mon intérêt pour ce logiciel vient du fait qu'Emesene n'est pas multi-protocoles contrairement à beaucoup d'autres clients de messagerie instantanée. Si j'ai besoin de me connecter seulement sur le réseau MSN, je préfère avoir un logiciel spécialisé pour ça plutôt qu'un logiciel multi-protocoles dont je ne me servirai que de 2% des fonctionnalités.

Quel est le problème ?

  1. La version 1.6.1 s'est mise à planter souvent et/ou à afficher de nombreux message "Exception" comme celui-ci :

    Exception
    You are using emesene 1.6.1 "mate" so you're free to complain here: http://forum.emesene.org/index.php/board,19.0.html
    Check already existing tickets for duplicates first, please. Traceback (most recent call last):
    File "emesenelib\soap\manager.pyo", line 139, in process
    File "emesenelib\soap\manager.pyo", line 76, in process
    File "emesenelib\ProfileManager.pyo", line 152, in onGetProfile
    IndexError: list index out of range

  2. La version 1.6.2, pourtant disponible depuis le 26 mai, n'est pas disponible sous forme d'exécutable "clé en main".

La solution ? Dompter un python !

En effet, pour utiliser la version tarball d'Emesene 1.6.2, il faut installer Python. Notez que la solution que j'expose ici est partielle : n'utilisant ni webcam ni micro, je ne me préoccupe pas de la compilation de la libmimic nécessaire au bon fonctionnement de la webcam.

Télécharger le nécessaire

Il faut :

  • La dernière version de Python pour Windows
  • La dernière version de GTK2 runtime pour Windows
  • La dernière version de pycairo pour Windows
  • La dernière version de pygobject pour Windows
  • La dernière version de pygtk pour Windows

Installer le tout

Évidemment, il vous faut une session avec les droits administrateur (ce qui ne devrait pas poser de problèmes, on parle de Windows, là :p). Attention : il y a un ordre d'installation à respecter.

D'abord, il faut installer Python. Attention : sous Windows 7 avec Python 2.6.5, et aussi bizarre que cela puisse paraitre, il faut installer Python "only for me, xxx" pour que les sessions avec les droits limités puissent exécuter Python (et donc Emesene). Si vous aimez que vos programmes soient bien rangés, vous pouvez installer Python dans "Programm Files" au lieu du répertoire proposé par défaut (C:\Python{version de Python}).

Ensuite, il vous suffit d'installer le GTK2 runtime.

Ensuite, installez pycairo, puis pygobject puis pygtk (dans cet ordre).

L'heure du test

Allez dans le menu démarrer, trouvez "Python" et lancer la "IDLE (Python GUI)". A l'intérieur de celle-ci, tapez "import gtk".

Si des erreurs s'affichent, vous devez désinstaller tout ce que nous venons d'installer puis tout réinstaller en suivant l'ordre que j'ai donné. Si ça ne marche toujours pas, essayez une version précédente de Python. Dans ce cas, attention à bien télécharger les versions de gtk2 runtime, pycairo, pygobject, pygtk compatible avec votre version).

Si le prompt (">>>") s'affiche, vous pouvez passer à la suite.

Installer Emesene

Créez un répertoire "Emesene" dans "Programm Files" et décompressez la version tarball à l'intérieur de ce nouveau dossier.

Voila ! l'installation est finie ! Waaaaaah on se croirait presque sur un système UNIX (ou pas) !

L'heure du test, le retour

Ouvrez une invite de commande et tapez : "C:\chemin\de\python\python" "C:\chemin\de\Emense\emesene" (avec les guillemets). Exemple : "C:\Program Files (x86)\Python\python.exe" "C:\Program Files (x86)\emesene\emesene". Normalement, Emesene démarre. Des messages s'affiche dans l'invite de commande. Ils indiquent que la webcam ne sera pas supporté car vous n'avez pas compilé la libmimic, n'ayez pas peur :p.

Il ne vous reste plus qu'à créer les raccourcis dans le menu démarrer et dans le sous menu "Démarrage" si vous souhaitez qu'Emesene démarre automatiquement avec Windows. Comme cible du raccourci, vous mettrez évidemment "C:\chemin\de\python\python" "C:\chemin\de\Emense\emesene".

Si vous ne parvenez pas à faire fonctionner Python, je met à votre disposition un package (22.5 Mo) qui contient tout ce qui faut (python, gtk2 runtime ...) et qui fonctionne.

PS : Pour l'ordre d'installation des différents composants, ce blog m'a bien aidé : Installing PyGTK on Windows