7 sept. 2012

Surveiller votre système avec Glances

Le principal avantage d'un serveur Linux sans interface graphique c'est le minimalisme et l'optimisation de ressources, une couche graphique pouvant s’avérer gourmande alors que notre but c'est de faire tourner une application web, pas de faire un solitaire...

Toutefois il est toujours agréable d'ajouter un peu de couleur et des éléments visuels lorsque l'on monitor son serveur. Il existe la célèbre commande top, qui affiche la liste de processus en temps réel, mais l'absence de couleur rends la chose triste comme un jour sans pain (et les utilisateurs les plus avertis auront déjà supplanté celle-ci par htop).

Voici une nouvelle option : Glances. Ce programme est écrit en python et propose une interface similaire à htop en y ajoutant des fonctionnalités bien pratiques tel que l'activité sur les interfaces réseaux, l'occupation des disques... Le tout en couleur, permettant de voir d'un coup d'oeil les valeurs potentiellement critiques.


Notez au passage la présence de log lorsque des valeurs ressources atteignent un point critique (vous pourrez constater que mon script python est gourmand en ram... il va falloir optimiser tout ça).

Vous pourrez télécharger ce programme sur le github de l'auteur, ou si vous disposez de pip installer, tapez simplement pip install glances.

Merci à Freuh pour la trouvaille.

9 juil. 2012

Réplication MySQL : synchroniser les serveurs en minimisant l’indisponibilité du maître

Pour l'amour d'un dauphin
Je viens de m’apercevoir que je n'avais encore rien posté à propos de MySQL. Je corrige donc ce tort en partageant ici une note sur le processus permettant de répliquer un serveur en minimisant le temps d'innacessibilité du serveur maître. La procédure classique suggère habituellement d’arrêter le serveur maître, faire un backup avec mysqldump, importer le backup sur le (ou les) serveur(s) esclave(s), et enfin relancer le tout avec les paramètres de configuration appropriés.

Si l'on prends mon cas, j'ai un serveur MySQL dédié contenant plus de 300 Go de données et qui se doit d’être accessible (seul les redémarrages pour appliquer divers patchs le week-end sont tolérés). La procédure habituelle rendrait mon serveur indisponible pendant beaucoup trop longtemps pour que ça soit acceptable. Voici comment synchroniser un serveur maître et esclave en ne nécessitant qu'un seul redémarrage du maître.

21 juin 2012

Putty + Vim + Pavé numérique

Ah ce bon vieux Vim, cauchemar du néophyte, il a donné du fil à retordre  à plus d'un développeur, mais il se révèle assez puissant une fois la bête maîtrisée. Je vais partager une solution à un problème qui m'a longtemps pourri mon quotidien lors de l'usage de ce rustique éditeur.

S'il vous est arrivé de vous connecter à une machine unix via Putty et que vous avez tentez d'utiliser Vim, vous avez probablement constaté ne pas pouvoir utiliser le pavé numérique, obtenant un comportement étrange du curseur au lieu de voir les chiffres voulus s'afficher. En fait le problème ne vient pas de Vim, mais de Putty, qui est configuré par défaut en "application keypad mode", un mode permettant d'envoyer des commandes particulières à l'application plutôt que des chiffres.

Pour changer ce comportement, ouvrez les paramètres de Putty (Putty Configuration), naviguez jusqu'à Terminal > Features. Vous obtiendrez la fenêtre suivante :


Cochez la case "Disable application keypad mode", sauvegardez la session, et voilà. Ça ne mange pas de pain et ça simplifie le quotidien (en plus ça rime).

14 juin 2012

Pas de réseau après l'installation minimale de Centos 6

Si après une nouvelle installation en mode minimal de Centos 6 (sans GUI) il vous arrivait de ne pas pouvoir accéder à vos interfaces réseaux, cette note pourrait vous intéresser.

Je prendrais pour hypothèse que votre interface principale est eth0 et qu'un serveur DHCP attribue les adresses IP quelque part sur votre réseau.

Commencez par taper la commande dhclient eth0 dans votre shell, vous devriez obtenir une ip depuis le serveur dhcp, vérifiez le avec un ifconfig :
[root@localdev ~]# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 08:00:27:4A:B5:3C
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe4a:b53c/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:1949 (1.9 KiB)  TX bytes:1731 (1.6 KiB)

Maintenant que vous avez un accès à Internet, profitez-en pour installer l'outil de configuration réseau avec la commande : yum install system-config-network-tui

Une fois installé rendez-vous dans le dossier /etc/sysconfig/network-scripts/,  vous y trouverez le fichier ifcfg-eth0 que vous allez ouvrir dans votre éditeur favoris. (Notez que votre adresse MAC sera différente de la mienne)
DEVICE="eth0"
HWADDR="08:00:27:4A:B5:3C"
NM_CONTROLLED="yes"
ONBOOT="no"
Vous pouvez alors effectuer les modifications suivantes :
DEVICE="eth0"
BOOTPROTO="dhcp"
HWADDR="08:00:27:4A:B5:3C"
NM_CONTROLLED="yes"
ONBOOT="yes"
Les modifications que j'y ai apporté sont l'ajout de la ligne BOOTPROTO="dhcp" pour activer la configuration de l'interface par le serveur DHCP, ainsi que le ONBOOT="yes" afin que l'interface soit activée au démarrage du système. Sauvegardez le fichier et redémarrez votre machine (avec un shutdown -r now des plus gracieux).

Votre serveur est maintenant connecté au démarrage, mission accomplie.

Dans le prochain post je vous expliquerai comment optimiser votre synergie corporate.

13 juin 2012

mount error: Cannot allocate memory sous Windows 7 via CIFS

Puisque je suis dans ma lancée, un autre post pour parler d'un problème complètement différent : le partage de fichiers depuis une machine sous Windows 7 vers une machine Centos (qu'elle soit physique ou virtualisée). Je ne couvrirais pas ici le détail du comment faire, certains l'ont déjà traité bien mieux que moi, mais je vais décrire une astuce si il vous arrive d'avoir votre dossier partagé innaccessible avec le message d'erreur suivant "mount error: cannot allocate memory" et que le seul moyen de la récupérer consiste à redémarrer votre machine Windows.

La solution consiste à modifier le fichier de registre (Touche Windows + R, tapez regedit.exe) et naviguez jusqu'aux valeurs suivantes :


HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\LargeSystemCache

Assignez-y la valeur 1. Puis même chose pour :

HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\Size

Où vous y assignerez la valeur 3, puis vous pouvez redémarrer.

Voilà, maintenant votre partage devrait être complètement stable. Un grand merci à l'auteur de ce billet original dont je me suis villement contenté de reprendre l'astuce.

12 juin 2012

Django: erreur ViewDoesNotExist

Django pony
Etant débutant sous Django il m'arrive de perdre beaucoup de temps sur des erreurs triviales (surtout une fois la solution sous les yeux). Je partage ici une erreur simple qui détient la palme du temps perdu jusqu'ici.

Lors de la création d'une nouvelle fonction dans mon fichier views.py, je me suis retrouvé face à une erreur ViewDoesNotExist at /myapp/edit ... Une erreur plutôt étrange étant donné que cette fonction edit est bel et bien existante dans mon fichier views.py dont voici un extrait :
# /myapp/views.py
from myapp.forms import EditUserForm

def edit(request):
    ''' Edit things to do stuff '''
    editUserForm = EditUserForm()
    return render_to_response('myapp/edit_user.html', {
        'editUserForm': editUserForm,
    }, context_instance=RequestContext(request))
une view plutot simple qui ne fait pas grand chose. Pourquoi donc ce message d'erreur, la vue étant bien présente ?

La réponse se trouve dans le fichier forms.py :
# /myapp/forms.py
from django import forms
from myapp.models import User

class User(forms.modelForm):
    class Meta:
        model = User

Vous avez remarqué ? Et oui, une erreur de typo bien bête ligne 5 : forms.modelForm au lieu de forms.ModelForm... Ca parait idiot vue comme ça, mais le message d'erreur n'aide absolument pas dans ce cas, vue que l'erreur n'était pas dans le fichier views.py mais dans forms.py. J'espère que les futures version de Django afficheront des messages d'erreur moins géneriques...

Bref cette erreur n'est pas très claire, ni très explicite, donc si vous vous trouvez face à ce problème n'hésitez pas à commenter ce que vous importez dans votre vue jusqu'a ce que ça marche (pensez-y au niveau des from blahblah import stuff aussi).

J'en profite au passage pour changer le design du blog, le fond noir étant passé de mode depuis la fin des années 90 je pense qu'il était temps que je dépoussière tout ça. J'ai aussi rajouté un petit outil javascript pour rendre mon code plus lisible sous blogger. En parlant de ça, je suis plutot surpris de voir comment l'outil a evolué, impressionnant toutes ces nouvelles fonctionnalités. Cela suffira-t-il a m'inciter à poster plus souvent ? La réponse dans le prochain post (ou pas).

11 août 2011

Configuration minimaliste de firewall sur un serveur web Centos

Lorsque l'on prépare un serveur destiné à héberger un site web, on s'apperçoit bien vite que le réseau mondial grouille de menaces en tout genre (scanners, bruteforce SSH...), bref un minimum de protection s'impose si vous voulez garantir l'intégrité de votre machine.
Voici donc une petite note au cas où : un fichier de configuration minimaliste de firewall.
# Place this content in /etc/iptables.up
# then run: iptables-restore < /etc/iptables.up
# to load these rules
*filter

#  Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

#  Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allows all outbound traffic
#  You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allows SSH connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 30000 -j ACCEPT

# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT
Notez que le port 22 est fermé et que le service SSH de mon serveur passe par le port 30000, ce qui est bien moins commun donc évite de retrouver le secure log remplie de tentatives douteuses de connection.

Voila, c'est bien pratique, vue que j'ai une mauvaise mémoire, je met ca ici au cas ou j'oublie... L'excelent article original dont est issue ce fichier de configuration : http://articles.slicehost.com/2010/5/15/centos-5-5-setup-part-1

Merci a l'excelent hebergeur slicehost pour leurs articles.

22 déc. 2010

Centos utilise 100% du CPU sous VirtualBox

Comme beaucoup de développeurs, j'utilise très souvent une machine virtuelle pour tester mes développements en local. J'ai une préférence particulière pour Centos, qui reste très proche des serveurs Red Hat sur lesquels j'interviens, et pour VirtualBox comme solution de virtualisation (de part sa gratuité et sa simplicité d'utilisation). Malgré mon aisance grandissante avec les systèmes Unix, je n'ai toujours pas migré ma station de travail sur un OS comme Fedora ou Ubuntu, et je continue à utiliser une version vieillissante d'XP (pour des raisons professionnelles surtout...). Après l’installation de Centos 5.5 (et même sur les versions précédentes) sur une nouvelle machine virtuelle, j'ai souvent constaté que l'utilisation du processeur faite par virtualbox.exe était en permanence de 50% (j'ai un processeur double coeur), et ce même quand la machine est au repos sans aucun processus actif (idle). D'après ce que j'ai pu lire, et sans être en grand spécialiste sur le sujet, il s'agirait d'un problème avec le Kernel de Centos qui fonctionnerait à une fréquence supérieure à celle du virtualiseur, comme mes connaissances sont assez limitées je ne m'étendrais pas sur le sujet et je vais me contenter de vous donner la solution que j'utilise pour contourner le problème.

Certains préconise de recompiler le Kernel avec les options adéquates afin de prendre en compte la bonne fréquence, d'autres propose d'utiliser un Kernel maison bidouillé pour fonctionner correctement avec VirtualBox... Personnellement je ne me sent pas très à l'aise avec l'idée de recompiler le Kernel, et pour ce qui est d'une version non-officielle, je préfère éviter dans un cadre professionnel (support oblige...). Je vous propose donc une troisième solution, qui ne requerra qu'un redémarrage de votre VM :

1) Ouvrez le fichier /etc/grub.conf avec votre éditeur favoris.

2) Repérez les lignes concernant le kernel, et ajoutez divider=10 à la fin de celles-ci.

Voici mon fichier grub.conf à titre d'exemple
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title CentOS (2.6.18-194.26.1.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.26.1.el5 ro root=/dev/VolGroup00/LogVol00 divider=10
        initrd /initrd-2.6.18-194.26.1.el5.img

title CentOS (2.6.18-194.el5)
        root (hd0,0)
        kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 divider=10
        initrd /initrd-2.6.18-194.el5.img
3) Sauvez le fichier

4) Redémarrez votre VM.

5) ...

6) Profit !

Et voilà, maintenant profitez de votre machine virtuelle sous Centos sans compromettre la longévité de votre CPU sur le long terme.

9 déc. 2010

Insertion d'objets Doctrine en boucle et problèmes de mémoire

Depuis que j'utilise Doctrine, j'ai toujours rencontré un problème lors de l'insertion en boucle d'objets dans la base de données, mes tentatives se terminants lamentablement par une erreur "Allowed memory size...". Le problème venant que l'instanciation d'objets en boucle vient toujours a dépasser la valeur maximale de mémoire allouée a PHP. Si comme moi vous avez tout essayé en vain et vous êtes résigné à vous passer de cet ORM pour des requêtes brutes en base, peut-être cet article vous aidera.

Dans mon cas précis, j’écris une task qui me sert a migrer les données d'un ancien site vers sa nouvelle version remise  neuf sous Symfony 1.4 avec Doctrine. Voici la boucle qui concerne la migration de la table utilisateur (note: le nouveau systeme utilise sfDoctrineGuard, mais ça n'a pas vraiment d'importance pour notre problème):

$DBO = Doctrine_Manager::getInstance()->getConnection('doctrine')->getDbh(); 
/**
 * Users migration
 */

$users = $DBO->query("SELECT * FROM old_tblusers")->fetchAll();    
    
foreach($users as $oldUser){
    $user = new sfGuardUser();
    $user->setFirstName($oldUser['FName']);
    $user->setLastName($oldUser['LName']);
    $user->setEmailAddress($oldUser['EMail']);
    $user->setUsername($oldUser['UserName']);
    $user->setPassword($oldUser['Password']);
    $user->save();
    $user->free(true);
    unset($user);

    echo memory_get_usage()."\n";;
}
A lui tout seul cet exemple est peu gourmand en mémoire, mais celle-ci ne sera cependant pas stable et continuera a augmenter à chaque boucle... Voici l'astuce qui permet d'avoir une utilisation de mémoire constante :

Dans le fichier config/databases.yml, ajoutez les informations suivantes à vos paramètres de connexion :
# Disable profiler for import in task
dev:
  doctrine:
    class: sfDoctrineDatabase
    param:
      profiler: false
Je précise évidemment que ma task utilise l'environnement dev pour fonctionner. Grâce a cette modification, mes boucles utilisent entre 152 et 156Mo de mémoire et ce constamment, quel que soit le nombre d'objets à insérer (dans mon cas 48 000). Pour les informations techniques de mon environnement, j'utilise un serveur local sous Centos 5.5, avec PHP 5.3 et MySQL 5.1.

Voila, j’espère que cette astuce fonctionnera pour vous aussi. Je la partage ici car j'ai passé beaucoup de temps à chercher une solution à ce problème sans jamais rien trouver de vraiment probant.

5 mai 2010

Recuperer les parametres DSN d'un objet de connection Doctrine dans Symfony

Nouveau concept, je pose ici des astuces qui m'aident dans mon quotidien... Ca peut toujours servir aux autres, mais c'est surtout pour m'en rappeler plus tard.

Voici donc la methode pour recuperer vos parametres DSN d'un object Doctrine au sein d'une action ou tache.

// Quelques elements intermediaires
$dsn = Doctrine_Manager::connection()->getOption('dsn');
$info = Doctrine_Manager::getInstance()->parsePdoDsn($dsn);
// Et voila vos parametres...
$host = $info['host'];      
$database = $info['dbname']; 
$userName = Doctrine_Manager::connection()->getOption('username');
$password = Doctrine_Manager::connection()->getOption('password');

10 nov. 2008

Le blog est à l'abandon (encore une fois) -- EDIT : Plus maintenant....

Bonjour à tous,


les critiques ciné et autre c'est un peu mort pour le moment, donc je vous propose de suivre mes aventures nord-américaines sur mon autre blog :


direction http://www.deadfish.fr


A bientôt les gus.


Bon finalement je l'ai fermé, de toute façon je n'y étais plus très assidu ces derniers temps, donc plutôt que de payer un hébergement dans le vide, me voici de retour sous blogger. J'y posterai quand l'envie m'en prendra...

30 juil. 2008

WALL-E : romance cybernétique sur fond post-apocalyptique

Voici donc un billet sur le cinéma, ça faisait longtemps et ma carte commençait à moisir dans mon portefeuille. Alors je sais, vous allez me dire qu'à 25 ans on a passé l'age de regarder des dessins animés... Mais bon, osef comme disait l'autre. Aujourd'hui sortait sur nos écran français le nouveau long métrage de Pixar : WALL-E, histoire d'un petit robot compacteur de déchets autonome nettoyant notre belle planète bleue, recouverte de détritus et désertée par les humains depuis longtemps. Inutile de dire que chaque nouveau film de chez Pixar est attendu comme le messie par les fan d'animation, et ce nouvel opus est bien partit pour battre des records.

Pour ne pas vous enlever le plaisir de voir ce film et étant donné qu'il vient juste de sortir, je vais éviter de trop m'étendre sur l'histoire et essayer de ne point trop en dévoiler. Tout d'abord l'univers du film : le futur... Il est peint de façon très noir, sur Terre ne subsiste que des vestige d'une civilisation qui a un peu trop abusé des bienfaits de la surconsommation (coucou, vous vous reconnaissez ?)... et dans ce décors digne des rues de naples il y a quelques mois vaque à ses fonctions de compacteur WALL-E héros robotique du film. A force de rester seul, notre pauvre machine a un peu pété les plombs et a développé une personnalité (personnellement si mon grille pain se met à éprouver des sentiments j'achèverai la bête pour lui éviter qu'il ne prenne conscience de sa condition...). Sa "vie" va changer lorsqu'il va rencontrer EVE, une sonde envoyée par les humains exilés pour des raisons sur lesquelles je ne vais pas m'étendre...


Le Waste Allocation Load Lifter Earth-class en pleine réflexion

Alors je sais, tous les médias encenssent ce film, donc vous n'irez pas le voir, ça vous énerve d'aimer un truc que tout le monde va aimer... Tant pis pour vous, vous allez manquer un très bon film, où l'on retrouve le studio Pixar des grands jours, avec un scénario intelligent et une excelente réalisation. Le thème de la science-fiction apocalyptique est loin d'être un choix facile quand on décide de réaliser un film grand public, et pourtant le concept prend plutot bien. Alors bien évidemment si vous avez-vu les affiches dans le métro, vous pouvez vous douter que l'histoire va tourner autour de l'idylle entre les deux protagoniste. Ceux (et celles) qui auront gardé l'esprit innocent et leur côté fleur bleue inclineront la tête de 30 degrés sur le côté en poussant un "Ooooooh, qu'ils sont mignons !", et les autres trouverons ça un peu mièvre, mais n'oublions pas que la production est signée Disney, et qu'ils ont fait bien pire dans le genre (en plus ça chantait !!!). Alors était-ce obligatoire d'inclure une histoire à l'eau de rose électronique dans ce film ? Personnellement je pense que c'est un bon choix, de part les astuces utilisées pour retranscrire des émotions à des objets dont la fonction originale ne les y prête pas, et puis un peu de tendresse, merde ! Côté réalisation graphique : les images sont vraiment époustouflantes, saluons-ici les performances du moteur renderman, ainsi que le sang et la sueur des développeurs qui ont été nécessaire à sa réalisation. Non, vraiment le résultat est bluffant, et pour peu que l'on soit amateur de space opera, les paysages sont de toute beauté.

Alors dans les critiques négatives, certains y verront une pub géante pour Apple et son fameux design (le character designer d'EVE a fortement été conseillé par le designer produit de la firme à la pomme), et le fait que Steve Jobs détienne une bonne part du capital de Pixar n'est peut être pas le fruit du hasard, mais bon c'est la dure loi du marché... En parlant marché venons-en au marketing, comme d'habitude j'ai été hermétique au buzz (mon cerveau se déconnecte quand je lit ce mot), mais j'ai cependant vu passer des affiches vintage tirées en édition limitées et dont je suis absolument fan (si vous avez des vieilles affiches de propagande soviétique, contactez-moi), ces affiches décore aussi les locaux des studios Pixar et sont à mon goût des chefs-d'oeuvre.


La belle EVE, sur une affiche de propagande des plus réeussie

Ceci conclus ma chronique sur ce film, j'espère avoir respecté mes objectifs et ne vous en avoir pas trop dit, pour conclure, je vais la faire en sms "alézy C tr0 b1!".


En bonus comme d'hab la bande annonce :


28 juil. 2008

Pandemic 2 : détruire l'humanité pour de rire

Un billet dédié à ceux qui ne sont pas encore en vacances ou ceux qui n'en ont pas du tout... Voici comment tuer votre productivité par ces chaudes journées d'été.

Je vous invite à découvrir ce jeux flash bien sympathique où vous incarnez un petit organisme, dont le but est d'éradiquer purement et simplement l'espèce humaine. Pour cela il faudra vous montrer discret, en infectant le plus grand nombre de personnes possible en optimisant vos caractéristiques d'infection et vos modes de confirmation. Déterminez enfin les symptômes de votre charmante création pour sceller définitivement le destin de l'humanité, bonne chance ! (Conseil : méfiez-vous de Madagascar, ils ne se laissent pas infecter aussi facilement que ça ;) ).


(cliquez sur l'image pour lancer le bousin).


Bref, une morale douteuse qui pourra inspirer les bio-terroriste en herbe, mais les meilleurs jeux sont toujours ceux où on joue le méchant :p.

10 mars 2008

Be kind, rewind : un hommage aux films fait à la main

"Soyez sympas, rembobinez" est un film du français Michel Gondry avec pour acteurs principaux Jack Black, Moss Def et Danny Clover. L'histoire se déroule dans une petite ville aux alentours de New York, plus particulièrement dans un vidéo club où un homme efface par accident toutes les bandes du magasin. Afin de permettre la survie de ce commerce de quartier nos héros vont se mettre à "suéder" (re-filmer, voir le film pour comprendre) les opus égarés avec les moyens du bord. Ainsi seront revisités des classiques comme Ghostbusters, le roi lion ou encore Robocop...

Je n'en dirais pas plus pour le résumé, inutile de vous gâcher le plaisir que j'ai eu à découvrir ce film à sa sortie (en présence de Michel Gondry lui-même... un des avantages de travailler à la Défense). Quand on voit ce film, impossible d'oublier les œuvres que l'on a tous fait gamins (ou moins jeunes) à l'aide du caméscope parental dont le résultat est assurément catastrophique, mais qui fait tout le temps plaisir à voir parce que "c'est moi qui l'ai fait"... Ce film est une invitation à la création qui met le cinéma à la porté de tous, et qui montre que les moyens importent peu tant que l'on tiens une idée. Les personnages sont attachants, décalés (qui aurait l'idée de tenir un commerce de location de VHS au XXIème siècle ?) et on se plonge très rapidement dans l'ambiance de ce quartier populaire et les habitants qui le compose. Sans jamais tomber dans la vulgarité ou le "lourd", cette comédie vous permettra de voir sous un autre angle les "classiques" du cinéma populaire. L'idée du réalisateur est aussi de mettre le cinéma à la portée de tous, désacraliser le 7ème art pour l'arracher à une élite culturelle pompeuse qui pense qu'on a jamais rien tourné de mieux que Citizen Kane ou l'arroseur arrosé des frères Lumière (dont je ne fait pas parti puisque j'adore les nanards comme Mosquito).

J'avoue que les personnage ont une personnalité un peu naïve qui donne un côté mièvre au film, mais on le pardonne volontiers devant le résultat final : un film grand public appréciable de tous pour peu que l'on ai passé son enfance à regarder et re-regarder les VHS de retour vers le futur ou d'Indiana Jones jusqu'à en user la bande (Qui a-dit que c'est pour ça que je n'ai pas de vie sociale aujourd'hui ?).

Pour conclure : un film léger, drôle et naïf qui invite à faire du cinéma, bref, une perle : foncez le voir...

La bande-annonce :

13 févr. 2008

Battle for Haditha


Avec beaucoup de retard, voici enfin mon opinion sur le film "Battle for Haditha". Alors pour tout de suite briser le suspens : c'est le meilleur film qu'il m'ait été donné de voir en ce début d'année, courrez le voir si vous en avez l'occasion. Voilà, comme ça, ceux qui ne lisent que le début des billets sont au courant. Maintenant détaillons.

Tout le film est basé sur un fait divers : "Irak, 19 novembre 2005 : un convoi de Marines est pris pour cible dans un attentat à Haditha. En représailles, les soldats attaquent brutalement les habitants du périmètre, faisant 24 morts, hommes, femmes et enfants".

Ce simple fait divers tristement d'actualité est vue sous trois angles différents : celui des Marines pris pour cible, celui des terroristes préparant leur action, et celui des familles victimes du conflit. On a beau savoir exactement tout ce qui va se passer dans le film, on est quand même tenu en haleine durant tout le déroulement des faits. Toute la puissance du film viens de l'immersion totale et du réalisme qui se dégage de chaque scène. La crainte permanente de l'attentat pour les troupes américaines, la haine permanente de l'envahisseur pour les forces rebelles, et enfin la crainte des représailles pour les populations civiles. Ce schéma, établi depuis la fin "officielle" de la guerre en 2003, est désormais quotidien et risque de se prolonger à moins d'un changement majeur dans la politique extérieures des états unis d'Amérique.

La difficulté d'un tel scénario est de ne pas tomber dans les clichés et le pari est réussi pour Nick Broomfield. L'absurdité du conflit est clairement dénoncée, sans nous servir le discours moralisateur habituel, sans minimiser ou exagérer les torts des deux camps. On est loin de l'affrontement du bien contre le mal et tout démontre clairement pour ceux qui en doutait encore, que la situation actuelle n'est guère sur le point de s'améliorer.

Au final, que retiendra-t-on de ce fait divers ? Peu de chose tant la mort est une chose courante en Irak (à vue de nez je dirais une 30ène par jour ces derniers mois d'après le flux rss du site Le Monde), et que la valeur d'une vie humaine est une donnée variable suivant les différents points du globe. Qui aura réellement remporté la bataille pour Haditha ? La propagande officielle des deux camps assurément. Hourra soldiers !

En bonus la bande annonce pour achever de vous convaincre (même si je la trouve très orientée "action" comparée au film) :


7 févr. 2008

Cloverfield : un film très mal cadré

On commence tout de suite par un premier film récemment sortit : Cloverfield
Pour vous décrire mon approche par rapport à ce film, je précise tout d'abord que j'ai été complètement imperméable à tout le le buzz qui a été fait autour. J'expliquerais peut être ultérieurement dans un autre post pourquoi je ne crois pas (ou plus) au buzz. Donc je suis allé voir cette étrangeté avec la naïveté digne d'un touriste allemand au mois d'août se rendant à la foire à neuneu. J'avais tout de même remarqué le nom J.J. Abrams et l'ai associé à Lost, dont la première saison m'avais laissé un souvenir plaisant. Voilà pour le background.

Dès le début du film, ambiance mystérieuse, scéance de visionnage de vidéo témoin... On apprend que le film a été trouvé dans l'endroit qu'on appelait Central Park ("formerly known as"). Bref une approche très immersive. La vidéo se lance, et effectivement c'est une vidéo amateure, avec tout les défauts associés à ce type de production, à savoir le principal : ça tremble. Ce film demande un temps d'adaptation du cerveau aux mouvements parkinsoniens du cadreur. Vous me direz, le fait de cadrer comme un connard a l'air d'être assez tendance en ce moment, il suffit de regarder un épisode de l'excelentissime série "the shield" pour le remarquer... Mais là, non c'est trop, alors sur un grand écran, l'effet du moindre mouvement est décuplé et c'est à la limite du supportable dans certaines scènes. Passons ce détail qui n'en est pas un pour nous intéresser à l'histoire.

J'espère ne pas spoiler le film en disant qu'il s'agit d'un gros machin venu d'on ne sais où qui détruit New York... On dira ce qu'on voudra, ça a déjà été fait, certe pas filmé comme ça, mais bon, le principe est le même. Le tout se passe en un laps de temps très court et s'enchaîne plutot bien. Les effets spéciaux sont de bonne facture, même si le cadrage tremblant et la mise au point en décalage avec l'action sert de cache misère de fortune. Le jeux des acteurs est discutable, il fait très naturel (le début du film fait vraiment comme si on avait réellement filmé une soirée, ce qui rend par conséquent le démarage très chiant) et les réactions des protagonistes à peu près crédibles. Ce qui me gènera toujours avec les héros c'est le besoin qu'ils ont d'aller sauver leurs amis au mépris d'un danger mortel et inconnu ignorant leur propre instinct de survie. Ca me parait toujours surjoué et assez peu crédible d'autant plus que le personnage en question n'est qu'un quiddam moyen passant sa vie dans des bureaux.

Je vais maintenant passer aux aspects positifs de ce film, ça va être rapide :
- Je pense que si un jour un gros machin s'attaquait au centre de New York, ça se passerait effectivement comme ça. Donc au niveau de la cohérence du scénario rien à dire.
- J'aime bien le design de la chose (et de ses sbires).
- Certaines scènes d'actions sont vraiment très prenantes (même si mal filmées) et s'enchainent bien.

Pour conclure, parce que je ne vais quand même pas utiliser tout mon talent de critique sur ce film, je dirais qu'il ne me laissera pas un souvenir impérissable et je ne le recommande pas vraiment. Je pense que s'il avait été réalisé de façon traditionnelle avec des plans normaux, on tenais un nanard. Donc l'aspect immersif de la caméra au poing ok, peut être (déjà vu avec le projet Blair Witch), mais désolé, ça n'a pas marché sur moi...

6 févr. 2008

Back in business

Les affaires reprennent : je reviens blogger ici. J'ai reçu ma carte UGC illimité, je vais donc m'atteler à critiquer les différents films que je serais aller voir. Je ne prétend pas avoir une culture cinématographique des plus complètes, mais j'espère que mes conseils avisés vous permettrons d'éviter un drame, tel que dépenser 10 euros et subir 30 minutes d'utilisation de temps de cerveau disponible, tout ça pour voir une daube (ou un navet, ça nous est tous arrivé).

Voilà pour le programme les enfants ! Bien entendu votre avis m'importe peu et mes propos n'engage que moi (les goûts et les couleurs...). Si des producteurs souhaitent me corrompre ou m'éliminer, je les invite à me contacter par email à l'adresse suivante : abuse@yopmail.com