Your account is disconnected.

14:20:08 – Your account is disconnected.
14:21:13 – Your account is disconnected.
14:26:39 – Your account is disconnected.
14:27:22 – Your account is disconnected.
15:29:14 – Your account is disconnected.
15:29:57 – Your account is disconnected.
15:45:56 – Your account is disconnected.
15:46:27 – Your account is disconnected.
15:47:38 – Your account is disconnected.
15:48:04 – Your account is disconnected.
15:48:58 – Your account is disconnected.
15:59:52 – Your account is disconnected.
16:01:12 – Your account is disconnected.
16:04:18 – Your account is disconnected.
16:16:58 – Your account is disconnected.
16:17:33 – Your account is disconnected.
16:32:42 – Your account is disconnected.
16:34:02 – Your account is disconnected.
17:12:26 – Your account is disconnected.
17:13:54 – Your account is disconnected.
17:19:50 – Your account is disconnected.
17:20:33 – Your account is disconnected.
17:26:56 – Your account is disconnected.
17:27:36 – Your account is disconnected.
17:29:29 – Your account is disconnected.
17:33:55 – Your account is disconnected.
17:35:23 – Your account is disconnected.
17:39:17 – Your account is disconnected.

Merci qui ? Merci Free !!

28 dé-synchros de Freebox depuis 3 heures 30, soit ~7,2 dé-synchros par heure. Une dé-syncho toutes les 7,1 minutes en moyenne (avec 2 minutes de perdues pour re-synchro à chaque fois)… et j’ai vu pire ces derniers jours…

Je m’excuse (ou plutôt je n’excuse pas mon FAI) pour toutes ces décos/reco qui durent depuis deux semaines et qui doivent pousser certaines personnes au suicide à force de voir et/ou d’entendre les notifications de leur messagerie instantanée.

Je suis en train de passer chez SFR (du côté obscur de la Force qui soutient Hadopi/Loppsi) pour bénéficier de l’offre fibre optique 100/50 Mbps. Bien évidemment ils ont repoussé la date d’inscription, histoire de me faire poireauter plus que nécessaire (3 semaines pour débloquer le débit d’une ligne déjà active, bravo d’avance SFR !!) donc vous devrez supporter ca encore pendant j’espère au maximum une semaine.

Categories: Informatique, Réseaux Tags: , , ,

Chibi Japan Expo 2009 (preview)

Je suis allé ce week-end couvrir la convention Chibi Japan Expo en tant que photographe officiel et photographe pour le club Ephemere.

C’était bien sur super, avec le lot habituel de cosplays franchement réussis, des concerts qui sonnent bien le japonais, des sourires partout, des gens qui assument leur passion tous ensemble… J’adore ca.

Je suis revenu avec près de 4000 photos (encore un paquet d’heures vont être nécessaires afin de tout trier). La lumière sur place dans les allées était catastrophique, avec une horrible teinte jaune et une puissance trop faible pour faire des photos correctes sans flash. Sur scène, il y avait le matériel pour avoir de bons résultats ; mais là encore la régie a fait n’importe quoi et a utilisé des éclairages soit trop violents, soit pas assez, soit avec des teintes horribles (genre bleu pétant sur la figure) soit en faisant varier constamment et rapidement l’intensité des projecteurs. Les photographes souffraient, changeant constamment de balance des blancs en sautant de 3000K à 10000K et en priant pour avoir une photo correctement exposée dans le lot. En bref, ca a été formateur :)

Je vous pose ces deux rapides previews, la suite venant la semaine prochaine :

_DSC7254_DSC5560

Je dois aussi avertir les personnes qui ont assisté à la convention que la grippe A/H1N1 s’est propagée durant celle-ci. Inutile de paniquer, c’est qu’une simple grippe, mais si vous avez le moindre signe de faiblesse/toux/rhume/fièvre, consultez votre médecin généraliste et faites passer le mot. ;-)

Categories: Conventions, Photo Tags: ,

Sujet simplifié de la bistromathique

Plusieurs personnes me contactent (comme tous les ans, je trouve ca rigolo) pour avoir des infos sur la bistromathique. Aujourd’hui, au milieu des Tek1 en panique, j’ai eu un étudiant en commerce qui m’a demandé plus de renseignements sur le  sujet de la bistro. Histoire que ca profite à tout le monde je vais répondre ici :

Alors, la bistro c’est pas un programme très simple à faire, du moins ca ne se code pas en une soirée. C’est demandé à des Epitech 1ère puis 2è année et des Epita 1ère année d’ingénierie. Ca demande de l’acharnement (chercher continuellement à faire plus performant, plus rapide, etc…). J’ai passé un mois dessus en me concentrant quasi à plein temps pour arriver à un truc fonctionnel et rapide.

Globalement il s’agit de faire une calculatrice qui fonctionne sur des nombres très grands (des millions de caractères) et sur toutes les bases jusqu’à 255 si je me souviens bien.

On prend un gros fichier en paramètre du programme avec un grand calcul, genre 123451821*4894/(12354+4813) , mais avec des nombres bien plus grands et des milliers d’opérations (genre on a des fichiers de plusieurs gigas à traiter) et on doit trouver le résultat le plus rapidement possible.

C’est à coder en C pur, C99 autorisé, toutes optimisations du compilateur autorisées aussi.

On doit donc tout d’abord lire le fichier d’input pour le stocker en ram, puis le parser (avec les 5 operations +-*/% et les deux parenthèses). On doit bien évidemment gérer les priorités. Une fois ceci fait, il faut résoudre le calcul et l’afficher (ou l’enregistrer dans un fichier).

Voila pour le sujet, bonne chance si vous voulez travailler dessus. C’est un projet passionnant et extrêmement formateur, mais il demande un peu de temps et de recherches.

Bistromathique

J’avais fait un bel article sur mon ancien blog, avec toutes les idées que j’avais eues à la fin du projet d’Ing1 : Bistromathique. Comme plusieurs personnes m’ont demandé des infos sur le projet, je vais refaire cet article ici à partir des bribes trouvées dans la base de données que j’ai gardée.

Nous avons planché sur plusieurs projets en langage C depuis le début de l’année, mais un seul a réellement retenu mon attention : il s’agit de la Bistromathique. Qu’est ce que cela ? Il s’agit d’une calculatrice capable de travailler sur des grandes bases (ici on a implémenté jusqu’à la base 249) et sur des nombres entiers signés potentiellement infinis (nous nous sommes limités à une expression ayant pour taille maximale 4 294 967 295 caractères).

J’ai commencé par travailler sur une représentation en tableaux de caractères (tableaux d’entiers 8 bits non signés : des unsigned char* sur archi 32 bits), en implémentant l’addition, la soustraction et la multiplication scolaire, ainsi qu’un algorithme proche de celui de Knuth pour la division et le modulo. J’ai utilisé les tableaux en Big Endian pour faciliter les opérations commençant sur les poids faibles, et pour éliminer rapidement les 0 non-significatifs. De plus, le décalage à gauche étant plus souvent utilisé que le décalage à droite, cette représentation de chiffres était doublement intéressante.

Ma première grosse optimisation a été de récupérer les buffers déjà alloués pour les stocker dans une chaine de buffers vides. Mine de rien, j’ai multiplié par au moins 50 la vitesse de ma bistro avec cette astuce ! En effet, j’allouais pour chaque opérande de mon expression, ce qui faisait des milliers de mallocs ! Grâce à cette technique, sans même me casser la tête à trier les buffers vides dans la liste chainée, je suis descendu entre 10 et 25 mallocs sur tout le programme ! (Mes tests étaient composés d’expressions de 10 Mo et d’opérandes de 1 ko à 10 ko.)

J’ai ensuite transformé le programme pour qu’il utilise des tableaux d’entiers 32 bits non signés (unsigned long* ou unsigned int* sur archi 32 bits) et j’ai adapté l’addition et la soustraction. Voyant que les résultats étaient plus lents sur ceux-ci, j’ai abandonné cette voie de recherche (mauvaise pioche, j’aurais du continuer) : en effet, cette implémentation nécessite 3 parcours linéaires pour les additions et soustractions, mais accélère considérablement les multiplications !

Ensuite, pour accélérer ma multiplication, j’ai travaillé sur l’algorithme de Karatsuba. Malgré mes efforts sur la gestion mémoire, je n’ai pas pu empêcher l’allocation de deux structures de nombres et des chaines de caractères les accompagnant à chaque récursion de l’algorithme, ce qui a multiplié par 12 le nombre d’appels systèmes de mon programme sur mes tests. La conséquence de cela a été qu’en utilisant Karatsuba plutôt que la multiplication naïve, je doublais le temps de calcul.

Pressé par le temps, je me suis rabattu sur une optimisation de la multiplication naïve en utilisant seulement pour elle la représentation en tableaux d’unsigned long. Le gros point faible est qu’à chaque multiplication, je fais trois conversions : deux pour passer les deux opérandes en unsigned long*, et une pour repasser le résultat en unsigned char*. Malgré cela, mes résultats sur la multiplication naïve on été fulgurants (division par 9 à 18 du temps de calcul)

J’ai ensuite été contraint à rendre mon travail, timeout projet oblige.

Mes idées restantes si j’avais encore eu du temps :

  • Repasser entièrement sur des tableaux d’unsigned long, tellement plus rapides pour les opérations complexes (multiplication, division et modulo).
  • Retravailler Karatsuba notamment en allouant sur la pile plutôt que sur le tas à l’aide des tableaux dynamiques apportés par le C99 auquel nous avions droit
  • Trouver une astuce pour calculer rapidement l’heuristique de mon algorithme de Knuth modifié avec la nouvelle représentation des nombres.
  • Pouvoir gérer l’expression originale comme un buffer utilisable, donc pour cela déterminer les parties d’expression traitées pour utiliser cet espace mémoire obsolète : celui-ci était alloué à 10 Mo minimum, ca aurait été un gain considérable !
  • Permettre deux représentations de nombres en parallèle avec conversion éventuelle selon le type d’opération à effectuer pour accélérer les calculs type addition/soustraction seulement lorsque les opérandes viennent de l’expression originale)

Au final, je peux dire que ce projet m’a énormément appris, tant sur la gestion mémoire que sur de nouveaux algos (parseur LL d’expression mathématique, Karatsuba, Knuth…) ou sur l’expérience du debug (maintenant je ne peux plus travailler en C sans Valgrind tellement c’est utile).

Note : Je ne peux pas donner mon code source ici, simplement parce que d’autres épitéens ont des chances de tomber sur cette page alors qu’ils ont le projet à coder. Si certaines personnes veulent voir mon travail, qu’elles me contactent.

Nouveaux travers de Seven

Eh oui, le système est tout neuf et on va retrouver tous les bugs rigolos. Je suis en train d’écrire ce billet et il m’en arrive un nouveau à propos de la copie de fichiers qui déconne.

Chapitre 1 : les 0 éléments restants à copier.

En effet, je fais un gros backup de mon dossier d’images qui contient très majoritairement mes photos (182 Go, 53 842 fichiers) et ce gros neuneu de Seven m’annonce une copie de 9 372 éléments, finissant bien évidemment avec une barre de progression pleine, 0 éléments restants à copier en continuant pourtant son travail de copie…

Au bout de 20 secondes il pige son erreur, seulement à moitié et finit par me mettre une barre de non-progression (celle qui indique qu’il sait pas vraiment où il en est).

Cerise sur le gateau : il fait chuter constamment la vitesse de transfert (il était à plus de 20 Mo/s au début ; le temps d’écrire ce pavé, il est tombé à 7.91, 7.88, 7.79…). Il est pourtant évident vue la vitesse de copie des images qu’il va bien plus vite qu’indiqué, et à vitesse constante…

seven-1

seven-2Pitoyable…

Chapitre 2 : je ne partagerai pas MON imprimante !

Autre souci : le partage d’imprimantes. On va encore taper sur Petit mou cette fois-ci. Voyez plutôt :

Mon PC fixe est maintenant sous Seven. Le système a détecté lors de l’install que je pouvais gérer le 64 bits donc il s’est installé dans ce mode. Les drivers sont donc aussi dans la mesure du possible en 64 bits, comme c’est le cas pour mon imprimante.

Eh oui seulement le portable de ma mère, lui, tourne sous un bon vieil XP 32 bits, et il peut pas charger le driver via le réseau pour installer mon imprimante (en réseau, c’est le but du partage d’imprimante) car il cherche un driver 32 bits ; Seven ne possèdant que la version 64.

Cherchons un peu, on trouve dans « Périphériques et imprimantes » mon imprimante (vrai !). De là, on saute sur les propriétés de l’imprimante et on trouve un magnifique onglet gris nommé « Partage ». En bas, on voit un superbe bouton intitulé « Pilotes supplémentaires… ». Ca sent bon le succès tout ca !… mais je tiens à vous rassurer : si j’écris ca dans les travers de Seven c’est qu’il y a un… travers.

seven-5

Clicouillons donc… On me propose d’installer en plus du pilote x64 un pilote Itanium dont je n’ai rien à faie et un pilote  x86 ! Joie ! On coche et valide… Bim ! « Veuillez fournir un pilote d’imprimante ». Avec un bouton « Parcourir ». Il veut un fichier INF. Rien que ca…

seven-3

seven-4

Bien évidemment, chez Canon, ils te filent un exécutable bien empaqueté, tout joli, qui fait le boulot à ta place, vérifie lors de son exécution le type de système que tu as pour t’installer uniquement le bon driver sur ta bécane (x64 dans mon cas) et rien d’autre… Je fais comment pour installer mon driver x86 moi ?

Cher lecteur, si tu as une idée, elle est la bienvenue car je n’ai pour l’instant pas trouvé de réponse à cette question.

Jordan Rudess, pianiste de génie

J’aime la musique. Ca les gens autour de moi le savent. Je ne peux pas passer plus de quelques heures sans musique sous peine de grave déprimer et ressembler à un hamster apathique souffrant d’une rage de dents.

Je ne sais plus comment j’ai découvert le groupe Dream Theater mais c’est un groupe que j’ai mis du temps à apprécier, et pour tout vous dire : je n’accroche pas sur tous leurs albums. Leur style a évolué avec le temps, passant de choses que j’aime à d’autres dont je suis moins fan. De temps en temps j’ai une bonne surprise avec eux.

Ce groupe a quand même une particularité : celle d’être composé de musiciens hors pair, doués comme pas deux sur leurs instruments respectifs, comme John Petrucci le guitariste qui doit être une des rares personnes à déclencher un  orgasme auditif chez moi (« le chant dans mon pantalon » que je lis dans les spams sur ma boîte GMail), un des meilleurs guitaristes au monde, tous styles confondus. Il fera peut-être l’objet d’un autre billet si l’humeur m’en dit.

Parlons plutôt de Jordan Rudess, pianiste (claviste en fait, il fait tout ce qui est synthé aussi) chez Dream Theater. Ce gars est grave doué. Il est capable de prouesses avec son piano comme j’en entends rarement, autant au niveau mélodique que technique (il doit taper sur les touches à la vitesse d’un pivert parkinsonien épileptique).

Je ne vais pas vous faire patienter plus longtemps pour vous faire découvrir un morceau de son dernier album solo sorti en 2009 intitulé Notes on a Dream, qui reprend des airs des précédents albums de Dream Theater. En fait presque tous les morceaux de cet album valent leur pesant de cacahuètes. Si ça vous plait, foncez vous procurer la suite :D

Notes on a dream - Hollow Years

Je vous met sa page Wikipedia qui explique son histoire, sa vie, son œuvre si vous voulez de la lecture.

http://fr.wikipedia.org/wiki/Jordan_Rudess

Windows 7

J’en avais marre de ce vieux XP qui traînait sur mon ordi fixe, qui bugguait toujours, dont les applications lançaient toujours ces énervantes fenêtres avec la grosse croix rouge qui fait « Bong ! », qui refusait une fois sur deux de s’éteindre après que je le lui aie demandé… Bref après presque neuf ans de (presque) bons et loyaux (hum…) services, j’ai fini par dire au revoir au dinosaure.

Vista avait été une catastrophe chez moi. A peine installé, j’étais revenu sur ce bon vieil XP qui tournait à peu près et ne me demandait pas 20 confirmations pour installer Visual Studio.

_Vous êtes sur ?

_ Oui !

_ Sur de vrai sur ?

_ OUI !!

_ Nan mais y’a ptet quelqu’un qui signe son document « Petit Mou Corp. » qui veut vous faire du mal ! Vous voulez vraiment installer « Petit Mou Studio Visuel 2008 » ? Ca semble louche…

_ OUI !! Bordel !

_ Et cet outil de « Petit Mou Inc. » qui doit s’installer avec ?

_ Raaaah !!

Maintenant Seven est sorti, et il faut bien le dire, Seven est quand même bien plus abouti que Vista (qui a dit « on sort enfin de la bêta ? »).

Le nouveau thème est beau, plein de petits trucs pratiques ont été rajoutés à l’UI pour que ca soit agréable à utiliser. Ca rame pas trop, on se paye même le luxe que ca soit a peu près fluide ! Incroyable.

M’enfin, depuis deux jours que je tourne dessus je peux déjà poser quelques griefs (le monde n’est pas parfait, ou plutôt si il était parfait alors que Windows existait, je me poserais de vraies questions…) :

  • Ca a ramé/freezé quelques fois, mais pas plus qu’XP. On reste donc dans un système Microsoft (on a les pieds sur terre quand même…)
  • Je dois dire adieu à ma webcam Philips Toucam Pro 2 qui a le malheur d’avoir été conçue par un constructeur (Philips pour ne pas le dénoncer) qui, en plus de ne pas savoir coder un driver sans le faire segfault 9 fois sur 10, se fout de ses client en n’assurant pas de compatibilité de ses produits et chez qui je ne suis pas prêt de racheter quoi que ce soit.
  • la gestion du tri-écran déconne presque à tous les coups, à moins que ca soit les drivers nVidia qui soient toujours pas au point. Bref, quand ça démarre, il faut toujours qu’un des écrans (et toujours le même) ne sorte pas de sa veille. Faut dire que c’est un écran Philips (combo !). J’ai peut être vraiment la poisse…
  • Mon scanner a pas l’air d’avoir un driver qui fonctionne. Je dois me repencher dessus mais ca sent mauvais. C’est pas un scanner Philips au moins… quoique c’est un Agfa… qui a aussi décidé d’arrêter les scanners…

Sinon ca fait bizarre d’être sur un système 64 bits, avec des applis qui tournent en 32 et d’autres en 64. Le truc le plus bizarre dans tout ça c’est l’organisation foireuse des logiciels dans le système : un dossier « C:\Program Files » (nommé immondément Programmes) qui sert pour toutes les applis qui sont comme le système, en 64 bits, et un autre « C:\Program Files (x86) » pour tout ce qui est 32 bits…

On a aussi cette distinction cheloue dans « C:\Users\Ornthalas\AppData » où on trouve les dossiers :

  • Local
  • LocalLow
  • Roaming

Il va falloir se faire à cette nouvelle architecture…

Pour l’instant je croise les doigts. Les petits problèmes de drivers viennent gâcher le plaisir mais au moins je suis à jour sur un système plus réactif, sécu et propre que le précédent.

Nouveau blog (encore un)

Hop, un nouveau blog pour remplacer l’antiquité bugguée qui était la avant…

J’ai décidé que je parlerais de tout et de rien ici, du dernier troll en cours ou encore de ma dernière photo foirée. Quentin a beau me dire que je vais abandonner, que ca sert à rien d’écrire… juste que parfois ça fait du bien de se défouler, même si j’ai mieux à faire que de perdre mon temps à écrire des conneries ici.

Alors, à toute personne qui cherche à se renseigner sur ma personne, à voir si je suis une personne correcte à embaucher pour un poste à responsabilités très cher et très bien : si j’écris mes conneries ici c’est justement pour éviter de perdre mon temps à les déblatérer trop devant de vrais gens dans la vraie vie. Ne m’en voulez-pas pour ca, ca ne fait pas de moi une personne moins valuable, embauchez-moi toujours, je le vaux surement ! :D

Categories: Informatique Tags: