Main menu:

Site search

Categories

mars 2025
L M M J V S D
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Archive

Belgacom TV – problème de décodeur

Si vous êtes abonné à Belgacom TV et que vous possédez un décodeur de type Scientific Atlanta V3(b) HD, il peut arriver que quand votre disque dur est plein ou proche de la saturation, vous soyez incapable d’encore l’utiliser. Il refuse d’enregistrer mais pire, il refuse de supprimer des enregistrements et de faire de la place.

Le helpdesk ne semble d’aucune utilité ne conseillant que de faire un reset de l’équipement en appuyant simultanément sur les touches POWER + MENU + OK dès l’affichage de l’indication P100 et jusqu’à ce qu’apparaisse FACr sur l’affichage. Si cette méthode effectue bien un reset et un test du disque dur, ce dernier n’est en rien modifié si aucune erreur n’est détectée. S’il y a une erreur sur le disque, celui-ci apparemment est formaté et les fichiers système réinstallés (une connexion au réseau peut-être nécessaire). Le helpdesk conseille si ça ne fonctionne pas de renvoyer le décodeur en réparation ou d’en acheter un autre.

Avant d’en arriver à cette extrémité, et c’est là le rapport avec Linux, démontez votre décodeur et enlevez le disque dur. Connectez-le dans votre PC desktop ou à un boitier de disque dur externe et examinez-le avec GParted. Vous vous apercevrez qu’il est formaté en ext3 et ça, on connait bien !
Dans mon cas, le décodeur que j’ai eu entre les mains était équipé d’un disque de 160GB divisé en deux partitions ext3. L’une de 20GB et l’autre de 140GB. J’ai reformaté les deux partitions avec GParted et replacé le disque dur dans le décodeur. Au redémarrage, les configurations utilisateur avaient disparu mais on pouvait à nouveau enregistrer sur le disque. Problème résolu !

Quelques commandes…

Quelques petites commandes trouvées un peu partout, utiles ou amusantes mais qui ne méritent pas un article à elles toutes seules.

Regarder une vidéo dans votre terminal.

Deux petites commandes qui permettent de visualiser une vidéo directement dans un terminal. La première en couleur, la seconde en noir et blanc.

$ mplayer -vo caca VotreFilm.avi
$ mplayer -vo aa VotreFilm.avi

Lancer un script au démarrage de la machine.

Il suffit de placer le script, dont on veut un lancement automatique au démarrage, dans le répertoire /etc/init.d/. Donnez-lui le nom que vous voulez. Ensuite, rendez-le exécutable puis installez-le avec les commandes suivantes:

$ sudo chmod +x /etc/init.d/votre_script
$ sudo update-rc.d votre_script defaults 80

La première commande rend votre script exécutable, la seconde fait en sorte que votre script démarre aux runlevels 2345 et s’arrête au runlevels 016 et que sa priorité par rapport aux autres scripts ne soit pas trop grande.

/tmp est vidé au boot mais vous pouvez changer cela.

Le répertoire /tmp est vidé à chaque redémarrage de votre PC. Il pourrait arriver que cette périodicité ne vous convienne pas. Sachez qu’il est possible de la changer. Pour cela, il vous faudra éditer le fichier /etc/default/rcS et modifier la valeur de la variable TMPTIME qui par défaut est à 0 indiquant par là que le répertoire doit être vidé à chaque reboot. Si vous mettez cette valeur à 7, par exemple, cela indiquera qu’au reboot les fichiers de plus de 7 jours devront être effacés.

Quelle est la différence entre /tmp et /var/tmp ?

Comme vu ci-dessus, /tmp est normalement effacé à chaque redémarrage du PC. C’est dans ce dossier que les applications peuvent écrire leurs données temporaires sans avoir à se préoccuper de les effacer.
/var/tmp, par contre, n’est pas effacé au redémarrage. Les applications peuvent donc y écrire des données qui y perdureront d’un reboot à l’autre. Revers de la médaille, ces applications sont maintenant responsables de l’effacement de ces fichiers temporaires quand ils ne seront plus nécessaires.

Réactiver le compte root sous Ubuntu.

Vous savez que sous Ubuntu, la méthode normale pour obtenir des droits d’administration est d’utiliser sudo. Si vous voulez utiliser le vrai mot de passe root à l’instar de beaucoup d’autres distributions, il vous faudra taper la commande suivante:

$ sudo passwd root

Ensuite, éditez le fichiers /etc/sudoers, trouvez la ligne débutant par Defaults et remplacez-la par:

Defaults	env_reset,rootpw

Désactiver le compte root sous Debian.

C’est le pendant du petit article ci-dessus. Vous êtes sous Debian mais vous avez envie de retrouver la facilité d’obtention de droits d’administration que vous appréciez tant sous Ubuntu. D’abord, installez sudo si ce n’est pas déjà fait puis modifiez le fichier /etc/sudoers de façon à ce qu’il ressemble à celui-ci:

# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#

Defaults	env_reset

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root	ALL=(ALL) ALL

# Allow members of group sudo to execute any command
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Vous devez maintenant vous ajouter au groupe admin:

# adduser votre_login admin

Dernière chose à faire, désactiver le compte root:

# passwd -l root

Voilà, votre Debian fonctionne maintenant comme une Ubuntu pour ce qui est de l’obtention des droits d’administration.

Permettre à vos scripts d’utiliser les notifications.

Si vous écrivez des scripts pour automatiser certaines choses, voici comment utiliser les notifications propres à Ubuntu. Il faut en premier lieu installer le paquet libnotify-bin:

$ sudo aptitude install libnotify-bin

Vous pouvez maintenant utiliser la commande notify-send pour afficher des notifications de cette manière:

$ notify-send -i /usr/share/icons/gnome/48x48/emotes/face-glasses.png "Exemple de notification"

Voir la page de manuel de notify-send pour plus de possibilités.

Obtenir un UUID.

UUID veut dire Universal Unique IDentifier. Comme leur nom l’indique, ces identificateurs sont uniques. Ubuntu les utilise, par exemple, pour différencier les partitions dans le fichier /etc/fstab. Ils ont une forme semblable à celle-ci et sont donc facilement reconnaissables:

c9ab50c2-87cb-402a-87e9-c4655f6c6488

Si, pour une raison ou une autre, vous avez besoin d’en générer pour vos scripts ou vos applications, voici deux commandes:

$ cat /proc/sys/kernel/random/boot_id

Cette première commande vous donne un UUID qui change à chaque démarrage de votre PC et valide tant que votre PC n’est pas rebooté.

 
$ cat /proc/sys/kernel/random/uuid : A random ID

Cette commande-ci est probablement plus intéressante dans le sens qu’elle génère un UUID différent et de façon aléatoire à chaque fois qu’elle est invoquée.

Afficher la taille d’un répertoire en octets.

$ du -sb /mon/path | awk '{print $1}'

Faites parler votre PC.

Je ne vois pas vraiment l’utilité de cette commande mais au moins, c’est amusant:

$ echo "Ubuntu est une distribution formidable" | espeak -v fr

N’oubliez pas d’aller voir dans la page de manuel de espeak les différentes possibilités de cette application.

Afficher l’heure de démarrage d’une application.

$ ps -eo start,pid,cmd

Ceci affichera l’heure de démarrage, le pid du processus et la commande qui l’a lancé.

Connecter un projecteur ou un écran externe

Il peut arriver que vous ayez besoin de connecter votre PC portable à un projecteur ou à un écran externe.
Nous allons examiner le cas de la connexion via la sortie VGA uniquement parce que je n’ai la possibilité de le faire que sur un projecteur et un écran doté d’une entrée VGA.

Pour obtenir la liste des possibilités offertes par la carte graphique, on peut utiliser la commande xrandr:

$ xrandr
Screen 0: minimum 320 x 200, current 1680 x 1050, maximum 8192 x 8192
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1680x1050      60.0*+   60.0  
   1600x1024      60.2  
   1400x1050      60.0     60.0  
   1280x1024      59.9     60.0  
   1440x900       59.9     59.9  
   1280x960       60.0     59.9  
   1280x854       59.9  
   1360x768       59.8  
   1280x800       59.8  
   1152x864       60.0  
   1280x720       59.9  
   1152x768       59.8  
   1024x768       60.0     59.9  
   800x600        60.3     59.9  
   848x480        59.7  
   720x480        59.7  
   640x480        59.9     59.4  
DVI-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)

On peut voir que la carte graphique possède une sortie VGA (VGA-0) sur laquelle rien n’est connecté (disconnected). LVDS est l’écran LCD du portable. Il est dit connecté et xrandr liste les résolutions acceptées par l’écran ainsi que les fréquences de rafraîchissements nécessaires. Il y a aussi une sortie DVI et HDMI sur lesquelles rien n’est connecté.

Je connecte maintenant un écran ou un projecteur sur la prise VGA. Par défaut, il ne se passe rien, écran noir, lorsqu’on connecte l’écran ou le projecteur au portable. Mais voyons ce que raconte maintenant xrandr:

$ xrandr
Screen 0: minimum 320 x 200, current 2960 x 1050, maximum 8192 x 8192
VGA-0 connected 1280x1024+1680+0 (normal left inverted right x axis y axis) 338mm x 271mm
   1280x1024      75.0*+   60.0  
   1024x768       75.1     70.1     60.0  
   800x600        72.2     75.0     60.3  
   640x480        72.8     75.0     60.0  
   720x400        70.1  
LVDS connected 1680x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1680x1050      60.0*+   60.0  
   1600x1024      60.2  
   1400x1050      60.0     60.0  
   1280x1024      59.9     60.0  
   1440x900       59.9     59.9  
   1280x960       60.0     59.9  
   1280x854       59.9  
   1360x768       59.8  
   1280x800       59.8  
   1152x864       60.0  
   1280x720       59.9  
   1152x768       59.8  
   1024x768       60.0     59.9  
   800x600        60.3     59.9  
   848x480        59.7  
   720x480        59.7  
   640x480        59.9     59.4  
DVI-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)

La sortie VGA-0 est indiquée maintenant comme connectée. Les différentes résolutions et fréquences de rafraîchissement sont bien listées. On retrouve bien sûr toujours l’écran par défaut du portable (LVDS).

Pour utiliser l’écran externe, je vais utiliser toujours la commande xrandr pour spécifier la résolution que je désire :

$ xrandr --output VGA-0 --mode 1280x1024

L’écran s’allume et je peux faire passer la souris de l’écran du portable vers l’écran externe. Les deux écrans sont côte à côte. Je peux faire passer une fenêtre d’un écran à l’autre sans problème.

Pour éteindre l’écran:

$ xrandr --output VGA-0 --off

Si je rallume l’écran:

$ xrandr –output VGA-0 –mode 1280×1024

L’écran externe devient une copie de celui de mon PC portable. Je ne peux plus passer de l’un à l’autre. La partie droite de l’écran manque puisque celui de mon laptop est plus large que l’écran externe.

Evidemment, si on ne peut pas prédire ou retrouver l’un des deux états, cela n’aurait pas grand intérêt. Heureusement, la commande xrandr nous permet de choisir le mode que nous désirons; soit les deux écrans côte à côte soit le second étant une copie du premier.
Pour qu’ils soient les mêmes:

$ xrandr --output VGA-0 --same-as LVDS

Pour que l’écran externe soit à la droite de l’écran du laptop:

$ xrandr --output VGA-0 --right-of LVDS

Dans ce dernier cas, si vous voulez que l’écran soit à gauche plutôt qu’à droite, utilisez –left-of à la place de –right-of. Vous pouvez même placer l’écran externe au dessus ou en dessous de l’écran par défaut en utilisant les switches –above et –below.

Python 3 Object Oriented Programming

Python 3 Object Oriented Programming
J’ai toujours été attiré par la programmation objet et après avoir lu pas mal de livres sur le C++, j’ai été attiré par le livre Python 3 Object Oriented Programming écrit par Dusty Phillips. Pour une fois, il ne s’agit pas de C++ mais de Python.
Ce livre est édité par Packt Publishing qui dispose d’un département orienté open source. Packt Publishing reverse, dans ce cadre, une partie du prix du livre que vous payé au projet open source dont parle le livre. Autrement dit, quand vous achetez un livre dans cette collection, vous aidez le logiciel libre.

Voici la table des matières du livre. Ah oui, j’oubliais de vous dire que ce livre est évidemment en anglais mais ce n’est pas vraiment une surprise. Peu de bons livres techniques existent en français.

  • Chapter 1: Object-oriented Design
    Une introduction à ce qu’est la progammation objet et aux relations entre les objets. L’auteur manifestement aime les diagrammes UML et nous y initie au cours de ce chapitre.
  • Chapter 2: Objects in Python
    Initiation aux classes mais aussi au modules et packages python.
  • Chapter 3: When Objects are Alike
    Héritage, héritage multiple et polymorphisme.
  • Chapter 4: Expecting the Unexpected
    Les exceptions et les différences qu’il peut y avoir avec d’autres langages comm le C++ dans l’utilisation de celles-ci.
  • Chapter 5: When to Use Object-oriented Programming
    Dans quels cas utiliser la programmation objet; quand utiliser l’héritage ou la composition.
  • Chapter 6: Python Data Structures
    Tuples, lists, dict, setsrappels et comment étendre leurs propriétés.
  • Chapter 7: Python Object-oriented Shortcuts
    List comprehension, generator, nombre d’arguments variables.
  • Chapter 8: Python Design Patterns I
    Les différents pattern appliqués à Python.
  • Chapter 9: Python Design Patterns II
    Suite du chapitre précédent.
  • Chapter 10: Files and Strings
    Fichiers et chaînes de caractères.
  • Chapter 11: Testing Object-oriented Programs
    Un important chapitre sur la création de programme de test au moyen des modules unittest ou py.test.
  • Chapter 12: Common Python 3 Libraries
    Présentation de quelques librairies python intéressantes du point de vue de l’auteur: Sqlite3, SQLAlchemy, tkinter, PyQt, xml, cherrypy.

Est-ce un livre recommandable ? Oui, certainement. Surtout si vous êtes débutant. La programmation objet y est décrite de façon claire avec des exemples bien choisis. Le livre décrit aussi un certain nombre de patterns de base même si c’est survolé de manière rapide pour certains. Il faut bien dire, à la décharge de l’auteur, que les patterns mériteraient un livre à eux seuls. Ce livre est donc une bonne introduction à la programmation objet avec Python.
Notez aussi que les exemples du livre sont en Python 3 alors que c’est Python 2.x qui est installé par défaut dans Ubuntu. Mais les différences entre les deux versions de Python ne sont pas si importantes que vous ne sachiez adapter les exemples à votre version de Python. Ceci dit, il vous est loisible d’installer Python 3 sur votre PC. Python 3 cohabite très bien avec Python 2.x.

Unity vs Gnome-Shell

Il y a quelques jours, Mark Shuttelworth a annoncé lors du Ubuntu Developper Summit que, dans la future version 11.04 d’Ubuntu, le bureau Gnome serait remplacé par Unity. Unity est le bureau par défaut de la version Netbook d’Ubuntu.
Depuis, c’est l’effervescence dans les blogs et les forums. Certains critiquent cette décision, d’autres tentent de la justifier.

Pourquoi tant de réactions ?

Pour comprendre pourquoi les réactions furent si violentes, il faut savoir que la prochaine version 3 de Gnome qui sera incluse dans Ubuntu 11.04 sera composée de Gnome-Shell qui est en gros le nouveau bureau Gnome. Dans cette version de Gnome, le gestionnaire de fenêtres Metacity est remplacé par Mutter (contraction de Metacity et Clutter) basé sur OpenGL et qui permet d’avoir un bureau qui tient compte des possibilités graphiques des PC récents comme la 3D par exemple.

Unity, jusqu’à il y a peu, utilisait aussi Mutter mais Canonical a trouvé qu’il y avait trop de problèmes de compatibilité hardware avec Mutter et a donc modifié Unity pour que celui-ci utilise Compiz plutôt que Mutter, considérant Compiz plus stable du point de vue hardware. Si on ajoute à cela le fait que certaines applications typiquement Ubuntu comme les application-indicators et NotifyOSD sont incompatibles avec Gnome-Shell, on comprend mieux pourquoi Canonical a fait ce choix.

Nous voilà donc avec Gnome3 et deux versions (très) différentes et non-compatibles du bureau, Unity et Gnome-Shell. D’où réactions parfois très virulentes de la part de développeurs Gnome qui critiquent le fait que Canonical veuille faire cavalier seul.

Quelles sont les conséquences et quels sont les choix ?

On va donc se retrouver avec deux bureaux Gnome différents. Unity utilisé par Ubuntu et Gnome-Shell utilisé par tous les autres. Il faut bien avouer que c’est un peu embêtant mais c’est aussi ça la liberté sous Linux. Néanmoins, lorsque vous direz je suis sous Linux, il faudra en plus de donner la distribution et le le gestionnaire de bureau (Gnome ou KDE) spécifier sous Gnome si on utilise Unity ou Gnome-Shell. Je ne suis pas sûr que Linux profite vraiment de cette disparité.

Mais comme toujours avec Linux, même si Unity est livré par défaut avec Ubuntu, l’utilisateur pourra toujours désinstaller Unity et installer Gnome-Shell s’il le veut. Je ne suis, par contre, pas sûr qu’un utilisateur de Fedora, par exemple, pourra tout aussi facilemment installer Unity s’il le veut. Une chose est sûre, le CD d’installation d’Ubuntu ne proposera pas le choix d’Unity ou Gnome-Shell. Ce sera Unity un point c’est tout ! Sauf si votre hardware ne supporte pas Unity; dans ce cas, c’est le « vieux » bureau Gnome 2.x qui sera installé par défaut.

Tester Unity et Gnome-Shell

Si vous voulez vous faire une idée de ce qu’est Unity, je vous invite à télécharger la version d’Ubuntu 10.10 pour Netbook. C’est un LiveCD; vous pouvez donc le tester sans risque.
Si vous me demandez mon avis, je vous direz que je n’aime pas beaucoup. Ce n’est pas adapté à des résolutions d’écran élevées mais à des Netbook. Le dock de gauche est affreux avec des icônes de styles différents. L’accès à certaines fonctionnalités est difficile. Impossible d’appliquer un thème. Bref, il y a encore beaucoup de travail à faire pour arriver à quelque chose d’utilisable et d’agréable et qui ne soit pas affreux au point de vue design. Et il ne reste que 5 mois avant la sortie d’Ubuntu 11.04…

Pour Gnome-Shell, vous pouvez le tester facilement puisqu’il est dans les dépôts. Il suffit de l’installer:

$ sudo aptitude install gnome-shell
$ gnome-shell --replace

Pour sortir de Gnome-Shell et revenir à votre bureau classique, il suffit d’arrêter le programme par un CTRL+C.
Personnelement, je le trouve plus réussi graphiquement que Unity. Par contre, là aussi, il y a encore pas mal de boulot pour le rendre réellement utilisable.

Conclusion

Ma conclusion est qu’Ubuntu a pris sans doute une décision trop hâtive. Ni Unity ni Gnome-Shell ne sont prêts. Il aurait fallu attendre. De plus, je suis un peu inquiet de la façon dont Canonical voit les choses. Je trouve que Canonical prend un peu trop de décisions à la place de l’utilisateur. Ubuntu est peut-être la distribution numéro un mais ça ne lui donne pas le droit d’imposer son point de vue. Ubuntu avance envers et contre tout (tous) même si ça doit être au détriment des autres. Dans ce cas-ci au détriment de Gnome. Il y a un petit côté Microsoft ou Apple qui me déplait. On jugera dans cinq mois.

Problèmes avec carte wifi Intel

Si votre PC portable est équipé d’une carte Intel Ultimate N wifi Link 5300, vous avez peut-être comme moi quelques petits soucis de connexion de temps à autres.
Il arrive qu’au démarrage d’Ubuntu, aucun réseau sans-fil ne soit détecté par la carte ou que, en fonctionnement, la connexion s’interrompe sans qu’il soit possible de se reconnecter. Quand cela arrivait, je redémarrais le PC et, en général, tout rentrait dans l’ordre. Seulement, c’est tout de même gênant de devoir rebooter. Il semble pourtant y avoir une méthode plus simple qui a l’air de fonctionner dans mon cas; décharger puis recharger le module qui gère le wifi:

$ sudo modprobe -r iwlagn
$ sudo modprobe iwlagn

Apparemment, d’après les messages dans les forums, d’autres cartes Intel ont le même genre de problèmes. La solution de décharger et recharger le driver marche peut-être aussi pour ces autres cartes. A essayer !