The Daily WTF

Curious Perversions in Information Technology

CodeSOD: The JSON Template

We rip on PHP a lot, but I am willing to admit that the language and ecosystem have evolved a lot. What started as an ugly templating language is now just an ugly regular language.

But what happens when you still really want to do things with templates? Allison has inherited a Python-based, WSGI application which rejects any sort of formal routing or basic web development best practices. Their way of routing requests is simply long chains of "if condition then invokeA elif otherCondition then invokeB". Sometimes, those conditions will directly set the MIME type on the HTTP response.

They do use a templating library called Mako for generating their responses. They use it for their HTML responses, obviously. They also use it for their JSON responses, generating code like this:

{
    "success": true,
    "items": {
        %for item in items_available.keys():
        "${item}": ${items_available[item]}${',' if not loop.last else ''} 
        %endfor
        }   
}

The %for and matching %endfor mark the Python code off, which generates JSON via string-munging, complete with the check to make sure we're not on the last iteration of the loop.

Like so much bad code, this offers a degree of fractal wrongness. Instead of iterating over the keys and fetching the items inside the loop, you could iterate for key,value in items_available.items()- and according to the Mako docs, that for is just a regular Python for loop. That we're just outputting the contents of the dictionary is itself potentially a problem- sure, if we know the types of the dictionary, we'll know that whatever it is can be output in the body of a JSON document, but do we really think this code is using type annotations? I don't. And for a RESTful web service, I'm always going to feel weird about using a success field when ideally the HTTP status code could convey most of that information (and yes, I know there are reasons to still put status in the body, I just hate it).

Of course, the real issue is just: Python's built in JSON serialization is actually pretty advanced. And performant! You don't need any of this, you could just do something like:

return json.dumps({"success": true, "items": items_available})

No templates. No formatting. No worries about how the data gets represented. Well, still worries, because JSON serialier will throw exceptions if it doesn't know what to do with a type. But then at least you get that exception on the server side and aren't sending the client a malformed document.

In any case, this is a good demonstration that you can write bad PHP in any language.

[Advertisement] Keep all your packages and Docker containers in one place, scan for vulnerabilities, and control who can access different feeds. ProGet installs in minutes and has a powerful free version with a lot of great features that you can upgrade when ready.Learn more.

Wel.nl

Minder lezen, Meer weten.

Duits bedrijf haalt 110 miljoen dollar op voor slimmere robots

STUTTGART (ANP/BLOOMBERG) - Sereact, een Duitse ontwikkelaar van roboticasoftware, heeft 110 miljoen dollar aan nieuwe financiering opgehaald voor het ontwikkelen van een AI-model dat robots slimmer maakt en meer geschikt voor het uitvoeren van verschillende taken. Het geld komt zowel van bestaande geldschieters als van nieuwe investeerders.

De startup uit Stuttgart werkt aan software waarmee industriële robots taken kunnen uitvoeren waarvoor ze niet expliciet zijn getraind. Deze software stuurt al machines aan die onderdelen oppakken en leveren voor autofabrikanten. Onder andere BMW maakt er gebruik van.

Investeringspartijen zien robotica steeds meer als de volgende stap in de ontwikkelingen rond kunstmatige intelligentie (AI), nu de onderliggende modellen slimmer worden en onderdelen goedkoper. Een knelpunt is wel dat robots nu nog erg reactief zijn en lastig kunnen anticiperen op fouten, zoals het per ongeluk laten vallen van voorwerpen. Volgens Sereact moet zijn nieuwe AI-model daar verandering in brengen.


Striptekenaar Dick Matena (83) overleden

AMSTERDAM (ANP) - Striptekenaar Dick Matena is zondag op 83-jarige leeftijd overleden in zijn woonplaats Amsterdam. Dat laat Rob van Bavel, hoofdredacteur van tijdschrift Eppo en uitgever van Uitgeverij L, waarvoor Matena tekende, maandag weten aan het ANP.

Matena begon als 17-jarige bij de studio van Marten Toonder, waar hij verantwoordelijk was voor Tom Poes. Matena maakte ook stripversies van romans als Kort Amerikaans en Turks Fruit van Jan Wolkers, Kees de Jongen van Theo Thijssen en De Avonden van Gerard Reve. Ook tekende hij kinderboeken als Pietje Bell, Dik Trom en Kruimeltje.

Volgens Van Bavel was Matena "grondlegger van de moderne strip voor volwassenen. Dat zit in de onderwerpen, de strips hadden meer geweld en meer seks, het waren ingewikkelde verhalen met meer lagen. Het zat ook in de vorm van de lijnen, die mensen triggerde om het te willen lezen. Je moet leven in een plaatje brengen, dat is de kracht van een stripmaker, en dat deed hij als geen ander."


20260329 Yamazaki river 4

BONGURI has added a photo to the pool:

20260329 Yamazaki river 4

満開でした。
Photo taken at Yamazaki river area, Mizuho ward, Nagoya city, Aichi pref.

VK: Voorpagina

Volkskrant.nl biedt het laatste nieuws, opinie en achtergronden

President Trump ontslaat alle leden van onafhankelijk toezicht op grote geldschieter van wetenschappelijk onderzoek

Mo's Diner, Manitou Springs, Colorado

Thomas Hawk posted a photo:

Mo's Diner, Manitou Springs, Colorado

White Star Motel

Thomas Hawk posted a photo:

White Star Motel

Rijnmond - Nieuws

Het laatste nieuws van vandaag over Rotterdam, Feyenoord, het verkeer en het weer in de regio Rijnmond

Diefstal en bedreigingen: Carola Schouten neemt maatregelen tegen overlast op Witte de Withstraat

De overlast op de Witte de Withstraat 'loopt de klauwen uit', zegt Carola Schouten. De burgemeester ging eerder deze maand in gesprek met ondernemers in de uitgaansstraat en zegt maatregelen te nemen. Zo moeten bedreigingen tegen personeel en diefstal op terrassen worden verminderd.

Sargasso

Hopeloos Genuanceerd

Water is de nieuwe olie

ACHTERGROND, VIDEO - door Bart Ossendrijver

Via een installatie wordt in een gortdroge woestijn water gevangen, zo uit de lucht. Het klinkt als een handige gadget uit een sciencefictionfilm, maar het instrument bestaat echt. Scheikundige en Nobelprijswinnaar Omar Yaghi maakte het vernuftige apparaat en legt in het NRC uit hoe het werkt. Het systeem bestaat uit MOF’s: metaal-organische raamwerken die een poreuze spons vormen en H2O moleculen uit de lucht trekken. De installatie voegt nog wat mineralen toe en klaar is kees: het water is geschikt om te drinken. Als het mogelijk is de installatie op te schalen, kan het duizenden liters schoon drinkwater per dag oogsten. Daarmee kan technologie als deze een rol spelen in het oplossen van het nijpende wereldwijde watertekort.

Ook in Nederland hebben we te maken met een groeiend (drink)waterprobleem. In 2023 doken we samen met geowetenschapper Michelle van Vliet (UU) in de complexiteit van het watersysteem. Dat er waterschaarste is, werd in 2018 door een grote droogte duidelijk. Maar het Nederlandse watertekort ontstaat door een ingewikkelde samenkomst van een historisch té snel waterafvoersysteem, een stijgende vraag door bevolkingsgroei en vervuiling van onze bronnen. Het is duidelijk dat de grootte van de tekorten zal toenemen. Een eenduidige oplossing is er niet, misschien is daarom zelfs in Nederland een technologie die water uit de lucht vangt een welkome uitvinding.

Ben jij verder benieuwd naar hoe ons drinkwaterprobleem in Nederland is ontstaan en wat we er aan moeten doen? Kijk dan hieronder naar de hele video. Met geowetenschapper dr. Michelle van Vliet (UU), jurist prof. Marleen van Rijswick (UU) en ecohydroloog dr. Ruud Bartholomeus (KWR/WUR).

 

The Guardian

Latest news, sport, business, comment, analysis and reviews from the Guardian, the world's leading liberal voice

The Things We Never Say by Elizabeth Strout review – readers will delight in these new characters

The Olive Kitteridge and Lucy Barton author branches out with the tale of a Massachusetts teacher haunted by trauma

The American author Elizabeth Strout famously persisted throughout years of rejection to publish her first novel when she was in her 40s, and the hard work has certainly paid off. She won a Pulitzer prize in 2009, and has been nominated multiple times for the Booker and Women’s prizes. The Things We Never Say is her 11th book.

Strout, who grew up in Maine and New Hampshire, writes mainly about small-town America and the mostly white, working-class people who inhabit it. She’s interested in the small details of ordinary lives: people’s joys and disappointments, marriages and infidelities, and the lasting effects of trauma. The fictional world of a Strout novel often extends into subsequent companion works: Olive Kitteridge, published in 2008, was followed by Olive, Again in 2019; the characters first seen in her 2016 novel My Name Is Lucy Barton reappeared in Oh William! in 2021 and Lucy by the Sea in 2022. In 2024, Strout took this world‑building to another level when Lucy, Olive and other recurring characters were brought together in Tell Me Everything. She has charted her fictional worlds so extensively across interlinked novels and stories that readers often think of her characters as their personal friends.

Continue reading...