La biennale d'art contemporain de Venise accueille cette année une oeuvre bien particulière. Il s'agit en effet d'un virus, écrit en Python. Ses auteurs vendent leur oeuvre sur divers supports dont des t-shirts ou des CD-Roms. Eu égard au prix du CD-Rom (1 500$), il est plus que conseillé de télécharger le code source sur le site Internet de l'oeuvre.
Note: Les amateurs d'art pourront également se rendre à la biennale d'art contemporain de Lyon où plusieurs oeuvres sont également en rapport avec l'informatique (l'une d'entre elles utilise l'éditeur de niveaux d'Unreal).
Note du modérateur: le dit virus est un petit script qui va essayer de se répliquer sur vos executables python. Ne le lancez surtout pas en tant que root (le script est pas bien méchant mais ça peut quand même abîmer une machine).
Le Defi'Con version 2.0 !
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.
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).
Développement driver Linux pour modem ECI USB
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
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
Compresser la mémoire cache de Linux
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.
Le projet s'appuie sur un principe exposé par Scott F. Kaplan.
Le Source Forge nouveau est arrivé
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 !!!
Alors que demande le peuple du GNU ... du GNU !!!
Anti aliasing & GTK 1.2
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).
Script pour transformer les MP3 en OGG
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 ;-)
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 ;-)
Un autre script pour netfilter/iptables
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.
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.
Script de configuration dynamique netfilter/iptables
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...
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...
Perl/shell obfuscated
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/.*//'`
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/.*//'`
Code TeX incompréhensible... et pourtant ça marche !
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
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
cache kernel
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é...)
Quelqu'un de compétent avait-il "évalué" ce projet ? (intérêt technologique, faisabilité...)
Bug lp avec noyau 2.4.0
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...
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...
des exemples de programmes faits avec Kylix
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.
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.
DeCSS encore plus petit en C qu'en Perl
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;}}
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;}}