BackboneJS : écouter le router au chargement de l’application

Dans une application BackboneJS, si vous avez besoin d’écouter l’événement route déclenché par votre router, pensez à procéder dans le bon ordre :

// 1 - Instanciation du Router
App.router = new Router();

// 2 - Instanciation des écouteurs
App.menu = new MenuView(); // écoute l'événement "route" du router

// 3 - Démarrage de la navigation
App.history = Backbone.history.start();

Le router ne démarre pas au moment de son instanciation. En réalité, c’est l’historique qui démarre le router ( Backbone.history.start ).
Donc si vous lancez l’historique avant d’instancier vos écouteurs, vous n’écouterez pas l’événement route déclenché au chargement de votre application, mais seulement l’événement route déclenché aux changements de route, lors de la navigation des utilisateurs.

MySQL : obtenir la taille des bases de données en ligne de commande

Requête

SELECT table_schema AS "Database name", SUM(data_length + index_length) / 1024 / 1024 AS "Size (MB)"
FROM information_schema.TABLES
GROUP BY table_schema

Résultat

+--------------------+--------------+
| Database name      | Size (MB)    |
+--------------------+--------------+
| database 1         | 607.70312500 |
| database 2         | 647.92187500 |
| information_schema |   0.00878906 |
| database 3         | 417.16526890 |
| database 4         | 567.17187500 |
+--------------------+--------------+

eZ Find : créer des filtres Solr sur les dates

Voici un exemple de filtres Solr sur les dates des événements d’un agenda qui permettent de récupérer les événements du jour (en cours ou commençant aujourd’hui).

{def $timestamp = currentdate()
     $filter = array( 'or',
                      array( concat('event/from_time:[' , $timestamp|datetime('solr') , ' TO ' , sum($timestamp,86400)|datetime('solr') , ']')),
                      array( 'and',
                             concat('event/from_time:[* TO ' , $timestamp|datetime('solr') , ']'),
                             concat('event/to_time:[' , sum($timestamp,86400)|datetime('solr') , ' TO *]') ))}

Attention à l’utilisation d’un format de date spécifique à Solr, format défini dans la configuration ini de l’extension ezfind.

[ClassSettings]
Formats[solr]=%Y-%m-%dT%H:%i:%sZ

Edit : le format de date « solr » a été modifié dans la version actuelle d’ezfind.

Envoyez les logs de vos applications à vos développeurs

Petite astuce simple et rapide à mettre en œuvre pour que votre équipe de développement devienne proactive : envoyez les logs de vos applications par mail à vos développeurs.

Exemple de cronjob

0 0 * * * echo "Subject: Ma super appli : error.log" | cat - /path/to/log/folder/error.log | /usr/sbin/sendmail -t mesdeveloppeurs@maboite.com

En cadeau, un super tutoriel sur les cronjobs : http://code.tutsplus.com/tutorials/scheduling-tasks-with-cron-jobs–net-8800

Exploiter une base de données Access sur un environnement Unix avec mdb-sqlite

Bien qu’à l’origine d’ODBC dès 1992 (Open Database Connectivity), Microsoft n’a jamais fourni de drivers Linux pour ses bases de données Access. Entre drivers commerciaux coûteux et solutions incomplètes, l’exploitation d’une base de données Access sous Unix reste assez difficile.

L’incomplet MDB Tools

http://mdbtools.sourceforge.net/install/

C’est probablement la première solution qu’on rencontre lorsqu’on cherche à exploiter une base Access sous Linux.

MDB Tools fournit plusieurs commandes très utiles :

  • mdb-tables : list tables in the specified file
  • mdb-schema : generate schema DDL for the specified file
  • mdb-export : generate CSV style output for a table
  • mdb-ver : display the version of the specified file
  • mdb-header : support for using MDB data in C
  • mdb-parsecsv : support for using MDB data in C
  • mdb-sql : command line SQL query tool

Le gros inconvénient est le support très limité des requêtes SQL. Tant qu’on ne doit réaliser que des SELECT simples, MDB Tools répond parfaitement. Mais il est incapable de réaliser des jointures par exemple.

Le coûteux Easysoft ODBC-Access driver

http://www.easysoft.com/products/data_access/odbc-access-driver/index.html

Recommandé par UnixODBC, le driver ODBC-Access, développé et commercialisé par la société EasySoft, est la solution idéale pour requêter directement un fichier Access sur Linux.

Son installation est assez simple et il peut exécuter la plupart des requêtes SQL, mêmes les plus complexes.

Principal inconvénient : son prix. La licence pour une utilisation sur un seul poste démarre à 650€.

L’alternative mdb-sqlite

https://code.google.com/p/mdb-sqlite/

MDB-SQLite n’est pas un driver ODBC mais un convertisseur Access to SQLite. Son utilisation est différente des deux drivers ODBC ci-dessus mais son intérêt réside dans l’utilisation de SQLite.

SQLite est un système de gestion de base de données SQL sans serveur, qui stocke les données d’une base dans un seul fichier autonome.
En utilisant les fonctions SQLite de PHP, on peut lancer des requêtes directement sur le fichier SQLite.

MDB-SQLite est une archive Java. Voici un exemple de son utilisation :

java -jar dist/mdb-sqlite.jar source.mdb output.sqlite