How to prevent a specific graphical application to steal focus, Linux

Hi all,

to prevent this behavior, example with yad :

wid=$(xdotool getwindowfocus)
yad --info --text foobar &
sleep .2
xdotool windowfocus $wid

Alertes Nagios via SMS et API de Free

Salut à tous,

cet article est en Français, effectivement, comme c’est pour les freenautes, c’est plus adapté 😉

Depuis que Free a eu la bonne idée de créer une API pour s’envoyer des SMS, je me suis dit que c’était au top pour se faire notifier par Nagios. Pour pouvoir être alerté via SMS, voici les étapes à suivre :

Éditer le fichier /etc/nagios3/conf.d/contacts_nagios2.cfg et dans les contacts concernés, à la (ou les) ligne(s) service_notification_commands ajoutez notify-by-SMS, ce qui peux donner :

define contact{
        contact_name                    root
        alias                           Root
        service_notification_period     24x7
        host_notification_period        24x7
        service_notification_options    w,u,c,r
        host_notification_options       d,r
        service_notification_commands   notify-service-by-email,notify-by-SMS
        host_notification_commands      notify-host-by-email,notify-by-SMS
        email                           nobody@nowhere.null
}

Maintenant, la configuration de la commande SMS : editez /etc/nagios3/commands.cfg et ajoutez :

define command{
    command_name    notify-by-SMS
    command_line    /usr/lib/nagios/plugins/notify-by-SMS "$NOTIFICATIONTYPE$ alert - $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$"
}


Ensuite, éditez avec votre éditeur favori (vim ?) le fichier /usr/lib/nagios/plugins/notify-by-SMS et collez ce petit script :
(nécessite curl et le module perl URI::Escape et de mettre ses propres identifiants dans le script)

#!/bin/bash

user=TON_NUMERO_DE_USER
pass=TON_MOT_DE_PASSE

curl -k "https://smsapi.free-mobile.fr/sendmsg?user=$user&pass=$pass&msg=$(echo "$@" | perl -MURI::Escape -ne 'print uri_escape($_)')"


Un petit chmod +x /usr/lib/nagios/plugins/notify-by-SMS puis un /etc/init.d/nagios3 restart, et voilà, c’est terminé. Vous recevrez maintenant vos alertes via SMS. Pensez à paramétrer les heures d’appels si vous n’éteignez jamais votre tel 😉

How to sync Zimbra ZCS 8 with Android 4

If like me you have a few users on your Zimbra server, and you don’t want to get a paid Zimbra to just enable (not Open Source) ActiveSync to synchronise calendar, mails & contacts, then this is the right place.

mail: I use the Zimbra URL in the Android browser (I have a bookmark link on my dashboard) :

zimbra web android



contacts: I use CarDAV-Sync free

calendar: I use CalDAV-Sync free

Not the same name both, look closer if needed =)

For the moment, I’m happy with this configuration.

HTH.

Edit:

There’s another app by the same author having both functionnality : davdroid Open Source or on play

How to use Zimbra ZCS on a small Linux box for a few users

This post explain how to run Zimbra on a small Linux box for a few users. The requirement is to reduce the system foot print. When I ran Zimbra the first time, my box was in a high load state =~ 20. It’s preconfigured for many corporate users, that’s not my case.



First of all, there’s a few requirements to start.


– a Linux box (I use Ubuntu 12.04)
– an internet connection =)
– some sysadmin knowledge



My dedicated server is not so small, but the default Zimbra configuration is not supported by it :
– cpu 2 cores Intel(R) Atom(TM) CPU 230 @ 1.60GHz
– 2 GO RAM


And there’s another services on this machine, my requirement is to make every applications happy together.


I’ve downloaded Zimbra ZCS 8.6.0 GA Release from http://www.zimbra.com/downloads/os-downloads.html, then ran ./install after extracting the tarball.


After Zimbra install, run this script


The zmmtaconfig_interval setting is the time between Zimbra crash checks. One of the most greedy process !


then, in crontab, I disabled some services, and modified the scheduling for some others, see zimbra crontab



Last but not least, this is the MariaDB conf to put in /opt/zimbra/conf/my.cnf




Some more tweaks can be done in /opt/zimbra/mailboxd/etc/jetty.xml.in




More information here


Now, my system footprint is quite good (htop) :


htop




If you are working on the same goal, feel free to contact me to optimize our work.




These informations are a a combo of my searches on the web, thanks to the authors :
https://wiki.zimbra.com/wiki/Configuring_Thread_Stack_Size
http://blog.tinola.com/?e=26
http://sun3.org/archives/68
http://www.r71.nl/kb/210-zimbra-high-cpu-spikes-every-1-minute
http://www.whatan00b.com/zimbra-on-minimal-hardware/
http://www.alexkuo.info/?p=88

Zoom sur l’univers

The scale of the universe 2

http://www.sputnick.fr/univers.swf

Accès internet satellite grand public

Pour ceux qui sont concernés, il y a un (des?) nouveaux satellites qui sont destinés au grand public !
Le prix est enfin accessible (il y a pas si longtemps, c’était réservé aux pros avec un tarif prohibitif et des débits dérisoires).
Bonne nouvelle, non ?

Pour les bateaux, c’est peux-être une piste ?
Pour les nomades (gens du voyage, forains, teufeurs…), ça va être intéressant !

Télécharger ses mouvements de compte LCL au format QIF

Depuis quelques jours, le site https://particuliers.secure.lcl.fr du crédit Lyonnais a mis en place un login avec un tableau de chiffres que l’on doit cliquer, qui sont répartis de façon aléatoire.

Exemple 1:

http://ompldr.org/vYXZ4dg.png

Exemple 2:

http://ompldr.org/vYXc4ag.png

Si on examine attentivement les deux images avec Gimp (par exemple) on remarquera que non seulement les chiffres ne sont pas placés au même endroit, mais qu’en plus leurs position par rapport aux fond bleu peuvent varier (dans cet exemple : 1 pixel en hauteur).

Comme j’aime les défis et aussi le web scraping et que je me met au langage de programmation python, je me suis décidé à me lancer dans l’aventure.

Ma première idée : sikuli permet de faire ce genre de chose, mais cela est contraignant : on doit avoir un navigateur ouvert sur la page et de plus la souris est réquisitionnée le temps de l’opération. Donc, non cette solution ne me convenait pas.

J’ai donc cherché des pistes pour faire du template matching à la manière de sikuli, mais cette fois en scriptant.

Avec les modules python PyQt4 et webkit, il est possible de piloter un navigateur avec accès au DOM, javascript, cookies, user-agent… Et on peut choisir d’afficher ou non la fenêtre du navigateur. (pour faire simple, on code son navigateur à sa sauce, et on implémente ce dont on a besoin).

Après de nombreuses recherches sur le web, j’ai trouvé le module spynner qui permet de faire cela de façon relativement facile.

Reste la partie image-processing, j’ai pour cela choisit l’excellent module PIL associé à numpy pour gérer des tableaux multidimensionnels.

Voici mon process :

  • on se rend sur la page de login
  • on crée un screenshot de la page
  • on découpe le screenshot pour ne garder que le tableau vu en exemple
  • on passe tous les pixels non blancs en noir pour simplifier la recherche de motifs
  • on compare les petites images des numéros (crées avec Gimp) avec le tableau pour chaque numéro du code personnel
  • si ça match, on récupère les abscisses et ordonnées et on lance le code javascript ad-hoc
  • on valide (submit)

A présent, nous sommes logués, et le code devient plus traditionnel : recherches XPath, manipulation du DOM

Cela représente un travail d’une dizaine de jours (pas à temps complet) ce qui a permis de m’inculquer quelque peu la syntaxe de python et de découvrir de belles possibilités de manipulation d’images, ce qui m’était inconnu jusqu’à lors.

Ce script est librement téléchargeable et largement commenté.

Ce script n’a pour le moment pas été testé avec un autre compte que le miens, merci de me remonter si ça fonctionne ou non pour vous et vos éventuels message d’erreurs, merci.

Install sous ubuntu :

sudo easy-install spynner
sudo apt-get install python-qt4
wget http://www.sputnick.fr/scripts/LCL-dl-QIF/LCL-dl-QIF_current.tar.bz2
tar xjf LCL-dl-QIF_current.tar.bz2
cd LCL-dl-QIF
chmod +x LCL-dl-QIF.py
./LCL-dl-QIF.py

Creer des menus avec LibreOffice en moins de 5mn

Salut,

Exemple et tuto tout-en-un :

menu

how to play ram files under linux x86_64

realplay.bash

This script is intended to play ram files with vlc instead of using proprietary
software « realplay » that run only on 32bit systems.
(You can replace vlc by any other player).

Now, we are able to play www.amazon.* samples =)
Next step is to configure your browser to open ram(ra) files whith this script.

requirement :
– vlc
– curl
– GNU grep (if you lack the -oP version, replace grep by pcregrep instead)

How to detect keyboard and mouse idle time under Linux…

Hi,

I was searching to do this today. My first aproach was to code something in C with XScreenSaver (man 3 XScreenSaver) but the straightforward way IMHO is this one in perl :
# cpan -i X11::IdleTime; sleep 2; perl -MX11::IdleTime -e 'print GetIdleTime(), $/;'