Script de notification e-mail pour Owncloud

Un des gros atouts d’Owncloud est de maîtriser ses données et de pouvoir se passer des services « gratuits » de Google, Dropbox  & co

Les fonctionnalités d’Owncloud commencent à être importantes et l’écosystème d’applications tierces aussi.

Mais parfois ce produit open source, relativement récent (2010), manque de quelques fonctionnalités utiles, tel que la notification de changements sur votre Owncloud.

Cette fonctionnalité pourrait s’avérer indispensable si vous partagez votre Owncloud avec d’autres personnes pour les notifier des changements (création / modification / suppression de fichiers).

Le script bash qui va bien

J’ai écrit un script bash qui permet :

- de surveiller le répertoire Owncloud passé en paramètre sur les évènements de création et de mise à jour de fichiers ou dossiers,
- de rédiger un message en fonction de ces évènements,
- d’envoyer un mail.

Pour mettre en place cette notification, il vous faut ajouter 2 packages à votre environnement si vous ne les possédez pas déjà :

 apt-get install sendEmail
 apt-get install inotify-tools

Ensuite, récupérer le script sur mon repo github : https://github.com/acolas/notification-owncloud

Et hop le résultat

Notification e-mail reçu après la création d'un fichier sur OwnCloud

Notification e-mail reçu après la création d’un fichier sur OwnCloud

Toute proposition d’amélioration est la bienvenue !

OwnCloud & thème personnalisé

Thème par défaut d’Owncloud 5

oc5files

C’est beau, c’est propre mais ça ne correspond sans doute pas à votre charte graphique.

Créer en 3 étapes votre thème : ‘le plus beau thème Owncloud’

  1. Créer un répertoire avec le nom de votre thème dans le répertoire themes où se trouve l’installation d’Owncloud
  2. Modifier /config/config.php en ajoutant le nom de votre thème :
      'theme' => 'le-plus-beau-theme-owncloud',
  3. Surcharger les classes CSS nécessaires ainsi que les images en reprenant l’arborescence d’Owncloud :
    /le-plus-beau-theme-owncloud/core/css/styles.css
    /le-plus-beau-theme-owncloud/core/img/logo.svg (le logo de l'écran de connexion)
    /le-plus-beau-theme-owncloud/core/img/logo-wide.svg (le logo en haut à gauche une fois connecté)

Pas de problème de mise à jour  d’Owncloud avec ce système.

Owncloud ravive la flamme RSS

Avec la fin de Google Reader, les autres alternatives de lecteurs RSS restent propriétaires et sur le cloud. Alors pourquoi ne pas stocker ses informations sur son Owncloud ? En plus, le plugin News fait ce qu’on lui demande, fonctionne sur tous les devices et est RÉACTIF

Étapes pour ajouter un lecteur RSS à Owncloud :

  1. Il faut activer dans les applications d’Owncloud : App Framework et News
  2. Cliquer sur la roue dentée dans la rubrique Abonnements pour importer votre opml ou json
Import RSS

Import RSS dans Owncloud

Et hop le résultat, réactif et agréable à lire :

Visualisation d'un article récupéré via RSS avec le plugin News d'Owncloud

Visualisation d’un article récupéré via RSS avec le plugin News d’Owncloud

 

 

Compte rendu Paris Web

Présentation

Avec un peu de retard, dû notamment à la mise en production de notre générateur de sites e-bourgogne, je vous propose un rapide compte rendu des conférences Paris Web auxquelles j’ai eu la chance d’assister le 14 et 15 octobre à Paris.

Ces conférences rassemblaient pour la 5e année consécutive de nombreux web designers, intégrateurs, développeurs et chefs de projets autour des sujets Design, Qualité et Accessibilité et d’orateurs renommés (évangélistes Adobe, Yahoo, Mozilla, W3C, Monsieur csszengarden, …).

Et l’accessibilité n’est pas un vain mot à Paris Web. Malgré le prix dérisoire des conférences, chacune d’entre elles était retranscrite en vélotypie et traduite par des interprètes de la LSF. De plus, un streaming était proposé pour les personnes ne pouvant se déplacer. Des interprètes ont été aussi sollicités pour les conférences anglophones.

Pour résumer le plus possible ces deux jours de conférences très riches et au contenu varié, je ressortirais trois grandes thématiques :

 

HTML5

Depuis quelques années déjà, on parle de web 2.0, un terme très marketing utilisant pourtant des technologies existantes et transformant de plus en plus les applications web en applications riches (RIA).

Le HTML5 est quant à lui une norme technique qui va révolutionner le travail des développeurs front-end.

Oui, mais quand ?

Selon Raphael Goetter d’Alsacréations et Jean-Pierre Vincent, on peut le déployer dès maintenant en production grâce à des bibliothèques tierces pour IE6-IE8.
HTML5 est encore en cours de développement au W3C, mais une grande partie de ces spécifications sont déjà implémentées dans les derniers navigateurs. Le W3C invite d’ailleurs à la prudence. Il estime que le HTML5 aura fait le plein de fonctionnalités d’ici mi-2011, et que l’approbation finale ne devrait intervenir que dans deux à trois ans.
Quoi qu’il en soit, le HTML5 va changer notre façon de développer des sites web, notamment pour les raisons suivantes :

Au niveau sémantique :

  • Nouvelles balises permettant une meilleure structuration du contenu
  • Forms améliorant l’accessibilité, le préremplissage, la gestion des erreurs, de nouveaux composants automatiques (date, colorpicker)
  • Microdata dont l’intérêt immédiat est le référencement

Au niveau des API :

Au niveau multimédia :

  • Vidéo
  • Audio

Ce que cela peut nous apporter

Toutes ces nouvelles fonctionnalités vont nous ouvrir davantage de possibilités d’interfaces graphiques.
Ce qu’a d’ailleurs magistralement montré Paul Rouget, un des principaux développeurs du prochain Firefox, en nous proposant une démonstration épatante des fonctionnalités HTML5 sur Firefox 4 (dont la sortie ne saurait tarder, selon http://arewefastyet.com/)

La conférence présentée par Paul Rouget avait des allures de keynote à la Steve Jobs (avec les réactions du public qui vont avec). Son show nous a montré l’étendue des possibilités HTML5.
Les websockets nous ont permis de nous connecter à ses slides, tandis qu’il les manipulait en live aussi bien sur le grand écran que sur chacune de nos machines, à la façon d’un Adobe Live Connect.
Il a continué sur les possibilités de l’API audio et a terminé en apothéose avec de la modélisation 3D calculée en temps réel avec WebGL. Impressionnant.

Accessibilité et conception universelle

L’accessibilité des applications est souvent mise à l’écart dans les projets web, pourtant chacun d’entre nous peut être victime d’un handicap. Un poignet cassé, un accident plus grave, mais aussi la vieillesse peuvent rendre l’utilisation d’une application impossible.

La miniconférence d’Aurélien Lévy et Laurent Denis nous a montré en moins de 15 minutes les règles non respectées d’un site destiné à représenter la France (www.france.fr). Le constat est sans appel : beaucoup d’attributs « alt » vides, pas de navigation au clavier, pas d’alternatives aux media. En bref, inaccessible pour les lecteurs d’écran.

Ensuite, un expert accessibilité chez Sanofi-Pasteur nous a montré la volonté de son entreprise de rendre accessible une application RH utilisée par tous les salariés. Son constat est clair : l’accessibilité doit être intégrée tout au long du processus du développement en faisant participer tous les acteurs : décideurs, designers, chefs de projet, développeurs…
Il s’agit d’une approche pas-à-pas, très pragmatique. Tout d’abord, un pré-audit pour dégager les 3 ou 4 points les plus bloquants à corriger : menu au clavier, structuration de l’information, contraste des couleurs.

Quant à Matt May, un évangéliste accessibilité chez Adobe (comme quoi… même dans l’entreprise qui édite Flash) parle plus de conception universelle, un terme d’une part plus vendeur, et d’autre part qui englobe plus d’éléments. En effet, il s’agit de concevoir des produits devant être utilisables par tous, dans la mesure du possible, sans recourir à des adaptations ou à de la conception spécialisée.

Enfin, une conférence présentée par deux experts québécois fut particulièrement intéressante pour notre métier : « l’accessibilité dans une chaîne de production Web ».
Les orateurs ont mis en évidence quelques points importants et écueils à éviter dans ce domaine. Au même titre que la gestion de projet, l’accessibilité est transversale et ne doit surtout pas être traitée en fin de chaîne pour des raisons évidentes de gains en coût, en délai, et en relation interne ou avec le client. (Par exemple, repasser sur toutes les images d’un site pour ajouter les « alt », ou demander au client ce qu’il souhaite comme description pour une image).
L’autre écueil à éviter est de ne pas reposer sur un « champion » de l’accessibilité. La responsabilité est partagée par tous et les décisions se prennent tout au long du projet.

Ce que cela peut nous apporter

L’accessibilité sur le web a un objectif simple : rendre accessibles les applications web aux handicapés et aux seniors. Et encore une fois, n’importe qui peut être concerné, soit par un accident temporaire, soit par des limitations liées aux conditions (mauvaise connectivité campagne ou train).
De plus, cet effort pour l’accessibilité est un levier non négligeable pour la qualité de notre code, ainsi que pour sa rapidité, des éléments désormais pris en compte par les moteurs de recherche pour un meilleur référencement.
Cela est d’autant plus vrai pour notre BU, Public Santé Transport, car l’accessibilité des sites publics que nous concevons deviendra une obligation légale le 16 mai 2012.

User eXperience et ergonomie

Quelques mots enfin sur les retours utilisateurs, un élément souvent mis à l’écart par les développeurs back-end.
Amélie Boucher, consultante en ergonomie et auteur de « Ergonomie Web – Pour des sites web efficaces » et « Ergonomie Web illustrée », nous présente à travers des études de cas, appuyées par des tests utilisateurs, les bonnes pratiques pour concevoir des sites efficaces et agréables.

Ses tests utilisateurs consistent à de l’eyetracking sur 10 personnes pour des sites grand public.
Des exemples flagrants de mauvaise ergonomie qui nous ont tous frustrés en tant qu’internaute sur ces anciennes versions de site :

  • Mauvais placement entre « Ouvrir un compte » et « Créer un compte » sur Price Minister (3 personnes / 10 se trompent)
  • Sur le webmail de SFR : très mauvais placement de la fonctionnalité la plus importante, le bouton « Créer un message », totalement différent des autres boutons. Résultat : 3 secondes en moyenne pour trouver le bouton
  • En général, l’utilisateur ne remet pas en cause l’ergonomie du site, mais se culpabilise (sur un panel de 10 utilisateurs surfant quelques heures par semaine)

Les tests utilisateurs avec le dispositif d’eyetracking sont réellement révélateurs et démontrent la difficulté qu’éprouvent un bon nombre d’internautes pour accéder aux fonctionnalités essentielles, qui peuvent sembler évidentes pour des utilisateurs expérimentés comme nous. Bien sûr, il n’y a pas de recette miracle, chaque ergonomie est dépendante du contexte pour être efficace.


Quelques liens pour compléter :

Les vidéos des anciennes éditions, et bientôt de celle de 2010, sont disponibles gratuitement.

Un billet listant la plupart des slides de cette édition disponibles sur Slideshare

java.sql.SQLException: Value ’0000-00-00′ can not be represented as java.sql.Timestamp

Petite astuce à connaître pour éviter certains désagraments SQL / Hibernate / Java…

En effet, si jamais une des collonnes TIMESTAMP de votre table comporte une valeur par défaut en 0000-00-00 00:00:00 et que vous voulez la manipuler, vous allez avoir le droit à cette jolie exception :

java.sql.SQLException: Value '0000-00-00' can not be represented as java.sql.Timestamp

En effet, il s’agit du comportement par défaut du connecteur MySQL :

« Connector/J 3.1 throws an exception by default when these values are encountered as this is the most correct behavior according to the JDBC and SQL standards. This behavior can be modified using the zeroDateTimeBehavior configuration property. »

Source : http://dev.mysql.com/doc/refman/5.1/en/connector-j-installing-upgrading.html

L’astuce pour contourner ce standard est de « forcer » la main à la connexion JDBC en lui spécificant expliciement
jdbc:mysql://localhost/test?zeroDateTimeBehavior=convertToNull

qui retournera une date NULL et ne levera pas d’exception.

Plus d’informations sur ces sites :

  1. http://www.jroller.com/mmatthews/entry/connector_j_3_1_upgrade
  2. http://dev.mysql.com/doc/refman/5.1/en/connector-j-installing-upgrading.html

  3. http://blog.arithm.com/2009/02/27/quick-fix-for-javasqlsqlexception-value-0000-00-00-can-not-be-represented-as-javasqltimestamp/

Java IO Tutorial

J’éprouve souvent quelques difficultés avec un des packages de base les plus anciens de Java : Java IO.

Ce tutorial l’énonce ainsi :

« Have you ever found Java IO’s 40+ classes confusing? I know I have. And I know people with 10+ years of Java experience have. This new tutorial containing 54 texts gives you an overview of the problems addressed in Java IO, and a comment on most of the classes. In other words, it gives you an idea of what the … Sun was thinking when they designed Java IO. »

Ces exemples de code sont simples et pratiques pour :

  • Accéder aux fichiers/répertoire
  • Accéder au réseau
  • Manipuler des buffers
  • Parser
  • Lecture/Ecriture de de type Text (Readers / Writers)
  • Lecture/Ecriture des données primitives (long, int etc.),
  • Lecture/Ecriture d’objets…

Tutoriel java IO : http://tutorials.jenkov.com/java-io/index.html

Faire fonctionner les 7 principaux navigateurs web. Sans install.

Voici un outil permettant de tester les principaux navigateurs sur un même poste sans installation ni paramétrage.

Après avoir rapidement testé, je pense que c’est la solution actuelle la plus aboutie sous windows.
Ça se passe ici : http://www.xenocode.com/browsers/

Cliquez sur le bouton Power de chaque navigateur et télécharger l’exe. Rien est à installer. Préférez cette méthode car il est aussi proposé un plugin firefox mais celui-ci n’a pas l’air de fonctionner malheureusement.

Pour expliquer rapidement : il s’agit d’utiliser la techno VMWARE avec encapsulation virtuelle du navigateur dans un package, ce dernier s’exécutant sur n’importe quel machine.

Développez en Java, Executer en flash

La prochaine refonte importante d’Eclipse, nom de code « e4″ arrive bientôt : http://www.eclipse.org/e4/

Grosse nouvelle, il pourra bientôt être possible, à partir
d’Eclipse, de faire des interfaces Java en SWT et de les compiler
directement en SWF ! Et donc pas besoin d’apprendre un langage tel que
l’ActionScript ou bien d’avoir une licence de développement Flash.

Il y a en ce moment beaucoup d’initiatives dans le monde Java et
Flash et vu la pauvreté apparente de JavaFX, c’une très bonne nouvelle.

Plus d’infos ici : http://onflash.org/ted/2009/02/publish-swt-to-flash-player.php

et l’officielle : http://download.eclipse.org/e4/downloads/drops/S-0.9M1-200902061045/e4-n…