25/06/2012 21:35

2eme anniversaire du France-IX

Sympa le 2eme anniversaire du France-IX:
Les photos

12/11/2011 21:10

Publication d'un module REDIS pour Freeradius

C'est ici

A propos du "Nouveau moteur de recherche pour Le Monde en Tique"

Suite de l'aventure Nouveau moteur de recherche pour Le Monde en Tique: j'ai fini par trouver pourquoi le truc consommait plus de RAM que prévu, c'est à cause des requetes sql: leur résultat atteignait plus de 800M (et maintenant 1.8Go) et même si le résultat est désalloué après, la ram n'est pas rendue au système.
Une solution: splitter cette grosse requête en plusieurs.
Et hop: on passe maintenant de 2104Mo à seulement 694Mo.

22/03/2010 13:16

Tips KVM

Quelques tuyaux en vrac

- pour booter sur le cdrom, c'est -boot d
- pour pouvoir se connecter avec un client vnc: -vnc :1
(c'est plus rapide que SDL)
- le driver par defaut de l'eth est sauf erreur 8139too; si l'eth n'est pas vu dans le guest, ajouter:
alias eth0 8139too
dans /etc/modprobe.conf pour la prochaine fois
et faire un
modprobe 8139too
pour tout de suite
- ne pas oublier que les partitions mis avec kvm -hda sont des hda0, hda1, etc et pas des sda0, etc

Comment comment monter une image qcow2 sous mandriva 2010 (ou autre)

La reponse est donnée ici:
http://tjworld.net/wiki/Linux/MountQemuQcowImages

Le probleme: sous mandriva 2010 x64, soit on installe kvm soit qemu mais pas les deux. Resulta si on veux faire tourner kvm, qemu-nbd manque.
Il suffit en fait d'installer qemu, de copier qemu-nbd a l'abri puis de réinstaller kvm.

Quelques complements sur la procedure:
o Creer l'image:
qemu-img create -f qcow2 monimage.img 10GB

o La rendre joignable via /dev/nbd0:
qemu-nbd --connect=/dev/nbd0 monimage.img
(attention, nbd se binde sur le port 1024 donc potentiellement quelqu'un de lexterieur peut s'y connecter)

o Faire le fdisk
fdisk /dev/nbd0

o Si on n'a pas les entrée /dev/nbd0p1, etc faire:
kpartx -a -v /dev/nbd0
cela donne un majeur et un mineur a utiliser pour les mkdod, genre:
add map nbd0p1 (252:0): 0 256977 linear /dev/nbd0 63
add map nbd0p2 (252:1): 0 8401995 linear /dev/nbd0 257040
add map nbd0p3 (252:2): 0 106671600 linear /dev/nbd0 8659035
o faire les mknod:
mknod /dev/nbd0p1 c 252 0
mknod /dev/nbd0p3 c 252 2
o On ensuite formatter les partyitions et les monter

Tres important:
Ne pas tenter d'acces concurrents sur les partitions ainsi monter: on risque le deadlock !
Penser a demonter les partitions avant de les utiliser et a deconnecter le nbd avec
qemu-nbd --disconnect /dev/nbd0




19/08/2009 16:49

L'informatique, les nombres et les arrondis

Devinette: qu'affiche le bout de code c suivant:
double v=847.665000;
printf("v=%.2f\n",v)

Vous avez dit 847.67 ? Perdu, c'est 847.66

Tout simplement parce que:
printf("v32=%.32f\n",v);
révèle qu'en fait v vaut a peu pres: 847.66499999999996362021192908287048

Plus étonnant:

printf("%.32f\n", 1.25);
donne 1.25000000000000000000000000000000

mais printf("%.1f\n", 1.25);
donne 1.2 alors que

printf("%.32f\n", 1.75);
donne 1.75000000000000000000000000000000
et printf("%.1f\n", 1.75);
donne 1.8

Je repete: 1.25 donne 1.2 mais 1.75 donne 1.8

Etrange, non ? Et bien la c'est "tout simplement" que printf utilise non pas un arrondi arithmétique mais un arrondi "au pair le plus proche" (nommé aussi "arrondi bancaire").

Détail amusant, la fonction round() n'arrondi pas pareil, il utilise un arrondi "to nearest integer, halfway away from zero", c'est a dire que
round(1.25*10)/10 donne a peu pres 1.3 (la ou printf donnerais 1.2)
et round(1.75*10)/10 donne a peu pres 1.8

Je suis tombé des nues en voyant comment printf arrondissait: en plus de 20 ans de développement, je n'avais jamais jamais suscpecté qu'il pouvait arrondir avec une méthode différente de l'arrondi arithmétique.

Et le pire c'est que round() produit un résultat different selon le language (voir la version du language): Cf Wikipedia EN: Rounding


Références:
A Question Of Rounding
Wikipedia FR: Arrondi
Wikipedia EN: Rounding

12/08/2009 19:40

Nouveau moteur de recherche pour Le Monde en Tique

Il y a quelques semaines nous avions améliorer la pertinence des résultats pour le moteur de recherche de la Librairie Le Monde en Tique en mettant en place un scoring des résultats.

Il restait encore un petit problème de lenteur sur des requêtes comportant beaucoup de mots (notament des mots se trouvant dans beaucoup d'ouvrages).

La casse tête était intéressant: comment trouver les ouvrages comportants une série de mots (avec un nombre de mots recherchés pouvant être important) quand on attaque une base Postgresql qui comporte 325 000 ouvrages. Cela représente un peu plus de 1 million de mots différents et 27 Millions d'occurrences. Et en les classant par score descendant bien sur. Certains mots ont plus de 100 000 occurences !

On avait laissé tombé il y a quelques mois Lucene en version GNUstep: après avoir corrigés tous les bugs et problèmes de mémoire on n'a finallement jamais dépassé les 20 000 ouvrages indexés....

Du coup on avait finit par mettre l'indexation dans Postgres. Mais le nombre d'ouvrage à triplé en moins de 6 mois du fait de l'importation automatisé (merci Onix !) de plusieurs grands éditeurs et distributeurs (etranger pour beaucoup, les éditeurs francais capables de fournir des fichiers Onix étant pour le moins limité).

Bref, la problématique à la base est simple: on a par exemple 10 mots présents respectivement dans 100 000, 25 000, 40 000, 5 000, 75 000, 8 000, 7 000, 12 000, 60 000, 55 000 ouvrages et il faut trouver les ouvrages communs.
On a 1 enregistrement code mot/code ouvrage.
la methode basique c'est de prendre les ouvrages du 1er mots, d'enlever ceux qui ne sont pas présent dans le 2eme puis dans ceux restant ceux qui ne sont pas dans le 3eme et ainsi de suite. C'est la fonction "intersect" du sql.

Un moyen d'aider un peu le process est de commencer par le mot présent dans le moins d'ouvrages, puis d'aller en nombre d'ouvrages croissant. Encore faut il pouvoir déterminerrapidement quel mot à le moins d'ouvrages ce qui n'est pas forcement pratique.

On a commencé par essayer d'optimiser Postgresql en lui allouant plus de mémoire; Sur le coup cela n'a pas changé grand chose mais 2 ou trois semaines après, son planneur a du prendre en compte les dernières statistiques et cela a quand même bien améliorer la rapidité.

Mais bon, on pouvait arriver à 30s sur une expression comme "information needs of engineers involved the development and improvement of this extremely important and rapidly changing technology" et 28s sur "Éditions de la Maison des sciences de l'homme - Paris"

Un peu long :-(

Le principe de memcached est attrayant: on met l'ensemble de la base des occurences en ram et ca devrait être plus rapide. Hélas memcached ne fait pas la reduction (le "intersect"). Par contre un autre outil du même type le fait: redis. Eureka !

Telechargement, compilation, corrections, compilation, installation et... tests.
Fonctionnellement c'est nickel: on le renseigne avec les occurences et il fait les reductions très bien et vite sur quelques 10aines de milliers d'occurences.
Mais il y a un hic (la vie d'un informaticien est truffé de hic hélas): en extrapolant le nombre d'occurences utilisées pour le test pour le nombre d'occurences necessaires en réalité (27 Millions) on voit vite qu'on dépasse les 10Go de RAM notament parceque redis ne traite que des chaines de caractères.

Retour à la case départ.

Enfin pas vraiment: si on conserve l'idée de base (monter la base des occurences en RAM), organisée de la façon la plus adaptée pour notre besoin tout en gérant la mémoire avec parcimonie ca peut peut-être coller.

La base du probème étant en gros la comparaisons de nombres entiers, voyons déjà la lenteur ou la rapidité de cette opération (en C pas en PHP, hein :-)

Et hop un petit test qui montre qu'une boucle sur plusieurs millions d'entiers se fait en une fraction de seconde (c'était juste pour être sur: quand on veut bosser sur des millions d'enregistrements autant ne pas partir sur de mauvaises idées).

Bon ensuite on a 2 nombres importants: le nombre de mots différents et le nombre d'occurences.
Le nombre de mots différents pese au final assez peu: même 2 millions d'entiers 32 bits ca ne fait que 8Mo et c'est notre clef primaire. Même en rajoutant mettons 4 pointeurs par mot on a au plus, en 32 bits, 40Mo de données c'est jouable; D'autant plus que le nombre de mots n'augmentera pas autant que le nombre d'occurences.

Par contre sur les occurences il faut faire au plus juste: avec 30 Millions d'occurences, ajouter un int32 ou un pointeur sur chaque c'est tout de suite 120Mo de RAM en plus.

Dernier paramètre: faut-il prévoir une mise à jour de cette base en mémoire ?
Pour: pas besoin de recharger la base régulièrement (plusieurs 10aines d'ouvrages arrivant chaque jours) et base toujours up-to-date.

Contre: ca complexifie, il faut ajouter des locks, prévoir une gestion de la mémoire plus fine pour notament éviter la fragmentation, cela aura un impact sur la recherche quand une mise à jour ce fait....

Question: en combien de temps charge t on la base ? Si ca met 5mn ca va, on peut batcher ca la nuit; si ca met 24h c'est plus problématique.

Bref encore un test à faire.

Résultat: ca devrait prendre au plus une 15aine de minutes. Donc exit la mise à jour. D'autant plus que la complexitée induite aurait signifiée un développement et une validation plus longue.

A partir de la on peut creuser plus avant la methode de stockage en ram.

Pour récapituler:
- le stockage des mots peut-être évolué vu l'impact mémoire et il doit l'être vu que c'est quand même notre clef primaire, si on peut éviter une boucle de 1M d'occurences c'est deja ca de gagné.
- le stockage des occurences par mot doit être plat (ou quasiment vu le volume).
- on doit pouvoir déterminer rapidement le nombre d'occurences pour un mot afin de déterminer par quel mot commencer (celui qui a le moins d'occurences).
- faire simple et robuste: c'est un serveur qui ne doit pas crasher

Donc on opte pour une hash table en limitant quand même la taille de la table (compromis taille mémoire/temps de recherche) qui est un nombre premier (si on prend une taille de 100 663 319 pour pour une utilisation relle de 52 000 000 on perd tout de suite quelque chose comme 700Mo...
On récupere d'abord le nombre de mots différents histoire de figer la structure afin d'éviter du code de rebalancement de la table et de fragmenter la mémoire (il n'y a pas de petit profit)

Chaque entrée va comporter le code mot (notre clef de hashage; d'ailleurs on gagne tout de suite 4 octets par mot vu qu'on n'a pas besoin de stocker le hashage), un tableau des occurences associées (un int4 pour le code ouvrage, un int4 pour la propriété et un in4 pour le score), le nombre des occurences et un pointer vers le next node. Soit 16 octets par mot + 16 octets (avec l'alignement) pour chaque occurence (plus les le tableau de hashage de 1572869*4 octets pour le million de mots.

On accede au nombre d'occurence d'un mot et aux occurences de ce mot de facon quasi immédiate (en gros une division pou trouver l'entrée correspondant au hash pui au pire quelques comparaisons).
Histoire de limiter la casse sur la recherche des occurences ensuite, celles-ci sont triées par code ouvrage comme ca dès qu'on a atteint un code ouvrage supérieur au code recherché on peut s'arreter (bon, on pourrait proceder en plus par dichotomie, c'est un joker a garder sous le coude si besoin est).

Et voila, le choeur de la bête est là.
Ca tient sur 1.4 Go en ram et la recherche est ultra-rapide.
Faudrait creuser d'ailleurs: pourquoi 1.4Go alors qu'on devrait être autours de 600Mo...

Reste ensuite à faire l'interface de communication.
3 choix:
- redévelopper un truc ex-nihilo
- se servir de l'interface de memcached ou redis
- autre

Finallement j'ai opté pour une interface testée, connue et standard: XML-RPC avec les composants GNUstep (vu que le client visé est GNUstep et que de toute facon il y a des librairies XML-RPC pour la plupart des language).

Ca fait un peu bizarre de pinailler pour un millieme de seconde et 2 octets sur le coeur et d'utiliser du haut niveau pour l'interface mais bon, la partie interface peut
être changée sans trop de problème si le coût est trop grand.

Derriere ca un petit coup de valgrind histoire de vérifier qu'on a pas de fuite de mémoire ou de bug trop visible. Quelques corrections, évidement.

Puis des tests (genre des 10aines de milliers de requetes sur des mots au hasard et en nombre differents).
Re corrections (et oui, c'est la dure vie du développeur).

On vérifdie que la mémoire ne bouge pas d'un octet.

Et hop c'est prêt !

Après tout ca, la réalisation de la partie client est triviale (merci GNUstep) et sont intégration à eCommStep le moteur du site du Monde en Tique est assez vite faite.
On prévoit quand même un fallback sur la recherche direct en base si le serveur ne répond pas (crash, rechargement de la base, intervention démonique ou autre)

Re-test et comparaison (histoire de valider le tout, ce serait bête d'être ultra-rapide mais de retourner des résultats érronés ou incomplets) et ca roule !

Résultats:

Mise en mémoire de la base: 7mn91 (ca charge un peu Postgres mais batché à 4 ou 5h du matin c'est indolore.

Recherche sur:
"information needs of engineers involved the development and improvement of this extremely important and rapidly changing technology"
Avant: 30.2601 s
Apres: 0.0260 s

Recherche sur: "programmation en java"
Avant: 3.2589 s
Apres: 0.0579 s

Recherche sur "Éditions de la Maison des sciences de l'homme - Paris"
Avant: 28.3312 s
Apres: 0.7767 s


(en temps de recherche brut une fois qu'on a récupéré les enregistrements correspondants à chacun des mots mais cette opération ne prend qu'une fraction de secondes).

Après quelques heures, on peut voir que toutes les requetes sont restées en dessous de 1s.


Et voila; Next job please !

Et merci à Jean Demetrau pour le challenge, Dolaur Crozon Cazin et Nicolas Guillouet pour nos discussions sur le sujet.

XSL-FO et FOP c'est bien !

Je travaille depuis quelques mois sur XSL-FO avec Apache FOP et c'est vraiment pratique. Le concept: on créé un fichier de transformation XSL-FO que l'on va passer à FOP avec un fichier XML contenant des données et FOP se charge de le transformer en fichier final, notament en PDF.

Bref une solution libre pour générer des PDF en pouvant les désigner autrement que par programmation.

Par contre il vaut mieux avoir un bon editeur de XSL-FO. J'utilise Altova StyleSuite qui est hélas propriétaire mais qui est le meilleur de ceux que j'ai pu trouver et essayer. Il a plusieurs avantage: il genere des fichier xslt que FOP accepte sans broncher et ses propres fichiers de définition de templates sont en XML (i.e. si jamais ils mettent la clef sous la porte on peu quand meme faire quelque choses des fichiers templates d'origine).

Notre moteur de commerce électronique, eCommStep, utilise cette technologie.

17/12/2008 13:42

A propos de OpenXML...

Quelques infos sur les problemes de ce 'standard' et sur la facon dont il a été accepté:
OpenXML, standard ISO : un ratage d'envergure

OOXML is defective by design

Open XML : quand Microsoft montre ses crocs, le monde baisse son pantalon

On adore: les .docx

Un client m'envoit une lettre a signé, au format Microsoft Publisher.
N'ayant pas ce logiciel propriétaire, je demande le même au format pdf ou word (OpenOffice lisant les fichiers word .doc).
Quelle erreur !
Qu'est ce que je recois: un truc .docx: le fameux 'Microsoft Open Office XML Format'.
Grrr.

Evidement ca ne s'ouvre pas avec les versions de Microsoft Office antérieures à 2007, pas plus qu'avec ma version d'OpenOffice pas plus qu'avec n'importe quoi de standard.

Heureusement Microsoft, dans sa grande beauté (qu'il en soit mille fois remercié jusqu'à la fin des temps), offre un "Pack de compatibilité Microsoft Office pour les formats de fichier Word, Excel et PowerPoint 2007".
Evidement il faut avoir Microsoft Office v truc-bidule, mise à jour avec le service pack bidule chose.

Je pleure.

05/09/2008 21:48

Activation iPhone avec VMWare

J'ai telechargé la version workstation de VMWare sour linux, installé XP SP2 dessus, et installer iTunes.
Le problème est que le truc veut une configuration USB 3 et que d'autres drivers le passent en config 1 ou 2 avant... Bref erreur dans iTunes (1604).

Ma solution: mettre dans /etc/udev/rules.d/ un fichier 01-mg.rules comme celui-ci.

Cela force le peripherique en conf 3.
Les lignes sont probablement redondantes mais qui peut le plus peux le moins :-)

Avec ca j'ai pu restaurer le firmware de l'iPhone (attention le mettre d'abord en conf 1 s'il est bloqué en mode restauration puis 3 quand iTunes l'a fait rebooter pour poursuivre la restauration). Regarder dans syslog les modes proposés et celui voulut par VMWare/iTunes.


Lettre ouverte a Apple

J'ai commencé mon approche de la micro informatique sur le Apple ][, un système ouvert ou on pouvait faire des peek et des pokes :-)
J'ai rêvé du cube NeXT et de son NeXTstep puis plus tard de WebObjects.

Hélas, je crois que maintenant le divorce avec la pomme et son leader est consommé !

J'ai acheté un Mac il y a plusieurs années pour faire tourner WebObjects. Hélas, malgré les confirmation du service avant vente, l'achat de 2 ou 3 version de l'OS, des tonnes de reboot, impossible d'avoir une version qui marchait: tel truc requerait la version client mais tel autre la version serveur. J'ai finit par abandonner.

Aujourd'hui ayant accumulé pas mal de point chez Orange, j'ai fait l'achat d'un iPhone 3G.

Et le cauchemard a commencé !

La bête doit s'activer via iTunes (un truc pour vous piquer des tunes ?).
iTunes est un programme et non un simple site web. Ce que je n'avait pas vu. Il ne m'était pas venu a l'idée qu'on ait besoin d'activer un téléphone via une application propriétaire !

La version de iTunes nécessaire pour activer l'iPhone 3G ne marche que sous Mac Os X, XP SP2 et Vista.

1er essai: Windows 2000 (on ne sait jamais): téléchargement et hop: il refuse de s'installer

2eme essai: XP SP2 sous VirtualBox: re-téléchargemet et la problème de connection: erreur 0xtrucbidule

3eme essai: Mac OS X: re-téléchargement et echec: il réclame au moins la version juste apres de la mienne ! Ayant déjà acheté 3 version de Mac OS X en vain, je ne vais surement pas encore cracher une 100aine de dollar pour un ordinateur qui ne sert quasiment à rien.

Résumons nous: j'ai un iPhone et 4 ordinateurs sous Linux, plus 1 Mac, 1 Windows 2000, 1 Windows Me, un XP sous Virtual Box et malgré ca impossible de faire marche ce foutu téléphone !

Vous y croyez vous ?

Bien sur, ayant une license XP surnumeraire j'ai bien essayé de l'installer sur certaines machines, sans tout casser mais bon, c'est windows, il est capricieux et n'aime pas les machines avec uniquement des supports USB....

Voilà pourquoi je pense que je n'acheterais plus de produits Apple: trop de temps et d'argent donné a des gens qui se moquent des utilisateurs. Qui mettent des protections partout et traitent ainsi tous leurs clients comme de voleurs par défaut.


PS: Voir le billet suivant pour l'activation avec VMWare



28/08/2008 19:06

France Télécom: Service "professionel"

J'attend le déplacement d'une ligne depuis presque 1 mois maintenant. Les rebondissements ont été multiples:

- mon 1ere appel n'a pas été enregistré par leur service (l'operatrice a oublié de faire "Valider" ?)

- après 10 jours, je rappelle. Cette fois-ci ils me donnent une référence de commande et un RDV est pris pour le 25/08 (2 lignes à déménager).

- le 25/08: manque de bol, le technicien n'a mission que pour une des 2 lignes. La ligne déménagée ne marche d'ailleurs toujours pas plus d'1/2 heure après son passage alors qu'elle devait être OK dans les 10mn selon ses dires

- j'appelle donc le 1016: ligne marche pas et quid de la 2eme.... Ils doivent me rappeller

- finallement la 1er ligne marche (j'en ai été averti le lendemain 10h27 par SMS) mais rien de nouveau pour la 2eme

- je rappelle le 27/08: "c'est le mois d'aout, congé, etc.... si vous n'avez pas de nouvelles demain en fin d'après midi, rappellez-nous"

- je rappelle le 28/08 à 18h55 (NTP certified). Et la: nos services sont ouvert du lundi au vendredi de x heure jusqu'à 19h. Manque de pot: chez FT à 18h55 c'est deja 19h :-(

Grrrrr

20/08/2008 19:35

Les transporteurs

Tout mon petit matériel devait arriver hier et aujourd'hui mais les transporteurs en ont décidé autrement:

o UPS:
Le packet était en livraison mais subitement: "UN N°DE RUE CORRECT EST NECESSAIRE POUR LA LIVRAISON. UPS RECHERCHE CETTE INFORMATION.".
Rhaa sont fous eux ?
"4" ce n'est pas un numero de rue correct ?
Le pire c'est qu'il ont la bonne adresse (ils me l'ont mailé) et même mon téléphone...
Et ils decouvrent un problème une fois parti en livraison....

La derniere fois ils ont déjà m*rdé en envoyant un colis
a Lyon au lieu de le livrer une fois arrivé sur Paris. Bilan 2 jours de perdus...


o Coliposte: rien de nouveau: depuis hier c'est "19/08/08 Colis arrivé sur site, livraison en préparation". Ils doivent le bichonner...


o Coliposte bis: ca avance: hier c'était "19/08/08 Colis arrivé sur site, livraison en préparation" aujourd'hui c'est : "20/08/08 Colis traité par le site de livraison". Enfin, ca avance, façon de parler :-(

Moi j'vous dis: si ca continue va falloir que ca cesse....

19/08/2008 19:12

De la problématiques des bases de données

Galère de voir que la rue dans laquelle on aménage vient de changer de nom:
- chez France Telecom, ils connaissent alternativement le nouveau ou l'ancien, suivant sans doute laquelle de leur base ils interrogent
- Google MAP ne connait que l'ancienne
....

Ca aide quand on déménage....
Deja que chez 9neuf ils m'appellent Mr SOFTWARE BUILDERS GUESDON vu qu'il y a 8 ans l'ancêtre d'une de mes lignes téléphoniques (la "ligne" a été résiliée depuis et à meme changé de lieu) a du être à un moment au nom de "Software Builders" (mon nom d'indépendant).

Je crierais bien "je ne suis pas un numero" mais la en l'occurence ca simplifierait peut être la vie....

Neuf et le dégroupage

Soyons moderne: je viens de commander l'option TV qui est incluse avec mon abonnement Neuf.
J'ai failli cocher l'option dégroupage total mais un doute m'étreint sur ce que cela peut entrainer en sachant que lors de l'install de l'adsl ils (France Telecom ? Neuf ?) m'ont perdu mon no précédent et même ma "ligne" semble-t-il puisque le seul téléphone qui marche maintenant est celui de la 9box avec un nouveau numero sorti de je ne sais quel chapeau...
J'aurais en fait tendance à penser que je suis déjà en dégroupage total...
Et comme en plus y'a un techos FT qui doit passer pour déménager 2 lignes+1 ADSL, si je rajoute un dégroupage total je crains qu'ils ne s'embrouillent les fils....

Cool Coliposte !

Evidement je suis impatient de recevoir la soekris et ses accessoires :-)
Elle doit arriver par UPS, le reste par la poste.
Sur UPS, c'est prevu pour demain (esperons qu'ils ne le lui fassent pas faire un détour par Lyon comme pour mon dernier colis).
Quand aux accessoires: depuis ce matin le suivi colipe^Hoste indique pour les 2 colis: "19/08/08 Colis arrivé sur site, livraison en préparation". Bref: 1 journée pour préparer la livraison du colis ! Pas mal: plus de temps que les vendeurs n'ont mis à préparer et expedier la commande !

17/08/2008 15:03

Soekris

J'ai enfin commandé la carte Soekris 5501
acompagnée d'une carte CompactFlash de 16Go (Transcend) et d'une carte MiniPCI Wifi (SK-WMIR215GN).

L'idée est de faire un boitier sous OpenBSD supportant plusieurs connections xDSL avec OpenVN ett de la QoS pour la VoIP....

Plus d'infos dans quelques jours probablement...

08/08/2008 19:09

C'est une bonne journée ! - Reloaded

Suite à vos nombreux commentaires sur le 8 Aout 2007 (coucou Marcel !), on remet çà cette année !

Journée tranquille: ca m'a permi de commencer à me mettre enfin à Subversion....





16/07/2008 20:22

Les c* ca ose tout....*

Vu sur l'assistance Orange (Rubrique: Comment porter plainte efficacement contre un spammeur ?):

<<
Utiliser le RIPE pour identifier le service "abuse"

Pour identifier la source du spam, allez sur le site ripe.net
Saisissez l'adresse IP que vous avez trouvé dans l'entête de votre spam dans le champ "Search for" puis cliquez sur "Search".
....
Par exemple si l'IP source du spam est 81.57.40.26, vous aurez comme résultat le réseau Proxad (Free),
...
Le choix de Free pour notre exemple n'implique nullement que ses utilisateurs soient plus source de spam que les autres.
>>

Quand on voit la masse de spam émis depuis des adresses orange/wanadoo/oleane et le suivi des dépots de plainte aupres de abuse @orange, on rit... jaune...

* Emprunté à Michel Audiart