Ceci est une ancienne révision du document !


Yannick_LM

Je suis étudiant en dernière année dans une école d'ingénieur. Je suis joignable à l'adresse mail suivante : yannicklm1337 (chez) gmail.com, et je traîne assez souvent sur le forum. J'ai découvert Ubuntu il y a déjà plus d'un an, et me suis formé quasiment uniquement grâce à la communauté (la documentation et le forum) Je suis aussi de plus en plus sur #ubuntu-fr (de préférence tard le soir, GMT)

Je continue à apprendre sans arrêt, et je ne compte plus m'arrêter…

Voir aussi ma page sur Launchpad

Quelques programmes à découvrir :

  • Screen, le multiplexeur de terminal.
  • Zsh , ou comment donner un coup de vieux à Bash.
  • WindowMaker, un gestionnaire de fenêtres qu'il est bien.
  • Irssi , le client IRC en mode texte.
  • Mpd , un serveur son pour votre ordi.

Un petit bout de mon fichier ~/.aliases

# Pour créer des playlists pour mpd
# Usage : 
# cd $MUSIQUE
# CreatePL Repertoire NomPlayliste [regexp]
# Crée une playliste pour mpd contentant tous les fichiers en mp3 ou ogg du 
# répertoire. Si regexp est donné, seules les pistes correspondantes sont 
# ajoutées
# Attention : si le nom de la PL comporte des guillemets, l'écrire avec ' '
# TODO : faire ça proprement avec des getopt
function CreatePL {
MUSIQUE=$HOME/Musique
PLAYLISTS=$MUSIQUE/.mpd/playlists
        [[ -n $3 ]] && \
            find $1 -name $3 | sort | tee $PLAYLISTS/"$2.m3u" \
            || \
            find $1 -name '*.ogg' -o -name '*.mp3' | sort | tee $PLAYLISTS/"$2.m3u"
}
# Vos commandes les plus utilisées: (si vous utilisez zsh, remplacez .histfile 
# par .bash_history)
function cmd {
	sed -e 's/sudo //' $HOME/.histfile |  cut -d' ' -f1 | sort | uniq -c | sort -rg | head $1
}
 
# Pour être sûr de n'avoir toujours qu'un screen d'ouvert :
alias sr='screen -RaAd'

Contributions :

  • Quelque chose de complètement inutile, donc indispensable : un Big Ben dans votre ordi
  • Membre du groupe traducteur d'Ubuntu
  • Traduction de la LHU. (venez nous rejoindre !)
  • Réécriture d'un script pour irssi (recherche google). Inutile, vu que la plupart des bots sur les chans ont une commande !google
  • Customisation du /whois, basé sur ip-to-country.pl et worldtimeserver, pour savoir l'heure à laquelle vivent les gens avec qui vous parlez. (pas encore tout à fait fini, merci aux gens d'#irssi pour leur aide)
#!/usr/bin/perl 
# - whois_localtime.pl
 
use warnings;
use strict;
use LWP::UserAgent;
use Irssi;
use Shell;
 
my $host="ip-80-236-218-145.dsl.scarlet.be";
our $HOME_DIR = $ENV{HOME};
our $GEOFILE = "$HOME_DIR/.irssi/scripts/ip-to-country.csv";
our $URL="http://www.worldtimeserver.com/";
 
 
# The last version of the file can be obtained there:
# http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip
 
 
sub ip_to_number { # IP => Number
my $ip = shift;
my (@octets, $ip_num);
    $ip =~ s/\n//g;
	@octets = split /\./, $ip;
	$ip_num = 0;
	foreach (@octets) {
	    $ip_num <<= 8;
	    $ip_num |= $_;
	}
return $ip_num;
}
 
 
sub find_country {   
    my $ip=shift;
    $ip = &ip_to_number($ip);
    open GF, "<$GEOFILE" or die "Can't open $GEOFILE $!";
    while (<GF>){
	$_ =~ s/"//g;
	$_ =~ s/\n//;
	my ($start, $end, $CC, $CTRY, $COUNTRY);
	($start, $end, $CC, $CTRY, $COUNTRY) = split /,/, $_;
	if (($ip >= $start) and ($ip <= $end)){
	    Irssi::active_win->print("Country: $COUNTRY");
#	    print "Country : $COUNTRY";
	    return "$CC";
	    last;
	}
    }
    Irssi::active_win->print("Country not found");
#    print "not found";
    close GF;
    return "pouet";
}
 
 
 
sub find_time {
    my $CC=shift;
    my $ua = new LWP::UserAgent;
    $ua->agent("AgentName/0.1 " . $ua->agent);
    my $req = new HTTP::Request GET => "$URL/current_time_in_$CC.aspx";
    my $res = $ua->request($req);
    my $content = $res->content;
    my @lines = split("\n", $content);
    foreach(@lines) {
	if ( $_ =~ /\s+(\d\d?:\d\d (A|P)M)/ ) {
	    return $1;
	}
    }
}
 
 
sub cmd_showtime {
    my $whois=shift;
    my $ping=ping("-c 1 $whois");
    $ping =~ m/((\d{1,3}\.){3}\d{1,3})/ ;
    my $ip = $1;
    my $CC = &find_country($ip);
    my $time = &find_time($CC);
    Irssi::active_win->print("Time: $time");
#    print("Time: $time");
}
 
 
 
 
#print cmd_showtime $host;
Irssi::command_bind('showtime', 'cmd_showtime');
  • utilisateurs/yannick_lm.1202356754.txt.gz
  • Dernière modification: Le 18/04/2011, 14:43
  • (modification externe)