lundi 14 juillet 2014

Les cavernes d'acier

Vieux et pourtant si bon

Bon voilà, j'avoue j'ai déjà lu ce livre il y a bien longtemps. Pour être précis, c'est ma prof de français de 4ème et 3ème ( un petit bonjour en passant à Madame B.) qui m'a fait découvrir Isaac Asimov. Ce fut une révélation ; pensez-vous mes premiers livres de SF !! J'ai tout bonnement adoré cet auteur dès les premières pages et depuis je l'ai relu régulièrement. Dernièrement, j'ai acheté ce livre "en VO". Bien que non bilingue, sa lecture s'avère facile - il faut dire que connaitre sur le bout des doigts la version française doit m'aider un peu.

Bon, et l'histoire ?

Dans un futur lointain, la terre est sur-peuplée. Tous les hommes sont citadins et réunis dans des villes titanesques appelées "cavernes d'acier" car elles sont enterrées ; cachant ainsi l'extérieur à leurs habitants. Ceux-ci vivent dans cet espace confiné en essayant de remplir sans vague le rôle que la ville leur assigne pour éviter d'être dé-classifié, c'est à dire ramené au niveau zéro de l'échelle sociale et condamné à travailler dans les usines de levure ( toute la nourriture est constituée à partir de ces levures , seul moyen trouvé pour remplir les milliards d'estomacs terriens). Bref, il ne fait pas bon être un humain à cette époque. Du moins pas un terrien. Il existe en effet d'autres hommes, lointains descendant des terriens qui émigrèrent sur d'autres planètes il y a longtemps. Ceux-ci sont appelés les spatiens et gardent jalousement les frontières de l'espace de peur d'être envahis par les terriens qui sont plus de deux fois plus nombreux que les cinquante mondes spatiens réunis. Ils peuvent asseoir leur domination car leur technologie est plus avancée que celle de la terre. Ces spatiens disposent d'une base avancée sur la terre appelée "spacetown" ; base à partir de laquelle ils essaient de convertir les terriens à leur civilisation robotique. Mais pour l'instant, les robots sont détestés par la population terrienne car leur présence est destructrice d'emploie et donc synonyme de déclassement.
L'histoire commence lorsque le personnage principale, l'inspecteur Baley de la terre, apprend qu'il va devoir enquêter à spacetown car un meurtre y a été commit. Les répercutions politiques peuvent être désastreuses pour la terre ; du coup l'inspecteur est condamné à réussir. Il devra mener son enquête avec un partenaire imposé par les spatiens : "Daneel" , un robot à apparence humaine. Daneel sera t il un simple partenaire, ou un concurrent ?

dimanche 27 avril 2014

Thalamus

Le livre

Thalamus est un livre écrit par un auteur Français : Stéphane Gérard. L'histoire se déroule à Strasbourg où Hélène et Laurent, jeune couple heureux et soudé, apprennent qu'ils vont être parents de jumeaux. Malheureusement et de manière concomitante Laurent se voit diagnostiquer une tumeur au cerveau. Hélène, professeur de Français dynamique et énergique, va devoir mener de front plusieurs défis : apprendre à être mère, accompagner son mari dans la maladie et continuer à assumer les charges inhérentes à son métier. La maladie de Laurent, malgré une opération réussie de sa tumeur, va dégénérer. Ce dernier subit une forme de régression psychologique qui le rend de plus en plus dépendant. Hélène se démène pour ne pas se laisser noyer pas tous ses problèmes ; elle est heureusement soutenue par ses parents et par sa meilleure amie Françoise. Cette dernière, pétillante professeur de science, est un esprit brillant caché sous une apparence de bimbo nymphomane. C'est son esprit scientifique qui va justement la pousser à remettre en cause la fatalité dans la maladie de Laurent et à mener une enquête ...

Et alors ?

Stéphane Gérard va lentement, par petites touches, nous plonger dans la vie de Laurent et Hélène. Au fur et à mesure, le lecteur va se sentir devenir intime avec le jeune couple et plus particulièrement avec Hélène qui est - pour moi - le personnage central du roman. Stéphane nous fait rentrer dans la tête de cette dernière pour nous faire partager ses rêves, ses envies, ses peurs ... Le piège est ainsi posé ; on ne pourra s'empêcher de souffrir avec Hélène lorsque sa vie basculera. Heureusement Françoise sera là pour l'aider et tout comme elle sera un soutient indéfectible pour son amie, elle sera aussi pour le lecteur la planche de salut qui lui apportera les moments d'humours qui font que Thalamus n'est pas du tout un livre trop triste comme on pourrait le penser en lisant le résumé que je vient de faire dans la partie précédente. Oui, j'ai particulièrement aimé cette professeur nymphomane, anticonformiste ; les passages avec elle m'ont bien souvent fait sourire. D'une manière plus générale, les personnages principaux sortis de l'esprit de l'auteur sont décris avec une plume très précise, réaliste et parfois même troublante ; ainsi même "les méchants" ont une personnalité complexe à plusieurs facettes, attachante par certains côtés. La trame de fond de l'histoire amènera aussi le lecteur, si il le veut bien, à s'interroger sur la science et les problèmes d'éthique qu'elle peut poser.

Ma note ?

16/20

jeudi 24 avril 2014

Docteur sleep

Encore du grand Stephen King

Avant de lire ce livre j'ai tenu à relire "Shining" pour me ré-imprégner des différents personnages. Comme je n'ai pas pour l'instant écrit de billet sur Shining je tiens à dire que si vous ne l'avez pas encore lu, courrez le faire car c'est en effet un des meilleurs de King.

Petit résumé

Mais revenons à Docteur Sleep. Celui-ci raconte la vie d'adulte de Dany Torrance le petit garçon de Shining. On découvre un adulte qui souffre des mêmes travers que son père : alcoolisme et crises de violences parfois dures à canaliser - on pourra s'interroger comme le fait en filigrane l'auteur pour savoir si l'alcoolisme est un problème héréditaire ou non.
On commence par suivre Danny lors d'années d'errance alcoolisée. Finalement, il s'installe dans une petite ville, de montagne ... Soigneur dans la maison de retraite de sa ville, il va utiliser son Don - qu'il a donc conservé - pour accompagner les personnes âgées lors de leur dernier voyage. Toujours dans sa nouvelle région il va découvrir une jeune fille avec un Don semblable au sien. Mais celle-ci s'avère en danger car cible d'un clan de parasites psychologiques qui se nourrissent de la psychée des personnes disposant du Don.

Et ?

Bien que suite de Shining, j'ai trouvé le style de ce livre assez radicalement différent. Dans Shining la menace représentée par l'hotel Overlook est surtout du genre intangible alors que les "vampires psy" de ce tome sont au contraire très concrets. Shining est un huit-clos, alors que dans ce livre le lecteur sera amené à voyager ; avec Danny et les amis qui l'entourent.
Malgré ces différences de style marquantes j'ai quand même beaucoup aimé ce livre. On retrouve bien le style du King ; tout lecteur fan de ce style passera un très bon moment !

Ma note

15/20

samedi 4 janvier 2014

22/11/63

J'ai fini ce livre il y a plusieurs mois mais je n'ai pas eu le temps de poster ce billet auparavant. Je profite de la fin de mes vacances pour le faire.

L'histoire

Imaginez, des marches invisibles dans votre cave qui vous amènent encore et toujours dans le passé, à la même date, toujours au même moment - chaque saut en arrière ayant pour effet d'annuler les changements éventuels que vous auriez pu apporter durant votre précèdent 'voyage'
Cela parait fou, et pourtant c'est ce qui va être présenté à un jeune professeur d'anglais par le tenancier d'un restaurant duquel il est habitué. Ça, ainsi que l'incroyable rêve du gérant d'essayer de profiter de cette opportunité pour empêcher l'assassinat du président Kennedy.

Mon avis

C'est du Stephen King, mais ce n'est pas du tout de l'horreur. Je classifierai plutôt ce livre dans le Fantastique. Quoiqu'il en soit, autant dire que je l'ai adoré ! L'histoire est très originale, le suspens est au rendez-vous ; le maitre a encore frappé ! N'hésitez pas, c'est un livre à s'offrir ou à offrir.

Le Faucon de Minuit

L'histoire

Bane, le fils que Connavar n'a jamais reconnu va suivre une carrière de gladiateur dans la ville ennemie de Roc pour y parfaire son art du combat ; dans un seul but, venger un amour tranché par l'épée d'un assassin. Le tueur est une légende vivante chez les gladiateurs, un dieu du combat que le très jeune Bane n'a aucune chance d'égaler si il ne progresse pas. Notre héros arrivera-t-il à accomplir sa vengeance ; sans se laisser détruire par elle ?

Mes impressions

Deux jours, c'est le temps qu'il ma fallut pour lire cette suite de l'épée de l'orage. J'ai commencé par hésiter avant de le débuter, m'étant "attaché" au personnage de Connavar je pensais ne pas être tenté par les aventures de son fils bâtard Bane. J'ai en fait découvert une suite passionnante, dans la continuité de l'histoire précédente avec toutefois sa propre originalité. C'est vraiment une suite, le lecteur pourra par exemple y retrouver la plupart des personnages de l'épée de l'orage. Je ne conseille d'ailleurs pas de lire ce volume sans avoir lu le précédent. Quant à Bane, on s'y attache très vite. Si je devais comparer "Le faucon de minuit" et "l'épée de l'orage" je dirai que les deux tomes m'ont autant plu l'un que l'autre.

mercredi 1 janvier 2014

L'épée de l'Orage

L'histoire


L'épée de l'orage est un livre de David Gemmell. Comme dans beaucoup de ses ouvrages, l'histoire se déroule dans un monde médiéval où la magie est présente et fait partie du quotidien.
Ce premier tome a pour personnage principal Connavar, que nous allons suivre de l'enfance jusqu'à l'âge où il deviendra le roi de son peuple. Redoutable guerrier, Connavar va tout faire pour protéger les siens des invasions à venir. L'ennemi est identifié, il s'agit des guerriers de Roc. Pour les combattre, il devra apprendre les techniques de la guerre, car le peuple de Conn est un peuple tribal : ils vivent très proches de la nature, ne disposent pas d'armée. Leurs seuls contacts avec la guerre ont été en fait des batailles suite à des razzia sur leur terre organisées par d'autres tribus. A l'inverse, le peuple de Roc est un peuple "cultivé" disposant d'une armée avancée dont les techniques de combat sont 'modernes' et inconnues de Connavar. Ce dernier ira combattre pour Roc pour les étudier de l'intérieur ; afin d'être prêt quand il s'agira de défendre ses propres terres.

Mon avis

Après avoir lu de nombreuses oeuvres de Gemmell, j'avais peur de vite avoir l'impression de relire une énième version de Druss la légende ou de la légende de marche mort. Finalement il n'en a rien été, le personnage de Connavar est bien différent de celui de Druss. J'ai trouvé le personnage plus complexe, et contrairement à Druss il ne se bat pas que pour lui mais aussi pour son peuple.

lundi 9 septembre 2013

Les URLs Java du JDK

Pour ceux qui réalisent des applications JAVA utilisant des services WEB les premières étapes de leur projet commencent classiquement par le choix de la librairie HTTP à utiliser. Ce choix n'est jamais anodin et dépend de beaucoup de choses :

  • contexte d'utilisation
  • passif technique de l'entreprise dans laquelle le projet sera réalisé
  • ce que l'on attend de la librairie : 
    • facilité d'utilisation
    • couverture et respect de la norme HTTP
    • pipelining
    • ...
Je ne vais pas ici faire de comparatifs des différentes librairies existantes : pour l'instant je n'ai surtout utilisé que celle d'apache. Par contre, il est des cas où l'on aimerait pouvoir se passer d'une dépendance à une librairie tierce. Or, depuis longtemps java intègre des possibilités de pouvoir faire des requêtes HTTP sans trop d'effort. Par contre, ce framework n'est pas trop bien documenté. Peut-être n'ai je pas frappé aux bonnes portes ; mais à l'époque ou j'ai du jouer avec les classes standards de Java j'ai eu du mal à trouver une bonne documentation. C'est pourquoi je me suis dis que j'allais présenter dans ce billet les quelques leçons que j'ai tiré de mon expérience.

Créer une connection au site distant (URLConnection)

Tout commence par la création d'une instance de la classe java.net.URL à partir de laquelle on pourra créer un object URLConnection représentant la connection applicative. Exemple de code :
URL url = new URL("http://www.google.fr");
URLConnection openConnection = url.openConnection();

Lorsque l'URL est une URL HTTP l'objet URLConnection retourné sera en fait une instance HttpURLConnection. Il est important de noter, c'est clairement indiqué dans la javadoc qu'une instance d'HttpURLConnection ne servira à réaliser qu'une seule requête HTTP : "Each HttpURLConnection instance is used to make a single request but the underlying network connection to the HTTP server may be transparently shared by other instances".

Une simple requête GET

Le code


URL url = new URL("http://www.google.fr");
            HttpURLConnection openConnection= (HttpURLConnection) url.openConnection();
             
            openConnection.setRequestMethod("GET");
            openConnection.setDoOutput(false);
            openConnection.connect();
            final int responseCode = openConnection.getResponseCode();
            
            if (responseCode >= 200 && responseCode<300)  {
                int contentLength = openConnection.getContentLength();
                String headerField = openConnection.getHeaderField("Transfer-Encoding");
                byte[] ba;
                
                try (InputStream is = openConnection.getInputStream()) {
                    if (headerField!=null && headerField.contains("chunked")) {
                        ba = readChunkedStream(is);
                    } else {
                        ba = readStream(contentLength, is);
                    }
                }
            }
            else if (responseCode >= 400)  {
                int contentLength = openConnection.getContentLength();
                String headerField = openConnection.getHeaderField("Transfer-Encoding");
                byte[] ba;
                
                try (InputStream is = openConnection.getErrorStream()) {
                    if (headerField!=null && headerField.contains("chunked")) {
                        ba = readChunkedStream(is);
                    } else {
                        ba = readStream(contentLength, is);
                    }
                }
                String st = new String(ba);
                System.out.println("error page :"+st);
            }

Les explications

Le code qui précède montre comment faire un simple GET. Lorsque l'on fait un GET sur une ressource HTTP on n'envoie pas de contenu au serveur ; c'est pourquoi avant la connection http est paramétrée ainsi :
            openConnection.setDoOutput(false);
De manière générale, le paramétrage est à faire avant l'appel à la méthode connect() qui va non seulement établir la connexion physique mais aussi faire l'appel GET. En effet, on peut dès cet appel récupérer le code retour obtenu du serveur suite à cet appel.
Le point clé dans cet exemple est que en fonction du code retour le contenu éventuellement retourné par le serveur n'est pas consommé de la même façon :

  • on utilise openConnection.getInputStream en cas de code retour de type 20x.
  • si un code retour de classe 4xx ou 5xx est retourné il faut utiliser la méthode getErrorStream pour lire l'éventuel contenu retourné par le serveur.
Une autre chose à retenir est que les ressources prises par la connection doivent être libérées ; pour cela il faut absolument fermer le flux duquel la réponse va être lue (celui retourné soit par la méthode  getInputStream ou celui retourné par la méthode getErrorStream). Si cela est fait, de manière transparente la connexion réelle sous-jacente (le socket) pourra être réutilisé pour une autre requête ; ce qui est très pratique pour obtenir de meilleures performances.