Planet

Pour le compte de mon activité en informatique libre INFORMALIBRE (http://www.informalibre.fr), j'ai travaillé sur la mise en place d'une solution de streaming depuis un PC sous Ubuntu.
Ainsi vous pouvez écouter http://www.meltinpot.fr grâce à un PC sous Ubuntu 9.04.

Voici comment j'ai fait :

SOMMAIRE :

Avertissement !
Les pré-requis
Présentation de la solution de streaming
Installation et compilation de darkice
Installation d'AMAROK 1.4
Automatiser le lancement de darkice + faire des tests
Le gestionnaire de tâche planifié
Installer ICECAST2


Avertissement !

Les manipulations qui suivent nécessitent des manipulations à effectuer avec des droits superutilisateurs (root) dont le mauvais usage peut engendrer des effets néfastes pour votre système. Je ne suis donc pas responsable de vos erreurs. (j'ai repris ce texte d'avertissement très explicite sur le site de http://blog.profnoel.com/ )

Les pré-requis

Vous devez avoir ubuntu-restricted-extra et lame , pour ce faire cliquez sur ce lien : apt://ubuntu-restricted-extras,lame

Présentation de la solution de streaming

La solution présenté ici a été retenu pour plusieurs raisons :

AMAROK 1.14
- Fiabilité lors d'une lecture de musique en continue alors que d'autres logiciels boguent au bout de quelques temps (par exemple exaile)
- Meilleur qualité d'utilisation lors de l'ajout de musique dans des playlists par rapport à mpd et son frontend sonata par exemple.
 
DARKICE
- Programme qui envoi le son "streamé" (dans mon cas, depuis alsa)  vers un serveur shoutcast hébergé par streamakaci©
- Possibilité d'envoyer le son vers un serveur icecast2 en simultané (pour un futur streaming en ogg vorbis).
- Plus grande fiabilité que edcast-jack




Installation et compilation de Darkice

Nous devons installer Darkice et Amarok 1.4, nous allons commencer par darkice !

DARKICE
Pour des raisons liés au copyright sur le support du mp3, Darkice n'est pas compilé avec le format mp3 en standard.
Nous devons donc le compiler nous même, mais comme il est dans les dépôts source nous pouvons faire ça très simplement en suivant ce tuto : http://doc.ubuntu-fr.org/projets/paquets/recompiler_un_logiciel_des_depots

C'est parti pour la compilation de Darkice:

Tout d'abord, il faut installer build-essential, dpkg-dev et fakeroot, un clic sur le lien suivant permet d'installer les paquets très facilement: apt://build-essential,dpkg-dev,fakeroot (d'autres méthodes existent : http://doc.ubuntu-fr.org/tutoriel/comment_installer_un_paquet). Bien attendre que tout soit installé et ne pas faire autre chose tant que vous n'avez pas cliqué sur OK (le système vous dit que tout à bien été installé, appuyer sur "Afficher le bureau", en bas à gauche pour voir si des fenêtres ne sont pas cachées).

Ensuite lancez un terminal : Applications->Accessoires->Terminal



tapez :
apt-get source darkice (ce qui va installer les sources de darkice)


Ensuite rendez-vous dans le répertoire de darkice puis dans le répertoire debian

cd darkice-0.19 puis entrer, puis cd debian puis entrer

Utilisez ensuite la commande suivante :

gksudo gedit rules gksudo plutôt que sudo car nous lançons un logiciel gtk)

Recherchez la ligne :
dh_auto_configure -- --prefix=/usr --sysconfdir=/usr/share/doc/darkice/examples Et ajouter y ceci : --with-lame



Cela vous donnera cette ligne :

dh_auto_configure -- --prefix=/usr --sysconfdir=/usr/share/doc/darkice/examples --with-lame

Enregistrez rules et quittez gedit (vous devriez revenir au terminal)

Ensuite dans votre console tapez :

sudo apt-get build-dep darkice   (ainsi nous allons télécharger toutes les dépendances sources de darkice)

Il devrait s'afficher ceci :
Les NOUVEAUX paquets suivants seront installés : debhelper dpatch gettext html2text intltool-debian libasound2-dev libfaac-dev libjack-dev libjack0.100.0-dev  libmail-sendmail-perl libmp3lame-dev libogg-dev libsys-hostname-long-perl libtwolame-dev libvorbis-dev patchutils  po-debconf
0 mis à jour, 17 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 4677ko dans les archives.
Après cette opération, 18,4Mo d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?



Taper O puis entrer

Il vous faut maintenant quitter le répertoire debian, grâce à la commande :

cd .. (ce qui vous fait aller au répertoire parent)

Maintenant tapez :

sudo fakeroot debian/rules binary

Un paquet deb sera créé dans le répertoire parent.

Vous pouvez y aller en tapant cd ..Puis tapez : sudo dpkg -i  darkice_0.19-1ubuntu2_i386.deb (il se peut que vous n'ayez pas la même version de darkice, vérifier en tapant : ls )


Voilà darkice est installé avec le support mp3 !

Il vous faut maintenant configurer le fichier darkice.cfg qui ce situe ici : /etc/darkice.cfg

Puis dans le terminal (console) tapez :

gksudo gedit /etc/darkice.cfg

A l'intérieur, ajoutez les lignes suivantes (à modifier suivant vos besoins, avec vos mots de passe et login) :

[general]
duration        = 0        # durée de l'encodage, en seconde. 0 pour tout le temps
bufferSecs      = 5         # Taille de buffer d'attente, en seconde
reconnect       = yes       # yes, tente de se reconnecter en cas de déconnection


[input]  # Entrée, dans ce cas c'est le son provenant de la carte son qui est utilisé (il plus particulièrement celui de l'entrée son de la carte son
device          = hw:0,0  # Utilise le périphérique alsa comme entrée
sampleRate      = 44100     # Échantillonnage
bitsPerSample   = 16        # Bits par sample, laissez 16
channel         = 2         # Canal. 1 = mono, 2 = stereo

[shoutcast-0] # Pour un serveur shoutcast

bitrateMode     = abr       # average bit rate
bitrate         = 50       # bitrate du flux envoyer au server
quality        = 1    # Meilleur qualité
server          = str75.streamakaci.com #adresse du serveur, en local c'est localhost
port            = 7931      # port du serveur shoutcast, normalement cela devrait être 7930 mais bizarrement c'est 7931 qui fonctionne pour shoutcast
password        = ******** # Mots de passe du server
channel        = 2  # # Canal. 1 = mono, 2 = stereo
name            = Meltin'pot  # Nom du flux
description     = Meltin'pot la webradio du bassin minier
url             = http://www.meltinpot.fr #Url relative au flux
genre           = Radio jeune    # genre  du flux
public          = yes       # Dire si le flux est en ligne
format=mp3 # Format d'encodage mp3

[icecast2-0] # Pour un serveur ICECAST2
bitrateMode     = vbr       # average bit rate
format          = vorbis    # Format d'encodage: ogg vorbis
bitrate         = 128       # bitrate du flux envoyé au server
quality        = 0.4        #
server          = 127.0.0.1 ##adresse du serveur, en local c'est localhost ou 127.0.0.1
port            = 8000      # port du serveur ICECAST 2.0 en générale : 8000
password        = ***********   # Mots de passe pour le serveur icecast2
mountPoint      = music.ogg # Point de montage du serveur icecast2
name            = Meltin'pot  # Nom du flux
description     = Meltin'pot la webradio du bassin minier
url             = http://www.meltinpot.fr # Adresse du flux
genre           = Radio jeune     #Genre du flux
public          = yes       # Dire si le flux est en ligne

Enregistrez et quittez !

Pour voir si le streaming fonctionne, tapez :

darkice -v  

-v (verbose=bavard) pour avoir plus d'infos que ce qu'il se passe !

Si tout marche bien vous devriez avoir ceci (j'ai enlevé des lignes pour que ça soit plus clair) :

29-Jul-2009 16:04:44 Using ALSA DSP input device: hw:0,0
29-Jul-2009 16:04:44 encoding
29-Jul-2009 16:04:44 set lame mode 1
29-Jul-2009 16:04:44 set lame channels 2
29-Jul-2009 16:04:44 set lame in sample rate 44100
29-Jul-2009 16:04:44 set lame out sample rate 44100
29-Jul-2009 16:04:44 set lame abr bitrate 3
29-Jul-2009 16:04:44 set lame abr mean bitrate 50
29-Jul-2009 16:04:44 set lame lowpass frequency 0
29-Jul-2009 16:04:44 set lame highpass frequency 0
29-Jul-2009 16:04:44 set lame psycho acoustic model 1
29-Jul-2009 16:04:45 BufferedSink, new peak: 417
29-Jul-2009 16:04:45 BufferedSink, remaining: 31583

Faire CTRL-C pour arrêter le défilement

À ce stade vous émettez ce qui entre dans votre carte son.

Je n'ai pas réussi à enregistrer directement le son qui passe dans les haut parleurs, j'ai donc acheté un petit câble jack, je l'ai branché dans la sortie son de la carte son et je l'ai fait rentrer dans l'entrée micro.

P.S. : J'y suis arrivé sur un autre PC, il semble qu'il faille cocher PCM-enregistrement




Ensuite il faut faire les bon réglages afin que le son ne soit ni trop fort, ni trop faible

Voici mes entrées et sorties son :

Le gestionnaire de volume





Pour moi, j'ai sélectionné l'entrée Micro





Le contrôleur de niveau d'enregistrement



Installation d'AMAROK 1.4 (il va envoyer le son à alsa, cad vos hauts parleurs)

Pour installer amarok1.4 à la place d'amrok2 qui n'a pas encore toutes les fonctionnalités :
Ajoutez cette ligne dans la liste des dépôts :

deb http://ppa.launchpad.net/bogdanb/amarok14/ubuntu jaunty main

Il faut ajouter cette ligne dans le gestionnaire de mise à jour,

Système->Administration->Sources de mise à jour

Puis choisir l'onglet : Logiciels de tierces parties

Cliquez sur ajouter et entrez la ligne: deb http://ppa.launchpad.net/bogdanb/amarok14/ubuntu jaunty main

Le système va vous proposer de mettre à jour la liste des logiciels, acceptez.

Puis installer amarok1.4 via synaptic, pour savoir comment faire : http://doc.ubuntu-fr.org/tutoriel/comment_installer_un_paquet, voici amarok 1.4 :

ça devrait ressembler à ça :



Automatiser le lancement de darkice + faire des tests

Création d'un script pour détecter si darkice est lancé et si il n'est pas lancé, le relance.

Afin d'être sûr que le flux fonctionne en permanence (on émet une webradio quand même), et vu que darkice dysfonctionne parfois... et qu'aucun logiciel d'émission de flux ne fonctionne parfaitement... je suis parti du principe qu'il fallait détecter si darkice était lancé pour le relancer au cas où.

J'en profite aussi pour relancer darkice si la connexion internet ne fonctionne plus (sinon source de plantage).

Allez dans un répertoire que vous aurez préalablement créé, par exemple pour moi : /home/votrenomd'utilisateur/script et créez un fichier texte en faisant clic droit puis "Créer un document -> fichier texte"

Nommer le "script"

A l'intérieur du fichier texte entrez :


#!/bin/sh
while :
do
variable=`ps -d | grep darkice`
if [ "$variable" = "" ]
then
darkice &
else
echo oui
fi
ping -q -c 2 www.google.fr >/dev/null 2>&1
if [ $? -eq 0 ]
then
echo non
else
killall darkice
fi
done



Puis enregistrez.

Faite un clic droit sur votre fichier, puis modifiez les permissions pour permettre l'exécution.

Ensuite allez sur votre bureau et faîtes un clic droit et choisir "Créer un lanceur"

Allez choisir votre script (en cherchant son chemin), puis choisissez lui une icône.

Voilà, c'est fait

Le gestionnaire de tâche planifié

Nous allons dire au gestionnaire de tâche planifiées qu'il faut tuer Darkice 4 fois par jour ainsi nous sommes sûr quand cas de souci il sera relancé toutes les 6 heures ! Le script que nous avons créé avant relancera automatiquement Darkice !

D'abord pour que ce soit plus facile à faire, il faut installer gnome-schedule en cliquant sur ce lien  apt://gnome-schedule





Pour créer une tâche planifiée faire : "Nouveau -> Une tâche lancée régulièrement"

Puis dans titre mettre : Relancer darkice

Dans commande mettre : killall darkice

Puis choisir expert, dans heure mettre 0 et dans minute mettre 0

Dans les autres cases laisser *, ce qui veut dire que que la commande sera effectué tous les jours, tous les mois, tous les jours de la semaine.

Puis cliquez sur : "Ajouter comme un modèle", comme cela vous n'aurez qu'a sélectionner plusieurs fois votre modèle.

Refaire "Nouveau" puis : "A partir d'un modèle", choisissez et modifiez votre tâche plusieurs fois
 



Il ne vous restera plus qu'a lancer Amarok ainsi que votre script à chaque démarrage de l'ordinateur (bien sûr normalement l'ordinateur ne doit jamais redémarrer).


Installer ICECAST2

Icecast2 est l'équivalent libre de shoutcast, ce logiciel permet à plusieurs personnes de se connecter à votre flux radio.

Pour installer Icecast2 cliquer sur ce lien : apt://icecast2.

Configuration de Icecast2 (inspirée de http://doc.ubuntu-fr.org/tutoriel/comment_creer_une_webradio)

Éditez le fichier /etc/icecast2/icecast.xml, fichier de configuration de Icecast2.

Dans un terminal: gksudo gedit /etc/icecast2/icecast.xml

Il y a pas grand chose à modifier, à part les mots de passe. ;-)

Ceux ci doivent correspondre à ceux inscrit dans votre fichier icecast.cfg

<limits>
<clients>5</clients>
<sources>5</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>30</client-timeout>
<header-timeout>15</header-timeout>
<source-timeout>10</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>65535</burst-size>
</limits>
 
<authentication>
<!-- Sources log in with username 'source' -->
<source-password>VOTRE_MOT_DE_PASSE</source-password>
<!-- Relays log in username 'relay' -->
<relay-password>VOTRE_MOT_DE_PASSE</relay-password>
 
<!-- Admin logs in with the username given below -->
<admin-user>admin</admin-user>
<admin-password>VOTRE_MOT_DE_PASSE</admin-password>
</authentication>
 
<hostname>127.0.0.1</hostname>

Pour faire tourner Icecast2 en tache de fond, Éditez le fichier /etc/default/icecast2 et modifiez à la fin du fichier pour obtenir :

ENABLE=truegksudo gedit /etc/default/icecast2

Puis relancez icecast2, il peut être nécessaire de le faire deux fois

sudo /etc/init.d/icecast2 restartVous pouvez maintenant accéder au serveur icecast2 à l’adresse http://adresse.com:8000/ (http://127.0.0.1:8000/ si vous êtes en local).

Voilà, amusez-vous bien !

Pour finir, voici un historique de mes essais: http://forum.ubuntu-fr.org/viewtopic.php?id=331886.



Note : Vous pouvez également voir comment créer une webradio grâce à Icecast et Liquidsoap dans cet article.

Lorsque l’on a un serveur, la mise à jour se passe en ligne de commande. En général cela se passe en modifiant le fichier de source pour APT. Il suffit de se tromper dans le fichier source.list pour avoir des problèmes.

ATTENTION ! Une mise à jour du système et surtout le changement de version reste une manipulation dangereuse sur un serveur de production! Faites des sauvegardes avant.

Sous Ubuntu il existe un outil en ligne de commande qui effectue les mêmes vérifications que l’utilitaire graphique update-manager.

Pour pouvoir utiliser la commande de mise à jour de version d’Ubuntu en ligne de commande il faut que le paquet update-manager-core soit installé.

Mise à jour vers la version stable suivante encore supportée:

do-release-upgrade

Il est aussi possible de lui rajouter des paramètres:

  • -p: met à jour vers la dernière version stable disponible
  • -d: permet de mettre à jour vers la version de développement en cours

Exemples:

?View Code BASH
22:33 motarion@[cyber-workstation]:~$ do-release-upgrade Checking for a new ubuntu release No new release found
?View Code BASH
23:07 motarion@[cyber-workstation]:~$ do-release-upgrade -p Checking for a new ubuntu release No new release found
?View Code BASH
23:08 motarion@[cyber-workstation]:~$ do-release-upgrade -d Checking for a new ubuntu release Done Upgrade tool signature Done Upgrade tool Done downloading extracting 'karmic.tar.gz' authenticate 'karmic.tar.gz' against 'karmic.tar.gz.gpg' [sudo] password for motarion: Lecture du cache Vérification du gestionnaire de paquets Reading package lists: Donejaunty-security/multiverse Packages: 95 Reading state information: Done Reading state information: Done Reading state information: Done Done downloading Vérification du gestionnaire de paquets Reading package lists: Donekarmic-security/multiverse Packages: 95 Reading state information: Done Reading state information: Done Reading state information: Done Calcul des modifications Voulez-vous commencer la mise à niveau ? 18 paquets vont être supprimés. 161 nouveaux paquets vont être installés. 1056 paquets vont être mis à jour. Vous devez télécharger un total de 818M. Ce téléchargement prendra environ 12 minutes avec votre connexion. La récupération et l'installation de la mise à niveau peuvent prendre plusieurs heures. Un fois le téléchargement terminé, l'opération ne peut plus être annulée. _Continuer [oN] Détails [d]

Il y a très longtemps j'utilisais MAMP que j'avais ensuite lâché pour xampp qui est maintenant mon installation par défaut. Pour être franc, je me rappelle vraiment plus pourquoi effectué ce changement...

Le include_path PHP de l'installation de xampp est faux de A à Z, alors que le dossier d'installation par défaut se nomme /Applications/XAMPP, la valeur de include_path vaut :

include_path=".:/Applications/xampp/xamppfiles/lib/php"

De plus pear est installé dans /Applications/XAMPP/xamppfiles/lib/php/pear, donc non inclus dans le path php.

Corriger dont l'instruction include_path par :

include_path=".:/Applications/XAMPP/xamppfiles/lib/php:/Applications/XAMPP/xamppfiles/lib/php/pear"

Je retourne à mon code. ++

ps : pour installer xdebug j'utilise la méthode trouvée sur ce blog qui utilise une build standalone générée pour l'IDE Komodo.

C'est aujourd'hui, vendredi 24 juillet 2009, que java-gnome est sortie en version 4.0.12. Je rappelle que cette bibliothèque permet aux développeurs Java de créer des applications utilisant les différentes bibliothèques offertes (telles que GTK, Cairo, Pango, etc...) et utilisées par GNOME.

Parmi les nouveautés, on retrouve :

  • la gestion des sourceviews. Widgets qui permettent de colorer du texte (utilisés notamment pour afficher du code source dans les éditeurs de texte),
  • la possibilité d'activer la correction orthographique dans les zones de texte,
  • l'utilisation de la fameuse libnotify, qui permet de gérer les notifications (compatible avec le système Notify OSD utilisé par Jaunty Jackalope), et,
  • l'ajout de fonctionnalités pour vérifier qu'une seule et unique instance d'une application est exécutée.



En plus de ces nouvelles choses, de nombreux éléments des bibliothèques GTK, Cairo et GDK ont retouché afin de les prendre en charge ou de les complèter. C'est le cas notamment avec la classique boîte de dialogue "À propos" qui, maintenant, peut afficher les auteurs, les documentalistes, les artistes et la licence du programme. Les objets de type Pixbuf (images / icônes) peuvent maintenant également être construits directement via des données de type byte. Une amélioration de la sélection de fichier via une boîte de dialogue ainsi que la gestion des filtres ont été codés. Et enfin, il est désormais possible d'utiliser les complétions automatiques dans les entrées de texte via la classe EntryCompletion.

Cette nouvelle version de java-gnome a été pour moi l'occasion de contribuer à son développement. En effet, je me suis chargé d'ajouter les différentes méthodes pour spécifier les auteurs, documentalistes, artistes et la licence dans la boîte de dialogue "À propos" et j'ai également codé le support des EntryCompletions (grâce à l'aide et aux conseils de Andrew Cowie). Bref, une expérience, dans un projet open source déjà bien établi, qui a été très enrichissante et que j'ai beaucoup apprécié. La preuve : j'ai déjà une branche de développement prête (et une autre en cours) pour la version 4.0.13 qui arrivera d'ici quelques mois.

16 Juillet 2009 à 15:58

Traduction française de elgg 1.5 via BastNic's Blog

On m'avait signalé que la traduction française du projet et des modules elgg 1.5 était très moyenne. Comme j'en avais besoin rapidement j'ai mis mon chef bien aimé et mon esclave personnel sur le coup et hop les modules principaux (dont j'ai besoin) sont traduits (presque) à 100%.

Il manque encore le module forms mais je m'en moque car les utilisateurs finaux n'en auront jamais conscience de celui-là.

Sinon pour le fait, je n'ai pas le temps de faire une revue complète du projet, mais ça m'a quand même l'air moins bien foutu que Drupal.

A vos forks : http://github.com/bastnic/elgg-fr/tree/master

git clone git://github.com/bastnic/elgg-fr.git

Un peu moins de trois mois après la sortie d'Ubuntu 9.04, la nouvelle version de CrunchBang (9.04.01) est disponible en téléchargement.
Pour ceux qui ne connaissent pas encore, CrunchBang est une distribution basée sur Ubuntu utilisant l'environnement de bureau OpenBox, ce qui la rend beaucoup plus légère.

Voici une présentation des nouveautés de cette version 9.04.01

I. Introduction

CrunchBang a été créé à partir du MinimalCD d'Ubuntu 9.04. Sa création a été achevée le 6 Juillet 2009, les mises à jour et les patchs de sécurité parus jusqu'à cette date sont donc implémentés.


II. Les nouveautés

Pour la première fois, CrunchBang est disponible en version 32 et 64 bits (amd64). C'est d'ailleurs pour cette raison que cette release à été faite seulement 3 mois après celle d'Ubuntu. Voici également quelques améliorations de cette version :
  • Un démarrage amélioré et plus rapide (19 secondes sur mon vieux 1800+ avec 512Mo de RAM)
  • Un meilleur support des cartes wifi
  • L'implémentation du système de fichiers Ext4
  • tint2 remplace l'ancien panel, lxpanel
  • Le client BitTorrent Transmission remplace l'ancien, Deluge
  • Vim est directement intégré
  • L'éditeur de texte Pyroom est inclus
  • Un documentation plus détaillée est inclue dans les fichiers de configuration
  • Des menus supplémentaires dans le menu OpenBox par défaut
  • De nouveaux thèmes OpenBox sont disponibles (par exemple, le magnifique Dyne)

III. Téléchargement

Pour télécharger cette nouvelle version, rendez-vous sur la page de téléchargement du site officiel.


IV. Conclusion

J'utilise quasi-exclusivement CrunchBang depuis plusieurs mois. Je n'ai toutefois pas voulu installer cette nouvelle version car je n'aime pas la version 9.04 d'Ubuntu.
En revanche, en préparant cet article, je suis tombé sur ce screenshot qui m'a vraiment donné envie d'installer cette nouvelle version.
Je l'ai donc téléchargée puis installée sur mon vieux PC (AMD 1800+, 512Mo de RAM). En un mot : Quel bonheur :)
L'interface est magnifique, je retrouve ma CrunchBang 8.10 en plus beau. Ce nouveau panel est tout simplement génial ! Il se configure via un fichier de configuration accessible directement dans le menu du clic droit. Je voudrais cependant pouvoir ajouter une icône de menu (pour remplacer mon clic droit), je n'ai pas encore trouvé comment faire mais je vais regarder ça de plus près dès que j'aurais le temps.
J'ai également remplacé le système de bulles de notifications (jaunes) par le nouveau Notify-OSD.

En revanche, je ne supporte pas le fait que les développeurs aient décidés de supprimer par défaut le Ctrl+Alt+Backspace dans cette nouvelle version d'Ubuntu. Moi j'adorais cette possibilité !
Pourquoi ont-ils fait ça ? Pour mieux ressembler à Windows ? Pour moi c'est simplement ça...
Bientôt peut-être que nous n'aurons même plus le sélecteur de bureaux virtuels qui sait (histoire que les nouveaux utilisateurs ne "changent pas de bureaux sans le faire exprès", comme pour Ctrl+Alt+Backspace)... Pfff, c'est ce genre de modifications qui me poussent de plus en plus vers Debian !

Bref, pour en revenir au sujet, je vous invite fortement à télécharger cette nouvelle version et à l'essayer, vous ne serez pas déçu ;)
À bientôt !

Source et screenshots
15 Juillet 2009 à 21:20

Compte twitter suspendu via BastNic's Blog

... sans raison et sans même un mail d'avertissement et/ou d'explications. Je viens de faire une demande pour voir ce qu'il en est.

Me semble pas avoir abusé pourtant :p.

EDIT : résolu 2mn après ma demande. Rapide mais bizarre

Bonjour,
étant un passionné de jeux vidéo et ayant beaucoup de jeux, je prends soin de ma collection. À ce jour, je possède 11 consoles et 190 jeux ! Pour m'y retrouver, j'utilise un gestionnaire de collection : GCstar.

Présentation  et fonctionnalités :

GCstar permet de gérer des collections de différentes sortes :
  • films
  • jeux vidéos
  • livres
  • musique
  • numismatique
  • vin
  • jeux de société
  • bandes dessinées
  • épisodes de séries TV
  • collections définies par l'utilisateur (consoles pour ma part)


Il est basé sur un logiciel de gestion de collection de films : GCfilm.
GCstar est plein de fonctionnalités (liste non exhaustive) :
  • gestion multi-collection
  • création de modèle de collection personnalisé
  • choix de l'affichage des éléments des fiches
  • présentation en liste ou en image
  • plusieurs modèle de "présentoir" modifiable (bois, verre, etc)
  • affichage et recherche avec filtre
  • mode "Ce soir" (propose un éléments au hasard)
  • gestion multimédia (exécutable, image, etc)
  • gestion d'emplacement physique (rayonnage, étagère, etc)
  • liens vers page web
  • rappatriment des donées depuis un site web
  • gestion des EAN, ISBN ...
  • gestion des emprunts (nom de l'emprunteur, date emprunt, date retour, etc)
  • importation de collections depuis les formats csv, gcf, gcs, tc, amc, alexandria, xml, tar.gz, liste de nom (txt)
  • exportation en html, xml, sql, csv, telico, tar.gz
  • ...


Côté technique :

GCstar est développé en Perl et GTK2 mais propose dans ses paramètres d'utiliser la bibliothèque graphique QT (option "KDE"). Il se base sur des fichiers XML pour gérer la collection et non sur une base de données.
Ce dernier point est intéressant car il donne à GCstar une grande portabilité, mais il rend le chargement d'une collection plus lente si elle compte beaucoup d'entités.

Note, la version des dépôt d'Ubuntu 9.04 est la 1.3.2 alors que GCstar en est à la version 1.4.3


Côté pratique :

- Création d'une collection

Lorsque vous lancez GCstar pour la première fois, vous devez créer une collection. Voici les choix qui s'ouvre à vous :




GCstar vous propose soit de créer une nouvelle collection avec des modèles prédéfinis, d'importer une collection, ou de créer votre propre modèle.
Dans le cas où vous choisissez de créer votre propre modèle, vous créez ce dernier avec cette interface :


Il est assez facile de créer son propre modèle. La difficulté principale est de ne pas oublier de champs, les mettre dans le bon ordre, les classer par onglet et bien identifier le type de champs à utiliser (texte long, texte court, etc)

Astuce : Dans Option, laissez le champs "En tant qu'identifiant" en mode automatique. GCstar créera un champs caché pour identifier de manière unique un élément de la collection et le gérera automatiquement.

- Création d'un élément d'une collection

Créer un élément dans une collection est assez simple, il suffit de cliquer sur le petit plus (ou utiliser le menu) et de remplir les champs. Enfin, n'oubliez pas de sauvegarder votre collection.

Si vous choississez de rajouter une image (jaquette de jeux par exemple), il faudra au préalable la trouver / scanner / dessiner (rayer les menton inutile) et la placer dans un répertoire à votre guise.
Je vous conseil de créer dans votre home un dossier nommé .gcstar et d'y sauvegarder votre collection avec un nom explicite. Vous pouvez y placer aussi un répertoire pour les captures d'écran dans le cas des jeux vidéo (captureDeMaCollection). GCstar créera automatiquement un répertoire LeNomDeVotreCollection_pictures pour y placer les images (couverture de livre, pochette CD, etc)
Enfin, nommez correctement vos images (sans accent, espace, "_", etc) afin de limiter le risque de problème au moment d'un export vers le web ou en base de données.


Quelques fonctionnalités en images :

Choix des champs à afficher :











Fiche intégrée ou fenêtrée :



Exemple d'options disponibles :




Conclusion :


GCstar est un petit logiciel libre qui mérite d'être connu. Il est puissant et bien pensé.

Je profite de cette conclusion pour passer un appel au développement. Je voudrais pouvoir exporter ma collection vers un site web afin d'exposé ma collection sur le web facilement.
Actuellement, GCstar peux exporter en xHTML, XML ou SQL en générant un fichier sur le disque dur. On peut modifier ce fichier à la main, mais il serait pratique de pourvoir lié l'application local GCstar à un site web sur lequel un script se chargerait de mettre en forme les données XML (ou SQL). Évidemment, c'est un développement assez long et pas évident mais cela permettrait une présentation en ligne bien plus aisé et poussé (CSS géré par le site, meilleur intégration dans le site, choix des champs à afficher, etc).

Afin de ne pas trop se compliquer la tâche, on pourrait rapatrier ces données vers un CMS très utilisé comme Dotclear ou Joomla! Si quelqu'un veut développer un module pour une des ces deux application web, ce serait super !
J'ai n'ai malheureusement pas le temps de me pencher sur le code coté GCstar (je ne connais ni le Perl, ni GTK2), cependant ayant quelques connaissance en php, je pourrai donner un coup de main pour le développement côté applications web.
SI vous êtes intéressé, on peut en parler en commentaire. ;)

Je retourne compter mes jeux... ;)
Bonne collection !

Note : ma collection est visible en ligne ici (ce ne sont que des originaux !)

Comme beaucoup d’utilisateurs libres de dernière heure, j’ai commencé mon aventure GNU/Linux avec Ubuntu, avant de cotoyer Debian. Seulement, depuis le début, je me pose des questions sur l’attitude des développeurs d’Ubuntu sur la question relative à l’usage exclusif des logiciels libres mais aussi (cela vaut aussi pour Debian) la question relative aux brevets logiciels.

Que du libre

Que ce soit Debian ou Ubuntu, ils ont chacun pris librement l’engagement à fournir des logiciels libres à leurs utilisateurs(*). Seulement, il semble qu’ils n’arrivent pas à se passer de certains logiciels propriétaires, entre autres des pilotes de matériel.

Il faut se poser la question de savoir ce qui nous relie en tant que communauté. Est-ce la passion seule de l’informatique ou la liberté des logiciels ? Cette question je la trouve importante, parce que si la passion seule de l’informatique est notre préoccupation, nous nous serions contenté d’utiliser, voire, pirater des logiciels non libres. Puisque qu’il est difficile de choisir l’usage exclusif les logiciels libres dès lors qu’on a pas déjà une certaine passion pour l’informatique et que nous ayons tous fait ce choix, le lien qui nous soude reste le désir d’avoir des logiciels dont l’usage ne serait pas restreint pas une personne, fût-elle physique ou morale. Dans ce cas, lorsque des personnes se portent garant pour offrir un tel environnement, dans lequel il n’y a que du libre, elles devraient ne fournir que des logiciels libres.

Si ces distributions étaient vendues où étaient détenues par des sociétés commerciales comme Mandriva, j’aurai compris l’intégration des logiciels non libres dans la distribution, même si cela ne serait pas une excuse. Mais, il me semble plutôt que Debian et Ubuntu sont des distributions gratuites, essentiellement financées par des dons. Dans ce cas, d’où vient cet acharnement à les voir fonctionner à tout prix ? Surtout celui de l’intégration des logiciels non libres ?

S’il est normal que le travail abattu doit porter ses fruits, il me semble alors que Debian et Ubuntu passent à côté de l’objectif qui n’est pas que de fournir une distribution Gnu/Linux, mais surtout une distribution Gnu/Linux libre. Par ailleurs, l’intégration dans ces distributions du logiciel « vrms » semble être pour moi une auto-accusation de la part de ces derniers du non respect de leur engagement.

De la question des brevets

Combien de fois des logiciels libres, généralement de distributions, ont été sous une menace de plainte pour violation de brevet ? Si sans avoir utilisé directement des outils soumis à des brevets des tels menaces ont plané parce qu’un concept breveté aurait été utilisé, il est plus dangereux d’utiliser par exemple les implémentations dites libres de .Net que nous offrent Novell avec sa plate forme Mono(pole ?). Richard Stallman en a parlé(en), et de toutes les façons, il n’est pas nécessaire que ce soit forcément lui qui en parle pour que nous en comprenions le danger. Nous nous sommes tous engagés à produire et à n’utiliser que des logiciels libres de leurs éditeurs. Cependant, les brevets soudent encore les logiciels à leurs éditeurs, et peu importe la licence libre appliquée, vous perdez votre liberté en les utilisant. Leurs éditeurs prennent de l’avantage car même s’il n’est pas possible de poursuivre tous les utilisateurs d’un logiciel violant un brevet, au moins la menace de le faire constituera du FUD auquel on est pas toujours vacciné.

Le fait de mettre en garde contre de tels dangers, qui sont réels, ne devraient pas être pris pour de la paranoïa. Et même si c’est le cas, si la crainte est justifiée, il faut rester prudent. Une entreprise commerciale vit de ses bénéfices et essaie de tout mettre en sa faveur pour en avoir davantage. Dans un atmosphère ou le logiciel libre est une réelle menace pour les éditeurs de logiciels non libres, il vaut mieux prendre ceux-ci comme des ennemis potentiels.

Même s’il était prouvé que Microsoft n’attaquera jamais personne pour l’usage de brevets liés à .Net, le fait qu’il disposera toujours de ce droit constitue un danger permanent. Et il vaut mieux rester dans l’abri. Sinon, le contraire signifirait seulement prendre un risque.

Sur cette question, Ubuntu et Debian font encore un mauvais pas, en intégrant des logiciels « Mono-dépendant » dans leur distribution.

Si la récente promesse de Microsoft, qui déclare ne pas poursuivre ceux qui « ‘conçoivent, utilisent, vendent, importent ou distribuent toute implémentation’ basée sur les technologies couvertes par cette licence très particulière. »(Voir le Monde informatique) concerne pour l’instant C# seulement, je pense qu’il n’y a pas grand sujet de joie, parce que ça ne nous fait pas beaucoup avancer sur la question de Mono qui n’est pas couvert par ladite licence. Quitte aux développeurs des logiciels litigieux (Tomboy, FSpot etc.) d’utiliser les implémentations libres de C#, comme en parle Richard Stallman dans l’article ci haut cité.

En outre, le danger des brevets  s’est manifesté ouvertement dans le cas récent de l’implémentation des balises multimédias pour la spécifications de HTML5 (voir l’article de Tristan Nitot sur la question) devant être prochainement publiées. Et ceci constitue un danger réel pour Internet dont la survie dépend des standards ouverts, surtout à l’heure où des technologies qui brillent sans être de l’or, comme Adobe Flash, verrouillent progressivement des plus en plus de tronçons de l’autoroute de l’Internet (voir à ce sujet les articles  : Trop de Flash sur l’autoroute du Net (Framablog) et  The web is hackable (en – Standblog)).

* Sur la page d’accueil de Debian on peut lire ceci : « Debian est un système d’exploitation libre… ». En outre, on peut lire sur la page d’accueil d’Ubuntu « Ubuntu CDs contain only free software applications; we encourage you to use free and open source software, improve it and pass it on ». Sauf si par « software applications » ils veulent exclure les pilotes qui sont des logiciels systèmes. Mais ce sera tout de même un mensonge par omission.


12 Juillet 2009 à 23:07

Trac: Supression de ticket en masse via Brice Capelle


Suite à un problème avec mon environnement Trac pour gérer mes sources, celui ci était envahi de ticket SPAM envoyé par des bots car j’avais mal configuré les permissions. Maintenant que les permissions sont bonnes, il ne reste plus qu’à supprimer les ticket SPAM.

Ma version de Trac est celle de la Dapper (6.06 LTS) d’Ubuntu Server, donc la version 9.3. Il n’existe pas de plugin pour cette version qui permette de supprimer des tickets en masse. J’avais 300 ticket à supprimer.

La base de donnée étant en SQLite, j’ai écrit un petit script qui permet de supprimer les tickets.

Ce script doit être lancé avec un utilisateur qui a les droits décriture sur la base de donnée de Trac.

Paramètres:

  1. Chemin de la base de donnée SQLite de trac
  2. Premier ticket à supprimer
  3. Dernier ticket à supprimer

Script trac_del_ticket.sh :

?View Code BASH
# # Mass removing tickets from Trac environnement # # Motarion &lt;motarion@gmail.com&gt; # Creation date: 12/07/2009 # Last modification: 12/07/2009 # # History: # v0.1: &lt;12/07/2009&gt; Initial release. #   # Variables NB_PARAM="$#" DB_PATH="$1" FIRST_TICKET="$2" LAST_TICKET="$3"   # Programs SQLITE_CLIENT=`which sqlite3`   # Tests if [ $NB_PARAM -gt 3 ] || [ $NB_PARAM -lt 3 ]; then echo "Error: Usage $0 PATH_TO_TRAC.DB FIRST_TICKET LAST_TICKET" exit 1 fi   if [ $SQLITE_CLIENT == "" ] then echo "Error: This script require Sqlite3 client to work. Please install it." exit 1 else echo "Info: Sqlite client dependancy satisfied. ($SQLITE_CLIENT)" fi   if [ ! -d $DB_PATH ] then echo "Error: The path to the trac.db file is not correct." exit 1 else echo "Info: Path to the trac.db is correct." fi   # Main loop for i in `seq $FIRST_TICKET $LAST_TICKET` do TICKET_ID=$i $SQLITE_CLIENT $DB_PATH"trac.db" "DELETE FROM ticket WHERE id=$TICKET_ID" $SQLITE_CLIENT $DB_PATH"trac.db" "DELETE FROM ticket_change WHERE ticket=$TICKET_ID" $SQLITE_CLIENT $DB_PATH"trac.db" "DELETE FROM attachment WHERE type='ticket' and id=$TICKET_ID" $SQLITE_CLIENT $DB_PATH"trac.db" "DELETE FROM ticket_custom WHERE ticket=$TICKET_ID" done

Pages