Développement

HTML5

Qui n'a pas rêvé d'avoir un doctype qui ressemble à ça ? <!DOCTYPE html> Et bien le HTML5 va ravir les gens qui comme moi aime la simplicité. Mais déjà, le HTML5, qu'est ce que c'est ? Le HTML5 (HyperText Markup Language 5) est la dernière version du principal langage du web, le HTML. Le  […]

Lire la suite

Online Regular Expression Testing Tool

Une application en ligne, réalisée en Flex, permettant de tester les expressions régulières à la volée. L'interface est simple à utiliser. Et, si il existe probablement des outils plus performants, celui ci a l'avantage d'être en ligne. Plus d'info ici Message personnel: Non, on ne peut pas utiliser  […]

Lire la suite

Server2Go

Server2Go est un environnement PHP portable. A l'origine créé pour pouvoir mettre sur un CD-ROM ses applications web en PHP, il est désormais possible de s'en servir sur d'autres supports portables tels qu'une clé USB. Server2Go est un environnement comprenant Apache, PHP et MySQL. Server2Go est  […]

Lire la suite

Les moteurs de stockage de MySQL

MySQL

Me voilà en train de créer une base de données sur MySQL via PhpMyAdmin (histoire de pas me casser la tête).
Mais voilà je reste perplexe devant le choix de la liste déroulante "Moteur de Stockage". Habituellement, je ne me pose pas de question est laisse le choix par défaut, c'est à dire MyISAM, et puis voilà. Mais , si plusieurs types existent, il doit y avoir un intérêt, et là, j'ai eu envie de creuser un peu le sujet (et donc de me casser un peu la tête :) ).

Bien choisir son moteur fait partie du processus d'optimisation d'une base de données.
Voici donc un petit tour d'horizon des différents moteurs, et quelques tests comparatifs pour en savoir plus.

Les différents types
Tout d'abord sous MySQL on a deux types distincts, un moteur pour:
  • les tables transactionnelles (TST)
  • les tables non transactionnelles (NTST)

Avantages de chaque types
TST
  • Plus sûr. Permet de recouvrer ses données en cas de crash
  • Permet de combiner plusieurs commandes et de les accepter d'un coup à l'aide de COMMIT
  • Hors mode AUTO COMMIT permet d'annuler les modifications à l'aide de ROLLBACK
  • Si une mise à jour échoue, tous les chargements sont annulés
NTST
  • Plus rapides. Pas de traitements des transactions
  • Moins gourmande en espace disque. Pas de traitements des transactions
  • Moins gourmande en mémoire pour les mises à jour

Les différents moteurs
Pour faire simple, je vais me pencher uniquement sur les types mis à ma disposition sur la version que j'utilise, c'est à dire Mysql 5.0, pour un PHPMyAdmin 2.11.
  • MyISAM
  • Memory (Heap)
  • InnoDB
  • Blackhole
  • Archive
  • CSV
  • Federated
  • MRG_MyISAM


Lire la suite

Mettre le doigt sur les index inutiles d'une base MySQL

Arjen Lentz, le responsable du manuel de référence MySQL, propose une requête pour débusquer les index inutiles dans une base MySQL. SELECT s.table_name, concat(s.index_name,'(',group_concat(s.column_name order by s.seq_in_index),')') as idx, GROUP_CONCAT(s.cardinality ORDER BY s.seq_in_index) AS  […]

Lire la suite

Ma première application AIR

Jus De Citron on AIR

Adobe AIR permet de développer et de déployer des applications bureau, connectée au web, à l'aide des technologies AJAX ou Flex.
J'aime bien les applications basées sur la technologie AIR, comme par exemple Analytics Reporting Suite .
J'avais besoin de quelques statistiques pour mon blog, tels que le nombre de billets depuis l'origine, où ce genre de chose (des stats qui ne servent qu'à flatter mon égo), je me suis donc dit, plutôt que de faire des requêtes en base, que je devrais refaire la prochaine fois, je vais faire un script PHP, que j'intégrerais au blog.
Et puis, je me suis dit, pourquoi ne pas joindre l'utile à la curiosité, et de tenter de faire ça "ON AIR".
Me voilà donc partie.

Lire la suite

Lightbox

Lightbox Clones Matrix

A l'origine, la "lightbox" permet d'afficher une image en javascript, dans une popup. Aujourd'hui les frameworks javascript (Prototype, JQuery, ...) proposent chacun leur "lightbox".
De plus, les "lightbox" ne se contentent plus d'afficher uniquement une image, mais elles permettent aujourd'hui d'afficher des ensembles d'images, de l'ajax, du flash, ...)

Il est donc devenu difficile de trouver le bon script qui satisfera vos besoins.

"The Lightbox Clones Matrix" est donc là pour vous aider.

Lire la suite

Les emailings et la compatibilité client mail

Lorsque l'on envoie un client mail, on se demande toujours si il va passer sur l'ensemble des clients mails, que ce soit des logiciels ou des interfaces web. Généralement on teste sur son propre client mail version logiciel (Thunderbird, Outlook, ..) et sur une interface web (Gmail, Yahoo, ...)  […]

Lire la suite

Mysql et les DELETE imbriqués

Mysql

Pour faire des DELETE sur deux tables liées entre elles par une valeur d'id, si vous êtes sous MySQL >= 4.2, pas de problème, le NOT IN ayant été implémenté.
Vous pouvez alors faire vos DELETE en 2 requêtes:

DELETE FROM Tparent 
WHERE condition;
DELETE FROM Tenfant 
WHERE Tenfant.parent_id NOT IN (
     SELECT Tparent.id FROM Tparent
);

Par contre, si vous êtes sous MySQL < 4.2, là le NOT IN n'est pas possible.
C'est donc le USING qui va venir à votre secours.

Lire la suite

sftp par batch ou apprendre à sftp et à ssh à communiquer

ssh-agent

J'ai été récemment confronté à un problème pour envoyer des fichiers en sftp.
La problématique d'origine était pourtant simple: Envoyer un fichier (format texte) vers un serveur sftp dont j'avais toutes les informations et même la clé rsa.

Je pose ma clé dans le dossier /home/user/.ssh qui va bien en lui mettant les droits 700 comme il se doit. Je sais que la clé jumelle existe sur le serveur de destination donc pas d'inquiétude sur ce point.
Mon fichier doit partir en pleine nuit, pas de souci, je cré une ligne dans la crontab de mon "user" qui lance un fichier php à l'heure choisie.
Ce fichier php, vérifie l'existence du dit fichier à envoyer et génère un autre fichier "commandes.sh"contenant les commandes qui seront lancées une fois connecté à mon serveur sftp, puis lance un bash shell "exec_commande.sh" qui se charge de la commande sftp en elle même .
J'ai lu préalablement qu'il fallait que j'utilise "ssh-agent" et "ssh-add".

Lire la suite

Haut de page