Résultats de tests de papdevis
Voici un outil qui teste la qualité d’un site. Il fonctionne bien :
Les tests ont été assez bons, pour mon premier site développé en tant que freelance :
Tout ce qui concerne le développement en général, que ce soit des choses générales, ou des choses bien précises. Cela va de la gestion de projet à la recherche du fonctionnement de pointeurs en C.
Voici un outil qui teste la qualité d’un site. Il fonctionne bien :
Les tests ont été assez bons, pour mon premier site développé en tant que freelance :
Cela fait une bonne heure que je cherche comment avoir le double click sur une grid générée dynamiquement.
C’est très simple :
Ce code ne fonctionnait pas, donc si vous êtes dans le même cas que moi, n’ayez pas peur :
this.gridAttributs = Ext.create('Ext.grid.Panel', {
border: 0,
store: this.store,
columns: [
{ text: "id", dataIndex: 'id', sortable: true },
{ ... },
{ ... }
],
celldblclick: function(evt, elem, opts ) {
console.log('dblclick');
}
});
Voici le code qui fonctionne :
this.gridAttributs = Ext.create('Ext.grid.Panel', {
border: 0,
store: this.store,
columns: [
{ text: "id", dataIndex: 'id', sortable: true },
{ ... },
{ ... }
]
});
this.gridAttributs.on('cellDblClick', function(evt, elem, opts ) {
console.log('dblclick');
});
J’espère vous avoir évité de perdre l’heure que moi même j’ai perdu ! 😉
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 :
mysqldump
total ;mysql
concerné, puis re-création avec les bons droits.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');
Je voulais tester si un élément est visible, ou non, en jQuery.
Après quelques recherches sur le net, on tombe souvent sur des exemples comme cela :
if ( $("#monid").is(':visible')) { ... }
C’est une grossière erreur.
Voici l’explication, et le principe qu’il faut avoir en tête :
Lorsqu’on cache ou qu’on montre un élément avec jQuery ou jQueryUI, cela va presque toujours modifier la propriété display
(display:none
, display:block
, etc).
La propriété visible
est complètement différente, et est utilisée pour cacher un élément, mais en gardant la place qu’elle occupe.
Pour vérifier si quelque chose est « caché » (notez la subtilité avec la différence de « pas visible« ) il faut vérifier la propriété css display
.
Exemple concret :
if ( $("#monid").css('display')!='none') { ... }
J’ai eu énormément de mal à trouver un exemple de script python-fu qui fonctionne.
Après avoir réussi à automatiser certaines tâches grâce à Gimp, je voulais créer des vecteurs, et y appliquer la brosse en cours.
Voici l’exemple de code qui fonctionne :
new_image = pdb.gimp_image_new( new_image_width, new_image_height, RGB )
new_layer = pdb.gimp_layer_new(
new_image, new_image.width, new_image.height,
RGBA_IMAGE, _("Background"), 100, NORMAL_MODE)
pdb.gimp_image_add_layer(new_image, new_layer, -1)
pdb.gimp_drawable_fill(new_layer, fill_type )
new_layer = gimp.Layer(
new_image, _("New Layer"),
new_image.width, new_image.height,
RGBA_IMAGE, 100, NORMAL_MODE)
pdb.gimp_image_add_layer(new_image, new_layer, -1)
pdb.gimp_drawable_fill(new_layer, fill_type )
new_vectors=pdb.gimp_vectors_new(new_image, 'Vectors!')
t = int(round(step / 1.5))
pdb.gimp_vectors_stroke_new_from_points(
new_vectors,
0, # 0 = Beziers Curve
30,
# {controle1} {centre} {controle2}
[ x-(step-t), y, x-step, y, x-(step-t), y,
x, y+(step-t), x, y+step, x, y+(step-t),
x+(step-t), y, x+step, y, x+(step-t), y,
x, y-(step-t), x, y-step, x, y-(step-t),
x-(step-t), y, x-step, y, x-(step-t), y],
False) # Closed = True
pdb.gimp_image_add_vectors(new_image, new_vectors, 0)
pdb.gimp_context_set_foreground( (255,255,255) )
pdb.gimp_context_set_brush( "Circle (07)" )
pdb.gimp_edit_stroke_vectors(new_layer, new_vectors)
gimp.Display( new_image )
Maintenant avec cet exemple, si vous voulez faire des vecteurs et les dessiner avec la brosse en cours, ainsi qu’avec mon article sur l’automatisation de Gimp, vous devriez arriver à faire beaucoup de choses !
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 :
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.
J’ai rencontré un problème incroyable : tout fonctionnait correctement sur tous les navigateurs : Internet Explorer, Firefox, et Safari. Mais pas sur Chrome ! Une fois n’est pas coutume, ce n’était pas Internet Explorer qui était le problème majeur !
Le problème est simple à expliquer : lorsqu’on s’inscrit sur http://papdevis.fr/ ou qu’on fait une recherche, j’enregistre le choix dans la session du côté du serveur. Rien dans les cookies.
"valider=1"
Seul problème : sur Chrome, le devis ne se validait pas parce que l’identifiant de session était réinitialisé ! Incroyable.
Grâce à ce lien, ma vie a changé : session-data-lost-in-chrome-only.
En fait, il fallait mettre un favicon, sinon Chrome continue à le chercher en boucle, et s’il ne le trouve pas, réinitialise la session.
Le genre d’erreur impossible à trouver (à moins d’avoir de la chance), parce qu’on n’arrive pas à imagine que le problème puisse venir du navigateur !
J’espère que mon article a évité à certains de se faire des cheveux blancs…
Enfin !
Mon site est sorti !
Sur ce site tout est gratuit, il n’y a aucune publicité. Rien.
Le principe du site est simple : vous êtes un particulier, vous voulez qu’on vous contacte pour un devis, par exemple, baby sitter. Inscrivez vous, faites une « demande de devis ».
Les professionnels qui sont sur le site reviendront vers vous.
Tout est gratuit, il n’y a aucune publicité. Rien.
Côté technique, je laisse les professionnels de l’informatique regarder et dire ce qu’ils pensent du site à la fois côté esthétique mais aussi côté technique (c’est un des sites les plus rapides… au monde).
N’hésitez pas à laisser des suggestions, elles seront bienvenues !
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 :