dimanche 20 mars 2011

Regarder plusieurs chaînes à partir d'une ligne de commande

Après avoir présenté dans un billet précédant une ligne de commande pour regarder la chaîne AlJazeera en direct, j'ai décidé de généraliser cette méthode à toutes les chaînes disponibles en streaming sur le net. Avant de commencer on aura besoin de tshark, une version en ligne de commande de wireshark pour analyser le réseau (sniffer les paquets) et de rtmpdump (qui permet de regarder des streaming en protocole rtmp), une application qui permet de regarder des chaînes en streaming, installons les:
ubugnu@ubugnu-laptop:~$ sudo apt-get install tshark rtmpdump
Si vous n'avez pas envie d'ajouter des dépôts pour installer rtmpdump, simplement installez ces deux paquets dans l'ordre:


PS: pour les autres architectures simplement rechercher dans les mêmes dossiers.
On aura aussi besoin d'un lecteur vidéo qu'on puisse utiliser en ligne de commande, optez pour mplayer (léger mais j'ai remarqué qu'on ne pouvait pas rendre la vidéo plein-écran):
ubugnu@ubugnu-laptop:~$ sudo apt-get install mplayer
ou vlc (très complet):
ubugnu@ubugnu-laptop:~$ sudo apt-get install vlc
Si vous optez pour mplayer il faudra mettre à la fin de chaque commande mplayer - pour lire le flux, si vous optez pour vlc préférez la version en ligne de commande cvlc en mettant à la fin de chaque commande | cvlc - Maintenant voyons comment on a utilisé rtmpdump dans le billet précédant:
ubugnu@ubugnu-laptop:~$ rtmpdump -qv -r rtmp://livestfslivefs.fplive.net/livestfslive-live/ -y "aljazeera_ar_medium?videoId=747084146001&lineUpId=&pubId=665003303001&playerId=751182905001&affiliateId=" -W "http://admin.brightcove.com/viewer/us1.24.04.08.2011-01-14072625/federatedVideoUI/BrightcovePlayer.swf" -p http://english.aljazeera.net/watch_now/ -a "aljazeeraflashlive-live?videoId=747084146001&lineUpId=&pubId=665003303001&playerId=751182905001&affiliateId=" | mplayer -



Analysons les paramètres:

  • -q: mode silencieux (quit)
  • -v: pour dire qu'on regarde une vidéo en live
  • -r: correspondra au paramètre tcUrl qui apparaîtra dans l'analyse des paquets
  • -y: correspondra au chemin et apparaîtra après l'attribut play qui apparaîtra dans l'analyse des paquets
  • -W: correspondra au paramètre swfUrl qui apparaîtra dans l'analyse des paquets
  • -p: correspondra au paramètre pageUrl qui apparaîtra dans l'analyse des paquets
  • -a: correspondra au paramètre app qui apparaîtra dans l'analyse des paquets

cmd | mplayer - demande à mplayer de lire le flux sortant (stdout) de cmd.
Maintenant voyons comment on peut récupérer ces paramètres en utilisant le sniffer de paquets tshark:
  1. Lancer tshark pour sniffer le port 1935 (réservé au protocole rtmp) dont on veut capturer les paquets -f "port 1935", spécifier quelle interface réseau il faut utiliser -i eth0, pour savoir quelle interface vous utilisez pour vous connecter à internet lancez ifconfig et voyez quelle interface porte votre adresse IP, restreindre le nombre de paquets à un nombre limité pour ne pas que ça dure trop longtemps (seulement les premiers paquets comportent les informations qui nous intéressent) avec -c 50, spécifier qu'on veut voir l'output en hex et ascii -x et enfin faire quelques manipulations pour ne garder que la partie ascii et supprimer les sauts de lignes. la deuxième partie de la commande permet alors d'extraire les informations voulues:
    ubugnu@ubugnu-laptop:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
  2. Lancer le streaming de la chaîne (ou vidéo) voulu (par exemple http://www.livestation.com/channels/43-al-jazeera-arabic) dans un navigateur et attendre jusqu'à ce que l'image apparaisse, vous verrez alors que la commande précédente aura affiché quelque chose du genre:
    ubugnu@ubugnu-laptop:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    [sudo] password for ubugnu:
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...live/..flashVer...LNX.
    swfUrl..6http://www.livestation.com/flash/player/5.4/player.swf...
    tcUrl...rtmp://media7.lsops.net/live/..fpad....capabilities.@m........audioCodecs.@.........videoCodecs.@o........videoFunction..?........
    pageUrl..8http://www.livestation.com/channels/43-al-jazeera-arabic..objectEncoding.ve......<.;.?..C........
    .play.............aljazeer_ar_medium.sdp...........C.....5....getStreamLength.@...........aljazeer_ar_medi
  3. Maintenant on a tout les paramètres dont on a besoin, mais faites attention, parfois un paramètre peut être "pollué" par des caractères non affichables qu'on retrouve alors incrusté sous forme de point ".", il faut savoir les repérer, dans notre exemple tout est clean:
    app: live/ -a
    swfUrl: http://www.livestation.com/flash/player/5.4/player.swf -W
    tcUrl: rtmp://media7.lsops.net/live/ -r
    pageUrl: http://www.livestation.com/channels/43-al-jazeera-arabic -p
    path: aljazeer_ar_medium.sdp -y
  4. La ligne de commande pour voir ce streaming est donc:
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "live/" -W "http://www.livestation.com/flash/player/5.4/player.swf" -r "rtmp://media7.lsops.net/live/" -p "http://www.livestation.com/channels/43-al-jazeera-arabic" -y "aljazeer_ar_medium.sdp" | mplayer -
  5. On peut refaire la même opération avec plusieurs chaînes, voici quelques exemples de chaînes que j'ai trouvé ici:
    ubugnu@ubugnu-laptop:~$ echo alarabia
    alarabia
    ubugnu@ubugnu:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    [sudo] password for ubugnu:
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...live/..flashVer...LNX,154,17..
    swfUrl..6http://www.livestation.com/flash/player/5.4/player.swf...
    tcUrl...rtmp://media2.lsops.net/live/..fpad....capabilities.@m........audioCodecs.@.........videoCodecs.@o........videoFunction..?.........
    pageUrl..?http://www.livestation.com/channels/57-al-arabiya-arabic-arabic..objectEncoding...{.e....;.@..E..
    .play.............alarabiy_ar_medium.sdp......{.e....;.@..E..(..@.1.<..!.6...d.........Q..P...{.e....;.@..
    ubugnu@ubugnu:~$ echo cnn
    cnn
    ubugnu@ubugnu:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...livestfslive-live/..flashVer...LNX10,2,154,17..
    swfUrl..6http://www.livestation.com/flash/player/5.4./player.swf..
    tcUrl..3rtmp://livestfslivefs.fplive.net/livestfslive-live/..fpad....capabilities.@m........audioCodecs.@.........v.ideoCodecs.@o........videoFunction.?.........
    pageUrl..8http://www.livestation.com/products/66-cnn-international..objectEncoding...............{.e....;.@
    .play............jlivestfslive_cnn_en_veryhigh?start_time=20110320104231&end_time=20110320105231&token=0d9
    ubugnu@ubugnu:~$ echo euronews
    euronews
    ubugnu@ubugnu:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...live/..flashVer...LNX,154,17..
    swfUrl..6http://www.livestation.com/flash/player/5.4/player.swf...
    tcUrl...rtmp://media2.lsops.net/live/..fpad....capabilities.@m........audioCodecs.@.........videoCodecs.@o........videoFunction..?.........
    pageUrl..7http://www.livestation.com/channels/12-euronews-franais..objectEncoding...........{.e....;.@..E..
    .play.............euronews_fr_medium.sdp.......;.@..{.e...E..i..@.@..j...d.!.6....33.tR.^.P....r........*.
    .play.............euronews_fr_medium.sdp.......;.@..{.e...E..(..@.@......d.!.6....33..R.^.P...{.e....;.@..
    ubugnu@ubugnu:~$ echo france24
    france24
    ubugnu@ubugnu:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...france24/fr/..flashVer...LNX
    swfUrl..6http://www.livestation.com/flash/player/5.4/playe.r.swf..
    tcUrl..$rtmp://media2.lsops.net/france24/fr/..fpad....capabilities.@m........audioCodecs.@.........videoCodecs.@o.........videoFunction.?.........
    pageUrl..6http://www.livestation.com/channels/5-france-24-french..objectEncoding..............{.e....;.@..E
    .play.............f24_livefr..{.e....;.@..E..(.L@.1....!.6...d....s...S..2P...{.e....;.@..E..R.M@.1....!.6
    À partir de ces informations on peut conclure que:

    Pour alarabia
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "live/" -W "http://www.livestation.com/flash/player/5.4/player.swf" -r "rtmp://media2.lsops.net/live/" -p "http://www.livestation.com/channels/57-al-arabiya-arabic-arabic" -y "alarabiy_ar_medium.sdp" | mplayer -
    Pour cnn
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "livestfslive-live/" -W "http://www.livestation.com/flash/player/5.4/player.swf" -r "rtmp://livestfslivefs.fplive.net/livestfslive-live/" -p "http://www.livestation.com/products/66-cnn-international" -y "jlivestfslive_cnn_en_veryhigh" | mplayer -
    (ce dernier ne marche pas il faut encore un hack vu que cette chaîne est payante sur le site)
    Pour euronews
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "live/" -W "http://www.livestation.com/flash/player/5.4/player.swf" -r "rtmp://media2.lsops.net/live/" -p "http://www.livestation.com/channels/12-euronews-franais" -y "euronews_fr_medium.sdp" | mplayer -
    Il est aussi possible d'aller chercher ces information dans le site même de la chaîne qui offre un streaming en live, on obtient:
    ubugnu@ubugnu-laptop:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    [sudo] password for ubugnu:
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...rtpeuronewslive..flashVer...LNX,2,154,17..
    swfUrl..0http://fr.euronews.net/media/player_live_1_7.s.wf..
    tcUrl..)rtmp://178.32.100.43:1935/rtpeuronewslive..fpad....capabilities.@m........audioCodecs.@.........videoCodecs.@o.........videoFunction.?.........
    pageUrl..'http://fr.euronews.net/infos/en-direct/..objectEncoding.@.................w_.d...m.....p{..7.YRz:
    .play.............fre_euronews-flash-750.sdp.....{.e....;.@..E..4R.@.2..j..d..../.w/..3...............:(.%
    Le commande sera donc (attention il y'avait un point incrusté dans le lien du swf, justement dans l'extension):
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "rtpeuronewslive" -W "http://fr.euronews.net/media/player_live_1_7.swf" -r "rtmp://178.32.100.43:1935/rtpeuronewslive" -p "http://fr.euronews.net/infos/en-direct/" -y "fre_euronews-flash-750.sdp" | mplayer -
    Pour france24
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "france24/fr/" -W "http://www.livestation.com/flash/player/5.4/player.swf" -r "rtmp://media2.lsops.net/france24/fr/" -p "http://www.livestation.com/channels/5-france-24-french" -y "f24_livefr" | mplayer -
    cette dernière ne donne que le son, mais il est possible de chercher ces informations depuis le site de la chaîne qui offre aussi un streaming en live, on obtient:
    ubugnu@ubugnu-laptop:~$ t=$(sudo tshark -c 50 -i eth0 -f "port 1935" -x | awk '{print $18}' | tr -d '\n'); echo $t | grep -oP 'app((?!swfUrl).?){0,}|swfUrl((?!tcUrl).?){0,}|tcUrl((?!pageUrl).?){0,}|pageUrl(.?){100}|\.play\.(.?){100}'
    Running as user "root" and group "root". This could be dangerous.
    Capturing on eth0
    50 packets captured
    app...france24_live/fr..flashVer...LNX0,2,154,17..
    swfUrl..Ohttp://www.france24.com/fr/sites/all/modules/.maison/aef_player/flash/player.swf..
    tcUrl..3rtmp://stream2.france24.yacast.net/france24_live/fr..fpad....capabilities.@m.........audioCodecs.@.........videoCodecs.@o........videoFunction.?.........
    pageUrl..<http://www.france24.com/fr/aef_player_popup/france.24_player#..objectEncoding...{.e....;.@..E....
    .play.............f24_livefr......{.e....;.@..E..p..@.2.qN..h....d......U.S.e................?.'{......@..
    La commande sera donc (attention au point incrusté dans le lien du swf!):
    ubugnu@ubugnu-laptop:~$ rtmpdump -qv -a "france24_live/fr" -W "http://www.france24.com/fr/sites/all/modules/maison/aef_player/flash/player.swf" -r "rtmp://stream2.france24.yacast.net/france24_live/fr" -p "http://www.france24.com/fr/aef_player_popup/france.24_player#" -y "f24_livefr" | mplayer -
    Apparemment celui ci ne marche pas aussi, je crois donc qu'il faut modifier quelques paramètres de rtmpdump (si quelqu'un sait comment faire?) car il a l'air de ne pas pouvoir lire le flux
  6. On remarque aussi que pour la plupart de ces chaînes d'informations, on peut changer deux paramètres dans la valeur de -y: la qualité et la langue, essayez de changer "medium" en "high" ou "veryhigh" si votre connexion vous le permet, ou alors il y'a aussi "low", pour la langue aussi il y'a les trois choix "ar", "fr" ou "en", l'étape suivante serait de créer un script qui prend comme arguments la chaîne, la qualité et la langue et nous donne la vidéo en direct, ce sera pour une prochaine fois inchaâ'Allah.
Remarques:
  1. Il est en théorie possible de remplacer fshark par tcpdump:
    ubugnu@ubugnu-laptop:~$ sudo tcpdump -XX -i eth0 -s 0 -v tcp src port 1935
    Mais ça à l'air de ne pas prendre en considération la partie "Handshake part 3", celle là même où on retrouve toutes les informations dont a besoin rtmpdump, si quelqu'un trouve une solution elle sera la bienvenue car elle nous évitera d'installer tshark
  2. Parfois les sites de streming brouilles les pistes en renvoyant des refus de connexion puis des redirection au lecteur flash ainsi que des redéfinitions des paramètres (c'est le cas de http://tvweb360.com/), dans ce cas il serait préférable d'utiliser la version graphique de fshark à savoir wireshark pour pouvoir bien chercher dans les paquets, si vous avez de la chance vous obtiendrez un paquet appelé "Handshake part 3" où se trouveront réunies et classées toutes les informations:








  3. Mais parfois wireshark ne reconnait pas ce paquet et lui donne l'étiquette de "Audio Data[Malformed Paquet]" il faudra alors chercher les mots clé sois-même, dans tout les cas, le paquet se trouvera entre "Handshake part 2" et le premier "Invoke" (c'est dans ce dernier "Invoke" qu'il faudra chercher le paramètre <code>-y</code> et non pas dans "Handshake part 3"):



vendredi 18 mars 2011

Regarder AlJazeera en une ligne de commande

Avant tout il faut que vous ayez un lecteur vidéo qui puisse s'utiliser en ligne de commande, normalement il doit déjà y avoir totem mais je n'ai pas réussi à le faire fonctionner avec le flux en direct, quoi qu'il en soit, il existe deux lecteurs qui sont bien meilleurs:
  • Le complet: vlc
ubugnu@ubugnu-laptop:~$ sudo apt-get install vlc

  • Le léger: mplayer
ubugnu@ubugnu-laptop:~$ sudo apt-get install mplayer
Après avoir installé l'un de ces paquets, il vous faut encore installer deux paquets debian, téléchargez les et installez les dans l'ordre (avec un simple clique sur le fichier .deb):
ubugnu@ubugnu-laptop:~$ wget http://ubuntu.mirror.cambrium.nl/ubuntu//pool/universe/r/rtmpdump/librtmp0_2.3-2_i386.deb 
ubugnu@ubugnu-laptop:~$ wget http://security.ubuntu.com/ubuntu/pool/universe/r/rtmpdump/rtmpdump_2.3-2_i386.deb
C'est tout maintenant vous pouvez regarder AlJazeera en directe avec la commande:
ubugnu@ubugnu-laptop:~$ rtmpdump -qv -r rtmp://livestfslivefs.fplive.net/livestfslive-live/ -y "aljazeera_ar_medium?videoId=747084146001&lineUpId=&pubId=665003303001&playerId=751182905001&affiliateId=" -W "http://admin.brightcove.com/viewer/us1.24.04.08.2011-01-14072625/federatedVideoUI/BrightcovePlayer.swf" -p http://english.aljazeera.net/watch_now/ -a "aljazeeraflashlive-live?videoId=747084146001&lineUpId=&pubId=665003303001&playerId=751182905001&affiliateId=" | mplayer -
  • Si vous avez installé vlc plutôt que mplayer, remplacez dans la commande ci dessus "mplayer" par "cvlc"
  • Si vous voulez regarder AlJazeera en Anglais remplacez "_ar_" par "_en_"
  • Vous pouvez modifier la qualité de l'image selon la vitesse de votre connexion, pour ce modifiez "medium" dans la commande ci dessus, les valeurs possibles sont: "verylow", "low", "medium", "high", "veryhigh", si vous avez une bonne connexion optez pour "veryhigh" qui vous donnera une image haute résolution.

samedi 5 mars 2011

Télécharger automatiquement à partir de MegaUpload

Mise à jour: après les changement des modalités opéré par megaupload.com concernant les téléchargements j'ai modifié le script, l'ancien ne marche plus

Cette application vous permettra de:
  1. Stocker les liens des téléchargements dans un fichier
  2. Lancer l'application avec une ligne de commande qui va lire lien par lien et télécharger le fichier correspondant
  3. Arrêter le téléchargement quand vous voulez et le reprendre quand vous voulez
  4. Au fur et à mesure ajouter des liens au fichier même si c'est entrain de télécharger
Commencez par créer le fichier des liens dans le dossier qui va accueillir les téléchargements:
ubugnu@ubugnu-laptop:~$ cd Téléchargements/
ubugnu@ubugnu-laptop:~$ touch .liste
puis l'application elle même avec des droits de superutilisateur
ubugnu@ubugnu-laptop:~$ sudo nano /usr/bin/mega
et mettre

#!/bin/bash
#for l in $@

list=`cat .list`
for l in $list
do
echo "downloading $l..."
url=`wget -qO- $l | grep -P "id=\"downloadlink\"" | grep -oP "(((http)\://){1}\S+)" | grep "megaupload.com\/files" | tr -d "\""`
echo "url found: [$url] sleeping 46 sec..."
sleep 46
wget -c $url
echo "$l downloaded" `date`
sed -i '1 d' .list
done;
le rendre exécutable
ubugnu@ubugnu-laptop:~$ sudo chmod +x /usr/bin/mega
Maintenant il suffit de remplit le fichier .liste avec des lien (ligne par ligne)puis de rentrer dans le dossier et de lancer l'application pour télécharger la liste que vous aurez mise dans le fichier .list
ubugnu@ubugnu-laptop:~$ cd Téléchargements/
ubugnu@ubugnu-laptop:~$ mega

Automatic download from MegaUpload

Updated: script updated after megaupload.com changes their downloads system

This script allows you to:
  1. Store MegaUpload links in a file .list
  2. Run the script on a shell
  3. Stop and resume downloads at any time
  4. Add links to the files even when working
Create a file .list (hidden) in the downloads folder
ubugnu@ubugnu-laptop:~$ cd Downloads/
ubugnu@ubugnu-laptop:~$ touch .list
than create the script file
ubugnu@ubugnu-laptop:~$ sudo nano /usr/bin/mega
and put

#!/bin/bash
#for l in $@

list=`cat .list`
for l in $list
do
echo "downloading $l..."
url=`wget -qO- $l | grep -P "id=\"downloadlink\"" | grep -oP "(((http)\://){1}\S+)" | grep "megaupload.com\/files" | tr -d "\""`
echo "url found: [$url] sleeping 46 sec..."
sleep 46
wget -c $url
echo "$l downloaded" `date`
sed -i '1 d' .list
done;
make it executable
ubugnu@ubugnu-laptop:~$ sudo chmod +x /usr/bin/mega
To begin downloads, populate the .list file with MegaUpload links (line by line) than enter to the download folder and run the script
ubugnu@ubugnu-laptop:~$ cd Downloads/
ubugnu@ubugnu-laptop:~$ mega

jeudi 3 février 2011

Créer facilement une Alarme sans rien installer

Ayant essayé la (presque) seule application alarme qui existe sous Ubuntu (alarm-clock) j'ai constaté que cette dernière bugait très souvent et me bloquait carrément le système même si elle est en veille (plusieurs megas de mémoire vive utilisés pour je ne sais quoi). Bref, ayant fait le tour de l'internet sans trouver d'autres applications (j'ai même cherché une application Google Chrome sans succès) je me suis dis pourquoi ne pas utiliser le job cron de Linux (installé par défaut), avant de voir comment créer une alarme il faut que vous ayez téléchargé un fichier audio qui fera office d'alarme et que vous ayez la possibilité d'ouvrir ce fichier en ligne de commande (moi j'utilise la version cmd de vlc qui est cvlc), voila donc comment créer une alarme:
ubugnu@ubugnu-laptop:~$ crontab -e
Vous obtiendrez alors un fichier probablement (presque) vide ne contenant que cette ligne:

# m h dom mon dow command
La meilleur façon de comprendre est par l'exemple, je veux créer une alarme à 6:00 du matin qui sonne chaque jour, je rajoute une ligne:

00 6 * * 1-7 cvlc Vidéos/Dorse.flv
m=00 donc 00 minutes
h=6 donc 6 heures
dom=* donc tout les jours du mois (dom="days of month"), on aurait pu mettre dom=1-15 c'est-à-dire la première moitié du mois.
mon=* donc tout les mois de l'années (mon="months"), on aurait pu mettre mon=6-8 pour dire "seulement pendant l'été"
dow=* donc tout les jours de la semaine (dow="days of week"), on aurait par exemple pu mettre dow=3-6
Puis viens la commande qui doit être exécutée, ici en l’occurrence lire une fichier audio.

vendredi 14 janvier 2011

[DZ Blog Day] L'éducation

Assalamu alaykum wa rahmatu Allah,

Nous voici donc arrivés au jour J, le maintenant célèbre DZ Blog Day, et c'est avec un grand honneur que j'assiste à cet évènement avec ma modeste contribution, un article qui reflétera la vision que j'ai concernant le premier thème du DZ Blog Day: l'éducation.

On a choisi de laisser le thème relativement vague pour que chacun puisse parler de la facette de l'éducation avec laquelle il a le plus d’expérience, un père ou une mère de famille parleront par exemple de l'éducation des enfants, un enseignant de l'éducation nationale, ...etc

Étant moi-même enseignant universitaire et de lycée, j'ai une certaine expérience dans le domaine, et même si je ne suis pas encore père de famille, je crois comprendre une partie du problème de l'éducation dans notre pays.

Je crois que je peux affirmer sans l'ombre d'un doute que dans notre pays ce n'est pas tant l'éducation des enfants, jeunes ou moins jeunes, qui fait défaut, mais bien celle de ceux qui sont censés les éduquer, à savoir: les parents et les enseignants.

Je me souviens qu'à notre époque (il y a 10 ans), on changeait carrément de route si par hasard on voyait un instituteur ou un enseignant venir par la même rue, non pas parce qu'on avait peur d'eux, mais parce qu'on avait une très grande estime pour eux.

Mais de nos jours malheureusement, l'enseignant a perdu de sa carrure, la limite de respect entre enseignant-élève est devenue si mince, je vais citer ici quelques situations que j'ai vu de mes propres yeux:
  • Un prof qui dit à un autre "Alors, on se tape quelques bières tout à l'heure" devant la classe et 30 élèves de 12 ans à 14 ans.
  • Deux profs et une élève qui rigolent dans la cours, en se tapant dans la main, en se tordant de rire devant le reste des élèves.
  • Deux profs qui parlent d'une élève à eux en disant "je lui donnerais tout ce qu'elle veut même mon cœur".
  • Un prof ayant une relation intime avec une élève.
  • Un prof écrivant des poèmes d'amour à une élève en pleine classe.
  • Un prof qui déverse des mots répugnants en pleine classe car il était en colère.
  • Un élève d'école (donc moins de 12 ans) ayant surpris deux profs (homme et femme) dans la pire situation qu'il puisse voir, et ce dans sa propre classe.

À partir de ces faits et gestes, je suis arrivé à la conclusion que le problème d'éducation dans notre pays n'est pas tant celui des jeunes que celui des personnes âgées responsables d'une manière ou d'une autre de ces jeunes, car au finale, un jeune ne fera que ce qu'il verra faire les plus grands.

Bien sûr certains d'entre vous me diront que les temps ont changé, que les jeunes ont changé et la société avec, je leur répondrait qu'on peut être moderne et conservateur des valeurs et principes de sa société, et il nous suffit de voir l'état de délabrement moral dans lequel se trouve une grande partie de nos jeunes pour juger cette "modernité des mœurs" si chère à certains.

Bien sûr, il ne faut pas oublier de dire qu'au milieu de tout cela, il existe Dieu merci un nombre important de jeunes dont les valeurs sont à la hauteur des espérances, et c'est à cause de ceux là que je trouve chaque jour la force et la volonté de passer des heures sur internet à chercher et à préparer mon cours de la façon la plus parfaite qui puisse être. Ces mêmes jeunes sont à préserver tels des diamants, car les abandonner dans cette fausse revient à les priver d'avenir, c'est pour cela que j'aurais un message à passer aux parents qui sont soucieux de la bonne éducation de leurs filles et fils, car peut être ils ne savent pas ce qui se passe dans les coulisses de certains établissements scolaires: Sachez chères parents qu'il y a une grande probabilité que votre enfant voit chaque jour des choses qui vont à l'encontre de ce que vous lui avez inculqué comme éducation et valeurs, quand il voit cela de ses camarades ce n'est pas bien grave, au mieux il se dira qu'il a de la chance d'être mieux éduqué qu'eux, mais le grand problème, c'est quand il voit ça d'un prof, de celui qui est censé l'éduquer, le phénomène devient encore plus dangereux si il voit ça de plusieurs de ses profs, il peut être déstabilisé, perdu, ne plus savoir qui et que suivre, comment accepter une mauvaise note d'un tel prof,...etc. Si j'étais père je penserais donc à avertir mon fils ou ma fille qu'il existe des gens qui ne donnent pas la même importance à l'éducation que nous, et que ces gens peuvent même être quelques uns de ses profs, je lui dirais d'accepter ça et d'être patient(e), et de ne surtout pas être découragé(e) par leurs comportements, de ne jamais les imiter et de garder une distance de sécurité avec eux en attendant des jours meilleurs.

Pour ce qui est de la solution, je dis qu'elle est connu de tous, et que je ne vais pas l'inventer, citant simplement ces quelques Hadiths de notre prophète que le salut et la bénédiction soient sur lui:

« إنما بعثت لأتمم صالح الأخلاق »
« مَا مِنْ شَيْءٍ يُوضَعُ فِي الْمِيزَانِ أَثْقَلُ مِن حُسْنِ الْخُلُق »
«إِنَّ الْمُؤْمِنَ لَيُدْرِكُ بِحُسْنِ خُلُقِهِ دَرَجَةَ الصَّائِمِ الْقَائِمِ »
« إِنَّ مِنْ أَحَبِّكُمْ إِلَيَّ وَأَقْرَبِكُمْ مِنِّي مَجْلِسًا يَوْمَ الْقِيَامَةِ أَحَاسِنَكُمْ أَخْلاَقًا »
«إِنَّكُمْ لَنْ تَسَعُوا النَّاسَ بِأَمْوَالِكُمْ، وَلَكِنْ يَسَعُهُمْ مِنْكُمْ بَسْطُ الْوَجْهِ وَحُسْن الْخُلُقِ »

À partir de là, je pourrais dire sans l'ombre d'un doute que la raison du délabrement moral de notre société n'est rien d'autre que notre éloignement des valeurs de l'Islam en essayant d'imiter les occidentaux, ces même occidentaux qui sont devenus mieux logés que nous dès qu'on parle d'éducation!

samedi 1 janvier 2011

Rapport de la réunion pour la réactivation de #ubuntu-dz du 31/12/2010: Le ridicule ne tue pas (et parfois c'est bien dommage!)

Essalam à tous, cela fait bien longtemps que je n'ai pas écris d'article faute de temps, cette même raison a fait que hier je n'ai pas pu assister à la réunion pour la réactivation de la communauté de #ubuntu-dz, trop de boulot, mais franchement, en lisant les logs ce matin, je remercie Allah de n'y avoir pas participé vu que le degré d’âneries et de conneries y était à son paroxysme!

En ce moment même j'ai laissé tomber mes affaires pour écrire cet article et exprimer ma stupéfaction et mon dégoût pour certains pseudo-geeks que le pauvre Abdelhak pensait motiver pour la réactivation de la communauté, je crois qu'au lieu de ça il est tombé dans une embuscade d’ivrognes et de gamins qui n'ont pas encore atteint la maturité (intellectuelle) nécessaire pour faire face à ce genre de défis (pour certains il est trop tard), je ne citerais pas de noms (un simple coup d'œil dans les logs vous renseignera) mais je crois que ces logs sont dignes d'une fuite wikileaks, dorénavant, il ne vous suffira qu'un petit coup d'œil dans cette page pour juger du sérieux de la personne portant un pseudo donné.

Bien sûr chacun est libre de faire ce qu'il lui plaît, mais pas en public, et surtout pas à l'occasion d'une réunion qui est censée représenter l'ensemble des gens qui font partie de cette communauté au niveau national, le comportement de certaines personnes est la raison de plus qui me fait garder mes distances de la communauté, même si je juge qu'avec mes modestes contributions j'ai déjà fait plus que certains pseudo-geeks... Je me demande ce que penserait un confrère Tunisien ou Marocain qui lirait ces logs... et encore, je n'ai pas souvent l'occasion de lire le reste des logs! je crains y découvrir le pire!

Pour conclure, je remercie les participants de cette réunion qui y ont mis du coeur, en particulier monsieur FAREH Abdelhak qui a fait de son possible pour organiser les choses convenablement, je voudrais lui dire si il lit cet article que pour le moment j'ai des résponsabilités que je ne peux pas lacher et que je n'ai pas une minute à moi, mais dès que ça sera le cas inchaâ'Allah je compte bien en profiter pour faire bouger les choses. Je remercierais aussi mademoiselle BOUAKKAZ meriem pour sa présence féminine dans la communauté, même si elle y a trouvé un tas de vautours à l'halène répugnante (au sens propre comme au sens figuré).

Je voudrais aussi dire que moi et quelques amis on a déjà entrepris un pas en ce sens, doucement mais surement, pour le lancement icnhaâ'Allah d'un site dédié à l'open-source en Algérie, et pourquoi pas aussi une communauté, un mailing list, ...etc
Cette initiative a été initiée par TixxDZ, et nous avons beaucoup d'idées en tête, le seul obstacle étant le temps manquant.