• Who Killed Captain Alex?

    Fascinerend: ergens in Hol van Pluto Komma Oeganda maakt iemand een film waarvan hij nooit dacht dat hij ergens anders dan in zijn dorp zou gezien worden.

    En dat staat dan op tinternet, en iedereen ter wereld kan dat zien.

    Ondertussen is er al een hele industrie van ultragewelddadige Wakaliwood-actiefilms, maar hier is het dus allemaal mee begonnen. Magisch.

  • Fruit

    Ik ben naar de fruitmens geweest en ik heb gekocht: kilo’s en kilo’s druiven, drie bakken kersen, en twee bakken aardbeien.

    Het is bijna allemaal al op. En we hebben ook nog anderhalve kilo frambozen en zwarte bessen opgekregen.

    Hoe meer fruit er in huis is, hoe rapper het op geraakt — er is ongetwijfeld wel ergens een wet in de economie die dat allemaal uitlegt.

  • Links van 29 juli 2015 tot 7 augustus 2015

    DUNE: The Insanely Complete 3-Hour Fan Cut
    You think you’re a fan of Dune? Michael Warren has you beat. He put together this massive super-cut of David Lynch’s cult-classic 1984 film adaptation of Frank Herbert’s Dune comprised of footage from the original theatrical cut, the extended TV cut, and deleted scenes. This labor of fan love resulted in the following three-hour version. Originally done two years ago, an update earlier this year improved sound and video quality of the TV cut insertions.

    The Five Characteristics of An Ideal SaaS Company – Redpoint Ventures
    With more than 80% of venture capital investments occurring in enterprise and with the public markets disproportionately rewarding SaaS companies with huge enterprise value-to-revenue multiples (median is 7.6), it’s no surprise that interest Software-as-a-Service is booming. After meeting quite a few SaaS companies, I’ve compiled a list of my ideal characteristics for a SaaS business below.

    Trello CSS Guide
    Writing CSS is hard. Even if you know all the intricacies of position and float and overflow and z-index, it’s easy to end up with spaghetti code where you need inline styles, !important rules, unused cruft, and general confusion. This guide provides some architecture for writing CSS so it stays clean and maintainable for generations to come.

    Why write Python in Visual Studio? – The Visual Studio Blog – Site Home – MSDN Blogs
    Recently, Visual Studio 2015 was released with support for Python. Python Tools for Visual Studio (PTVS) are available to help throughout Visual Studio in all the places you’d expect, from editing and IntelliSense, to debugging, profiling, and publishing to Azure. You can find all the details and some video walkthroughs, documentation, and other resources on visualstudio.com, and the post announcing Python Tools 2.1 and Python Tools 2.2 beta. In this post I want to talk about some of the reasons to consider using Visual Studio next time you are working in Python.

    Doing Terrible Things To Your Code
    believe a key turning point in every professional programmer's working life is when you realize you are your own worst enemy, and the only way to mitigate that threat is to embrace it. Act like your own worst enemy. Break your UI. Break your code. Do terrible things to your software. This means programmers need a good working knowledge of at least the common mistakes, the frequent cases that average programmers tend to miss, to work against. You are tester zero. This is your responsibility.

    Catholic-Hierarchy: Its Bishops and Dioceses, Current and Past
    Current and historical information about its bishops and dioceses — heerlijke website

  • That was the week that was

    Het begon vanmorgen rond een uur of vier, met iets dat trok in mijn hoofd. Tegen dat het zes uur was, was het niet meer uit te houden van de koppijn.

    Geen migraine, maar begot spierpijn. Ik moet ergens verkeerd gelegen hebben of wieweetwat, upshot of it all: zelfs met pillen tot ze mij de strot uitkwamen, lukte het niet. Mailtje gestuurd naar The Power That Be op het werk en van de nood een (nu ja) deugd gemaakt: een dag vakantie gevraagd.

    Tegen iets na de middag was ik al iets meer mens, gelukkig.

    Laatste aflevering van The Daily Show met Jon Stewart opgezet, potje gebleit, en dan een spelletje gespeeld — Invisible, Inc, leutig, en voor ik het wist waren we een paar uur later.

    Gekeken naar de voorlaatste twee filmpjes van The Corning Museum of Glass die ik nog niet gezien had en we waren wee twee uur verder.

    Sandra is naar de zee Anna gaan halen (terug na een week zeilkamp, spannend!), ik heb wat zeetong en gebakken patatten gemaakt voor mij en voor Louis (Jan is mee naar de zee, Zelie zit op de afsluitdrink van haar monitordink voor Freetime), en dan rabarberconfituur gemaakt.

    En dan nu het laatste filmpje van Corning dat ik nog niet gezien had bekijken, en verder lezen in mijn boek, en het is weekend. Straks zijn alle kinderen weer thuis. Morgen komen oude vrienden eten. Zondag wordt het meubels klasseren.

    Een sneltrein is niets in vergelijking met mijn leven.

  • Extra garnalen

    Louis is een tijd geleden met een bokaal thuisgekomen.

    Een visbokaal, zo’n model waar op het internet duuzd accessoires voor te koop zijn, van filters over lichten tot poeders en stenen en gerief.

    Hij zag dat al direct zitten, vissen houden.

    Het ding heeft een tijd leeg staan staan, tot hij op een dag met een handvol geld naar de lokale viswinkel is gegaan — en teruggekeerd met een stuk of zeven kleine witte garnaaltjes. Die hij gratis gekregen had, ik vermoed omdat de meneer van de winkel medelijden had.

    De beesten in het water, alle zoveel tijd eten geven, voor zover we zien geen sterfgevallen, water verversen, toch een paar vissen gekocht, blijven eten geven, water verversen, lather, rinse, repeat.

    Die garnalen zitten heel de tijd tussen de stenen of de planten, zeer veel plezier heeft een mens daar dus niet aan. Ja, ze zien er weer wat groter uit, of ja, ze zien er nu gelijk donkerrood uit, maar dat is het zowat.

    TOT VANDAAG.

    Vandaag moest het water ververst worden, dus alle zeven garnalen en de vissen eruit gevist, en, euh, hang on: de zeven garnalen zijn er uit, maar er zijn nog garnalen in de bokaal!

    Serieus: er zijn meer dan dubbel zoveel garnalen dan er in het begin waren. Die beesten hebben kleintjes gemaakt! Ack!

  • Ware woorden

    Leve speciale effecten!

  • Klaar voor gebruik

    Er moest iets geprogrammeerd worden, en het lukte niet om iemand te vinden om het te laten doen.

    Veel vijven en zessen: ik heb het uiteindelijk zelf gedaan.

    Het doet nu veel meer dan ik oorspronkelijk gevraagd had dat het zou doen, en ik heb er redelijk wat meer werk in gestoken (ook voor dataconversie) dan redelijkerwijs verwacht mocht worden.

    Maar nu is het substantieel klaar. Niet dat ik niet meer zou weten wat gedaan — in tegendeel — maar als ik er nu nog dingen bij ga maken, gaat het echt de volledig professionele toer op, and I didn’t sign on for that.

    ‘t Is ergens wel erg: ik heb tig dingen weten investeerders vinden en verkopen gelijk zot, die niet zo uitgewerkt zijn als wat ik nu gemaakt heb. Niet dat ik wil investeerders vinden of wil verkopen gelijk zot, maar toch. Ik kan toch niet enige zijn bij wie het steekt dat er overal startups en dingen zijn die er zelfs tróts op zijn dat ze hun eerste klanten hebben zonder product, hun eerste investeerders zonder klanten, en ergens op weg naar de tweede of derde pivot zich pas vragen beginnen stellen over een eventueel businessmodel?

    Ik ben daar allemaal veel te oud en cynisch voor geworden, vrees ik.

  • Gedane zaken

    Ik heb de afgelopen tijd meer dan anders dingen uit mijn verleden gezien, en zelfs voor mij, die eigenlijk grotendeels in het verleden leeft, was het nog verrassend.

    Stapels brieven, bijvoorbeeld. Letterlijke stapels, gelijk hele zakken vol. Ik had begin de jaren 1990 tientallen en tientallen mensen waarmee ik voortdurend over en weer schreef.

    Wat is er mis gelopen? Waarom heb ik dat niet onderhouden? Ik weet het niet. Het was een andere context, die los stond van mijn ‘echte’ leven. In het echt sprak ik met bijna niemand, ik kwam al die mensen tegen tijdens internationale uitwisselingsdinges, en daar was ik een heel ander mens. Ik herken mezelf nauwelijks in de brieven die ik schreef.

    En er was nog bijna geen internet. Communicatie over landsgrenzen had nog iets magisch.

    Enfin, ik weet het eigenlijk niet. Ik kijk er naar uit dat de kinderen — te beginnen met Zelie, als het meezit na volgend schooljaar — internationale dingen begint te doen. Ik hoop dat zij het wel volhoudt, dat in contact blijven. Dat was eigenlijk wel wel wijs, eigenlijk.

  • Van wind en van water, van water en wind

    Oooooo spannend.

    Ziet, Anna al helemaal in de sfeer van de locatie:

    Anna in Knokke

    Ze is vandaag afgereisd naar Knokke-le-Zoute, waar door een samenloop van omstandigheden een plaatsje vrij gekomen was in een zeilkamp.

    Niet dat ze dat al ooit gedaan had, en niet dat dat haar zou tegenhouden. Ik dacht eerst dat het in een optimist op een plas water zou zijn, maar bleek vanmorgen dat het catamarans op de echte zee zijn. Een week van huis, zowaar.

    Ze kan uitstekend zwemmen, dus da’s toch al iets. 🙂

    Oh, en wat ook Spannnnnnnend! is: Zelie begint morgen aan haar eerste kamp als (stagiair-)monitor. Iets voor zeer kleine kindjes, een moestuinkamp. Met allerlei dingen voor te bereiden en stageverslagen en godweetwatnogallemaal.

    Oh, en ook spannend, maar ondertussen al achter de rug: er was vandaag een tjoetjoebers-bijeenkomst in Gent, en Zelie is er naartoegeweest, en ze staat met Zaka op de foto EN AL.

    Oh, en niet spannend want ze doen dat gelijk heel de tijd: Jan gaat op voetbalkamp. En Louis speelt op de computer. 😀

  • Gelezen: The Lathe of Heaven

    Lathe of HeavenEen mens moet om de zoveel tijd eens een oude klassieker herlezen, denk ik.

    Maar science fiction uit de jaren 1970 is toch altijd ook een beetje een risico.

    Maar ik herinner me vaag dat ik het zéér lang geleden, in franse vertaling dan nog wel, een wijs boek vond.

    Maar dat is nergens een garantie voor, mijn geheugen laat me soms écht in de steek (crf. Anne McCaffrey, brrr).

    Maar ik kwam het boek plots ook tegen in een lijst met boeken met niet-menselijke aliens, en dat herinnerde ik me zelfs niet meer, dat er aliens in zaten.

    En dus heb ik het dan maar in de rapte gelezen.

    Aan de oppervlakte gaat het over George Orr, een mens wiens dromen waar worden. Als hij bepaalde dromen heeft, en hij wordt wakker, dan is de wereld veranderd. Dat kan gaan van het eenvoudige (een schilderij van een berg is plots een schilderij van een paard, maar neen: het is altijd al een schilderij van een paard geweest, en de eigenaar weet zelfs precies waarom het er hangt, want de hele wereld is veranderd) tot het ingewikkelde (de hele menselijke soort is anders dan ze vroeger was, en heel de wereldgeschiedenis is veranderd).

    Het vervelende is dat het in dromen gebeurt, en dat dromen niet rationeel zijn, en dat George bang is dat hij dingen gaat veranderen, en dat hij naar een psychiater gaat (oei, daar is de tijdsgeest van de 1971!), en dat die psychiater minder scrupules heeft dan George.

    De psychiater beseft snel dat het echt waar is wat er gebeurt, en begint George Orr’s talent te gebruiken om de wereld te veranderen.

    En neen, dat loopt niet zo goed af.

    ‘t Is een fabel, ‘t is typisch Ursula K. Le Guin, ‘t is erg jaren 1970 maar ‘t blijft zeer leesbaar. En verrassend kort. En een heel ander boek voor een tiener dan voor iemand die al wat geleefd heeft.

    [van op Boeggn]

  • Het stonk in mijn template

    In een tabel met contactmogelijkheden stond er gewoon contacttype (tekst) en contactdata (ook tekst).

    Eerst was alleen GSM of telefoon mogelijk, en e-mail zat ergens anders. Daar ga ik dus toch geen aparte tabel voor maken zeker, om het lijstje (‘GSM’, ‘telefoon’) in bij te houden?

    Oh, maar dan zat e-mail plots ook bij de lijst van GSM en telefoon. En dan bleek dat er ook nog Twitter bij moest. En LinkedIn natuurlijk. En soms ook eens een persoonlijke website. En aaarg voor ik het wist, zag de code in de template er zo uit, en was het einde niet in zicht:

    <ul>{% for contact in contacten %}
      <li>
        {% if contact.contacttype = "gsm" %}
          GSM {{ contact.contactdata }}
        {% elif contact.contacttype = "email" %}
          <a href="mailto:{{ contact.contactdata }}">{{ contact.contactdata }}</a>
        {% elif contact.contacttype = "linkedin" %}
          <a href="{{ contact.contactdata }}">LinkedIn</a>
        {% elif contact.contacttype = "twitter" %}
          <a href="http://twitter.com/{{ contact.contactdata }}">@{{ contact.contactdata }}</a>
        {% elif contact.contacttype = "website" %}
          <a href="{{ contact.contactdata }}">{{ contact.contactdata }}</a>
        {% elif contact.contacttype = "telefoon" %}
          Tel. {{ contact.contactdata }}
        {% else %}
          {{ contact.contacttype }}: {{ contact.contactdata }}
        {% endif %}
        {% if contact.opmerking %}
          ({{ contact.opmerking }})
        {% endif %}
      </li>
    {% endfor %}
    </ul>

    Euh ja, qua stinken kan dat tellen.

    Dus maar rap properkes een tabel met contactmiddelen gemaakt, en bij elk contactmiddel in de tabel een template gezet, genre tel. % voor telefoon en <a href="http://twitter.com/%">@%</a> voor Twitter. En een formatteringsding gemaakt om de contactdata in de template te smijeren, en nu ziet de code er zo uit:

    {% for c in contacten %}
      <li>
        {{ c.contactmiddel.template|formatcontact:c.contactdata|safe }}
        {% if c.opmerking %}
          ({{ c.opmerking }})
        {% endif %}
      </li>
    {% endfor %}

    Een mens moet zijn plezier uit kleine dingen halen, soms.

  • Overdrijven met SQL

    Mensen hebben een adres. Of nee, mensen hebben eventueel een adres. Of nee, mensen hebben eventueel meer dan één adres. Of nee, mensen hebben eventueel meer dan één adres, waarvan er 0, 1 of meer nog geldig zijn en/of waren, eventueel van een bepaalde datum tot een bepaalde datum.

    Deze situaties zijn (onder meer) mogelijk:

    • Persoon A
      1. Adres 1 (tot 1998)
      2. Adres 2 (1998-2000)
      3. Adres 3 (sinds 2000)
    • Persoon B
      1. Adres 1 (tot 2010)
      2. Adres 2 (2010-2012) <– dus niet meer geldig!
    • Persoon C
      1. Adres 1 <– aangeduid als ‘ongeldig’, bijvoorbeeld omdat een brief onbesteld terugkwam
    • Persoon D
      1. Adres 1 (tot 1998)
      2. Adres 2 (sinds 1998) <– aangeduid als ‘ongeldig’

    Het is ook mogelijk dat een persoon gezegd heeft dat hij niet meer in de adressenlijst wil staan, mensen kunnen meer dan één geldig adres hebben (thuis en werk, bijvoorbeeld, of buitenlands adres en Belgisch p/a voor correspondentie).

    Gegeven dit, wil ik een lijst van mensen waar adresproblemen mee zijn:

    • alle mensen die geen adres hebben
    • alle mensen met enkel ongeldige adressen
    • voor de mensen met enkel ongeldige adressen: het meest recente ongeldige adres, met de ‘geldigheidsdata’ erbij

    Dat lijkt op het eerste zicht allemaal zo simpel als iets, maar uiteindelijk toch niet echt: ik wou een bestaande template hergebruiken en dus was ik beperkt tot een bepaald aantal velden (en moesten die ‘geldigheidsdata’ in het adresveld geplakt worden, maar dat lukt niet als ze soms null zijn. En oh ja, het is niet evident om mensen zonder adressen en mensen met alleen ongeldige samen te krijgen, en dan nog eens voor die laatste enkel het meest recente ongeldige adress erbij.

    Maar impossible pas français, en SQL is een gewillige hoer als het op dergelijke dingen doen aankomt, en uiteindelijk was het min of meer snel in orde. Maar zoals ze zeggen: it really puts the ‘dirty’ in ‘quick & dirty’.

    Dat is de miserie soms: het bouwt en bouwt en voor ge het weet, is een query een monstrositeit zoals dit:

    SELECT p.id, p.voornaam, p.achternaam, 
           r.bla, r.spel, c.geriefdata blop,  
       if(length(a.adres)>0, 
          concat(coalesce(a.adres,''), 
             '\n[', coalesce(a.van,''),
             ' - ',coalesce(a.tot,''),
             ']'), 
          null) adres
    FROM persoon p 
       inner join dink r on p.dink_id=r.id
       left outer join gerief c on p.id=c.persoon_id
       left outer join 
          (select a1.adres, a1.persoon_id, 
             a1.geldig, a1.van, a1.tot
           from adres a1
             inner join (
                select persoon_id, 
                   max(van) as recentste
                from adres
                where geldig=0
                group by persoon_id
             ) a2 on a1.persoon_id=a2.persoon_id and 
                   a1.van = recentste
          ) a on p.id=a.persoon_id
    WHERE
       p.splut=0 and
       p.pulk=1  and
       (a.geldig=0 or a.geldig is null) and 
       (c.gerieftype='blop' or c.id is null) and
       p.id not in (
          select persoon_id
          from adres
          group by persoon_id
          having sum(geldig)>0
       )
    GROUP BY p.id
    ORDER BY  r.bla, r.spel, p.achternaam

    Erm ja. Niet dat het zó enorm groot is, maar ik zou dat eigenlijk eens moeten van nul af aan herbekijken, ja. 🙂

  • Gelezen: The Goblin Emperor

    the-goblin-emperorEen boek waar een appendix van tientallen bladzijden bij zit met de namen van de stapels en stapels personages en plaatsen, die gaat van Aäno, “maid at Edonomee; daughter of Kevo”, over Nazhmorhathveras, “the inhabitants of the Evressai Steppes, at war with the Ethuveraz”, en Thorchelezen, “a junior canon of the Untheileneise’meire”, tot Zhidelka, “a Barizheise silk merchant and former pirate”.

    Een boek dat het heeft over niet veel meer dan de eerste dagen, weken en maanden van de nieuwe keizer van Elfland, in een wereld blijkbaar zonder mensen (maar met elfen en goblins), die aanvoelt als een soort kruising tussen het Byzantijnse Rijk op zijn hoogtepunt en de 19de eeuw, compleet luchtschepen, eindeloze hofrituelen, pneumatische post, enorm veel beleefdheidsregels en aanspreekwijzen, en een staatsbestel waar verschillende grote instellingen (Geloof incluis) elkaar in precair evenwicht houden.

    Een boek vol hofintriges, dat eigenlijk beter in het Duits of het Frans was geschreven, omdat er een groot deel van de tijd gespeeld wordt met aanspreekwijzen, en dat er in het Engels geen onderscheid is tussen ‘you’ enkelvoud en meervoud, en ‘you’ met veel, weinig of geen respect, en dat het niet meteen duidelijk is of ‘we’ betekent ‘wij, meervoud’, ‘ik, pluralis maiestatis’, of ‘wij, pluralis maiestatis’. Als het echt helemaal informeel is, dan moet de auteur terugvallen op vormen met ‘thou’, en da’s natuurlijk wel correct, maar het komt toch onvermijdelijk als min of meer gekunsteld over.

    Als ik het goed heb, is iedereen zowat afgeschrikt nu?

    Nergens voor nodig. Het was al lang geleden dat ik een boek zó in één ruk uitgelezen heb, tot zeer diep in de nacht.

    Maia Drazhar is de vierde zoon van de keizer van Elfland, Varenechibel IV. Van zijn vierde vrouw, een goblin, die hem na het overlijden van zijn derde vrouw door de regering is opgedrongen, om een alliantie te bewerkstelligen tussen elfen en goblins.

    (Tussendoor: elfen en goblins zijn allebei hoogstaande beschavingen, met een geschiedenis van duizenden jaren, de ene zien er wit uit en de andere zwart, de ene omschrijven de andere als ‘bruut uitziend’ en de andere de ene als ‘wezelachtig’, er is iets dat tussen racisme en nationalisme zit tussen beide, maar er zijn ook veel gemengde huwelijken in allerlei tinten van grijs.)

    De vierde vrouw en de vierde zoon werden gehaat door de keizer, die niet over de dood van zijn vorige vrouw raakte, en als de vrouw sterft, wordt Maia verbannen naar ergens zeer ver op het platteland, samen met een oom die uit de gratie gevallen is en hem ook haat, en fysiek en psychisch mishandelt bovendien.

    Op zijn achttiende verjaardag krijgt hij het nieuws dat een luchtschip waarin zijn vader en zijn drie oudere broers zaten, neergestort en uitgebrand is. Iedereen is dood, en dat wil zeggen dat Maia de nieuwe keizer is.

    Hij wordt naar het keizerlijk paleis gebracht, waar hij gedropt wordt in een wereld waar hij niets van snapt. Met politiek en hofintriges die boven zijn hoofd gaan, waar hij niemand kent, en waar niemand hem (openlijk) mag of kan tegenspreken.

    En dan wordt het een verhaal van een keizer die probeert goed te doen. Enorm meeslepend, en ik citeer uit een review van Foz Meadows op Strange Horizons (hier, maar lees het niet volledig wegens zware spoilers):

    In traditional high fantasy, the archetypal Good King wins out in a moment of deep catharsis, triumphing over obvious evils to claim the birthright exemplified and proven by his chivalrous qualities. InThe Goblin Emperor, Maia becomes a Good King—or a good emperor, rather—in precisely the opposite fashion, and to much greater effect. Despite several dramatic events, there is no single dramatic catharsis: just the steady business of wounds healing, progress being made, and formerly lonely, alienated people being made whole by the trust they come to have in each other. Maia’s chivalric virtues, if we can call them that, stem from the fact that he doesn’t believe himself to be inherently worthy. He earns the throne, not because of who he is, but because of who he strives to be, while the evil he defeats isn’t personified as a hoard of devils or a cackling overlord, but by the more insidious cruelties of abuse, entitlement, pride, and callousness.

    The Goblin Emperor is a powerful, poignant book, and an excellent addition to the genre. I enjoyed every minute of it.

    Ik treed Foz Meadows bij.

    [van op Boeggn]

  • Links van 18 juli 2015 tot 28 juli 2015

    The Corbyn Effect | The Disorder Of Things
    Blair and company argue that the Tories crave a Corbyn win, but the trap has been set a move beyond that: Cameron and Osborne can rest confident that the terror of electoral wipe-out will have a neo-Blairite Labour party galloping towards their position anyway. Always fighting the last war, and on a badly-chosen battlefield. The Labour mainstream cannot adapt to new parameters, cannot think except in the abjection of the spectre of a hard left, even as they appoint themselves the true custodians of the world-to-come.

    John Horton Conway: the world’s most charismatic mathematician | Siobhan Roberts | Science | The Guardian
    On a late September day in 1956, John Horton Conway left home with a trunk on his back. He was a skinny 18-year-old, with long, unkempt hair – a sort of proto-hippie – and although he generally preferred to go barefoot, on this occasion he wore strappy Jesus sandals. He travelled by steam train from Liverpool to Cambridge, where he was to start life as an undergraduate. During the five-hour journey, via Crewe with a connection in Bletchley, something dawned on him: this was a chance to reinvent himself.

    Startups And The Big Lie | TechCrunch
    Lying is a requisite and daily part of being a founder, the grease that keeps the startup flywheel running. No one likes to put it that way of course. Instead, we use phrases like “hustling” and “fake it until you make it” to make the idea of lying more palatable. “Information control” is among the most important skills a founder has traditionally needed for success, and these euphemisms change nothing of the daily behavior.

    Have anti-GMO activists gone off the rails? – Notes & Errata by Mark Morford
    Example after example, Saletan shows how anti-GMOers, far more than advocates (who are far from perfect, obviously), have become the worst kind of hypocrites, repeating lies and long-discredited myths to the point that not only have genetically modified foods, seeds and plants been demonized far beyond their actual threat (which is, scientifically and nutritionally speaking, negligible) they’ve turned the anti-GMO argument into the exact kind of toxic dogma these same progressives usually decry about the conservative mind-set: that is, a nasty calcification of thought, extreme righteousness, willful disregard of fact.

    Tools en utilities voor Genealogen
    U vindt op deze site verschillende links naar software en waardevolle informatie voor de genealogen.

  • Het moment dat een mens foert zegt

    Ik was bezig aan iets in Django. Dat doet in principe allemaal mooie dingen op hoog niveau en een mens moet zijn poten niet vuilmaken aan de database, een groot gemak mijnheer mevrouw.

    Maar op een bepaald punt loopt het in de soep met de snelheid en de efficiëntie, en op een bepaald moment lukt het gewoon niet om een view samen te stellen met combinaties van .filter() en .exclude() en subqueries in allerlei stappen en dan gedoe met {% for %}-dingen in elkaar genest en groupers en gedoe op een template-pagina: ja, het werkt min of meer wel, maar het is oérend traag. En véél te complex.

    En dan geeft een mens het op, en wordt het gewoon

    lijst = Dingen.objects.raw("""
      SELECT p.id, p.veld1, p.veld2, 
             r.veld1, r.veld2, a.veld2, c.veld1
      FROM tabel1 p 
           inner join tabel2 r on p.r_id=r.id
           inner join tabel3 b on p.id=b.p_id
           left outer join tabel4 a on p.id=a.p_id
           left outer join tabel5 c on p.id=c.p_id
      WHERE
           r.veld1< {0} and b.veld1 in ({1}) and
           p.veld3=0 and p.veld4=1 and
           (a.veld3=1 or a.id is null) and 
           (c.ctype='blah' or c.id is null) and 
           p.id not in (select p_id from tabel4
                        where veld1={0} or s_id=2)
      GROUP BY p.id
      ORDER BY r.veld1, r.veld2, p.veld2
      """.format(parameter1,parameter2))

    Jaja, ‘t is niet zoals het zou moeten zijn, maar het is maar voor een rapport dat zeer zeer zelden moet lopen, en doet zó een deugd om in de rapte wat SQL bij elkaar te schrijven en dat het allemaal wérkt.

    Ik krijg er bijna heimwee naar echt programmeren en echt databasegedoe door.