Le Defi'Con c'est
la compétition mensuelle pour nous les geeks.
Oyez, vous autres frustrés qu'on force à travailler proprement alors qu'au fond de vous, vous savez que vous êtes faits pour pondre du code dégueulasse. Le Defi'Con a pour but de trouver la solution la plus sale et la plus sordide à un problème imposé tous les mois.
Ce mois-ci, il fallait trouver un moyen informatique de transmettre à une personne quelconque mais vile une plaquette complète de points Godwin. Les solutions proposées sont comme promis, sordides. Et c'est à vous, public adoré, de déterminer qui est le gagnant du mois.
Pour voir les solutions tout comme pour voter, suivez le lien ci-dessous (un vote par personne SVP).
Lassé d'attendre un hypothétique driver, j'ai décidé d'en développer un moi-même. Je commence seulement, la tâche n'est pas aisée, mais je suis aidé par le développeur du driver Speedtouch
Je m'efforcerai de mettre les dernières infos sur mon avancement dans la page Linux de mon site.
Si des gens veulent m'aider, ils sont les bienvenus ! Vous pouvez me contacter par mail: s_helleu@yahoo.fr
L'université de Sao Paulo a lancé un projet visant à optimiser l'utilisation de la mémoire par le noyau Linux 2.4.x. Des pages mémoires sont ainsi compressées afin de réduire les accès à la mémoire swap.
Le projet s'appuie sur un
principe exposé par
Scott F. Kaplan.
Savannah est un site analogue a Source Forge, même design, même fonctionnalité. le but de ce site fournir une alternative 100% GNU à Source Forge , le site de gestion de projet OpenSource de VALinux. La différence fondamentale est qu'en effet ce site est géré par la FSF, et de plus il est maintenu par des Français (cocorico !!).
Alors que demande le peuple du GNU ... du GNU !!!
Si comme moi vous attendiez avec impatience de la sortie de GTK 2.0 pour s'offrir (entre autres) l'antialiasing, voici un patch à appliquer sur les sources de Gtk+ 1.2.9 pour profiter de polices anti aliasées dans toutes les applications Gtk+ (et donc, dans Gnome).
Comme récemment, dans les nouvelles linuxfr des lecteurs s'interrogeaient sur comment transformer des MP3 en OGG, après quelques minutes de recherche j'ai trouvé le script PERL suivant : mp32ogg. Le fonctionnement est assez long (environ 1 min par MP3 sur un Duron 700) mais ça marche super bien.
L'emploi très simple. Dans une console tapez :
mp32ogg fichier.mp3 -> pour transformer un fichier mp3 en ogg
mp32ogg répertoire-contenant-les-mp3 -> pour transformer un ensemble de mp3 se trouvant dans un répertoire.
mp32ogg --help pour afficher l'aide.
Laissez tourner pendant la nuit pour des répertoires de taille importante ;-)
En complément de l'article du 15 mai, un autre script de configuration pour la partie firewall (netfilter) du noyau 2.4.
Ce script, très complet, suppose une connexion PPP, un réseau local et une DMZ. Cependant, une adaptation à ses propres besoins est relativement aisée.
Un article sur iptables avec un script de configuration "dynamique"
Vu sur linuxsecurity.com
Note du modérateur : script clair et détaillé, qui peut en inspirer plus d'un pour s'écrire ses propres scripts...
Bon, après bien des heures de labeur, Dilbert et moi avons pondus ces lignes de commandes pour écouter les mp3 que raphit broadcast. D'ailleurs ne les lancez pas tous à la fois pour pas le flooder :)
version normale:
perl -e'$a="mp3.raphit.net";s/ /%20/g,/:.{8}(.*mp\d)/i&&print"http://$a/$1\n"foreach`rsync -r "$a"::mp3`'|mpg123 -yvZ@-
variante:
mpg123 -yvZ$(perl -e'$a="mp3.raphit.net";s/ /%20/g,/:.{8}(.*mp\d)/i&&print"http://$a/$1\n"foreach`rsync -r "$a"::mp3`')
version gore:
export Q=mp3.raphit.net;mpg123 -yvZ`rsync -r $Q::mp3|perl -ne's/ /%20/g,/:.{8}(.*mp\d)/i&&print"http://$ENV{Q}/$1\n"'`
encore plus courte:
export Q=mp3.raphit.net;mpg123 -yvZ`rsync -r $Q::mp3|perl -pe's|.*:...(.*mp\d)|http://$ENV{Q}/$1|i?s/ /%20/g:s/.*//'`
Il y a des concours de scripts les plus incompréhensibles -- du moins au premier abord, car ils sont toujours compréhensibles, avec du temps et des efforts.
En voici un, qui n'est pas en Perl mais en TeX : quelques lignes pour plusieurs pages !!
Faites un copier/coller, enregistrez dans "message.tex" puis lancez la commande "tex message.tex".
Et enfin "xdvi message.dvi"...
\let~\catcode~`76~`A13~`F1~`j00~`P2jdefA71F~`7113jdefPALLF
PA''FwPA;;FPAZZFLaLPA//71F71iPAHHFLPAzzFenPASSFthP;A$$FevP
A@@FfPARR717273F737271P;ADDFRgniPAWW71FPATTFvePA**FstRsamP
AGGFRruoPAqq71.72.F717271PAYY7172F727171PA??Fi*LmPA&&71jfi
Fjfi71PAVVFjbigskipRPWGAUU71727374 75,76Fjpar71727375Djifx
:76jelse&U76jfiPLAKK7172F71l7271PAXX71FVLnOSeL71SLRyadR@oL
RrhC?yLRurtKFeLPFovPgaTLtReRomL;PABB71 72,73:Fjif.73.jelse
B73:jfiXF71PU71 72,73:PWs;AMM71F71diPAJJFRdriPAQQFRsreLPAI
I71Fo71dPA!!FRgiePBt'el@ lTLqdrYmu.Q.,Ke;vz vzLqpip.Q.,tz;
;Lql.IrsZ.eap,qn.i. i.eLlMaesLdRcna,;!;h htLqm.MRasZ.ilk,%
s$;z zLqs'.ansZ.Ymi,/sx ;LYegseZRyal,@i;@ TLRlogdLrDsW,@;G
LcYlaDLbJsW,SWXJW ree @rzchLhzsW,;WERcesInW qt.'oL.Rtrul;e
doTsW,Wk;Rri@stW aHAHHFndZPpqar.tridgeLinZpe.LtYer.W,:jbye
Un projet qui me paraissait intéressant a disparu du web : allos, discidents de freedows, voulaient utiliser le concept de cachekernel. Certains chiffres impressionnaient (nombre de lignes de codes pour un driver ethernet, p.ex).
Quelqu'un de compétent avait-il "évalué" ce projet ? (intérêt technologique, faisabilité...)
Je ne sais pas si avec le 2.4.2 c'est rectifié ou pas...
Mais au cas ou: j'ai eu un problème d'impression avec le 2.4.0, l'imprimante plantait régulièrement en cours d'impression (mode interrupt driven). Même un chargement de parport_pc irq=none ne passait pas. Après plusieurs mails avec Tim Waugh (le développeur) la solution pour le problème a été trouvée:
vim /usr/src/linux/drivers/parport/ieee1284_ops.c
vers la 55ème ligne mettre en commentaire l'appel à down_trylock, pour obtenir:
no_irq = 0;
/* Clear out previous irqs. */
// while (!down_trylock (&port->physport->ieee1284.irq));
}
à combiner avec irq=none. J'ai pas encore essayé sans...
Sur Codecentral, il y a des sources et des exécutables de demo et de programmes plus "utiles" fait en Kylix. (ainsi que la documentation)
Kylix est un programme commercial qui n'est pas libre.
(une version gratuite est "annoncée" pour dans quelques mois)
Note du modérateur: Il faut s'ouvrir un compte de communauté Borland (gratuit) pour accéder aux fichiers.
Il y a quelques jours, une version Perl de DeCSS a été introduite qui était le programme le plus petit (7 lignes) pour décrypter le CSS.
Il faut croire que ça a vexé un passioné de C, qui vient de produire un code C de 442 octets, soit 30 de moins que son équivalent Perl!
Allez, y'en a bien un qui va nous l'écrire en Basic ou en logo à ce rythme :)
#define K(i)(x[i]^s[i+84])<<
unsigned char x[5],y,z,s[2048];main(n){for(read(0,x,5);read(0,s,n=2048);write(1
,s,n))if(s[y=s[13]%8+20]/16%4==1){int i=K(1)17^256+K(0)8,k=K(2)0,j=K(4)17^K(3)9
^k*2-k%8^8,a=0,b=0,c=26;for(s[y]-=16;--c;i/=2,j/=2)a=a*2^i&1,b=b*2^j&1;for(j=
127;++jy)a^=a>>14,a=a>>8^(y=a^a*8^a<<6)<<9,b=b>>8^(z=b^b/8^b>>4^b>>12)
<<17,i=s[j],i="7Wo~'G_\216"[i&7]+2^"cr3sfw6v;*k+>/n."[i>>4]*2^i*257/8,s[j]=i^(i
&i*2&34)*6^z+c+~y;}}
DeCSS n'est plus, frappé du sceau de l'infâmie par tous les pauvres majors de l'industrie du DVD. Pour ne pas risquer la prison à perpèt' pour la possession d'un bout de code de DeCSS, utilisez plutôt qrpff. Développé par 2 étudiants du MIT, ce script de 7 lignes en perl offre les même possibilités que DeCSS, mis à part qu'il est nettement plus simple à reproduire, la preuve :
#!/usr/bin/perl -w
# 531-byte qrpff-fast, Keith Winstein and Marc Horowitz
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$b=73;$c=142;$t=255;@t=map{$_%16or$t^=$c^=(
$m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t^=(72,@z=(64,72,$a^=12*($_%16
-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271);if((@a=unx"C*",$_)[20]&48){$h
=5;$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$
d=unxV,xb25,$_;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=$t&($d>>12^$d>>4^
$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9,$_=$t[$_]^
(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
Dites-moi si je me trompe : il y a bien un concours Obsfucated Perl Contest, non? :)
Bravo aux 2 étudiants du MIT, Keith Winstein et Marc Horowitz.
Merci à Tom's Hardware pour le lien sur Wired.