Activer l’espace insécable sous Xubuntu

J’avais eu un problème similaire il y a quelques années lorsque je travaillais avec Code::Blocks. Les espaces n’étaient pas pris en considération. La cause est que seuls les espaces insécables (non-breaking spaces) sont pris en compte. Il existe plusieurs manières de remédier à ce problème :

  • La première est la plus contraignante mais la plus pérenne. Elle consiste à insérer les espaces à l’aide des touches Ctrl + Alt + Espace
  • La deuxième est celle qui avait fonctionné sur ma Ubuntu quelques années auparavant. Elle consiste à aller dans les options Système -> Préférence -> Clavier -> Onglet Agencement -> Autres Options -> Using space key to input non-breakable space character -> Space key outputs usual space at any level
  • Une autre solution que je n’ai jamais testée moi même mais que j’ai trouvé sur internet consiste à modifier son fichier /etc/X11/xorg.conf et à commenter la ligne  » Option « XkbVariant » « oss »  » puis à redémarrer le serveur X.
  • Enfin, celle qui m’a permis de résoudre mon problème sous Xubuntu a été de me rendre dans Paramètres -> Gestionnaire de paramètres -> Clavier -> Onlget Disposition -> Décocher utiliser les paramètres par défaut -> Modifier la disposition du clavier -> Français (variante obsolète)

Toutes ces techniques permettent d’activer les espaces insécables à la place des espaces normaux mais ne fonctionnent pas forcément toutes en fonction de la distribution utilisée.

 

Inclure du code dans des articles WordPress

Il m’arrive de temps en temps d’illustrer certains articles avec des portions de code. Cependant, sur WordPress, la disposition du texte casse toutes les indentations et, de plus, aucune coloration syntaxique n’est possible automatiquement de base.

J’ai ainsi testé quelques plugins dont WP-syntax avec WP-syntax Button pour simplifier l’insertion mais ils ne m’ont pas convenus car ils ne sont pas assez paramétrables ou efficaces.

Mon choix a fini par se porter sur WP SyntaxHighlighter qui correspond parfaitement à mes critères, embarque déjà le bouton d’importation rendant l’édition facile et qui est presque entièrement configurable.

Utilisation de la balise video en HTML5

Afin de transmettre une vidéo à un ami, j’ai eu à mettre en place un petit site vite fait pour qu’il puisse la lire comme si elle figurait sur youtube mais tout en gardant le contrôle de mes données. Ainsi, j’ai choisi d’utiliser la balise <video> disponible avec HTML5.

Je ne reviendrais pas sur la possibilité de télécharger la vidéo avec cette balise puisqu’il n’y a aucune sécurité, le but est juste de mettre en place un streaming simple.

Il faut bien penser à mettre plusieurs formats de vidéo pour assurer la compatibilité avec plusieurs navigateurs (j’ai mis mp4 (pour Google Chrome) et webm (pour Mozilla Firefox) pour ma part). Pour Firefox, il est nécessaire de rajouter les lignes : :

AddType video/mp4    .mp4
AddType video/webm .webm

dans le fichier .htaccess pour qu’il reconnaisse les types MIME et qu’il assure alors la lecture des vidéos.

Le code que j’ai utilisé pour insérer mes vidéos dans la page a donc été :

<video width="<taille>" controls> This Web browser is to old to display the video.
        <source src="<nom_de_la_video>.mp4" />
        <source src="<nom_de_la_video>.webm" />
</video>

Configuration de subversion et lancement automatique

Depuis quelques temps, j’ai pris l’habitude de gérer mes projets de développement à l’aide d’un gestionnaire de versions, en l’occurrence, subversion. Je n’ai encore jamais eu l’occasion de tester git donc ce choix est simplement basé sur mes préférences actuelles et elles peuvent être amenées à changer. J’utilise subversion car il est libre, facile à mettre en place, agréable à utiliser et surtout, je sais m’en servir.

On peut installer subversion assez simplement soit en passant par les dépôts de paquets des différentes distributions, soit en le compilant soit même (ayant eu besoin de la version 1.7.4 récemment et vu que la version disponible sous xubuntu était la 1.6.17, j’ai été amené à le faire sur mon poste client et cela se fait sans encombre) en installant préalablement ses dépendances (pour ma part zlib, apr et sqlite).

La première chose à faire lorsque subversion est installé est de créer le dépôt qui accueillera le projet. Pour ma part, j’ai créé un dossier /home/SVN dans lequel je créé chacun de mes dépôts à l’aide de la commande :

svnadmin create <nom_du_depot>

Nous allons maintenant configurer le dépôt pour rajouter des utilisateurs et gérer les droits sur les différents dépôts. Pour ce faire, nous allons nous rendre dans le dossier du dépôt, puis dans conf. Dans ce dossier, il y a 3 fichiers qui sont authz, passwd et svnserve.conf. Nous allons tout d’abord modifier le fichier passwd pour rajouter à la fin de nouveaux utilisateurs en suivant ce format :

login = motdepasse

Une fois les utilisateurs et leurs mots de passes ajoutés, nous allons modifier le fichier svnserve.conf. A part lorsque je ne souhaite pas que qui que ce soit puisse lire mon code source si il n’est pas authentifié, je dé-commente les lignes

anon-access = read
auth-access = write
password-db = passwd

Ceci a pour effet d’autoriser la lecture lors d’un accès anonyme et l’écriture pour les utilisateurs authentifiés dont les identifiants sont inscrits dans passwd.

Afin de ne pas laisser ces mots de passes qui sont en clair à la vue de tout le monde, je met les droits des 3 fichiers à 0600.

Il ne reste plus qu’à lancer le serveur à l’aide de la commande suivante :

svnserve -d -r <dossier_contenant_les_depots>

Ici, <dossier_contenant_les_depots> est /home/SVN/.

L’un des problèmes de subversion est que cette action est à répéter à chaque démarrage de la machine. Afin de pallier à ce problème, on peut créer un script de lancement et l’exécuter au démarrage de la machine. Voici le script que j’ai créé (ATTENTION : ce script est adapté à la position de mon dossier subversion mais est à adapter en fonction de la localisation de ce dernier) :

#!/bin/sh
#
### BEGIN INIT INFO
# Provides: svnserve
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start and stop svnserve daemon at boot time
# Description: Controls the main subversion server \svnserve\ with /home/svn
### END INIT INFO

ECHO_BIN=/bin/echo

usage()
{
	$ECHO_BIN "Usage : $0 (stop|start|restart)"
}

SVN_stop()
{
	/sbin/start-stop-daemon --stop --exec /usr/local/bin/svnserve
	$ECHO_BIN "[+] Server stopped"
}

SVN_start()
{
	/usr/local/bin/svnserve -d -r /home/svn
	$ECHO_BIN "[+] Server launched on /home/svn"
}

if [ -x /usr/local/bin/svnserve ]
then
	if [ -z $1 ]
	then
		usage
	else
		case $1 in
			stop)
				SVN_stop
			;;
			start)
				SVN_start
			;;
			restart)
				SVN_stop
				SVN_start
			;;
			*)
				usage
				exit 1
		esac
	fi
else
	$ECHO_BIN "Svnserve not installed."
	exit 1
fi

exit 0

Il faut placer ce script dans /etc/init.d/ et bien penser à lui donner les droits 0755. Une fois à sa place, il ne reste plus qu’à l’activer au lancement de la machine en l’ajoutant aux différents /etc/rcx.d/ à l’aide la commande :

update-rc.d <nom du script> defaults

On peut vérifier à ce moment, après un redémarrage de la machine à l’aide de la commande

ps -e | grep svnserve

que tout est fonctionnel. On pourra alors accéder aux dépots en se connectant à :

svn://<nom_de_domaine_ou_IP>/<nom_du_depot>

Sélection rectangulaire NetBeans

Me mettant au développement Web pour différents projets dont une interface plus conviviale pour http://www.peanut-soft.com/, je suis tombé sur une option que je trouve fantastique et qui est la sélection verticale. Voulant l’avoir sur mon IDE favoris, je me suis lancé à la recherche d’un plugin me permettant de l’activer.

Et bien la bonne nouvelle est que cette option est nativement intégrée à NetBeans depuis sa version 7.1. Donc à part de rares cas où l’emploi de la 6.9 est encore utile, une simple mise à jour suffit à posséder la sélection rectangulaire.

Pour l’utiliser, il suffit de cliquer sur l’icône correspondante au dessus de la zone de texte ou d’utiliser le raccourcis Ctrl + Shift + R.

ACPI, récupération des codes touche

Dans mon article précédent, traitant de la création d’un .deb, je parle du script que j’avais créé nommé Asus KBBL Control. Le but était de l’utiliser à travers les raccourcis clavier gérés par l’acpi. Pour savoir quel code correspond à une touche pressée (ou à une combinaison de touches) on utilise la commande suivante :

acpi_listen

Il ne faut pas utiliser la dernière partie du code retourné qui ne correspond pas au code de la touche. Cependant, on peut utiliser le reste pour identifier la touche lors de la création de son event.

Asus Keyboard Backlight Control et paquet .deb

Mon ordinateur portable est un Asus G73J. Il est muni d’un rétro-éclairage clavier des plus pratiques. Cependant, les raccourcis de contrôle au clavier ne sont pas fonctionnels sur la plupart des distributions Linux. J’ai donc créé un script qui me permet, à l’aide d’acpi, d’activer ces raccourcis et de contrôler l’intensité du rétro-éclairage et que j’ai nommé Asus KBBL Control (Asus KeyBoard BackLight Control). [EDIT] Il n’est actuellement pas disponible mais reviendra sous peu [/EDIT]

Pour l’installer et le désinstaller plus facilement, j’ai décidé de créer un paquet .deb. Après un peu de recherche, ceci n’est pas difficile et facilite grandement la tâche de maintient d’applications.

Pour ce faire, il suffit de créer un dossier (le nom importe peu). A l’intérieur de ce dossier, il faut créer un paquet nommé DEBIAN. A l’intérieur de ce dossier, on peut mettre plusieurs fichiers dont :

  • preinst : script exécuté avant l’installation
  • postinst : script exécuté après l’installation
  • prerm : script exécuté avant la suppression
  • postrm : script exécuté après la suppression
  • control : Détails du paquet

Un de ces fichiers est obligatoire cependant, c’est le fichier control. C’est à partir de lui que le paquet final est construit (notamment le nom). Pour plus de détail sur sa construction, il suffit de regarder la manpage :

man deb-control

Cette page étant largement détaillée, je n’entrerais pas dans les détails.

Le logiciel que l’on souhaite empaqueter se met à côté du dossier DEBIAN. On va le placer dans le dossier dans lequel il sera installé en considérant ce dossier comme la racine du disque dur. Ainsi, si mon programme doit être installé dans /etc/acpi, je vais créer à côté de DEBIAN un dossier etc dans lequel je créerais un dossier acpi et dans lequel enfin je mettrais mon programme à installer.

Une fois cette petite cuisine effectuée, il ne reste plus qu’à compiler le paquet. Pour cela, on se place un dossier au dessus du dossier qui contient DEBIAN et le logiciel et on tapera la commande :

dpkg-deb --build <NOM DU DOSSIER>

On a un magnifique fichier .deb qui se créé juste à côté de notre dossier source et qu’il ne restera plus qu’à installer avec un :

dpkg -i <NOM DU PAQUET>