Hobo-gado

Als je op zoek bent naar een mooi authentiek gado-gado recept, zoek dan alsjeblieft verder. Dit recept staat in de rubriek Hobo food, en dat betekent snel, goedkoop, makkelijk, en meestal niet helemaal volgens bestaande tradities.

De enige overeenkomst tussen dit recept en gado-gado is eigenlijk dat ze allebei groenten en pindasaus bevatten. Verder treed ik alles met voeten.

Nodig:

  • een blik sperziebonen (goed uit laten lekken)
  • eventueel een blikje taugé (goed uit laten lekken)
  • kipfilet, in kleine stukjes
  • pindakaas
  • ketjap
  • sambal
  • melk
  • knoflook

Bak de kip met wat knoflook in een wok (of een hapjespan, ofzo) met een beetje olie. Schep, wanneer de kip gaar is, de groente erbij.

Schep een paar lepels pindakaas in een steelpan op half vuur, en schenk er wat melk bij. Begin met een beetje melk, en voeg steeds scheutje toe totdat je de gewenste sausdikte hebt; de saus mag wat dun zijn, zodat hij makkelijk mengt met de groenten. Voeg naar smaak ketjap, sambal en knoflook toe.
(Pindasaus uit een potje kan natuurlijk ook, maar dat hebben we hier in Frankrijk niet. En zelf maken is natuurlijk altijd leuker en lekkerder.)

Als de groenten en de saus allebei warm zijn, kan de saus bij de groenten; let een beetje op de verhoudingen: het moet geen soep worden. Laat het geheel nog even samen pruttelen.

Serveer met rijst en kroepoek.

Tip:
Normaal gesproken is gado-gado zonder vlees, maar omdat ik het nu maak als hoofdgerecht, en niet als 1 van de 134 bijgerechten van een rijsttafel, heb ik er wat kip doorheen gedaan. Het kan dus ook prima zonder vlees, of met klein gesneden plakjes kipfilet (beleg). Doe in dat laatste geval het vlees wel na de groente in de pan, in plaats van ervoor.

Tip:
In plaats van, of als aanvulling op de ketjap en de sambal kun je ook chilisaus gebruiken.

Smakelijk!

Multigrep

I am an author. And even though the actual books are well-organized, the writing process isn’t always. For a single book I have many mega-bytes of PDFs, ODTs and text files full of notes, drafts, documentation, etc.
So I needed a simple tool to find that one note I once wrote, in that huge pile of data.
Now, if those files were all text-based, I could use grep. But they aren’t. So I wrote a wrapper around grep, that allows me to also search PDFs and OpenDocument files.

Read More

Installation et configuration d’un serveur internet

Et voilà mon nouveau livre !

Ce livre guide le lecteur ou la lectrice à travers l’installation et la configuration d’un serveur internet.

Ce livre s’adresse aux administrateurs système, débutants comme plus expérimentés, qui souhaitent, à partir d’un serveur sur lequel seul le système d’exploitation est installé, configurer un serveur internet d’entreprise fonctionnel, prêt à être mis en production.

Pour bien appréhender la lecture, un minimum de connaissances sur Unix/Linux, sur le fonctionnement de l’interface en ligne de commande et la configuration à l’aide des fichiers texte est conseillée. La connaissance de commandes de base telles que cd, ls, cat, less, tar et gzip est également un plus.

Après un chapitre sur les bases d’un système Unix/Linux, l’auteur amène rapidement le lecteur au cœur de la mission d’administration système avec la mise en œuvre de la configuration d’un serveur, illustrée avec plusieurs systèmes d’exploitation tels que FreeBSD, Debian et CentOS.

A l’aide d’exemples de configuration et de commandes, l’auteur explique étape par étape l’installation et la configuration d’un pare-feu, d’un serveur DNS, d’un serveur web (Apache ou Nginx) et d’un serveur mail.

Il détaille également le chiffrement par SSL/TLS des connexions (web et courriels) ainsi que la gestion dans un annuaire LDAP des utilisateurs n’ayant pas besoin de l’accès shell. Ce livre propose également des pistes pour l’analyse de problèmes éventuels, pour la maintenance quotidienne et les sauvegardes, ainsi que pour donner la possibilité à l’administrateur système de faire évoluer le serveur.

Des éléments complémentaires sont en téléchargement sur le site de l’éditeur et sur le site de l’auteur.

→ Plus d’informations sur www.librobert.net, ou commandez-le directement dans la boutique en ligne de mon éditeur Éditions ENI.

Ce livre est également disponible en néerlandais.
La version anglaise sortira début 2021.

Cleaning up the web server logs

I am between 2 books currently, author-wise. So I’m using this time to do the server-housekeeping I’ve been putting of in the past months. Today, I had a look at my web server logs. And I almost regretted it instantly.

The logs were full of requests clearly made by script kiddies. Half of the error-triggering requests were for the file wp-login.php, even for my non-WordPress sites, and what’s worse: even for non-PHP sites. And then there were requests for the usual 1337w0rm, indoxploit, adminer, etcetera. I could have left it, of course, since it doesn’t really hurt to have all these idle requests, but all this noise makes it difficult to distil the log messages that really do need my attention.

In this post, I’ll share what I did to have cleaner Apache log files in the future.
And at the same time, these instructions help protect the web server against known vulnerabilities and exploits.

Read More

Configuratie van een internetserver


Vanaf deze week is mijn boek uit!
En dan bedoel ik niet een boek dat ik bezit, maar het boek dat ik geschreven heb.
En ik bedoel ook niet uitgelezen, maar uitgegeven.

Configuratie van een internetserver beschrijft de volledige installatie en configuratie van een bedrijfsinternetserver (die uiteraard ook gebruikt mag worden voor een familie of een vriendengroep). Na een paar paragrafen over de selectie van de provider en de server, en een hoofdstuk met wat Unix-basiskennis, wordt de beheerder bij de hand genomen, en in rap tempo naar het ‘echte’ systeembeheer begeleid.

Het uiteindelijke resultaat is een volledig functionele bedrijfsinternetserver die klaar is om in productie genomen te worden. Deze server handelt DNS-, web-, en e-mailverkeer af voor meerdere domeinen, en bedient tientallen of zelfs honderden gebruikers; gebruikers die geen shell-toegang nodig hebben worden opgenomen in een LDAP directoryservice. Gebruikers kunnen bestanden delen en synchroniseren op al hun apparaten, en de e-mailgebruikers beschikken over gedeelde kalenders en adresboeken. De server wordt beveiligd middels een firewall, en de web- en e-mailverbindingen worden versleuteld middels SSL/TLS. Met dit boek in de hand heeft de systeembeheerder bovendien de nodige handvatten om de server te onderhouden, en om verder te groeien.

Dit boek vereist geen diepgaande kennis van Unix; een eerste geslaagde kennismaking zou genoeg moeten zijn. De lezer of lezeres wordt geacht bekend te zijn met het concept opdrachtregel (command line), en met de configuratie middels tekstbestanden. Ook wordt hij of zij geacht basiscommando’s als cd, ls, cat, less, tar en gzip te kennen.
Dit boek is echter niet specifiek gericht op de beginnende beheerder: het probeert deze beginnende beheerder zo snel mogelijk te begeleiden naar ‘echt’ systeembeheer.

Het boek is rijkelijk voorzien van configuratievoorbeelden, en alle onderwerpen worden beschreven en geïllustreerd voor FreeBSD, Debian en CentOS, zodat de systeembeheerder volledig vrij is in de keuze van het besturingssysteem.

→ Meer informatie op www.librobert.net, of bestel het direct in de webshop van mijn uitgever Boom Beroepsonderwijs.

De Franse versie is inmiddels ook zo goed als af, en komt eind september of begin oktober uit.
En ik ben in gesprek met een Amerikaanse uitgever voor de publicatie van de Engelstalige versie.

En voor wie zich afvraagt waarom ik op de kaft Robert heet: Rob is een lastige naam voor Fransen, dus in Frankrijk noem ik me Robert (de naam die overigens ook in mijn paspoort staat). En omdat het boek ook in het Frans uitkomt, en het me een goed idee lijkt om op elke uitgave dezelfde naam te vermelden, is het Robert geworden. In de omgang blijf ik gewoon Rob.

External IP address

I’ve been a freelance web developer for almost 15 years.
One of the most brilliant web pages I ever made, was this one:

<?php
header('Content-Type: text/plain');
echo $_SERVER['REMOTE_ADDR'];
?>

And if you think I’m joking, allow me to give you some background…

The above code returns a page with no other content than the visitor’s IP address. This may seem trivial and rather useless, but consider the following:

You’re developing a website. It’s a website for, obviously, someone who is not a web developer, which means, especially for people of my generation and older, that they know close to nothing about this internet-thing.
At a certain moment, you want to show them what you’ve done so far, but you do not want the rest of the internet to find the website already. But you also know that this person, having other hobbies than learning all the ins and outs of this new technology, will type the URL you send them into the Google search field, thinking that that is the location bar you were talking about. And once Google gets hold of something, you can be sure it will be out there for everybody to find.
So, you need to make sure only your customer can access this new website; this way, you can be sure that even if Google has the address, it won’t be able to index the site. And the most practical way to make sure only the client can access the site, is to limit access to the client’s IP address. But how does one explain to this lay person where to find their external IP address?

And that’s why I came up with the code above. With that in place, I could just ask my client to go to https://www.example.com/ip.php, copy all the text they find there, and mail it to me. Their reply would always be something like “It only says 203.0.113.45. Are you sure?“, to which I always replied “That’s all I need. Thank you!“.
The lesson here: When working with lay people, make sure that there is nothing that they may want to interpret or filter.

And even though I no longer develop websites for clients, I still have a use for this page that was invented about 15 years ago: to find my own IP address (I travel a lot) and, with the small enhancement I made, also to verify my TOR connection.

So, I thought I’d share.

Read More

Poire Laide-Hélène

Een beetje simpele variatie op de Poire Belle-Hélène.

Ik had peren gekocht, maar ze waren wat droog en hard om lekker te zijn als handpeer (Rocha). Maar weggooien wilde ik ook niet.
En ik wilde iets maken met m’n nieuwe magnetron, dat ook.

Nodig:

  • peer
  • donkere chocola (ik heb chocola gebruikt met 52% cacao)
  • boter
  • honing
  • vanille-ijs

Schil de peer, snijd ‘m in de lengte in acht puntjes, en verwijder het klokhuis.
Zet een minuutje in de magnetron op half vermogen. Dat maakt ‘m wat zachter, en hij gaat lekker ruiken.

Doe een gram of 50 chocola in een bakje, samen met een gram of 40 boter, en een heel klein beetje honing; niet teveel honing, je wilt de bittere smaak van de donkere chocola niet verbergen, maar versterken. Zet dit 30 seconden tot een minuut in de magnetron; ook op half vermogen, en de magnetron direct stoppen als het gaat borrelen. Zeker niet langer dan een minuut; als de chocola dan nog niet helemaal gesmolten is, los je dat op door te roeren.

Drapeer de peerpuntjes gezellig in een ijsschaaltje, doe er 2 bolletjes ijs bij, en giet er wat saus overheen. Als je heel veel behoefte hebt aan suiker, kan er natuurlijk ook nog een beetje slagroom bij.

Eigenlijk is dat genoeg saus voor 2 of 3, of misschien wel 4 ijsjes, dus ik hoop dat je veel trek hebt…
(Maar hij kan natuurlijk ook in de koelkast of de vriezer voor een volgende keer.)

Zie voor een andere chocoladesaus-variant het recept Chocoladesaus uit 2012.

Smakelijk!

Kaassaus

Een paar jaar geleden deed ik al een kaassaus, maar ik ik heb sindsdien een hoop bijgeleerd, en ik vind deze beter. Veel minder kans dat-ie verbrandt, aankoekt of klontert.

Nodig:

  • half blokje groentebouillon
  • kookroom (crème de Normandie)
  • een scheut witte wijn
  • kaas naar keuze
  • nootmuskaat

Snijd of rasp de kaas, indien nodig, zodat het makkelijker smelt.
Los de bouillon op in een klein beetje water.
Giet dan de room en de wijn erbij.
Meng tot slot de kaas erdoor; blijven roeren.
Breng op smaak met een (heel) klein beetje nootmuskaat.

Als de saus te dun is, maak dan een theelepel Maizena aan in een beetje koud water, roer dat door de saus, en laat nog 2 of 3 minuten pruttelen.

Ik vind het altijd wel leuk om verschillende kazen door elkaar te gebruiken. Vanavond (broccoli, gebakken aardappels, gepaneerde kalkoenschnitzel) waren dat Emmental, Coulommiers, Comté en Parmigiano. De truc is een beetje om een goedkope kaas te nemen waarmee je een basissaus maakt, om vervolgens met lekkerdere kaas de smaak bij te werken. De saus van vanavond zou je in Nederland bijvoorbeeld na kunnen maken met huismerk geraspte kaas + camembert + extra belegen Goudse + parmezaan.

Voor kaassaus over vlees wordt vaak een bleu gebruikt, zoals Roquefort.

Smakelijk!