« Utilisateur:Sarcastic » : différence entre les versions

De Disposition de clavier bépo
Ligne 31 : Ligne 31 :
     license => "WTFPL"
     license => "WTFPL"
     );
     );
my $test = "New news from bepomediawiki: Discuter:Version 1.0rc2 (Tohuvabohuo)";
dehoppify($test);


sub uniq
sub uniq

Version du 15 août 2008 à 13:50

Je suis un utilisateur du bépo depuis la version 0.6.5.1, et j'utilise actuellement la 1.0-rc1.

Pas vraiment convaincu par le bépo pour tout ce qui est programmation et shell, je pense vaguement à essayer d'autres choses, au moins pour ces domaines (Dvoraj-fr ?).

Matériel

J'utilise un clavier Logitech Ultra Flat que je compte remplacer par un TypeMatrix. Et un trackball au pouce, de chez Logitech aussi.

Emacs

Voir ici.

zsh

J'espère avoir le temps de m'y plonger un jour, histoire d'avoir un C-c de nouveau accessible à une main, un C-z simplement accessible, et les raccourcis de déplacements identiques à ceux que j'ai trafiqués sur Emacs.

XMonad

Mon fichier de configuration est tellement chaotique, que j'ose pas trop le mettre ici. Si quelqu'un demande, peut-être que je trouverai le courage de le nettoyer.

Irssi

Petit script qui supprime les annonces de hopp pour le wiki, et qui affiche les liens annoncés avec la liste d'utilisateur sur la fenêtre serveur. (Ça peut être rempli de bug, j'ai pas encore testé intensivement)

use strict;
use vars qw($VERSION %IRSSI);
use Irssi;

$VERSION = 0.2.3;
%IRSSI = (
    authors => "Sarcastic",
    name => "dehopp script",
    description => "Print url from hopp announces on #fr-dvorak-bepo",
    license => "WTFPL"
    );

sub uniq
{
    my %hash = ();
    foreach (@_)
    {
	my ($url, $user) = split(/ \(/, $_);
	push @{$hash{$url}}, $user;
    }
    return %hash;
}

sub urlencode
{
    my $url = shift;
    $url =~ y/ /_/;
    $url =~ s/([^A-Za-z0-9_\/:.-])/sprintf("%%%%%02X", ord($1))/seg;
    return $url;
}

sub dehoppify
{
    my $msg = shift;
    $msg =~ s/^New news from bepomediawiki: (.*)\)$/$1/;
    my %values = uniq split (/\) \|\| /, $msg);
    foreach my $key (keys %values)
    {
	my $user_string = "[";
	while ($#{$values{$key}} > 1)
	{
	    $user_string .= pop(@{$values{$key}}) . ", ";
	}
	$user_string .= pop (@{$values{$key}}) . "]";
	print ("dehoppify: http://www.clavier-dvorak.org/wiki/",
		    urlencode("$key"), " $user_string");
    }
}

sub sig_message_public
{
    my ($server, $msg, $nick, $address, $target) = @_;
    if ($target eq '#fr-dvorak-bepo'
	&& $nick eq 'hopp'
	&& $msg =~ /^New news from bepomediawiki: [^<>]+? \(.+?\)$/)
    {
	dehoppify $msg;
	Irssi::signal_stop();
    }
    return;
}

Irssi::signal_add ('message public', \&sig_message_public);