Saturday, September 23, 2006

Linux:: Installer IMVU

Désolé, je n'ai pas de recette magique, j'ai bien essayé Wine et Crossover, mais j'ai eu quelques problèmes avec glu32.dll et opengl32.dll ... J'ai donc du me tourner vers la vitualisation et ma machine Windows dans Qemu. It is great, it works! Je ne lance que ça, et j'ai supprimer les mises à jour automatique de Windows, ben oui, je peux regénérer ma machine virtuelle, donc au pire le virus ou le trojan ne restera là qu'une heure ou deux :-) pas de chance les pirates. D'ailleurs je suis en train de chercher comment accélérer ma machine virtuelle: là ça pourrait devenir vraiment une recette magique, d'ailleurs si vous en avez déjà: je suis preneur: comme d'habitude laissez moin un message

Friday, September 22, 2006

Linux:: Comment comparer deux listes en Perl

Je classe ce petit howto dans ma catégorie Linux, parce que c'est le seul véritable envirronnement pour développer du code. Quand Windows n'est fourni par défaut qu'avec Wordpad ou Notepad, Linux vient déjà avec des éditeurs de textes puissant en ligne de commande pour développer (Vim par exemple). Donc revenons à nos moutons: Je développe en ce moment un petit programme où il me faut comparer deux listes et trouver et identifier les éléments en commun (c'est le genre de trucs qu'on fait tous les jours en bioinformatiques :-) . Comme je manipule des chaines de caractères, j'ai fini par me tourner vers Perl. Perl est LE LANGAGE de script pour gérer les lignes de caractère. Une implémentation naïve de ce problème est quadratique. Mais si vous utilisez une table de hachage... alors ça devient linéaire YOUPI YOUPI YA: votre liste de 100000 éléments va pouvoir enfin être analysé. Voici la commande à utiliser:


my %seen;
my @common = grep {$seen{$_}++} @list_1 , @list_2;



Par contre cela nécessite que les listes une et deux ne comporte pas de doublé. Voyons un peu comment ça marche. J'utilise la fonction grep pour créer un filtre et je lis à la suite les deux listes. J'initialise d'abord ma petite table de hash en une table nulle. Lorsque je parcours les listes avec $_, lorsque je rencontre pour la première fois je rencontre un élément je le mets dans la table, mais comme la table est initialisée à faux à 0 au début, l'élément est filtré! Mais par post incrémentation je garde une trace de l'élément (le fameux ++). Lorsque l'élément apparait pour la seconde fois:
$seen{$_} est non nul et donc le filtre est passif. Vous récupérer enfin ce beau résultat dans votre table @common. Si je ne me trompe pas cette comparaison des deux tables est bien linéaire.

Friday, September 15, 2006

Linux:: XEN

Ca fait longtemps que je n'ai pas parlé de virtualisation... Pourtant c'est un sujet qui va être de plus en plus d'actualité. D'ailleurs la société RedHat vient d'annoncer la mise en place prochaine de la technologie XEN au sein de sa version eponyme pour les entreprises. Contrairement aux autres technologies de virtualisation tels VMWare ou Qemu qui simule le materiel et le Bios, les machines virtuelles sous XEN ont accès au materiel grace au noyau XEN. Le resultat de cette difference de paradigme est une machine virtuelle quasiment aussi rapide que la machine hote. So enjoy the virtualization!!! La seule contrainte est que l'architecture des machines virtuelles doit leur permettre d'utiliser la technologie XEN... contrairement à VMWare et Qemu qui ne demande pas de modification de l'OS "invité". Ca ne pose evidement pas de problème avec les OS libres tels Linux, dont le code a déjà été modifié pour pouvoir tourner avec XEN, par contre cela pose problème pour Windows... Et c'est là que se pose le réel probleme: beaucoup d'utilisateur de Linux utilise une machine virtuelle pour faire tourner Windows, même si l'équipe de XEN a dit avoir modifié un Windows pour permettre de la faire tourner sous XEN, de sombres licences empêchent l'équipe de publier... Espérons que l'accord entre Microsoft et XEN change la donne. Par ailleurs l'arrivée des dual core et des technologies de virtualisation directement au sein des processeurs devrait d'un coté parmettre de s'affranchir de problèmes de licence évoqués ci-avant et d'un autre côd'améliorer encore la qualité de virtualisation... Les bootloader pourraient donc très bientôt appartenir au passé et les histoires de je suis sous tel OS, je dois rebooter... seront bientôt fini.

Friday, September 01, 2006

Linux:: DVB-T Freecom (TNT sur votre PC)

Je viens d'acheter une clé USB pour regarder la télévision sur mon ordinateur portable: j'ai donc pris l'une ayant le meilleur qualité prix: Freecom DVB-T
je l'ai acheté chez Amazon pour quelques 45 euros. Elle fonctionne plutôt bien sous Windows: même si l'installeur est un peu mal foutu... ça finit toujours pas fonctionner. Le bon point est que l'antenne vient avec un logiciel MediaCenter: très intéressant quand comme moi vous n'avez qu'un Windows XP pro sans le media center. Mais vous vous doutez bien que j'ai du l'installer sous Linux ;-) et ben oui! Elle fonctionne encore mieux pas de saut d'image pas d'arret: un plaisir et tout ça avec seulement la petite antenne fournie! Pour installer la DVB-T key, n'essayez pas de modifiez votre noyau et d'y ajouter des modules; le mieux est d'utiliser
  1. Download le firmware: dvb-usb-wt220u-fc03.fw
  2. cp dvb-usb-wt220u-fc03.fw /usr/lib/hotplug/firmware/
  3. apt-get mercurial build-essential (et les header de votre kernel si vous avez un kernel standard)
  4. mkdir /usr/src/modules
  5. cd /usr/src/modules
  6. hg clone http://linuxtv.org/hg/v4l-dvb
  7. cd v4l-dvb
  8. make-config
Faites comme suit:
#
# using defaults found in .config
#
*
* Linux Kernel Configuration
*
*
* Multimedia devices
*
Video For Linux (VIDEO_DEV) [N/m/y/?] n
*
* Digital Video Broadcasting Devices
*
DVB For Linux (DVB) [Y/n/?] y
DVB Core Support (DVB_CORE) [N/m/y/?] m
*
* Supported SAA7146 based PCI Adapters
*
*
* Supported USB Adapters
*
Support for various USB DVB devices (DVB_USB) [N/m/?] (NEW) m
Enable extended debug support for all DVB-USB devices (DVB_USB_DEBUG) [N/y/?] (NEW) n
AVerMedia AverTV DVB-T USB 2.0 (A800) (DVB_USB_A800) [N/m/?] (NEW) n
DiBcom USB DVB-T devices (based on the DiB3000M-B) (see help for device list) (DVB_USB_DIBUSB_MB) [N/m/?] (NEW) n
DiBcom USB DVB-T devices (based on the DiB3000M-C/P) (see help for device list) (DVB_USB_DIBUSB_MC) [N/m/?] (NEW) n
HanfTek UMT-010 DVB-T USB2.0 support (DVB_USB_UMT_010) [N/m/?] (NEW) n
Conexant USB2.0 hybrid reference design support (DVB_USB_CXUSB) [N/m/?] (NEW) n
Nebula Electronics uDigiTV DVB-T USB2.0 support (DVB_USB_DIGITV) [N/m/?] (NEW) n
TwinhanDTV Alpha/MagicBoxII, DNTV tinyUSB2, Beetle USB2.0 support (DVB_USB_VP7045) [N/m/?] (NEW) n
TwinhanDTV StarBox and clones DVB-S USB2.0 support (DVB_USB_VP702X) [N/m/?] (NEW) n
GENPIX 8PSK->USB module support (DVB_USB_GP8PSK) [N/m/?] (NEW) n
Hauppauge WinTV-NOVA-T usb2 DVB-T USB2.0 support (DVB_USB_NOVA_T_USB2) [N/m/?] (NEW) n
WideView WT-200U and WT-220U (pen) DVB-T USB2.0 support (Yakumo/Hama/Typhoon/Yuan) (DVB_USB_DTT200U) [N/m/?] (NEW) m
Technotrend/Hauppauge Nova-USB devices (DVB_TTUSB_BUDGET) [N/m/?] (NEW) n
Technotrend/Hauppauge USB DEC devices (DVB_TTUSB_DEC) [N/m/?] (NEW) n
Terratec CinergyT2/qanu USB2 DVB-T receiver (DVB_CINERGYT2) [N/m/?] (NEW) n
*
* Supported FlexCopII (B2C2) Adapters
*
Technisat/B2C2 FlexCopII(b) and FlexCopIII adapters (DVB_B2C2_FLEXCOP) [N/m/?] (NEW) n
*
* Supported BT878 Adapters
*
*
* Supported Pluto2 Adapters
*
Pluto2 cards (DVB_PLUTO2) [N/m/?] (NEW) n
*
* Supported DVB Frontends
*
*
* Customise DVB Frontends
*
*
* DVB-S (satellite) frontends
*
ST STV0299 based (DVB_STV0299) [N/m/?] (NEW) n
Conexant CX24110 based (DVB_CX24110) [N/m/?] (NEW) n
Conexant CX24123 based (DVB_CX24123) [N/m/?] (NEW) n
Philips TDA8083 based (DVB_TDA8083) [N/m/?] (NEW) n
Zarlink VP310/MT312 based (DVB_MT312) [N/m/?] (NEW) n
VLSI VES1893 or VES1993 based (DVB_VES1X93) [N/m/?] (NEW) n
Samsung S5H1420 based (DVB_S5H1420) [N/m/?] (NEW) n
*
* DVB-T (terrestrial) frontends
*
Spase sp8870 based (DVB_SP8870) [N/m/?] (NEW) n
Spase sp887x based (DVB_SP887X) [N/m/?] (NEW) n
Conexant CX22700 based (DVB_CX22700) [N/m/?] (NEW) n
Conexant cx22702 demodulator (OFDM) (DVB_CX22702) [N/m/?] (NEW) n
LSI L64781 (DVB_L64781) [N/m/?] (NEW) n
Philips TDA10045H/TDA10046H based (DVB_TDA1004X) [N/m/?] (NEW) n
NxtWave Communications NXT6000 based (DVB_NXT6000) [M/?] (NEW) n
Zarlink MT352 based (DVB_MT352) [M/?] (NEW) m
Zarlink ZL10353 based (DVB_ZL10353) [N/m/?] (NEW) m
DiBcom 3000M-B (DVB_DIB3000MB) [N/m/?] (NEW) n
DiBcom 3000P/M-C (DVB_DIB3000MC) [N/m/?] (NEW) n
*
* DVB-C (cable) frontends
*
VLSI VES1820 based (DVB_VES1820) [N/m/?] (NEW) n
Philips TDA10021 based (DVB_TDA10021) [N/m/?] (NEW) n
ST STV0297 based (DVB_STV0297) [N/m/?] (NEW) n
*
* ATSC (North American/Korean Terrestrial/Cable DTV) frontends
*
NxtWave Communications NXT2002/NXT2004 based (DVB_NXT200X) [N/m/?] (NEW) n
Oren OR51211 based (DVB_OR51211) [N/m/?] (NEW) n
Oren OR51132 based (DVB_OR51132) [N/m/?] (NEW) n
Broadcom BCM3510 (DVB_BCM3510) [N/m/?] (NEW) n
LG Electronics LGDT3302/LGDT3303 based (DVB_LGDT330X) [N/m/?] (NEW) n
*
* Miscellaneous devices
*
LNBP21 SEC controller (DVB_LNBP21) [N/m/?] (NEW) n
ISL6421 SEC controller (DVB_ISL6421) [N/m/?] (NEW) n
DABUSB driver (USB_DABUSB) [N/m/?] n


  1. make
  2. make install
vous n'avez plus qu'à redémarrer votre ordi et voilà: le petit voyant orange s'allume... Maintenant allez dans Kaffeine: jouez un peu avec les réglages et hop la télé sur l'ordinateur: la classe non? Bien sûr avant d'en arriver là j'ai un peu galérer mais si vous avez des problèmes laissez un post et j'essaierai de vous aider