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

Réusinons du code, ne le refactorisons pas !

L’informatique francophone n’est plus à un anglicisme près.

FAQ

On utilise communément l’expression « Foire aux questions » pour parler d’une FAQ, acronyme de l’expression anglaise « Frequently Asked Questions ». Ce rétroacronyme perd le sens principal d’origine et devrait être remplacé par « Questions fréquemment posées ».

Refactorisation

Une nouvelle fois, citons simplement Wikipédia :
« L’expression refactorisation, calquée sur l’anglais refactoring, est en effet un faux ami : l’origine du mot anglais refactoring est factory (usine) et non factor. Il est donc sans rapport avec le terme français factorisation (ou son dérivé refactorisation) qui, en algèbre, est associé à l’utilisation d’un produit de facteurs. »

Limites Google Maps : géolocalisation et gécodage

On emploie à tort le terme « géolocalisation », à ne pas confondre avec la notion de « géocodage ».

Géolocalisation

La « géolocalisation » est un procédé qui permet d’obtenir les coordonnées GPS d’un terminal (smartphone par exemple) à un instant donné, grâce à un système de positionnement par satellite.

Géocodage

Le « géocodage » est un procédé qui permet d’obtenir des coordonnées GPS à partir d’une adresse postale (recherchée dans une base de données par exemple). Le géocodage n’implique pas l’utilisation de satellites.

Limitations de l’API Google Maps

La géolocalisation et le géocodage sont deux opérations bien différenciées dans l’API Google Maps. Au 02/03/2014, Google communique les limitations ci-dessous pour la géolocalisation et le géocodage :

  • 100 requêtes de géolocalisation par jour
  • 2500 requêtes de géocodage par jour

Sources