Mots-clé : développement

MySQL : solution à « Can’t find any matching row in the user table »

Voilà quel était mon problème, et j’espère vous aider en vous apportant une solution si vous avez ce problème :

j’ai fait un dump complet de toutes les bases de données mysql dans un gros fichier, via l’ordre mysqldump :

mysqldump -u root -pmonmotdepasse --all-databases > a_integrer.sql

Ensuite j’ai copié le fichier sur l’ordinateur destination, et j’ai ré-injecté le sql dans la base de données, ce qui a tout ré-intégré de manière transparente :

mysqldump -u root -pmonmotdepasse < a_integrer.sql

Le seul problème, c’est que, sur l’ordinateur destination, impossible de se connecter sur la base de données, alors que l’utilisateur avait bien été intégré dans la base. En me connectant à la base, j’ai voulu modifier le mot de passe, mais impossible. L’erreur était la suivante :

Can't find any matching row in the user table

Donc impossible de changer le mot de passe alors que l’utilisateur existe bien.

La solution qui a fonctionné est la suivante : supprimer puis recréer l’utilisateur avec les droits d’accès adéquats.

Faites la même chose :

  • un mysqldump total ;
  • ré-injection sur l’ordinateur destination ;
  • si problème avec les mots de passe : suppression à la main du compte mysql concerné, puis re-création avec les bons droits.

Facebook et anniversaires : petit bogue

J’ai reçu une demande d’invitation pour mon anniversaire.
Je coche « oui », et là on me dit qu’une connaissance a… des connaissances qui vont avoir un anniversaire bientôt.

La connaissance, c’est «%1». Je ne sais pas si vous connaissez beaucoup de «%1» ?

Moi oui, mais en développement, pas dans la vie de tous les jours !

Bogue anniversaire facebook.png

jQuery et changement de css / class / classname

Encore la petite astuce pratique qui vous évitera de chercher des heures :

Très souvent, on veut changer la propriété d’un div. C’est facile via la fonction jQuery

$('#mondiv').css('propriété', 'nouvelle valeur');

Mais si on veut applique carrément tout une classe ?

C’est très simple, c’est la fonction .toggleClass() :

$('#mondiv').toggleClass('nouvelle classe');

ExtJS 4 first look : le livre que j’ai révisé est sorti !

Voilà, on m’a demandé d’être relecteur technique (technical reviewer) du livre « Ext js 4 first look » que vous pouvez trouver ici :

http://www.packtpub.com/ext-js-4-first-look/book

Ce livre parle de ExtJS 4 et de toutes les (nouvelles) possibilités qu’offre le nouveau framework de Sencha, ansi que des comparaisons avec les anciennes versions, pour ceux qui connaissent déjà ExtJS.

Je suis au début :

Livre Ext js 4 first look

C’est un livre très pédagogique, qui vous servira bien si vous débutez.
Vous aurez certainement quelques marque page, notamment en ce qui concerne le MVC, qui n’est pas facile à appréhender (selon moi). J’avais d’ailleurs fait un howto ici.

Mon conseil serait : achetez-le, il est très bien.

Notez cependant qu’il faut un bon niveau JavaScript pour comprendre le livre.

ExtJS : exemple d’un développement

Voici une petite capture d’image d’un Intranet que j’ai développé.

Temps de développement : trois jours à temps plein.

Tout fonctionne parfaitement, en AJAX, synchronisation, etc.

Tout ça pour dire que ExtJS est vraiment une librairie formidable dans ce type de cadre :

Image d'exemple de développement d'un intranet en ExtJS

Funciton : un langage lisible et marrant

Voici, pour ceux qui ne le connaissent pas, un langage très récent (2011), fonctionnel, et lisible, mais entièrement nouveau, j’ai nommé (roulement de tambours) : « Funciton »

Voici un exemple de programme qui fonctionne, essayez de deviner ce qu’il fait :

(Note : ce n’est pas un dessin, c’est bien du texte, vous pouvez le sélectionner et le copier coller, ça fonctionne, essayez !) :


            ╓───╖
         ┌──╢ + ╟──┐
         │  ╙───╜  │
    ┌────┴────┬────┴────┐
    │  ┌┐     │      ┌┐ │
  ┌─┴──┤├──whoops!─┬─┤├─┴─┐
  │    └┘     │    │ └┘   │  ╔════════════════════════════╗
  │    ┌──────┴───┬┘      │  ║  addition — WITH           ║
  │   ┌┴┐        ┌┴┐      │  ║  THREE PROBLEMS (read on)  ║
  │   └┬┘        └┬┘      │  ╟────────────────────────────╢
  │ ┌──┴─╖  ┌───╖ │       │  ║  +(a, b) = b               ║
  │ │ << ╟──┤ + ╟─┘       │  ║      ? +(a^b, (a&b) << 1)  ║   │ ╘══╤═╝  ╘═╤═╝         │  ║      : a                   ║   │  ╔═╧═╗    │           │  ╚════════════════════════════╝   │  ║ 1 ║    │           │   │  ╚═══╝  ┌─┴─╖         │   └─────────┤ ? ╟─────────┘             ╘═╤═╝               │

Vous pouvez avoir toutes les informations sur Wikipedia ici :

http://esolangs.org/wiki/Funciton

Php : comment faire un trim() sur tout un array()

C’est simple, et voici comment faire en trois lignes (si vous enlevez mes commentaires) : je crée une fonction anonyme qui est appelée en boucle par array_walk() et qui fait un ‘trim’ sur l’élément en cours :

/* Pas très propre, mais rapide et qui reste
 * compréhensible : je crée une fonction anonyme qui
 * est appelée en boucle par array_walk() et qui fait
 * un 'trim' sur l'élément en cours :
 */
array_walk($tab,
  create_function('&$item,$key', '$item = trim($item);')
);

Php et utf-8 : comment lire correctement un fichier texte

Si vous essayez de lire un fichier en utf8 mais que vous avez des problèmes, voici une solution toute simple qui pourra vous aider : essayez de rajouter l’option « u » lorsque vous ouvrez le fichier. Mon code ne fonctionnait pas correctement jusqu’à ce que je trouve cette astuce :

$handle = @fopen('wfrench-1.2.3/dico', 'ru');
if ($handle!==false) {
  while (($buffer = fgets($handle, 4096)) !== false) {
    array_push( $mots, $buffer);
  }
  if (!feof($handle)) {
    fclose($handle);
    throw new Exception("Erreur: fgets() a échoué");
  }
  fclose($handle);
}
else {
  throw new Exception("Erreur: fopen() a échoué\n");
}

Php / optimisation / compilation et le projet du compilateur FaceBook

Saviez vous que Facebook a eu une idée assez intéressante ?
Ils ont crée un outil qui transforme le code Php en code C++ et qu’on peut donc compiler.
D’ailleurs la plupart des choses de FaceBook tournent via cet outil, pour accélérer et optimiser au maximum leur site.
Il est ainsi possible de pousser la performance Php à l’extrême.

Pour ceux qui veulent rendre leur site encore plus rapide, voici le lien :

https://github.com/facebook/hiphop-php

Delphi Embarcadero et RxLib : comment installer les composants

Il risque de vous afficher un problème de SizeOf :
Il vous faut juste préciser que c’est le SizeOf de l’unité Systems, donc :

System.SizeOf()

Puis ouvrez le fichier RxConst.pas :

Il manque simplement le define 220 : ajoutez après tous les define jusqu’au 210 :

{$IFDEF VER220}
const
SDelphiKey = 'Software\Embarcadero\BDS\8.0';
{$ENDIF}

Et vous pourrez compiler puis installer les composants.
Ce sont deux petites astuces simples, mais si je les avais eues, j’aurais gagné… deux heures 😉