Mostra totes les entrades de Gabriel Massip Fons

Philip Kerr: Laberinto griego

Philip Kerr: Laberinto griego (Greeks Bearing Gifts)
RBA Libros, febrer 2019
ISBN 978-84-9187-278-8
Valoració: 3

1957. Bernie Günter treballa com a conserge/vigilant al dipòsit de cadàvers d’un hospital de Munich. Fa servir un altre nom, com molta gent a Alemanya que té necessitat d’amagar-se o ocultar alguna cosa. Sobreviu, i amb això gairebé en té prou.

Un dia és reconegut, i es veu obligat a fer una feina per Max Merten, un dels cofundadors del Partit Popular Panalemany. Aquest encàrrec, tot i prendre viaranys diferents als esperats, és resolt a satisfacció de Merten, que l’ajuda a entrar a treballar a una companyia d’assegurances com a investigador de sinistres.

Després de treballar en algunes reclamacions a Munich mateix és enviat a Grècia, per investigar l’enfonsament d’un vaixell. La seva mentalitat i costums germànics topen amb la manera de fer grega, és clar; però s’hi haurà de sobreposar, sobretot perquè ben aviat descobreix que darrera aquest enfonsament hi ha implicats compatriotes seus. Alguns amb un passat criminal.

Client windows qobuz

Des de fa unes setmanes el client Windows de Qobuz em va bastant malament, bé, més ben dit no va, se’m penja. He provat de reinstal·lar-lo, i no he aconseguit que funcioni. Crec que té a veure amb els dispositius d’àudio de l’ordinador, però m’he cansat de perdre-hi temps.

He instal·lat una drecera de Chrome a https://play.qobuz.com, en mode “app”, i va prou bé.

Patró gestió connexions a base de dades

Ja he parlat alguna altra vegada de SQLAlchemy.

Com sabreu els que us hi heu dedicat alguna vegada, la gestió de les connexions a les bases de dades és un punt crític a les aplicacions amb diversos usuaris simultanis. Bé, és extensible a qualssevol recursos escassos.

Una solució que proposen (i deixen ben clar que no és l’única) és la següent:

from contextlib import contextmanager

sessions = sessionmaker (...) 

@contextmanager
def entorn_sessio ():
    sessio = sessions()
    try:
        yield sessio
        sessio.commit()
    except:
        sessio.rollback()
        raise
    finally:
        sessio.close() 

def fer_feina():
    # En acabar-se el WITH el bloc torna a entorn_sessio, just després del YIELD. 
    # Farà el commit
    # Si hi ha un error rebrem l'excepció
    # En tot cas allibera la connexió a la base de dades

    try:
        with entorn_sessio() as una_sessio:
            # El que hi ha dins del WITH pot fer l'accés a base de dades

            llibre_nou = Llibre(autor="Pierre Lemaître", titol="Couleurs de l'incendie")
            una_sessio.add (llibre_nou)

    except:
        # Tractar els errors des del punt de vista funcional, sense amoïnar-se per la connexió a la base de dades

    # I aquí seguim fent coses que no necessiten base de dades
    fer_mes_feina_sense_base_dades ()

L’he trobat molt elegant i a més m’agrada perquè:

  • Queda clar en quin bloc es fa accés a base de dades (el que és dins del with). Això convida a fer-lo curt i, si no ho és, a repensar-ho una mica.
  • Fa una gestió global del recurs (l’accés a base de dades) de forma bastant còmoda, que em sembla fàcil d’estandarditzar en tota una aplicació o en un equip de treball.
  • En cap cas es queden connexions obertes (si se segueix el patró a tot arreu, és clar).
  • M’ha permès aprofundir en el yield (no l’havia fet servir mai, encara… i és que m’agrada el Python, però vaig aprendre a programar amb BASIC i Pascal, que són molt tradicionals).

L’he començat a fer servir per una aplicació d’ús personal, amb una variant: un “entorn_sessio” per a actualitzacions (com el que hi ha a l’exemple de dalt) i un altre només per consultes, que incondicionalment fa un rollback() al final.

Si bé aquest mètode em sembla bo, no hi ha solució universal a aquests problemes. I gairebé és tan important assegurar-se que dins d’una aplicació es fa a tot arreu de la mateixa manera com la correcció de la solució per ella mateixa.

22/3/2019: Exemple retocat.

Pierre Lemaître: Couleurs de l’incendie

Pierre Lemaître: Couleurs de l’incendie
Albin Michel, 2018
ISBN 978-2-226-42688-8
Valoració: 3

El funeral de Marcel Péricourt, un banquer parisenc, mobilitza les més altes autoritats i la burgesia francesa. I s’hi esdevé un tràgic accident: el nét del difunt, Paul, cau (o es llença?) per una finestra, fet que el deixa paralític de cintura en avall.

El testament designa com a hereva Madeleine, la filla del difunt, mare del Paul. De fet ja la coneixem de refiló, és l’ex-dona d’Henry d’Aulnay-Pradelle (que segueix a la presó), i germana d’Édouard, dos dels protagonistes de Au revoir là-haut. I dos homes queden decebuts: Charles Péricourt, germà del difunt i polític més aviat mediocre, que sense els diners de Marcel no hauria pas arribat a diputat; i Gustave Joubert, el fidel administrador de la banca i temps enrere promès amb Madeleine, que esperava alguna cosa més que un agraïment simbòlic després d’anys de servei.

I amb aquests ingredients i mitja dotzena més de personatges Pierre Lemaître desenvolupa una trama d’aliances i venjances. Amb, és clar, algun gir sobtat de trames argumentals i evolució del caràcter dels personatges al llarg dels anys, entre les dues guerres mundials, amb el rerefons històric del naixement del nazisme a Alemanya.

Una mica menys d’èpica que al primer llibre de la trilogia, si bé amb personatges (potser) més elaborats, menys primaris. Val a dir, però, que fa quatre anys del primer llibre, i alguns detalls no els recordo.

Llegit en format electrònic; en català la publicarà Bromera, amb el títol “Colors de l’incendi”; estarà disponible el març del 2019, pel que llegeixo a “L’illa dels libres“.