Informatique

L'auto hébergement, pourquoi ?

Monday, 06 December 2010
|
Écrit par
Grégory Soutadé

L'auto hébergement, qu'est ce que c'est ? Et bien tout d'abord, ce n'est pas l'hébergement de voitures ! C'est tout simplement le fait d'héberger des données chez soi et de les rendre accessible depuis l'Internet. En fait c'est le but premier d'Internet : interconnecter des machines sur un réseau mondial. L'auto hébergement, donc l'Internet, est pourtant quelque chose qui se perd. En effet les internautes choisissent la plupart du temps de confier leurs données à des sites tiers (mails, photos, blogs ...). Pourquoi donc ? Les principales raisons sont techniques : jusqu'à présent un internaute avec une connexion moyenne n'avait ni la bande passante nécessaire ni les connaissances techniques pour la création d'un "serveur", du coup il est plus simple de confier ses données à un tiers qui possède les compétences et le matériel permettant un hébergement efficace.


Oui, mais ! Les choses ont évoluées depuis l'ère du 56k limité à 50h. D'une part la bande passante des utilisateurs a énormément augmentée, de nos jours même une connexion de mauvaise qualité est suffisante. D'autre part les connaissances techniques nécessaires pour la création d'un "serveur" sont bien moins importantes. Il existe des solutions prêtes à fonctionner en dehors de la boîte (Apache, Joomla! ...). Dans l'esprit commun un "serveur" reste une grosse machine très puissante, alors qu'en réalité un serveur est juste un ordinateur qui va répondre à des requêtes. Les requêtes les plus connues sont les requêtes HTTP (http://...), mais il y a aussi le mail, l'accès distant comme SSH, des serveurs de jeu ... Il suffit donc d'un simple PC connecté au réseau pour pouvoir répondre aux requêtes de l'Internet.


Vous me direz : quel est l'intérêt de posséder ses données chez soi plutôt que dans un gros serveur ? Et bien l'intérêt principal est de conserver une partie de sa vie privée. Les photos, vidéos, écrits sont et restent la propriété de la personne qui les héberge (et dont il est l'auteur). Elles sont disponibles et peuvent être modifiées à n'importe quel moment par l'administrateur du serveur. Si je choisis de confier ces données à un tiers, il peut potentiellement en faire ce qu'il veut. Bien sûr il ne faut pas être trop paranoïaque, la plupart des fournisseurs de support respectent un minimum de confidentialité quant à ces données. Et c'est tout dans leurs intérêts car cela génère de la publicité (ciblée ou non) donc des revenus. Un service qui ne le respecterait pas suffisamment se verrait déserté rapidement.

Néanmoins il ne faut pas se leurrer, réaliser un serveur n'est pas trivial du moment qu'on dépasse le simple serveur web. Mais il y a plein de personnes qui ont eu cette problématique et tout le monde (informaticien ou non) possède un ami qui s'appelle Google qui lui connait toutes les personnes qui ont eu des problèmes et qui ont des solutions à apporter. Il suffit d'être un tout petit peu curieux. Les utilisateurs de GNU/Linux seront naturellement avantagés car l'installation et la configuration d'un serveur Apache sur ce dernier système est vraiment aisée. Reste l'aspect consommation : avoir un PC qui tourne 24h/24h, 7j/7j ça coûte. Personnellement j'ai adopté la solution d'un SheevaPlug qui est un "mini PC" à très faible consommation (5W), ce qui représente une consommation d'environ 5€/an (allumé 24h/24 7j/7). Il suffit donc de le brancher à la *box,(FreeBox, LiveBox, NeufBox, AliceBox ...), de le configurer une première fois, puis on l'oublie, on se contente juste d'ajouter des données (photos, vidéos ...) le moment voulu par l'interface web (et aussi de faire les mises à jours logicielles).

Seuls deux points peuvent être bloquant :

  • La sauvegarde des données n'est de base pas assurée. On peut utiliser le réseau, le port eSata ou USB, mais il faut mettre en place une solution de sauvegarde (manuelle ou automatique).
  • Si le serveur ou la connexion internet tombe, les services hébergés ne sont plus accessibles (ce qui peut être gênant pour le mail, mais reste acceptable pour un serveur web).


Parmi les outils permettant de monter un serveur on trouve :

  • Serveur web : Apache2 ou IIS
  • Gestionnaire de contenus (CMS, le site web pour résumer) : Wordpress, Joomla!
  • Serveur FTP
  • Serveur mail : Postfix, Dovecot
  • Serveur SSH (accès distant)
  • Serveur de base de données : MySQL, PostgreSQL
  • Serveur de gestion de version : Subversion, Mercurial, Git
  • Forges logicielle : Trac, inDefero, Redmine ...
  • Serveur de chat : IRC, Jabber
  • Serveur de jeu : Quake, Counter-Strike, Unreal, Wow


Le composant fondamental est le serveur web. A partir de là on peut héberger les services web classiques : photos, vidéos, blog ... Le reste étant réservé à une utilisation avancée.

Pour ceux qui auraient un peu de temps, il y a une conférence de Benjamin Bayart aux RM2L de 2007 qui est la conférence référence : Internet ou Minitel 2.0.
Ici un wiki en français sur la marche à suivre pour l'installation et la configuration du serveur : http://wiki.auto-hebergement.fr/

KissCount 0.1

Thursday, 11 November 2010
|
Écrit par
Grégory Soutadé

La version 0.2 est sortie !

Après 6 mois d'intense développement, voici la version 0.1 de KissCount. Tout a commencé par une simple feuille de calcul pour noter les dépenses d'un budget modeste (donc qui nécessite de l'attention), puis sont apparues les couleurs pour différencier les opérations, les lignes de démarcation entre les semaines, les graphiques ... Au fur et à mesure, des fonctionnalités de plus en plus complexes se sont ajoutées. Ne voulant pas me lancer dans de la programmation sous OOo, le projet KissCount est né !

L'objectif est simple : arriver à retrouver la simplicité d'une feuille calcul tout en automatisant le plus possible les manipulations et les calculs. Il faut pouvoir visualiser en un seul écran : les opérations courantes, l'état des comptes et la répartition des dépenses (statistiques). L'objectif initial était même de faire tenir toutes ces informations dans un écran d'une résolution de 1024x768.

Bien sûr il existe des dizaines d'autres logiciels de comptabilité personnelle : libres, gratuits ou payants. Mais après une recherche rapide je me suis rendu compte qu'ils avaient tous les mêmes fonctionnalités et la même ergonomie, ce qui ne répond absolument pas à MON besoin : ouvrir le logiciel, rentrer les opérations, voir l'état des comptes, fermer le logiciel. En effet la plupart des autres logiciels de comptabilité partent sur une base financière et essaient de modéliser le maximum de détails, hors pour une utilisation "normale" on n'a besoin que de 20% des fonctionnalités proposées. De plus ils se transforment souvent en cliquodromes insupportables pour réaliser de simples opérations.

Par exemple : les champs "date de valeur", "date d'opération", "numéro de chèque", "destinataire", "devise", "type de l'opération" (chèque, espèces, carte bleue) sont inutiles. Ils prennent de la place à l'écran et ralentissent la saisie.
Dans KissCount on considère que :

  • la "date de valeur" est équivalente à la "date de l'opération" : Si un chèque n'est encaissé que 6 mois plus tard on le considère pendant 6 mois comme déjà encaissé (ça évite de le dépenser) mais on a la possibilité de ne pas le prendre en compte lors du rapprochement mensuel
  • "Numéro de chèque" et "destinataire" : Ils peuvent être inclus dans la description de l'opération, le montant du chèque suffit souvent à l'identifier
  • "Devise" : Le logiciel considère que tout est dans la même devise, le change entre devises est exceptionnel dans la vie courante donc il n'est pas nécessaire de rajouter des mentions inutiles pour le supporter. Si l'utilisateur a à manipuler régulièrement différentes devises il peut se tourner vers d'autres logiciels
  • "Type de l'opération" : inutile car à part les espèces dont le montant est faible (il y a peu de personnes qui se promènent avec 1000€ en liquide sur eux) toutes les autres opérations se font à partir de ou vers un compte bancaire. Il suffit alors d'indiquer une opération de retrait (libre à la personne de gérer ce retrait comme elle l'entend).


Ce sont des exemples de la philosophie du logiciel qui se veut KISS avant tout.

KissCount v0.1

Petite mise au point pour ceux qui ne feraient que regarder les images : il y a deux types d'opérations dans KissCount, les opérations en jaune sont les opérations récurrentes (salaire, loyer ...) qui sont automatiquement reportées d'un mois sur l'autre et les opérations en vert sont les opérations du mois en cours (les couleurs et la police de caractère sont paramétrables pour chaque catégorie).

Actuellement les fonctionnalités suivantes sont implémentées :

  • Gestion des opérations, catégories, comptes bancaires
  • Grouper/Dégrouper des opérations
  • Lorsqu'une description est réutilisée pour une nouvelle opération, le logiciel remplit automatiquement la catégorie et le compte bancaire
  • Statistiques de répartition des dépenses (pratique pour analyser son budget)
  • Mode rapprochement (uniquement les opérations sélectionnées sont prises en compte)
  • Possibilité d'insérer des formules à la place de valeurs numériques
  • Fonction de recherche (avec édition des résultats)
  • Gestion des comptes partagés
  • Affichage des opérations de manière croissante ou décroissante
  • Traduction Français/Anglais
  • Support multi utilisateurs
  • Mini site web pour visualiser ses données en ligne (nécessite un serveur web)


Le logiciel n'a donc pas la prétention de détrôner les concurrents déjà en places mais simplement d'apporter une nouvelle vision innovante en partant du besoin réel de l'utilisateur.
A partir de maintenant le développement sera ralenti car toutes les fonctionnalités importantes ont été implémentées, ça ne veux pas dire que le projet est abandonné : s'il manque une fonctionnalité ou qu'il y a (encore) des bugs il y aura de l'activité.

Pour l'aspect technique : il est développé en C++ sur un modèle MVC avec wxWidgets comme boîte à outils graphique et un peu de PHP pour la partie web. Les données sont stockées dans une base SQLite3.

Pour le moment le principal défaut est que l'interface graphique est mal gérée au niveau des layouts, quelques graphiques plus sympa et des traductions seraient les bienvenues !
Le projet est hébergé sur une forge inDefero : http://indefero.soutade.fr/p/kisscount/
Des captures d'écran sont disponibles dans la documentation française et anglaise

SheevaPlug qui ne boot pas après mise à jour du noyau

Wednesday, 27 October 2010
|
Écrit par
Grégory Soutadé

C'est rare mais les gars du projet Debian se sont planté. Peut être que j'ai loupé un truc, mais après avoir redémarrer suite à la mise à jour de mon SheevaPlug vers le noyau 2.6.32-5-kirkwood, le système sortait en kernel panic lors de l'initialisation du réseau. Pas pratique ...

Une petite recherche sur le web m'indique le liens suivant : http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=597302#35
Le problème vient du fait que la commande flash-kernel n'est pas appellée après la mise à jour du noyau. La marche à suivre est de rajouter l'option ipv6.disable=1 à la ligne de commande (setenv bootargs ipv6.disable=1) lors du boot. Evidement chez moi ça ne fonctionne pas.

Bref un système inutilisable (puisqu'il plante avant le boot). Ma configuration est la suivante :
- Ubuntu d'origine dans la mémoire flash intégrée
- Debian installée sur la clé USB avec les partitions suivantes :
/dev/sda1    /boot
/dev/sda2    /
/dev/sda3    swap
/dev/sda4    /home

Heureusement on a accès à la clé USB depuis l'Ubuntu d'origine, cela va permettre de remettre en marche tout ça. Il faut d'abord démarrer sous Ubuntu (sortir le cable USB pour accéder à l'interface RS232 via putty ou screen), monter la clé, se chrooter (c'est donc "comme" si on avait booté sur la clé). Hélàs /dev/sdaX n'est pas automatiquement détecté par udev (les événements ne lui sont pas envoyé pour qu'il crée les périphériques), on va donc le faire à la main avec mknod. Puis on monte /boot et /proc avant de pouvoir lancer flash-kernel. On revient sous Ubuntu, un petit fsck sur les partitions modifiées et on peut enfin redémarrer normalement sur notre ancien système !

mount -t ext2 /dev/sda2 /media chroot /media mknod /dev/sda1 b 8 1            # 8 2 pour /dev/sda2, 8 3 pour /dev/sda3 ... mount -t ext2 /dev/sda1 /boot mount -t proc /proc /proc flash-kernel exit reboot

redémarrer sous Ubuntu

fsck /dev/sda1 fsck /dev/sda2 reboot

J'ai remarqué que lorsqu'on débranche brutalement l'alimentation, il ne boote plus sur la clé USB. L'astuce consiste à démarrer sur l'Ubuntu d'origine, monter la partition, faire un ls, démonter la partition, faire les fsck sur les partitions modifiées (sinon il va le faire au boot de la clé et comme le système a été modifié va redémarrer ...), puis redémarrer le Sheeva (via un reboot).

mount -t ext2 /dev/sda2 /media ls /media umount /media fsck /dev/sda2 reboot

L'idéal est de créer un script et de le rajouter dans le crontab d'Ubuntu pour qu'il s'exécute toutes les 10 minutes. Comme ça si le redémarrage intervient pendant la nuit ou quand on n'a pas accès au SheevaPlug il revient tout seul sur Debian. Les 10 minutes permettent de désactiver le crontab quand on a des choses à faire sous Ubuntu (comme un flash-kernel par exemple ...).

Astuces pour GNU/Linux

Sunday, 26 September 2010
|
Écrit par
Grégory Soutadé

Aujourd'hui deux petites astuces pour notre système favoris

Presse papier du serveur X


Vous connaissez certainement le presse papier, c'est l'emplacement temporaire qui accueille les données du couper/copier/coller. Et bien le serveur X a lui aussi un presse papier. Il suffit de sélectionner du texte dans une fenêtre pour le copier, puis de cliquer sur la molette de la souris (bouton 3) pour le coller. Une fois qu'on y a goûté on ne peux plus s'en passer ! Et surtout on râle quand on est sur les systèmes qui ne proposent pas cette fonctionnalité. De plus le presse papier d'X est indépendant, en gros vous pouvez faire un copier/coller traditionnel et en parallèle un copier/coller via X.


Être averti des mises à jours par mail


Heureux possesseur d'un SheevaPlug, il m'arrive souvent d'oublier de faire les mises à jours. Bon sur ma Debian stable il n'y en a pas tous les jours non plus ... Mais ce petit script va vérifier chaque soir s'il y a des mises à jours à effectuer et me prévient par mail. Bien sûr je pourrais forcer les mises à jours mais c'est moins propre que si c'est fait interactivement (notamment quand il s'agit du noyau et qu'il faut redémarrer).

#!/bin/bash apt-get update > /dev/null res1=`apt-get upgrade -s` res2=`apt-get dist-upgrade -s` res3="$res1\n$res2" echo $res3 | grep 'Inst' >/dev/null || exit 0 # Délimiteur du for IFS=$'\n' packages="apt-get upgrade :" for line in $res1 ; do     echo $line | grep 'Inst' >/dev/null || continue     tmp=`echo $line | cut -d' ' -f 2`     packages="$packages $tmp" done packages="$packages\n\napt-get dist-upgrade :" for line in $res2 ; do     echo $line | grep 'Inst' >/dev/null || continue     tmp=`echo $line | cut -d' ' -f 2`     echo $res2 | grep $tmp >/dev/null && continue     packages="$packages $tmp" done echo -e $packages | mail -s "Packages needs to be updated on cybelle" gregory@soutade.fr

Et dans /etc/crontab :

0  2    * * *   root    /root/apt.sh

Samsung r780

Sunday, 19 September 2010
|
Écrit par
Grégory Soutadé

Mon nouveau joujou est arrivé ! Après 6 années (oui 6) de loyaux services, j'ai décidé de mettre mon ancien PC portable à la retraite. Bien qu'il soit encore très fonctionnel pour son age et son matériel, le disque dur devient de plus en plus faiblard, parfois certains fichiers ne sont pas affichés lors d'un simple ls. Bref ça craint pour les données qui sont dessus (bien qu'il y ait une sauvegarde). C'est aussi par crainte que mon disque ne lâche que j'ai investit dans le SheevaPlug.

Donc il a fallu choisir une nouvelle bête (c'est rare d'avoir du matériel dernière génération pour moi, ce qui est plutôt paradoxal). Quel choix : fixe ? portable ? ultra portable ? Les ultra portables c'est non tout de suite, trop petit, trop faibles capacités. Reste le choix entre fixe et portable : fixe plus puissant et un peu moins cher mais beaucoup de fils, d'encombrement et pas de possibilité de transport. Bon, va pour un portable, les capacités de ces engins ont grandement augmentées ces dernières années. Encore un petit soucis : mac ou PC ? Il faut bien le reconnaître autant d'un point de vue matériel que logiciel les macs sont de très bonne qualité mais MacOS ne m'intéresse pas et apparemment ce n'est pas trivial d'installer un GNU/Linux sur leurs matériel ... tant pis, peut être plus tard.

Budget : entre 700€ et 1000€ (en dessous ça ne vaut rien, en dessus c'est un peu trop). Mais quitte à investir, autant que ça dure un minimum de temps (6 ans c'est pas mal). Donc le minimum requis c'était :
- Core i5 : préféré à AMD pour la conso
- Carte graphique nVidia : jamais eu de problèmes avec les pilotes propriétaires nVidia (même si c'est LE MAL)
- Écran > 15" à LED : TRÈS important, et puis niveau conso c'est important
- Poids < 4kg : parce qu'il ne faut pas déconner
L'ensemble de ces éléments doivent avoir une consommation réduite pour limiter l'utilisation du ventilateur.

Bref j'ai trouvé mon bonheur avec le Samsung r780 E7P-C5450 :
- Core i5 450M 2,4Ghz (double cœur)
- 4Go DDR3 1066Mhz
- 640 Go de disque dur 5400tr/min : la vitesse est un peu faible, mais c'est partout pareil :(
- nVidia GeForce 330M 1Go
- Ecran 17,6" LED
- Look sympa
- 2,8kg
- 850€ avec frais de port sur Amazone

Pour information l'ancien PC était un Gericom Hummer 30680 :
- Pentium 4 3Ghz
- 512Mo de RAM
- nVidia Geforce FX5500 64Mo de mémoire partagée
- 80Go de disque dur
- Écran 15" LCD (max 1024x768)

Bref c'est pile ce qu'il fallait ! Bon France Express ont du mal à gérer leurs livreur du coup j'ai dû attendre 4 jours au lieu de 2 max (12€ de frais de port quand même), mais il est arrivé c'est l'essentiel. Le package de Samsung est un peu léger (juste du carton avec quelques protections), on essais de réduire les coûts au maximum et puis ça fait écolo... Il y a quand même un petit  chiffon fournis avec.

Les ennuis commencent maintenant : premier démarrage (histoire d'activer Windows 7 64 bits pour ne pas perdre la licence), il y a un outils de restauration de Samsung qui se lance ... 30 minutes plus tard ... Point positif : il me propose de partitionner le disque, ils ont fait pas mal de progrès (système et données séparées). Bon entre Samsung, l'activation, la configuration, la mise à jour, la mise à jour de live messenger (qui ne fonctionne pas ...) : 3h !! Pour un système censé fonctionner "out-of-the-box" c'est pas terrible. On sent aussi le résultat de la décision de la cours Européenne envers Microsoft : Windows me demande de choisir un navigateur et va même le chercher pour l'installer !!
Autre point positif : le PC est silencieux et ne chauffe quasiment pas. L'écran rend vraiment très bien.

Windows c'est fait ! Passons maintenant sur un vrai système d'exploitation : Debian/GNU/Linux. Il faut faire les choses bien avec un système 64 bits. Première erreur : ia64 c'est l'architecture Itanium 64 bits (le flop d'Intel), en fait amd64 est équivalent à EMT64 qui est équivalent à x86_64. Étant donné qu'AMD s'était déjà positionné sur le marché du 64 bits, Intel a suivi. Le nom d'amd64 doit être là pour la compatibilité (quand il n'y avait qu'AMD en 64 bits).

Deuxième problème : j'ai l'habitude d'installer la version testing en netinstall (donc qui nécessite le réseau pour télécharger les paquets), donc comme d'hab j'utilise l'interface ethernet sachant que le Wifi est difficilement supporté nativement et la *PAF* c'est un chipset Marvell qui n'est pas inclus dans le noyau !! Heureusement qu'il y a un installateur depuis Windows sur la version stable (toujours en netinstall) ... mais qui ne prend pas en charge Windows 7 ! Bref téléchargement du premier iso de la version testing en mode normal (elle contient tout le nécessaire) ... le CD-RW utilisé foire légèrement (il passe pourtant la vérification) du coup changement de CD, téléchargement et compilation des pilotes réseaux et installation plus complète du système ... ouf. Mon ancien PC ne veut vraiment pas partir à la retraite.

Compilation des pilotes nVidia ... c'est beaucoup mieux le 1600*900 ! Copie du répertoire /home de l'ancien PC vers le nouveau (en ethernet). C'est magnifique Linux/UNIX, tous les fichiers de configuration des programmes se trouvent dans son répertoire personnel, donc c'est comme si on n'avait pas reformaté (comparé à la base de registre de Windows qui est une immondice).

Je note quand même que le pilote de la carte ethernet provoque d'importants ralentissements, le pilote Wifi n'a pas l'air terrible non plus (déjà que je me plaignais de l'ancien ...). Les touches fn ne fonctionnent pas non plus :( Il y a aussi un léger sifflement venant du ventilateur qui est assez désagréable.

Globalement ça marche bien, il est beaucoup plus rapide, surtout au niveau du disque dur (c'est important pour la sensation de fluidité), l'écran est beaucoup plus agréable. Il faut juste s'habituer à la nouvelle disposition du clavier (qui est au passage assez agréable au touché).

 

Pour ceux que ça intéresse :

Pilote Ethernet Marvell sk98lin
Pilote Wifi Realtek 8192e