★ srob.fr ★
Screenshots de la vie d'un geek photographe

SrNotes : une application PHP d’organisation personnelle inspirée de GTD

Je cherchais depuis des années une application de gestion de tâches basée sur GTD afin d’optimiser l’organisation de mon emploi du temps. N’en trouvant aucune assez flexible pour coller à mes besoins, j’ai fini par en développer une. Aujourd’hui, ce projet me semble suffisament fonctionnel pour être mis à la disposition de tous.

SrNotes est une application d’organisation personnelle, basée sur la méthode GTD.
Ce projet est écrit en PHP, sur le framework Symfony2. Les données sont stockées dans une base de données sqlite version 3.

Une démo du projet est disponible, à cette adresse
N’hésitez pas à créer, modifier, tester l’application et les données qu’elle contient. La base de données sera remise à zéro toutes les nuits.

Pour télécharger le projet, c’est par ici.

N’hésitez pas à me faire part de vos commentaires et remarques.

Revenir à une version antérieure d’un paquet sous debian / ubuntu

Ces commandes permettent de revenir à une version antérieure (downgrade) d’un paquet debian / ubuntu.

Premièrement, trouvez les versions disponibles pour votre paquet (par exemple avec le paquet firefox :

$> apt-cache showpkg firefox | grep -E '[0-9].*/var' | cut -d' ' -f1
9.0.1+build1-0ubuntu0.11.10.2
7.0.1+build1+nobinonly-0ubuntu2

Ensuite, installer la version souhaitée, ici par exemple la « 7.0.1+build1+nobinonly-0ubuntu2″ :

$> sudo aptitude install firefox=7.0.1+build1+nobinonly-0ubuntu2

 

 

Trouver les occurrences d’un texte dans les procédures stockées d’une base MSSQL

Voici une requête sql permettant de trouver le nom des procédures stockées dont le code contient des occurrence d’un texte :

SELECT name FROM dbo.syscomments, dbo.sysobjects
 WHERE syscomments.id = sysobjects.id
 AND PATINDEX('%texteCherché%', text) > 0

Cheval Blanc

Cheval Blanc Lire la suite de cette entrée »

Sauvegarder un site web via ftp ou ssh à l’aide d’un script

J’ai eu récemment besoin de mettre en place des sauvegardes automatiques pour plusieurs sites web, accessibles pour certains en FTP et pour d’autres en SSH (ou sftp),  avec pour certains une base de données mysql.

Je souhaitais pouvoir effectuer ces sauvegardes depuis un serveur mutualisé, doté de php. J’ai donc écrit un script PHP capable d’enchaîner les sauvegardes de plusieurs sites.

Les fonctionnalités :

  • Accès aux serveurs distant par FTP ou SSH
    Le script peut fonctionner avec un accès SSH (à préférer) ou un accès FTP.
  • Sauvegarde de bases de données Mysql
    Vous pouvez définir une ou plusieurs bases de données mysql à sauvegarder. Les sauvegardes se font à l’aide de l’utilitaire mysqldump, directement sur le serveur distant puis rapatriées sur le serveur de sauvegarde.
  • Archivage de plusieurs sauvegardes horodatées (incrémentales)
    Le script peut conserver un certain nombre de copies de sauvegardes successives, dans des dossiers horodatés. Il ne stocke réellement que les fichiers modifiés depuis la dernière sauvegarde, afin d’économiser l’espace disque. Vous pouvez définir le nombre de sauvegardes successives à conserver.
  • Envoi par mail d’un récapitulatif des sauvegardes, à une ou plusieurs adresses (fichiers créés, modifiés, supprimés, espace disque restant…)

Pré-requis :

  • Pour fonctionner, ce script PHP doit pouvoir exécuter certaines commandes sur la machine locale, telles que cp, df, find, which, echo, ls, sort, head, wget, rsync, ssh ou encore lftp. Certaines de ces commandes ne sont pas obligatoires, selon les cas. Par exemple, le script utilisera wget en remplacement de lftp, si ce dernier n’est pas installé.
  • Les sauvegardes par FTP sont moins fiables et prennent beaucoup plus de temps que les sauvegardes par rsync.
  • Pour les sauvegardes de bases de données mysql, l’utilitaire mysqldump doit être installé sur le serveur distant.
  • En mode FTP, le script dépose sur le serveur distant un script php qui se charge d’effectuer le dump, puis de s’auto-détruire. Ce petit hack ne peut fonctionner que si le serveur distant peut exécuter du code PHP, et si ce code PHP peut exécuter l’utilitaire mysqldump.

Configuration :

La configuration des sauvegardes se fait en éditant simplement le code du fichier. Il vous suffira de copier / coller tout le bloc de code signalé par des balises « ***** début ***** » et « ***** fin ***** » pour chaque site à sauvegarde, et de modifier le contenu de chacun de ces blocs en vous référant aux commentaires présents. N’hésitez pas à me poser des questions, je me ferai un plaisir de vous répondre.

Licence :

Ce script est publié sous la licence LGPL 3.0 : http://www.gnu.org/licenses/lgpl-3.0.en.html

Téléchargement : backup.zip

 

Executer une requête SQL « custom » sous Symfony1 / Propel

Certaines requêtes complexes peuvent être un calvaire à mettre en place en utilisant les Criteria de Propel.  Même si ce n’est pas conseillé, il est possible de contourner Propel pour exécuter des requêtes SQL directement.

Voici par exemple une méthode d’une classe ContactPeer, permettant l’accès à une table ‘contact’ dans la base de données :

public static function getContactsPrives($contact) {
        $con = Propel::getConnection(self::DATABASE_NAME);
        $sql = "SELECT * FROM `contact` ORDER BY contact.NAME ASC";
        $stmt = $con->prepare($sql);
        $stmt->execute();
        $contacts = self::populateObjects($stmt);
        return $contacts;
}

La méthode Propel::getConnection() permet de récupérer l’objet PDO utilisé par Propel. Il est ensuite possible d’utiliser cet objet pour exécuter des requêtes directement (voir la documentation complète de PDO).

Symfony transforme ensuite les lignes récupérées en objets, par l’appel à populateObjects().

Chute de Mer

Chute de Mer Lire la suite de cette entrée »

Mère et fille

Img 8145 Lire la suite de cette entrée »

Cheval sous l’arbre

Cheval sous l'arbre Lire la suite de cette entrée »
Si vous aimez ce site, partagez-le !

Ajoutez le gadget à votre page iGoogle : Add to iGoogle

Tweets
Catégories
Soutien