TN3 Gallery for WordPress – Important installation note

Maybe you get blank images after ajax uploads using the TN3 gallery WordPress plugin.

A table of the TN3 WordPress plugin database schema has a FULLTEXT index and it has not been created if you use InnoDB as default engine. Therefore, to solve the problem:

  • use MyISAM as default engine for new tables OR
  • add “) DEFAULT CHARSET=utf8, ENGINE = MyISAM;” at line 108 of wp-content/plugins/tn3-gallery/tn3-gallery.php + trash previously created tables if necessary + disable and re-enable the plugin OR
  • execute this script on the database to add only the missing table (if you use InnoDB as default engine) :


CREATE TABLE IF NOT EXISTS `wp_tn3_fields` (
`docid` bigint(20) NOT NULL,
`name` varchar(20) NOT NULL,
`value_type` varchar(10) NOT NULL,
`value_text` text,
`value_date` datetime DEFAULT NULL,
`value_number` decimal(20,8) DEFAULT NULL,
`value_bool` char(1) DEFAULT NULL,
`value_comp` text,
PRIMARY KEY (`docid`,`name`),
KEY `ind_val_text` (`value_text`(100)),
KEY `ind_val_date` (`value_date`),
KEY `ind_val_number` (`value_number`),
KEY `ind_val_bool` (`value_bool`),
FULLTEXT KEY `ind_ft` (`value_text`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


Les 5 types de programmeur

Au cours de mes voyages et aventures en programmation j’ai rencontré beaucoup d’ennemies étranges, et même des alliés étrangers. J’ai identifié au moins cinq sortes de guerriers du code différentes, certains font de merveilleux compagnons d’armes, tandis que d’autres semblent déjouer chacun de mes plans.

Néanmoins ils ont tous leur place au panthéon du développement d’applications. Sans un mélange sain de ces différents styles de programmation vous trouverez probablement vos projets soit trop longs à réaliser, soit pas assez stables, soit trop parfaits pour des humains ne les envisagent.

Le programmeur “ruban adhésif”

Duct TapeLe code n’est peut être pas joli, mais merde, il marche !

Ce mec est le fondement de votre entreprise. Lorsque quelque chose va mal, il va le réparer rapidement et de façon à ce que ça ne pète pas à nouveau. Bien sûr, il ne se soucie pas de ce à quoi le code ressemble, de sa facilité d’utilisation, ou d’aucune autre de ces préoccupations triviales, mais il va y arriver, sans un tas de paroles ou de perte de temps sans aucun sens. La meilleure façon d’utiliser cette personne est cibler le problème et s’en éloigner.

Le programmeur perfectionniste et toqué

PerfectionVous voulez faire quoi à mon code ?

Ce mec ne se soucie pas des deadlines et des budgets, ils sont insignifiants au regard de la forme d’art qu’est la programmation. Quand vous recevez enfin le produit fini, vous n’avez pas d’autre choix que vous soumettre à la gloire magnifique et à la radieuse beauté du code parfaitement formaté, non, d’une beauté parfaite, qui est si efficace que tout ce que vous pourriez lui faire ne ferait rien d’autre que diffamer un chef-d’œuvre. Il est le seul qualifié pour travailler sur son code.

Le programmeur anti-programmation

Anti-ProgrammingJe suis programmeur, merde. J’écris pas du code.

Son monde a une vérité toute simple ; écrire du code, c’est mal. Si vous devez écrire quelque chose, c’est que vous le faites mal. Quelqu’un d’autre a déjà fait le boulot alors contentez vous d’utiliser son code. Il vous racontera à quel point sa pratique du développement est plus rapide, même s’il met autant voir plus de temps que les autres programmeurs. Mais quand vous obtiendrez le projet, il ne contiendra que 20 lignes de code réel et sera très facile à lire. Il ne sera pas très rapide, pas très efficace, ou pro-compatible, mais il aura été réalisé avec le minimum d’effort requis.

Le programmeur pas impliqué

Half-assedQu’est-ce que vous voulez de plus ? Ca marche, non ?

Le gars qui ne peut pas se foutre plus de la qualité, c’est pour lui le boulot de quelqu’un d’autre. Il accomplit les taches qu’on lui demande de faire, et rapidement. Vous n’aimerez peut être pas son travail, les programmeurs le détestent, mais la direction et les clients l’adorent. Malgré la douleur qu’il vous causera dans le futur, il maintiendra les deadlines à lui seul de sorte que vous ne pourrez vous moquer de lui (peu importe à quel point vous en ayez envie).

Le programmeur théorique

TheoreticalBien, c’est une possibilité, mais en pratique ceci pourrait être une meilleure alternative.

Ce mec est plus intéressé par les différentes options qui s’offrent à lui que par ce qui devrait être fait. Il va passer 80% de son temps à observer sa machine le regard vide à réfléchir aux moyens d’accomplir une tache, 15% de son temps à se plaindre des deadlines intenables, 4% de son temps à affiner les options, et 1% de son temps à écrire du code. Quand vous obtiendrez le produit final ça sera toujours accompagné de la phrase : “Si j’avais eu plus de temps, j’aurais pu le faire correctement”.

Où vous situez vous ?

Personnellement, je me serais classé dans les perfectionnistes. Et vous, quel type de programmeur êtes vous ? (…)

Source : http://stevenbenner.com/2010/07/the-5-types-of-programmers/


Aide-mémoire configuration de Pine / Alpine

Deux champs requis dans la config : envoi et réception.

  • smtp-server : server:port/cryptoprotocol/user=username/novalidate-cert
  • inbox-path : server:port/cryptoprotocol/user=username/novalidate-cert

Exemple :

  • smtp-server : stmp.gmail.com:443/tls/user=username
  • inbox-path : imap.gmail.com:993/ssl/user=username

Pour retenir les mots de passe : touch .pine-passfile


Pense-bête – Debian – Compiler un noyau Linux

Le principal : http://pyfourmond.free.fr/Compilation-Noyau-Linux.htm

Si la partition racine n’est pas trouvée (“Waiting for root file system”), ça m’est arrivé pour une vm, il faut préciser le UUID de la partition racine dans /boot/grub/menu.lst :

root=/dev/xxxx
=>
root=UUID=xxxx-xxxx-xxxx-xxxx

Pour obtenir cet identifiant :

/sbin/blkid

Plus d’infos : http://forum.debian-fr.org/viewtopic.php?f=8&t=18271