Info

Learning a little every day

Op obscure plekjes vind je soms de mooiste typografie.

Bord met de tekst 'Aanplakken op dit gebouwtje streng verboden'

Toen ik een aantal jaren geleden serieuzer aan de slag ging met fotograferen, ben ik ook meer gaan letten op het gestructureerd verwerken en opslaan van alle fotobestanden.

Doel is om makkelijk foto’s terug te kunnen vinden. Van familie of vrienden, van bepaalde gebeurtenissen of gewoon favorieten.

📷 Foto’s importeren van mijn camera

Lightroom Classic open op een Macbook
Foto’s van mijn spiegelreflexcamera importeer ik in 4 stappen:

  • Foto’s (in JPEG of RAW) van mijn spiegelreflexcamera importeer ik van SD-kaart in Lightroom Classic.
  • Daarbij voeg ik direct trefwoorden aan de foto’s die de locatie en gebeurtenis beschrijven.
  • Na import neem ik alle foto’s door en markeer ik de ‘picks’ en ‘rejects’ (Shift + P en Shift + X in Lightroom).
  • Aan ‘picks’ voeg ik nog extra trefwoorden toe zoals persoon, bijzonder object of een type foto (landschap). De mooiste foto’s geef ik daarbij ook een of meer sterren.
  • Als laatste stap verwijder ik de rejects.

Na de laatste stap heb ik een gestructureerd overzicht van mijn foto’s, en kan ik een selectie gaan bewerken en delen. Alleen: wat doe ik met de foto’s op mijn telefoon?

📱 iPhone foto’s

Vanaf de eerste Nokia-smartphone met camera schiet ik ook veel plaatjes met telefoons. De kwaliteit daarvan was eerst zo matig dat ik deze alleen online deelde, en niet speciaal wilde bewaren. Totdat die camera’s ‘goed genoeg’ werden.

Screenshot van Photos.app op iPhone met totaal aantal foto's op de telefoon zichtbaar

Bij mij was dat rond de iPhone 6s (2015). Daarvan importeerde ik eerst af en toe de originelen op mijn MacBook. Maar al snel koos ik voor het gemak van iCloud Photo Library:

  • Foto’s synchroniseren daarmee automatisch tussen telefoon en laptop. Waarbij originelen op mijn laptop komen en verkleinde versies op mijn iPhone blijven. Meer dan 30.000 stuks alweer.
  • De mooiere foto’s en herinneringen geef ik hartjes en zet ik in albums.
  • Photos.app analyseert verder automatisch alle foto’s op gezichten (personen), objecten en type foto’s.
  • Via gedeelde albums kan ik makkelijk foto’s delen met mijn vriendin en familie.
  • En de herinneringen-functie haalt (mede op basis van andere informatie zoals datum, locatie en herkende personen en objecten) regelmatig mooie momenten naar boven.

Voor mij is Photos.app daarmee de plek om foto’s terug te kijken. Daarom exporteer ik de beste foto’s van mijn camera ook uit Lightroom Classic om ze als album te importeren in Photos.app. Hiermee zijn deze op al mijn devices beschikbaar.

En ja, iCloud Photos is geen backup. Dus van alle foto’s worden op twee plekken backups bewaard (lokaal via TimeMachine en remote met Backblaze).

Problemen met de huidige foto-opslag

Hiermee heb ik een gebruiksvriendelijk systeem dat me nauwelijks werk kost qua onderhoud. Maar er zitten wel wat addertjes onder het gras:

  1. Photos.app lijkt voor de lange termijn geen toekomstbestendige foto-opslag. Metadata wordt opgeslagen in een database, en kun je daar niet makkelijk uithalen. Gesynchroniseerde foto’s worden in een ondoorzichtige mappenstructuur opgeslagen.
  2. Mijn foto-opslag in iCloud loopt langzaam uit de klauwen. Omdat originele foto’s in iCloud worden opgeslagen loopt de hoeveelheid data die ik daar verbruik steeds verder op.
  3. Op mijn telefoon heb ik nu meer dan 30.000 foto’s en video’s. Maar Apple heeft geen enkel belang om mij te helpen met het opschonen daarvan.
  4. Met mijn huidige workflow, vooral qua synchroniseren en foto’s raadplegen, is nogal vastgeklonken aan het Apple-ecosysteem. Terwijl ik qua data en documenten graag ecosysteem-onafhankelijk ben. (Misschien moeten we dat, analoog aan indieweb, ‘indiephoto’ noemen?)

Oplossing?

De definitieve oplossing heb ik nog niet helemaal uitgewerkt, maar ik zie twee opties:

  1. 💶 Betalen voor gemak. Daarmee los ik probleem 2 en 3 op, en bespaar ik mezelf tijd.
  2. 📁 Energie steken in een toekomstbestendige, ecosysteem-onafhankelijke foto-opslag.

Bij de eerste optie hou ik het dure, grote iCloud-abonnement aan en ga ik geen tijd steken in onafhankelijke opslag van foto’s. Het is ook een beetje  een gok op dat de foto-software-ontwikkelingen in de toekomst mij als consument nog meer voordelen gaan bieden (dankzij Machine Learning e.d.).

De tweede optie gaat uit van een goed uitgedacht mappenstructuur voor al mijn foto’s. iPhone-foto’s zal ik periodiek uit Photos.app moeten exporteren, waarbij ik oudere foto’s die niet-favoriet zijn eruit verwijder. Dat vereist meer handmatig beheer, maar er zijn scripts waarmee je metadata uit Photos.app kunt exporteren.Photos.app blijf ik dan als viewer naast de mappenstructuur gebruiken. Puur omdat ik op het moment privé Apple-apparaten gebruik is dat de meest logische stap. Dit dan in combinatie met iCloud Photos voor sync en delen van foto’s.

Naast een toekomstbestendiger opslag zou zo’n setup als voordeel hebben dat de opslag in en kosten voor iCloud afnemen. Nadeel is dat het mij tijd zal kosten om regelmatig handmatig de exports uit te voeren (en te checken of het goed gaat 😉). Keuzes.

Zie ook:

Afgelopen week was ik bezig met het migreren van een aantal persoonlijke websites van shared hosting naar Linode. Na het overzetten van alle databases en bestanden stond er nog een klein puntje op mijn actielijst: alle HTTP security headers eens nakijken en (waar mogelijk) goed instellen.

Omdat het niet iets is wat ik dagelijks doe even een samenvatting. For future reference. ;)

Wat zijn HTTP headers?

Security headers score roelioAls jij een webpagina bezoekt wisselt de server waarop die website gehost informatie met jouw browser. Onder andere over hoe je browser moet omgaan met a) de verbinding naar die website en b) de inhoud van de webpagina. Een aantal van die headers kun je inzetten om je website beter te beveiligen, de zogenaamde security headers.

Om snel te checken hoe jouw website er nu voor staat kun je deze scannen met securityheaders.com. Mijn website begon met een F en scoort nu een A (goed), maar er zijn nog verbeterpunten.

Belangrijke security headers

Er zijn een aantal HTTP security headers beschikbaar om bepaald gebruik van je website te controleren of te beperken. Allemaal gericht op het beperken van risico’s voor bezoekers. Bijvoorbeeld:

  • Strict-Transport-Security: hiermee kun je afdwingen dat browsers jouw website alleen via HTTPS inladen. Altijd aanbevolen als je al een SSL-certificaat hebt geinstalleerd.
  • X-Frame-Options: om te voorkomen dat je website via een iframe in een andere website wordt ingeladen kun X-Frame-Options instellen. Bijna altijd aan te raden, behalve als je wil toestaan dat inhoud op andere websites ‘ingesloten’ wordt.
  • X-Content-Type-Options: stelt vast dat browsers scripts en stylesheets niet mogen laden als de server niet het correcte MIME type meegeeft. Gericht op het tegengaan van XSS.
  • Referrer-Policy: deze bepaalt welke informatie via de HTTP Referer header wordt meegegeven. Je kunt kiezen uit de complete URL van herkomst, alleen de domeinnaam van herkomst, maar je kunt ook kiezen alleen een referrer mee te geven naar andere pagina’s binnen je eigen site.
  • Permissions-Policy: via browser features en API’s kunnen webpagina’s toegang vragen tot je camera, microfoon, locatie, etc. Met een Permissions-Policy stel je beperkingen in welke web features je site mag gebruiken. En die gelden dan ook voor embeds!
  • Content-Security-Policy: met een CSP stel je heel precies in welke bronnen vanaf welke domeinen mogen worden geladen. En of inline javascript (XSS risico) geladen mag worden. Op de infosec-website van Mozilla vind je meerdere voorbeelden van Content Security Policies.

Security headers instellen

HTTP Security Headers kun je instellen via server-configuratiebestanden, maar ook via plugins/modules van jouw CMS. De eerste optie vond ik het makkelijkst. Zoals altijd: maak even een back-up van de configuratie-bestanden voordat je iets wijzigt.

Op Nginx is dit mijn aanbevolen configuratie (in /etc/nginx/sites-available/sitenaam.conf) :

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;

 

Gebruik je Apache, dan kun je dit toevoegen aan je .htaccess file:

# HTTP security headers

Header set Strict-Transport-Security "max-age=31536000" env=HTTPS
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-Content-Type-Options "nosniff"

In deze aanbevolen configuraties mis je nog Content-Security-Policy, Referrer-Policy en Permissions-Policy. Hiervoor zul je je wel even iets moeten inlezen. De configuratie hiervan hangt af van de opzet van je site. Gebruik je daar 3rd party scripts (analytics) of stylesheets (web fonts)? En hoe belangrijk vind je het dat een referrer wordt meegegeven via kliks vanaf jouw website?

Maar als je voor jezelf die vragen hebt beantwoord ben je klaar. Toch? Nou nee, er zijn alweer nieuwe security headers in aantocht. En ook andere aspecten kun je waarschijnlijk verder aanscherpen (zoals DNSSEC). Met bijvoorbeeld Mozilla’s Observatory en Internet.nl kun je uitgebreider scannen hoe veilig jouw site geconfigureerd is. Bij de eerste scoort roel.io slechts een F 😞, bij de tweede pas 70 van maximaal 100 punten. Werk aan de winkel dus!

Verder lezen?

Attack surface cory doctorow

TL;DR – Aanrader!👍

Attack Surface van Cory Doctorow is een cyberpunk-boek met veel actie dat lekker wegleest, en hoop geeft! Het speelt zich af in een versie van onze wereld waar de mogelijkheden van (internet)technologie zijn gedramatiseerd. De verhaallijn sluit aan op twee eerdere boeken (Little Brother en Homeland), maar je kunt het prima los lezen. Dat deed ik ook.

Verhaal

In reactie op terrorisme is het surveillance-industriële complex wereldwijd een (nog) belangrijker bedrijfstak geworden. Daar verdient hoofdpersoon Masha goed geld, maar met gewetensbezwaren. Want ze weet precies wat voor effect haar werk heeft op de mensen die zij in de gaten houdt.

Het verhaal begint in een fictieve Oost-Europese republiek waar Masha overdag namens het regime de oppositie monitort. ’s Avonds zoekt ze die idealistische actievoerders juist op om ze te leren zich beter te wapenen tegen surveillance-technologie.

Via flashbacks leren we stap-voor-stap hoe Masha in de wereld van de surveillance terecht is gekomen, en welke keuzes ze daarbij heeft gemaakt.

Technologie (niet) uitgelegd

In het boek gebruikt Doctorow aardig wat tech-termen. Maar deze legt hij niet uit. Zoals Ton in zijn recensie aanhaalde is dat om je te stimuleren daar zelf naar op zoek te gaan. Één fan heeft dit al gedaan, en verzameld in de Mashapedia. Zodat je snel kan opzoeken wat een ‘IMSI-catcher’ of een ‘dazzle mask’ zijn.

Morele dilemma’s

Nadat het misloopt in Oost-Europa gaat Masha terug naar de VS om een vriendin te helpen. Een vriendin die juist opkomt tegen de bijna autoritaire combinatie van overheid en surveillance-industrie.

Waar de eerdere twee boeken idealistisch young-adult waren, richt Doctorow zich met Attack Surface op volwassenen. In Wired legt hij uit waarom:

“The thing adults do is confront their moral legacy. They look back on what they’ve done and they think about their regrets,” Doctorow says. “The ongoing process of being an adult is having been corralled into compromises and then making sense of those compromises for yourself.”

Dat is de rode draad in het boek. Als white hat hacker (ingehuurd) binnen het overheidsapparaat heeft Masha veel foute keuzes gemaakt. Wanneer ze die onder ogen begint te zien, kan ze ook nauwlijks richting zichzelf verantwoorden.

Sterk is hoe het boek je meeneemt in haar gedachtengang dat technologie allesbepalend is, en dat je je als burger-onder-surveillance niet aan die technologie kunt onttrekkken. Techno-utopisme, zoals Silicon Valley graag predikt, met een cynische ondertoon. Want je kunt er niet aan ontsnappen.

Als realistische techno-optimist maakt Doctorow daar tegen het einde van het boek een punt over.

“Technology is a tool that gives us the space to make political change. Politics are a tool we use to open the space for making better technology.”

En dat geeft niet alleen Masha hoop. Mij ook.