Category Archives: Nerd stuff

Banaanappel

Ooit, op 19 november 2011 om precies te zijn, schreef ik een paar zinnen op Wikipedia; aan de pagina Golden Delicious voegde ik toe:

Vroeger werd deze appel banaanappel genoemd, vanwege de vettige gele schil en de zoete smaak. Sommige fruitverkopers gebruiken deze naam nog steeds.

Om de een of andere reden, ik weet eigenlijk niet precies waarom, tikte ik vandaag banaanappel in in een zoekmachine. En wat ik dus wel grappig vind, is dat er verschillende websites zijn die mijn tekst letterlijk of vrijwel letterlijk hebben overgenomen.
Goed, ’t is nog niet die eigen Wikipedia-pagina waar ik zo van droom, maar het is een stapje in de goeie richting.
🙂

Overigens, voor wie dit leest, en die zinnen op zijn/haar website heeft gebruikt: het is wel echt waar. Mijn groente-/fruitboer in Escamp destijds had een bak appels met daarbij een bordje ‘Banaanappels‘, waarop ik zei ‘Voor mij zien ze er gewoon uit als Golden Delicious.‘. En hij heeft me toen uitgelegd hoe het zat. En omdat hij niet op mij overkwam als iemand die heel veel om Wikipedia gaf, heb ik het toen maar op Wikipedia gezet.

Dus eigenlijk zijn het niet eens mijn eigen woorden…

Damn!

Ik ga verder zoeken naar mijn eigen 15 minuten roem…

2 Nieuwe metatags

Ik heb zojuist 2 nieuwe metatags toegevoegd aan WHATWG MetaExtensions registry.
En als je wilt dat je ideeën op een gegeven moment geaccepteerde standaarden worden, zul je er ook over moeten publiceren; dat doe ik dus hierbij.

origin

De eerste nieuwe metatag is origin:

<meta name="origin" content="…">

Met de origin metatag verwijs je naar de oorspronkelijke (online of offline) bron van een document; denk hierbij bijvoorbeeld aan de vertaling van een webpagina, maar ook aan een songtekst die je uittikt, of een (papieren) boek dat je op internet zet.
De documentatie voor de origin metatag vind je op doc.ohreally.nl/metatag-origin.

translator

De tweede nieuwe metatag is translator:

<meta name="translator" content="…">

De translator metatag geeft informatie over de vertaler van een document. Steeds meer informatie op internet is in meerdere talen beschikbaar, en het wordt dus ook steeds belangrijker de vertalers van documenten te bereiken (bijvoorbeeld wanneer er een nieuwe versie van het oorspronkelijke document beschikbaar is).
De documentatie voor de translator metatag vind je op doc.ohreally.nl/metatag-translator.

validatie

Binnen nu en 2 weken zullen de validators van het W3C de nieuwe metatags herkennen.

Regexp

Dit schreef ik vandaag:

/^(?:([^:\/?#@]+):(?=\/\/))?(?:(?:\/\/)?(?:([^\/?#:]+)(?::([^\/?#]+))?@)?([^\/?#@:]*)(?::(\d+))?)?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/

(Alles op 1 regel, uiteraard, en zonder spaties.)

Wie mij kan vertellen waar ik mee bezig was, is een eindbaas.
Om het makkelijker te maken, zal ik erbij vertellen dat ik in JavaScript aan het programmeren was.

Waarmee hij 2 jaar na zijn afscheid van de IT zijn titel Koning van de Regular Expressions toch nog prolongeerde…
😉

HTC Desire flashen (2)

Dit verhaal zal voor vrijwel niemand relevant zijn. Het gaat namelijk over een smartphone van 5 jaar oud. (Maar mocht je nog ergens zo’n telefoon hebben liggen: laat het me weten, en gooi ‘m nog niet weg; als mijn huidige stuk gaat, ben ik er erg blij mee.)
Alles dat ik hieronder beschrijf, heb ik op een Linux-laptop gedaan; waar nodig zul je zelf de vertaalslag moeten maken naar Windows of Mac.

Read More

Wekker

M’n smartphone is stuk. Op zich geen probleem, want ik leef al anderhalf jaar zonder telefoon (en geniet ervan), maar hij deed wel dienst als wekker.

Gelukkig doet m’n laptop het nog wel, en dus schreef ik even vlug een wekker, zodat ik morgen toch bijtijds op kan.
(Uiteraard hebben we het over Linux.)

#!/usr/bin/env bash

# ~/bin/wekker.sh

# This script sets an alarm for the specified time.
# All command line parameters will be passed to `at' as timespec.

# Copyright (c) 2015 Rob la Lau <rob@ohreally.nl>
# This script is in the public domain.

#################################################################

# Config.

play=/home/rob/tingeling.wav
repeat=3

#################################################################

timespec=$@
[ -z "${timespec}" ] && {
    echo "No timespec given."
    exit
} 

AMIXER=`which amixer`
MPLAYER=`which mplayer`

(
cat <<EndOfCommands
${AMIXER} sset Master 100%
${MPLAYER} -quiet -loop ${repeat} ${play}
EndOfCommands
) | at -M ${timespec}

En nu kan ik mijn wekker zetten met het commando

./wekker.sh 07:00

Net zo makkelijk…

WordPress 4.2, HTML5 image canvas data en privacy in het algemeen

Als je een WordPress blog hebt, en een upgrade doet naar versie 4.2, word je ineens geconfronteerd met de waarschuwing dat de site probeert HTML5 image canvas data te lezen. Uiteraard wil je dat helemaal niet, want je wilt niet dat je bezoekers denken dat jij iets engs probeert te doen, terwijl jij je van geen kwaad bewust bent.

Na even zoeken ontdekte ik dat deze waarschuwing te danken is aan de introductie van emojis. En niet alleen zorgt deze introductie voor een alarmerende waarschuwing: ik ontdekte ook dat voor deze emojis, voor elke pagina die een bezoeker bekijkt, automatisch een aanvraag gedaan wordt naar de website van WordPress.

En waarom is het erg dat bezoekers gedwongen worden informatie op te halen van de WordPress site als ze jouw site bezoeken? Omdat je hiermee WordPress in staat stelt te registreren welke WordPress blogs bezocht worden door jouw bezoekers. Je maakt hiermee dus een enorme inbreuk op de privacy van jouw bezoekers!

De eenvoudigste manier om zowel van die enge waarschuwing af te komen als de privacy van je bezoekers beter te garanderen, is het installeren van de WordPress plugin Disable emojis; deze plugin verwijdert deze functionaliteit volledig uit je website.

Tot zover over WordPress.

Maar nu we het dan toch hebben over inbreken op de privacy: door op je site gebruik te maken van Google Maps, Google APIs, Google Search, Google Fonts, een Google Plus button, Google Analytics of YouTube video, geef je de privacy van je bezoekers uit handen aan Google; en door een Facebook Like button op je site te plaatsen doe je datzelfde aan Facebook. Al deze gadgets lijken je website leuker te maken, of de ontwikkeling ervan makkelijker, maar zijn alleen maar ontwikkeld om zoveel mogelijk informatie te verzamelen over de bezoekers van jouw website (en over jouzelf, natuurlijk).
Een kundig website-ontwikkelaar heeft al deze enge dingen niet nodig, en een website-eigenaar die geeft om zijn/haar bezoekers weigert er gebruik van te maken.

Voor de gebruiker/bezoeker:

Als je meer controle wilt hebben over de aanvragen die uit jouw naam gedaan worden naar externe sites, gebruik dan Mozilla Firefox met de Request Policy en AdBlock Plus add-ons. Als je die add-ons lastig vindt, kun je er ook voor kiezen de Tor Browser Bundle te installeren; deze Firefox variant zorgt ervoor dat je op een andere fysieke locatie lijkt te zitten dan je daadwerkelijk doet, en verandert die locatie bovendien regelmatig, waardoor bedrijven je surfgedrag niet meer aan jou kunnen koppelen.
Als zoekmachine zou ik je Startpage of DuckDuckGo aanraden.
En het is natuurlijk verstandig om nooit cookies te accepteren, tenzij je echt geen andere keuze hebt. Maar dat weet iedereen inmiddels toch wel?

Voor de ontwikkelaar:

Als je website-ontwikkelaar bent, heb ik hier nog wat alternatieven voor je:

  • Google Maps → OpenStreetMap
  • Google Analytics → Piwik
  • Google Fonts → upload het te gebruiken font naar je site, en gebruik een stylesheet
  • Google Plus, Facebook Like, enz. → gewoon achterwege laten; dat is zo 2010…
  • authenticatie met Facebook, Twitter, enz. → een beetje programmeur heeft in een vloek en een zucht een eigen gebruikersdatabase en authenticatie-module opgezet

Voor alles wat deze enge bedrijven aanbieden, zijn alternatieven te verzinnen waarmee je niemands privacy op het spel zet. Wees een professional, en bescherm de onwetende bezoekers en gebruikers; laat je gemakzucht niet de overhand krijgen.

En bovendien:

Als ik dan toch bezig ben: je zou je kunnen afvragen hoe verstandig het is om je persoonlijke, of zelfs je zakelijke, e-mails te delen met bedrijven als Google (Gmail, Android), Microsoft (Outlook.com, Hotmail, Live.com, Windows Phone) en Apple (iPhone, iPad).

Weet je trouwens dat je voor GPS helemaal geen internetverbinding nodig hebt? Fabrikanten van mobiele apparaten (Android, iPhone, Windows Phone, enzovoort) willen je dat alleen maar laten geloven, zodat ze je fysieke locatie ook nog kunnen koppelen aan je surfgedrag.

Dit bericht werd getriggerd door mijn upgrade naar WordPress 4.2, maar als ik eenmaal begin over privacy…
Vrijheid begint met privacy; zonder privacy geen vrijheid.

Data vernietigen

Wederom nerds-only…

Je bewaarde al je klant-data netjes op een RAID-1 mirror. Nu wil je de server verkopen, en moet die data dus effectief vernietigd worden.

Huidige configuratie:

# uname -sr
FreeBSD 7.2-RELEASE-p8
# mount
/dev/mirror/gm0p1 on /data/mirror0 (ufs, local, soft-updates)
# gmirror status gm0
      Name    Status  Components
mirror/gm0  COMPLETE  ad7
                      ad9

Werkwijze:

# umount /data/mirror0
# gmirror remove gm0 /dev/ad7 /dev/ad9
# for n in `seq2 -e 7`; do
> dd if=/dev/urandom of=/dev/ad7 bs=8b conv=notrunc
> done
# for n in `seq2 -e 7`; do
> dd if=/dev/urandom of=/dev/ad9 bs=8b conv=notrunc
> done
# gmirror label -vb round-robin gm0 /dev/ad7 /dev/ad9
# gpart create -s GPT mirror/gm0
# gpart show mirror/gm0
# gpart add -b 34 -s 312581740 -t freebsd-ufs mirror/gm0
# newfs -JU /dev/mirror/gm0p1
# mount /dev/mirror/gm0p1 /data/mirror0
# vim /etc/fstab

Zelfs de meest doorgewinterde hacker zal nu niet meer kunnen achterhalen wat er ooit op deze schijven stond.

Houd er rekening mee dat het 7 maal overschrijven met random data van een harde schijf een hoop tijd in beslag neemt.