c'est pas un pigeon, c'est mon pigeon !

| manky | 30Apr07 | 0coms

Putain, pour une fois que ça me fait chier d’avoir déjà un boulot, et oui… Last.fm s’installe à londres et recrute des informaticiens… Qui programment en PHP, qui savent gérer des serveurs Debian Linux et qui écoutent de la musique tout le temps…

Rha la bite.


Tags: , , , , , ,

| manky | 20Mar07 | 2coms

Juste pour vous dire que le serveur sera mis hors ligne soit ce soir, soit demain matin pour une durée entre 8 et 10 jours le temps que je fasse des modifs à grande échelle.

Voilà.


voir les commentaires

Tags: , , , , , , ,

| manky | 09Mar07 | 0coms

D’ici deux semaines à peu près Helios sera mis hors ligne pour des bidouilles à grande échelle. Je ne sais pas combien de temps ça va prendre mais ça ne va pas être aussi long que pour le déménagement.

Je ne peux pas vous donner des dates précises car ça dépend d’autres facteurs mais je ferais tout pour que ppgac revienne aussi vite que possible.


Tags: , , , , , , ,

| manky | 01Mar07 | 2coms

Les serveur sur lequel se trouve ppgac (et plein d’autres trucs d’ailleurs) s’appelle Helios, c’est pas un nom super originale mais ça fait bien longtemps qu’ils s’appelle comme ça et en pensant à tous les fichiers de configuration que je devrais changer si je voulais le renommer, et bien disons que je me sens plus que prêt à garder le nom Helios.

Bon, je vous décris la scène, je suis en train de regarder un épisode de Dexter, le fichier se trouve sur un des disques de Helios (pas encore transféré vers Deadalus, mon serveur de fichiers, depuis le répertoire de récéption de Helios), et tout d’un coup Dexter se bloque. Je me dis que ça doit juste être quelques frames perdus, quelques ko du fichier qui ont été corrompus.

En faite Helios avait arrêté de répondre complètement.

Un petit coup de KVM (un boîtier permetant de brancher plusieurs ordis sur un écran/souris/clavier) et hop, un écran noir pour Helios. Je rédémarres. Rien. Là je commences à avoir peur, je me dis que finalement une pièce a grillé alors j’ouvres le boîter de Helios pour voir s’il y a des traces noires ou des étincelles en allumant la machine. Rien.

Helios tourne sous Debian linux et est la machine avec la configuration logicielle la plus avancée de mes serveurs, une des choses que j’ai pris le temps de configurer c’est lm_sensors, la méthode de lecture des sondes de température placés dans la machine. Chaque 5min ces sondes sont examinés et les résultats sont écrits dans un fichier qui lui est exporté vers un logiciel qui s’appelle Splunk qui se trouve sur Deadalus. Ceci me permet d’examiner les derniers instants de Helios même si je n’arrives pas à l’allumer, il me suffit de vérifier le contenu dans Splunk sur Deadalus.

La température ne variait pas tant que ça et n’était pas trop élévée, pas assez pour endommager la machine en tout cas. Bon.

Vu que la machine ne lançait même pas le BIOS, ça ne pouvait pas être un problème logiciel (Bootloader, table des partitions ou autre) ni un problème avec la mémoire, les disques durs ou la carte graphique car justement, le BIOS vérifie tout ça lors du POST (Power On Self Test). ça devait donc être un problème matérielle, j’ai pensé à une microcoupure, mais j’ai des parasurtensioneurs pour éviter ça, peut être carrément une coupure? Les lumières n’ont même pas clignotés alors non, c’était pas ça.

En faite, le câble de la carte graphique était un tout petit peu tendu et ça avait légérement déplacé la carte graphique créant un court circuit sur la carte mère. Il m’a suffit de le remettre à sa place et tadaa, nous revoilà.

Petite anécdote de résolution de problème tout bête mais auquel on ne pense pas immédiatement, il m’arrivait tout le temps ce genre de merde quand je travaillais à l’hôpital d’ailleurs.


voir les commentaires

Tags: , , , , , ,

| manky | 16Feb07 | 0coms

Bon, sur les ordis il y a des programmes qu’on ouvre, on clique un peu partout et puis l’imprimante mange du papier. On peut taper du texte, voir des photos de sa grand mère et même visiter ppgac.org.

Ces applications ont une interface, une representation virtuelle des commandes du programme. Cette interface s’appelle un GUI, Graphical User Interface.

Pour plupart des applications avec un GUI, quand on fait quelque chose, le GUI change pour representer l’action en cours, ou le résultat de l’action. Exemple bête, quand tes dans OpenOffice (une version de word qui ne pue pas de la bouche comme tartif pue des fesses) et que tu tappes des lettres, et bien les lettres apparaissent. Magique non? C’est tout le but du GUI, d’habiller les commandes avec une interface Humaine pour qu’on ne soit pas obligé de taper des commandes comme

zcat /var/log/syslog.1.gz | sed 's/foo/bar/gi' | gzip -9 > /var/log/syslog.1.gz

pour faire des trucs intéréssants. Au passage, avec un GUI, vasy pour faire la commande que j’ai donné en exemple, c’est possible mais pas aussi vite.

Mais où est ce que je veux en venir? Et bien… Quand t’as un GUI et tu fais une connerie, sur OSX il s’affiche une petite fenêtre qui dit un truc dans le style

“Pardonnez moi honorable utilisateur, puis-je, avec le plus grand respect bien sûr, vous faire la remarque que l’action que, dans vôtre grande sagesse, vous avez essayé d’effectuer, n’est pas permise. Je vous remercie de vôtre attention”

Dans Linux le message c’est plus dans le genre

Il s’est produit une erreur, voici les détails:

#{RAILS_ROOT}/vendor/plugins/redbox/lib/redbox_helper.rb:54:in `[]=’
#{RAILS_ROOT}/vendor/plugins/redbox/lib/redbox_helper.rb:54:in `build_hidden_content’
#{RAILS_ROOT}/vendor/plugins/redbox/lib/redbox_helper.rb:16:in `link_to_remote_redbox’
#{RAILS_ROOT}/app/views/property/show.rhtml:63:in `_run_rhtml_property_show’
/opt/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/ associations/association_proxy.rb:110:in `each’
/opt/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/ associations/association_proxy.rb:110:in `send’
/opt/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/ associations/association_proxy.rb:110:in `method_missing’
/opt/lib/ruby/gems/1.8/gems/activerecord-1.14.4/lib/active_record/ associations/has_many_association.rb:90:in `method_missing’
#{RAILS_ROOT}/app/views/property/show.rhtml:57:in `_run_rhtml_property_show’
#{RAILS_ROOT}/app/views/property/show.rhtml:56:in `each’
#{RAILS_ROOT}/app/views/property/show.rhtml:56:in `_run_rhtml_property_show’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/ base.rb:316:in `send’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/ base.rb:316:in `compile_and_render_template’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/ base.rb:292:in `render_template’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_view/ base.rb:251:in `globalize_old_render_file’
#{RAILS_ROOT}/vendor/plugins/globalize/lib/globalize/rails/ action_view.rb:18:in `render_file’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ base.rb:726:in `render_file’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ base.rb:648:in `render_with_no_layout’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ layout.rb:245:in `render_without_benchmark’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ benchmarking.rb:53:in `render’
/opt/lib/ruby/1.8/benchmark.rb:293:in `measure’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ benchmarking.rb:53:in `render’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ base.rb:942:in `perform_action_without_filters’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ filters.rb:368:in `perform_action_without_benchmark’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ benchmarking.rb:69:in `perform_action_without_rescue’
/opt/lib/ruby/1.8/benchmark.rb:293:in `measure’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ benchmarking.rb:69:in `perform_action_without_rescue’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ rescue.rb:82:in `perform_action’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ base.rb:408:in `send’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ base.rb:408:in `process_without_filters’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ filters.rb:377:in `process_without_session_management_support’
/opt/lib/ruby/gems/1.8/gems/actionpack-1.12.5/lib/action_controller/ session_management.rb:117:in `process’
/opt/lib/ruby/gems/1.8/gems/rails-1.1.6/lib/dispatcher.rb:38:in `dispatch’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:78:in `process’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `synchronize’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/rails.rb:76:in `process’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:618:in `process_client’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `each’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:617:in `process_client’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `initialize’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `new’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:736:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `initialize’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `new’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel.rb:720:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/ configurator.rb:271:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/ configurator.rb:270:in `each’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/ configurator.rb:270:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:127:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/lib/mongrel/command.rb:211:in `run’
/opt/lib/ruby/gems/1.8/gems/mongrel-1.0.1/bin/mongrel_rails:243
/opt/bin/mongrel_rails:18:in `load’
/opt/bin/mongrel_rails:18

Bon, je sais que techniquement, ça c’est une erreur RubyOnRails, mais ça fera l’affaire.

Et puis nôtre ami Windows

Il s’est produit une erreur de type -756546 à l’adresse 0×87678F

Vachement explicite.

Bon, en faite je voulais pas du tout parler de ça, mais ça m’est venu. Imaginez un programme qui n’a pas de GUI, et qui tourne en tâche de fond 24h/24h. Quand ça plante, comment est ce vous allez savoir pourquoi?

Et bien, c’est que viennent les logs, les logs sont en faite des historiques d’activité des programmes. Ils nous permettent de savoir ce que le programme fait, et si ça plante, pourquoi. Mais, imaginez par exemple le serveur MySQL (la base de données) de ppgac. Il tourne 24/24 et chaque requête est écrit dans le log, et il faut dire qu’il y a à peu près 20 requêtes par page. ça en fait des requêtes non? Normalement il y a un programme qui, une fois tous les jours, fait une rotation des logs, c’est à dire que le fichier mysql.log devient le fichier mysql.log.1 et puis un nouveau mysql.log est crée pour prendre la place de l’ancien. ça fait que les fichiers ne deviennent pas trop grands.

Beh chez moi, sur la machine où j’ai MySQL, la rotation ne s’effectuait pas depuis je sais pas combien de temps. Ce qui faisait que j’avais un fichier mysql.log de 527Mo. Pas mal pour un fichier texte.


Tags: , , , , , , ,

| manky | 09Nov06 | 5coms

Et bien, je peux dire qu’aujourd’hui j’ai eu une journée intéressante.

Voici le récit d’une journée dans la vie d’un geek écossais, insomniaque, mangeur d’enfants et ayant les yeux bleus.



[lire la suite…]


voir les commentaires

Tags: , , , ,

/dev/geek a380 aaaaaaaaaaaah acturis ajax alcool amies amis amour anniversaire année appart art au debut beaufs berlin biere blague boire bonheur bouffe boulot chat chinois cigarettes cinema claire clip colère crime Cuisine culture culture geek debian dementification design dessin dns douche déprime ebay education egocentrisme email epita esprit et puis merde à la fin Faille Spatio Temporelle famille film frankfurt fucking drugs fumeurs futur fête garden party gens gens bêtes global warming gné Gueule de bois guinness Göt haine helios histoire vraie humeur humour icart idiot idée Imperial College inquiétant insa internet javascript la classe la merde qui nous arrive La vie le bonheur le sarcasme et le reste.. LHominoïde lindsay linux london londres Lyon manky mankyblahblah meh musique nimporte quoi oshannon paris peinture perpignan Petit personnage grotesque avec croix petite histoire photo photos php poissons politiqixsme politique potossssssssses pour tous ppgac retour rien rigolades rss réseau rêves San francisco sculpture sexe ski soirée Sorede sorties spam st louis strasbourg sultanat du götistan surprises tartifisme tartifwarrior the life travaux manuel la truelle troupilon troupilonnement truc fou ultrakiff underground vacances Very deep inside vide video vie vieux truc qui traine au fond dun tiroir vinz voyage voyages wordpress Yet another victim of my pointless rage! youtube zombies émilie étude étudiant

WordPress database error: [Duplicate entry '299080' for key 1]
INSERT INTO wp_bdprt_hits (ref_ident, browser_ident, ip_address, target_ident, time_of_hit) VALUES ('47', '6728', '38.103.63.55', '97', '1231448412')