La photo est une passion de longue date.
Faute de temps et de matériel adéquat, j'ai dû patienter quelques années avant de pouvoir vraiment m'adonner à cette passion.
Actuellement, je m’intéresse à de nombreux domaines : photo nature et sportive, même si les domaines du portrait ou le travail en mini studio me font de l’œil.
Retrouver mes différentes galeries sur mon blog dédié http://haptomai.org/ ou sur DeviantArt.
dimanche 20 avril 2014
mardi 15 avril 2014
Optimiser les temps de réponse de MySQL - le DNS
Accélérer le temps de réponse de MySQL en désactivant la résolution DNS
Pour traiter des quantités importantes de données (quelques millions de lignes), j'utilise Talend Open Studio for Data Integration.
Toutes mes bases de données MySQL sont hébergées sur une VM (VirtualBox / Debian) en local.
Or, j'ai un petit problème de résolution de nom lié aux règles de sécurité drastiques, ce qui fait que MySQL patauge un peu quand je l’interroge depuis ma machine, que ce soit avec Talend ou autre chose (MySQL WorkBench...) car il veut absolument résoudre mon IP :(
Donc pour contourner ce petit 'problème', il suffit de désactiver la résolution DNS dans MySQL
Pour cela, ajoutez un ligne dans le fichier de configuration de MySQL (my.cnf) avec l'option suivante :
skip-name-resolveet redémarrez le serveur MySQL
Et là ! ca marche mieux !
La doc : http://dev.mysql.com/doc/refman/5.1/fr/dns.html
mercredi 6 juin 2012
Piwik error after update from 1.7.1 to 1.8.2
Erreur après la mise à jour de piwik depuis la version 1.7.1 vers 1.8.2
Une petite erreur rencontrée lors de la mise à jour automatique de piwik après la mise à jour de la base de données :
SQLSTATE[42000]: Syntax error or access violation: 1044 Access denied for user 'piwik'@'localhost' to database 'piwik'
Go to Piwik
Login
Backtrace:
#0 /var/www/piwik-1.5.1/core/PluginsFunctions/Sql.php(51): Zend_Db_Adapter_Pdo_Abstract->exec('LOCK TABLES pwk...')
#1 /var/www/piwik-1.5.1/core/PluginsFunctions/Sql.php(205): Piwik_Sql::exec('LOCK TABLES pwk...')
#2 /var/www/piwik-1.5.1/core/PluginsFunctions/Sql.php(359): Piwik_Sql::lockTables('pwk_archive_num...', 'pwk_archive_num...')
#3 /var/www/piwik-1.5.1/core/ArchiveProcessing.php(688): Piwik_LockTables('pwk_archive_num...', 'pwk_archive_num...')
#4 /var/www/piwik-1.5.1/core/ArchiveProcessing.php(533): Piwik_ArchiveProcessing->loadNextIdarchive()
#5 /var/www/piwik-1.5.1/core/ArchiveProcessing.php(472): Piwik_ArchiveProcessing->initCompute()
#6 /var/www/piwik-1.5.1/core/Archive/Single.php(226): Piwik_ArchiveProcessing->launchArchiving()
#7 /var/www/piwik-1.5.1/core/Archive/Array/IndexedBySite.php(192): Piwik_Archive_Single->prepareArchive()
#8 /var/www/piwik-1.5.1/core/Archive/Array/IndexedBySite.php(131): Piwik_Archive_Array_IndexedBySite->getArchiveIdsAfterLaunching(Array)
#9 /var/www/piwik-1.5.1/core/Archive/Array/IndexedBySite.php(108): Piwik_Archive_Array_IndexedBySite->loadValuesFromDB(Array)
#10 /var/www/piwik-1.5.1/core/Archive/Array/IndexedBySite.php(73): Piwik_Archive_Array_IndexedBySite->getValues(Array)
#11 /var/www/piwik-1.5.1/plugins/MultiSites/API.php(120): Piwik_Archive_Array_IndexedBySite->getDataTableFromNumeric(Array)
#12 /var/www/piwik-1.5.1/plugins/MultiSites/Controller.php(65): Piwik_MultiSites_API->getAll('day', '2012-06-06', false)
#13 /var/www/piwik-1.5.1/plugins/MultiSites/Controller.php(37): Piwik_MultiSites_Controller->getSitesInfo(Object(Piwik_View))
#14 [internal function]: Piwik_MultiSites_Controller->index()
#15 /var/www/piwik-1.5.1/core/FrontController.php(138): call_user_func_array(Array, Array)
#16 /var/www/piwik-1.5.1/index.php(53): Piwik_FrontController->dispatch()
La ligne #0 du log indique que l'utilisateur MySQL 'piwik' n'a pas le droit de poser de verrous (privilège '__LOCK TABLES__' ) sur les tables de la base 'piwik'.
Ce qui est normal puisque je ne lui ai pas donné ce droit ;)
Donc, en plus de privilèges existants, à savoir :
* SELECT
* INSERT
* UPDATE
* DELETE
* CREATE
* DROP
* INDEX
* ALTER
* CREATE VIEW
* SHOW VIEW
Il faut ajouter le privilège d'administration LOCK TABLES :
REVOKE ALL PRIVILEGES ON `piwik`.* FROM 'piwik'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, LOCK TABLES, CREATE VIEW, SHOW VIEW
ON `piwik`.* TO 'piwik'@'localhost';Et on oublie pas de recharger les privilèges, ca ne coute rien !
FLUSH PRIVILEGES ;
Et c'est reparti !
En résumé, il s'agit plus d'un problème de droits MySQL (un peu trop stricts) que d'un bug de Piwik. D’ailleurs, la FAQ de Piwik est claire sur ce point :
The Mysql USER should have the permission to SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, LOCK.
Have fun !
mardi 24 avril 2012
Initialiser une base PostgreSQL/PostGIS
Prérequis
- Une instance PostGreSQL fonctionnelle
- Le cartouche PostGIS installé
Préparation de la base
su postgres createdb mabase createlang plpgsql mabase psql -d mabase -f /path/to/postgresql/version/share/contrib/postgis.sql psql -d mabase -f /path/to/postgresql/version/share/contrib/spatial_ref_sys.sql
Création des tables
psql mabase CREATE TABLE test (id serial PRIMARY KEY,genre text);
Ajout de la colonne géométrique à la table - AddGeometryColumn()
Pour l'instant notre table est vide, nous allons lui ajouter une troisième colonne où seront stockées nos données géométriques.Nous aurons recours pour cela à la fonction AddGeometryColumn() de PostGIS dont la synthaxe générale est :
AddGeometryColumn( Table, Colonne_Geometrique, SRID, Type_Geometrie, Dimension);où
- Table est le nom de la table à laquelle doit être ajoutée la colonne géométrique;
- Colonne_Geometrique est le nom de la colonne géométrique;
- Type_Geometrie est le le type de géométrie possible:
- SRID est l'identifiant spatial de projection selon le système de projection choisi.
A titre d'exemple pour le Lambert II Carto Etendu, srid=27852; - Dimension est la dimension des objets géométriques 2D ou 3D ou 4D;
SELECT AddGeometryColumn( 'test', 'geom', -1, 'GEOMETRY', 2 );
Avec cette requête, nous avons ajouté la Colonne géométrique geom à la Table 'test'.
Comme nous n'utilisons ici aucun système de projection référencé, nous restons donc dans le plan 2D orthonormal par défaut, nous précisons juste SRID=-1.
Le type de données géométriques (Type_Geometrie) que nous souhaitons enregistrer peut-être de n'importe quel type. Nous préciserons donc par défaut GEOMETRY.
Enfin, nous sommes en 2 Dimensions.
Note
Il aurait été tout à fait possible de créer la table test en faisant directement
CREATE TABLE test (id serial PRIMARY KEY,genre TEXT,geom GEOMETRY);
Mais il y aurait alors eu un perte concernant les méta-données sur les objets géométriques concernant le type, le srid, la dimension.
Il est donc préférable d'avoir recours à la fonction AddGeometryColumn() pour pouvoir tirer profit de ces métadonnées.
mercredi 16 mars 2011
MySQL - Créer une table de sauvegarde en SQL
Astuce MySQL pour créer rapidement, en SQL, une table de sauvegarde
SET @tableName = concat ('ma_table_bak_',DATE_FORMAT(now(), '%Y_%m_%d_%H_%i'));
SET @sql := CONCAT('CREATE TABLE ', @tableName,' LIKE `ma_table`;');
PREPARE mySt FROM @sql;
EXECUTE mySt; SET @sql2 := CONCAT('INSERT INTO ', @tableName,' SELECT * FROM `ma_table`');
PREPARE mySt2 FROM @sql2;
EXECUTE mySt2;
lundi 20 septembre 2010
Géopipi - Le site qui vous soulage
Vous partez en vacances avec de jeunes enfants, vous visitez une ville en accompagnant une personne handicapée/âgée ou bien tout simplement vous recherchez les wc les plus proches !
GeoPipi est là pour vous aider et surtout localiser directement et sans attendre les toilettes publiques (gratuites et payantes).
Si ca presse, c'est par là !
GeoPipi est là pour vous aider et surtout localiser directement et sans attendre les toilettes publiques (gratuites et payantes).
Si ca presse, c'est par là !
jeudi 26 août 2010
Géocodage Automatique d'adresses
Un petit outil sympa, basé sur l'API Google Map©, pour géolocaliser automatiquement une liste d'adresses :
Batch geocodeur
Testé avec un fichier de 3 000 lignes d'adresses environ, l'opération a duré près de 2 heures.
Les points générés sont en degrés décimaux, système de coordonnées WGS84 - EPSG 4326
Taux de réussite :
Merci à mon nouveau collègue pour l'info et les explications.
Batch geocodeur
Testé avec un fichier de 3 000 lignes d'adresses environ, l'opération a duré près de 2 heures.
Les points générés sont en degrés décimaux, système de coordonnées WGS84 - EPSG 4326
Taux de réussite :
- 35,5 % localisé à l'adresse (accuracy = 8)
- 29% localisé à la rue (accuracy = 6)
- 35 % localisé à la ville (accuracy = 4)
- 0,5% non localisé (accuracy = 0)
Merci à mon nouveau collègue pour l'info et les explications.
Inscription à :
Articles (Atom)



