Warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache' query: UPDATE cache SET data = 'a:402:{s:13:\"theme_default\";s:4:\"kewl\";s:13:\"filter_html_1\";s:1:\"1\";s:18:\"node_options_forum\";a:1:{i:0;s:6:\"status\";}s:18:\"drupal_private_key\";s:64:\"a5de3144cabd3a5a76889cdc7d52a5656ec758dd9c66b720824755fe28d5dc59\";s:10:\"menu_masks\";a:24:{i:0;i:127;i:1;i:63;i:2;i:62;i:3;i:61;i:4;i:59;i:5;i:58;i:6;i:57;i:7;i:56;i:8;i:31;i:9;i:30;i:10;i:29;i:11;i:28;i:12;i:24;i:13;i:21;i:14;i:15;i:15;i:14;i:16;i:12;i:17;i:11;i:18;i:7;i:19;i:6;i:20;i:5;i:21;i:3;i:22;i:2;i:23;i:1;}s:12:\"install_task\";s:4:\"done\";s:13:\"menu_expanded\";a:2:{i:0;s:15:\"menu-categories\";i:1;s:10:\"navigation\";}s:9:\"site_name\";s:7:\"jide.fr\";s:9:\"site_mail\";s:17:\"jide.fr@gmail.com\";s:21:\"date_defa in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1881:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Je viens de publier <a href=\\"http://jide.github.io/clamp/\\">Clamp</a>, un outil en ligne de commande pour démarrer un stack AMP à la vitesse de l\\'éclair. Tapez \\"clamp\\" et voilà !</p>\\n<p><strong>Pourquoi ?</strong></p>\\n<p>Pour in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:976:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Je viens de publier mon premier jeu, Photomime.</p>\\n<p>Les régles sont simples: Quelqu\\'un mime l\\'image affichée pendant que le reste de l\\'équipe doit trouver.</p>\\n<p>Vous pouvez y jouer en ligne sur <a href=\\"http://photomime.net/\\">http://photomime.net/</a&g in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1583:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>\\"Le Moteur De Recherche\\", un mini site pour promouvoir la sortie du documentaire <a href=\\"http://www.canalplus.fr/c-infos-documentaires/pid6032-c-made-in-france.html\\">Made in France</a> de canal plus, vient de sortir.</p>\\n<p>C\\'est un moteur de recherche très fun, qui vous donne l\\&am in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:604:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Un petit script de service pour cacher / afficher les fichiers cachés du Finder.</p>\\n<p>Plus qu\\'à ajouter un raccourci clavier global et vous êtes bons !</p>\\n<p><script src=\\"http://gist.github.com/8824465.js\\"></script></p>\\n', created = 1513169145, exp in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1162:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Je suis tombé sur cette question l\\'autre jour sur stackoverflow :</p>\\n<p><a href=\\"http://stackoverflow.com/questions/8596794/customizing-bootstrap-css-template/21144524#21144524\\" title=\\"http://stackoverflow.com/questions/8596794/customizing-bootstrap-css-template/21144524#21144524\\">http://stackover in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:914:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Le lissage des polices sur webkit mac est un peu grossier. Le hack utilisé habituellement est :</p>\\n<p><code>html {<br />\\n -webkit-font-smoothing: antialiased;<br />\\n}</code></p>\\n<p>Mais cela n\\'agit pas sur les éléments de formulaires, ni sur les éléments ayant l in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1752:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>J\\'ai eu besoin de rempalcer des mots dans un texte par un autre mot, tout en gardant la capitalisation.</p>\\n<p>Avec le texte :<br />\\n\\"It is a good burger. Or an hamburger. Burger is good\\".</p>\\n<p>On doit obtenir :<br />\\n\\"It is a good sandwich. Or an hamburger. Sa in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1854:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Après des heures à tenter de comprendre comment monter une box Vagrant avec LAMP, j\\'ai fini par avoir une box fonctionnelle.</p>\\n<p>Comme je suis sympa, je vous explique comment faire.</p>\\n<p>Nous utiliserons cette box : <a href=\\"https://github.com/TomJaeger/vagrant-puppet-lamp\\" title=\\&quot in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:2044:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>J\\'ai eu besoin de créer des layers dynamiquement avec Openlayers en fonction de termes de taxonomie. Un peu d\\'astuce avec Views et voilà le travail !</p>\\n<ol>\\n<li>Créez une vue Openlayers.</li>\\n<li>Ajouter un display pour le premier terme.</li>\\n<li>Créez un filtre su in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1163:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>On trouve très souvent ceci dans les templates de Wordpress / Drupal / N\\'importe :</p>\\n<p><code><ol class=\\"commentlist\\"><br />\\n...<br />\\n</ol><!-- .commentlist --></code></p>\\n<p>N in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:10381:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:3:{s:6:\\"result\\";a:123:{i:0;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"1\\";}i:1;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"3\\";}i:2;O:8:\\"stdClass\\":1:{s:3:\\"nid\\";s:1:\\"5\\";}i:3;O:8:\\"stdClass\\&quot in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:5900:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:4:{s:4:\\"head\\";s:0:\\"\\";s:3:\\"css\\";a:0:{}s:2:\\"js\\";a:0:{}s:6:\\"output\\";s:3320:\\"<div class=\\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\\">\\n \\n \\n \\n <div class=\\"view-content\\"&gt in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:5843:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_block'\nquery: UPDATE cache_block SET data = 'a:2:{s:7:\\"content\\";s:3320:\\"<div class=\\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\\">\\n \\n \\n \\n <div class=\\"view-content\\">\\n <div class=\\"tagadelic_views\\"><a href=\\"/francais/android\\" class=\\&q in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:409:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter'\nquery: UPDATE cache_filter SET data = '<p>Follow me : <a href=\\"http://twitter.com/jidefr\\">jidefr</a></p>\\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:fb82f31c75d9dcc2908dc560fa3f9280'\";s:5:\"%file\";s:37:\"/home/jideretu/www/includes/cache.inc\";s:5:\"%li in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:1006:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:3:{s:6:\\"result\\";a:1:{i:0;O:8:\\"stdClass\\":3:{s:10:\\"twitter_id\\";s:18:\\"937070315510861824\\";s:12:\\"twitter_text\\";s:143:\\"RT @PhilippeCorbe: Si vous avez du mal à comprendre l\\'affaire russe, et l\\'importance de l\\'information du jour, le plaider coupable de l\\ in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:2336:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data'\nquery: UPDATE cache_views_data SET data = 'a:4:{s:4:\\"head\\";s:0:\\"\\";s:3:\\"css\\";a:0:{}s:2:\\"js\\";a:3:{i:0;a:5:{i:0;s:38:\\"sites/default/modules/views/js/base.js\\";i:1;s:6:\\"module\\";i:2;s:6:\\"header\\";i:3;b:0;i:4;b:1;}i:1;a:5:{i:0;s:43:\\"sites/default/modules/views/js/ajax_view.js\\";i:1;s in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:676:\"UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_block'\nquery: UPDATE cache_block SET data = 'a:2:{s:7:\\"subject\\";s:15:\\"Recent Comments\\";s:7:\\"content\\";s:187:\\"<div id=\\"dsq-recentcomments\\" class=\\"dsq-widget\\"><script type=\\"text/javascript\\" src=\\"http://disqus.com/forums/jide/recent_comments_widget.js?num_items=1&hide_avatars=1\\& in /home/jideretu/www/includes/database.mysql.inc on line 135
Le blog de jide | jide.fr

Le blog de jide

  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Je viens de publier <a href=\"http://jide.github.io/clamp/\">Clamp</a>, un outil en ligne de commande pour démarrer un stack AMP à la vitesse de l\'éclair. Tapez \"clamp\" et voilà !</p>\n<p><strong>Pourquoi ?</strong></p>\n<p>Pour faire du développement en local, plusieurs options, chacune avec ses défauts :</p>\n<ul>\n<li>MAMP\n<ul>\n<li>Installe un autre Apache et PHP sur le système</li>\n<li>Structure de fichiers complexe</li>\n<li>Toujours obligé de créer les hosts manuellement</li>\n<li>Difficile de configurer chaque projet différemment</li>\n</ul>\n</li>\n<li>Vagrant\n<ul>\n<li>Taille imposante</li>\n<li>Ajoute de la complexité</li>\n<li>Lent</li>\n</ul>\n</li>\n<li>serveur interne de PHP\n<ul>\n<li>Pas de MySQL</li>\n<li>Pas d\'Apache</li>\n<li>Pas de hosts</li>\n</ul>\n</li>\n</ul>\n<p>J\'ai tout essayé, mais aucun ne me donnait ce que je voulais: faire comme avec node.js ou meteor, taper une commande et bim !</p>\n<p>Je m\'en suis plains sur twitter :</p>\n<p>FOR GOD SAKE, can we have a <a href=\"https://twitter.com/hashtag/LAMP?src=hash\">#LAMP</a> stack running as easy as <a href=\"https://twitter.com/hashtag/nodejs?src=hash\">#nodejs</a> ?</p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:23ad8449b602164d5bfa86a30987f204' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Je viens de publier mon premier jeu, Photomime.</p>\n<p>Les régles sont simples: Quelqu\'un mime l\'image affichée pendant que le reste de l\'équipe doit trouver.</p>\n<p>Vous pouvez y jouer en ligne sur <a href=\"http://photomime.net/\">http://photomime.net/</a> et télécharger l\'application Android sur <a href=\"https://play.google.com/store/apps/details?id=fr.jide.photomime\">Google Play</a>.</p>\n<p>Le jeu a été développé en HTML5 / JS et Apache Cordova. Je reviendrai plus en détails sur les aspects techniques dans un futur post.</p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:93e0767963bb6dd92337305320d47269' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>\"Le Moteur De Recherche\", un mini site pour promouvoir la sortie du documentaire <a href=\"http://www.canalplus.fr/c-infos-documentaires/pid6032-c-made-in-france.html\">Made in France</a> de canal plus, vient de sortir.</p>\n<p>C\'est un moteur de recherche très fun, qui vous donne l\'équivalent français de votre recherche. Par exemple \"Quentin Tarantino\" devient \"Michel Audiard\" - avec image, vidéo et liste de liens.</p>\n<p>J\'ai été en charge du développement avec <a href=\"https://twitter.com/Malharhak\">Anthony Pigeot</a>, et le projet a été piloté par <a href=\"https://twitter.com/BggrThnFctn\">Bigger Than Fiction</a>. </p>\n<p>Au niveau technique, nous avons utilisé node js avec express et mongo db côté server, bootstrap, less, jade, javascript côté client, et développé un scrappeur pour capturer les images et les descriptions.</p>\n<p>Essayez-le, c\'est très fun ! <a href=\"http://www.canalplus.fr/moteurderecherche\" title=\"http://www.canalplus.fr/moteurderecherche\">http://www.canalplus.fr/moteurderecherche</a></p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:df02d06f56afd9255e66f221b8510638' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Un petit script de service pour cacher / afficher les fichiers cachés du Finder.</p>\n<p>Plus qu\'à ajouter un raccourci clavier global et vous êtes bons !</p>\n<p><script src=\"http://gist.github.com/8824465.js\"></script></p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:107d4ba5459ab079d9844d89b322233f' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Je suis tombé sur cette question l\'autre jour sur stackoverflow :</p>\n<p><a href=\"http://stackoverflow.com/questions/8596794/customizing-bootstrap-css-template/21144524#21144524\" title=\"http://stackoverflow.com/questions/8596794/customizing-bootstrap-css-template/21144524#21144524\">http://stackoverflow.com/questions/8596794/customizing-bootstrap-css-tem...</a></p>\n<p>Ce qui m\'a poussé à créer un repo sur github avec le workflow que j\'utilise :</p>\n<p><a href=\"https://github.com/jide/bootstrap-boilerplate\" title=\"https://github.com/jide/bootstrap-boilerplate\">https://github.com/jide/bootstrap-boilerplate</a></p>\n<p>Clonez le repository, et vous êtes prêts à customiser Bootstrap.</p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:d5f657b31aa742ab8e7fc56c74119bc5' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Le lissage des polices sur webkit mac est un peu grossier. Le hack utilisé habituellement est :</p>\n<p><code>html {<br />\n -webkit-font-smoothing: antialiased;<br />\n}</code></p>\n<p>Mais cela n\'agit pas sur les éléments de formulaires, ni sur les éléments ayant la propriété -webkit-appearance\" avec une valeur équivalente. Donc :</p>\n<p><code>html, input, textarea, select, button {<br />\n -webkit-font-smoothing: antialiased;<br />\n}</code></p>\n<p>Et voilà !</p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:393445bd553ee467812cd9de986b9013' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>J\'ai eu besoin de rempalcer des mots dans un texte par un autre mot, tout en gardant la capitalisation.</p>\n<p>Avec le texte :<br />\n\"It is a good burger. Or an hamburger. Burger is good\".</p>\n<p>On doit obtenir :<br />\n\"It is a good sandwich. Or an hamburger. Sandwich is good\".</p>\n<p>Voici :<br />\n<code>var replace = function(text, r, v) {<br />\n return text.replace(new RegExp(\'([^a-z])(\'+r+\')|(^\'+r+\')(?=[^a-z]?)\', \"gi\"), function(match, p1, p2, p3, offset, string) {<br />\n p1 = p1 || \'\';<br />\n p2 = p2 || p3;<br />\n if (p2[0].toUpperCase() == p2[0]) {<br />\n // Assume its all caps.<br />\n if (p2[1].toUpperCase() == p2[1]) {<br />\n v = v.toUpperCase();<br />\n }<br />\n // Assume its capitalized.<br />\n else {<br />\n v = v[0].toUpperCase() + v.slice(1);<br />\n }<br />\n }<br />\n return p1 + v;<br />\n });<br />\n}</code></p>\n<p>Testons :<br />\n<code>var text = \"It is a good burger. Or an hamburger. Burger is good\";<br />\nconsole.log(text + \"\\n\" + replace(text, \'burger\', \'sandwich\'));</code></p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:b10c17463932f5df420e45161b7480c8' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Après des heures à tenter de comprendre comment monter une box Vagrant avec LAMP, j\'ai fini par avoir une box fonctionnelle.</p>\n<p>Comme je suis sympa, je vous explique comment faire.</p>\n<p>Nous utiliserons cette box : <a href=\"https://github.com/TomJaeger/vagrant-puppet-lamp\" title=\"https://github.com/TomJaeger/vagrant-puppet-lamp\">https://github.com/TomJaeger/vagrant-puppet-lamp</a>, qui contient Apache, PHP et MySQL.</p>\n<ol>\n<li>Vous aurez évidemment besoin de <a href=\"http://www.vagrantup.com\">Vagrant</a> et <a href=\"http://www.virtualbox.org\">VirtualBox</a>. Installez les deux.</li>\n<li>Clonez le repo : <code>git clone https://github.com/TomJaeger/vagrant-puppet-lamp.git</code></li>\n<li>Allez dans le dossier: <code>cd vagrant-puppet-lamp</code></li>\n<li>Lancez la VM: <code>vagrant up</code></li>\n<li>Connectez-vous à la VM via SSH: <code>vagrant ssh</code></li>\n<li>La partie \"tricky\": Lancez postinstall.sh comme sudoer: <code>sudo ./postinstall.sh</code></li>\n<li>Ca fonctionne ! Visitez <a href=\"http://localhost:8080\">http://localhost:8080</a>. Vous pouvez accéder à MySQL sur localhost:8889 avec l\'utilisateur \"root\" et le mot de passe \"root\".</li>\n</ol>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:beae45e34302c67079f645585e2b6a93' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>J\'ai eu besoin de créer des layers dynamiquement avec Openlayers en fonction de termes de taxonomie. Un peu d\'astuce avec Views et voilà le travail !</p>\n<ol>\n<li>Créez une vue Openlayers.</li>\n<li>Ajouter un display pour le premier terme.</li>\n<li>Créez un filtre sur le premier terme.</li>\n<li>Exportez la vue en code.</li>\n</ol>\n<p>Ensuite, éditez la vue pour créer un display par terme :<br />\n<code>/**<br />\n * Implements hook_views_default_views().<br />\n */<br />\nfunction MYMODULE_views_default_views() {<br />\n $vocabulary = taxonomy_vocabulary_machine_name_load(\'VOCABULARY_NAME\');<br />\n $terms = taxonomy_get_tree($vocabulary-&gt;vid);<br />\n // Your view code for the master display...<br />\n foreach($terms as $term) {<br />\n $handler = $view-&gt;new_display(\'openlayers\', $term-&gt;name, \'layer_\' . $term-&gt;tid);<br />\n // The display code...<br />\n $handler-&gt;display-&gt;display_options[\'filters\'][\'tid\'][\'value\'] = array(<br />\n $term-&gt;tid =&gt; $term-&gt;tid,<br />\n );<br />\n }<br />\n // Remaining code...<br />\n}<br />\n</code></p>\n<p>De même pour la map :<br />\n<code>/**<br />\n * Implements hook_openlayers_maps().<br />\n */<br />\nfunction MYMODULE_openlayers_maps() {<br />\n $vocabulary = taxonomy_vocabulary_machine_name_load(\'VOCABULARY_NAME\');</code></p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:059c574ac08d2196ae12de2e6d41d538' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>On trouve très souvent ceci dans les templates de Wordpress / Drupal / N\'importe :</p>\n<p><code>&lt;ol class=\"commentlist\"&gt;<br />\n...<br />\n&lt;/ol&gt;&lt;!-- .commentlist --&gt;</code></p>\n<p>Ne le faites pas ! Voici pourquoi :</p>\n<ul>\n<li>Personne n\'aura jamais besoin de ces indications sauf un hypothétique développeur qui reprendrait votre code. Et pourtant, vous le servez à la terre entière.</li>\n<li>Cela rend le fichier HTML plus lourd, car le navigateur télécharge ces commentaires. Utilisez au moins des commentaires PHP.</li>\n<li>Avec une indentation correcte, le code est tout à fait lisible. En fait cela rend le code plus difficile à lire au final.</li>\n</ul>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:8d40a2a6d5affad72348a380ed65093a' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:3:{s:6:\"result\";a:123:{i:0;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"1\";}i:1;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"3\";}i:2;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"5\";}i:3;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"6\";}i:4;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"7\";}i:5;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"8\";}i:6;O:8:\"stdClass\":1:{s:3:\"nid\";s:1:\"9\";}i:7;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"10\";}i:8;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"11\";}i:9;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"12\";}i:10;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"13\";}i:11;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"14\";}i:12;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"15\";}i:13;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"16\";}i:14;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"17\";}i:15;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"18\";}i:16;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"19\";}i:17;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"20\";}i:18;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"21\";}i:19;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"22\";}i:20;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"23\";}i:21;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"24\";}i:22;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"25\";}i:23;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"26\";}i:24;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"27\";}i:25;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"28\";}i:26;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"29\";}i:27;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"30\";}i:28;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"31\";}i:29;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"32\";}i:30;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"33\";}i:31;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"34\";}i:32;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"35\";}i:33;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"36\";}i:34;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"37\";}i:35;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"38\";}i:36;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"39\";}i:37;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"40\";}i:38;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"41\";}i:39;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"42\";}i:40;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"43\";}i:41;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"44\";}i:42;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"46\";}i:43;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"49\";}i:44;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"50\";}i:45;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"51\";}i:46;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"52\";}i:47;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"55\";}i:48;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"56\";}i:49;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"57\";}i:50;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"58\";}i:51;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"59\";}i:52;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"61\";}i:53;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"64\";}i:54;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"66\";}i:55;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"68\";}i:56;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"70\";}i:57;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"71\";}i:58;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"73\";}i:59;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"75\";}i:60;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"77\";}i:61;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"79\";}i:62;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"81\";}i:63;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"82\";}i:64;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"85\";}i:65;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"86\";}i:66;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"88\";}i:67;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"89\";}i:68;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"91\";}i:69;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"93\";}i:70;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"96\";}i:71;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"97\";}i:72;O:8:\"stdClass\":1:{s:3:\"nid\";s:2:\"99\";}i:73;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"102\";}i:74;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"103\";}i:75;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"105\";}i:76;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"107\";}i:77;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"109\";}i:78;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"112\";}i:79;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"114\";}i:80;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"115\";}i:81;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"116\";}i:82;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"117\";}i:83;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"120\";}i:84;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"122\";}i:85;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"123\";}i:86;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"125\";}i:87;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"127\";}i:88;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"129\";}i:89;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"131\";}i:90;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"133\";}i:91;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"136\";}i:92;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"137\";}i:93;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"141\";}i:94;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"143\";}i:95;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"146\";}i:96;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"148\";}i:97;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"150\";}i:98;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"152\";}i:99;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"154\";}i:100;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"156\";}i:101;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"157\";}i:102;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"160\";}i:103;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"162\";}i:104;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"164\";}i:105;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"166\";}i:106;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"168\";}i:107;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"170\";}i:108;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"172\";}i:109;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"189\";}i:110;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"191\";}i:111;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"193\";}i:112;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"195\";}i:113;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"201\";}i:114;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"202\";}i:115;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"204\";}i:116;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"206\";}i:117;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"207\";}i:118;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"210\";}i:119;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"212\";}i:120;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"214\";}i:121;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"216\";}i:122;O:8:\"stdClass\":1:{s:3:\"nid\";s:3:\"218\";}}s:10:\"total_rows\";i:123;s:5:\"pager\";a:5:{s:9:\"use_pager\";b:0;s:14:\"items_per_page\";i:0;s:7:\"element\";i:0;s:6:\"offset\";i:0;s:12:\"current_page\";i:0;}}', created = 1513169145, expire = 1513172745, headers = '', serialized = 1 WHERE cid = 'tagadelic:block_2:results:a05686bc58909a434d941cc375c8cde7' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:4:{s:4:\"head\";s:0:\"\";s:3:\"css\";a:0:{}s:2:\"js\";a:0:{}s:6:\"output\";s:3320:\"<div class=\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\">\n \n \n \n <div class=\"view-content\">\n <div class=\"tagadelic_views\"><a href=\"/francais/android\" class=\"tagadelic level1\" rel=\"tag\">android</a> \n<a href=\"/francais/apache\" class=\"tagadelic level1\" rel=\"tag\">Apache</a> \n<a href=\"/francais/automator\" class=\"tagadelic level1\" rel=\"tag\">Automator</a> \n<a href=\"/francais/bd\" class=\"tagadelic level1\" rel=\"tag\">BD</a> \n<a href=\"/francais/bootstrap\" class=\"tagadelic level3\" rel=\"tag\">bootstrap</a> \n<a href=\"/francais/canal\" class=\"tagadelic level1\" rel=\"tag\">canal +</a> \n<a href=\"/francais/command-line\" class=\"tagadelic level1\" rel=\"tag\">Command line</a> \n<a href=\"/francais/css\" class=\"tagadelic level2\" rel=\"tag\">CSS</a> \n<a href=\"/francais/customize\" class=\"tagadelic level1\" rel=\"tag\">customize</a> \n<a href=\"/francais/drupal\" class=\"tagadelic level5\" rel=\"tag\">Drupal</a> \n<a href=\"/francais/dwmapi\" class=\"tagadelic level1\" rel=\"tag\">Dwmapi</a> \n<a href=\"/francais/facebook\" class=\"tagadelic level1\" rel=\"tag\">Facebook</a> \n<a href=\"/francais/finder\" class=\"tagadelic level1\" rel=\"tag\">Finder</a> \n<a href=\"/francais/freshy\" class=\"tagadelic level1\" rel=\"tag\">freshy</a> \n<a href=\"/francais/game\" class=\"tagadelic level1\" rel=\"tag\">game</a> \n<a href=\"/francais/git\" class=\"tagadelic level1\" rel=\"tag\">GIT</a> \n<a href=\"/francais/github\" class=\"tagadelic level1\" rel=\"tag\">github</a> \n<a href=\"/francais/grunt\" class=\"tagadelic level1\" rel=\"tag\">grunt</a> \n<a href=\"/francais/html\" class=\"tagadelic level1\" rel=\"tag\">HTML</a> \n<a href=\"/francais/javascript\" class=\"tagadelic level2\" rel=\"tag\">javascript</a> \n<a href=\"/francais/jidefr\" class=\"tagadelic level1\" rel=\"tag\">jide.fr</a> \n<a href=\"/francais/jquery-0\" class=\"tagadelic level1\" rel=\"tag\">jQuery</a> \n<a href=\"/francais/jquery-ui-0\" class=\"tagadelic level2\" rel=\"tag\">jQuery UI</a> \n<a href=\"/francais/lamp\" class=\"tagadelic level1\" rel=\"tag\">LAMP</a> \n<a href=\"/francais/le-moteur-de-recherche\" class=\"tagadelic level1\" rel=\"tag\">le moteur de recherche</a> \n<a href=\"/francais/less\" class=\"tagadelic level2\" rel=\"tag\">less</a> \n<a href=\"/francais/mac-os-x\" class=\"tagadelic level1\" rel=\"tag\">Mac OS X</a> \n<a href=\"/francais/made-in-france\" class=\"tagadelic level1\" rel=\"tag\">made in france</a> \n<a href=\"/francais/mobile\" class=\"tagadelic level1\" rel=\"tag\">mobile</a> \n<a href=\"/francais/mongo-db\" class=\"tagadelic level1\" rel=\"tag\">mongo db</a> \n<a href=\"/francais/mysql\" class=\"tagadelic level1\" rel=\"tag\">MySQL</a> \n<a href=\"/francais/nodejs\" class=\"tagadelic level1\" rel=\"tag\">nodejs</a> \n<a href=\"/francais/php\" class=\"tagadelic level2\" rel=\"tag\">PHP</a> \n<a href=\"/francais/qt\" class=\"tagadelic level1\" rel=\"tag\">Qt</a> \n<a href=\"/francais/queue-api\" class=\"tagadelic level1\" rel=\"tag\">Queue API</a> \n<a href=\"/francais/ruby\" class=\"tagadelic level1\" rel=\"tag\">Ruby</a> \n<a href=\"/francais/rules\" class=\"tagadelic level1\" rel=\"tag\">Rules</a> \n<a href=\"/francais/vagrant\" class=\"tagadelic level1\" rel=\"tag\">Vagrant</a> \n<a href=\"/francais/views-0\" class=\"tagadelic level1\" rel=\"tag\">Views</a> \n<a href=\"/francais/windows-api\" class=\"tagadelic level1\" rel=\"tag\">Windows API</a> \n<a href=\"/francais/wordpress\" class=\"tagadelic level6\" rel=\"tag\">wordpress</a> \n</div> </div>\n \n \n \n \n \n \n</div> \";}', created = 1513169145, expire = 1513172745, headers = '', serialized = 1 WHERE cid = 'tagadelic:block_2:output:19f4215458053dda7780acaf26b5d77c' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_block' query: UPDATE cache_block SET data = 'a:2:{s:7:\"content\";s:3320:\"<div class=\"view view-tagadelic view-id-tagadelic view-display-id-block_2 view-dom-id-1\">\n \n \n \n <div class=\"view-content\">\n <div class=\"tagadelic_views\"><a href=\"/francais/android\" class=\"tagadelic level1\" rel=\"tag\">android</a> \n<a href=\"/francais/apache\" class=\"tagadelic level1\" rel=\"tag\">Apache</a> \n<a href=\"/francais/automator\" class=\"tagadelic level1\" rel=\"tag\">Automator</a> \n<a href=\"/francais/bd\" class=\"tagadelic level1\" rel=\"tag\">BD</a> \n<a href=\"/francais/bootstrap\" class=\"tagadelic level3\" rel=\"tag\">bootstrap</a> \n<a href=\"/francais/canal\" class=\"tagadelic level1\" rel=\"tag\">canal +</a> \n<a href=\"/francais/command-line\" class=\"tagadelic level1\" rel=\"tag\">Command line</a> \n<a href=\"/francais/css\" class=\"tagadelic level2\" rel=\"tag\">CSS</a> \n<a href=\"/francais/customize\" class=\"tagadelic level1\" rel=\"tag\">customize</a> \n<a href=\"/francais/drupal\" class=\"tagadelic level5\" rel=\"tag\">Drupal</a> \n<a href=\"/francais/dwmapi\" class=\"tagadelic level1\" rel=\"tag\">Dwmapi</a> \n<a href=\"/francais/facebook\" class=\"tagadelic level1\" rel=\"tag\">Facebook</a> \n<a href=\"/francais/finder\" class=\"tagadelic level1\" rel=\"tag\">Finder</a> \n<a href=\"/francais/freshy\" class=\"tagadelic level1\" rel=\"tag\">freshy</a> \n<a href=\"/francais/game\" class=\"tagadelic level1\" rel=\"tag\">game</a> \n<a href=\"/francais/git\" class=\"tagadelic level1\" rel=\"tag\">GIT</a> \n<a href=\"/francais/github\" class=\"tagadelic level1\" rel=\"tag\">github</a> \n<a href=\"/francais/grunt\" class=\"tagadelic level1\" rel=\"tag\">grunt</a> \n<a href=\"/francais/html\" class=\"tagadelic level1\" rel=\"tag\">HTML</a> \n<a href=\"/francais/javascript\" class=\"tagadelic level2\" rel=\"tag\">javascript</a> \n<a href=\"/francais/jidefr\" class=\"tagadelic level1\" rel=\"tag\">jide.fr</a> \n<a href=\"/francais/jquery-0\" class=\"tagadelic level1\" rel=\"tag\">jQuery</a> \n<a href=\"/francais/jquery-ui-0\" class=\"tagadelic level2\" rel=\"tag\">jQuery UI</a> \n<a href=\"/francais/lamp\" class=\"tagadelic level1\" rel=\"tag\">LAMP</a> \n<a href=\"/francais/le-moteur-de-recherche\" class=\"tagadelic level1\" rel=\"tag\">le moteur de recherche</a> \n<a href=\"/francais/less\" class=\"tagadelic level2\" rel=\"tag\">less</a> \n<a href=\"/francais/mac-os-x\" class=\"tagadelic level1\" rel=\"tag\">Mac OS X</a> \n<a href=\"/francais/made-in-france\" class=\"tagadelic level1\" rel=\"tag\">made in france</a> \n<a href=\"/francais/mobile\" class=\"tagadelic level1\" rel=\"tag\">mobile</a> \n<a href=\"/francais/mongo-db\" class=\"tagadelic level1\" rel=\"tag\">mongo db</a> \n<a href=\"/francais/mysql\" class=\"tagadelic level1\" rel=\"tag\">MySQL</a> \n<a href=\"/francais/nodejs\" class=\"tagadelic level1\" rel=\"tag\">nodejs</a> \n<a href=\"/francais/php\" class=\"tagadelic level2\" rel=\"tag\">PHP</a> \n<a href=\"/francais/qt\" class=\"tagadelic level1\" rel=\"tag\">Qt</a> \n<a href=\"/francais/queue-api\" class=\"tagadelic level1\" rel=\"tag\">Queue API</a> \n<a href=\"/francais/ruby\" class=\"tagadelic level1\" rel=\"tag\">Ruby</a> \n<a href=\"/francais/rules\" class=\"tagadelic level1\" rel=\"tag\">Rules</a> \n<a href=\"/francais/vagrant\" class=\"tagadelic level1\" rel=\"tag\">Vagrant</a> \n<a href=\"/francais/views-0\" class=\"tagadelic level1\" rel=\"tag\">Views</a> \n<a href=\"/francais/windows-api\" class=\"tagadelic level1\" rel=\"tag\">Windows API</a> \n<a href=\"/francais/wordpress\" class=\"tagadelic level6\" rel=\"tag\">wordpress</a> \n</div> </div>\n \n \n \n \n \n \n</div> \";s:7:\"subject\";s:4:\"Tags\";}', created = 1513169145, expire = -1, headers = '', serialized = 1 WHERE cid = 'views:tagadelic-block_2:kewl:fr:http://jide.fr/francais/blog/jide' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_filter' query: UPDATE cache_filter SET data = '<p>Follow me : <a href=\"http://twitter.com/jidefr\">jidefr</a></p>\n', created = 1513169145, expire = 1513255545, headers = '', serialized = 0 WHERE cid = '1:fb82f31c75d9dcc2908dc560fa3f9280' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:3:{s:6:\"result\";a:1:{i:0;O:8:\"stdClass\":3:{s:10:\"twitter_id\";s:18:\"937070315510861824\";s:12:\"twitter_text\";s:143:\"RT @PhilippeCorbe: Si vous avez du mal à comprendre l\'affaire russe, et l\'importance de l\'information du jour, le plaider coupable de l\'anc…\";s:20:\"twitter_created_time\";s:10:\"1512249947\";}}s:10:\"total_rows\";N;s:5:\"pager\";a:5:{s:9:\"use_pager\";s:1:\"0\";s:14:\"items_per_page\";i:1;s:7:\"element\";i:0;s:6:\"offset\";i:0;s:12:\"current_page\";i:0;}}', created = 1513169145, expire = 1513172745, headers = '', serialized = 1 WHERE cid = 'tweets:block:results:edb266de823293cad00bd74d438dccde' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_views_data' query: UPDATE cache_views_data SET data = 'a:4:{s:4:\"head\";s:0:\"\";s:3:\"css\";a:0:{}s:2:\"js\";a:3:{i:0;a:5:{i:0;s:38:\"sites/default/modules/views/js/base.js\";i:1;s:6:\"module\";i:2;s:6:\"header\";i:3;b:0;i:4;b:1;}i:1;a:5:{i:0;s:43:\"sites/default/modules/views/js/ajax_view.js\";i:1;s:6:\"module\";i:2;s:6:\"header\";i:3;b:0;i:4;b:1;}i:2;a:3:{i:0;a:1:{s:5:\"views\";a:2:{s:9:\"ajax_path\";s:20:\"/francais/views/ajax\";s:9:\"ajaxViews\";a:1:{i:0;a:7:{s:9:\"view_name\";s:6:\"tweets\";s:15:\"view_display_id\";s:5:\"block\";s:9:\"view_args\";s:0:\"\";s:9:\"view_path\";s:6:\"blog/1\";s:14:\"view_base_path\";N;s:11:\"view_dom_id\";i:2;s:13:\"pager_element\";i:0;}}}}i:1;s:7:\"setting\";i:2;s:6:\"header\";}}s:6:\"output\";s:739:\"<div class=\"view view-tweets view-id-tweets view-display-id-block view-dom-id-2\">\n \n \n \n <div class=\"view-content\">\n <div class=\"views-row views-row-1 views-row-odd views-row-first views-row-last\">\n \n <span class=\"views-field-text\">\n <span class=\"field-content\">RT <a target=\"_blank\" rel=\"nofollow\" href=\"http://twitter.com/PhilippeCorbe\">@PhilippeCorbe</a>: Si vous avez du mal à comprendre l\'affaire russe, et l\'importance de l\'information du jour, le plaider coupable de l\'anc…</span>\n </span>\n &#8212; \n <span class=\"views-field-created-time\">\n <span class=\"field-content\">Il y a <em>1 semaine 3 jours</em></span>\n </span>\n </div>\n </div>\n \n \n \n \n \n \n</div> \";}', created = 1513169145, expire = 1513172745, headers = '', serialized = 1 WHERE cid = 'tweets:block:output:3612a25bce275b87887cbb554efa85c6' in /home/jideretu/www/includes/cache.inc on line 112.
  • user warning: UPDATE command denied to user 'jideretumysql'@'10.0.66.38' for table 'cache_block' query: UPDATE cache_block SET data = 'a:2:{s:7:\"subject\";s:15:\"Recent Comments\";s:7:\"content\";s:187:\"<div id=\"dsq-recentcomments\" class=\"dsq-widget\"><script type=\"text/javascript\" src=\"http://disqus.com/forums/jide/recent_comments_widget.js?num_items=1&amp;hide_avatars=1\"></script></div>\";}', created = 1513169145, expire = -1, headers = '', serialized = 1 WHERE cid = 'disqus:disqus_recent_comments:kewl:fr' in /home/jideretu/www/includes/cache.inc on line 112.

Je viens de publier Clamp, un outil en ligne de commande pour démarrer un stack AMP à la vitesse de l'éclair. Tapez "clamp" et voilà !

Pourquoi ?

Pour faire du développement en local, plusieurs options, chacune avec ses défauts :

  • MAMP
    • Installe un autre Apache et PHP sur le système
    • Structure de fichiers complexe
    • Toujours obligé de créer les hosts manuellement
    • Difficile de configurer chaque projet différemment
  • Vagrant
    • Taille imposante
    • Ajoute de la complexité
    • Lent
  • serveur interne de PHP
    • Pas de MySQL
    • Pas d'Apache
    • Pas de hosts

J'ai tout essayé, mais aucun ne me donnait ce que je voulais: faire comme avec node.js ou meteor, taper une commande et bim !

Je m'en suis plains sur twitter :

FOR GOD SAKE, can we have a #LAMP stack running as easy as #nodejs ?

Je viens de publier mon premier jeu, Photomime.

Les régles sont simples: Quelqu'un mime l'image affichée pendant que le reste de l'équipe doit trouver.

Vous pouvez y jouer en ligne sur http://photomime.net/ et télécharger l'application Android sur Google Play.

Le jeu a été développé en HTML5 / JS et Apache Cordova. Je reviendrai plus en détails sur les aspects techniques dans un futur post.

"Le Moteur De Recherche", un mini site pour promouvoir la sortie du documentaire Made in France de canal plus, vient de sortir.

C'est un moteur de recherche très fun, qui vous donne l'équivalent français de votre recherche. Par exemple "Quentin Tarantino" devient "Michel Audiard" - avec image, vidéo et liste de liens.

J'ai été en charge du développement avec Anthony Pigeot, et le projet a été piloté par Bigger Than Fiction.

Au niveau technique, nous avons utilisé node js avec express et mongo db côté server, bootstrap, less, jade, javascript côté client, et développé un scrappeur pour capturer les images et les descriptions.

Essayez-le, c'est très fun ! http://www.canalplus.fr/moteurderecherche

Un petit script de service pour cacher / afficher les fichiers cachés du Finder.

Plus qu'à ajouter un raccourci clavier global et vous êtes bons !

Je suis tombé sur cette question l'autre jour sur stackoverflow :

http://stackoverflow.com/questions/8596794/customizing-bootstrap-css-tem...

Ce qui m'a poussé à créer un repo sur github avec le workflow que j'utilise :

https://github.com/jide/bootstrap-boilerplate

Clonez le repository, et vous êtes prêts à customiser Bootstrap.

Le lissage des polices sur webkit mac est un peu grossier. Le hack utilisé habituellement est :

html {
-webkit-font-smoothing: antialiased;
}

Mais cela n'agit pas sur les éléments de formulaires, ni sur les éléments ayant la propriété -webkit-appearance" avec une valeur équivalente. Donc :

html, input, textarea, select, button {
-webkit-font-smoothing: antialiased;
}

Et voilà !

J'ai eu besoin de rempalcer des mots dans un texte par un autre mot, tout en gardant la capitalisation.

Avec le texte :
"It is a good burger. Or an hamburger. Burger is good".

On doit obtenir :
"It is a good sandwich. Or an hamburger. Sandwich is good".

Voici :
var replace = function(text, r, v) {
return text.replace(new RegExp('([^a-z])('+r+')|(^'+r+')(?=[^a-z]?)', "gi"), function(match, p1, p2, p3, offset, string) {
p1 = p1 || '';
p2 = p2 || p3;
if (p2[0].toUpperCase() == p2[0]) {
// Assume its all caps.
if (p2[1].toUpperCase() == p2[1]) {
v = v.toUpperCase();
}
// Assume its capitalized.
else {
v = v[0].toUpperCase() + v.slice(1);
}
}
return p1 + v;
});
}

Testons :
var text = "It is a good burger. Or an hamburger. Burger is good";
console.log(text + "\n" + replace(text, 'burger', 'sandwich'));

Après des heures à tenter de comprendre comment monter une box Vagrant avec LAMP, j'ai fini par avoir une box fonctionnelle.

Comme je suis sympa, je vous explique comment faire.

Nous utiliserons cette box : https://github.com/TomJaeger/vagrant-puppet-lamp, qui contient Apache, PHP et MySQL.

  1. Vous aurez évidemment besoin de Vagrant et VirtualBox. Installez les deux.
  2. Clonez le repo : git clone https://github.com/TomJaeger/vagrant-puppet-lamp.git
  3. Allez dans le dossier: cd vagrant-puppet-lamp
  4. Lancez la VM: vagrant up
  5. Connectez-vous à la VM via SSH: vagrant ssh
  6. La partie "tricky": Lancez postinstall.sh comme sudoer: sudo ./postinstall.sh
  7. Ca fonctionne ! Visitez http://localhost:8080. Vous pouvez accéder à MySQL sur localhost:8889 avec l'utilisateur "root" et le mot de passe "root".

J'ai eu besoin de créer des layers dynamiquement avec Openlayers en fonction de termes de taxonomie. Un peu d'astuce avec Views et voilà le travail !

  1. Créez une vue Openlayers.
  2. Ajouter un display pour le premier terme.
  3. Créez un filtre sur le premier terme.
  4. Exportez la vue en code.

Ensuite, éditez la vue pour créer un display par terme :
/**
* Implements hook_views_default_views().
*/
function MYMODULE_views_default_views() {
$vocabulary = taxonomy_vocabulary_machine_name_load('VOCABULARY_NAME');
$terms = taxonomy_get_tree($vocabulary->vid);
// Your view code for the master display...
foreach($terms as $term) {
$handler = $view->new_display('openlayers', $term->name, 'layer_' . $term->tid);
// The display code...
$handler->display->display_options['filters']['tid']['value'] = array(
$term->tid => $term->tid,
);
}
// Remaining code...
}

De même pour la map :
/**
* Implements hook_openlayers_maps().
*/
function MYMODULE_openlayers_maps() {
$vocabulary = taxonomy_vocabulary_machine_name_load('VOCABULARY_NAME');

On trouve très souvent ceci dans les templates de Wordpress / Drupal / N'importe :

<ol class="commentlist">
...
</ol><!-- .commentlist -->

Ne le faites pas ! Voici pourquoi :

  • Personne n'aura jamais besoin de ces indications sauf un hypothétique développeur qui reprendrait votre code. Et pourtant, vous le servez à la terre entière.
  • Cela rend le fichier HTML plus lourd, car le navigateur télécharge ces commentaires. Utilisez au moins des commentaires PHP.
  • Avec une indentation correcte, le code est tout à fait lisible. En fait cela rend le code plus difficile à lire au final.
Syndiquer le contenu

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:0:\"\";s:5:\"%file\";s:37:\"/home/jideretu/www/includes/cache.inc\";s:5:\"%line\";i:112;}', 3, '', 'http://jide.fr/francais/blog/jide', '', '54.242.205.33', 1513169145) in /home/jideretu/www/includes/database.mysql.inc on line 135

Warning: INSERT command denied to user 'jideretumysql'@'10.0.66.38' for table 'watchdog' query: INSERT INTO watchdog (uid, type, message, variables, severity, link, location, referer, hostname, timestamp) VALUES (0, 'php', '%message in %file on line %line.', 'a:4:{s:6:\"%error\";s:12:\"user warning\";s:8:\"%message\";s:429:\"UPDATE command denied to user &#039;jideretumysql&#039;@&#039;10.0.66.38&#039; for table &#039;sessions&#039;\nquery: UPDATE sessions SET uid = 0, cache = 0, hostname = &#039;54.242.205.33&#039;, session = &#039;messages|a:1:{s:5:\\&quot;error\\&quot;;a:1:{i:0;s:68:\\&quot;user warning: in /home/jideretu/www/includes/cache.inc on line 112.\\&quot;;}}&#039;, timestamp = 1513169145 WHERE sid = &#039;g234dd0u2gjsj9epjovr6ubmp7&#039;\";s:5:\"%file\";s:39:\"/home/jideretu/www/includes/session.inc\";s:5:\"%lin in /home/jideretu/www/includes/database.mysql.inc on line 135