Categories
Internet, Unix en security

Als een eerstejaars met psycopg2

Als een eerstejaars ben ik sinds jaren weer in de autocommit grap van database getrapt. Om een of andere reden bleven de tupels netjes in de tabel zitten. Dit terwijl de query direct met psql uitgevoerd wel netjes zijn werk deed. Dus maar eens in de documentatie van psycopg2 gedoken om te zien wat er mis was met de volgende Python-code.

curr = conn.cursor()
try:
    curr.execute("""delete from tabel where x > 2""")
except Exception, e:
    exit(1)

Het antwoord was helaas snel gevonden en deed me terug denken aan de eerste stappen op Oracle. Een dikke 15 jaar geleden, dat wel. De bijgewerkte code hieronder vertelt eigenlijk wel het verhaal.

curr = conn.cursor()
try:
    curr.execute("""delete from tabel where x > 2""")
    conn.commit()
except Exception, e:
    conn.rollback()
    exit(1)

Ik heb me laten misleiden door de autocommit bij andere modules binnen PHP en Perl als een eerstejaars. Want daar stopt autocommit op het moment dat je een transactie start, maar hier moet alles worden gecommit. Dit doet met denken of er dirty read/write bugs zijn te vinden in sommige applicaties die autocommit doen.

Categories
Internet, Unix en security

GNOME op dieet?

Met elke release komen er meer features in de GNOME desktopomgeving, maar tegen welke prijs. En hoewel veel aanpassingen positief zullen uitpakken voor veel gebruikers zijn er helaas ook veel nadelen, want steeds meer onderdelen worden in bijvoorbeeld Python geschreven en zijn voor veel gebruikers niet zichtbaar. Dit geldt ook voor de impact van deze afhankelijkheid.

Om te kijken hoe groot de impact van Python op Rhythmbox is als voorbeeld werd het tijd om Rhythmbox zelf te gaan compileren zonder ondersteuning voor Python. En het resultaat baarde eigenlijk zorgen aangezien we circa 13MB bespaarde op resident memory na enige tijd operationeel te zijn. Het is dan ook zeker een iets om verder naar te doen aangezien ook de opstarttijd aanzienlijk verbeterde.

Dit roept wel vragen op hoe bepaalde mogelijkheden kunnen uitpakken en of het wel de moeite waard is. Ik trap hiermee hoogstwaarschijnlijk op veel tenen, maar hoogstwaarschijnlijk niet op die van Jane Doe als eindgebruiker. Zeker niet als zij de rekening voor de computer moet betalen voor zowel de aanschaf en gebruik. En gezien welke kant de wereld opgaat is dit wel iets om over na te gaan denken.

Dit doet me denken aan de tijd dat GNOME nog genoeg had aan 192MB, maar tegenwoordig is 1024MB wel het minimum aan het worden voor een standaard desktop om goed te laten werken. Maar hoe gaan we technieken zoals Python, Mono en Java uit de basis van een desktopomgeving krijgen en houden. Het is in iedergeval wel iets om over na te denken en te kijken welke features daadwerkelijk belangrijk zijn en of ze kunnen worden gedaan in een efficiente C-implementatie.