Jonathan.Michalon.eu

$HOME de Jonathan

31 mars 2012

Dur, dur le master

Petit calcul de la journée.

  • On est le 0 avril (ça simplifie le calcul), un samedi.
  • Le master termine le 11 mai.
  • Il reste donc 30 + 11 jours soit 41.
  • On peut déjà soustraire demain dimanche. 40.
  • Dans les jours qui viennent :
    • Il y a une semaine de vacances ;
    • Le vendredi saint et le lundi de pâques sont fériés ;
    • Le 1er mai et le 8 mai sont un mardi, donc fériés utilement ;
    • Il y a 5 semaines donc 5 week-end.
  • Donc on peut soustraire 5 + 2 + 2 + 10 jours, soit 19 jours.

Il reste donc 21 jours réels pour avoir des cours, des interros etc.

C'est pas beau la vie ? Plus que 21 jours (et même parmi ceux-là certains sont encore vides dans l'emploi du temps) et c'est les vacances ! Les grandes vacances d'été !

02 mars 2012

Pour changer de l'info : du miamiam

Ce blog n'a principalement que des billets à propos d'informatique. Pour varier un peu voici une autre réalisation (plus éphémère) que j'ai affectuée avec un autre geek… en environ 3h (à deux) !

Un spécimen de la fameuse tarte « Forêt-Noire » :

découpe forêt noiredécoupe forêt noire2

11 févr. 2012

Drupal : duplication de blog

Depuis un moment je m'amuse à créer ma « page perso », jonathan.michalon.eu. Mais mon « blog » qui n'en est pas vraiment un est créé sur une autre instance de Drupal, dans une autre base de donnée, affichée par chalmion.homelinux.net (je n'avais pas michalon.eu au début…).

J'ai voulu rendre disponible le même contenu sur les deux sites. Mais comme les deux instances de drupal ont leurs données dans deux bases de données différentes, c'est pas évident.

À l'aide du fameux module views, et grâce à un peu de documentation en ligne (comme ce post), j'ai finalement dû faire un mini-module qui génère la requête SQL produisant les données à afficher dans une instance depuis la base de l'autre.

Le module contient une seule fonction php, un hook, qui est appelé par views et modifie la requête pour la vue de mon blog.

<?php
function getblog_views_pre_execute(&$view)
{
    global $language;
    if($view->name=="blog")
    {
        $view->build_info['query']="
            SELECT node.nid            AS nid,
                   node_revisions.body AS node_revisions_body,
                   node.title          AS node_title,
                   node.created        AS node_created,
                   node_revisions.format AS node_revisions_format
                   FROM drupal6.node node
                   LEFT JOIN drupal6.node_revisions node_revisions
                   ON node.vid = node_revisions.vid
                   WHERE type='blog'
                   AND node.uid='1'
                   AND language='->language'
                   ORDER BY created desc
         ";
        $view->build_info['count_query'] = $view->build_info['query'];
    }
}

La requête est une variante de celle générée par views pour afficher tout le contenu du site, avec les champs titre, date, corps.

Il a aussi fallu changer l'URL de chaque billet de blog pour pointer sur l'autre site, puisque les données ne sont pas réellement sur jonathan.michalon.eu. count_query doit contenir une requête produisant le nombre d'entrées que la requête principale donnera, pour le calcul de mise en page (nombre de billets par page).

09 févr. 2012

Alim' trop de bruit ? no problem !

Sur mon "nouveau" desktop le ventilateur de l'alimentation faisait beaucoup de bruit (à mon goût). Mais après quelques menues manipulation, c'est réglé !

Tout a commencé en googleant la référence de l'alim. Sur les photos on voit bien que les ventilateurs sont standards. En fait ce sont des 80×80×25 mm, comme souvent les ventilateurs de coques.

Moi et un collègue avons donc décidé de tenter de le remplacer. Mais les connecteurs n'étaient pas compatibles. Nous avons soudé le connecteur de l'ancien ventilateur au nouveau, tout refermé et oh! stupeur, le ventilateur tourne, certes, mais vraiment très lentement… beaucoup trop lentement pour être utile.

Les spécifications des deux ventilateurs nous ont appris qu'ils n'ont pas du tout le même ampérage, et donc, pas la même résistance. Le débit de courant étant probablement limité en interne sur l'alim, il était sous-alimenté.

Mon collègue a alors suggéré de brancher le ventilateur de remplacement à son endroit habituel, à l'extérieur du bloc de l'alim. Ce que nous avons fait. Mais nous n'étions pas au bout de nos surprises.

En fait c'est une grosse alim de serveur, avec DEUX ventilateurs, le second devant assurer le refroidissement avant l'intervention d'un technicien en cas de surchauffe. Et donc sans ventilateur principal, l'alim crie (bip-bip-bip !), allume un voyant rouge et lance bien le deuxième ventilateur. Un bouton permet de couper le signal sonore.

Du coup ce matin j'ai un peu étudié l'idée de mettre une résistance sur la fiche du ventilateur principal. Pour éviter qu'elle ne surchauffe puis grille il faut apparemment qu'elle soit la plus grosse possible (logique) mais pour diminuer l'intensité il suffit aussi de mettre une résistance forte ; nous avons choisi une résistance de 100 Ohms, qui correspond à une résistance entre les deux ventilateurs que nous avions utilisés, l'ancien et le nouveau.

Nous avons donc soudé cette résistance (trouvée sur une vieille carte d'électronique que j'avais gardée pour le cas où) sur l'ancien connecteur du ventilateur que nous avions coupé. Et cette fois-ci le tour est joué ! (Presque) plus de bruit, et pas de signal d'alarme.

Tout ça pour un peu de bruit !

21 janv. 2012

Mince, mon uptime !

Oui, ce serveur avait réussi à atteindre un uptime sympa, un peu plus de 100 jours (date de la dernière mise à jour du noyau Debian). Mais ce matin, de 11:33:30 à 12:23, il y a eu coupure de courant… donc mon onduleur n'a pas suffit. Il a tenu environ 10 minutes quand même.

N'empêche, c'est long, 50 minutes sans son PC, surtout quand on est coupé brutalement (à cause de l'écran) en plein travail (oui je travaillais vraiment !).

Edit: il tournait exactement depuis le 9 octobre 2011 (merci les logs), soit 104 jours.

20 oct. 2011

Nouveau gâteau

Mercredi dernier, drame : On m'appelle à la rescousse car le portable n'a plus de réseau ; bizarre. J'interviens et découvre que le module wifi prétend sans cesse que la cate wifi est en "deep sleep". Après un rechargement du module, pareil. Je ne comprends pas trop, alors même sous Linux : dans le doute, reboot ! Seulement, le reboot, eh bien il ne se fait pas. Je l'avais lancé en root depuis la console mais quelque chose le bloque. Je me résigne donc à faire les touches magiques pour redémarrer ; et là c'est le drame : plus d'affichage. Comme l'autre fois, à part que là le PC n'avait pas chauffé ni rien. J'apprends plus tard que l'écran du portable avait été rabattu, ce qui, avec les paramètres par défaut de Gnome, met en veille. Ça explique pour la carte wifi (même si elle aurait quand même dû se réveiller). Mais pas pour la carte graphique puisque avant le reboot forcé elle fonctionnait ! En tout état de cause, j'ai osé remettre la carte graphique au four ce matin, comme la première fois. Et ça a à nouveau fonctionné ! Youpi !

05 sept. 2011

Quoi, déjà un an ?!

Dans deux jours, donc le 7 septembre, l'installation de ce (mon) serveur aura un an ! Bon, il est vrai que je n'ai pas immériatement créé ce site ; il n'en reste pas moins que le système aura un an ! Préparons-nous tous à lui souhaiter un joyeux anniv' ! Vous avez une idée de cadeau ?

Déjà un an !

Au fond je me demande bien ce que j'ai fait avec ce serveur… pas tant que ça en fin de compte. C'est bien dommage d'avoir les moyens matériels et de ne rien en faire. J'espère que cette année avec mon master réseau et système embarqué je pourrai en tirer bien plus…

Finalement en réfléchissant un tant soit peu j'arrive quand même à une bonne liste :

  • cache APT
  • tuiles T@H
  • mumble / murmur
  • gitosis
  • mails
  • apache
    • forum
    • blog
    • bulles ludo
    • liste diffusion
    • galerie photos
  • jabber + passerelle
  • mysql
  • builder Debian
  • serveur teeworlds
  • sauvegardes données perso et gestion photos
  • dnsmasq (cache DNS)
  • DHCP
  • home NFS de mes parrents
  • torrent (iso debian et ubuntu)
  • serveur d'imprimante
  • scanner en réseau
  • photocopies en une touche (avec le scanner + imprimante)

Ça valait quand même le coup de s'amuser avec…

01 juin 2011

DNS en folie !

Aujourd'hui c'était la journée des DNS en folie. J'ai tourné autour depuis ce matin, non-stop (à part miam miam et un petit teeworlds de rien du tout).

Problème : Je suis passé à Debian (car je ne me retrouve plus dans ce que devient Ubuntu ces temps-ci) et beacoup de requêtes DNS mettaient 5 secondes à compléter. J'avais déjà noté le problème sur le serveur sans m'y attarder mais là pour la navigation c'était juste horrible.

En fait Debian Squeeze a une glibc un tantinet plus récente que Ubuntu Lucid Lynx qui intègre une optimisation des requêtes DNS en parallèle ; en effet le système émet des requêtes de type A (IPv4) et AAAA (IPv6) à chaque fois (y compris sans connectivité IPv6), ce qui ralentit pas mal et donc ils ont voulu arranger tout cela un peu.

Bref il est dit que, sur un pourcentage infime d'ordinateurs, cela posera problème car sur les deux requêtes, une seule réponse lui parvient. Cela serait soi-disant dû au serveur DNS ou un firewall intercalé bugué.

Solutions ; j'ai dû passer facilement 5h là-dessus ; forcer le séquentiel a fini par fonctionner. Cela se fait en mettant

options single-request

dans /etc/resolv.conf

Une autre solution est d'utiliser un cache DNS qui lui ne parallélise pas, et en passant on y gagne en performances. Ce que j'ai fait. J'ai donc installé dnsmasq sur mon serveur. Il sert de cache DNS, lequel utilise aussi les données de /etc/hosts et permet de fixer des associations. Donc tout mon LAN peut résourde directement tous les noms de machine locales (sans hack du style avahi car je les ai en dur), et j'ai mis les noms de domaines hébergés chez moi (chalmion.homelinux.net et www.michalon.eu) directement avec l'IP du conteneur qui a apache. Donc plus besoin de « sortir » de chez moi pour les associer à mon IP et les utiliser.

Bon après cela comme j'avais tenté diverses solutions le matin j'ai eu quelques surprises. J'avais désactivé IPv6 totalement mais sshd ne le supporte pas et me faisait des erreurs stupide sur le X11Forwarding. Le temps de trouver la correlation entre les deux (car cela fonctionnait sur mes autres Debian Squeeze en tous points semblables) m'a gaspillé une bonne partie de l'après-midi…

Enfin j'ai un cache DNS maintenant, je l'ai déployé partout (conteneurs virtuels, PCs) et c'est quand même sympa de se dire que j'ai un peu optimisé mon setup.

Documentation sur les modifications de la glibc :

chez udrepper, §DNS NSS improvement

Bug chez Ubuntu :

sur launchpad

27 mai 2011

/dev ? OSEF !

Tout le monde connait les fichiers UNIX spéciaux placés dans l'arborescence sous /dev.

Mais que ce passe-t-il quand on les détruit (un peu par erreur…) ? RIEN ! C'est ce que je viens de tester.

En faisant le grand ménage, j'ai supprimé un vieux Debian sid sur lequel je faisais un chroot pour créer mes paquets Debian avant d'utiliser le serveur. J'ai un joli petit script qui m'y place et fait le binding de /dev de l'hôte sur /dev du chroot. Donc j'ai utilisé une dernière fois ce script pour voir si je n'avais rien à récupérer avant le grand rm -rf qui s'impose. Vous aurez tous deviné que ce rm, grâce au bind, a atteint tout le /dev du système hôte… oups ! J'ai eu quelques problèmes du style pas de /dev/null pour les scripts (dont la complétion automatique) et pas de /dev/urandom pour l'encryption pgp, mais rien de bien méchant. Pour réparer cela j'ai fait un petit MAKEDEV generic mais il m'a créé toute la panoplie, dont le plus impressionnant est sans aucun doute la série de blocs disque dur sd[a-p][1-15]. Cela ne crée cependant pas les liens comme cdrom -> sr0 etc. J'ai donc redémarré, et oh ! surprise : comme si de rien n'était. Liens, sd* et tout le reste étaient rentrés dans l'ordre. Pour en avoir le cœur net, j'ai redémarré sur mon autre système, supprimé complètement le /dev de l'autre système et toujours pas de soucis. En fait (on le voit avec les montages), /dev est entièrement en ram, dans un devtmpfs. Donc on peut faire l'imbécile autant qu'on veut ça ne survit pas à un redémarrage.

Bref, /dev sur le système de fichier ça ne sert apparemment plus à rien.

02 mai 2011

MSDNAA

Dernière présentation de projets ce matin, il ne reste que les exams avant les vraies vacances !

Je me suis attelé à quelque chose d'étonnant pour qui me connait : avoir Windows 7 ! Mais j'ai des excuses : on a droit en tant qu'étudiant de l'UDS à des licences Microsoft, telles Access, Visual Studio, … à condition de les utiliser à but pédagogique. Donc je me suis dit qu'avoir un petit Win7 sous la main, vu que pour une fois il est -- légalement -- gratuit, pourquoi pas. Il faut en profiter.

Le site est plutôt mal foutu, comme bien on se doute mais j'ai fini par avoir la clé de mon win7 et un lien de téléchargement. Mais :

D'abord évidemment on ne télécharge directement qu'un .exe sympatique : Downloader_for_Windows_7_Pro_RTM_x86_fr.exe ! Il faut donc utiliser wine… Suspense : le Downloader fonctionne sous wine ! Après ils prétendent avoir besoin de 16Go de place pour le téléchargement, ce que je n'ai pas sur mon 80Go partitionné en … hum, beaucoup. Je fais donc un sshfs du dossier C:\Temp indiqué vers mon serveur. Et là après deux tentatives (enfin j'ai juste relancé le .exe quand au bout de 10 minutes il n'avait pas dépassé un truc comme "Initilizing connection"), le téléchargement commence. Youpi, ouf c'est pas trop dur finalement.

Sauf qu'au bout d'un moment je vois le téléchargement s'interrompre et trouve cela :

capture écran

Mouais… quoi de plus explicite ?

Pour voir où ça en était je fais un petit du sur le dossier .wine et trouve une somme plus grande que la taille du fichier annoncée, 2.2 Go, d'où je m'étonne un peu. En fait en regardant le détail, il télécharge tout dans un dossier temporaire avant de le mettre dans le final. Bref, tout en double dont une copie dans mon home où il n'y a pas trop trop de place.

2255724 .wine/drive_c/users/john/Local Settings/Temporary Internet Files/Content.IE5/OPMR3L15
88      .wine/drive_c/users/john/Local Settings/Temporary Internet Files/Content.IE5/SXZ465XR
12      .wine/drive_c/users/john/Local Settings/Temporary Internet Files/Content.IE5/KI8E015K
80      .wine/drive_c/users/john/Local Settings/Temporary Internet Files/Content.IE5/W5DHAOSC
2256356 .wine/drive_c/users/john/Local Settings/Temporary Internet Files/Content.IE5
2256360 .wine/drive_c/users/john/Local Settings/Temporary Internet Files
4       .wine/drive_c/users/john/Local Settings/Application Data

$ ll .wine/drive_c/users/john/Local\ Settings/Temporary\ Internet\ Files/Content.IE5/OPMR3L15/
total 2255728
-rw-r--r-- 1 john ban        154 2011-05-02 11:23 auth_check[0]
-rw-r--r-- 1 john ban        154 2011-05-02 12:12 auth_check[1]
-rw-r--r-- 1 john ban       3372 2011-05-02 11:24 auth_redirect[0]
-rw-r--r-- 1 john ban 2147483647 2011-05-02 12:09 fr_windows_7_professional_x86_dvd_x15-65810.01[0]
-rw-r--r-- 1 john ban  162333517 2011-05-02 12:12 fr_windows_7_professional_x86_dvd_x15-65810.02[0]
-rw-r--r-- 1 john ban       1191 2011-05-02 11:24 menu_msdnaa[0]
-rw-r--r-- 1 john ban       6359 2011-05-02 11:24 site_eacademy[0]
-rw-r--r-- 1 john ban         43 2011-05-02 11:24 spacer[0]
-rw-r--r-- 1 john ban         43 2011-05-02 12:12 spacer[1]
-rw-r--r-- 1 john ban       3361 2011-05-02 12:12 Temp[0]

Comme c'est joli !

J'ai donc dû monter tout le .wine en sshfs sur le serveur. Sauf que wine faisait ouin ouin en disant que son .wine n'était pas à lui et en effet avec sshfs on garde les propriétaires du serveur, donc j'étais pas moi sur ces fichiers. J'ai découvert -o idmap=user et le tour était joué.

295724  .wine/drive_c/users/john/Local Settings/Temporary Internet Files/Content.IE5
295056  .wine/drive_c/Temp

(progression prise après fix)

Après cela, en fait le fichier téléchargé est un obscur .sdc qui est un format maison MSDNAA. Donc il faut encore le décrypter avant d'avoir son iso. Mais wine et le petit .exe ont fait ça à merveille, ouf ! Soit dit en passant, au moment où on finit de décrypter on a trois copies du schmilblick : la temporaire (qui dure ! il ne la supprime pas), la .sdc et l'iso.

Tremblant, j'essaye le .iso dans VirtualBox et… ça fonctionne ! Un petit dernier pour la route, le message fourni en quittant l'installeur de win7 :

Pour installer Windows, vous devez exécuter l'installation de Windows.
Si vous annulez l'installation,il se peut que votre ordinauteur redémarre.

Appréciez le "il se peut".

Bref quand j'aurai fait l'installation j'aurai (ou je devrais avoir) un Win7. Limité à une installation (comment ?!), réservé à la pédagogie (je me demande comment ils testent ?) et tout nu sans rien dessus mais quand même.

Blue Penguin Theme · Powered by Pelican · Atom Feed · Rss Feed

Copyright © 2011-2021 Jonathan Michalon. Vous pouvez réutiliser tout contenu diffusé, sauf mention spécifique.