Weblog

published Nov 03, 2021, last modified Nov 04, 2021

Dutch Python Web Meetup 21 March 2013

published Mar 21, 2013, last modified Mar 25, 2013

Hosted in the Travelbird office, Amsterdam

Remco Wendt starts this meeting off with some bad news.

Malcolm Tredinnick passed away. He was a really major contributor to Django. He will be a big loss to the community.

A UK company is claiming a trademark over Python. Ah: it has been resolved.

The Django sprint in Utrecht was a big success. It has just been decided at the general Dutch Django meeting to repeat this next year: 22 and 23 February 2014.

Orne Brocaar - Job-Runner

Job-Runner is a product we built inside Spil. I am a freelance Python/Django web application developer. I am currently working for Spil Games, a gaming company in Hilversum, about 70 people working there, about 50 gaming portals worldwide.

I am working within the data warehouse team. We gather data from internal and external sources, like analytics data, game related data. We convert this into a Data Vault and Data Mart model, where we can analyze it so we can understand our users. We create reports to inform the business. The data is imported into the staging area (database), then the data warehouse, then we go to reporting, analysis, recommendations. These are all jobs that need to be performed in order.

Before Job-Runner this was all scheduled by cron. If one job failed, the follow-up jobs would fail too. There was no good overview of running, completed and failed jobs, hard to quickly see what (if anything) went wrong. Cron could start a new job if the previous long-running job was still running. Not good.

Job-Runner is a centralized dashboard, an admin interface, a broadcaster for jobs, a RESTful interface. Then there are decentralized workers (job-runner-worker), and a centralized WebSocket server (job-runner-ws-service). Those two communicate with Job-Runner.

The dashboard is HTTP, the queue broadcaster is ZeroMQ.

A project has a job template, for example a python snippet with some variables that are filled in. A job is created from this template. The job is executed in a worker pool. The job may run multiple times, for example once every day. You can also start it manually from the dashboard.

Job-Runner is a Django project, with TastyPie for the RESTful interface. There is a long running management command (the publisher), called broadcast_queue. The worker subscribes to this publisher. It publishes events to ZeroMQ. gevent handles the event queue. The WS Server is a simple proxy between ZeroMQ and the WebSocket server.

We started in December last year. We looked around for other solutions, but they did not fit our needs. The authentication system of Django worked nicely for us. You can setup notification e-mail addresses for a job or pool. Via the admin interface you can schedule jobs at a specific time. If a previous job run has not finished yet, the new job instance will not yet be started.

We have used this for hundreds or even tens of thousands of jobs. We only have one normal cronjob left.

The documentation is at http://job-runner.readthedocs.org

Personal website: http://www.brocaar.com

Jan-Jaap Driessen - Sentry

I work at Mind District. We set up Sentry in our web stack, because we don't want to hunt around for stuff in lots of logs on several servers.

Tip: use UDP for sending the logs to the central server.

We have used this in Python, but are now also using it in javascript, as simple as this:

MD.logging.warn('bar');

Inspired by Strophe. We have a few lines of code for that. Ask me. We also use log4javascript, which is 128 kB and that is minified. In development you want to use the console, but in deployment you want to use Sentry. The code uses Raven to capture the logged message and send the message to the Sentry server.

The WSGI integration is in Zope3, let me know if you are interested.

Diederik van der Boor - 10 things to take care of when Open Sourcing your package

For example django-fluent-pages, developed by me.

  • License: do not use the GPL, but the BSD or the Apache license, otherwise you cut your project off from other Python community modules. [For the record: I do not agree with this. Maurits]
  • Please provide a README with a reason for using your project. Maybe a screenshot.
  • A changelog please. I don't want to look at github commits to check if my bug got fixed in a specific version.
  • Documentation. For example on http://readthedocs.org. Look into sphinx.ext.autodoc for automatically generating documentation from your code. Also graphviz and intersphinx.
  • Add tests. A runtests.py that is enough to run your tests without needing to setup anything is a good idea. Look into Travis for automatically running tests on a server. tox is good for running tests locally.
  • Use the communication channels. Keep people updated. Have a website, with documentation.
  • Please provide an example project, so people can easily see how it works.
  • Create a good setup.py.

See my github account: https://github.com/edoburu

I count eight things, not ten, so I apparently missed two. Well, two points from the audience follow.

Audience:

  • If you start losing interest in your project, look for someone who can take over, preferably someone who has already created some pull requests. Also give people commit access to your repository if they have made some good pull requests.
  • Upload your distributions to PyPI, not your own small server. And leave all versions online, otherwise some people will be very annoyed as they are using it on their live site.

Eric - Two Scoops of Django

Daniel Greenfeld and Audrey Roy are writing a book on best practices for Django development. It is in beta, but you can already buy it. It is very good, so please do. The beta is 14 dollars and then you get the final version for free.

Get it at https://django.2scoops.org

Jan Murre - Webapp2

I am active with Python, Zope, Plone, Django, since 1999. I am currently working for a company in Utrecht and before that Pareto.

Webapp2 is a lightweight Python web application framework. It is compatible with webapp, its predecessor, which is the original Google App Engine framework. Webapp2 has several improvements, for example better URI routing and WebOb. See the webapp2_extras package for more stuff. Google has adopted it since GAE SDK 1.6.0.

It has WSGI integration. You can choose your templating language: Jinja2, Mako, etcetera. Forms: wtform, formish, etcetera. Persistence: for AppEngine there is BigTable. Stand-alone you can again use whatever you like: SQLAlchemy, some noSQL, etc. Use a WSGI container, like uWSGI, mod_wsgi, paste. So you pick and choose your own stuff on top of the micro framework.

Google App Engine is Platform As A Service (PAAS). You upload your application there. Comparable in that respect with Heroku. Easy to build, easy to maintain, scales and load-balances automatically, you pay for what you are using. There are several quotas and limits. For some applications we only have to pay the minimum of two dollars a week for the professional version. There is also a free version, with low limits for bandwidth, memory. Languages supported are Python, Java, Go (experimental). BigTable is a noSQL storage, with queries, sorting, transaction, caching built in. URL fetching. E-mailing. There are task queues (think: Celery). Scheduled tasks (think: cron).

You start the application with a simple, plain text yaml configuration. Of course I use Buildout to setup my local development environment, where you have some local storage. The recipe to use is rod.recipe.appengine.

There are other Python (micro) frameworks that you can look at, for example Flask, Pyramid. You can use those on the Google App Engine too, but it takes a bit more setup.

Conclusions for Webapp2: small, but nice. Quite some batteries included. Good routing engine. Plays nice with Google App Engine.

Together with someone else I created http://mijnvoetbaltrainer.nl that uses this, in combination with Amazon for hosting the video material.

More info on webapp2: http://webapp-improved.appspot.com

Pepijn Vos - Pygments, ctags

Pygments: code colorizer. Ctags: allows you to jump to a definition of some code. You can combine that. I did that in spelunking. You can use it to browse github repositories and click around in it. It downloads the repository and runs Pygments and ctags on it and makes it available.

Code: https://github.com/pepijndevos/spelunking

Demo server: http://raspi.pepijndevos.nl

Jan-Jaap Driessen - video conferencing

We have built some cool stuff for health care professionals who visit other people. It can be handy to do this via video communication. We did not base this on Skype, but on Google video conferencing. http://videmo.minddistrict.com There was a SOAP api that we had to interact with. If you have to do that, you should use suds. Using bosh, jabber, xmpp on the server. You can use it simply with an Android phone, no need to buy special hardware.

Wil jij mijn collega worden?

published Feb 01, 2013

Mijn werkgever Zest Software is op zoek naar een Python programmeur.

Mijn Franse collega Vincent Pretre gaat weg bij Zest Software. Ik vind het jammer om hem te zien gaan, maar uiteindelijk was de aantrekkingskracht van familie, bergen en kaas die ook goed smaakt buiten een tosti te groot. Wij zoeken dus naar iemand om hem te vervangen, anders hebben we teveel werk te doen.

We willen iemand met ongeveer de vaardigheden van hem of mij. Het belangrijkste is dat je competent bent in het programmeren in Python en dat ook graag doet. We bouwen websites gebaseerd op Plone of Django, dus als je één of beide beheerst, is dat handig. Als je geen ervaring hebt met deze twee frameworks, maar je houdt van een uitdaging, neem dan toch contact met ons op. Leren hoort bij het vak.

Ik werk al zeven jaar voor Zest en dat bevalt me nog steeds goed. Ten eerste hebben we een klein, maar goed team. Jean-Paul Ladage is de baas, met vele jaren ervaring in Zope en Plone. Hij heeft er een handje van uit te vogelen wat een klant nodig heeft in plaats van wat hij wil, en hij kan dat uitleggen aan het ontwikkelteam. Fred van Dijk houdt het hoofd koel bij het helpen van klanten met veel websites en servers. Hij zoekt uit of een wens of bug aangepakt kan worden met standaard Plone of met add-ons of dat Vincent of ik als programmeurs erop los mogen. Thom van Ledden heeft veel styling voor ons gedaan, maar hij zal weinig tijd hebben, want hij gaat de komende tijd aan een afstudeeropdracht zitten. Daniel Ferreira doet marketing voor ons. Elke dag lunchen we samen.

Ik vind het leuk dat ik de hele week veel kan programmeren. Ik kan me concentreren op Plone en wat Django en ook een beetje Grok, terwijl Jean-Paul en Fred de meeste klanten opvangen voor ze me af kunnen leiden. Klantcontact is prima, maar niet teveel op één dag. :-) Ik vermaak mezelf het beste als ik aan een project werk en daarbij verbeteringen kan doen aan de kern van Plone of aan add-ons, en dat komt geregeld voor.

Dus: als je op zoek bent naar een Pythonbaan met een goed team in Rotterdam (Hoogvliet), neem dan contact met ons op.

Want to become my colleague?

published Feb 01, 2013

My employer Zest Software is looking for a Python programmer.

My French colleague Vincent Pretre is leaving Zest Software. I am sad to see him go, but finally the pull of family, mountains and cheese that also tastes good outside of a tosti was just too strong. So we are looking for someone to replace him, otherwise we will have too much work to do.

Basically we want someone with about the same skill set as him or me. The most important thing is that you need to be competent and happy when programming in Python. We build websites based on Plone or Django, so being skilled in one or both of those is good. If you do not have experience with those two frameworks, but you like a challenge, do contact us. Learning is definitely part of the job.

I have worked for Zest for seven years now and am still enjoying it. First of all, we have a small, but good team. Jean-Paul Ladage is the boss, with lots of years of Zope and Plone experience, and a knack for figuring out what the customer needs instead of what he wants, and explaining that to the development team. Fred van Dijk keeps a clear head when helping clients with lots of websites and servers, and figuring out if a feature or bug can be dealt with using standard Plone and add-ons or if Vincent or I as programmers should have a go at it. Thom van Ledden did lots of styling for us, though he won't have much time anymore as he will be busy finishing his studies. Daniel Ferreira is doing marketing for us. Every day we lunch together.

I like that I get to do lots of programming the whole week. I can concentrate on Plone, and some Django, and also a bit of Grok come to think of it, while Jean-Paul and Fred keep most customers out of my hair -- and the other way around. Contact with customers is fine, just not too many on one day. :-) I enjoy myself the most when working on a project means improving core Plone or add-ons, and that regularly happens.

So: if you are looking for a Python job with a good team in Rotterdam (Hoogvliet) contact us.

Op de fantasy longlist

published Jan 14, 2013

Ik sta op de longlist van de fantasy schrijfwedstrijd.

Ik ben deelnemer aan de fantasy schrijfwedstrijd van Luitingh Fantasy en Magic Tales. Vandaag is de longlist bekend geworden. Van de honderd ingezonden manuscripten zijn er nu nog vijfentwintig over. Ik zit erbij!

Na de inzending is dit dus de tweede grote horde die ik genomen heb, al kon ik er sinds de inzending natuurlijk niets meer aan veranderen.

Op vrijdag 8 februari volgt de volgende horde: de shortlist van beste vijf boeken. Deze shortlist wordt tijdens de prijsuitrijking bekendgemaakt. Die vindt plaats in Rotterdam, in boekhandel Donner. Een thuiswedstrijd voor mij dus.

Ik ben benieuwd hoe ver ik kom. Ik ben erg blij. Het smaakt naar meer!

Boeken 2012

published Jan 05, 2013, last modified Feb 06, 2013

Welke boeken heb ik het afgelopen jaar gelezen?

Het afgelopen jaar heb ik bijgehouden welke boeken ik heb gelezen. Het waren er vijfentwintig. Dat is meer dan ik in jaren gehaald heb. Het helpt dat anderhalf jaar geleden in mijn kerk een boekenclub gestart is. Om de zoveel weken (afhankelijk van de dikte van het boek) komen we bij elkaar om een literair boek te bespreken en een nieuw boek te kiezen. Ook ben ik meer fantasy gaan lezen, omdat ik zelf het afgelopen jaar een fantasyboek geschreven heb.

Hier is de lijst met mijn gelezen boeken, in volgorde waarin ik ze gelezen heb, en per boek een korte toelichting en tussen haakjes een score van één tot vijf sterren. Voor een samenvatting is meestal geen ruimte. Vraag me gerust om meer toelichting als je je afvraagt of een boek iets voor jou is.

Ik vermeld ook het oordeel van de boekenclub, als ik het boek daar gelezen heb. We gebruiken een notitieschrift, met stickers voor drie categorieën: Wow, OK, Ugh.

Marion Altena: Ontworteling (4*)

Literaire, magisch realistische thriller van een Rotterdamse schrijfster. Iemand die zich online voordoet als vampier, blijkt dat ook werkelijk te zijn, tot schrik van de hoofdpersoon. Hoe gaat ze daarmee om? Een meeslepend verhaal.

Godfried Bomans: Oude en nieuwe buitelingen (3*)

Zesentwintig korte verhalen vanuit het vertelpunt van een journalist. Een creatieve verzameling verhalen met geestige hoogtepunten, maar ook een aantal saaiere verhalen.

Oordeel boekenclub: OK.

Christopher Paolini: Inheritance (5*)

Vierde en laatste deel van de fantasyserie die begon met Eragon. Waardig einde van deze reeks boeken, mooie conclusie. Elk boek brengt het verhaal verder en ontwikkelt Eragons karakter. Hij groeit. Veel interessante ideeën.

Op 19 april was Paolini in boekhandel Donner in Rotterdam voor een lezing en vragen. Laat ik zijn advies voor schrijvers opschrijven nu ik toch bezig ben.

  1. Lees, lees, lees wat je leuk vindt en wat je niet leuk vindt.
  2. Schrijf elke dag. Neem Kerst vrij, maar schrijf elke dag.
  3. Vind iemand die constructieve, opbouwende kritiek/feedback geeft. [Die had ik zeker voor mijn boek, bedankt! - Maurits]
  4. Schrijf over een onderwerp waar je om geeft.
  5. Schrijf je fantasy? Plan alles voordat je begint.
  6. Heb plezier.
  7. Luister niet naar mensen die zeggen dat je niet kan schrijven.

Mike Dash: De ondergang van de Batavia (5*)

Geschiedenisboek over de schipbreuk van een V.O.C.-schip. Een schipbreuk is geen reden om een al geplande muiterij af te blazen, toch? Een verbijsterend boek over een ongelofelijke tragedie.

Oordeel boekenclub: Wow.

Christophe van Gerrewey: Op de hoogte (5*)

Een aansprekende brief die de puzzelstukjes van een verbroken relatie bij elkaar probeert te harken. Het einde, waarin de vriendin zogenaamd aan het woord komt, is het mooiste.

De meningen op de boekenclub liepen uiteen van Wow tot Ugh.

Anne McCaffrey: Dageraad van de draken (3*)

Na vijftien jaar komen drie grote ruimteschepen met zo'n vijfduizend mensen aan op de planeet Pern om deze te koloniseren. Ze ontmoeten kleine draakjes die hen helpen tegen de draadval, een zeer vreemd natuurlijk (of toch niet?) verschijnsel. Een fantasierijk science fiction verhaal, met heel originele dieren, maar ook soms met onhandig aandoende, seksueel getinte passages.

Adrian Stone: Profeet van de duivel (3*)

Deel één van de duivelstrilogie. Oorspronkelijke Nederlandse fantasy die degelijk in elkaar zit. Ik heb me prima vermaakt.

Suzanne Collins: The Hunger Games trilogie (5*)

Een dystopische toekomstroman: Panem (Amerika, maar ook Latijn voor 'brood') wordt na een burgeroorlog geregeerd door het machtige Capitool. De twaalf overgebleven districten worden onderdrukt. Het dertiende district is vernietigd. Elk jaar worden de Hunger Games georganiseerd. Elk district moet één jongen en één meisje afvaardigen als tribuut om te vechten tot de dood. Er kan slechts één overwinnaar zijn. De hele trilogie wordt in de ik-persoon en in de tegenwoordige tijd verteld door tribuut Katniss Everdeen. Je zit echt in haar hoofd, wat in het eerste boek een stuk beter werkt dan in de film.

Een inventief, aangrijpend verhaal, sterk in hoogte- en dieptepunten. Ik heb alledrie de boeken achter elkaar gelezen: er was geen sprake van dat ik een ander boek tussendoor zou lezen. De eerste twee boeken hebben bepaald geen happy end, wat goed is. Voor mij is Suzanne Collins de ontdekking van het jaar.

  • Boek 1, The Hunger Games: 'Oh yes!' Momenten waarin je trots bent op de hoofdpersonen of het publiek.
  • Boek 2, Catching Fire: 'Oh no!' Momenten waarin je denkt: dit mag niet, dit kan je de hoofdpersonen en de lezers niet aandoen. Dat bedoel ik positief.
  • Boek 3: Mockingjay: '...' Momenten waar je mond van openvalt en waar geen woorden voor zijn. Dit is het meest psychologische deel, waarin de hoofdpersonen ondertussen zoveel hebben meegemaakt dat ze emotioneel labiel zijn en af en toe schreeuwen of agressief worden naar vrienden, zodanig dat er een spuitje in moet.

Douglas R. Hofstadter: Gödel, Escher, Bach (5*)

Er is steeds een praktisch hoofdstuk met Achilles en een schildpad in de hoofdrol die een nieuw idee naar voren brengen en (vaak idioot) uitwerken. Daarna volgt een theoretisch hoofdstuk waarin veel wordt uitgelegd, vooral met eindeloze lussen in de muziek van Bach, de tekeningen van Escher en de wiskunde van Gödel.

Groots, Breed, Enorm (900 pagina's). Interessant, vol ideeën over van alles en nog wat: muziek, beeldkunst, wiskunde, DNA, kunstmatige intelligentie, enzovoorts. Bijkans onbegrijpelijke onderwerpen worden begrijpelijk uitgelegd.

Mijn hoed heel diep af voor de Nederlandse vertaling, dat is een tour de force. Ik was het boek al te vaak tegengekomen in andere boeken en dat was zeer terecht. Mijn geest voelde ik bijna uitzetten, groeien.

Gigantisch, Eindeloos, Baanbrekend.

Als dit teveel is, kan je het ook samenvatten in zes woorden.

Brandon Sanderson: Mistborn (4*)

Inventief magisch systeem waarin je kracht haalt uit diverse metalen. Diepgang in karakters, vooral Kelsier, en Vin die moet leren vertrouwen. Een intrigerende wereld, waar in het verleden iets gebeurd is wat geen van de karakters echt begrijpt en wat nog twee spannende vervolgdelen belooft, die ik zeker ga lezen.

K. Schippers: De hoedenwinkel (3*)

In 1996 ontving de schrijver de P.C. Hooftprijs voor zijn speelse oeuvre. Dat zie je in dit boek terug. Het is speels, bevreemdend, raar, magisch realistisch. Leuk gevonden, met een goede schildering van karakters.

Orson Scott Card: Ender's Game (5*)

Inventief science fiction verhaal over kinderen die geen kind kunnen zijn, en spellen die het lot van het menselijk ras bepalen in een ruimteoorlog.

Een korte versie kan je online lezen. Een aanrader!

Jonathan Swift: Gulliver's Travels (3*)

Een klassieker over een wereldreiziger die extreem kleine en extreem grote mensen tegenkomt, zwevende eilanden en intelligente paarden. Zo inventief dat het vergezocht is, maar dat mag. Vrij zakelijk, afstandelijk verteld. Hij neemt reisverhalen op de hak, politiek, religie, de samenleving, de lezer, Gulliver, alles.

Wederom erg verdeeld oordeel van de boekenclub: Wow, OK en Ugh.

George R.R. Martin: A Game of Thrones (3*)

Een van de populairste fantasyseries van het moment volgens mij, nu ook als televisieserie. Er zijn heel veel karakters, waardoor je niet erg betrokken bent. Een van de hoofdpersonen gaat dood: nou en, er zijn er nog dertig over. Erg wijds opgezet en daardoor soms moeilijk te volgen. Het heeft potentie, maar ik ben niet erg getroffen door het verhaal. Als ik deel twee toch ga lezen, komt dat door mijn favoriete karakters, Jon Snow en de heerlijk cynische dwerg Tyrion Lannister, en het fantastische gevaar uit het koude noorden. Winter is coming.

A. den Doolaard: De bruiloft der zeven zigeuners (4*)

"Branko Markovitsj dacht dat hij niet meer aan de liefde geloofde en daarom gaf hij zich over aan de drievoudige bedwelming die hij met rinkelend geld kon kopen: drank, vrouwen, zigeunermuziek." Mooie taal, beeldend. Goede spanning tussen Branko en Doesjka. Mooi gevonden liedwedstrijd.

Oordeel boekenclub: Wow.

John B. Olsen en Randy Ingermanson: Oxygen (4*)

Op de eerste bemande missie naar Mars gaat van alles mis door een ontploffing. Is het een aanslag? De zuurstof aan boord dreigt op te raken. Kan de bemanning elkaar en de vluchtleiding vertrouwen? Inventief. Goed uitgedacht en uitgewerkt. Het klopt.

Dit is het eerste e-boek dat ik gelezen heb op mijn e-reader.

Jaap Jan Brouwer: Heinz Guderian (3*)

Niet veel nieuws als je de boeken van de hand van Guderian zelf al gelezen hebt, maar een gedegen samenvatting met onafhankelijk oog voor de rol van deze Duitse tankgeneraal in de Tweede Wereldoorlog.

Brad Winning: Bloed en eer (3*)

Vlot geschreven fantasydetective van deze Nederlandse schrijver: ik had het in een dag uit. Ik had het bijna na enkele tientallen pagina's weggelegd omdat er naar mijn smaak teveel seksuele taal in zat. Veel plotwendingen, verrassingen. Je weet nooit goed wat er gaat gebeuren: een echte detective.

John Steinbeck: Of Mice and Men (4*)

Kort, maar krachtig. Lennie is prachtig neergezet, een verlegen, angstige goedzak die zijn eigen kracht niet kent. Mooie schildering van een ongelijke vriendschap, met een treurig einde.

Robin Hobb: The Dragon Keeper (4*)

Deel één van de Rain Wild Chronicles. Intrigerend. Karakters zijn heel goed neergezet, waarbij ineens het onderwerp homoseksualiteit wordt beetgepakt, wat zeldzaam is in fantasy. Goed gedaan. Minder spannend dan haar eerdere trilogieën op deze wereld, die mij erg goed bevallen zijn. De ontwikkeling van draken blijft prachtig verzonnen en krijgt hier een twist doordat de herboren draken een grote ontwikkelingsachterstand hebben en het twijfelachtig is of ze ooit zullen kunnen vliegen.

Adrian Stone: Zoon van de duivel (3*)

Deel twee van de duivelstrilogie. Vlot verteld. Duidelijk. Er gebeurt veel, verdeeld over zo'n vijftien jaar. Een paar aardige theologische opmerkingen.

Terry Goodkind: The Omen Machine (5*)

Na een pauze is dit maar liefst deel twaalf in de Sword of Truth serie, of De wetten van de magie. Richard en Kahlan hebben veel avonturen achter de rug en Richard is leider van D'Hara, maar hij kan niet op zijn lauweren rusten. Profetie komt van alle kanten op hem af en dat vindt hij maar niets, vooral omdat de profetie Kahlans leven bedreigt. Een donker verhaal, maar ook vol met de kracht van vriendschap, liefde, gezond verstand. De hooggeplaatsten in deze wereld hechten wel erg veel waarde aan profetie, wat ongeloofwaardig is, al zit daar ook iemand achter. De bekende figuren van eerdere boeken laten zich weer van de goede kant zien op hun herkenbare manier, waar de lezer van houdt. In het hart van het paleis van D'Hara bevindt zich een intrigerende machine die nog niet al zijn geheimen heeft prijsgegeven. Ik verwacht nog twee vervolgdelen.

Herman Melville: Moby Dick (5*)

Spannend avontuur over de jacht op de grote witte potvis. Erg veel achtergrondinformatie, je kan vaak gerust een paar hoofdstukken overslaan. Soms moeilijk te begrijpen Engels. Mooie klassieker over een geobsedeerde kapitein en zijn aartsvijand.

Conclusie

  • Ook Nederland heeft fantasyschrijvers die goed te pruimen zijn: van Adrian Stone en Marion Altena ga ik meer lezen.
  • Tegenvaller is George R.R. Martin: A Game of Thrones. Heel populaire fantasy, maar mij grijpt het niet zo.
  • Ontdekking van het jaar is voor mij Suzanne Collins met haar Hunger Games trilogie. Ik had een boek verwacht dat vooral voor tieners leuk was. Laten we het erop houden dat ik jong van geest ben.