Footcow Blog - DéveloppementLinux, Base de données Postgresql, développement, Internet, emailing et déliverabilité.2024-03-29T00:07:38+01:00Hervé Piedvache alias Bill Footcow pour les intimesurn:md5:ef5d07bad25e414feca607a3b7f2af11DotclearDotclear: Plugin MailChimpurn:md5:9a9dc67c1c58db60eb7ae4872d03598e2012-03-30T22:47:00+02:002023-05-17T17:20:28+02:00footcowDéveloppementblogdotclearmailchimpnewsletterplugin<p><img src="https://www.footcow.com/public/dotclear.png" alt="" style="display:table; margin:0 auto;" height="110" width="290" />
<br />
Force est de constater que <a href="https://www.dotclear.org" hreflang="fr" title="Dotclear">Dotclear</a> est à mon avis un des meilleurs moteur de blog à l'heure actuel. De par sa conception interne, et la souplesse de son interface, mais aussi grâce au support de <a href="https://www.postgresql.org" hreflang="en" title="PostgreSQL">PostgreSQL</a>, ce qui hélas, se fait encore rare dans les moteurs de blog open source.<br />
Mais Dotclear ne remporte pas la compétition ouverte contre Wordpress au niveau de l’engouement du grand public. Pourquoi ? Simplement parce que sa communauté est restée très franco-française. Sa documentation est toujours incomplète en anglais, et naturellement les plugins, pourtant souvent bien conçus, sont véritablement trop peu nombreux.<br />
Voilà pourquoi dans le cadre de certains développements de ma société ou d'amis dans le besoin, je me suis dit qu'il serait bien de mettre de temps en temps la main à la patte pour faire avancer ce très bon produit. En l'occurrence, j'avais besoin de faire un connecteur assez spécifique pour permettre aux visiteurs d'un blog de s'inscrire à une newsletter envoyée depuis le très bon outil de routage d'email : <a href="https://www.mailchimp.com" hreflang="en" title="MailChimp">MailChimp</a>.</p> <p>MailChimp est gratuit jusqu'à un certain volume d'abonnés et d'envois. Les prix sont très raisonnables si vous dépassez ces limites de bases. Mais surtout l'outil est véritablement très convivial, à la fois simple et puissant pour gérer vos campagnes d'emailing.<br />
Le principe de ce plugin est donc simple : permettre depuis votre blog de proposer à vos visiteurs de s'inscrire à votre newsletter et donc d'alimenter directement la liste de diffusion de votre choix sur MailChimp.<br /></p>
<p><img src="https://www.footcow.com/public/mailchimp.jpg" alt="mailchimp.jpg" style="display:table; margin:0 auto;" title="mailchimp.jpg, mar. 2012" height="139" width="120" />
<br /></p>
<p><strong>Comment procédez ?</strong><br /></p>
<p>Vous vous rendez donc sur le site de <a href="https://www.mailchimp.com" hreflang="en" title="MailChimp">MailChimp</a>. Vous créez votre compte, c'est rapide et surtout gratuit. Puis vous créez votre première liste de diffusion. Vous répondez simplement aux questions qui vous sont proposées. Puis une fois cette liste créée, vous vous rendez dans le menu Account > Extras > API Keys & Authorized Apps pour créer une clé d'API, un click sur un bouton et le tour est joué.<br />
<br />
On passe maintenant à Dotclear, pour installer l'extension <a href="https://www.footcow.com/public/pub/dcmailchimp.zip" hreflang="fr" title="dcMailChimp">dcMailChimp</a> selon la procédure classique d'ajout d'extension, via Système > Extensions > Installer ou mettre à jour une extension, vous placez le <a href="https://www.footcow.com/public/pub/dcmailchimp.zip" hreflang="fr" title="dcMailChimp">fichier zip</a> suivant dans l'insterface et le tour est joué.<br />
<br />
Maintenant, vous allez dans le menu Extensions > dcMailChimp pour saisir votre clé d'API MailChimp, vous enregistrez.<br />
Enfin, vous allez dans Blog > Widgets de présentation, vous faite glisser le widget dcMailChimp où vous voulez sur votre blog, et surtout en fonction du template utilisé. Un click sur le plus, va vous permettre de sélectionner directement le nom de la liste de diffusion précédemment ouverte sur le site de MailChimp, si la clé d'API a bien été renseignée. Reste donc à paramétrer les textes d'affichage pour présenter le Widget sur le blog et le tour est joué. Vous pourrez toujours ensuite adapter le visuel du formulaire via la css de votre template.<br />
<br />
En espérant que ce plugin pourra servir à d'autres.</p>https://www.footcow.com/index.php/post/2012/03/30/Dotclear%3A-Plugin-MailChimp#comment-formhttps://feeds.feedburner.com/FootcowBlog/comments/105HipHop pour PHPurn:md5:469b44e236652911561cb858b06f6d2d2010-02-03T23:26:00+01:002010-02-21T11:16:01+01:00footcowDéveloppementCcompilationdeveloppementfacebookhiphopphp<p><br />
<img src="https://www.footcow.com/public/HipHop_logo_white.png" alt="hiphop for php" style="float:left; margin: 0 1em 1em 0;" title="hiphop for php, fév. 2010" height="278" width="213" />A peine annoncé, qu'il y a, déjà, beaucoup de discussions lancées autour de la libération en open source de <a href="https://developers.facebook.com/news.php?blog=1&story=358" hreflang="en">HipHop pour PHP</a>, par l'équipe de développement de <a href="https://www.facebook.com" hreflang="en">Facebook</a>. Cette nouvelle technologie convertit le système natif de production de <a href="https://www.php.net" hreflang="en">PHP</a>, en prenant le code PHP, pour le convertit en code C++. Il crée un fichier binaire complet qui peut être exécuté sur un serveur en mode natif. Facebook annonce améliorer jusqu'à 50% les performances d'exécution finale. Leur méthode représente une évolution radicale dans la réflexion sur les langages de script comme PHP.<br />
<br />
Assurément, beaucoup de gens vont réfléchir à comment cela pourrait leur être profitable. Mais qui va véritablement profiter de ce système ?<br /></p> <p><strong>Qui va en profiter ?</strong><br /></p>
<p>Il y a beaucoup d'avantages pour les sociétés qui produisent des applications web à grande échelle en PHP. La possibilité de convertir du code PHP en autre chose, qui plus est, plus efficace, sans avoir à recycler leurs développeurs réduiront finalement la charge des serveurs et les coûts de déploiement. En particulier, tout ceux qui, aujourd'hui, exploitent plus de deux serveurs pour une application web. L'importance des trafics web, et les charges machines sont aujourd'hui, surtout dans les applications objets à lourds frameworks, une charge de plus en plus importante. Avec une amélioration de 50% des performances, on peut facilement imaginer utiliser moins de serveurs, même si pour des raisons de sécurisation, une redondance sera toujours nécessaire.
Les sociétés qui distribuent des applications natives en PHP, pourront aussi profiter de cette technologie. Cela va ainsi leur permettre de déployer une application web dans un format compilé et donc pleinement sécurisé, et réduire, de façon radicale, les risques de détournements liés au langage en script.<br /></p>
<p><strong>Qui ne va pas en profiter ?</strong><br /></p>
<p>Malgré tous ces avantages, il demeure un groupe important de développeurs PHP qui ne bénéficieront pas des avantages de cette technologie. En fait, la grande majorité des développeurs PHP, qui ne produisent que des petits sites, ne nécessitant qu'un serveur web et avec un faible trafic. Beaucoup de sites fonctionnent sur des machines partagées, ou des sites qui ont plusieurs services sur un même serveur. Étant donné qu'HipHop permet de faire fonctionner une application web à la fois (sur un seul serveur web), il est impossible pour le moment de faire fonctionner plus d'un site internet sur un serveur. Ce n'est évidemment pas optimal pour la plupart des applications PHP en production à ce jour, et cela en limitera donc l'utilisation.<br /></p>
<p>De plus, les premiers utilisateurs de PHP v5.3 ne seront pas en mesure d'utiliser HipHop dans l'immédiat, car actuellement il supporte uniquement PHP dans sa version 5.2; la majorité des développements de Facebook sont écrits dans cette version de PHP. Même si dans le futur un portage sera surement proposé pour cette nouvelle version, il est important de prendre en compte que les évolutions de PHP ne seront pas exploitables tant qu'HipHop ne suivra pas un planning de développement très proche de celui de l'équipe de PHP. Cela engendrera forcément de nombreuses frustrations pour certains développeurs. Ces derniers étant souvent limités par les évolutions des distributions stables, des validations de versions de production et les tests de régressions associés.<br /></p>
<p><strong>Conclusion</strong><br /></p>
<p>HipHop est un projet impressionnant, il va certainement changer la méthode d'exploitation et de développement de certaines applications PHP. Il n'en demeure pas moins qu'il faut voir que cet outil est avant tout développé pour Facebook et son utilisation interne. Quid de ses futures évolutions, quid de potentiels concurrents qui pourraient rapidement voir le jour, en tous cas cela laisse supposer de belles évolutions autour de PHP dans les mois qui viennent.</p>
<p><em><strong>Mise à jour du 21/02/2010 :</strong></em>
Facebook vient de mettre à disposition HipHop pour PHP sur <a href="https://github.com/facebook/hiphop-php" hreflang="en">Github</a>.</p>https://www.footcow.com/index.php/post/2010/02/03/HipHop-pour-PHP#comment-formhttps://feeds.feedburner.com/FootcowBlog/comments/89Visualiser vos logs facilement !urn:md5:8ea5e82e689d2ff5dd5ad48c372557112007-12-28T00:25:00+01:002010-02-21T12:44:46+01:00footcowDéveloppementlinuxlogmultitail<p><img src="https://www.footcow.com/public/multitail-logo.png" alt="multitail" style="float:right; margin: 0 0 1em 1em;" height="50" width="150" />Que l'on soit administrateur système, développeur ou simplement pour administrer sa machine, vous avez souvent eu besoin de lire plusieurs fichiers de logs en même temps. Alors oui, il existe par défaut sur nos distributions Linux la fameuse commande <code>tail</code> dont on se sert éventuellement sur différentes consoles pour tracer ou suivre les évolutions de fichiers, mais cela devient vite usant de basculer à longueur de temps de l'une à l'autre sans jamais être synchro.<br /></p>
<p>Heureusement pour nous il existe un outil, open source, peu connu qui permet de faire cela avec merveille, avec en plus des fonctionnalités particulièrement facile à mettre en oeuvre et qui vous change radicalement la vie : <a href="https://www.vanheusden.com/multitail/index.html" hreflang="en">multiTail</a>.<br /></p> <p><strong>Installation</strong><br /></p>
<p>MultiTail est maintenant disponible sur la majorité des bonnes distributions et tout particulièrement sur <a href="https://www.debian.org" hreflang="fr">Debian</a> et <a href="https://www.ubuntu.com/" hreflang="en">Ubuntu</a>.<br />
Une simple commande vous permettra donc de l'installer :</p>
<pre>
sudo apt-get install multitail
</pre>
<p><strong>Utilisation</strong><br /></p>
<p>Vous pouvez donc maintenant visualiser simplement deux (ou plus) fichiers de logs, qui vont défiler en même temps dans une fenêtre coupée horizontalement en utilisant le paramètre -i devant le nom de vos fichiers. En plus en fonction des fichiers, ou de vos choix, car c'est entièrement paramétrable, vous pourrez avoir une coloration syntaxique des données affichées.<br /></p>
<pre>
multitail -i /home/httpd/log/error_log -i /home/httpd/log/access_log
</pre>
<p><img src="https://www.footcow.com/public/multitail1.png" alt="multitail log" height="396" width="582" />
<br /></p>
<p>Vous pouvez également utiliser multiTail pour afficher des résultats d'application via le paramètre -l, comme par exemple un ping ou un traceroute. Vous avez également la possibilité de n'afficher des lignes qui ne vont correspondre qu'à une expression régulière définie, ou selon un timing précis, ou encore en retirant les lignes que vous ne voulez pas voir affichées etc. Une vraie mine d'or !<br /></p>
<pre>
multitail -l "ping www.footcow.com" -l "ping www.google.com"
</pre>
<p><img src="https://www.footcow.com/public/multitail2.png" alt="multitail ping" />
<br /></p>
<p>Il existe un nombre impressionnant d'autres options, comme la définition de modèles de colorations, le switch de fenêtre, le séparation verticale, l'ajout de fenêtre, les vues statistiques de fichier de log, ou encore le merge de log dans une même fenêtre etc. N'hésitez pas à consulter la page <a href="https://www.vanheusden.com/multitail/examples.html" hreflang="en">d'exemples</a> fournis sur le site de multiTail.<br /></p>
<p>Et vous ne pourrez plus vous en passer !</p>https://www.footcow.com/index.php/post/2007/12/28/Visualiser-vos-logs-facilement#comment-formhttps://feeds.feedburner.com/FootcowBlog/comments/36Librairie de gestion de fenêtres javascript en Prototypeurn:md5:dc89f27e2dd279b3da2ef185f0f5aa502007-01-07T12:24:00+01:002010-02-21T12:42:18+01:00footcowDéveloppementjavascriptprototypewindow <p><img src="https://www.footcow.com/public/prototype_window.gif" alt="prototype window" style="float:right; margin: 0 0 1em 1em;" height="76" width="356" />
Pour ceux qui s'intéressent aux interfaces riches sur le web, je suis assez fan de la librairie <a href="https://prototype.conio.net/" hreflang="en">Prototype</a> ... elle permet de gagner un temps dingue et gère de façon optimal le DOM pour réaliser des applications javascript en un temps éclair.<br /> Mais <a href="https://prototype.conio.net/" hreflang="en">Prototype</a> ne fait pas tout ... et heureusement des développeurs ont décliné des classes associées pour faire des effets graphiques ou encore dans le cas présent un gestion de fenêtres véritablement sympa.<br />
Vous pouvez ainsi gérer complètement des fenêtres dans un environnement HTML.<br />
Cette classe est basée naturellement sur <a href="https://prototype.conio.net/" hreflang="en">Prototype</a>. Et s'inspire largementd de la librairie <a href="https://script.aculo.us/" hreflang="en">script.aculo.us</a>. Vous pouvez d'ailleurs vous servir des effets de <a href="https://script.aculo.us/" hreflang="en">script.aculo.us</a> pour afficher ou cacher les fenêtres.<br />
Cette classe a été testée sur Safari, Camino, Firefox et IE6.<br /></p>
<p>Les principales fonctionnalités :</p>
<ul>
<li>Code généré entièrement HTML/XHTML valide</li>
<li>Fenêtre redimensionnables</li>
<li>Fonction de Pleine page ou Réduction</li>
<li>Boite d'information modales</li>
<li>Effets visuels</li>
<li>Looks personnalisables (skin)</li>
<li>et beaucoup d'autres chose</li>
</ul>
<p>Pour en savoir plus : <a href="https://prototype-window.xilinus.com/index.html" hreflang="en">Prototype Window Class</a></p>https://www.footcow.com/index.php/post/2007/01/07/Librairie-de-gestion-de-fenetres-javascript-en-Prototype#comment-formhttps://feeds.feedburner.com/FootcowBlog/comments/24Google et le développement collaboratifurn:md5:a207fa53bf5dd3a8c9175a1a8cdd7bf62006-07-28T19:07:00+00:002010-02-21T11:40:19+00:00footcowDéveloppementcollaboratifgooglehébergementopensourceprojets <p><img src="https://www.footcow.com/public/google_code.png" alt="google_code" style="float:right; margin: 0 0 1em 1em;" height="66" width="163" />Google ne cesse d'ouvrir de nouveaux sites, pas toujours aussi utiles ou fonctionnels que le maintenant traditionnel moteur de recherche mais cette fois il touche directement un sujet qui m'intéresse vraiment avec <a href="https://code.google.com/hosting/" hreflang="en" title="Google code">Google code Project Hosting</a>.<br />
Ce service est un concurent direct des <a href="https://www.sourceforge.net" hreflang="en" title="Source Forge">SourceForge</a>, ou <a href="https://gforge.org/" hreflang="en" title="Gforge">gforge</a>.<br />
Son but est donc de permettre l'hébergement de projets collaboratifs Opensource, en offrant les services suivants :<br /></p>
<ul>
<li>Des zones de travail de projets avec des règles d'adhésion simple</li>
<li>Gestion du versionning via subversion</li>
<li>Suivi de bugs</li>
<li>Mailing list sur groups.google.com</li>
</ul>
<p>Ce service s'adresse donc à tous les développeurs OpenSource.<br />
Le but officiel annoncé par Google est d'encourager la productivité de la communauté OpenSource.<br />
A suivre ... bien que ce site ne porte pas la mention Béta (tradionnelle des nouveaux site estampillé Google) mais manque encore clairement de stabilité.</p>https://www.footcow.com/index.php/post/2006/07/28/Google-et-le-developpement-collaboratif#comment-formhttps://feeds.feedburner.com/FootcowBlog/comments/16API ? En veux-tu ? En voilà ... !urn:md5:c1670daa4d7dbde8029d1bf13cffab192006-07-07T00:56:00+00:002010-02-21T11:38:46+00:00footcowDéveloppementapideveloppementweb <p><img src="https://www.footcow.com/public/programmableweb.png" alt="progweb" style="float:right; margin: 0 0 1em 1em;" height="73" width="231" />Les API n'arrêtent pas de naître sur le net pour vous permettre d'intégrer sur votre site web des fonctionnalités en provenance d'autres sites.<br />
Yahoo, Google, Amazon, Flicker etc. tous vous proposes des fonctionnalités technologiques ou commerciales pour faire profiter vos utilisateurs de fonctionnalités uniques. Mais hélas, comme souvent, les API ne sont pas forcément pratiques à mettre en place, et les documentations peuvent être laborieuses à lire ... Le site <a href="https://www.programmableweb.com/" hreflang="en">ProgrammableWeb</a> proprose un inventaire assez complet d'un grand nombre d'API du net, mais surtout vous met à disposition, dans de nombreux languages, des exemples précis où il ne vous reste souvent qu'à faire un copier/coller dans votre propre code ...<br />
En plus, on trouve des API surprenantes dont on ne s'avait même pas l'existance ...<br />
Pour les fainéants de la programmation ... ou pour les débutants !</p>https://www.footcow.com/index.php/post/2006/07/07/API-En-veux-tu-En-voila#comment-formhttps://feeds.feedburner.com/FootcowBlog/comments/15Zend Frameworkurn:md5:808ea7857d2f0320e6b33a81815fc2252006-04-28T22:53:00+00:002010-02-21T11:26:30+00:00footcowDéveloppementframeworkphpzend <p><img style="margin: 0 1em 1em 0; float: left;" alt="" src="https://www.footcow.com/public/znd_logo.png" height="52" width="209" /></p>
<p>Les frameworks pour <a href="https://www.php.net" hreflang="en">php</a> se mutltiplient mais peu sortent véritablement du lot. <a href="https://framework.zend.com/">Zend Framework</a> déroge à la règle.<br />
Primo <a href="https://www.zend.com" hreflang="en">Zend</a> n'est pas une société qui sort de nulle part et qui surtout a déjà apporté énormément à la communauté <a href="https://www.php.net" hreflang="en">php</a>.<br />
Conclusion de quoi les composants proposés sont d'une très bonne qualité, même si c'est une version alpha pour le moment, il se dégage déjà des objets particulièrements évolués. La documentation associée est de très bonne qualité. Le tout parfaitement adapté à PHP5.<br />
Ce qui me plait particulièrement c'est leur démarche tant au niveau de l'outil, que de la façon dont il est écrit. Un code irréprochable de propreté qui repose sur des <a href="https://framework.zend.com/manual/en/coding-standard.html" hreflang="en">standards</a> d'écriture, de nommage et de style en parfaite adéquation avec ma façon d'appréhender le code.</p>
<p><strong>Description des composants:</strong></p>
<p><em>Zend_Controller et Zend_View</em><br />
Ces composants fournissent la base pour un site Web MVC simple. Un contrôleur frontal répartie les demandes aux contrôleurs de page. Le composant de Zend_View fournit l'encapsulation pour la logique de vue. Il peut utiliser des templates écrits en PHP ou peut être combiné avec un moteur de template externe.</p>
<p><em>Zend_Db</em><br />
L'accès aux bases de données est une couche très mince au dessus de PDO. Les systèmes existants n'employant pas PDO (tel que mysqli ou oci8) sont actuellement en cours de développement. Sont inclus des adapteurs (MySQL, SQLite, PostgreSQL etc.), un profileur, un outil pour permettant de gérer facilement vos SELECT, et des objets simples pour travailler avec vos tables.</p>
<p><em>Zend_Feed</em><br />
Ce composant fournit une manière très simple pour accéder à des flux RSS et Atom. Il inclut également des utilitaires pour découvrir des liens des flux, l'importation de flux depuis différentes sources, et les flux peuvent même être modifiés et sauvés au format.</p>
<p><em>Zend_HttpClient</em><br />
Ce composant fournit un client pour le protocole de HTTP et n'exige aucune extension de PHP.</p>
<p>"Zend_InputFilter"<br />
Le composant de filtrage de saisies encourage le développement des sites Web sécurisés en fournissant les outils de base nécessaires pour le filtrage et la validation des saisies.</p>
<p><em>Zend_Json</em><br />
Convertissez facilement les structures de PHP en JSON faire des applications AJAX.</p>
<p><em>Zend_Log</em><br />
Ce composant permet d'écrire les données sur la console, dans des fichiers plats, ou en base de données. Cette API simple et procédurale réduit les bavardages de log à une ligne et est parfaite pour les cron et le suivit des erreurs.</p>
<p>"Zend_Mail et Zend_Mime" <br />
Presque toutes les applications Internet doivent envoyer des emails. Zend_Mail, aidé par Zend_Mime, crée des emails et les envoie. Il gère les pièces jointes et effectue tout le travail rébarbatif de MIME.</p>
<p>"Zend_Pdf" <br />
Le format PDF d'Adobe est la norme, de fait, pour les échanges de documents entre plateformes. Maintenant, les applications PHP peuvent créer des documents de PDF à la volée, sans avoir besoin d'appeler des utilitaires depuis le shell, ni de dépendre d'extensions de PHP, ou de payer des licences. Zend_PDF modifient même les documents PDF existants. Créez un modèle de facture complexe avec OpenOffice, complétez le avec Zend_Pdf, et envoyez-la via Zend_Mail.</p>
<p>"Zend_Search_Lucene" <br />
Le moteur Lucene d'Apache est un moteur de recherche puissant et écrit en Java, il est adapté au stockage de documents et supporte de nombreuses méthode de requtage. Zend_Search_Lucene est un portage de ce moteur écrit entièrement en PHP 5, permettant à des sites Web écrits en PHP d'accroître leurs possibilités de recherche sans avoir besoin de service web externe ou ni de Java. Le format de fichier de Zend_Search_Lucene est entièrement compatible avec sa contre-partie en Java.</p>
<p>"Zend_Service : Amazone, Flickr, et Yahoo !" <br />
Les services Web deviennent de plus en plus importants. Le Zend Framework fournit des outils pour accéder aux APIs des trois principaux fournisseurs afin de les rendre le plus simple possible d'utilisation. D'autres API sont en cours d'adaptation.</p>
<p>"Zend_XmlRpc" <br />
L'extension SOAP de PHP 5 a nettement abaissé les difficultés rencontrées jusque là pour communiquer avec des services SOAP depuis le language PHP. Zend_XmlRpc apporte les mêmes possibilités à XML-RPC, simulant l'extension SOAP et facilitant l'utilisation de ces services comme jamais en PHP 5.</p>SourceForge.net va passer à subversionurn:md5:3d2e14f9eddc9117ecd1fc74bac5996b2006-01-13T02:04:00+00:002006-07-04T19:59:38+00:00footcowDéveloppementsubversion <p>Voilà une nouvelle qui va faire plaisir à plus d'un ... lu sur <a href="https://sourceforge.net/docs/A03#january-2006">SourceForge.net: Recent Enhancements (en)</a>.<br />
<br />
SourceForge.net a terminé l'implémentation de <a href="https://subversion.tigris.org/" hreflang="en">Subversion</a>. Pour le moment seul un groupe de bêtas testeurs pourra profiter de cette phase expérimentale qui a commencé le 12 janvier 2006, pour une mise en production finale prévue pour février 2006.</p>