Archive for the ‘GNU/Linux’ Category
Le ppa de empathy:
https://launchpad.net/~telepathy/+archive/ppa
- empathy2.27 et libempathy27:
- empathy2.27 et libempathy30:
La méthode over http sur le protocole msn disparaît à nouveau, et l'ajout de contact sur un compte msn est impossible car buggé.
Disparu aussi le très chouette
"contacts on map"... :-(
Et les chat rooms sur talk.google.com ne sont plus supportées.
=> Le package empathy2.28 ne compile pas pour jaunty, il est cependant disponible pour karmic, autant attendre karmic donc!
Pour le moment c'est une Ubuntu 8.04 LTS Hardy Heron.
Configuration système:
Desktop background: #225A7C
Shortcuts configurés dans
gconf-editor, dans
apps/metacity/global_keybindings et
apps/metacity/keybinding_commands:
- mod4+hyper+e: nautilus.
- mod4+hyper+s: java -jar /home/nicolas/apps/screenshooter-0.9.jar.
- mod4+hyper+c: gnome-terminal.
- mod4+hyper+w: rhythmbox-client --next.
- mod4+hyper+x: rhythmbox-client --previous.
Programme chargé en ouverture de session:
- Gkrellm.
- Liferea.
- gcaldeamon.
- Beagle Search Daemon.
- Beagle Search Tool.
Tracker et Tracker Applet sont désactivés.
Voir comment configurer
les applications par défauts par
MIME types sous GNOME.
Metacity est
remplacé par OpenBox (mais du coup les shortcuts de GNOME ne fonctionnent pas, il faut les ajouter dans ~/config/openbox/rc.xml).

Hier j'ai dû installer une FedoraCore sur ma machine perso, juste pour vérifier que mes problèmes avec MonetDB ne viennent pas du système Ubuntu (ça m'aurait étonné, mais un développeur m'a assuré que mes problèmes n'avait pas été rencontrés sur une machine Fedora). Et ben que neni, MonetDB en XRPC sur une machine GNU/Linux n'aime pas du tout du tout quand les demandes d'indexations se font très nombreuses... comme sous ma ubuntu 8.04.
Et passer de Ubuntu à FedoraCore10, ça fait un choc! SELinux est activé avec un nombre incroyable (incroyablement débile je trouve, pour une distrib Desktop), de restrictions... Bref, FedoraCore est plutôt déplaisante au premier abord...
Il existe
displayconfig-gtk, qui permet de configurer le display courant, mais l'application ne supporte que l'extension de bureau et le mirror (i.e. le clone).
Ces tests ont été effectués sur une machine avec une NVIDIA GeForce 7 Series, et le driver NVIDIA 169.12 du paquet Ubuntu
nvidia-glx-new.
*-display
description: VGA compatible controller
product: G72M [Quadro NVS 110M/GeForce Go 7300]
vendor: nVidia Corporation
physical id: 0
bus info: pci@0000:01:00.0
version: a1
width: 64 bits
clock: 33MHz
capabilities: vga_controller bus_master cap_list
configuration: driver=nvidia latency=0 module=nvidia
Pour obtenir les informations systèmes sur GNU/Linux, il existe
sysinfo qui est très pratique, (sinon
lshw).
Pour installer un driver NVIDIA, il existe le très pratique
envyng (dispo dans les dépôts Ubuntu).
En réalité trois approches sont possibles:
- TwinView ou Xinerama: extension de bureau, soit avec deux écran virtuels, soit un écran virtuel réparti sur les deux écrans physiques.
- separate-x-screen: un seul server X mais deux xscreen panels sur le server, c'est ce qu'on pourrais appeler le vrai multi-head display sous GNU/Linux, i.e. un seul display, plusieurs xscreens, en l'occurrence dans mon cas, j'ai le display :0.0 et :0.1.
Un display peut être décrit "as a workstation consisting of a keyboard a pointing device (such as a mouse) and one or more screens", et un xscreen est la représentation d'un écran physique.
- le mode clone.
Le mode TwinView m'embête beaucoup, soit à cause de la résolution d'écran, à cause des notifications qui se font pas sur le bon écran, ou bien le fullscreen qui se fait sur l'écran principal uniquement... Le problème avec le mode TwinView est qu'il faut paramétrer un écran comme "écran principal", c'est ainsi que le fullscreen ne se fait que sur l'"écran principal", même si l'application est affichée sur l'autre écran en réalité!
Je me suis donc configuré en separate-x-screen, et j'essaye de déplacer des fenêtres d'un xscreen à un autre (je me place dans un multi-head display) (et pas forcément déplacer des applications d'un display à un autre, i.e. un server X à un autre, mais juste d'un xscreen à un autre sur le même serveur X).
Deux programmes peuvent faire cela:
- xmove.
- teleport: avec cet outil les applications lancées sur le serveur X doivent supporter le déplacement inter-display, et en réalité ce n'est le cas de quasi-aucune application X
Pour les recherches sur le domaine WordNet
KThesaurus utilise le processus
wn, ainsi il suffit de placer le chemin vers sa propre compilation de WordNet dans la variable d'environnement PATH pour que KThesaurus l'utilise (plutôt que celle du système ou de la distribution utilisée).
Pour le
configure:
./configure prefix=/home/nicolas/WordNet/install --with-tcl=/usr/lib/tcl8.5/ --with-tk=/usr/lib/tk8.5
Un
billet bien pratique.
Pour régler la précision de
bc, ajouter de nouvelles fonctions dans un fichier de configuration,
~/.bc par exemple, il faut déclarer la variable shell:
Pour configurer une application par défaut pour un type de fichier
T (par exemple
PDF) sous GNOME, on peut utiliser le menu
properties du menu contextuel d'un fichier de type
T, l'onglet
open with permet de sélectionner l'application par défaut.
Mais cette façon de faire ne suffit pas, cela convient pour l'ouverture depuis nautilus ou le bureau GNOME, mais de nombreuses applications (Beagle, Eclipse entre autres) utilisent les fichiers de configuration
defaults.list se trouvant dans différentes locations, tel que:
-
~/.local/share/applications/defaults.list
/etc/gnome/defaults.list
/usr/share/applications/defaults.list
/usr/local/share/applications/defaults.list
Le dernier ayant précédence sur les autres ! voir ce
forum.
Très pratique pour, par exemple, faire en sorte que quand vous recherchez un article dans votre biblio avec
Beagle, et que vous désirez visionner un
PDF présent dans les résultats de votre recherche, ce
PDF soit ouvert avec Acrobat Reader (et non avec Evince, qui sait certes ouvrir plus de types de fichier que Acrobat, notamment les PS, mais propose beaucoup moins de fonctionnalités pour les
PDF). Ou par exemple aussi, ouvrir un
PDF depuis Eclipse également avec Acrobat Reader, etc.
NOTE: Sous Ubuntu Jaunty Jackalope, le fichier .gnomerc n'est pas lu ou utilisé, ainsi quoiqu'il contienne, openbox n'est pas utilisé comme gestionnaire de fenêtre à la place de metacity. Une solution est d'ajouter openbox --replace aux Startup Applications de Gnome. Effet de bord agréable: le chargement du desktop en est plus rapide (rapport à Gnome/openbox sous Intrepid), j'imagine que c'est parce qu'il charge openbox après avoir chargé Gnome.
Update 2009-08-18: si le shortcut pointe sur nautilus path avec path==~ (le home de l'utilisateur) par exemple, cela fonctionne parfaitement, en fait c'est uniquement nautilus sans argument qui ne fonctionne pas en shortcut!
NOTE: A partir de Ubuntu 8.10 Interpid Ibex, impossible de positionner un shortkey pour démarrer nautilus (par exemple un W-E pour démarrer nautilus, c'est très pratique, voir indispensable...). Je ne sais pas pourquoi... mais j'ai un indice avec l'erreur suivante: gnome_client_set_program: assertion 'program != NULL' failed.
Pour remplacer Metacity par OpenBox, éditer
.gnomerc et y ajouter:
export WINDOW_MANAGER="/usr/bin/openbox"
La configuration de OpenBox se trouve dans
~/.config/openbox/rc.xml (fichier très lisible, se passe d'explications), voici mon fichier
rc.xml (version 2:
rc.xml) (version 3:
rc.xml) (version 4 / 09.11.06:
rc.xml) (version 5 / 2009.12.23:
rc.xml) (version 6 / 2010.03.03:
rc.xml).
Les themes pour OpenBox se situe dans
~/.themes.
NOTES:
- La gestion du system beep semble délégué au Window Manager, ainsi le désactiver depuis le panneau de préférence son de GNOME ne change rien puisque nous n'avons plus GNOME/Metacity mais GNOME/OpenBox. Comme de toute façon, c'est assez embêtant (pour avoir fait des beeps très sonore en pleine conf', je sais de quoi je parle >_<), le mieux est de désactiver carrèment le module. Ajouter dans
/etc/modprobe.d/blacklist:
- Pour le key-binding, le lanceur de programme de GNOME est:
gnome-panel-control --run-dialog
<alt> + Mouse Right pour redimensionner une fenêtre (avec Metacity, c'est <alt> + Mouse Middle).
Mouse Middle sur le bouton Toogle Maximized d'une fenêtre pour maximiser verticalement, Mouse Right pour maximiser horizontalement.
Mouse Middle sur le background pour la liste (multi-bureau) des applications.
openbox --reconfigure pour reloader la configuration d'OpenBox.
- Certaines applications utilise le
<A>+MouseClick (la touche ALT), dans la configuration par défaut d'OpenBox, cela change de Virtual Desktop. Une solution est de changer toutes les interactions <A>+MouseClick par <W>+MouseClick (la touche WIN).
REM:
- il y a un comportement de Metacity que j'aime bien: faire un drag sur le titre d'une fenêtre maximisée, provoque une minimisation + un déplacement. J'ai essayé de configurer OpenBox pour qu'il le fasse également, avec l'action
UnmaximizeFull puis Move dans le contexte Titlebar.
Mais cela ne fonctionne pas, la fenêtre est bien minimisée, mais en utilisant le point inférieur droit de la fenêtre comme position fixe, la fenêtre se trouve tout en bas et le pointeur de la souris, lui, ne bouge pas...
LIENS:
Mémo de l'installation sur mon serveur: Je ne veux pas installer les paquets tomcat-5.5, tomcat5.5-admin et tomcat5.5-webapps présent dans les dépôts Ubuntu. Car avec ces paquets:
- le fichier de configuration du service tomcat est
/etc/default/tomcat.
- les fichiers
server.xml et web.xml se trouvent dans /etc/tomcat, mais le reste des fichiers de configuration sont dans /var/lib/tomcat.
- les webapps sont dans
/var/lib/tomcat/webapps, mais l'application Tomcat se trouve dans /usr/share/tomcat.
- on a un script de gestion du service
/etc/init.d/tomcat.
Cette intégration dans le système peut être intéressante sous certains abords, mais je n'en ai pas l'utilité et puis, c'est surtout pas pratique du tout. Il est beaucoup plus propre d'installer manuellement un Tomcat dans
/home/tomcat, et donc sur la partition
/home du système sous l'utilisateur et le groupe
www-data. Ainsi, ça ne pourri pas
/usr, et de plus les applications Web à déployer peuvent être volumineuses, ou si une application Web écrit des données dans son
webContent (le répertoire où elle est déployée), c'est pas très pro. sans doute, mais c'est pratique. Pour créer un service système pour un Tomcat installé manuellement, il suffit d'écrire un fichier
/etc/init.d/tomcat tel que:
# Tomcat auto-start
#
# description: Auto-starts tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
export JAVA_HOME=/opt/jdk1.6.0_10
case "$1" in
start)
start-stop-daemon --start --chuid www-data:www-data --exec /home/tomcat/apache-tomcat-6.0.16/bin/startup.sh -- -d -r /home/tomcat/apache-tomcat-6.0.16/
;;
stop)
#start-stop-daemon --stop --exec /home/tomcat/apache-tomcat-6.0.16/bin/shutdown.sh
/home/tomcat/apache-tomcat-6.0.16/bin/shutdown.sh
;;
restart)
$0 stop
$0 start
;;
esac
exit 0
Il faut disposer les droits idoines sur le fichier:
chmod 755 /etc/init.d/tomcat
Puis l'ajouter aux scripts systèmes:
ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
L'étape suivante pour une installation qui va bien, est d'utiliser le
connecteur Tomcat jk_connector. Pour Apache, c'est le module mod_jk pour accéder à Tomcat depuis Apache, et ainsi l'abstraire du port 8080 pour accéder aux applications web déployées sous Tomcat. Ce qui en plus d'être plus simple et pratique dans l'écriture des
URL, peut s'avérer nécessaire, par exemple si vous faites un appel à une servlet depuis un script
PHP qui est lui, hébergé sur un autre serveur sur lequel la création d'une socket sur un port autre que 80 est interdit (par exemple, les serveurs de free.fr). Pour mod_jk, installer le paquet libapache2-mod-jk, et éditer le fichier
/etc/apache2/mods-available/jk.load:
LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so
JkLogFile /var/log/apache2/mod_jk.log
JkLogLevel debug
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
JkMount / worker1
JkMount /* worker1
Les JkMount sont les points de montages des applications Web que vous voulez monter. Editer ensuite le fichier
/etc/apache2/workers.properties
:
workers.tomcat_home=/home/tomcat/apache-tomcat-6.0.16
workers.java_home=/opt/jdk1.6.0_10
ps=/
worker.list=worker1
worker.worker1.port=8009
worker.worker1.host=localhost
worker.worker1.type=ajp13
worker.worker1.lbfactor=1
Il ne suffit plus qu'a redémarrer Apache. Cette configuration fonctionne bien, mais n'est pas sensitive aux sous-domaines éventuels de votre configuration d'Apache, ainsi
http://trevize.net/Bouquinoscope et
http://njames.trevize.net/Bouquinoscope pointe vers la même webapp Tomcat. Une solution assez simple est de créer un VirtualHost pour notre Tomcat, par exemple
http://webapps.trevize.net, pour cela éditer le fichier worker.properties:
workers.tomcat_home=/home/tomcat/apache-tomcat-6.0.16
workers.java_home=/opt/jdk1.6.0_10
ps=/
worker.list=worker1
worker.webapps.port=8009
worker.webapps.host=localhost
worker.webapps.type=ajp13
worker.webapps.lbfactor=1
Commentez les points de montage JkMount indiqués précédemment dans
/etc/apache2/mods-available/jk.load. Pour finir, il suffit d'ajouter le VirtualHost en éditant un fichier
/etc/apache2/sites-available/webapps:
<VirtualHost *:80>
ServerAdmin nicolas.james@gmail.com
ServerName webapps.trevize.net
# Send servlet for context /servlets-examples to worker named worker1
JkMount /* worker1
# Send JSPs for context /jsp-examples to worker named worker1
JkMount /*.jsp worker1
</VirtualHost>
Il ne suffit plus qu'a monter le site avec
a2ensite webapps, et redémarrer Apache. Configuré ainsi, Tomcat est accessible uniquement sur
http://webapps.trevize.net. Pour que l'accès aux webapps sur le site soit plus eye-candy, un coup d'
URL-rewriting avec le module
rewrite pourra par exemple faire pointer
http://trevize.net/Bouquinoscope vers
http://webapps.trevize.net/Bouquinoscope.
J'ai expérimenté le problème intéressant des modes headless/headful en Java en codant une application de crawling de GoogleImage.
Mon application crawl les pages de résultats de GoogleImage, télécharge les images proposées dans les résultats pour les stocker en local, et renvoie une page contenant des miniatures des images retrouvées.
Au moment de stocker les images, j'utilise le programme
convert du projet ImageMagick pour les retailler, et JIU, Java Imaging Utilities, pour obtenir leur résolution.
Le projet est une servlet sur une machine distante où X est installé, mais est tomcat est lancé dans une session non X.
JIU semble avoir besoin de la variable DISPLAY, car l'exception suivante est levée:
java.awt.HeadlessException:
No X11 DISPLAY variable was set, but this program performed an operation which requires it.
java.awt.GraphicsEnvironment.checkHeadless(Unknown Source)
java.awt.Window.(Unknown Source)
java.awt.Frame.(Unknown Source)
java.awt.Frame.(Unknown Source)
net.sourceforge.jiu.gui.awt.ToolkitLoader.load(ToolkitLoader.java:88)
net.sourceforge.jiu.gui.awt.ToolkitLoader.loadAsRgb24Image(ToolkitLoader.java:114)
net.trevize.Bouquinoscope.processQuery(Bouquinoscope.java:651)
net.trevize.Bouquinoscope.doPost(Bouquinoscope.java:298)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
D'après
ce forum, c'est un problème rencontré aussi avec JMF, la solution est de préciser la propriété système demandant à Java d'utiliser le mode headless:
ou seulement pour le Toolkit AWT:
awt.toolkit=sun.awt.HeadlessToolkit
mais cela ne peut fonctionner dans mon projet car j'utilise dans mon code la classe ToolkitLoader de JIU qui, apparement, nécessite un mode headful.
Du coup, pour obtenir la résolution j'utilise un
java.awt.Image obtenu par
ImageIO en mode headless.
Pour plus d'info sur les mode headless et headful de Java, voir
ce tutoriel.
- clé formatée en FAT32
- monter l'image ISO de la distribution pour en voir le contenu
- ctrl+h pour voir les fichiers cachés
- recopier l'ensemble de l'ISO sur la clé à l'exception du répertoire isolinux (parait qu'il peut y avoir des erreurs de liens symboliques et qu'il faut ne pas en tenir compte, mais j'en ai pas vu...)
- recopier casper/vmlinuz et casper/initrd.gz à la racine de la clé
- recopier le contenu de isolinux à la racine de la clé
- renommer isolinux.cfg en syslinux.cfg
- éditer syslinux.cfg ligne 5:
LABEL live
menu label ^Start or install Ubuntu
kernel /casper/vmlinuz
append file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.gz quiet splash --
par
LABEL live
menu label ^Start or install Ubuntu
kernel vmlinuz
append file=preseed/ubuntu.seed boot=casper initrd=initrd.gz quiet splash --
- installer syslinux et mtools
-
- avec gparted changer le flag de la partition pour la rendre bootable si nécessaire
source:
http://doc.ubuntu-fr.org/installation/depuis_une_cle_usb
Je dois me pencher un peu plus sur le système de sauvegarde et de restauration que je peux mettre autour de mon site web perso.
Tout d'abord parce que Serendipity m'a lancé une action automatique ce matin, bien dérangeante, il a recrée le .htaccess à la racine de son répertoire d'installation.
Ce fichier est installé par défaut lors de l'installation de Serendipity, et à moins d'une configuration aux petits oignons de Apache, le mieux est de supprimer ce fichier (sinon le weblog est inaccessible,
Internal error).
J'ai commencé à bidouiller mes fichiers parce que je croyais que cela venait d'une modification sur l'url de base d'accès au weblog, que je venais de faire.
Résultat, le constat est celui-ci, il faut que je mette en place une politique de sauvegarde, de synchronisation des fichiers.
Et aussi, une procédure de déploiement de tout le site web, rapide, sans douleurs...
SQLite:
La DB du weblog.
Il me faut un système d'exploration de la base, sous Linux, je n'ai pas trouvé de système qui fonctionne bien, le mieux pour le moment est encore d'utiliser
SQLite Administrator, qui est une appli windows mais fonctionne très bien avec Wine sous Linux.
Cependant, cette appli ne gère pas l'encodage des caractères apparemment, l'unicode n'est pas compris.
(C'est une application Delphi je pense, en tout cas, elle utilise JVCL Jedi Visual Components Library qui est une library pour Delphi et C++, je suis toujours épaté par la qualité des appli codées en Delphi, comme StarUML).
(Cela me fait penser qu'il peut être possible de lancer StarUML sous Linux, se serait une chouette de bonne idée).
Synchronisation:
- rsync
- unison
- fullsync (appli java)
Après quelques tests:
- DIA: pas pratique pour faire des diagrammes UML, (et pas d'alternative aux liens en zigzag! du moins pas sans bidouillage)
- UMBRELLO: pas pratique non plus, très strict, ne permet pas de bidouiller les schémas ou alors j'ai pas vu l'option...
- BOUML: (ne pas oublier libqt3-compat-headers le paquet de compat avec qt1/qt2 pour avoir qlist.h dans l'installation de QT).
- gaphor: en python, je n'arrive pas à faire fonctionner la dernière version, me demande des fichiers de zope...
- TCM: aussi sexy qu'une affiche de recrutement pour kolkhoze soviétique...
Sous windows il y a Camtasia (qui est très bien fait, pour l'avoir utilisé!), ou Lotus Screencam, ou
fraps.
Il existe de nombreuses manière de faire un screencast sous linux:
- VLC et screen:// (en ligne de commande, avec un transcode et un access=file, cependant en fonction du muxer utilisé comme ts,ps ou ogg, j'ai des
packetisation error, que je ne comprend pas, cependant avec avi c'est OK...)
$vlc -vvv screen:// --sout \
"#transcode{vcodec=mp4v,vb=1024,deinterlace}:duplicate{dst=display,dst=standard\
{access=file,mux=avi,dst=flux.avi}}"
- xvidcap : mais qui ne produit que des fichiers encodé vidéo Theora, en audio Vorbis, et OGG pour container.
xvidcap website
Une interface graphique est apparement dispo, gvixcap.
- recordMyDesktop : dispo sur les dépots Ubuntu et gère le son apparement.
recordMyDesktop website
- istanbul : est un projet Gnome, très similaire à recordMyDesktop, dispo sur les dépots Ubuntu et gère le son.
Istanbul website
J'ai testé la version 0.2.1, buggée, l'enregistrement du son ne fonctionne pas (mauvaise configuration?), et l'arrêt de l'enregistrement est buggé aussi.
- Cankiri : inspiré de Istanbul.
http://www.tortall.net/mu/wiki/Cankiri
(A noter: le website de l'auteur de Cankiri est intéressant, il est un système de wiki que j'aime bien, et une
API ajax qui vaudrais le coup de jeter un œil).
Je n'avais pas découvert ces trois derniers quand j'avais vraiment besoin de faire un screencast avec l'audio pris sur la sortie microphone. La solution que j'ai utilisé est quand même, pas très pratique, mais fonctionne!
Une version patchée de ffmpeg:
1. Les paquets nécessaires: build-essential xlibs-dev ffmpeg
2. récupérer ffmpeg: $wget http://lecoindespotes.free.fr/ubuntu/screencast/ffmpeg-0.4.9-p20051216.tar.bz2
3. récupérer le path: $wget http://lecoindespotes.free.fr/ubuntu/screencast/ffmpeg-0.4.9-p20051216.diff
4. appliquer le patch: patch -Np1 -i ffmpeg-0.4.9-p20051216.diff
5. $./configure --extra-ldflags=-L/usr/X11R6/lib --enable-x11grab --enable-gpl && make
$./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -vd x11:0,0 -ad /dev/dsp -s 1280x800 screencast.avi
Les options:
-vd x11:0,0 : On récupère sur X11 et on regarde à la position de l'écran 0,0 (en haut de l'écran)
-s 1024×768 est la taille de la vidéo capturé (si la valeur est trop grande, ffmpeg plante)
Pour ne capturer qu'une zone précise de l'écran, d'une application par exemple, on peut utiliser xwininfo, qui renvoie la taille d'une fenêtre et sa position.
Pour redimensionner la vidéo avec ffmpeg:
$./ffmpeg -vcodec mpeg4 -b 1000 -r 10 -g 300 -i ~/test.avi -s 800×600 ~/test-800-600.avi
Il existe Kino sous Linux pour faire du montage, mais apparemment il permet de monter que des films DV.
J'ai utilisé VirtualDub, que je savais utiliser, sous Windows par manque de temps, pour couper quelques secondes au début à la fin de la vidéo.
Idée de projet:
Utiliser cette version de ffmpeg patchée pour faire une application de screencast.
Faire un script shell pour lancer une capture screencast avec audio sur microphone, dans un répertoire donné, suffixer le nom du fichier par un numéro (prendre ls -l|wc-l).
Utiliser un raccourci Gnome pour lancer une capture, un autre pour killer le process.
J'ai testé envoyé un sgnal 15 à ffmpeg ne corrompt pas le fichier écrit.
Utiliser avimerge pour merger les différents fichiers.
On pourrait aussi utilise jvlc pour faire une application en Java, pour le montage.
Pour le moment, très rapidement avec quelques scripts, on peut obtenir quelque chose de très utilisable:
1. un script de démarrage de screencast ffmpeg,
screencast_start.sh et un script d'arrêt
screencast_stop.sh
2. lier ce script avec un raccourci GNOME, (gconf-editor, dans apps/metacity/global_keybindings et apps/metacity/keybinding_commands)
Avec des combinaisons de touches de raccourcis judicieusement choisi, on peut gérer le fullscreen de OpenOffice Impress (comme F11 et F12 par exemple).
Le script de démarrage précédent, crée un fichier vidéo dans un répertoire à indiquer dans le script, en suffixant le nom du fichier par un entier (le nombre de fichier dans le répertoire, mais il serait plus judicieux de suffixer par la date courante en ms), pour éviter les écrasement de fichier.
Pour améliorer un peu ces script, on pourrait ajouter un on-screen-display avec un compteur "recording in 3... 2... 1... go!", pour cela utiliser xosd, mais c'est un peu vieillo et n'utilise que des fonts X (je ne sais pas trop comment fonctionne cela...), alors plutôt utiliser gnome-osd-client, qui est plus récent et utilise Bonobo ou dbus.
voir:
http://huygens.ca.infn.it/cgi-bin/man/man2html?gnome-osd-client+1
et
http://developer.gnome.org/doc/API/2.0/pango/PangoMarkupFormat.html
Après un rapide coup d'oeil sur le fonctionnement de gnome-osd-client, (qui fait apparaitre le message jusqu'a ce que le pointeur de souris soit over le message), il doit être possible de récupérer sur dbus un message comme quoi le message n'est plus affiché à l'écran. Il faudrait donc un programme qui se met en attente d'un message sur dbus relatif à gnome-osd-client. A la réception de ce message, on démarre l'enregistrement.
A noter: Byzanz est une application qui peut être intéressante dans certains cas, elle permet de faire un screencast en image au format
GIF, très pratique pour afficher dans une page
HTML.
Un billet à ce sujet:
http://pwet.fr/blog/faire_une_capture_d_ecran_en_gif_anime_un_screencast
OpenObex est une implémentation libre du protocole Obex, Object Exchange, qui est utilisé dans nombre d'appareil mobile.
http://dev.zuckschwerdt.org/openobex/
http://www.tech-edv.co.at/programmierung/en/gplsw.html#download
http://www.markup.fr/sony_ericsson_v600i_sous_linux
http://ludomatic.com/blog43.html
Il est utilisé par exemple, pour la communication avec le Ericsson v600i.
L'utilisation en ligne de commande est très simple, et un paquet est dispo dans les dépots Ubuntu.
En cherchant un moyen de streamer ma webcam depuis mon soekris, je suis tombé sur gspca, un driver (un module) pour webcam tel que la logitech notebook (et un bon paquet d'autres).
L'auteur de ce driver, a coder tout un tas de petits outils fort sympathique: spcaview, spcaserv etc.
Les auteurs de gspca sont des français: Ecole Centrale d'Electronique ECE, un docteur en électronique de l'université Pierre et Marie Curie (Michel Xhaard), et le professeur d'informatique Sylvie Xhaard.
$spcaserv -w 5000 -d /dev/video0
par exemple permet de streamer la webcam locale, accéssible depuis le v4l video0, sur le port 5000.
$spcaview -w 192.168.0.1:5000
par exemple permet de visualiser la webcam dont le flux est streamé sur la machine 192.168.0.1 sur le port 5000.
C'est assez léger au niveau charge CPU, et puis j'ai été assez bluffer par les sources sans configure, juste un make qui se compilent sans mot dire.
Au premier abord, j'ai essayé de streamer mon flux avec VLC, mais il n'arrive pas a streamer car il n'arrive pas a packetiser le flux brut issu du v4l video0, du coup je fais préalablement un transcodage en mp4v puis streaming, mais sur le soekris c'est suicidaire! la machine n'est pas assez puissante.
En conclusion, j'arrive a streamer ma webcam, mais l'affichage est tout foiré, parasité, c'est pas utilisable, ou alors, il faut trouver une option de configuration de spcaserv pour spécifier l'encodage ou juste la palette, a voir...
(Cependant, sur une autre machine, plus puissante que le soekris, l'image est OK...)
De plus, le flux de sortie n'est pas lisible par VLC, il faut utiliser l'outil fourni $spcaview -w 192.168.0.1:5000
Il y a plusieurs type de fichier en flux de sortie: yux, jpg.
Mais même une sortie jpg, ne s'affiche pas dans une page
HTML.
téléchargement de gspca
http://mxhaard.free.fr/download.html
spcaview & spcatools howto
http://mxhaard.free.fr/sview.html
un rapide tutoriel
http://www.funix.org/fr/linux/webcam.htm
J'ai également tester camserv.
Fichier de configuration /etc/camserv/camserv.cfg, le copier dans $HOME.
Mettre à jour le fichier de config avec les bons fichier v4l, et un numéro de port non déjà assigné.
Cependant, je n'arrive pas a m'en servir avec VLC, j'ai réussi a avoir
une image, c'est tout. bof, bof quoi.
En fait, il semblerait que c'est VLC qui ne lit pas correctement le MPJEG.
$camserv ./camserv.cfg
Cependant, dans une page
HTML, ça fonctionne très bien, une balise

par exemple, et une image (MJPEG ???) rafraîchie toute les secondes est affichée dans la page
HTML.
A noté que localhost ou 127.0.0.1 n'est pas accepté, obligé de mettre l'adresse réseau locale... ne je sais pas pourquoi, c'est peut être à gérer dans le fichier de configuration camserv.cfg...
camserv est dispo dans les dépots debian.
page officielle
http://cserv.sourceforge.net/
J'essaye de faire en sorte de pouvoir ghoster le système de mon soekris net4801 (debian etch), cependant j'ai quelques ennuis.
Je me disais un truc avec partimage, mais avec ce dernier on ne peut cloner un filesystem déjà monter (et on ne peut pas vraiment démonter le /, hahaha).
Du coup, j'ai cherché des alternatives, la première qui me vient à l'esprist c'est d'installer un second debian sur le soekris, destiné à la rescue.
1. Ce qui est assez pratique finalement car pas de chargement d'image en réseau ou de NFS.
Certes, c'est la solution de la facilité, et cela consomme 1GIB pour le système.
2. La seconde alternative, c'est de faire un netboot avec g4u, qui est une application mais aussi un système démarrable depuis des disquettes (ça existe encore ?), ou cd, le tout basé sur netbsd.
J'ai testé en utilisant le tutoriel suivant: http://www.tuxdocs.net/wiki/index.php/G4u_configure_for_pxe_boot
Je pense n'avoir rien oublié (indiquer le fichier de boot dans dhcp.conf, récuperer les fichiers indiqués dans le tuto), mais cela ne fonctionne pas, la séquence de boot sur le soekris s'amorce, puis il se fige.
Du coup, comme je ne trouve pas rapidement de solution, j'ai pas vraiment de temps, je vais installer 2 systèmes sur le soekris (eve et eve-rescue).
Infos sur g4u (ghost 4 unix):
http://www.ibiblio.org/pub/Linux/docs/HOWTO/translations/fr/html-1page/g4u.html
3. Une autre alternative est d'utiliser une clé
USB, installer une TRK dessus, et de booter ma soekris dessus, mais un ghost avec partimage de /, et la coller dans home.
=> Impossible, le net4801 ne boote pas sur l'
USB, le matériel est capable de le faire mais le BIOS ne contient pas le code pour (apparement le code pour booter sur l'
USB est assez lourd...)
edit 06-12: finalement pas de ghost, avec 2 systèmes sur le soekris, dont un qui fait le ghost de l'autre, la création du ghost prend énormément de temps (pour une install standard de debian ~40min pour une image ghost gzippée).
Une solution serait de voir si je peux faire une copie à chaud du système et copier les fichiers à travers scp...
Affaire à suivre!