Le site du Grouik!

Aller au contenu Aller au menu Aller à la recherche



Tag - Logiciel-libre

Fil des billets - Fil des commentaires

samedi, janvier 2 2010

Les limites de F-spot

logo_f-spot.jpgF-spot est un programme qui suit l'idéologie débian. Il fait qu'une chose mais il le fait bien... (c'est ça l'idée.) C'est une bibliothèque de photos. il les trie. Et pour tout le reste, (même l'affichage) il soustraite à d'autres programmes. Normal et plutôt cool jusque là.

Son gros soucis, c'est que, sous ubuntu en tout cas, il se déclenche lors de l'insertion d'un média contenant des images. Il propose en une question l'import des photos, et val les déposer dans une hiérarchie de dossier organisés comme ceci:

/repertoire-F-Spot/AAAA/MM/JJ/image.jpg

Deux limites à ce fonctionnement:
- La façon de déposer les fichiers n'est pas modifiable[1]. C'est super galère quand dans l'interface de choix des photographies d'un site de développement il faut aller rechercher dans les sous dossiers.
- La date était bien réglée sur votre appareil photo? parce que si non, c'est la catastrophe, vous aurez tout de mélangé. Pourquoi ce con de logiciel ne propose pas de changer la date par celle du jour de l'importation des photographies???

Pour le premier problème, si vous voulez redescendre les photographies dans le dossier la source, le script suivant devrait faire l'affaire. (attention, il ne renomme pas les fichiers en cas de doublons).

!bin/bash
rm log.txt
find /chemin/du/dossier/images/de/f-spot -name "*.JPG" >> log.txt
while read ligne
do
	#on déplace
	mv "$ligne" /chemin/du/dossier/images/de/f-spot
done < log.txt

Notes

[1] j'ai cherché

dimanche, novembre 8 2009

PhpBB en utilisation professionnelle

On m'avait proposé l'idée d'un forum cet été. Je l'avais refusé. Pas tres pro, les groupwares ou les ERP sont plus adaptés. plus complets, plus précis.

Je m'aperçois que la difficulté de déployer un ERP est les utilisateurs. Notemment en logiciel libre, on ne paie pas la venue d'un formateur (ben oui quand c'est payant ça pousse plus à s'y mettre)

J'ai eu des "mouais" quand j'ai présenté tel logiciel. Bon on laisse tomber quoi.

Que je vous raconte, notre directeur souhaite qu'on renforce la traçabilité... No comments. et en plus de changer le fonctionnement (Ne soyons pas mauvaise langue, c'est lié récemment à un turn over élevé) tous les 4 mois en moyenne. On a en ce moment une...

Arf tel que c'est parti, c'est encore un billet que je ne vais pas publier car il entache mon devoir de réserve...

Zappons le contexte,

Quelqu'un nous a donné (et est payé pour) une super idée: Mettre en place un cahier de transmissions, parceque F... en a marre qu'on lui colle des post it sur son bureau (et je le comprends).

Je refuse de retourner à la préhistoire, et d'autant que je n'aurai jamais le réflexe d'aller lire un cahier de transmissions. On a refusé...

Gnieark: "_Si tu veux, on remplace les post it par des mails?"
F: tête dubitative
Gnieark: "_On fait un forum?"
le chargé des approvisionnements:"_ouaiiich!"

Mise en place du forum, petite réflexion sur son organisation, choix du thème. J'étais parti pour un truc sobre et moderne (le theme 1 thank), mon collègue penchait plus pour les themes i phone, world of warkraft.

On s'est mis d'accord sur le thème DirtyBoard

ça fait super pro hein?

Capture.png

le pire c'est qu'ils ont accrochés et ça ça marche.

samedi, octobre 3 2009

Phpbb3 auto-hébergé VS xooit

Les forums xooit sont à base du phpbb, mais superbement bien adaptés et largement modifiés.

Faisons un petit comparatif avantages inconvéniant:

Auto-hébergés VS prestataire

L'avantage de Xooit est qu'il n'y a pas à se poser de soucis pour la maintenance.

L'inconvéniant: Pas d'accès à la base de donnée:

  • ça limite les possibilités de migration
  • ça empêche des éventuels traitements de masse des messages via des requetes SQL par exemple, changer tous les liens des messages par une autre URL.

Le panneau d'aministration

Phpbbadministration.png XoitPanneaudadministration.png

Simplicité générale

Bien que l'apparence soit similaire, Il y a de grandes différences. Le forum xooit est bien plus simple. Tout d'abord des parametres du serveur pour le forum phpbb qui ne sont pas présents sur le forum xooit (normal) .

La gestion des droits des utilisateurs.

Par groupes ou individuelle dans les deux cas. Elle peut être affinée en fonction des sous forums.

La palme là revient à Phpbb, Xooit étant dan une optique de simplification n'a pas retenu toutes les fonctions.

Sous xooit. Pour chaque groupe d'utilisateur on peut définir leurs permissions dans chaque sous forum. Sous phpbb3, on peut le faire aussi, mais on peut prendre le problème à l'envers si on est cortiqué différement: Pour chaque sous forum on peut régler les droits des groupes.

Autre point, Phpbb3 permet de gérer les droits d'acces des robots, de la même manière que les utilisateurs. Cette propriété n'est pas reprise chez xooit. Je pense que google bot a un acces type "invité". Par contre, le robot de google pour la régie publicitaire, ça ne m'étonnerait pas qu'il ait un acces complet.

le forum en lui même.

Dans l'ensemble ça ne change pas. Hormis que d'un coté sur le forum auto hébergé, dans le cadre d'un groupe restreint, on peut être plus libertifs sur la possibilité d'insérer des pièces jointes, volumineuses. D'un autre coté. La fonction "mode éditeur" de xooit, je ne l'ai pas retrouvé sur phpbb. c'est un équivalent des billets xhtml dans les blogs. permettant de faire de gros copiers collés, la mise en forme même avec des images ou des tableaux est relativement conservée.

Les thèmes.

Des bibliothèque impressionnantes de thèmes sont disponibles dans les deux cas, et entièrement personnalisables.

Conclusion:

Do as you want

dimanche, septembre 6 2009

Mémo Passerelle BDD informix vers MySql

Il s'agit d'un billet juste pour moi. ^^ UN truc qui faisait partie de ma dernière To Do List [1]. Je ne suis pas très adroit en PHP (je lutte même pour déclarer des variables), je mets ce mémo sur le blog pour pouvoir le retrouver, mais c'est tellement spécifique, que je doutte que ça intéresse un visiteur régulier (si, si vous n'êtes pas nombreux, mais google analitycs me dit que vous existez). Ça me servira dès que j'aurai besoin de refaire un truc similaire.

Il s'agit d'une passerelle entre deux bases de données... sauf que faire des requêtes sur le serveur informix (à part avec le couple MS QUERY / Tun SQL ou en java, je n'ai pas trouvé). Je fais donc un truc un peu crado: je télécharge le fichier qui contient la table.

Le script en tâche CRON:

(j'ai évidemment masqué les mots de passe, même si ça reste dans le réseau local)

#!/bin/sh
# By gnieark septembre 2009 http://blog-du-grouik.tinad.fr
#Se placer dans le repertoire de l'user (root)
cd ~
# Télécharger la base de données
wget ftp://root:THEMOTDEPASSE@IPDuServeur/u/DIS/paidis/salar1
#Exécuter le script PHP de mise à jour des bases
php ~/scripts/majtablepersonnels.php
#Supprimmer le fichier salar1 (il y a plein de données bien confidentielles dedans, autant qu'il ne traine pas)
rm salar1

Et le script PHP qui me fait mes requêtes:

<?php
//SCRIPT PHP MISE à jour de la liste du personnel et de leurs numéros à partir 
//du fichier de base de données salar1 de paidis.
//
//by Gnieark http://blog-du-grouik.tinad.fr Septembre 2009
$dbname = 'tinai';
 
if (!mysql_connect('localhost', 'root', 'THEMOTDEPASSE')) {
   echo 'Impossible de se connecter à MySQL';
   exit;
}
mysql_query("USE tinai");
mysql_query("DELETE * FROM table_temp;");
mysql_query("LOAD DATA INFILE '~/salar1' REPLACE INTO TABLE `table_temp` FIELDS TERMINATED BY '|';");
 
$sql1 = "SELECT champ1, champ3, champ4, champ6, champ2, champ51, champ56  FROM table_temp";
 
$result1 = mysql_query($sql1);
 
if (!$result1) {
   echo "Erreur DB, impossible de lister les tables\n";
   echo 'Erreur MySQL : ' . mysql_error();
   exit;
}
 
while ($row1 = mysql_fetch_row($result1)) {
   $result2 = mysql_query("SELECT COUNT(*) FROM table_utilisateurs WHERE cde_paidis='${row1[0]}'");
   //echo "SELECT COUNT(*) FROM table_utilisateurs WHERE cde_paidis='${row1[0]}'";
   $row2 = mysql_fetch_row($result2);
   if ($row2[0]>0) {
     mysql_query("UPDATE table_utilisateurs SET nom_usuel='${row1[1]}',nom_de_jeune_fille='${row1[2]}', prenom='${row1[3]}', cde_etat='${row1[4]}',telephone='${row1[5]}',portable='${row1[6]}' WHERE cde_paidis='${row1[0]}'");
   }
   if ($row2[0]=0) {
     mysql_query("INSERT INTO table_utilisateurs(nom_usuel, nom_de_jeune_fille, prenom, cde_etat, telephone, portable) VALUES ('${row1[1]}','${row1[2]}','${row1[3]}','${row1[4]}','${row1[5]}','${row1[6]}')");
   }
}
mysql_query("DELETE * FROM table_temp;");
?>

Notes

[1] Enfin, il reste aussi la petite interface de consultation de la base de données à créer.

mardi, août 18 2009

Authentification apache sur la base de données Mysql de postfix VHOST

J'ai besoin de limiter l'accès à un repertoire web. Le but est de ne pas refaire une énième base de données ou fichier contenant des noms et comptes utilisateurs. Mais je ne me sens pas d'attaque non plus ce soir pour installer un annuaire LDAP.

Description du système en place

J'ai utilisé le tutoriel de starbridge pour le serveur mails.

la database se nome postfix et la table contenant les informations pour l'identification se nomme mailbox.

mysql> describe mailbox;
+------------+--------------+------+-----+---------------------+-------+
| Field      | Type         | Null | Key | Default             | Extra |
+------------+--------------+------+-----+---------------------+-------+
| username   | varchar(255) | NO   | PRI |                     |       | 
| password   | varchar(255) | NO   |     |                     |       | 
| name       | varchar(255) | NO   |     | NULL                |       | 
| maildir    | varchar(255) | NO   |     |                     |       | 
| quota      | bigint(20)   | NO   |     | 0                   |       | 
| local_part | varchar(255) | NO   |     | NULL                |       | 
| domain     | varchar(255) | NO   |     |                     |       | 
| created    | datetime     | NO   |     | 0000-00-00 00:00:00 |       | 
| modified   | datetime     | NO   |     | 0000-00-00 00:00:00 |       | 
| active     | tinyint(1)   | NO   |     | 1                   |       | 
+------------+--------------+------+-----+---------------------+-------+
10 rows in set (0.01 sec)

Ce sont donc les champs username, password et active qui nous intéressent.

Créer un compte mysql qui aura juste accès en lecture à cette table.

En root dans le prompt mysql:

Pensez à remplacer serveurweb_password par le mot de passe de votre choix.

GRANT SELECT ON postfix.mailbox TO 'serveurweb'@'localhost' IDENTIFIED BY 'serveurweb_password';
FLUSH PRIVILEGES;

On ajoute dans le fichier de description du vhost correspondant:

           
   <Directory "/var/www/AccessLimited">
 AuthType Basic
       AuthName "Acces restreint"
       AuthBasicAuthoritative Off
       AuthUserFile /dev/null
       AuthMySQL On
       AuthMySQL_Authoritative      on
       AuthMySQL_Host               localhost
       AuthMySQL_DB                 postfix
       AuthMySQL_User               serveurweb
       AuthMySQL_Password           serveurweb_password
       AuthMySQL_Password_Table     mailbox
       AuthMySQL_Group_Table        mailbox
       AuthMySQL_Username_Field     username
       AuthMySQL_Password_Field     password
       AuthMySQL_Group_Field        active
       AuthMySQL_Encryption_Types   Crypt_MD5
       Require group                1
</Directory>
           

Le require group 1 me permet de restreindre l'accès aux comptes mails valides actifs uniquement.

Ajouter le module appache pour l'authentification mysql.

apt-get install libapache2-mod-auth-mysql
a2enmod auth_mysql
/etc/init.d/apache2 restart

Voila voila... C'était le défi de la journée (je ne maîtrise pas toutes les subtilités d'apache.)

un tuto tout simple pour comperndre auth_mysql

- page 1 de 5