NAS Synology : DSM 5.x vers 4.3

Synology vient de mettre à jour son DSM en version 5 et il est vraiment plus joli mais apporte son lot de bug et de consommation de ressource en plus.

Après quelques jours d’utilisation assez pénible, il a fallu revenir en arrière.

Ce processus ne provoque normalement aucune perte de donnée
mais je ne peux pas en être tenu responsable si cela arrivait.
Dans le doutes, faites une sauvegarde de vos fichiers importants.

Voici la méthode pour revenir de la version 5 du DSM vers la version 4.3 (downgrade)

Tout d’abord on récupère la dernière version du DSM 4.3 correspondant à votre Synology :

http://global.download.synology.com/download/DSM/4.3/

Il vous faut aussi noter le numéro de version qui précède celle que vous allez mettre à jour. Ex : Si le dernier firmware est dans le dossier 3827 et qu’il existe une version dans le dossier 3810, l’avant dernière version est la 3810.

  • Se connecter en tant que root sur votre NAS
  • Copiez les fichiers de version, au cas où :
    cp /etc.defaults/VERSION /etc.defaults/VERSION.5
    cp /etc/VERSION /etc/VERSION.5
  • Éditez les deux fichiers de version pour indiquer que vous êtes en version 3810 sinon vous ne pourrez pas faire la mise à jour en 3827 (vu qu’il pense être déjà à jour)

    vi /etc.defaults/VERSION

    majorversion="4"
    minorversion="3"
    buildphase="0"
    buildnumber="3775"
    smallfixnumber=0
    builddate="2014/01/20"
  • On sauvegarde et on copie dans le second fichier de version
    cp /etc.defaults/VERSION /etc/VERSION

Ensuite on met à jour manuellement le DSM

  • Panneau de configuration
  • Mise à jour et sauvegarde et on clique sur « Mise à jour manuelle »
  • on choisi la dernière version du DSM 4.3 (la 3827)
  • et on clique sur « mettre à jour »

Quelques minutes plus tard le NAS reboot en 4.3

Pour ma part, je n’ai pas eu de perte de donnée mais les disques ont fortement grattés après la mise à jour pendant 30 minutes.

 

 

Des liens symboliques en 2 clics sur Windows 7

Bien connu des utilisateurs de systèmes *nix, les liens symboliques peuvent vous faciliter la vie et allonger la durée de vie de votre SSD.

Le principe est simple, on prend un dossier ou fichier de destination et on fait pointer un lien symbolique vers ce dossier ou fichier. Le système pensera que ce lien symbolique EST le fichier ou dossier de destination.

Exemple : J’ai un SSD C: et un disque dur D: .

  • on créé un dossier d:/tmp
  • on va dans c:/Utilisateurs/<mon utilisateur>/AppData/Local
  • on supprime le dossier Temp
  • et on fait un lien vers d:/tmp que l’on appel Temp

Le système pense alors que son dossier temporaire n’a pas bougé mais tout est en fait écrit sur le disque dur plutôt que le SSD.

Maintenant, comment faire cela simple ? Grâce au mini logiciel Link Shell Extension. Une fois installé, un nouveau menu apparaît lorsque vous cliquez sur un fichier ou dossier « Prendre comme cible du lien », c’est donc votre destination.
Allez dans le dossier de votre choix et  le clique droit fait apparaître un menu « Coller …> Un lien symbolique ». Il y a tout un tas d’autre choix mais c’est celui là qui nous intéresse.

Une fois collé, l’icone apparaît comme si c’était un raccourci, mais c’est plus que ça. Toutes modification du fichier du lien ou opérations faites dans le dossier se fera en réalité sur la source, à l’exception de la suppression du lien qui ne détruit pas la source.

Ce logiciel permet donc de faire des choses intéressante, surtout couplé aux services « cloud » que l’on trouve un peu partout.

http://schinagl.priv.at/nt/hardlinkshellext/hardlinkshellext.html

Le nouvel Agenda Trad en ligne.

Après 2 ans d’activité dans sa version 1, il était temps de refaire Agenda Trad, en prenant en compte les retours de ces deux années.

Le projet est, sur le fond, le même qu’à son lancement, mais sur la forme, beaucoup de choses ont changés.

D’abord le design. Réalisé par Rouge-Pixel, il apporte une vrai identité au site et une ergonomie simplifiée.

Ensuite, beaucoup de choses ont été revus pour simplifier l’expérience utilisateur et pour encore augmenter la qualité du contenu en évitant les doublons ou en déplaçant les ateliers réguliers dans une section à part.
Les mini-sites organisateur et groupe ont maintenant leur propre fiche de contact et là encore la présentation a été revue pour tenter d’être plus claire.

Pour cette nouvelle version il fallait mettre un gros coup de frais sur le partage. Plus il y a de visiteurs, plus les organisateurs ont intérêt à publier leurs évènements, plus les visiteurs ont intérêts à venir sur le site. Cercle vertueux.
Les partages pour Twitter, Google Plus et Facebook sont intégrés sur chaque page évènement, organisateur et groupe.
Les organisateurs et groupes ont accès en plus à deux fonctions leur permettant d’intégrer leurs évènements sur leur site ou de faire un partage personnalisé vers leur page Agenda Trad.
Un Flyer a même été édité en PDF pour ceux qui veulent diffuser localement 🙂

Infotrad, le mailing d’Agenda Trad, a aussi prit un coup de jeune grâce au nouveau design et une simplification du contenu.

Agenda-trad

Agenda Trad nouvelle version

D’un point de vue technique, fini le code « à la main ». Après un premier essai sur Symfony 1.4, assez intéressant au début, ce fût abandonné pour se tourner vers CakePHP 2.0.x

Après un premier test de ce framework en 2010, je n’étais pas forcément convaincu, mais la lourdeur de Symfony 1.4 m’a convaincu qu’il fallait tester autre chose. La version 2.x de CakePHP n’a rien à voir et le framework semble maintenant vraiment abouti. Tant du côté du code que de la normalisation et de la vélocité. Bref, ce framework vaut le coup et j’encourage les développeurs à y jeter un oeil.

Ce projet personnel m’a pris pas mal de temps libre et temps de travail mais le résultat est vraiment intéressant. En espérant qu’il y ai une bonne accroche côté visiteurs et organisateurs.

 

 

Détecter un robot avec CakePHP 2.x

Il peut être parfois intéressant de changer le comportement d’une page si c’est un robot qui est en train de la visiter. On peut ainsi éviter la génération de panier dans une boutique ou des Tokens sur un formulaire de contact. Surtout si votre site contient plein de formulaires de contacts 🙂

CakePhp dans sa version 2 intègre un nouvel RequestHandler.  De base, cet Objet Request intègre différentes détections classiques comme l’utilisation d’un mobile, d’une connexion SSL, requêtes POST ou GET, … Mais on peut aussi lui ajouter nos propres règles.

Tout d’abord on va utiliser un modèle Bot dont la table contiendra les robots et user_agent.

Le fichier SQL pour la table bots : Table des user_agent des principaux robots

Dans votre AppController::beforeFilter(), insérez le code suivant, où vous voulez

  /*
   * table bot
   */
   $this-&gt;loadModel('Bot');
   $bots = $this-&gt;Bot-&gt;find('all', array('fields' =&gt; 'agent', 'conditions' =&gt; 'is_active = 1'));
   $bots = Set::extract($bots, '{n}.Bot');
   $patternBot = array();
   foreach ($bots as $data) {
     $patternBot[] = str_replace('\*', '.*?', preg_quote($data['agent'], '#'));
   }
   $this-&gt;request-&gt;addDetector('bot', array('env' =&gt; 'HTTP_USER_AGENT', 'pattern' =&gt; '`' . implode('|', $patternBot) . '`'));

Point par point :

  • On charge le model ‘Bot’ pour pouvoir accéder à celui-ci
  • On récupère tous les user_agents des robots actifs
  • Un passage dans Set::extract pour nettoyer le résultat
  • On quote les agent pour que ça puisse passer dans le preg_match()
  • et on fabrique une énorme expression régulière que l’on transmet au RequestHandler

Nous avons donc maintenant un nouveau detecteur dans le RequestHandler et on peut utiliser dans n’importe quel controller :

$this-&gt;request-&gt;is('bot');

Et voilà 🙂

Pour plus de rapidité, il est conseillé d’utiliser le Cache pour les résultats.

    /*
     * table bot
     */
    $patternBot = Cache::read('pattern_bot');
    if (!$patternBot) {
      $this-&gt;loadModel('Bot');
      $bots = $this-&gt;Bot-&gt;find('all', array('fields' =&gt; 'agent', 'conditions' =&gt; 'is_active = 1'));
      $bots = Set::extract($bots, '{n}.Bot');
      $patternBot = array();
      foreach ($bots as $data) {
        $patternBot[] = str_replace('\*', '.*?', preg_quote($data['agent'], '#'));
      }
      Cache::write('pattern_bot', $patternBot);
    }
    $this-&gt;request-&gt;addDetector('bot', array('env' =&gt; 'HTTP_USER_AGENT', 'pattern' =&gt; '`' . implode('|', $patternBot) . '`'));

Prochaine étape, détecter si le user agent contient « Bot, Spider, Crawler, Slurp, … » et qu’il n’est pas détecté comme un robot pour l’ajouter à la table automatiquement avec un statut 0. Restera à passer changer les statuts si c’est vraiment des robots et votre table s’auto-alimente, mais ce sera pour plus tard.

 

Visite de Bruxelles

On profite d’être proche de la Belgique (et d’avoir un ami Belge sachant nous guider) pour faire une petite visite de la capitale.

La première journée était bien courte et pluvieuse. Passage obligé devant le Manneken-Pis, qui est riquiqui et bien moins drôle que la non-officiel Jeanneke-Pis.
Visite de la grande place, où l’hotel de ville se dresse majestueusement au milieu des batiments qui n’ont rien à lui envier.

Après une boisson chaude au musée de la bd, indiqué par Gaston, on termine sur une vue de bruxelles de nuit avec l’atomium en toile de fond.

Lendemain matin, direction l’Atomium pour voir cela de plus prêt … Ca claque. Remis à neuf il y a deux ans, c’est vraiment majestueux et impressionnant. On n’a malheureusement pas pu se balader au travers des batiments de l’exposition universel de 1958. Tant pis.

Petit tour rapide dans une église très récente, qui du ciel paraissait très joli mais une fois au sol est d’un gout limite et sans une once d’âme. On se remet de cela devant une restauration locale, la meilleure baraque à frites Bruxelloise.

On finit notre circuit par le titanesque palais de justice, en travaux depuis 20 ans, la place godefroiy-de-bouillon, le musée de la musique (ou des instruments de musique), une boutique « Côte d’Or » et l’église des Sablons.

Deux demi-journée très culturelle grâce à notre « guide » et qui donne envie d’y retourner quand tous les arbres et parcs seront en fleur, au printemps.

Nara, le plus grand buddha et les messagers de dieux

Comparé à Kyoto, Nara a su préserver son aspect « traditionnel », ce qui la rend des plus charmantes.

En se promenant, on se met très rapidement à rencontrer des daims, jusqu’à en voir des dizaines en plein milieux des visiteurs des lieux. Considéré comme les messages des dieux, ils ont quartier libre dans la ville 🙂

Yukie nous a guidé jusqu’au temple Todaiji avec son « plus grand » Buddha du Japon. Je dis « plus grand » parce que c’était au moins le deuxième « plus grand » qu’on voyait, alors bon 🙂
On s’est ensuite « perdu »  dans différents temple, sanctuaire  – et voir le plus grand arbre de la region – et petites rues pour y gouter et savourer les fameux Okonomi-yaki et autres dessert au haricot rouge sucré et glace au thé vert … très spécial.

Les 1368 marches de Kotohira et le plus petit chateau du Japon

Dans la ville de kotohira (région de Kagawa), il y a, entre autres, une série de sanctuaires placés dans la montagne. Il faut parcourir les 1368 marches (d’après David, j’ai pas compté) avant d’arriver au dernier sanctuaire.

La montée n’est pas si compliqué que cela car ce n’est pas 1400 marches d’un coup mais espacé par les sanctuaires et des séries de plats. Pour les fénéant, il est encore plus simple de monter en « chaise à porteur » 🙂

Après cette longue escapade, on s’est rendu à Marugame où culmine les plus grands remparts du Japon pour le plus petit château. Le contraste est assez rigolo 🙂

8 jours à Tokyo

Quelques images de Tokyo lors de notre passage au Japon.

Personnellement j’ai beaucoup apprécié cette ville constitué de quartier ou village très différents. Chaque quartier ayant ses spécialités (nourriture,  festivals, commerces, …), il faudrait plus d’une vie pour en faire le tour et même si c’était possible, tout aurait changé d’ici là.

Si vous êtes pas loin de la gare de Ueno, vous pouvez sans hésiter aller manger chez Haru. Il cuisine les Udon comme sa grand-mère lui a appris, et elle lui a très bien appris 🙂

Un grand merci à David pour sa  journée tokyo-safari et ses précieux conseils. A Miechie pour ses tempura maison et ChiYin pour toute son aide durant notre séjour.

ChiYin

Des icones Ajax personnalisés

Une chose que les gens ont du mal à comprendre avec Ajax, c’est que la page ne se rafraichi pas vraiment, seulement une partie du contenu change.

J’ai longtemps cherché une icône sympa pour afficher la progression de chargement de la page, jusqu’à trouver ce site qui vous permet de concevoir votre propre image animé à partir d’un modèle et d’une couleur.

C’est assez simple mais permet d’avoir quelque chose d’un peu personnalisé et adapté au site.

http://www.ajaxload.info/