Categorieën
Algemeen

Wintertijd

Volgens Bart Eeckhout mag je niet tegen houtstook zijn als je je ondertussen bij de bouw van nieuwe gascentrales hebt neergelegd.

Nochtans:

Meer dan de helft van de primaire fijnstofuitstoot in Vlaanderen is afkomstig van houtkachels en open haarden.

‘Hout opstoken in kachels is te vergelijken met passief roken, maar op een veel grotere schaal’

Terwijl op sociale media lui die beter zouden moeten weten tot verzet tegen de ‘groene dictatuur’ oproepen, branden hier in de straat de haarden en kachels. Moet wel, het is begin oktober en 18 graden warm.

Je woning ventileren doe je maar vóór de middag; daarna komt er alleen nog vuiligheid binnenwaaien.

Oh, en de wintertijd? Op 31 oktober verzetten we de klok.

Categorieën
Algemeen

Goudhaantje

Als (Vlaamse zakenkrant) De Tijd over ‘goudhaantjes’ begint, kun je ervan op aan dat het niks wordt met dat bedrijf.

Van Jetrea (Thrombogenics, vandaag Oxurion) over ClickShare (Barco) tot filgotinib (Galapagos), dat blijkbaar als Jyseleca wordt verkocht.

Enkele meer recente titels:

  • Goudhaantje Jetrea wordt afdankertje
  • Barco: van chouchou1 tot risicopatiënt
  • Brussel: goudhaantje draait in de soep

Wie wil weten waarin niet te investeren: https://www.google.com/search?q=site%3Atijd.be+goudhaantje.

  1. Lieveling.
Categorieën
Algemeen

RSS-Bridge

Met RSS-Bridge kun je zelf allerhande online bronnen in een RSS-feed gieten. En gisteren deed ik dat voor Apache, het online magazine dat sinds het op Drupal draait (kortstondig?) geen RSS-feed meer beschikbaar stelt.

Mijn custom bridge ziet er in elk geval zo uit:

<?php

class ApacheBridge extends BridgeAbstract
{
  const MAINTAINER = 'ochtendgrijs';
  const NAME = 'Apache';
  const URI = 'https://www.apache.be/';
  const CACHE_TIMEOUT = 3600;
  const DESCRIPTION = 'Inhoud heerst';

  public function collectData()
  {
    $pageUrl = self::URI . 'artikels/nieuws';
    $html = getSimpleHTMLDOM($pageUrl) or returnServerError('Could not request Apache: ' . $pageUrl);

    foreach ($html->find('article.node--type-article') as $element) {
      if (count($this->items) >= 20) {
        break;
      }

      $item = [
        'uri' => 'https://www.apache.be' . $element->find('div.article-list-text > a', 0)->href,
        'title' => trim($element->find('div.article-list-titel span', 0)->plaintext),
        'content' => '<p>' . trim($element->find('div.article-list-teaser', 0)->plaintext) . '</p>',
        'timestamp' => strtotime(trim($element->find('span.article-list-datum', 0)->plaintext)),
      ];

      $this->items[] = $item;
    }
  }
}

Veel meer dan RSS-Bridge aan de hand van wat CSS-selectors vertellen waar het net bepaalde (meta)data kan terugvinden, is dat niet. (Het valt op, overigens, dat Apache niet bepaald semantische HTML gebruikt, maar dat terzijde.)

En de volledige berichten?

Hierboven maakten we een feed voor de artikelen op https://www.apache.be/artikels/nieuws. Op dat feed kunnen we ons nu gaan abonneren. (Samenvattingen) van nieuwe items verschijnen dan automatisch in onze reader.

Als bonus leg ik nog even uit hoe ik mijn eigen feedreader geïnstrueerd heb om meteen de volledige berichten op te halen.

In mijn reader haal ik met file_get_contents() de betreffende webpagina’s op. Waarom die (eenvoudige) functie en geen geavanceerder bibliotheek? KISS!

Moet ik (t.t.z. voor artikelen achter een paywall) alleen nog een session cookie meesturen, nadat ik mijn reader zich met mijn e-mailadres en wachtwoord heb laten aanmelden.

Dat aanmelden moet met een POST request, en dat doe ik met cURL. De cookie sla ik lokaal op. Vervolgens haal ik uit dat tekstbestand de informatie (d.i. het ID en de value) die nodig is om Apache te bewijzen dat ik ben aangemeld.

Ondertussen werkt dit alles netjes, al zoek ik nog even uit hoe ik ook voor die POST request file_get_contents() kan gebruiken (dat het kan, weet ik, en om de cookie op te slaan zou ik de headers kunnen parsen).

Categorieën
Algemeen

Moestuinieren

Ik had het moestuinieren zo’n beetje opgegeven. Zelfs een wereldwijde pandemie1 kon daaraan niks verhelpen.

Het is als relatieve leek best moeilijk, weet je. Dieven2 en aanbinden en net genoeg maar niet te veel water en mest. (Over het miljoen miljard slakken, kevers en ander kruipend gespuis zullen we maar niet beginnen.)

Afijn, long story short: ik heb dan toch enkele tomatenplanten gekocht (voor zaaien was het te laat), (zomer)worteltjes en (dito) sla gezaaid, en komkommer en courgette en pompoen. Die laatste twee laat ik buiten zo’n beetje hun ding doen, dat loopt net als de vorige keer wel los.

Die komkommer en tomaten, though.

Afijn, ben benieuwd.

  1. Is dat een pleonasme? Dat is een pleonasme. Sort of.
  2. Het verwijderen van zijscheuten.
Categorieën
Algemeen

Volkswoede

Veel pogingen – afijn, op sociale media – tot verklaring van ‘de volkswoede’, dezer dagen.

Het oppoken van allerhande zogenaamde maatschappelijke tegenstellingen is een theorie. De gebrekkige aanpak van de coronacrisis een andere.

Sommigen1 voegen daar maar wat graag ‘de hoogste belastingdruk ter wereld’ aan toe.

En zo cherrypickt iedereen maar wat. De grote problemen van vandaag? Die van onszelf. Fijn, hoor.2

Houdoe.

  1. Willen én lagere belastingen én lagere ‘facturen’ (voor stroom, water, je kent dat). Kijk, ook ik ben voor individuele verantwoordelijkheid en zo, en doorgaans betekent dat hogere facturen. Zélf meer betalen (voor je pensioen, een vliegtuigreis, een luxewagen of het vullen van je zwembad), als je daarvoor kiest. Ik geef het maar even mee.
  2. Misschien is ‘gewoon boos zijn’ gewoon een dingetje – well played, socialemediabedrijven. Sinds er zonder publiek wordt gevoetbald, laat ik me vertellen, gaan hooligans op een afgelegen plek in het bos met elkaar op de vuist.