31 mars 2012
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
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
» :
11 févr. 2012
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
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
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
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
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
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
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
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
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 :
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.