Application Android “Les-Horaires”

Je vous présente l’application Android Les-Horaires, qui permet de trouver des points d’intérêts (commerces, bars, postes, …) à proximité d’un lieu ou de vous, et de connaître les horaires d’ouverture!

 

Vous trouverez une description sur la page du projet et vous pouvez télécharger Les-Horaires sur le Google Play Store.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Webistrano: Net::SSH::AuthenticationFailed error

Si vous avez une erreur Net::SSH::AuthenticationFailed avec Webistrano (ou Capistrano), vous êtes peut-être en présence du bug de Net::SSH que je vais vous présenter. Avant, vérifiez ces points-ci:

  • Le nom du serveur (et l’IP qui va derrière) est bon.
  • Le nom d’utilisateur est bon.
  • Vous pouvez vous connecter à votre serveur en utilisant ssh user@server.example.com en tant que l’utilisateur qui exécute Webistrano (ie la configuration runner) ou bien l’utilisateur qui lance le cap.

Si vous pouvez vous connecter au serveur avec une paire de clé (ou un mot de passe) depuis votre runner, vous pouvez essayer ce correctif. Sinon, cherchez ailleurs, ça n’est sûrement pas la solution de votre problème. En fait, le problème vient de la librairie Net::SSH de Ruby, qui n’arrive pas à se connecter si on ne lui passe pas l’option de configuration auth_methods.

Pour tester

Pour être sur que le correctif que je vous propose résoudra votre problème, nous allons tester le déploiement en utilisant le fichier CAP directement. En fait, c’est le fichier que Webistrano génère pour que Capistrano déploie votre application.
Ainsi, dans Webistrano, cliquez sur le stage de votre projet, puis Export CAP file. Copiez le contenu de ce fichier dans le répertoire de travail du runner de votre stage. Pour moi, le runner est webistrano, le fichier sera donc ici: /home/webistrano/tmp/test-webistrano.cap.

Ajoutez à votre fichier cap la ligne de configuration suivante, avec la section “TEMPLATE TASKS”.

Note: si vous utilisez une autre méthode d’authentification, changez donc le nom… Vous pourrez trouver une liste exhaustive dans la documentation de Net::SSH.

Ensuite, testez le déploiement avec Capistrano, qui est dans le répertoire des librairies de Webistrano. Dans mon exemple, (où la racine de Webistrano est /home/webistrano), je lance le déploiement comme ceci:

Pour résoudre

Continue reading Webistrano: Net::SSH::AuthenticationFailed error

facebooktwittergoogle_plusredditpinterestlinkedinmail

Zend PHP 5.3 Developer Certified

Ça y est, je suis développeur PHP 5.3 certifié par Zend! :-)

Le principe du concours est très simple: vous avez 90 minutes pour répondre à 70 questions aléatoires concernant le fonctionnement de PHP ainsi que les différents domaines qui l’entour, à savoir le SQL, la sécurité en général, etc…

Je vous conseil de le passer, c’est sans aucun doutes un bon élément sur le CV. Si vous avez un quelconque question, n’hésitez pas!

facebooktwittergoogle_plusredditpinterestlinkedinmail

MyOnlineSSH: Mise à jour

Le service MyOnlineSSH a été mis à jour. Pour rappel, lors de mon précédent article sur MyOnlineSSH, je vous présentait ce service comme un client SSH Web: vous pouvez vous connecter sur un serveur SSH et utiliser votre navigateur comme terminal, ce qui est extrêmement pratique lorsque vous êtes à un endroit où vous pouvez pas utiliser le port 22 à l’exterieur de votre réseau, et que vous ne souhaitez pas mettre en place un tunnel HTTP par exemple.

Change-log

  • Le Flash Player n’est maintenant plus requis, seules des requêtes GET et POST sont envoyées.
  • Vous pouvez créer plusieurs terminaux simultanés
  • Rapidité beaucoup plus importante.

Si vous avez une quelconque suggestion ou question, n’hésitez pas à me contacter ou à laisser un commentaire sur cet article.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Erreur PHP – require_once(): Unable to allocate memory for pool

Depuis peu, PHP me sort des erreurs assez bizarres, à savoir des “Unable to allocate memory for pool“. Ceci se passe notamment sur les fonctions require_once et include_once. Après quelques temps de recherche, il s’avère que c’est en fait APC qui créé cette erreur lorsqu’il n’a plus assez de place dans sa mémoire.

C’est pourquoi, pour éviter ce bug – voir ici le rapport de bug sur php.net – vous devez augmenter la mémoire allouée à APC avant d’attendre une mise à jour corrigeant ce problème.
Dans le fichier /etc/php.d/apc.ini (sous CentOS) éditez donc la ligne contenant la directive apc.shm_size en y ajoutant plusieurs mégas. Pour information, voici la configuration du serveur hébergeant D-Sites.com:

facebooktwittergoogle_plusredditpinterestlinkedinmail

socket_stream_select: Attendre un flux (stream) et un socket en même temps

Avec PHP, on peut interagir avec l’extérieur (et l’intérieur) du serveur sur lequel est exécuté le PHP à l’aide de flux et de sockets. Pour PHP, les flux – ou streams – et les sockets sont différents, alors qu’au niveau système, ce sont en réalité tous les deux des sockets (différents des sockets tels que l’entend PHP).

L’on travaille sur les deux en utilisant des fonctions toutes distinctes:

Parmi celles-ci, il y a deux fonctions extrêmement utiles: stream_select et socket_select. Elles permettent d’attendre de nouvelles données respectivement depuis un flux et un socket.

Vous pouvez par exemple attendre deux flux de données en même temps avec stream_select. Si l’un des deux a de nouvelles informations, la fonction retourne un entier décrivant le nombre de flux qui ont eu de nouvelles notifications. Vous pouvez aussi ajouter un timeout, etc… De la même manière, vous pouvez attendre un ou plusieurs sockets avec socket_select.

Seulement, si vous travaillez à la fois avec des flux et des sockets… Comment faire?

  1. Vous pouvez très bien mettre des timeout à quelques dizaines de millisecondes, regarder pendant x ms le flux, x ms le socket, puis on recommence… C’est une solution comme une autre mais très peu propre, et qui ne sera jamais “instantanée”.
  2. Vous pouvez utiliser un système, auquel vous vous connecterez en socket, qui écoutera un flux et dès que le flux recevra des données, il vous l’enverra par le socket. Ainsi, vous aurez que des sockets, vous pouvez donc utiliser socket_select.
  3. Mais, pourquoi ne pas créer une fonction socket_stream_select, ou stream_socket_select, comme vous voulez, dans le coeur de PHP, qui transformera les flux et les sockets PHP en sockets systèmes pour les écouter avec la fonction C select ?

Continue reading socket_stream_select: Attendre un flux (stream) et un socket en même temps

facebooktwittergoogle_plusredditpinterestlinkedinmail

MyOnlineSSH: Version anglaise

La version anglaise de MyOnlineSSH est mise en ligne permettant à tous les anglophones de se connecter en SSH depuis leur navigateur Internet, éditée avec PHP-Gettext-Edit, un outils permettant la gestion extrêmement facile des fichiers de traduction d’une application Internet (dont la version 2, avec gestion de comptes utilisateurs ne devrait pas tarder).

facebooktwittergoogle_plusredditpinterestlinkedinmail

PHP-Gettext-Edit: Gérez vos traductions Gettext simplement!

PHP-Gettext-Edit est une application PHP qui permet de gérer très simplement les différentes traduction d’un site Internet par exemple, plus généralement d’une application (qu’elle soit écrite en PHP, C, Java, JavaScript…) utilisant des fichiers de traduction Gettext.

En utilisant PHP-Gettext-Edit, vous pouvez en quelques clics analyser votre code, faire les traductions et compiler les fichiers de traductions! PHP-Gettext-Edit vous permet de:

  • Analyser un code source pour en générer un modèle de traduction, contenant toutes les chaines de caractère à traduire
  • Créer des fichiers de traduction à partir de modèles
  • Éditer directement depuis votre navigateur un fichier de traduction
  • Compiler en .mo ou en JSON un fichier de traduction
  • Contrôler la validité
    • Des modèles par rapport au code source
    • Des fichiers de traductions par rapport à leurs modèles
    • Des fichiers compilés par rapport à leurs fichiers de traduction
    • Des langues entre-elles par rapports aux fichiers qu’elles contiennent
  • Éffectuer les opérations précédentes de manière collective

Rendez-vous sur le site du projet, www.php-gettext-edit.net »

facebooktwittergoogle_plusredditpinterestlinkedinmail

MyOnlineSSH: Connectez-vous en SSH depuis un simple navigateur Internet

Vous pouvez aussi voir la page du projet MyOnlineSSH.

MyOnlineSSH est un service permettant de se connecter à un serveur en SSH directement depuis votre navigateur. La configuration necessaire est très petite:

  • Un navigateur avec le JavaScript activé
  • Flash Player installé
  • Le port 80 ouvert

En effet, seul le port 80 suffit pour se connecter au SSH à l’aide de MyOnlineSSH comme vous pouvez le voir dans la page Aide de MyOnlineSSH.

Je vous invite donc à tester dès à présent MyOnlineSSH:

http://www.myonlinessh.com

D’ici peu, une traduction anglaise de MyOnlineSSH verra le jour pour nos amis anglophones.

facebooktwittergoogle_plusredditpinterestlinkedinmail

Optimiser WordPress avec WP-Super-Cache

Pour ce 100ème article, nous allons rapidement nous intéresser à la vitesse d’éxécution de WordPress. En effet, la grosse machinerie WordPress peut mettre plusieurs secondes à générer une simple page d’article lorsqu’elle est installée sans plus de configuration. En effet, les différents plug-ins, thèmes et compagnies ne font pas de WordPress quelque chose de rapide, dans la mesure où le nombre de fichiers chargés pour une simple page peut aller jusqu’à 1000 et le nombre de requêtes SQL est colossal!

WordPress sans cache

Je vais prendre les chiffres de D-Sites: sans cache avec quelques plug-ins (captcha/statistiques/coloration syntaxique) et sur un hébergement mutualisé OVH, la page d’accueil par exemple, met en moyenne 2 secondes pour être générée, comme l’atteste le site IsMyBlogWorking.

blog-before-supercache

Deux secondes pour afficher une page, c’est beaucoup beaucoup trop, nous allons donc mettre en place le cache. Pour le mettre en place sur un blog WordPress, rien de plus simple: dans l’administration, dans le menu Extensions, cliquez sur Ajouter. Ensuite, il vous suffit de rechercher un plug-in au nom de “WP Super Cache”. Installez-le de manière automatique, tout marche très bien, créez les règles dans le fichier HTACCESS puis ça roule !

Continue reading Optimiser WordPress avec WP-Super-Cache

facebooktwittergoogle_plusredditpinterestlinkedinmail