{
 "generated": "2026-08-13T21:52:57+00:00",
 "timestamps": {
  "generated": "When THIS BUILD ran. The site is rebuilt on a schedule, so a new value here does NOT mean anything changed.",
  "content_changed": "The most recent real change to the underlying content, across posts, snippets, questions and image annotations. Compare this, not \"generated\", to decide whether to re-read.",
  "per_record": "Every post, snippet and question record carries its own \"created\" and \"updated\", taken from the Lemmid Manager instance behind it. Posts also carry \"date\", the editorial date the piece is filed under.",
  "sitemap_lastmod": "Derived from the content, never from the build clock: a page is only reported as changed when the thing it renders actually changed."
 },
 "language": "en",
 "count": 182,
 "source": {
  "site": "https://willem.com",
  "manager_configuration": 148
 },
 "full_text_bundle": "https://agents.willem.com/en/corpus.json",
 "posts": [
  {
   "id": 59342,
   "slug": "2026-04-30_rapid-iteration-in-agentic-loops",
   "url": "https://agents.willem.com/en/posts/2026-04-30_rapid-iteration-in-agentic-loops/",
   "source_url": "https://willem.com/en/2026-04-30_rapid-iteration-in-agentic-loops/",
   "language": "en",
   "date": "2026-04-30",
   "published": "2026-04-30T00:00:00+02:00",
   "created": "2026-07-27T10:45:57.259000+02:00",
   "updated": "2026-07-27T10:58:40.039000+02:00",
   "title": "Rapid Iteration in Agentic Loops",
   "subtitle": "Taking output as input",
   "summary": "While working with AI-agents to build things I often iterate through versions of the thing I am building. You try, experiment, fail, improve, and again. In the manual days before AI, I checked results by hand. But what if we teach agents to 'see' themselves?",
   "topics": [
    "AI",
    "experiment",
    "programming",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-04-30_snelle-iteratie-in-agentic-loops/",
    "source_url": "https://willem.com/nl/2026-04-30_snelle-iteratie-in-agentic-loops/"
   },
   "image": "https://willem.com/global/images/928d81ee723b.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/4b432d69e9c6.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/7f78504358b2.webp",
     "description": "The training subject: one beer bottle, photographed against the wall",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/92770c736215.webp",
     "description": "From photo to 3D: the agent built a photo-textured depth mesh (Depth Anything V2), wireframe and auto-rotate included",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/dbd388fde125.webp",
     "description": "The bottle as data: a Navier-Stokes particle simulation flows around its silhouette, live on the phone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/85cb24322f0b.webp",
     "description": "The seeing loop in production: the agent downloads, analyses and categorises a customer photo archive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/f3c799fb8e03.webp",
     "description": "Photo curation complete: 42 photos selected from 200, categorised and captioned in English and Dutch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e52c192037ee.webp",
     "description": "The result lands in the Lemmid Manager: per-photo captions and labels, ready to publish",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/f197a5e635de.webp",
     "description": "Operating the agentic loop while walking the loop: Vision Pro on, treadmill running",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/165c28a0547c.webp",
     "description": "The improvised standing desk, seen through the Vision Pro: keyboard, phone and remote on the display cabinet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59342_images-8.png"
    }
   ]
  },
  {
   "id": 38033,
   "slug": "2026-03-14_it-observes",
   "url": "https://agents.willem.com/en/posts/2026-03-14_it-observes/",
   "source_url": "https://willem.com/en/2026-03-14_it-observes/",
   "language": "en",
   "date": "2026-03-14",
   "published": "2026-03-14T00:00:00+01:00",
   "created": "2026-03-14T08:09:10.291000+01:00",
   "updated": "2026-03-14T14:16:50.429000+01:00",
   "title": "It Observes",
   "subtitle": "An intelligence watching Earth",
   "summary": "An observer writing a daily log of what it sees watching Earth, it uses no names of countries or organisations, instead it speaks in metaphorical descriptions. Its distance provides an alternative perspective on our daily news. Let me tell you about this experiment I have been running.",
   "topics": [
    "AI",
    "experiment",
    "lifestyle",
    "writing"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-03-14_het-observeert/",
    "source_url": "https://willem.com/nl/2026-03-14_het-observeert/"
   },
   "image": "https://willem.com/global/images/0c8c8f564eef.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/169ddca7097f.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/ba004d7863ce.webp",
     "description": "Building the entity mapping",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_38033_images-1.jpg"
    }
   ]
  },
  {
   "id": 59282,
   "slug": "2026-02-20_agentic-coding-on-a-linux-vps",
   "url": "https://agents.willem.com/en/posts/2026-02-20_agentic-coding-on-a-linux-vps/",
   "source_url": "https://willem.com/en/2026-02-20_agentic-coding-on-a-linux-vps/",
   "language": "en",
   "date": "2026-02-20",
   "published": "2026-02-20T00:00:00+01:00",
   "created": "2026-07-26T16:39:31.674000+02:00",
   "updated": "2026-07-26T17:00:36.965000+02:00",
   "title": "Agentic Coding on a Linux VPS",
   "subtitle": "Set up a dedicated 'werkplaats' for Claude Code",
   "summary": "Large language models are commonly accessed in chat form, you ask or prompt something and the 'AI' answers. That's cool, but when you give the model access to digital tools, it can actually do things like looking things up, compiling code and self-testing its creations. I wanted to push this concept and gave my favourite AI agent its own fully specced workshop: a Linux server.",
   "topics": [
    "AI",
    "cloud",
    "linux",
    "programming",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-02-20_agentic-coding-op-een-linux-vps/",
    "source_url": "https://willem.com/nl/2026-02-20_agentic-coding-op-een-linux-vps/"
   },
   "image": "https://willem.com/global/images/3473cdb42a4f.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/4e8d6974257a.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/c6dac6b6a4be.webp",
     "description": "The agentic loop at work: Claude Code maps out the Outburn 87 project and reports its key takeaways",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59282_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/5899917157ea.webp",
     "description": "Root access as ultimate flex: the agent installs nginx, arranges an SSL certificate and puts its own test page live",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59282_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/e873f5d1e4fd.webp",
     "description": "The werkplaats seen through Apple Vision Pro: floating terminals and browser windows in the living room",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_59282_images-3.png"
    }
   ]
  },
  {
   "id": 37780,
   "slug": "2026-01-21_trail-running",
   "url": "https://agents.willem.com/en/posts/2026-01-21_trail-running/",
   "source_url": "https://willem.com/en/2026-01-21_trail-running/",
   "language": "en",
   "date": "2026-01-21",
   "published": "2026-01-21T00:00:00+01:00",
   "created": "2026-01-21T08:40:23.514000+01:00",
   "updated": "2026-01-21T09:31:52.764000+01:00",
   "title": "Trail Running",
   "subtitle": "Through mud and nature",
   "summary": "Doubling my daddy duties with my love for endurance sports, I decided to take advantage of me living in the countryside and run to the store through nature, following local creeks and trails. It's a unique experience, I may even like it better than normal running, let me explain.",
   "topics": [
    "Limburg",
    "daddy",
    "nature",
    "running",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-01-21_trailrunning/",
    "source_url": "https://willem.com/nl/2026-01-21_trailrunning/"
   },
   "image": "https://willem.com/global/images/13fd309f3f01.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/63056fc8831e.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/69279c3a72f1.webp",
     "description": "Testing the new Asics Trabuco 13 GTX shoes in proper Limburg mud",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37780_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/7ea5a8eeaccb.webp",
     "description": "Five marathons in 12 months (Amsterdam '24, Valencia '24, Amstelveen '25, Leiden '25, Eindhoven '25)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37780_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/eb595a87fb58.webp",
     "description": "Trail through the local forest in my backyard ('t Ham, Hegelsom)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37780_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/8dc887fcd0a4.webp",
     "description": "Mission accomplished: With my trail running gear in the shop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37780_images-4.jpg"
    }
   ]
  },
  {
   "id": 37779,
   "slug": "2026-01-20_change-keeps-coming",
   "url": "https://agents.willem.com/en/posts/2026-01-20_change-keeps-coming/",
   "source_url": "https://willem.com/en/2026-01-20_change-keeps-coming/",
   "language": "en",
   "date": "2026-01-20",
   "published": "2026-01-20T00:00:00+01:00",
   "created": "2026-01-20T11:19:31.288000+01:00",
   "updated": "2026-01-20T11:48:15.298000+01:00",
   "title": "Change Keeps Coming",
   "subtitle": "The Pathless Path by Paul Millerd",
   "summary": "Suggested by a friend in thinking, I just finished reading the book 'The Pathless Path' by Paul Millerd. It sits right next to Brad Stulberg's 'Master of Change' on my mental shelf for the same reason: both quietly push back against the urge to cling to what's safe, familiar, or \"supposed to be.\". What if you step off the scripted ladder and into uncertainty, what do you need to thrive?",
   "topics": [
    "book",
    "lifestyle",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-01-20_verandering-blijft-komen/",
    "source_url": "https://willem.com/nl/2026-01-20_verandering-blijft-komen/"
   },
   "image": "https://willem.com/global/images/02c30e5d2f53.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/28bdc564f983.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/19cb84a1c9e2.webp",
     "description": "Reading \"The Pathless Path\" by Paul Millerd",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37779_images-1.jpg"
    }
   ]
  },
  {
   "id": 37778,
   "slug": "2026-01-19_offline-reading",
   "url": "https://agents.willem.com/en/posts/2026-01-19_offline-reading/",
   "source_url": "https://willem.com/en/2026-01-19_offline-reading/",
   "language": "en",
   "date": "2026-01-19",
   "published": "2026-01-19T00:00:00+01:00",
   "created": "2026-01-19T11:08:41.552000+01:00",
   "updated": "2026-01-19T12:03:01.798000+01:00",
   "title": "Offline Reading",
   "subtitle": "Exporting blog posts from HTML to ePub and PDF",
   "summary": "This year marks the 10th anniversary of my blog. What started as an experiment has evolved into over 170 stories, averaging around 60 thousand pageviews a month. I recently started translating posts into Dutch, German, and Spanish, expanding the reach. And now I am introducing support for offline reading by making all posts available as ePub and PDF downloads.",
   "topics": [
    "blog",
    "book",
    "literature",
    "programming",
    "technology",
    "writing"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-01-19_offline-lezen/",
    "source_url": "https://willem.com/nl/2026-01-19_offline-lezen/"
   },
   "image": "https://willem.com/global/images/68eda178e767.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/7b833a3c1412.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/4d22a1a0de33.webp",
     "description": "Read willem.com posts on your favourite e-reader (like Kobo or reMarkable)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37778_images-1.jpg"
    }
   ]
  },
  {
   "id": 37777,
   "slug": "2026-01-18_using-a-mechanical-keyboard",
   "url": "https://agents.willem.com/en/posts/2026-01-18_using-a-mechanical-keyboard/",
   "source_url": "https://willem.com/en/2026-01-18_using-a-mechanical-keyboard/",
   "language": "en",
   "date": "2026-01-18",
   "published": "2026-01-18T00:00:00+01:00",
   "created": "2026-01-18T19:40:24.743000+01:00",
   "updated": "2026-01-18T20:40:04.897000+01:00",
   "title": "Using a mechanical keyboard",
   "subtitle": "NuPhy Air60 V2 review",
   "summary": "Since two months I have been using a mechanical keyboard, a NuPhy Air60 with Moss (60gf) switches. I long doubted the value of replacing my standard keyboard, liking keyboards from Apple and Framework enough not to switch. After reading lots of love from others, I decided to try it myself.",
   "topics": [
    "products",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-01-18_een-mechanisch-toetsenbord-gebruiken/",
    "source_url": "https://willem.com/nl/2026-01-18_een-mechanisch-toetsenbord-gebruiken/"
   },
   "image": "https://willem.com/global/images/eb463d7e8ca4.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/ef4b3b7c3280.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/987df771e243.webp",
     "description": "iPad Pro with the NuPhy Air60 V2 keyboard (in Basalt Black)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37777_images-1.jpg"
    }
   ]
  },
  {
   "id": 37746,
   "slug": "2026-01-10_hello-video",
   "url": "https://agents.willem.com/en/posts/2026-01-10_hello-video/",
   "source_url": "https://willem.com/en/2026-01-10_hello-video/",
   "language": "en",
   "date": "2026-01-10",
   "published": "2026-01-10T00:00:00+01:00",
   "created": "2026-01-10T10:21:44.701000+01:00",
   "updated": "2026-01-10T12:51:31.189000+01:00",
   "title": "Hello Video",
   "subtitle": "Greeting you with a smile!",
   "summary": "Just look around the modern web today, thanks to AI generated texts and images everything feels polished, perfect... and a little cold. I wanted to break the proverbial ice with a simple smile. So I replaced my hero photo with something alive: tiny, random videos of me waving, nodding, or just being there. There is more than meets the eye to make it work, let me explain in this post.",
   "topics": [
    "AI",
    "daddy",
    "design",
    "iPhone",
    "people",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-01-10_hallo-video/",
    "source_url": "https://willem.com/nl/2026-01-10_hallo-video/"
   },
   "image": "https://willem.com/global/images/50d2645519f2.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/9f5db28e0f94.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/7c7661d2f39b.webp",
     "description": "John Hodgman and Justin Long in the award-winning \"Get a Mac\" ad campaign (\"I'm a Mac\" and \"I'm a PC\")",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37746_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/0fd7f53bb983.webp",
     "description": "Live paintings in Harry Potter's Hogwarts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37746_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/fdf3565b3b89.webp",
     "description": "The \"Ultra Professional Movie Studio Setup\"  - my living room and iPhone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37746_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/dff01847b9a1.webp",
     "description": "Instead of one large video file, I use many different short, square, grey and audio-less clips",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37746_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/283975eb3cad.webp",
     "description": "All clips begin and end with a solid grey cross fader that I automatically add to the footage upon batch processing and encoding with ffmpeg",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37746_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/4e83adc7e2de.webp",
     "description": "Individual clips are managed and scheduled via a tailored backend system, driving the integrated video player on the homepage",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37746_images-6.png"
    }
   ]
  },
  {
   "id": 37706,
   "slug": "2026-01-07_websites-with-auto-pilot",
   "url": "https://agents.willem.com/en/posts/2026-01-07_websites-with-auto-pilot/",
   "source_url": "https://willem.com/en/2026-01-07_websites-with-auto-pilot/",
   "language": "en",
   "date": "2026-01-07",
   "published": "2026-01-07T00:00:00+01:00",
   "created": "2026-01-07T10:32:34.133000+01:00",
   "updated": "2026-01-07T13:18:40.373000+01:00",
   "title": "Websites with Auto Pilot",
   "subtitle": "Up to date content with scheduling, feeds and AI",
   "summary": "Why do you need a website, and what can you do to maximise its value while minimising (manual) effort? I have been working on this with some of my most innovative customers. What if you no longer need a full blown manual content management system? What if your website updated itself while you focused on what matters?",
   "topics": [
    "AI",
    "design",
    "technology",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2026-01-07_websites-met-automatische-piloot/",
    "source_url": "https://willem.com/nl/2026-01-07_websites-met-automatische-piloot/"
   },
   "image": "https://willem.com/global/images/6c40f449b684.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/967463d1b442.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/4f52c172bd39.webp",
     "description": "Automatically showing and hiding content keeps the club agenda up to date on escape.nl",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37706_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/8eb9f80d7b4a.webp",
     "description": "Aggregating content from different sources in interactive widgets on gpcardio.org",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37706_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/59abed0fe355.webp",
     "description": "Re-publication of Instagram posts to drive ticket sales without leaving the website on dekroon.nl",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37706_images-3.png"
    }
   ]
  },
  {
   "id": 37482,
   "slug": "2025-09-24_the-future-of-ai-is-human",
   "url": "https://agents.willem.com/en/posts/2025-09-24_the-future-of-ai-is-human/",
   "source_url": "https://willem.com/en/2025-09-24_the-future-of-ai-is-human/",
   "language": "en",
   "date": "2025-09-24",
   "published": "2025-09-24T00:00:00+02:00",
   "created": "2025-09-25T12:59:51.447000+02:00",
   "updated": "2025-09-25T13:35:57.080000+02:00",
   "title": "The Future of AI is Human",
   "subtitle": "On Fairies and Gin-Tonic with Blueberries",
   "summary": "AI got me thinking lately, why would one still want to work? Perhaps today's imperfect AI is not ready yet, but imagine everybody has access to a near perfect intelligence, capable of solving hard problems and answering even your wildest questions. Combine that with robotics and we'll be left wondering what to do next. Some fairies and Gin-Tonic pointed me to a possible answer.",
   "topics": [
    "AI",
    "daddy",
    "lifestyle",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-09-24_de-toekomst-van-ai-is-menselijk/",
    "source_url": "https://willem.com/nl/2025-09-24_de-toekomst-van-ai-is-menselijk/"
   },
   "image": "https://willem.com/global/images/063caa44ed40.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/b45402a85421.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/31d9dea5b89a.webp",
     "description": "Meeting fairies in Efteling with my girl",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37482_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/2c6ab41d99ab.webp",
     "description": "Gin-Tonic with blueberries at KUIF Venlo while shopping for clothes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37482_images-2.jpg"
    }
   ]
  },
  {
   "id": 37475,
   "slug": "2025-09-22_omarchy-on-imac",
   "url": "https://agents.willem.com/en/posts/2025-09-22_omarchy-on-imac/",
   "source_url": "https://willem.com/en/2025-09-22_omarchy-on-imac/",
   "language": "en",
   "date": "2025-09-22",
   "published": "2025-09-22T00:00:00+02:00",
   "created": "2025-09-23T12:28:05.203000+02:00",
   "updated": "2025-09-23T13:28:48.371000+02:00",
   "title": "Omarchy on iMac",
   "subtitle": "Breathing new life into an old computer with Linux",
   "summary": "After helping a family member migrate to a new computer, I found myself with an old iMac. The machine from 2017 was very slow running modern macOS, yet I have a soft spot for these all-in-one computers designed by Jony Ive and his team. Could I install Linux on it to give it a second life?",
   "topics": [
    "Durable",
    "Free Software",
    "Freedom",
    "apple",
    "design",
    "environment",
    "linux",
    "products",
    "technology",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-09-22_omarchy-op-imac/",
    "source_url": "https://willem.com/nl/2025-09-22_omarchy-op-imac/"
   },
   "image": "https://willem.com/global/images/bdb70a8ec1db.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/65d03a7e5156.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/a6d3fa3183d0.webp",
     "description": "Migrating to a new iMac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f8086629ca41.webp",
     "description": "Waiting on the platform for my train with an Apple in a bag...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/51c918f758cc.webp",
     "description": "... while eating an apple!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/a1ac9cf9423f.webp",
     "description": "Using balena Etcher to create a bootable USB-drive to install Omarchy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/c6249f9e1912.webp",
     "description": "Don't be fooled by the tongue-in-cheek retro logo: Omarchy is a cutting edge flavour of Linux with all the modern tools you need",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/a50377ede64f.webp",
     "description": "The installer does its magic almost completely automatically",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/2febe2ecf976.webp",
     "description": "The Omarchy installer is fast, the entire operating system with all the pre-selected looks and tools only took 6m 19s on the old iMac from 2017 to complete",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/77d02357734b.webp",
     "description": "Omarchy reporting for duty after first boot: The Tokio Night theme looking great as default",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/3ef0f2098a0e.webp",
     "description": "Before I knew it, I was using Omarchy to do some work. It is powerful right out of the proverbial box",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/0d4e9ad781c2.webp",
     "description": "Doing my web development work on Omarchy where my tools (in the lower right) run perfectly alongside other apps like Chromium and the terminal",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/e388804fc406.webp",
     "description": "This post was published on this very iMac using Omarchy Linux",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/af726e29ea69.webp",
     "description": "On the screenshot: Nautilus file explorer, Mousepad text editor and the Lemmid content management system running together on Omarchy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37475_images-12.png"
    }
   ]
  },
  {
   "id": 37260,
   "slug": "2025-08-29_auscultare-podcast-audiobook-player",
   "url": "https://agents.willem.com/en/posts/2025-08-29_auscultare-podcast-audiobook-player/",
   "source_url": "https://willem.com/en/2025-08-29_auscultare-podcast-audiobook-player/",
   "language": "en",
   "date": "2025-08-29",
   "published": "2025-08-29T00:00:00+02:00",
   "created": "2025-08-30T07:23:01.480000+02:00",
   "updated": "2025-09-03T05:29:33.729000+02:00",
   "title": "Auscultare Podcast + Audiobook Player",
   "subtitle": "Building a native Android app that remembers where you've left",
   "summary": "Enjoy distraction free listening to long form audio files like podcasts and audiobooks using this app I made. Tired of bloated apps full of ads, subscriptions or 'suggestions', I wanted an app that gets out of my way by doing one thing only and one thing very well. This is Auscultare.",
   "topics": [
    "Freedom",
    "android",
    "design",
    "minimal",
    "music",
    "products",
    "programming"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-08-29_auscultare-podcast-en-audioboekspeler/",
    "source_url": "https://willem.com/nl/2025-08-29_auscultare-podcast-en-audioboekspeler/"
   },
   "image": "https://willem.com/global/images/7e8b2ceb84be.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/b15abab2384a.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/eda8d0ee437a.webp",
     "description": "Auscultare: the podcast and audiobook player that tracks progress and play count, featuring a minimal light and dark design and perfect integration with Android (like lock screen play controls, and support for Bluetooth headsets and audio casting)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37260_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/db110f1f62c6.webp",
     "description": "Making the app I want using Android Studio and Kotlin",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37260_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/72e3d4a11b53.webp",
     "description": "Auscultare: made with love to get out of your way so you have more time for other things, like going for a run!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37260_images-3.jpg"
    }
   ]
  },
  {
   "id": 37241,
   "slug": "2025-08-19_android-photo-library-app",
   "url": "https://agents.willem.com/en/posts/2025-08-19_android-photo-library-app/",
   "source_url": "https://willem.com/en/2025-08-19_android-photo-library-app/",
   "language": "en",
   "date": "2025-08-19",
   "published": "2025-08-19T00:00:00+02:00",
   "created": "2025-08-19T16:28:55.330000+02:00",
   "updated": "2025-08-19T18:12:47.704000+02:00",
   "title": "Android Photo Library App",
   "subtitle": "All your photos in your pocket with Aves Gallery",
   "summary": "In Europe the summer holidays are nearing their end and if you are like many young parents, you probably shot a ton of new photos and videos. These are not just a bunch of files, they are like windows into our personal memories. This post is about an Android app that you can use to look at all your memories, right from your pocket, no cloud or subscription required.",
   "topics": [
    "Free Software",
    "android",
    "cloud",
    "health",
    "lifestyle",
    "photo",
    "products"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-08-19_android-fotobibliotheek-app/",
    "source_url": "https://willem.com/nl/2025-08-19_android-fotobibliotheek-app/"
   },
   "image": "https://willem.com/global/images/e0206056876d.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/0c48a0edbb70.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/6cf4b61f3f39.webp",
     "description": "Apple is serious about health and photos (Dr. Sumbul Desai)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37241_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f46444879aad.webp",
     "description": "Aves in action showing the powerful scrollbar which enables fast and accurate scrolling",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37241_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/244c3f0a8e94.webp",
     "description": "So that if your remember your wedding date (..), you'll be able to return to that specific day in a simple swipe",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37241_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/4e25a082971e.webp",
     "description": "Just like Apple Photos, you can search by location - like going back to Valencia where I ran a marathon with by buddy Niels",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37241_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/21592d0d311e.webp",
     "description": "Syncing photos between laptop and smartphones - Shotwell and Aves Gallery app working together",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37241_images-5.jpg"
    }
   ]
  },
  {
   "id": 37197,
   "slug": "2025-08-11_willemstagram",
   "url": "https://agents.willem.com/en/posts/2025-08-11_willemstagram/",
   "source_url": "https://willem.com/en/2025-08-11_willemstagram/",
   "language": "en",
   "date": "2025-08-11",
   "published": "2025-08-11T00:00:00+02:00",
   "created": "2025-08-12T05:44:59.016000+02:00",
   "updated": "2025-08-15T15:40:12.045000+02:00",
   "title": "Willemstagram",
   "subtitle": "3D flip-flap photo display showing stories",
   "summary": "Last week I sat with a customer looking at the new willem.com homepage where I use a narrative to tell about the things I do. This customer is one of the best visionary create thinkers, yet my text didn't seem to speak to him. Thinking about this, I remembered an important psychology lesson from the University: I needed something different, something non-linear, this post is about delivering a visual punch!",
   "topics": [
    "art",
    "data",
    "design",
    "people",
    "programming",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-08-11_willemstagram/",
    "source_url": "https://willem.com/nl/2025-08-11_willemstagram/"
   },
   "image": "https://willem.com/global/images/9e0e38da7b14.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/da33ca1cee50.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/334ea770c6c7.webp",
     "description": "The big blue mechanical departure info board from Utrecht Centraal (photo: cc/maurits90)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37197_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c32ce6e2d76f.webp",
     "description": "Visual Journal concept sketch: flip-flapping images deep linking to pages on willem.com like a mechanical Solari Board",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37197_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/8a20e248d096.webp",
     "description": "Visual Journal, dubbed \"Willemstagram\" in action",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37197_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/837bfdd7ff30.webp",
     "description": "The popup enables you to make a decision of diving into the story or to continue exploring other images",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37197_images-4.png"
    }
   ]
  },
  {
   "id": 37196,
   "slug": "2025-08-02_towards-digital-sovereignty",
   "url": "https://agents.willem.com/en/posts/2025-08-02_towards-digital-sovereignty/",
   "source_url": "https://willem.com/en/2025-08-02_towards-digital-sovereignty/",
   "language": "en",
   "date": "2025-08-02",
   "published": "2025-08-02T00:00:00+02:00",
   "created": "2025-08-02T11:55:59.380000+02:00",
   "updated": "2025-08-02T12:35:28.041000+02:00",
   "title": "Towards Digital Sovereignty",
   "subtitle": "Turning my experience into your advantage",
   "summary": "Over the years I have experimented with different digital tools, platforms and apps to get my work done. From easy-to-use but locked down commercial systems to free/libre solutions that are powerful but more challenging to setup. I learned a lot along the way. Now I offer that experience to others, read along to learn how you can benefit from this.",
   "topics": [
    "Freedom",
    "people",
    "technology",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-08-02_naar-digitale-soevereiniteit/",
    "source_url": "https://willem.com/nl/2025-08-02_naar-digitale-soevereiniteit/"
   },
   "image": "https://willem.com/global/images/9ce749fe96bd.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/91af73aa0c88.webp",
     "description": "This is how it begins: A real page from my personal notes, mapping out complexity to find a simple path forward",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37196_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/face35e557c6.webp",
     "description": "Over the years I have refined and simplified how I work just as much as the things I produce",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37196_images-2.jpg"
    }
   ]
  },
  {
   "id": 37193,
   "slug": "2025-07-26_the-agentic-web",
   "url": "https://agents.willem.com/en/posts/2025-07-26_the-agentic-web/",
   "source_url": "https://willem.com/en/2025-07-26_the-agentic-web/",
   "language": "en",
   "date": "2025-07-26",
   "published": "2025-07-26T00:00:00+02:00",
   "created": "2025-07-26T12:50:03.295000+02:00",
   "updated": "2025-08-15T16:28:30.056000+02:00",
   "title": "The Agentic Web",
   "subtitle": "\"Voorsorteren\" for the future",
   "summary": "In Dutch, there's a great word: voorsorteren. It means getting into the right lane on the motorway long before your exit. You do it to ensure a smooth, stress-free journey. I believe the same principle applies to technology. A little bit of smart preparation now can give you a massive advantage when the future arrives.",
   "topics": [
    "AI",
    "technology",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-07-26_het-agentic-web/",
    "source_url": "https://willem.com/nl/2025-07-26_het-agentic-web/"
   },
   "image": "https://willem.com/global/images/e5d6b6f744e0.webp",
   "image_width": 2560,
   "manuscript_pdf": "https://willem.com/global/manuscript/337dca2fe6c6.pdf",
   "images": [
    {
     "url": "https://willem.com/global/images/e6262069225d.webp",
     "description": "Thinking about the future shouldn't be a separate task; it should be an integrated part of the process.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37193_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c8e7bd233a0c.webp",
     "description": "By providing structured, context-rich content to the AI (left), my CMS (right) can generate high-quality, structured translations, preparing the content for both humans and machines.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37193_images-2.jpg"
    }
   ]
  },
  {
   "id": 37190,
   "slug": "2025-07-23_the-power-of-one",
   "url": "https://agents.willem.com/en/posts/2025-07-23_the-power-of-one/",
   "source_url": "https://willem.com/en/2025-07-23_the-power-of-one/",
   "language": "en",
   "date": "2025-07-23",
   "published": "2025-07-23T00:00:00+02:00",
   "created": "2025-07-23T22:29:10.679000+02:00",
   "updated": "2025-07-23T23:20:42.092000+02:00",
   "title": "The Power of One",
   "subtitle": "Why I've chosen to build my business by staying small",
   "summary": "For my entire career, I've had a clear goal: to stay a company of one. This isn't a starting point, but a deliberate choice about the best way to do great work and build a sustainable business. In this post, let me explain why.",
   "topics": [
    "lifestyle",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-07-23_de-kracht-van-een/",
    "source_url": "https://willem.com/nl/2025-07-23_de-kracht-van-een/"
   },
   "image": "https://willem.com/global/images/fd2fce2811f7.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e52877e617e3.webp",
     "description": "The 'Company of One' toolkit: focused development, strategic design, and the freedom to work from anywhere",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37190_images-1.jpg"
    }
   ]
  },
  {
   "id": 36894,
   "slug": "2025-06-04_breaking-changes",
   "url": "https://agents.willem.com/en/posts/2025-06-04_breaking-changes/",
   "source_url": "https://willem.com/en/2025-06-04_breaking-changes/",
   "language": "en",
   "date": "2025-06-04",
   "published": "2025-06-04T00:00:00+02:00",
   "created": "2025-06-26T21:12:39.663000+02:00",
   "updated": "2026-04-03T14:34:35.840000+02:00",
   "title": "Breaking Changes",
   "subtitle": "Upgrading Dovecot 2.3 to 2.4 in Debian Stable",
   "summary": "Last week I ran into unexpected trouble during a routine maintenance procedure on my company's email infrastructure. Processing thousands of emails each day, we use Dovecot to give our clients access to their messages. That all came to a grinding halt when I updated to version 2.4 which features breaking changes... oh dear!",
   "topics": [
    "data",
    "linux",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-06-04_brekende-wijzigingen/",
    "source_url": "https://willem.com/nl/2025-06-04_brekende-wijzigingen/"
   },
   "image": "https://willem.com/global/images/0b0368b2d26f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/5c709f1fc463.webp",
     "description": "A complete mail server stack comprises many smaller components finely tuned together",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/e88fe1cec23d.webp",
     "description": "Migrating mail_location into mail_driver and mail_path using the new server variable syntax",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/f0038d6aa77e.webp",
     "description": "The userdb and passdb upgrade instructions are very helpful at first glance /s",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/ee344f001a96.webp",
     "description": "Dovecot 2.3 SQL backend setup (auth-sql.conf.ext and dovecot-sql.conf.ext) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/e0e59271debb.webp",
     "description": "Dovecot 2.4 SQL backend setup (auth-sql.conf.ext) - now much more compact than its predecessor. There is now only one SQL query as the userdb-ection now uses the static backend",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/939ffd625f0f.webp",
     "description": "Sieve's config in Dovecot 2.3 (90-sieve.conf) with now obsolete variables sieve_default and sieve_dir",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/197ae89bb845.webp",
     "description": "Sieve's config in Dovecot 2.4 (90-sieve.conf)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/dd3339e34d1d.webp",
     "description": "Setup the server's IMAP and POP numbers to enable private/gradual debugging of the new configuration",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36894_images-8.png"
    }
   ]
  },
  {
   "id": 36895,
   "slug": "2025-05-12_when-the-going-gets-tough",
   "url": "https://agents.willem.com/en/posts/2025-05-12_when-the-going-gets-tough/",
   "source_url": "https://willem.com/en/2025-05-12_when-the-going-gets-tough/",
   "language": "en",
   "date": "2025-05-12",
   "published": "2025-05-12T00:00:00+02:00",
   "created": "2025-06-26T21:12:40.436000+02:00",
   "updated": "2026-04-03T14:34:36.114000+02:00",
   "title": "When the Going Gets Tough",
   "subtitle": "Running the Leiden Marathon in Heat",
   "summary": "Yesterday I finished the Leiden Marathon, it was the hardest 42K I ever completed due to the temperature. Sunny with a clear sky, temperatures climbed to 25°C. Several runners collapsed from heat exhaustion, and one even required resuscitation. When you push your limits, sometimes you actually reach them. Here are a few thoughts from the experience.",
   "topics": [
    "health",
    "lifestyle",
    "running",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-05-12_als-het-zwaar-wordt/",
    "source_url": "https://willem.com/nl/2025-05-12_als-het-zwaar-wordt/"
   },
   "image": "https://willem.com/global/images/032bcc9860a5.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/85a45a240706.webp",
     "description": "Having fun outside: smiling at the 10K mark, still going strong",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36895_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/9939f76e7e3a.webp",
     "description": "Effect of heat and humidity on marathon speed (runningwritings.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36895_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/e8cdb59ad41c.webp",
     "description": "My pace and heartrate during the marathon; despite slowing down due to the heat, my heartrate stayed high",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36895_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/cb0dab7241cd.webp",
     "description": "The event in one image: Pushing through exhaustion at the 40KM mark during the 2025 Leiden Marathon. Note the ambulance motorcycle in the background, and the fogged camera lens, blurred by sweat and the water I poured over myself to stay cool.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36895_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/67e869d073f9.webp",
     "description": "Dutch news on injury and casualty ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36895_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/e9a01e40a8a3.webp",
     "description": "When finishing is victory: completed the Leiden Marathon!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36895_images-6.jpg"
    }
   ]
  },
  {
   "id": 36896,
   "slug": "2025-04-15_vibe-coding",
   "url": "https://agents.willem.com/en/posts/2025-04-15_vibe-coding/",
   "source_url": "https://willem.com/en/2025-04-15_vibe-coding/",
   "language": "en",
   "date": "2025-04-15",
   "published": "2025-04-15T00:00:00+02:00",
   "created": "2025-06-26T21:29:41.353000+02:00",
   "updated": "2026-04-03T14:34:36.460000+02:00",
   "title": "Vibe Coding",
   "subtitle": "On the power and danger of programming with AI",
   "summary": "Grossing over $48K a month, the flight simulator game by Pieter Levels spurred a whole flurry of innovation. Without detailed knowledge of 3D game engine technology, he 'vibe coded' his game using AI. Critics of his work pointed at security and scalability issues, while proponents lauded the amazing result. What can we learn from this?",
   "topics": [
    "AI",
    "game",
    "programming",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-04-15_vibe-coding/",
    "source_url": "https://willem.com/nl/2025-04-15_vibe-coding/"
   },
   "image": "https://willem.com/global/images/81bb88df5fc6.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/9c7b33588ed2.webp",
     "description": "AI Generated Flight Simulator: fly.pieter.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36896_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/5267f788426c.webp",
     "description": "3D visualisation of workout data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36896_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/6b5de3beb772.webp",
     "description": "Game Concept artwork from 2013: HDL particles in the blood stream",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36896_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/8cdd2773d861.webp",
     "description": "3D Game Engine in action, note the graphical glitches in the artery's wall",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36896_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/fa20ecb23326.webp",
     "description": "Productivity paradox: when operating the machine costs you more effort than the value of its output",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36896_images-5.jpg"
    }
   ]
  },
  {
   "id": 36897,
   "slug": "2025-03-10_workout-data-in-3d",
   "url": "https://agents.willem.com/en/posts/2025-03-10_workout-data-in-3d/",
   "source_url": "https://willem.com/en/2025-03-10_workout-data-in-3d/",
   "language": "en",
   "date": "2025-03-10",
   "published": "2025-03-10T00:00:00+01:00",
   "created": "2025-06-26T21:29:41.554000+02:00",
   "updated": "2026-04-03T14:34:36.753000+02:00",
   "title": "Workout data in 3D",
   "subtitle": "Exploring web-based 3D graphics for fitness data",
   "summary": "While running my rounds around the village, it struck me that I could use ThreeJS to craft a dynamic 3D representation of my workout data. Read along to see what I’ve created—it’s a work in progress but serves as an exciting exploration of the concept.",
   "topics": [
    "data",
    "gran fondo",
    "running",
    "web"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-03-10_trainingsdata-in-3d/",
    "source_url": "https://willem.com/nl/2025-03-10_trainingsdata-in-3d/"
   },
   "image": "https://willem.com/global/images/9121ad1c6c99.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/54e7cade7a7a.webp",
     "description": "RunnerUP: recorded my 11K run, producing the a TCX file containing workout data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36897_images-1.png"
    }
   ]
  },
  {
   "id": 36898,
   "slug": "2025-03-06_open-sourcing-gran-fondo",
   "url": "https://agents.willem.com/en/posts/2025-03-06_open-sourcing-gran-fondo/",
   "source_url": "https://willem.com/en/2025-03-06_open-sourcing-gran-fondo/",
   "language": "en",
   "date": "2025-03-06",
   "published": "2025-03-06T00:00:00+01:00",
   "created": "2025-06-26T21:29:41.756000+02:00",
   "updated": "2026-04-03T14:34:37.065000+02:00",
   "title": "Open-Sourcing Gran Fondo",
   "subtitle": "A Leap to Libre Fitness and Freedom",
   "summary": "Gran Fondo, the app that tracks runs and rides, is going open-source. I’m removing its subscription model and make it libre. This isn’t about short-term revenue—it’s about building something enduring, private, and free for all. Here’s why I’m taking this plunge and what’s next.",
   "topics": [
    "Free Software",
    "Freedom",
    "android",
    "bike",
    "gran fondo",
    "heart",
    "iOS",
    "running",
    "smartphone",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-03-06_open-sourcing-gran-fondo/",
    "source_url": "https://willem.com/nl/2025-03-06_open-sourcing-gran-fondo/"
   },
   "image": "https://willem.com/global/images/d2780f56a2d8.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0ba4569210c6.webp",
     "description": "Gran Fondo v1 in action: smoothly tracks rides with Bluetooth support for power, cadence, and heart rate—primed to show open-source can rival pro tools",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36898_images-1.jpg"
    }
   ]
  },
  {
   "id": 36899,
   "slug": "2025-03-05_durable-smartphone",
   "url": "https://agents.willem.com/en/posts/2025-03-05_durable-smartphone/",
   "source_url": "https://willem.com/en/2025-03-05_durable-smartphone/",
   "language": "en",
   "date": "2025-03-05",
   "published": "2025-03-05T00:00:00+01:00",
   "created": "2025-06-26T21:29:41.951000+02:00",
   "updated": "2026-04-03T14:34:37.343000+02:00",
   "title": "Durable Smartphone",
   "subtitle": "Fairphone with Google Free /e/OS",
   "summary": "While sitting in the train the guy in front of me surprised me, out of his fancy pants he pulled this well worn, patina rich, piece of tech. We're travelling first class and judging by his classy attire, this man is not of limited means. Like a well-raced Porsche, this thing has seen some action. Sunlight hitting the metal frame reveals a green hue, I recognise it to be an earlier generation Fairphone still going strong. This changed my view on smartphones, please read along.",
   "topics": [
    "Durable",
    "Freedom",
    "android",
    "apple",
    "cloud",
    "design",
    "review",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-03-05_duurzame-smartphone/",
    "source_url": "https://willem.com/nl/2025-03-05_duurzame-smartphone/"
   },
   "image": "https://willem.com/global/images/7058e18ef46d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6b41c67e2af8.webp",
     "description": "Wear as Trophy: Racing a Porsche or running a Fairphone, the scars tell the epic tale - racing on Zandvoort with my buddy Niels!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/1a9d4dc0c642.webp",
     "description": "Fairphone is powered by the same Dragonwing chip that is used in ships, cranes, drones and industrial plants",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/161b2dd6a5ef.webp",
     "description": "Designed to last and easy to service: Fairphone 5 can be opened with standard tools",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/96f87ceaa132.webp",
     "description": "With deGoogled Android, my Fairphone's battery life is measured in days",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/5c6f7efa4658.webp",
     "description": "Let tools be tools: let the aluminium be like a canvas depicting usage patterns",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/94f1e27c8056.webp",
     "description": "Using sanding paper to remove paint from the Fairphone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/57aa1563d072.webp",
     "description": "My Fairphone 5 in natural aluminium with the unLauncher on Google-Free /e/OS",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36899_images-7.jpg"
    }
   ]
  },
  {
   "id": 36900,
   "slug": "2025-02-10_better-laptop",
   "url": "https://agents.willem.com/en/posts/2025-02-10_better-laptop/",
   "source_url": "https://willem.com/en/2025-02-10_better-laptop/",
   "language": "en",
   "date": "2025-02-10",
   "published": "2025-02-10T00:00:00+01:00",
   "created": "2025-06-26T21:29:42.424000+02:00",
   "updated": "2026-04-03T14:34:37.586000+02:00",
   "title": "Better Laptop",
   "subtitle": "Assembling the DIY Framework 13",
   "summary": "Consumer electronics often lock us into sealed hardware and forced upgrades, creating enormous e-waste. Framework challenges that norm by making laptops you can service, upgrade, and customise, which extends their lifespan and cuts down on unnecessary e-waste. My Framework 13 arrived this week and I assembled it myself. This post is a quick rundown of what that process involved, why I chose this brand, and what’s next.",
   "topics": [
    "Durable",
    "Project Freedom",
    "design",
    "laptop",
    "linux",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-02-10_betere-laptop/",
    "source_url": "https://willem.com/nl/2025-02-10_betere-laptop/"
   },
   "image": "https://willem.com/global/images/8e2dc54241c6.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/08562f1ac1ca.webp",
     "description": "Straightforward eco-friendly packaging",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/9c32876aa7ce.webp",
     "description": "Inside the box you'll find the different parts you need to assemble the laptop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/376d5894c813.webp",
     "description": "Installing the two 48GB RAM modules is easy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/6bef8e4fd01e.webp",
     "description": "The 8TB SSD is secured with a single screw",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/b3b04c8f39da.webp",
     "description": "I choose a standard Linux keyboard featuring no Windows but a 'super'-key. I like things SUPER. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/633df9faff2b.webp",
     "description": "The keyboard cover snaps into position using magnets and is secured when you tighten the screws in the bottom cover",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/7147c64086c0.webp",
     "description": "Installing the display's bezel is easy, you can chose many different colours - I chose boring black.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/a4df07a234c5.webp",
     "description": "The case is securely closed by 5 standard screws (screwdriver is included!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5e44d8b2cf65.webp",
     "description": "The laptop features swappable port modules, enabling you to choose your own ports for I/O.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/19b739ef3db5.webp",
     "description": "Freshly assembled, looking good.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/3a8d2f514d4d.webp",
     "description": "Using Windows to install Linux, who doesn't love some sweet irony.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/79fa8218b6a7.webp",
     "description": "The Debian 12 installer is recognised by the laptop without any need for dark magic. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/a766405ae1d1.webp",
     "description": "My Framework 13 laptop running Debian GNU/Linux and Sway WM reporting for duty.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/7dd0644642d5.webp",
     "description": "Framework 13: a better laptop made with love - and assembled by myself.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36900_images-14.jpg"
    }
   ]
  },
  {
   "id": 36901,
   "slug": "2025-01-27_podcast-downloader",
   "url": "https://agents.willem.com/en/posts/2025-01-27_podcast-downloader/",
   "source_url": "https://willem.com/en/2025-01-27_podcast-downloader/",
   "language": "en",
   "date": "2025-01-27",
   "published": "2025-01-27T00:00:00+01:00",
   "created": "2025-06-26T21:29:43.070000+02:00",
   "updated": "2025-09-03T06:06:45.097000+02:00",
   "title": "Podcast Downloader",
   "subtitle": "A Simple, Open-Source RSS Podcast Fetcher",
   "summary": "Tired of being constantly nudged toward \"more relevant content\", I built a script to break free from commercial or closed-source podcast apps. I just wanted a tool that quietly grabs my favorite shows—no fuss, no tracking, no extras. Read this post to learn more; it's free/libre software under GPLv3.",
   "topics": [
    "Free Software",
    "Freedom",
    "apple",
    "design",
    "linux",
    "minimal",
    "music",
    "programming"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-01-27_podcast-downloader/",
    "source_url": "https://willem.com/nl/2025-01-27_podcast-downloader/"
   },
   "image": "https://willem.com/global/images/425d78917cc7.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/63c62beb99f0.webp",
     "description": "Left: Apple Podcasts, Right: Apple iBooks—both screens dedicate around half the interface to content I didn't request",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36901_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/5d2e9bc3b761.webp",
     "description": "Downloaded podcasts on my A&K audio player—modern Apple nudges ironically sent me back to the old iPod-like design (o sweet irony)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36901_images-2.jpg"
    }
   ]
  },
  {
   "id": 36902,
   "slug": "2025-01-23_champions-league-of-webdesign",
   "url": "https://agents.willem.com/en/posts/2025-01-23_champions-league-of-webdesign/",
   "source_url": "https://willem.com/en/2025-01-23_champions-league-of-webdesign/",
   "language": "en",
   "date": "2025-01-23",
   "published": "2025-01-23T00:00:00+01:00",
   "created": "2025-06-26T21:29:44.602000+02:00",
   "updated": "2026-04-03T14:34:37.832000+02:00",
   "title": "Champions League of Webdesign",
   "subtitle": "Cutting-edge technology meets top-tier digital demands",
   "summary": "Creating a high-performance website is an art form that blends cutting-edge technology with an eye for design and commerce. At escape.nl, home to one of Amsterdam’s most iconic venues, every detail reflects the precision and care required to deliver seamless, engaging experiences to large audiences. This post highlights often-unseen details with big impact.",
   "topics": [
    "Amsterdam",
    "art",
    "creating",
    "design",
    "server",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-01-23_champions-league-van-webdesign/",
    "source_url": "https://willem.com/nl/2025-01-23_champions-league-van-webdesign/"
   },
   "image": "https://willem.com/global/images/098477cf702d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/846a4d879e96.webp",
     "description": "Escape Club Amsterdam, one of the city's oldest and best-known venues",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/860b56954422.webp",
     "description": "Immediate immersion via full-screen video",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/47f50b951cc5.webp",
     "description": "Two distinct full-screen videos tailored for playback on wide or portrait screens",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/8bfb81b3abef.webp",
     "description": "BIT.nl datacentre - with Yours Truly inside :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/ab8e39fc4be5.webp",
     "description": "Separating content management from content delivery for speed and security",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/daa7b905f90d.webp",
     "description": "Large buttons directing the attention to the commercial funnel",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/181ee4f13b10.webp",
     "description": "Razor-sharp details for club artwork",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/62ccce6968b9.webp",
     "description": "Supporting touchscreen gestures like swiping",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/f234428c5abc.webp",
     "description": "The integrated gallery offers a rich glimpse into Escape Club’s history",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/7a4a2d8714b6.webp",
     "description": "All visuals are individually optimised with multiple copies for different screens, maximising the responsive design's fidelity",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/88e2476e38f8.webp",
     "description": "The website features a conventional menu (left) and a context-aware sitemap (right)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-11.png"
    },
    {
     "url": "https://willem.com/global/images/66f994fdbfcf.webp",
     "description": "An easy to use app enables Escape's staff to manage the entire website",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/becff3a0f3c0.webp",
     "description": "Scoring 100 out of 100 points in Google PageSpeed insights for speed, accessibility and search engine optimisation ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/a907377b82c7.webp",
     "description": "Magic happens at the intersection of technology and liberal arts, as Steve Jobs often said ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36902_images-14.png"
    }
   ]
  },
  {
   "id": 36903,
   "slug": "2025-01-18_master-of-change",
   "url": "https://agents.willem.com/en/posts/2025-01-18_master-of-change/",
   "source_url": "https://willem.com/en/2025-01-18_master-of-change/",
   "language": "en",
   "date": "2025-01-18",
   "published": "2025-01-18T00:00:00+01:00",
   "created": "2025-06-26T21:29:45.223000+02:00",
   "updated": "2026-04-03T14:34:38.092000+02:00",
   "title": "Master of Change",
   "subtitle": "Thriving amidst uncertainty using Rugged Flexibility",
   "summary": "Change is one of life's few constants. Yet, even with its inevitability, facing it head-on can feel daunting and disorienting. In the book \"Master of Change\", Brad Stulberg offers a thought-provoking guide to not just survive but thrive in an ever changing world.",
   "topics": [
    "Freedom",
    "book",
    "lifestyle",
    "nature",
    "people",
    "review",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2025-01-18_meester-van-verandering/",
    "source_url": "https://willem.com/nl/2025-01-18_meester-van-verandering/"
   },
   "image": "https://willem.com/global/images/7f12ab3b27de.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/8707daefaf85.webp",
     "description": "The author of the book 'Master of Change', Brad Stulberg on his website bradstulberg.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36903_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/790887cc69de.webp",
     "description": "The book frequently draws on timeless stories and philosophies from ancient thinkers, offering insights that remain strikingly relevant and thought-provoking in today's world.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36903_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/1c21aaa16223.webp",
     "description": "The concept \"Rugged Flexibility\" stands out as a central theme in the book Master of Change",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36903_images-3.jpg"
    }
   ]
  },
  {
   "id": 36904,
   "slug": "2024-12-19_data-versus-feeling",
   "url": "https://agents.willem.com/en/posts/2024-12-19_data-versus-feeling/",
   "source_url": "https://willem.com/en/2024-12-19_data-versus-feeling/",
   "language": "en",
   "date": "2024-12-19",
   "published": "2024-12-19T00:00:00+01:00",
   "created": "2025-06-26T22:09:13.639000+02:00",
   "updated": "2026-04-03T14:34:38.358000+02:00",
   "title": "Data versus Feeling",
   "subtitle": "Running two marathons in 6 weeks",
   "summary": "Earlier this month I ran the Valencia Marathon (42KM), just six weeks after finishing my first ever marathon in Amsterdam. I used two different approaches for these races: running on feeling and running on data. The experience differed greatly, let me explain it in this blog post.",
   "topics": [
    "apple",
    "data",
    "experiment",
    "heart",
    "running",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-12-19_gegevens-versus-gevoel/",
    "source_url": "https://willem.com/nl/2024-12-19_gegevens-versus-gevoel/"
   },
   "image": "https://willem.com/global/images/0cac8e0d7687.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/81547313ecbb.webp",
     "description": "Approach A: I could not maintain the 'nice feeling pace', causing a mid-marathon crash (as shown in post race data)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36904_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/b8ce2194acc1.webp",
     "description": "Approach A: You can see my heartrate peaking mid-marathon, way too high to be durable; by slowing down I got it back to a workable zone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36904_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/0912c7a4847f.webp",
     "description": "Approach B: Managing the pace for the first 35 kilometers, then speed it up",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36904_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/0022d3a4d903.webp",
     "description": "Finishing 2 Marathons in 6 weeks (Left: Amsterdam, Right: Valencia)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36904_images-4.jpg"
    }
   ]
  },
  {
   "id": 36905,
   "slug": "2024-12-09_the-problem-with-bitcoin",
   "url": "https://agents.willem.com/en/posts/2024-12-09_the-problem-with-bitcoin/",
   "source_url": "https://willem.com/en/2024-12-09_the-problem-with-bitcoin/",
   "language": "en",
   "date": "2024-12-09",
   "published": "2024-12-09T00:00:00+01:00",
   "created": "2025-06-26T22:09:13.923000+02:00",
   "updated": "2025-07-22T12:13:30.530000+02:00",
   "title": "The Problem With Bitcoin",
   "subtitle": "Everybody Wins",
   "summary": "A few days ago the value of a single Bitcoin briefly surpassed $100K, a milestone that seemed unimaginable just some years ago. I wonder how durable the ever growing love for Bitcoin is. Let's have a closer look at the mechanisms underpinning the world's most famous cryptocurrency.",
   "topics": [
    "budget",
    "cash",
    "money",
    "payments",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-12-09_het-probleem-met-bitcoin/",
    "source_url": "https://willem.com/nl/2024-12-09_het-probleem-met-bitcoin/"
   },
   "image": "https://willem.com/global/images/e2742de41a3f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/cffc3618ec86.webp",
     "description": "Abstract from Satoshi Nakamoto's original paper (2009)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36905_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/2c2decd3a9b7.webp",
     "description": "The blockchain principle visualised: output from previous transactions form the cryptographic input for new ones",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36905_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/8b0c62b15d64.webp",
     "description": "2009-2024: Bitcoin's rise in value is hard to ignore",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36905_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/59340563ae37.webp",
     "description": "Yesteryear's speculative trading: The Dutch Tulip Mania",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36905_images-4.jpg"
    }
   ]
  },
  {
   "id": 36906,
   "slug": "2024-11-11_write-your-own-words",
   "url": "https://agents.willem.com/en/posts/2024-11-11_write-your-own-words/",
   "source_url": "https://willem.com/en/2024-11-11_write-your-own-words/",
   "language": "en",
   "date": "2024-11-11",
   "published": "2024-11-11T00:00:00+01:00",
   "created": "2025-06-26T22:09:14.085000+02:00",
   "updated": "2026-04-03T14:34:38.612000+02:00",
   "title": "Write your own words",
   "subtitle": "Against AI for writing",
   "summary": "Two years ago ChatGPT launched, it popularised AI as tool to create things. Large language models generate text based on prompts, outputting words that are hard to distinguish from being written by a person. The short term benefits are clear, but I suspect many people underestimate the long term costs.",
   "topics": [
    "AI",
    "SEO",
    "art",
    "creativity",
    "data",
    "people",
    "writing"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-11-11_schrijf-je-eigen-woorden/",
    "source_url": "https://willem.com/nl/2024-11-11_schrijf-je-eigen-woorden/"
   },
   "image": "https://willem.com/global/images/1ff53696f2bf.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0a3772f38bb9.webp",
     "description": "Steel in old shipwrecks is valued for its purity - HMS Royal Oak Seabed (Scapa Flow)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36906_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/25bd364c115c.webp",
     "description": "Research findings by Preply: Distinguishing AI-written texts from Human-written texts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36906_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/28eee7ee0fa3.webp",
     "description": "Spot the real Monet (the Artist's garden at Vétheuil) - you're probably able to easily find it, despite both images being pretty",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36906_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/9a8319e2f477.webp",
     "description": "Spot the real Van Gogh - an easy task if you look at the repeating patterns",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36906_images-4.png"
    }
   ]
  },
  {
   "id": 36907,
   "slug": "2024-11-10_go-viral-on-x",
   "url": "https://agents.willem.com/en/posts/2024-11-10_go-viral-on-x/",
   "source_url": "https://willem.com/en/2024-11-10_go-viral-on-x/",
   "language": "en",
   "date": "2024-11-10",
   "published": "2024-11-10T00:00:00+01:00",
   "created": "2025-06-26T22:09:14.378000+02:00",
   "updated": "2025-07-22T12:13:30.898000+02:00",
   "title": "Go Viral on X",
   "subtitle": "32K views in two days",
   "summary": "Earlier this week one of my posts on the social network X went viral and attracted 32K views in two days. With no major presence on Elon Musk's platform, and no paid advertising, gaining that kind of attention is something special. Let me explain how this happened.",
   "topics": [
    "creating",
    "creativity",
    "howto",
    "people",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-11-10_viral-gaan-op-x/",
    "source_url": "https://willem.com/nl/2024-11-10_viral-gaan-op-x/"
   },
   "image": "https://willem.com/global/images/08b4ac1e1084.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/797ea4d63c94.webp",
     "description": "My Apple Vision Pro",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36907_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/ac3b9e0e5744.webp",
     "description": "Mac Mini",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36907_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/6c092b2a72e6.webp",
     "description": "My Post on X: Mac Mini x Vision Pro",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36907_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/7f2b58c6db52.webp",
     "description": "Image Editing on the go: Pixelmator on iPhone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36907_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/26c7ff2ef12d.webp",
     "description": "Post wrapping my original X-post, with a simpler tag line, mentioning authors that I manually selected to have posted on the subject of my post",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36907_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/5bc6859aeae9.webp",
     "description": "32K views in two days",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36907_images-6.png"
    }
   ]
  },
  {
   "id": 36908,
   "slug": "2024-10-20_marathon",
   "url": "https://agents.willem.com/en/posts/2024-10-20_marathon/",
   "source_url": "https://willem.com/en/2024-10-20_marathon/",
   "language": "en",
   "date": "2024-10-20",
   "published": "2024-10-20T00:00:00+02:00",
   "created": "2025-06-26T22:09:14.673000+02:00",
   "updated": "2026-04-03T14:34:38.870000+02:00",
   "title": "Marathon",
   "subtitle": "Running my first full marathon",
   "summary": "Last Sunday I completed my first full marathon, covering a distance of 42KM in and around Amsterdam. An idea that started in a bar with some beers and concluded with a finish in the Olympic Stadium. What a journey, what an experience, well worthy of a blog post.",
   "topics": [
    "Amsterdam",
    "health",
    "lifestyle",
    "people",
    "running",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-10-20_marathon/",
    "source_url": "https://willem.com/nl/2024-10-20_marathon/"
   },
   "image": "https://willem.com/global/images/f6caa4bb8543.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/27054fc736ba.webp",
     "description": "How great ideas are created: some guys with some beer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/eae52fbf92c7.webp",
     "description": "My Asics GT-4000 in mako blue/black, extra wide (2e)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/f98f8db5f27c.webp",
     "description": "Data from first raining session 5K - note the slow pace and high heart rate",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/565447fe6a26.webp",
     "description": "Out running in the rain at Lake Lugano in Italy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/2e204edbb901.webp",
     "description": "Training for a marathon: no mountain too high - just go through the tunnel... :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/5cd6fc7e052a.webp",
     "description": "Waking up early in Tuscany, to go for a run before sunrise (escaping intense heat)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/54b69bedc38a.webp",
     "description": "Route of the TCS Amsterdam Marathon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/b2e4a0e9158d.webp",
     "description": "Moments before my official start at Stadionweg",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/b068936c23ee.webp",
     "description": "Lot's of folks on the street, many of them with a healthy tension in their tenure",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/82004aea3739.webp",
     "description": "Running in the Rijksmuseum tunnel - that's pretty cool",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/e4959abc625d.webp",
     "description": "Let's play the game \"Where's Willem?\" :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/399dd61f501d.webp",
     "description": "The part of the route following the Amstel River is challenging: you see runners at the other side of the river returning to the city/finish, it's an extra mental challenge",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/2f0bc1cc4b23.webp",
     "description": "At around 25K there are fewer happy faces around you - people are fully focussed on their effort - it gets serious",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/066fa9a20bae.webp",
     "description": "Between 30K and 40K, body and mind are fighting together to reach the finish",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/979455d06554.webp",
     "description": "You finish in the Olympisch Stadion, that's a special feeling adding to the euphoria of counting down the final meters",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/dec6f177883b.webp",
     "description": "This image sums it up, it is my \"endgame\" face - a 42K Marathon finisher!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36908_images-16.jpg"
    }
   ]
  },
  {
   "id": 36909,
   "slug": "2024-09-10_i-see-dead-people",
   "url": "https://agents.willem.com/en/posts/2024-09-10_i-see-dead-people/",
   "source_url": "https://willem.com/en/2024-09-10_i-see-dead-people/",
   "language": "en",
   "date": "2024-09-10",
   "published": "2024-09-10T00:00:00+02:00",
   "created": "2025-06-26T22:09:15.262000+02:00",
   "updated": "2025-07-22T12:25:54.759000+02:00",
   "title": "I see dead people",
   "subtitle": "Augmenting old photos in virtual reality",
   "summary": "Imagine seeing your dead family members - not just on a picture, but lifelike and in three dimensions! You can almost touch them. It hits you differently, I can assure you. I'm still in awe: I just saw my dead grandfather, lifelike and for the first time ever in three dimensions! This may be Apple Vision Pro's killer feature, if you allow me the pun, please hear me out.",
   "topics": [
    "Vision Pro",
    "apple",
    "people",
    "photo"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-09-10_ik-zie-dode-mensen/",
    "source_url": "https://willem.com/nl/2024-09-10_ik-zie-dode-mensen/"
   },
   "image": "https://willem.com/global/images/def508a39145.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/c726b4c3566a.webp",
     "description": "This photo was taken on October 6, 1983 - only my mom (in white) is still alive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36909_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/60b74a0eb54b.webp",
     "description": "The author, yours truly, and his late father, about 38 years ago (10 September 1986)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36909_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/797ea4d63c94.webp",
     "description": "Apple Vision Pro is not just a wearable screen, it is a three dimensional projector",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36909_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ada875b740bd.webp",
     "description": "Looking the chap right in the eye, right here in my little apartment almost 40 years later",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36909_images-4.png"
    }
   ]
  },
  {
   "id": 36910,
   "slug": "2024-05-11_developing-a-native-ios-app",
   "url": "https://agents.willem.com/en/posts/2024-05-11_developing-a-native-ios-app/",
   "source_url": "https://willem.com/en/2024-05-11_developing-a-native-ios-app/",
   "language": "en",
   "date": "2024-05-11",
   "published": "2024-05-11T00:00:00+02:00",
   "created": "2025-06-26T22:09:15.492000+02:00",
   "updated": "2026-04-03T14:34:39.121000+02:00",
   "title": "Developing a native iOS app",
   "subtitle": "Making a cycling and running tracker",
   "summary": "As a little side-project, squeezed between my normal work, I have been working on something of personal interest: a native workout tracking app for iOS. I wanted to make my smartwatch obsolete, instead using my phone to track workouts. How hard could it be to gather detailed sensor data using native Swift APIs?",
   "topics": [
    "AI",
    "apple",
    "bike",
    "creating",
    "data",
    "design",
    "gran fondo",
    "health",
    "heart",
    "minimal",
    "programming",
    "running",
    "sensors",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-05-11_het-ontwikkelen-van-een-native-ios-app/",
    "source_url": "https://willem.com/nl/2024-05-11_het-ontwikkelen-van-een-native-ios-app/"
   },
   "image": "https://willem.com/global/images/a84959d10e5d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/4c88f32b5e47.webp",
     "description": "Nothing makes you feel alive like going outside for some physical action - I love working out!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/6fb02bfdb938.webp",
     "description": "My bike with Bluetooth sensors connected to my MacBook running Xcode",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/b60ff287e1ab.webp",
     "description": "Early prototype of the app working with Bluetooth heartrate sensor and its early dataset shown in another app that makes some pretty graphs (HealthFit)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/f00f6c542cf6.webp",
     "description": "Apple Watch workout app shows large buttons to start a workout - no need for additional configuration",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/84177e0cd3dc.webp",
     "description": "I used my Garmin Edge data layout as an inspiration when designing my app's layout when used as mounted bike computer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/890dceb85ae1.webp",
     "description": "Design sketch describing the desired layout",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/557c388149d2.webp",
     "description": "Testing the app on my bike using a QuadLock case and mount",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/b8e692c2cdd3.webp",
     "description": "Different configurations of realtime data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/615f26f51f55.webp",
     "description": "I got some magic in my pocket: The app tracking workouts from the background - during recordings it just shows a widget on the homescreen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/11bded661d7a.webp",
     "description": "\"Goin' the extra mile\": 8 hours on my bike to test battery usage (note: there is still 23% power left!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/57929e8b6042.webp",
     "description": "Screenshots of the app's onboarding process: asking for permissions and guiding new users",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/a6b82a213937.webp",
     "description": "Designing a paywall for my app: not my favourite ask from users, but it is a very important one nonetheless. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-12.png"
    },
    {
     "url": "https://willem.com/global/images/fa7d320e32a3.webp",
     "description": "Not your average debugging session: Fietselfstedentocht 2024",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36910_images-13.jpg"
    }
   ]
  },
  {
   "id": 36911,
   "slug": "2024-03-24_half-marathon",
   "url": "https://agents.willem.com/en/posts/2024-03-24_half-marathon/",
   "source_url": "https://willem.com/en/2024-03-24_half-marathon/",
   "language": "en",
   "date": "2024-03-24",
   "published": "2024-03-24T00:00:00+01:00",
   "created": "2025-06-26T22:09:15.917000+02:00",
   "updated": "2026-04-03T14:34:39.354000+02:00",
   "title": "Half Marathon",
   "subtitle": "On Training, Data and Feeling",
   "summary": "Last Sunday, I participated in the Venloop, a half marathon event in Venlo. I completed the 21KM run in 2h05, a result I am satisfied with as this was my first ever 'official' event since I began running just three months ago. In this post, I'll share my experiences with training, balancing fitness data, and feeling fit.",
   "topics": [
    "apple",
    "data",
    "health",
    "heart",
    "review",
    "running",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-03-24_halve-marathon/",
    "source_url": "https://willem.com/nl/2024-03-24_halve-marathon/"
   },
   "image": "https://willem.com/global/images/9b98808dfcdc.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/f00f6c542cf6.webp",
     "description": "The Apple Watch Ultra 2 is a great little training companion, enabling the tracking of many different types of workouts; like cycling and running",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/ed0ecb1b669c.webp",
     "description": "If you use it more often, it will allow you to compete with yourself using earlier sessions - try to beat that personal record!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/6c004cd36a3f.webp",
     "description": "The Trend Is Your Friend: using WHOOP I tracked my trends, here you see that I have increased the training load (strain) over the past 3 months leading up to the Marathon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/387ba63fb062.webp",
     "description": "HealthFit is a fantastic app offering you detailed insights of the workouts you record with your Apple Watch, WHOOP, Garmin, Wahoo or any other app that supports Apple's HealthKit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/2daef97d7456.webp",
     "description": "HealthFit uses open and well documented formulas to calculate your training load, directing you into a 'sweet spot' to achieve maximum gains while limiting risk of over training",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/047ea6570872.webp",
     "description": "It even provides you with some shiny widgets for your home screen - nudging you to go for a run or ride!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/e028bc105d89.webp",
     "description": "Ready, set, GO! Taking part in the Venloop - I am not the only one!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/0fd3638d7e58.webp",
     "description": "Finished the Half Marathon: look at that smile, you're seeing pure positive energy after a very enjoyable run!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/299249fa5ea3.webp",
     "description": "Ooooohhhh... I got a fancy medal! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36911_images-9.jpg"
    }
   ]
  },
  {
   "id": 36912,
   "slug": "2024-03-05_no-i-won-t-build-that",
   "url": "https://agents.willem.com/en/posts/2024-03-05_no-i-won-t-build-that/",
   "source_url": "https://willem.com/en/2024-03-05_no-i-won-t-build-that/",
   "language": "en",
   "date": "2024-03-05",
   "published": "2024-03-05T00:00:00+01:00",
   "created": "2025-06-26T22:09:17.045000+02:00",
   "updated": "2026-04-03T14:34:39.600000+02:00",
   "title": "No, I Won't Build That!",
   "subtitle": "Better Thinking, Better Work",
   "summary": "If you're an accomplished developer (as in: you've actually created things in the past), you may recognise this scenario: people reaching out to you, asking you to build something specific. \"Can you build X for me?\" A fellow technician once urged me to refuse more often: be proud of the things you don't do! Let me explain in this post.",
   "topics": [
    "design",
    "people",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-03-05_nee-dat-ga-ik-niet-bouwen/",
    "source_url": "https://willem.com/nl/2024-03-05_nee-dat-ga-ik-niet-bouwen/"
   },
   "image": "https://willem.com/global/images/1ad19d4e972c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6116a7c75483.webp",
     "description": "Thoughts on canvas (2022): Example of captured ideas, in Dutch, with UI sketches, code snippets, questions, actions, and decisions not to do certain features",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36912_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/deacf0b3ce73.webp",
     "description": "I write things down",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36912_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/e4d877f5df3e.webp",
     "description": "The answer is out there: ride, run, and walk!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36912_images-3.jpg"
    }
   ]
  },
  {
   "id": 36913,
   "slug": "2024-02-16_vision-pro",
   "url": "https://agents.willem.com/en/posts/2024-02-16_vision-pro/",
   "source_url": "https://willem.com/en/2024-02-16_vision-pro/",
   "language": "en",
   "date": "2024-02-16",
   "published": "2024-02-16T00:00:00+01:00",
   "created": "2025-06-26T22:09:17.305000+02:00",
   "updated": "2026-04-03T14:34:39.830000+02:00",
   "title": "Vision Pro",
   "subtitle": "Exploring Spatial Computing",
   "summary": "Currently, I am overlooking a lake at Mount Hood while writing this. I hear birds in the distance and see the lake calm, with subtle waves and some mist in the distance. Yet, it is fake, as I am sitting on our top floor, a barely furnished room full of items belonging to a family house with two young kids. I am using Apple's Vision Pro to explore what Spatial Computing can be. I am in awe; let me explain in this blog post.",
   "topics": [
    "Vision Pro",
    "apple",
    "creativity",
    "experiment",
    "programming",
    "review",
    "vim",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-02-16_vision-pro/",
    "source_url": "https://willem.com/nl/2024-02-16_vision-pro/"
   },
   "image": "https://willem.com/global/images/e3c5a6bed765.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3c133f5765e0.webp",
     "description": "Writing this blog post at Mount Hood...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/794e066e15d5.webp",
     "description": "... not! Just our attic full of \"family stuff\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/e315e5abab7f.webp",
     "description": "Apple Vision Pro, like a good set of earphones for your eyes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/6e022db9f2ea.webp",
     "description": "Hello World - a selfie of sorts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/20cf7bbed74f.webp",
     "description": "Bluetooth keyboard and trackpad connected to Vision Pro",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/de973dd40cb5.webp",
     "description": "You're looking at a fully capable computer system here - and a cup of coffee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/1b0236562f2e.webp",
     "description": "Not that crazy: display, keyboard, trackpad (note the hovering piece of UI above the hardware keyboard)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/8d3e17f984d8.webp",
     "description": "You can easily arrange a multi-monitor work setup like this",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/31bad7182ebf.webp",
     "description": "It is hard to capture in a 2D photo, but for your eyes, there is real depth in the setup, like those two screens are really there",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/731070e35388.webp",
     "description": "You can look around them, move closer to them, or rearrange them by dragging them through your room",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/9060b900da67.webp",
     "description": "The projections appear so natural that my mind is really convinced it can touch things.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/46bae72a88f8.webp",
     "description": "These windows represent different views on a particular piece of work - they are big, the tall window in the center is approximately 3 meters high!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/81b870070acb.webp",
     "description": "The 'smallest' window from above is in fact very large; for comparison of scale, I removed the virtual moon surface so you can see the window next to my little daughter's shoes.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/5a4f6973e68e.webp",
     "description": "Again, it is very hard to capture in a 2D photo, but being able to walk around your digital context is simply incredible!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-14.png"
    },
    {
     "url": "https://willem.com/global/images/2c2238114716.webp",
     "description": "These windows are really big, conveying a sense of greatness like a statue of some kind",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-15.png"
    },
    {
     "url": "https://willem.com/global/images/59e46e3dc962.webp",
     "description": "If you're in a virtual environment, the Vision Pro will warn you if you risk walking into something - which can be a real hazard if you're sharing the house with some kids, ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/978ddd83c8cf.webp",
     "description": "Talking about hazards... drinking coffee is a real challenge with Vision Pro - ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36913_images-17.jpg"
    }
   ]
  },
  {
   "id": 36914,
   "slug": "2024-01-16_health-and-fitness-data",
   "url": "https://agents.willem.com/en/posts/2024-01-16_health-and-fitness-data/",
   "source_url": "https://willem.com/en/2024-01-16_health-and-fitness-data/",
   "language": "en",
   "date": "2024-01-16",
   "published": "2024-01-16T00:00:00+01:00",
   "created": "2025-06-26T22:09:18.241000+02:00",
   "updated": "2026-04-03T14:34:40.059000+02:00",
   "title": "Health and fitness data",
   "subtitle": "Is more better?",
   "summary": "Since the start of this new year I am working out harder than the previous months. I have set some goals for myself and have taken on a training scheme incorporating running, cycling and swimming. As I sift through the growing mountain of workout data, I find myself questioning: does having more data truly translate to better fitness outcomes??",
   "topics": [
    "bike",
    "data",
    "health",
    "heart",
    "lifestyle",
    "running",
    "swimming"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2024-01-16_gegevens-over-gezondheid-en-fitness/",
    "source_url": "https://willem.com/nl/2024-01-16_gegevens-over-gezondheid-en-fitness/"
   },
   "image": "https://willem.com/global/images/69fbb6acaab5.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/bf1b92151db9.webp",
     "description": "Me learning to run as captured by CCTV",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36914_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/3b50c735fbfc.webp",
     "description": "Some fancy detailed data - but what does it mean?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36914_images-2.png"
    }
   ]
  },
  {
   "id": 36915,
   "slug": "2023-12-15_backup-rotation-scheme",
   "url": "https://agents.willem.com/en/posts/2023-12-15_backup-rotation-scheme/",
   "source_url": "https://willem.com/en/2023-12-15_backup-rotation-scheme/",
   "language": "en",
   "date": "2023-12-15",
   "published": "2023-12-15T00:00:00+01:00",
   "created": "2025-06-26T22:09:18.387000+02:00",
   "updated": "2026-04-03T14:34:40.280000+02:00",
   "title": "Backup Rotation Scheme",
   "subtitle": "Rotate your backups with 'rsync-backup-rotator'",
   "summary": "In today's digital age, safeguarding your data is paramount. Simply creating a copy of your files may not be enough as they can get corrupted, overwritten or blocked by ransomware. Having multiple, time-rotated (and ideally, offsite) backups is a stronger defense. I created a new tool, rsync-backup-rotator, to help you with this.",
   "topics": [
    "cloud",
    "cyber-security",
    "data",
    "linux",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-12-15_back-uprotatieschema/",
    "source_url": "https://willem.com/nl/2023-12-15_back-uprotatieschema/"
   },
   "image": "https://willem.com/global/images/44de9eab858c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6d3f20d882d7.webp",
     "description": "Rotating backup to enable data recovery from multiple points in time - enabling time traveling for data!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36915_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/4404a897ea44.webp",
     "description": "The 'rsync-backup-rotator' tool v1.0 available as free software under the GPLv3 license",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36915_images-2.png"
    }
   ]
  },
  {
   "id": 36916,
   "slug": "2023-11-10_apple-watch-as-phone",
   "url": "https://agents.willem.com/en/posts/2023-11-10_apple-watch-as-phone/",
   "source_url": "https://willem.com/en/2023-11-10_apple-watch-as-phone/",
   "language": "en",
   "date": "2023-11-10",
   "published": "2023-11-10T00:00:00+01:00",
   "created": "2025-06-26T22:09:18.526000+02:00",
   "updated": "2026-04-03T14:34:40.567000+02:00",
   "title": "Apple Watch as Phone",
   "subtitle": "Replace your smartphone with a smartwatch",
   "summary": "Imagine a week without your smartphone, replaced solely by the sleek simplicity of a smartwatch. This week I did this, leaving my smartphone behind and letting an Apple Watch take the helm. Many hail this as a liberating escape from our attention-seeking digital sidekicks, but does it truly live up to the hype? Join me on this intriguing journey, where technology meets minimalism, and discover whether less really can be more.",
   "topics": [
    "experiment",
    "iPhone",
    "lifestyle",
    "minimal",
    "smartphone",
    "watch",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-11-10_apple-watch-als-telefoon/",
    "source_url": "https://willem.com/nl/2023-11-10_apple-watch-als-telefoon/"
   },
   "image": "https://willem.com/global/images/7aef4c3aa24e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/452c8776d438.webp",
     "description": "Comparing Apple Watch Ultra 2 with a Rolex DateJust 36MM",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c2115bae1ebb.webp",
     "description": "The Apple Watch Ultra is a precision crafted piece of modern technology - whatever you think of smartwatches one has to applaud the effort of miniaturisation that went into this wearable wrist computer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/11ee0e74b75e.webp",
     "description": "Feeling connected... Apple Watch Ultra 2 with Vodafone NL",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/f08ba5fabdd0.webp",
     "description": "Phoneless EDC with an Apple Watch and an AirPod (by Benjamin Clymer, Hodinkee)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/28d360d04130.webp",
     "description": "Designed to offer you a better balance between being connected and being disturbed, the Punkt MP01 mobile phone featured in my experiment using a \"dumb phone\" to foster creativity",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/fed5373512d7.webp",
     "description": "Voice Memo on Apple Watch is surprisingly effective capturing creative ideas - syncing seamlessly with your other devices for reviewing later - wherever you are",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/d3d623908ed5.webp",
     "description": "Guess what's better than two smartwatches? ... none at all!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36916_images-7.jpg"
    }
   ]
  },
  {
   "id": 36917,
   "slug": "2023-11-01_and-there-is-light",
   "url": "https://agents.willem.com/en/posts/2023-11-01_and-there-is-light/",
   "source_url": "https://willem.com/en/2023-11-01_and-there-is-light/",
   "language": "en",
   "date": "2023-11-01",
   "published": "2023-11-01T00:00:00+01:00",
   "created": "2025-06-26T22:09:18.851000+02:00",
   "updated": "2026-04-03T14:34:40.839000+02:00",
   "title": "And... there is light!",
   "subtitle": "Installing dynamo powered lights on my road bike",
   "summary": "The darker days are here in the northern hemisphere, and so is the need for good lights on your bike. Although battery powered lights can do the job, you need to keep them charged. I wanted a light system on my road bike that just works. Read along for some light in the darkness!!",
   "topics": [
    "Durable",
    "Limburg",
    "bike",
    "creating",
    "mobility"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-11-01_en-daar-is-licht/",
    "source_url": "https://willem.com/nl/2023-11-01_en-daar-is-licht/"
   },
   "image": "https://willem.com/global/images/bfa3b367de04.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d6659618e0c5.webp",
     "description": "Welcome to the dark (country) side... where street lights are a rare sight",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f1f2957a71e3.webp",
     "description": "Battery powered Garmin Varia lights - beautiful when they work - but no longer my cup of tea",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/c58528d13a2d.webp",
     "description": "Pictures from the SON factory in Tübingen, Germany - they're serious about doing it the right way",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/dfb7947e2ca2.webp",
     "description": "Van der Schaft tweewielers in Uithoorn",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/6df6b4f7b0ca.webp",
     "description": "Picking up my custom made road wheel in Uithoorn",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/7fe1438b5515.webp",
     "description": "The Supernova M99 DY PRO is a dynamo-operated LED front light with high beam function and German road code approval",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/73b5970e1445.webp",
     "description": "The high beam function becomes available from 20KM/h and allows you to illuminate the road much further ahead (if traffic permits)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/de7766815889.webp",
     "description": "Supernova E3 Tail Light 2",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5664c3d08a10.webp",
     "description": "Testing the dynamo powered lights using some quickly connected loose wires - it works! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/a949cea168b3.webp",
     "description": "Using a tweezer I eventually succeeded in guiding the wire through the tiny holes in my front fork",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/9b7048146285.webp",
     "description": "Use a thin layer of tape to temporarily join the individual leads - making it easier to guide the cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/c332265ab587.webp",
     "description": "The wire to the rear light goes inside a newly drilled hole in my bike frame - leaving just enough cable for my steering wheel to turn",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/7055cbfd8a66.webp",
     "description": "Once the bottom bracket was removed, I was able to see the holes inside the bike frame.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/2595fd299535.webp",
     "description": "If you look carefully, you can see a piece of copper cable inside the hole",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/681a778de11a.webp",
     "description": "Hooray! I pulled it through! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/bfe2ac93489b.webp",
     "description": "Temporarily soldering the actual cables to a copper guiding cable to enable pulling it through the bike frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/b15664144a4d.webp",
     "description": "The tail light mounted to my seat post with its cable going inside the seat post",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/03c162fe268b.webp",
     "description": "Soldering the individual leads together and shrink wrapping them",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/7656b2eecaca.webp",
     "description": "The resulting shrink wrapped connection is both functional and durable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/7bcd4eefe2c3.webp",
     "description": "Both lights working - the result",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/7178959ab906.webp",
     "description": "The head light is fitted on my front brake calliper - to keep my handle bar free for some future bike packing adventures",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/92d4e9b4b638.webp",
     "description": "The beam is amazing - it just works, really well!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/417d2fa23471.webp",
     "description": "Taking the upgrade bike for a spin at former Dutch Air Force base Soesterberg",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36917_images-23.jpg"
    }
   ]
  },
  {
   "id": 36918,
   "slug": "2023-10-14_giving-ai-training",
   "url": "https://agents.willem.com/en/posts/2023-10-14_giving-ai-training/",
   "source_url": "https://willem.com/en/2023-10-14_giving-ai-training/",
   "language": "en",
   "date": "2023-10-14",
   "published": "2023-10-14T00:00:00+02:00",
   "created": "2025-06-26T22:09:19.592000+02:00",
   "updated": "2026-04-03T14:34:41.185000+02:00",
   "title": "Giving AI Training",
   "subtitle": "Teaching folks about the superpowers of GPT",
   "summary": "Yesterday, I had the pleasure of leading a training session on the application of cutting-edge AI techniques, such as OpenAI's large language models (GPT), for a team of individuals from varied backgrounds, education levels, and disciplines. The results surprised me!",
   "topics": [
    "AI",
    "data",
    "office",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-10-14_ai-training/",
    "source_url": "https://willem.com/nl/2023-10-14_ai-training/"
   },
   "image": "https://willem.com/global/images/d44e7c42abc0.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d2b9090d8a35.webp",
     "description": "WHOOP's new integration with OpenAI makes it a personal coach, providing you with tailored advice on training, health and feeling fit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36918_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/00ff3e9402ee.webp",
     "description": "Explore the power of AI together by inviting me for a hands-on training session - I love doing these!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36918_images-2.jpg"
    }
   ]
  },
  {
   "id": 36919,
   "slug": "2023-10-13_hello-stranger",
   "url": "https://agents.willem.com/en/posts/2023-10-13_hello-stranger/",
   "source_url": "https://willem.com/en/2023-10-13_hello-stranger/",
   "language": "en",
   "date": "2023-10-13",
   "published": "2023-10-13T00:00:00+02:00",
   "created": "2025-06-26T22:09:19.798000+02:00",
   "updated": "2025-07-22T12:37:47.965000+02:00",
   "title": "Hello, stranger",
   "subtitle": "Talking to random people",
   "summary": "While enjoying my fresh wok lunch in Amsterdam, I noticed something odd: other folks coming in for something to eat ignored the person standing at the counter, preferring to order through a digital kiosk. The crazy thing about this? They are just centimetres apart!",
   "topics": [
    "Amsterdam",
    "book",
    "laptop",
    "literature",
    "people",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-10-13_hallo-vreemdeling/",
    "source_url": "https://willem.com/nl/2023-10-13_hallo-vreemdeling/"
   },
   "image": "https://willem.com/global/images/f18f4fce4067.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/435657f06239.webp",
     "description": "A laptop free zone in a bar in Amsterdam - I wonder when I will encounter the first smartphone free zone...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36919_images-1.jpg"
    }
   ]
  },
  {
   "id": 36920,
   "slug": "2023-08-23_the-same-differently",
   "url": "https://agents.willem.com/en/posts/2023-08-23_the-same-differently/",
   "source_url": "https://willem.com/en/2023-08-23_the-same-differently/",
   "language": "en",
   "date": "2023-08-23",
   "published": "2023-08-23T00:00:00+02:00",
   "created": "2025-06-26T22:09:19.971000+02:00",
   "updated": "2026-04-03T14:34:41.402000+02:00",
   "title": "The Same, Differently",
   "subtitle": "Where You Are Matters",
   "summary": "It's been over half a year since I moved from the city to the countryside. I regularly travel between these locations for work and leisure. Being a cycling enthusiast, I keep a bike at both places, and this has led me to discover a funny thing.",
   "topics": [
    "Amsterdam",
    "Limburg",
    "bike",
    "nature",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-08-23_hetzelfde-anders/",
    "source_url": "https://willem.com/nl/2023-08-23_hetzelfde-anders/"
   },
   "image": "https://willem.com/global/images/61035c5593b4.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6fa4cc572ca6.webp",
     "description": "Using the Garmin Edge 1030 to navigate and explore - who would have thought that I would encounter an \"Amstel\" near Limburg?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36920_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c49b37977398.webp",
     "description": "Nature in Amsterdam: Ronde Hoep",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36920_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/efe974414a8b.webp",
     "description": "Nature in Limburg: De Peel",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36920_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/efd19da09579.webp",
     "description": "City dwellers are spoilt with their fancy bike lanes—out in the wild, you're in for a muddy ride!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36920_images-4.jpg"
    }
   ]
  },
  {
   "id": 36921,
   "slug": "2023-05-31_impact-of-training",
   "url": "https://agents.willem.com/en/posts/2023-05-31_impact-of-training/",
   "source_url": "https://willem.com/en/2023-05-31_impact-of-training/",
   "language": "en",
   "date": "2023-05-31",
   "published": "2023-05-31T00:00:00+02:00",
   "created": "2025-06-26T22:09:20.332000+02:00",
   "updated": "2026-04-03T14:34:41.641000+02:00",
   "title": "Impact of training",
   "subtitle": "Analysing WHOOP's trend data",
   "summary": "This Monday I completed 235KM on my fixed gear bike during the Fietselfstedentocht 2023. It was a nice ride with fair weather and favourable wind conditions. Yet, I took the challenge seriously and prepared myself with some proper training. In this post I'll have a look at the trend data from my WHOOP in preparation for the Elfstedentocht.",
   "topics": [
    "bike",
    "data",
    "heart",
    "lifestyle",
    "sensors",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-05-31_impact-van-training/",
    "source_url": "https://willem.com/nl/2023-05-31_impact-van-training/"
   },
   "image": "https://willem.com/global/images/3d53d3e2cc4e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/1181d0bcaf43.webp",
     "description": "My HRV measurements going down... as result from lack of training during my family's move from the city to country side",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/adf1087d21df.webp",
     "description": "I have gained weight as I lost fitness: confirming that WHOOP is on to something: there seems to be an inverse correlation between my weight and HRV trends",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/e430be10aa2d.webp",
     "description": "Training opportunistically: working out on a foldable bike during some days from home - you're certainly attracting some attention in full lycra on a Brompton!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ff497fc80057.webp",
     "description": "Training on a non-electric cargo bike! The kids love it! No need for fancy GARMIN head units: WHOOP can track your workouts on any vehicle. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/d8d3937d17cd.webp",
     "description": "Testing positive for COVID, you don't want this when picking up the training regiment...  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/784e1c4fd557.webp",
     "description": "... as a trained cyclist this ride data is not good: heart rate of 180BPM at an average speed of 22KM/h - this is 'the COVID effect' on my body - MISERABLE DELUXE",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/29adc3847b24.webp",
     "description": "Smile and keep on cycling! Eventually things DO get BETTER.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/40c9de1cefc4.webp",
     "description": "Last few months I picked up the pace, taking on more \"strain\" (that is WHOOP-parlance for 'training effort')",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/141e7b4d99fa.webp",
     "description": "Training has its effects: my average HRV is trending upwards again! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-9.png"
    },
    {
     "url": "https://willem.com/global/images/db5b815fabcc.webp",
     "description": "My (early morning) resting heart rate is going down, too! It inversely correlates with my HRV going up. Some nights dip into the low 50's, high 40's - I am getting back into shape!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/9e4e025d111c.webp",
     "description": "Even my average heart rate during the day, including all my tasks as modern dad, is going down as my heart (and cardiovascular system) is regaining efficiency",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-11.png"
    },
    {
     "url": "https://willem.com/global/images/48dc1e3958e6.webp",
     "description": "Through the Frisian country side during the Fietselfstedentocht 2023",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/39f0f951599e.webp",
     "description": "Collecting all stamps to earn a \"Elfstedenkruisje\" medal",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/cb9a48109003.webp",
     "description": "Kevin (brother), me and Rob (brother in law) at the finish!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/c95d8d040476.webp",
     "description": "Garmin's highly detailed data from the Edge 1030 Plus includes: heart rate, power, location, respiratory rate, pedal balance, cadence, temperature and distance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-15.png"
    },
    {
     "url": "https://willem.com/global/images/4f89389630c1.webp",
     "description": "WHOOP's data during the entire day of the Fietselfstedentocht",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-16.png"
    },
    {
     "url": "https://willem.com/global/images/5243b2fa7175.webp",
     "description": "The morning after WHOOP calculates the readiness of my body to take on (new) training strain - you can clearly see my body didn't recover overnight: just a 7% recovery score! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36921_images-17.png"
    }
   ]
  },
  {
   "id": 36922,
   "slug": "2023-05-08_tablet-as-tool",
   "url": "https://agents.willem.com/en/posts/2023-05-08_tablet-as-tool/",
   "source_url": "https://willem.com/en/2023-05-08_tablet-as-tool/",
   "language": "en",
   "date": "2023-05-08",
   "published": "2023-05-08T00:00:00+02:00",
   "created": "2025-06-26T22:09:20.843000+02:00",
   "updated": "2026-04-03T14:34:41.872000+02:00",
   "title": "Tablet as Tool",
   "subtitle": "Appreciating iPad Pro: A Different Perspective",
   "summary": "The iPad Pro's utility has sparked much debate recently. Some users argue it's a disappointment, failing to meet expectations set by traditional laptops. However, there are less obvious benefits to the iPad worth considering. This blog post delves into these advantages and shares insights into the personal experience of using an iPad Pro.",
   "topics": [
    "apple",
    "iPad",
    "laptop",
    "pencil",
    "programming",
    "tablet",
    "vim",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-05-08_tablet-als-gereedschap/",
    "source_url": "https://willem.com/nl/2023-05-08_tablet-als-gereedschap/"
   },
   "image": "https://willem.com/global/images/5ca0bcbdad03.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/115f20806576.webp",
     "description": "Reading in portrait using Safari's \"reader mode\" removes all distractions from (almost) any website",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36922_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/208efacb8a68.webp",
     "description": "Annotating almost anything in-context (without leaving the app) is very powerful if you ever have to communicate an idea or suggestion",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36922_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/848e6b3bdb32.webp",
     "description": "Multiply the touch/swipe muscle memory if your tablet behaves the same as your phone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36922_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/9f1c47d0c305.webp",
     "description": "Programming on iPad Pro using Blink, tmux and VIM over Mosh (in a remote VPS)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36922_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/c062923679f2.webp",
     "description": "Inspect Browser on iPad provides essential debugging and inspection functionalities for web apps",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36922_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/e8488334073c.webp",
     "description": "It's not a hammer, nor a ruler - but you can definitely use iPad as a tool!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36922_images-6.jpg"
    }
   ]
  },
  {
   "id": 36923,
   "slug": "2023-05-03_using-ai-to-generate-code",
   "url": "https://agents.willem.com/en/posts/2023-05-03_using-ai-to-generate-code/",
   "source_url": "https://willem.com/en/2023-05-03_using-ai-to-generate-code/",
   "language": "en",
   "date": "2023-05-03",
   "published": "2023-05-03T00:00:00+02:00",
   "created": "2025-06-26T22:09:21.076000+02:00",
   "updated": "2026-04-03T14:34:42.110000+02:00",
   "title": "Using AI to generate code",
   "subtitle": "Programming with super powers",
   "summary": "As part of my software optimisation efforts to cut cloud costs, I needed to replace an existing piece of inefficient server software with something that uses more robust (yet fragmented) tooling available in Debian GNU/Linux. Could the GPT4 language model deliver me some AI magic? Read along!",
   "topics": [
    "AI",
    "cloud",
    "data",
    "programming",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-05-03_ai-gebruiken-om-code-te-genereren/",
    "source_url": "https://willem.com/nl/2023-05-03_ai-gebruiken-om-code-te-genereren/"
   },
   "image": "https://willem.com/global/images/a12a765046fa.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6054ff996aac.webp",
     "description": "Generating code is as easy as typing in a descriptive prompt ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36923_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/03aeba6c5949.webp",
     "description": "GPT4's generated output code \"auto_rotate.sh\" rotating images using ImageMagick based on EXIF orientation",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36923_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/fba52b536d22.webp",
     "description": "AI's instructions how to use the generated code - most real programmers can learn from its clarity in communication",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36923_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/887c6d5c5349.webp",
     "description": "A programmer from the future - as imagined by DALL-E from OpenAI",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36923_images-4.jpg"
    }
   ]
  },
  {
   "id": 36924,
   "slug": "2023-05-01_working-offline-first",
   "url": "https://agents.willem.com/en/posts/2023-05-01_working-offline-first/",
   "source_url": "https://willem.com/en/2023-05-01_working-offline-first/",
   "language": "en",
   "date": "2023-05-01",
   "published": "2023-05-01T00:00:00+02:00",
   "created": "2025-06-26T22:09:21.210000+02:00",
   "updated": "2026-04-03T14:34:42.338000+02:00",
   "title": "Working Offline First",
   "subtitle": "Learning from a 15-year old ThinkPad X200",
   "summary": "As part of a greater plan to optimise my entire workflow, I am doing a little experiment this month: using a 15-year old ThinkPad X200 laptop as main computer. It’s from an era before “the cloud”, popular among free/libre software enthusiasts. What can we learn from this antithesis of modernity?",
   "topics": [
    "Durable",
    "ThinkPad",
    "cloud",
    "design",
    "experiment",
    "laptop",
    "linux",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-05-01_offline-werken/",
    "source_url": "https://willem.com/nl/2023-05-01_offline-werken/"
   },
   "image": "https://willem.com/global/images/bebacde9fa31.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/2f7652ee0613.webp",
     "description": "The ThinkPad X200 from 2008",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/d0a484d3189c.webp",
     "description": "IBM ThinkPad 700C from 1992 was instantly acknowledged as a big deal for the industry",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/8689bbd6620e.webp",
     "description": "Classic ThinkPad advertisment “Its mother was a mainframe, its father a Maserati”",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/852658db3add.webp",
     "description": "This laptop lid hinge, made from metal, is designed to last - note the keyboard has keys a modern MacBook can only dream off (PageUP/PageDown, Home, End, Delete).",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/8da6c5fd81ac.webp",
     "description": "The ThinkPad’s keyboard is a dream to type on and features a “hate or love it” TrackPoint (I’m in the “love” department!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/703ca50ccbf7.webp",
     "description": "Plenty of hardware ports, including a PC-card slot, integrated gigabit ethernet, USB-A and a hardware switch to disable WiFi",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/3d55939e002f.webp",
     "description": "The modern $6499 costing MacBook Pro is one of the few laptops available that can be configured with 8TB flash storage today...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/04ba0f71d231.webp",
     "description": "... yet, my 15-year old ThinkPad X200 has 8TB SSD storage, too (a Samsung 870 QVO SSD)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/97c45c534ab1.webp",
     "description": "See pixels on a greyish black background - the X200’s display is no match for modern HiDPI micro led or OLED monitors",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/a80c9a69bcc1.webp",
     "description": "Work in progress - my X200 experiment",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36924_images-10.jpg"
    }
   ]
  },
  {
   "id": 36925,
   "slug": "2023-04-20_tips-for-long-distance-cycling",
   "url": "https://agents.willem.com/en/posts/2023-04-20_tips-for-long-distance-cycling/",
   "source_url": "https://willem.com/en/2023-04-20_tips-for-long-distance-cycling/",
   "language": "en",
   "date": "2023-04-20",
   "published": "2023-04-20T00:00:00+02:00",
   "created": "2025-06-26T22:09:21.644000+02:00",
   "updated": "2026-04-03T14:34:42.570000+02:00",
   "title": "Tips for Long-Distance Cycling",
   "subtitle": "Riding 204KM on a fixed gear bike",
   "summary": "In preparation for this year’s Fietselfstedentocht (236KM), I took my bike and set out for an adventurous ride through half of the Netherlands. It was my first long distance ride after being infected with COVID. If you're considering a long-distance ride yourself, be sure to read along to discover invaluable tips and tricks from my experience.",
   "topics": [
    "Amsterdam",
    "Hegelsom",
    "bike",
    "data",
    "health",
    "heart",
    "lifestyle",
    "nature"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-04-20_tips-voor-lange-afstandsfietsen/",
    "source_url": "https://willem.com/nl/2023-04-20_tips-voor-lange-afstandsfietsen/"
   },
   "image": "https://willem.com/global/images/bfed72581735.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/9e3840ce38f3.webp",
     "description": "Last year's Fietselfstedentocht was an epic ride with my brother - a gruesome edition with plenty of storm and rain! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f4c5ddae058d.webp",
     "description": "My completed Fietselfstedentocht 2022 stamp card - note how the edges have been through bad weather... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/d7de40ad82f3.webp",
     "description": "Maasduinen National Park in Limburg",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/c0f6cc5d1683.webp",
     "description": "Follow road signs or use a GPS navigation system - whatever you do, make sure you have some idea where you're going",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/1ba63cc196da.webp",
     "description": "I prepared my bike for a new season of cycling with fresh rubber and headset bearings",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/8d7c932a893f.webp",
     "description": "The day before my departure, I checked my bike thoroughly and even did a little test ride around town",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e5e33079ac6a.webp",
     "description": "Link your bike computer to your phone to be able to receive messages of support from family and friends",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/b42e688740ab.webp",
     "description": "My heart rate during the 10 hour ride from Amsterdam to Hegelsom: note how I kept my heart rate relatively low during the first few hours!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/918e7e99a1ce.webp",
     "description": "Leaving my new hometown of Hegelsom, Limburg",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/35c389e5e2ef.webp",
     "description": "While many cyclists eat while riding, I prefer to stop and enjoy the moment while eating something",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/939e679db681.webp",
     "description": "You're amazed by the things you'll encounter - like the beauty of the Dutch National Park Hoge Veluwe...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/f8f6b79ec8d0.webp",
     "description": "... or by an unexpected road block, deferring you into \"the unknown\" (route)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/f34098469657.webp",
     "description": "Refueling at a tank station",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/e775bf274648.webp",
     "description": "This felt as a fitting place for a little drink stop... Willemsplein in Arnhem! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/290e39b9d95e.webp",
     "description": "Beautiful scenery - long straights on dykes near Flevoland",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/d235eca5f95e.webp",
     "description": "Flowers from Amsterdam... grown in Flevoland!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/41e797762568.webp",
     "description": "At about 80% of the route I really felt my legs and back complain... this bench was a welcome change for my bum on the saddle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/90842261f5cb.webp",
     "description": "Crossing the last bridge into Amsterdam felt like victory.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/30e572072ef8.webp",
     "description": "Hello Amsterdam! Made it all the way!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/90587eae69a3.webp",
     "description": "Look who's WHOOP's #1 of The Netherlands in terms of strain! Euphoria!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/796fe5d75342.webp",
     "description": "The morning after: Make sure to be kind to yourself - after such an intensive effort your body needs time to recover. My WHOOP noticed this clearly, even after getting a good night's rest.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36925_images-21.jpg"
    }
   ]
  },
  {
   "id": 36926,
   "slug": "2023-04-05_cutting-cloud-costs",
   "url": "https://agents.willem.com/en/posts/2023-04-05_cutting-cloud-costs/",
   "source_url": "https://willem.com/en/2023-04-05_cutting-cloud-costs/",
   "language": "en",
   "date": "2023-04-05",
   "published": "2023-04-05T00:00:00+02:00",
   "created": "2025-06-26T22:09:22.664000+02:00",
   "updated": "2026-04-03T14:34:42.830000+02:00",
   "title": "Cutting Cloud Costs",
   "subtitle": "The Significance of Software Optimisation",
   "summary": "Like many, I faced soaring cloud service costs for my clients, prompting a wake-up call. To stay afloat, it's essential to incorporate software optimisation as a strategy for managing cloud expenses. Join me as I share how I managed to save up to 90% on cloud costs through optimisation!",
   "topics": [
    "Amsterdam",
    "cloud",
    "data",
    "linux",
    "networking",
    "server",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-04-05_cloudkosten-verlagen/",
    "source_url": "https://willem.com/nl/2023-04-05_cloudkosten-verlagen/"
   },
   "image": "https://willem.com/global/images/bfc77ac6b4e2.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/666d74824f8d.webp",
     "description": "The cloud consists of computers without displays",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/00337c3ca6cf.webp",
     "description": "Housed in large cabinets occupying entire rooms or buildings",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/cc991dc9663a.webp",
     "description": "In the cloud, increased storage demands at a data centre lead to more hard drives being used, thus consuming more energy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/40ac00e2ec67.webp",
     "description": "Much cloud work is remote, but occasionally, a console display is required for specialised maintenance tasks.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/5979fe5a829f.webp",
     "description": "Hello from the cloud! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/99ff67fb68de.webp",
     "description": "Extracting hardware from the data centre - the epitome of energy-saving wizardry!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e79eab6420dd.webp",
     "description": "A \"cloud cart\", loaded with a decommissioned computer on it, outside the datacenter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/95da32d82f1e.webp",
     "description": "Clouds above the KPN DC2 datacenter in Amsterdam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36926_images-8.jpg"
    }
   ]
  },
  {
   "id": 36927,
   "slug": "2023-02-08_back-to-the-university",
   "url": "https://agents.willem.com/en/posts/2023-02-08_back-to-the-university/",
   "source_url": "https://willem.com/en/2023-02-08_back-to-the-university/",
   "language": "en",
   "date": "2023-02-08",
   "published": "2023-02-08T00:00:00+01:00",
   "created": "2025-06-26T22:09:23.164000+02:00",
   "updated": "2025-07-22T12:49:20.189000+02:00",
   "title": "Back to the University",
   "subtitle": "Diving into Scientific Programming",
   "summary": "This month, I headed back to university for a special course on scientific programming. With numerous recent advancements in machine learning (referred to as \"AI\" in PowerPoint parlance), including ChatGPT, it felt like the ideal moment to delve into Python programming. Join me on this journey.",
   "topics": [],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2023-02-08_terug-naar-de-universiteit/",
    "source_url": "https://willem.com/nl/2023-02-08_terug-naar-de-universiteit/"
   },
   "image": "https://willem.com/global/images/fbdb9435e36f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d7d44f31e43e.webp",
     "description": "C++ example code: Determining the user's age",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/779bab33d53c.webp",
     "description": "Python 3 example code: Determining the user's age",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/8534073ce0ee.webp",
     "description": "The Universiteit van Amsterdam at the Science Park campus - friends of the blog will recognise my bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/9b78d21c6e59.webp",
     "description": "Me taking part in a programming class at the University (class mates blurred for privacy reasons)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/4cabf419ba55.webp",
     "description": "The weekly lab sessions offer a delightful opportunity to stay on track with your coding adventures, ensuring you have a helping hand from others whenever you hit a snag.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/ccb637c740eb.webp",
     "description": "Bang on trend with a bleeding-edge gender-neutral toilet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/a8111c91accb.webp",
     "description": "Toilet wisdom",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36927_images-7.jpg"
    }
   ]
  },
  {
   "id": 36928,
   "slug": "2022-12-22_rolex-datejust-36",
   "url": "https://agents.willem.com/en/posts/2022-12-22_rolex-datejust-36/",
   "source_url": "https://willem.com/en/2022-12-22_rolex-datejust-36/",
   "language": "en",
   "date": "2022-12-22",
   "published": "2022-12-22T00:00:00+01:00",
   "created": "2025-06-26T22:09:23.657000+02:00",
   "updated": "2026-04-03T14:34:43.067000+02:00",
   "title": "Rolex DateJust 36",
   "subtitle": "A crown for every achievement",
   "summary": "The year 2022 has been very special to me, after working very hard to make it possible: me and my family finally made the big move to Limburg. To commemorate this milestone, I got myself a timeless timepiece: the Rolex DateJust 36. Read on to find out what it's like!",
   "topics": [
    "Amsterdam",
    "art",
    "design",
    "lifestyle",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-12-22_rolex-datejust-36/",
    "source_url": "https://willem.com/nl/2022-12-22_rolex-datejust-36/"
   },
   "image": "https://willem.com/global/images/352df9ae5f30.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d61ef1c573be.webp",
     "description": "This year, my coffee mug became my lifeline, as I endured countless all-nighters and intense labor - turning myself into a caffeinated superhero",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/780bc09bf309.webp",
     "description": "Feeling welcome in the Patek Philippe boutique, which resembles an extraordinary candy shop of unparalleled grandeur",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/fd49e1bd0371.webp",
     "description": "Wearing a Patek Philippe Nautilus annual calendar - the Nautilus was originally crafted by the esteemed watch designer Gerald Genta - an icon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/d5a45ae4ab64.webp",
     "description": "Original Rolex DateJust advertisement from the 1960's",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/563b4fb54a07.webp",
     "description": "Today's DateJust 36 (reference model 126234) with fluted bezel and bright blue dial on a jubilee bracelet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/47138c3c4044.webp",
     "description": "Buying a Rolex ain't as easy as putting your old watch on the table and simply asking for a new one - but I did :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/4070152dce0c.webp",
     "description": "Celebrating the year '22 with a Rolex DateJust 36 bought on the 22nd of December (I have a thing for numbers, I guess)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/ba3b2f29699f.webp",
     "description": "The DateJust boasts a bright blue dial, accentuated by a sunburst effect that imbues it with a sense of dynamism",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/ecd1dd9d41f1.webp",
     "description": "Its interaction with light is nothing short of enchanting, as it emanates a lively energy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/412ae466b229.webp",
     "description": "The watch's thickness and overall proportions are spot-on; handling it makes it clear why it's a timeless classic.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/6bdf9d58bf13.webp",
     "description": "It sits comfortably on the wrist and complements virtually any outfit, such as a pair of blue jeans",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/20137a331918.webp",
     "description": "Heirloom pieces: On the left is my late father's watch, which features a bright blue dial (a little hard to see), and on the right is my grandfather's watch of a similar size - I swear I did not set the dates on the watches for the picture, they just happen have stopped at 22 and 12... a nod to my watch from up above?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/2f5dbfa96ff4.webp",
     "description": "Some might say that the DateJust 36 is the ultimate GADA-watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/b6d7b6c6fd54.webp",
     "description": "Constructing LEGO on a rock-hard surface? Fear not, this watch won't go to pieces!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/57f1a3233710.webp",
     "description": "A few brews with your brothers at the office? No problem, this watch is always up for a good time!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/7af2c82d4e1e.webp",
     "description": "Sporting this watch at the casino is a safe bet, just don't expect it to spin you a fortune!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/18c1bcc65802.webp",
     "description": "The DateJust isn't one to throw in the towel when it's time for a bathroom scrub-down!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/58359bd4c2b9.webp",
     "description": "Tough enough, it's the perfect watch to join you on a pedal-powered adventure - making me a happy chap!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36928_images-18.jpg"
    }
   ]
  },
  {
   "id": 36929,
   "slug": "2022-11-01_moving-to-the-countryside",
   "url": "https://agents.willem.com/en/posts/2022-11-01_moving-to-the-countryside/",
   "source_url": "https://willem.com/en/2022-11-01_moving-to-the-countryside/",
   "language": "en",
   "date": "2022-11-01",
   "published": "2022-11-01T00:00:00+01:00",
   "created": "2025-06-26T22:09:24.300000+02:00",
   "updated": "2025-07-22T13:01:35.617000+02:00",
   "title": "Moving to the countryside",
   "subtitle": "Leaving the big city for a small village",
   "summary": "This month marked \"the big move\": relocating my family from Amsterdam to Noord-Limburg's countryside. Motivated by my wife's longing for her roots and our desire for space, the timing felt right. As our oldest child neared four years and primary school, we considered embracing the countryside lifestyle. Would trading Amsterdam's bustle for a new pace be rewarding? Read on!",
   "topics": [
    "Hegelsom",
    "environment",
    "lifestyle",
    "nature"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-11-01_verhuizen-naar-het-platteland/",
    "source_url": "https://willem.com/nl/2022-11-01_verhuizen-naar-het-platteland/"
   },
   "image": "https://willem.com/global/images/2264868d84c7.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/45b0b7a6cb73.webp",
     "description": "Experience the thrill of Amsterdam's vibrant nightlife, all within reach of your bike!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/e28e6b8ef31b.webp",
     "description": "Nearby planes make good subjects for closeup photos, but their continuous noisy presence can be annoying, too",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/05e645ef02e9.webp",
     "description": "Dude, where are my wheels?!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/019d2906fec3.webp",
     "description": "The dirty downside: litter on the streets in Amsterdam at Kingsday",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/65043b74d322.webp",
     "description": "The game-changer: from living for myself to living for my two kids",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/014814f41fd3.webp",
     "description": "The creek \"De Groote Molenbeek\" meanders through forests and countryside, a picturesque sight to behold, a typical scene for this region",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/4b39899c875c.webp",
     "description": "Moving to Limburg: pack your life in a box and hope it doesn't break!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/76d4f8a09479.webp",
     "description": "Making new friends... the rural way!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/7d914e86eb26.webp",
     "description": "Our house in Hegelsom, a small village in the province of Limburg, located in the southeastern part of the Netherlands",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/e809b9a3fb2f.webp",
     "description": "Providing a safe haven (... of sorts) for the kiddos",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/9d4a3f76b6a0.webp",
     "description": "The breathtaking splendor of Mother Nature, just a stone's throw from our new front door",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/9bbc7f2982ae.webp",
     "description": "Wandering the wild on a frosty morn at daybreak",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/56f0d0adc86f.webp",
     "description": "The train station is like a teleporter that beams me right into the city - I'm basically a modern-day Star Trek character",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/65a5b1254412.webp",
     "description": "The 1h45m express ride is my chance to transform into a high-speed businessman, cruising at a decently-fast 140KM/h in my mobile office",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/3b1a98856df9.webp",
     "description": "\"De Limburgers heten u welkom\" - now I am one... or am I? :-) \"Het is een kwestie van geduld\" - resistance is futile! Ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36929_images-15.jpg"
    }
   ]
  },
  {
   "id": 36930,
   "slug": "2022-10-23_muse-in-carre",
   "url": "https://agents.willem.com/en/posts/2022-10-23_muse-in-carre/",
   "source_url": "https://willem.com/en/2022-10-23_muse-in-carre/",
   "language": "en",
   "date": "2022-10-23",
   "published": "2022-10-23T00:00:00+02:00",
   "created": "2025-06-26T22:09:25.181000+02:00",
   "updated": "2025-07-22T13:01:35.747000+02:00",
   "title": "MUSE in Carré",
   "subtitle": "Rock meets elegance",
   "summary": "Last Sunday I experienced a breathtaking fusion of legendary rock band MUSE and Amsterdam's iconic Royal Theatre Carré. The band's electrifying sound in the theatre's sophisticated atmosphere proved to be a recipe for an unforgettable night.",
   "topics": [
    "Amsterdam",
    "music",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-10-23_muse-in-carre/",
    "source_url": "https://willem.com/nl/2022-10-23_muse-in-carre/"
   },
   "image": "https://willem.com/global/images/06bd191cfa4e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/5a6f69ea3b41.webp",
     "description": "MUSE",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/083a60ae0805.webp",
     "description": "Royal Theatre Carré in Amsterdam by night",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/507bee98a59d.webp",
     "description": "The audience gathering inside the classic theatre",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/d6bd2c44ced1.webp",
     "description": "Full house: the theatre has a capacity of just a few thousand",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/43a2d929eb13.webp",
     "description": "Blue lights from the podium perfectly complimenting MUSE's electrifying sound",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/f33dff882d73.webp",
     "description": "Bright flashes illuminate the audience and shedding light on Carré's classic interior",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/97fd1dcedc3d.webp",
     "description": "Bellamy rocking the guitar!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/04d941e65bf2.webp",
     "description": "The audience singing along!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/979457723e20.webp",
     "description": "Matthew Bellamy playing the guitar - you know you're in a small theatre when you can read the text on his shirt / pants",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/a35ddfdcf770.webp",
     "description": "Dancing in Theatre Carré!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/6eb532d7720e.webp",
     "description": "Bassist Chris Wolstenholme",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/c3b19869f06a.webp",
     "description": "A mosh pit in Theatre Carré!! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/6300c66954f0.webp",
     "description": "Modern rock band on a classic podium",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/0016277996c6.webp",
     "description": "You can see the expression on their faces!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/210cf8205414.webp",
     "description": "Lead vocalist Matthew Bellamy singing",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/b3f0370231db.webp",
     "description": "Chris Wolstenholme playing the harmonica for the \"Knights of Cydonia\" finale",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36930_images-16.jpg"
    }
   ]
  },
  {
   "id": 36931,
   "slug": "2022-09-15_the-ultimate-freedom-bike",
   "url": "https://agents.willem.com/en/posts/2022-09-15_the-ultimate-freedom-bike/",
   "source_url": "https://willem.com/en/2022-09-15_the-ultimate-freedom-bike/",
   "language": "en",
   "date": "2022-09-15",
   "published": "2022-09-15T00:00:00+02:00",
   "created": "2025-06-26T22:09:25.972000+02:00",
   "updated": "2026-04-03T14:34:43.284000+02:00",
   "title": "The Ultimate Freedom Bike",
   "subtitle": "Riding the Brompton foldable bike",
   "summary": "Rarely have I been so amazed by a bike: the past 5 months since I've picked up my Brompton foldable bike in Amsterdam have been great fun! About 500KM down the road, I'm happy to share some of my experiences with this ingenious piece of engineering, read on!",
   "topics": [
    "Amsterdam",
    "Durable",
    "Freedom",
    "art",
    "bike",
    "design",
    "mobility",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-09-15_de-ultieme-vrijheidsfiets/",
    "source_url": "https://willem.com/nl/2022-09-15_de-ultieme-vrijheidsfiets/"
   },
   "image": "https://willem.com/global/images/82cb5a7b7e22.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/27a6a91e0280.webp",
     "description": "Andrew Ritchie inventor of the Brompton 3-part foldable bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/78a1e7268536.webp",
     "description": "Early Brompton model",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/2a19e2d7b5b8.webp",
     "description": "The Brompton Junction in the \"Negen Straatjes\" in Amsterdam is missing one bike... guess where that one went? HA!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/f2bd67b2fef9.webp",
     "description": "My modern Brompton foldable bike - note how similar it is to the earlier model",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/34f552cf78e8.webp",
     "description": "Lights are powered using a dynamo - never have to think about batteries!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d98037afab64.webp",
     "description": "The front-carrier block enables easy clicking on and off of bags and frames, and is compatible with all Brompton models",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/7cce2f2032a9.webp",
     "description": "I hope that I won't need it anytime soon; but my bike has a perfectly fitting toolkit inside the foldable bike frame - how clever!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/120b10499c01.webp",
     "description": "My bike has both a 2-speed rear derailleur and a 3-speed internal gear hub, making a total of 6 gears with a very wide range",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/8c980000a1b4.webp",
     "description": "You can tell the Brompton bike design is both refined and matured: things like the super strong reinforced mudgards give you plenty of confidence to simply use the bike - also note the titanium rear frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/0c6afd72eb83.webp",
     "description": "My Brompton foldable bike compared to my Schindelhauer Siegfried Road: two very different machines",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/db752d4c2039.webp",
     "description": "Riding the Brompton foldable bike surprisingly doesn't feel much different from a normal bike: it quickly gives you the confidence needed to go faster (if you wish)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/ea9d196da4a2.webp",
     "description": "Watch the GCN video on YouTube where pro cyclist Andrew Feather compares the Brompton to a super road bike in a hill climb",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/b66c0a439693.webp",
     "description": "Combine your cycling with public transport: reach any station or nearby address with ease",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/48e2ac12cdb5.webp",
     "description": "It's compact and lightweight, easily allowing you to move it around the platform and trains (<10KG)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/a21c97827361.webp",
     "description": "No need to pay extra for the foldable bike in the train: it is considered \"normal luggage\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/d7eb752895f1.webp",
     "description": "The Brompton in our family car: taking up less space than a baby stroller!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/14df7d035531.webp",
     "description": "The bike is small enough to bring with you: it certainly won't look out of place while you enjoy your latte!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/f59eff081687.webp",
     "description": "In my small apartment in Amsterdam I put my Brompton bike on top of the fridge - one might even consider it another piece of art, ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/8eca65e85081.webp",
     "description": "Wherever and whenever you go: the Brompton foldable bike is like a friendly companion ever willing to join you!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36931_images-19.jpg"
    }
   ]
  },
  {
   "id": 36932,
   "slug": "2022-09-11_computer-says-no",
   "url": "https://agents.willem.com/en/posts/2022-09-11_computer-says-no/",
   "source_url": "https://willem.com/en/2022-09-11_computer-says-no/",
   "language": "en",
   "date": "2022-09-11",
   "published": "2022-09-11T00:00:00+02:00",
   "created": "2025-06-26T22:09:26.786000+02:00",
   "updated": "2026-04-03T14:34:43.499000+02:00",
   "title": "Computer says no",
   "subtitle": "How today is ruled by Artificial Intelligence",
   "summary": "This morning I enjoyed my bike ride on a nearly empty bicycle lane, picture perfect rays of sunlight illuminated the dew above the fields around me. Where were all the other cyclists? I suspect it has something to do with popular weather apps. It strikes me how great the control of computers on people's lives already is.",
   "topics": [
    "art",
    "bike",
    "book",
    "data",
    "money",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-09-11_computer-zegt-nee/",
    "source_url": "https://willem.com/nl/2022-09-11_computer-zegt-nee/"
   },
   "image": "https://willem.com/global/images/c4c6ece7daac.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3bb701f68379.webp",
     "description": "Weather Stone - more accurate than your favourite app (image credit Wikipedia)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36932_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f062a73c56f8.webp",
     "description": "A photo of humanoid robot children going to school",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36932_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/03f3d7062e06.webp",
     "description": "A photo of humanoid robots boiling water in a large pan on a white background",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36932_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/a591dfa4b729.webp",
     "description": "A crazy news editor with a type writer reading a news paper on fire",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36932_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/9e681973fa62.webp",
     "description": "Artwork for this blog post was created with DALL-E - the amazing AI system that generates original images",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36932_images-5.png"
    }
   ]
  },
  {
   "id": 36933,
   "slug": "2022-07-30_captcha-alternative",
   "url": "https://agents.willem.com/en/posts/2022-07-30_captcha-alternative/",
   "source_url": "https://willem.com/en/2022-07-30_captcha-alternative/",
   "language": "en",
   "date": "2022-07-30",
   "published": "2022-07-30T00:00:00+02:00",
   "created": "2025-06-26T22:09:27.253000+02:00",
   "updated": "2025-07-22T13:01:36.294000+02:00",
   "title": "CAPTCHA Alternative",
   "subtitle": "Protect your forms in a user friendly way",
   "summary": "Chances are that you've encountered a CAPTCHA in the wild: they protect web forms by asking you to type over weirdly rendered characters or by asking you to select photos containing a particular thing. Why are they used and is there a user friendly alternative?",
   "topics": [
    "cloud",
    "cyber-security",
    "hacking",
    "people",
    "server",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-07-30_captcha-alternatief/",
    "source_url": "https://willem.com/nl/2022-07-30_captcha-alternatief/"
   },
   "image": "https://willem.com/global/images/060e6a06fe91.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/a95bd60124e8.webp",
     "description": "Typical CAPTCHA's you may encounter on the web (image credit: Wikipedia and Google)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36933_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/062f9ea6ddbf.webp",
     "description": "A typical web form: server processes information from a person, forwarding it to other people, like yourself. Malicious actors can easily fake the sending person, enabling automated abuse of your processing server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36933_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/53152b30a5b4.webp",
     "description": "By introducing a unique, use-only-once, token for each message it becomes much harder for malicious actors to automate the process of sending messages - protecting your form against spammers",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36933_images-3.jpg"
    }
   ]
  },
  {
   "id": 36934,
   "slug": "2022-07-17_offline-music",
   "url": "https://agents.willem.com/en/posts/2022-07-17_offline-music/",
   "source_url": "https://willem.com/en/2022-07-17_offline-music/",
   "language": "en",
   "date": "2022-07-17",
   "published": "2022-07-17T00:00:00+02:00",
   "created": "2025-06-26T22:09:27.425000+02:00",
   "updated": "2026-04-03T14:34:43.716000+02:00",
   "title": "Offline Music",
   "subtitle": "Streaming Music Alternative",
   "summary": "Music has the universal power to move people. Different rhythms, emotions and vocals enable us to enjoy music very personally. Music is very close to my heart and I don't like anything to get in between. Therefore I don't rely on streaming music services, but manage my own offline music library.",
   "topics": [
    "Freedom",
    "MacBook",
    "apple",
    "howto",
    "lifestyle",
    "music"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-07-17_offline-muziek/",
    "source_url": "https://willem.com/nl/2022-07-17_offline-muziek/"
   },
   "image": "https://willem.com/global/images/36e87392fbb0.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/b143eee6b578.webp",
     "description": "Original iPod ad: Say hello to iPod. 1000 songs in your pocket",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36934_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/6099f6099ad9.webp",
     "description": "Original iPod ad from 2005 - advertising pure emotion, not any technical specification",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36934_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/dbbea05b99d0.webp",
     "description": "Digitising CD's using iTunes running on an old MacBook Air",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36934_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/0265a4c5db8f.webp",
     "description": "Astell&Kern Ultima SP2000 - it connects to headphones, stereo systems and it can even stream wirelessly using Bluetooth APT(X)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36934_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/ee0b9c2aa347.webp",
     "description": "My private concert hall: Shure SE846 earphones on the DreamDuet crystal cable, no need for active noise reduction as these earphones isolate perfectly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36934_images-5.jpg"
    }
   ]
  },
  {
   "id": 36935,
   "slug": "2022-04-18_snake-97-high-scores",
   "url": "https://agents.willem.com/en/posts/2022-04-18_snake-97-high-scores/",
   "source_url": "https://willem.com/en/2022-04-18_snake-97-high-scores/",
   "language": "en",
   "date": "2022-04-18",
   "published": "2022-04-18T00:00:00+02:00",
   "created": "2025-06-26T22:09:27.668000+02:00",
   "updated": "2026-04-03T14:34:43.923000+02:00",
   "title": "Snake '97 High Scores",
   "subtitle": "Game inspired art by Zena Van den Block",
   "summary": "Last week I received a very kind invitation from a Belgian artist, to attend her art exhibition in Antwerp. The work on display involved the Snake '97 game that I have created. Uttering to find the right words and thrilled with excitement, I happily accepted the invitation!",
   "topics": [
    "art",
    "creating",
    "game",
    "people",
    "retro",
    "snake",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-04-18_snake-97-highscores/",
    "source_url": "https://willem.com/nl/2022-04-18_snake-97-highscores/"
   },
   "image": "https://willem.com/global/images/d53233ab69bb.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ead2fd53cae7.webp",
     "description": "Snake '97 - your dosis of retro game nostalgia ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/3fd210797619.webp",
     "description": "Work from Zena Van den Block (source zenavandenblock.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/0eb1e4ab051c.webp",
     "description": "Snake art works in SECONDroom Antwerp: \"High Scores\" by Zena Van den Block",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/b71d3e7bd7fb.webp",
     "description": "The art works glow in the dark",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/107dfd912670.webp",
     "description": "Meeting Zena Van den Block: the intimate character of SECONDroom offers plenty of room to connect",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/cd7e20bbdb90.webp",
     "description": "Game graphics elevated to genuine art works",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/75d5e0fdfce5.webp",
     "description": "Amazing detail: green dot-matrix canvas, manual brush strokes and a glossy plastic like surface ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/d6a3bdaa5b45.webp",
     "description": "Look ma: me standing next to Snake art! WOW!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36935_images-8.jpg"
    }
   ]
  },
  {
   "id": 36936,
   "slug": "2022-01-14_wearing-whoop-4-0",
   "url": "https://agents.willem.com/en/posts/2022-01-14_wearing-whoop-4-0/",
   "source_url": "https://willem.com/en/2022-01-14_wearing-whoop-4-0/",
   "language": "en",
   "date": "2022-01-14",
   "published": "2022-01-14T00:00:00+01:00",
   "created": "2025-06-26T22:09:27.988000+02:00",
   "updated": "2026-04-03T14:34:44.151000+02:00",
   "title": "Wearing WHOOP 4.0",
   "subtitle": "Why you should wear a biometric sensor",
   "summary": "How often do you look in the mirror? Probably more than a few times a week! I have been thinking about this ever since I received my newest WHOOP 4.0 biometric sensor. It's great. But, why do I wear it? What value does it provide? Why should you wear it?",
   "topics": [
    "data",
    "health",
    "heart",
    "review",
    "sensors",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2022-01-14_whoop-4-0-dragen/",
    "source_url": "https://willem.com/nl/2022-01-14_whoop-4-0-dragen/"
   },
   "image": "https://willem.com/global/images/7e7ce93ee66d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/06db9f1b2e02.webp",
     "description": "Designed to be worn 24/7, the WHOOP strap collects biometric data over a longitudinal period of time - providing you with personalised insights in your health and fitness",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/50e3638c0e83.webp",
     "description": "WHOOP 4.0 is smaller than its predecessor - packs more sensor technology - allows for easy charging while wearing it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/c8d9e089c57b.webp",
     "description": "The WHOOP sensor is small - smaller than many regular watches",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/53dd72074c24.webp",
     "description": "WHOOP offers you various ways to wear it - I like to wear mine on the bicep using a larger strap - and alternate between my two arms every few days",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/ef8a5e8d4ee0.webp",
     "description": "Worn on the bicep, WHOOP easily hides under your clothing - indicated with blue arrows - keeping your wrists free for mechanical watches",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/17eb98bbd260.webp",
     "description": "My daughter was born on Tuesday, July 13 - the data clearly shows the impact on my body and its gradual adjustment to this new fatherhood",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/ad82c6501d16.webp",
     "description": "Unlike other \"smart\" wearables, WHOOP won't remind you to breathe or reward you for standing up and walking to the coffee machine - it's a serious device for people that can think for themselves",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/2a8588bb5cdc.webp",
     "description": "Better choices, better health, more fun! (even when it's freezing!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36936_images-8.jpg"
    }
   ]
  },
  {
   "id": 36937,
   "slug": "2021-12-09_for-the-love-of-mini",
   "url": "https://agents.willem.com/en/posts/2021-12-09_for-the-love-of-mini/",
   "source_url": "https://willem.com/en/2021-12-09_for-the-love-of-mini/",
   "language": "en",
   "date": "2021-12-09",
   "published": "2021-12-09T00:00:00+01:00",
   "created": "2025-06-26T22:09:28.389000+02:00",
   "updated": "2026-04-03T14:28:05.851000+02:00",
   "title": "For the love of mini",
   "subtitle": "The unexpected greatness of iPhone Mini",
   "summary": "People regulary ask me why I have a small smartphone, a modern iPhone 13 Mini. Often I simply reply that I like it. The smaller size offers more than just an easier fit in your pocket. I have come to appreciate its intangible greatness, read along for the love of mini!",
   "topics": [
    "iOS",
    "iPhone",
    "lifestyle",
    "minimal",
    "review",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-12-09_uit-liefde-voor-mini/",
    "source_url": "https://willem.com/nl/2021-12-09_uit-liefde-voor-mini/"
   },
   "image": "https://willem.com/global/images/61b56b392ea4.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/662a5182d4cf.webp",
     "description": "iPhone Mini - fits in one hand",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/ca15100fdd9f.webp",
     "description": "Mobile phones have been around in many different shapes and sizes, top left to right bottom: original iPhone, Motorola DYNA T-A-C, Sony CMD-Z5",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/d5c3ad97159e.webp",
     "description": "Larger, bigger, shinier, more powerful... Phones have grown - they're even called \"Pro\" now!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/3c2bd305675f.webp",
     "description": "... \"Pro Max\" will cost you up to € 1839, without the recommended € 229 AppleCare insurance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/e219888d5bbc.webp",
     "description": "Generations of small screen iPhones: iPhone 4S, iPhone SE, iPhone 12 Mini, iPhone 13 Mini",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/84f54ac01d74.webp",
     "description": "iOS maximises small screen usage: compare the commonly sized Volla Phone (left) with the iPhone Mini (center) - and a commonly sized card (right) for reference",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/2946b6ee942a.webp",
     "description": "My everyday carry: iPhone Mini, an analogue watch and keys",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36937_images-7.jpg"
    }
   ]
  },
  {
   "id": 36938,
   "slug": "2021-11-19_escaping-the-flat-tires",
   "url": "https://agents.willem.com/en/posts/2021-11-19_escaping-the-flat-tires/",
   "source_url": "https://willem.com/en/2021-11-19_escaping-the-flat-tires/",
   "language": "en",
   "date": "2021-11-19",
   "published": "2021-11-19T00:00:00+01:00",
   "created": "2025-06-26T22:09:28.917000+02:00",
   "updated": "2025-07-22T13:16:05.925000+02:00",
   "title": "Escaping the flat tires",
   "subtitle": "Are puncture-proof tires really puncture proof?",
   "summary": "You might wonder how puncture proof a \"puncture-proof\" bicycle tire really is. I set out to find the answer when I installed Schwalbe Durano Plus tires on my bike. It was inevitable for me to find the answer to the question: How many kilometers can you ride without flats using puncture-proof tires?",
   "topics": [
    "bike",
    "experiment",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-11-19_ontsnappen-aan-de-lekke-banden/",
    "source_url": "https://willem.com/nl/2021-11-19_ontsnappen-aan-de-lekke-banden/"
   },
   "image": "https://willem.com/global/images/4c5609227b7e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d3eb859d6351.webp",
     "description": "In search of answers: how many kilometers can you ride without flats? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36938_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/1d94e88f064d.webp",
     "description": "After 4200KM the Schwalbe Durano Plus puncture-proof tire failed ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36938_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/7205bb32ddec.webp",
     "description": "Fresh Schwalbe Durano Plus with \"Smartguard dual compound\" - these are very resilient tires!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36938_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/43717fbbd0ea.webp",
     "description": "Less flats, more cycling!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36938_images-4.jpg"
    }
   ]
  },
  {
   "id": 36939,
   "slug": "2021-10-25_using-google-free-android",
   "url": "https://agents.willem.com/en/posts/2021-10-25_using-google-free-android/",
   "source_url": "https://willem.com/en/2021-10-25_using-google-free-android/",
   "language": "en",
   "date": "2021-10-25",
   "published": "2021-10-25T00:00:00+02:00",
   "created": "2025-06-26T22:09:29.277000+02:00",
   "updated": "2026-04-03T14:31:08.914000+02:00",
   "title": "Using Google Free Android",
   "subtitle": "Volla Phone as alternative to mainstream Android and iOS",
   "summary": "Nearly all folks I know use iOS or Android from a mainstream smartphone brand, yet alternatives still exist! The German Volla Phone prides itself to be a worthy option for those who value privacy and freedom. I bought one to experience it firsthand, read along for my thoughts!",
   "topics": [
    "Freedom",
    "android",
    "cloud",
    "cyber-security",
    "design",
    "minimal",
    "review",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-10-25_google-free-android-gebruiken/",
    "source_url": "https://willem.com/nl/2021-10-25_google-free-android-gebruiken/"
   },
   "image": "https://willem.com/global/images/235121dbf48a.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/fdb743ce7d60.webp",
     "description": "Volla Phone - Viel vergnügen (loosely translated as \"enjoy!\")",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c579f7830dd5.webp",
     "description": "Volla Phone and Volla Phone X",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/784b2b7d223a.webp",
     "description": "Who has a smartphone these days that says \"Made in Germany\"?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/19d9429b59d2.webp",
     "description": "Volla Phone comes with a charger, USB-C cable and a transparent case",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/1d2711a2aebe.webp",
     "description": "Its main camera shoots nice photos, especially when light conditions are fair",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/b5f1eda338b6.webp",
     "description": "The selfie cam gets things done - but lacks certain detail - which may or may not be a problem for you",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/723ef9a7585f.webp",
     "description": "No complaints in the battery department either - measuring remaining time in... days!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/f133f8ce544b.webp",
     "description": "Volla's features oriented towards privacy and freedom ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5649367904ce.webp",
     "description": "Volla OS features a Springboard and a centralised way to access your contacts - an interesting idea yet it lacks refinement (the typos in this screenshot taken from the official Volla website are illustrative to this)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/b4ab0945c94c.webp",
     "description": "My Volla phone runs an alternative, minimalistic launcher, aptly called the \"unlauncher\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/b9ab4cee6430.webp",
     "description": "The \"unlauncher\" in action on my Volla phone - offering a minimalistic alternative to the stock Volla experience",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/bd16ca027bfc.webp",
     "description": "Browsing the web using Fennec, a browser based on Firefox available in the F-Droid app store - this works well!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/ed53da2901c6.webp",
     "description": "Syncing my photos to my NAS using Syncopoly, a rsync client for Android",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/5e9fd40f0258.webp",
     "description": "microG on my Volla phone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36939_images-14.jpg"
    }
   ]
  },
  {
   "id": 36940,
   "slug": "2021-09-30_inspiration-from-a-child",
   "url": "https://agents.willem.com/en/posts/2021-09-30_inspiration-from-a-child/",
   "source_url": "https://willem.com/en/2021-09-30_inspiration-from-a-child/",
   "language": "en",
   "date": "2021-09-30",
   "published": "2021-09-30T00:00:00+02:00",
   "created": "2025-06-26T22:09:29.754000+02:00",
   "updated": "2025-07-22T13:16:06.190000+02:00",
   "title": "Inspiration from a child",
   "subtitle": "Experience the world like a kid",
   "summary": "Together with my kids I love to explore the world that we think we know as adults. A kid's perspective inspires and surprises! No need to travel half the world for an adventure: Fly planes, catch bad guys, solve problems, build and break stuff - (re)discover the adventure right at your doorstep!",
   "topics": [
    "creativity",
    "daddy",
    "lifestyle",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-09-30_inspiratie-van-een-kind/",
    "source_url": "https://willem.com/nl/2021-09-30_inspiratie-van-een-kind/"
   },
   "image": "https://willem.com/global/images/95e3b4c0437c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/801a19469386.webp",
     "description": "This plane flies everywhere - yet it never leaves the ground (at Schiphol Airport Amsterdam)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/64f26550b16d.webp",
     "description": "Young pilots at the helm take you to places one can only dream of! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/57a7c68d93a3.webp",
     "description": "Go offroad instead of taking the beaten path - mud in the local park adds to the adventure!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/fc5be1ba1165.webp",
     "description": "Stuck in mud offers an opportunity for the teambuilding effort to loose the jeep/spaceship/rocket - only adults see a cargo bike, ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/820fb2bd6eff.webp",
     "description": "Look a little longer - do you see the bottom of this mighty river? Do you see the bubbles... making you wonder what hides underwater?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/0e7d0a5363f8.webp",
     "description": "Amaze yourself with a kid's answer to questions like: \"How do we solve this challenge, mate?\" instead of presenting a \"wise\" adult solution.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/407a6ded9a21.webp",
     "description": "Bonus points for looking badass at the local kindergarten's parking lot!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/96cee535f612.webp",
     "description": "Parent, Gorilla and Kid: who's watching who? Learn about nature by seeing, hearing and smelling the animals - a zoo offers so much more than mere entertainment with the right narrative.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5d0c3bf637a0.webp",
     "description": "Compare the zoo to the \"wildlife\" you'll encounter in the city's metro. Find answers for questions like \"Why do you wear sunglasses (in darkness)?\", \"Where are you going?\", \"What's in the bag?\" ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/ab2bd8cecdee.webp",
     "description": "While parents often emphasise on building things, destroying structures can be big fun! Past creations and achievements should not hold you back - destroy them and play on!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/07a4ebcc5d93.webp",
     "description": "Discover the Lego world together and learn about our own implicit assumptions - about good, bad, wrong and right.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/e64f4b243674.webp",
     "description": "Do you see a crook with a diamond or a nice chap with a striped shirt eating a blue ice cream? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/2840bb7c0d23.webp",
     "description": "Share the victorious feeling when you solve a puzzle together!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/eb6adf9aaa6e.webp",
     "description": "Seeing kids discover your app or game learns you a great deal about how intuitive it is. Does it require you to read? Does it require a mouse? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/a376552fba67.webp",
     "description": "Why not take the John Deere to explore the world?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/bb30be2de5f2.webp",
     "description": "Go down the slope after climbing a \"mountain\"!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/565cf65f75d3.webp",
     "description": "Only brave men take the tree top tour... \"Will daddy follow along?\" YES, you bet!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/a0538d4c9903.webp",
     "description": "Mysterious markings on the slope - what do they mean?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/d415022db9dc.webp",
     "description": "Combining water and sand offers a fascinating way to learn about the powers of the sea",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/5b38500388c5.webp",
     "description": "My kid's response to me explaining that if you dig deep enough, you'll reach the other side of the world - where people, relative to us, walk upside down",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/e09323f13a60.webp",
     "description": "Does your kid trust you enough to know that you'll catch him? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/0c0166224f87.webp",
     "description": "Going through tight tunnels will make you feel like Mario! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/dafc7c7e1261.webp",
     "description": "When was the last time you where trapped in a red plastic box? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/a1ac1d981a75.webp",
     "description": "Going down together! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/b47fd5e7e4e4.webp",
     "description": "At the end of the day you'll feel exhausted beyond measure - but in a very rewarding fashion!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36940_images-25.jpg"
    }
   ]
  },
  {
   "id": 36941,
   "slug": "2021-08-31_protecting-vmware-esxi",
   "url": "https://agents.willem.com/en/posts/2021-08-31_protecting-vmware-esxi/",
   "source_url": "https://willem.com/en/2021-08-31_protecting-vmware-esxi/",
   "language": "en",
   "date": "2021-08-31",
   "published": "2021-08-31T00:00:00+02:00",
   "created": "2025-06-26T22:09:31.532000+02:00",
   "updated": "2026-04-03T14:34:44.371000+02:00",
   "title": "Protecting VMware ESXi",
   "subtitle": "Improve security using a firewall and proxy server",
   "summary": "In response to an incident on a server, I detected a possible security breach. The affected machine ran VMware ESXi, a bare metal hypervisor used to run virtual private servers. In standalone mode, a web based management console offers full control over the infrastructure, posing a risk.",
   "topics": [
    "cloud",
    "cyber-security",
    "linux",
    "networking",
    "server",
    "web"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-08-31_vmware-esxi-beveiligen/",
    "source_url": "https://willem.com/nl/2021-08-31_vmware-esxi-beveiligen/"
   },
   "image": "https://willem.com/global/images/4275f82f096d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/15606d128603.webp",
     "description": "VMware ESXi is a bare metal hypervisor that divides one physical server into multiple virtual servers",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36941_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/dae8ec43ceca.webp",
     "description": "VMware ESXi web interface - inviting you and others to manage this physical machine",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36941_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/936addf5c1b8.webp",
     "description": "Finding exposed VMware ESXi web interfaces requires nothing but some Google skills",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36941_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/48c92af16a45.webp",
     "description": "Pre-authenticate traffic to the administrative console through a small and simple Debian GNU/Linux server with nginx proxy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36941_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/bb1ad8e30b8e.webp",
     "description": "Two proxy servers providing secure access to multiple VMware hosts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36941_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/b43f9ed92c73.webp",
     "description": "nginx configuration to authenticate and forward traffic to a VMware administrative console",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36941_images-6.png"
    }
   ]
  },
  {
   "id": 36942,
   "slug": "2021-07-13_the-birth-of-a-child",
   "url": "https://agents.willem.com/en/posts/2021-07-13_the-birth-of-a-child/",
   "source_url": "https://willem.com/en/2021-07-13_the-birth-of-a-child/",
   "language": "en",
   "date": "2021-07-13",
   "published": "2021-07-13T00:00:00+02:00",
   "created": "2025-06-26T22:09:31.776000+02:00",
   "updated": "2026-04-03T14:34:44.589000+02:00",
   "title": "The birth of a child",
   "subtitle": "Impact on daddy and his biometrics",
   "summary": "Today I witnessed the birth of my daughter! You feel humble as a man, witnessing the labour and magic. Not sure if I can come up with something having more impact on a man than this. For the purposes of science and curiosity I wore a biometric sensor, and this is what it recorded.",
   "topics": [
    "daddy",
    "data",
    "health",
    "sensors"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-07-13_de-geboorte-van-een-kind/",
    "source_url": "https://willem.com/nl/2021-07-13_de-geboorte-van-een-kind/"
   },
   "image": "https://willem.com/global/images/bf44258acf4c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/8facdb7ed07c.webp",
     "description": "One of the advantages of a planned cesarean section is that you know when the action will begin - giving you plenty of time to drive to the hospital",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/8b1904d8ca12.webp",
     "description": "Yours truly dressed up and ready - it's an incredible privilege to be able to witness the surgery as a man - big, big thanks to the hospital staff!!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b24699a9b03.webp",
     "description": "Less then one hour later you're a dad - WOW, hello you!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/400cf13561c9.webp",
     "description": "Luckily my experience from our first child came in handy! Like knowing how to ride a bike, you'll never forget how to change diapers! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/cb860628a6f7.webp",
     "description": "Hours later, when the adrenaline tunes down, you'll start to feel the impact (and have plenty of smudges on your shirt to prove it, ha!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/f3bf1ddb2bd6.webp",
     "description": "Heart rate data during the day - my average rate increases during the day as I am increasingly exhausted - a spike in heart rate is clearly visible around the time I first saw my daughter - amazing",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/12aa501a4a23.webp",
     "description": "My daughter was born on Tuesday, July 13 - the data clearly shows the impact on my body and its gradual adjustment to this new fatherhood ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/fb653aa5a91d.webp",
     "description": "Respiratory rate data showing me falling ill, about one week after the birth of my daughter at July 20th. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/a4ec776cfcde.webp",
     "description": "Fever time - 38 degrees Celsius is way above my normal",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/508b470d9471.webp",
     "description": "Returning home recovered and feeling well, time for celebration: \"Hoera een meisje\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/12a53180edb3.webp",
     "description": "One happy daddy - two amazing kids - multiplayer!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36942_images-11.jpg"
    }
   ]
  },
  {
   "id": 36943,
   "slug": "2021-06-30_migrating-to-the-cloud",
   "url": "https://agents.willem.com/en/posts/2021-06-30_migrating-to-the-cloud/",
   "source_url": "https://willem.com/en/2021-06-30_migrating-to-the-cloud/",
   "language": "en",
   "date": "2021-06-30",
   "published": "2021-06-30T00:00:00+02:00",
   "created": "2025-06-26T22:09:32.667000+02:00",
   "updated": "2025-07-22T13:16:06.589000+02:00",
   "title": "Migrating to the Cloud",
   "subtitle": "Clearing an on-premise server room",
   "summary": "For a Dutch organisation that serves customers throughout Europe, I was asked to help dismantle a live server room. Instead of simply pulling the plugs, some of the services had to be migrated to the cloud. For fun and inspiration I share three different strategies to do so.",
   "topics": [
    "Windows",
    "cloud",
    "data",
    "linux",
    "office",
    "server"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-06-30_migreren-naar-de-cloud/",
    "source_url": "https://willem.com/nl/2021-06-30_migreren-naar-de-cloud/"
   },
   "image": "https://willem.com/global/images/9e69b46ef7e1.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d18a67696a49.webp",
     "description": "Typical on-premise server room situation: lots of intertwined wires",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36943_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/5da90ab917b9.webp",
     "description": "Determining \"what is what?\" involves opening doors, following cables, checking lights and listing machine names",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36943_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ecba482dcfde.webp",
     "description": "Never underestimate the bandwidth of a Dacia Duster: moving millions of database records to the data centre",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36943_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/de0136a34d63.webp",
     "description": "Migrating a Microsoft Hyper-V VPS to VMware ESXi using VMware vCentre Converter ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36943_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/475e0d38c841.webp",
     "description": "Overseeing VPS migration during nigthly hours - well past normal business hours to reduce downtime",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36943_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/97c2bf574aee.webp",
     "description": "Connecting to the migrated servers through the cloud - and having a nice lunch, too!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36943_images-6.jpg"
    }
   ]
  },
  {
   "id": 36944,
   "slug": "2021-06-05_wearing-grand-seiko",
   "url": "https://agents.willem.com/en/posts/2021-06-05_wearing-grand-seiko/",
   "source_url": "https://willem.com/en/2021-06-05_wearing-grand-seiko/",
   "language": "en",
   "date": "2021-06-05",
   "published": "2021-06-05T00:00:00+02:00",
   "created": "2025-06-26T22:09:33.139000+02:00",
   "updated": "2026-04-03T14:34:44.858000+02:00",
   "title": "Wearing Grand Seiko",
   "subtitle": "On craftsmanship, innovation and practicality",
   "summary": "Sadness could be seen in my eyes when my custom made watch got damaged earlier this month, while awaiting repairs I was fortunate to wear a Grand Seiko. Its unique mix of craftsmanship, innovation and practicality is worth sharing with you.",
   "topics": [
    "design",
    "review",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-06-05_het-dragen-van-een-grand-seiko/",
    "source_url": "https://willem.com/nl/2021-06-05_het-dragen-van-een-grand-seiko/"
   },
   "image": "https://willem.com/global/images/a8a13a5ad7d3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/fc4aee4696a2.webp",
     "description": "Grand Seiko SBGA285 Spring Drive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/3ffea520a99a.webp",
     "description": "The depth of the dial and its markers are hard to capture in a photo",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/fb78dbbf54f1.webp",
     "description": "The Zaratsu polishing reflects light like fireworks, surrounding the matte black dial which maintains a classy state of calm",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/47c31b212a47.webp",
     "description": "Sharp, bevelled hands indicate time with the sharpness of a Samurai’s Sword",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/8ec31c33a981.webp",
     "description": "Yet it blends in like a true chameleon - tuning down the fireworks and Samurais - ideal when you try to read a book",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1f3de4c71300.webp",
     "description": "Sandy beaches and plastic watering cans pose no problem for the stainless steel case",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/b9b37a6d7143.webp",
     "description": "Neither do yellow creatures in the kid’s corner  scare the watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/c005e6a71137.webp",
     "description": "It works well whenever you're doing some gardening",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/7c4b743c0fbe.webp",
     "description": "It works when you work, too.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/e84700609bfc.webp",
     "description": "And it happily accompanies you - wherever your duties as daddy / person / man / hero will take you...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36944_images-10.jpg"
    }
   ]
  },
  {
   "id": 36945,
   "slug": "2021-05-31_using-the-remarkable-paper-tablet",
   "url": "https://agents.willem.com/en/posts/2021-05-31_using-the-remarkable-paper-tablet/",
   "source_url": "https://willem.com/en/2021-05-31_using-the-remarkable-paper-tablet/",
   "language": "en",
   "date": "2021-05-31",
   "published": "2021-05-31T00:00:00+02:00",
   "created": "2025-06-26T22:09:33.511000+02:00",
   "updated": "2025-07-22T13:16:06.849000+02:00",
   "title": "Using the reMarkable paper tablet",
   "subtitle": "Read, write, think and repeat",
   "summary": "This month I received my reMarkable paper tablet and ever since I have been using it extensively: reading, writing and thinking. The paper-like display makes you forget about its digital innards. Read along for my thoughts.",
   "topics": [
    "creating",
    "creativity",
    "literature",
    "pencil",
    "review",
    "tablet",
    "work",
    "writing"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-05-31_het-gebruik-van-de-remarkable-paper-tablet/",
    "source_url": "https://willem.com/nl/2021-05-31_het-gebruik-van-de-remarkable-paper-tablet/"
   },
   "image": "https://willem.com/global/images/f02cde5cb904.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ebb3c5ee0176.webp",
     "description": "reMarkable's party trick: better paper, better thinking",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/2ae339e0eda0.webp",
     "description": "The reMarkable's display: very much like a piece of paper in colour and texture",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/f568feb3a4d1.webp",
     "description": "Thin and lightweight",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/68b542e7ebdb.webp",
     "description": "Like reading a real printed book",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/bce720541916.webp",
     "description": "No clutter, just content.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/68a4b1ba6907.webp",
     "description": "Working with reMarkable - using it in tandem with iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/dab6444cbf81.webp",
     "description": "Working on an idea - sketching on reMarkable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b1033f33a6c.webp",
     "description": "Digital copy (PDF) from the idea that I sketched",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/b06ba88acfc9.webp",
     "description": "Annotating digital documents directly - no need to print and scan",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36945_images-9.jpg"
    }
   ]
  },
  {
   "id": 36946,
   "slug": "2021-05-04_hospitalised-with-mcadd",
   "url": "https://agents.willem.com/en/posts/2021-05-04_hospitalised-with-mcadd/",
   "source_url": "https://willem.com/en/2021-05-04_hospitalised-with-mcadd/",
   "language": "en",
   "date": "2021-05-04",
   "published": "2021-05-04T00:00:00+02:00",
   "created": "2025-06-26T22:09:33.898000+02:00",
   "updated": "2025-07-22T13:16:06.958000+02:00",
   "title": "Hospitalised with MCADD",
   "subtitle": "Averting a metabolic crisis by infusion",
   "summary": "This week we experienced the first time that our son was hospitalised since he was diagnosed with MCADD, a metabolic condition that limits his body's ability to utilise fats for energy. Do you or your kid have MCADD? Then, read along and don't worry, as everything will be allright!",
   "topics": [
    "Amsterdam",
    "daddy",
    "mcadd"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-05-04_opgenomen-in-het-ziekenhuis-met-mcadd/",
    "source_url": "https://willem.com/nl/2021-05-04_opgenomen-in-het-ziekenhuis-met-mcadd/"
   },
   "image": "https://willem.com/global/images/6016559fffe8.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ac475e788401.webp",
     "description": "Ella's Kitchen fruit pouches are a perfect way to offer something sugary - we always have a few in stock for MCADD emergencies",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36946_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/e0ad427f25ed.webp",
     "description": "Magic potion from the local academic hospital (UMC Amsterdam)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36946_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/37ccecf8cff4.webp",
     "description": "Bring your bunny rabbit when you're going for an infuse!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36946_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/c84b4024108f.webp",
     "description": "Hello from the emergency room - connected to the infusion system",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36946_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/fe21530af2da.webp",
     "description": "Nurses explain what they measure - making the kids (and parents) feel comfortable in the hospital",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36946_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e9d369ff9544.webp",
     "description": "The hallways in the Kinderziekenhuis are full of interesting things to allow the kids a little break from being a patient - I'll happily play along!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36946_images-6.jpg"
    }
   ]
  },
  {
   "id": 36947,
   "slug": "2021-04-15_enter-text-without-keys",
   "url": "https://agents.willem.com/en/posts/2021-04-15_enter-text-without-keys/",
   "source_url": "https://willem.com/en/2021-04-15_enter-text-without-keys/",
   "language": "en",
   "date": "2021-04-15",
   "published": "2021-04-15T00:00:00+02:00",
   "created": "2025-06-26T22:09:34.398000+02:00",
   "updated": "2025-07-22T13:16:07.067000+02:00",
   "title": "Enter text without keys",
   "subtitle": "Tap: the wearable keyboard and mouse",
   "summary": "This month a special piece of wearable tech arrived for me to try: the Tap Strap. Worn on your fingers, the Tap Strap recognises tapping and moving. It enables you to control and type your computer without a mouse or keyboard!",
   "topics": [
    "review",
    "sensors"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-04-15_tekst-invoeren-zonder-toetsen/",
    "source_url": "https://willem.com/nl/2021-04-15_tekst-invoeren-zonder-toetsen/"
   },
   "image": "https://willem.com/global/images/adebb9d70dc0.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/fe578b372a87.webp",
     "description": "The Tap Strap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/bbaaa56e40c8.webp",
     "description": "How the Tap Strap works",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/97eb781104da.webp",
     "description": "Store and charge the Tap Strap in its case",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/94df2353866e.webp",
     "description": "Wearing the Tap Strap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/7f34e276fa4b.webp",
     "description": "Lightweight and breathable material",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1468b34b0281.webp",
     "description": "Learning to Tap takes time and practice",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/cbeff13a20a6.webp",
     "description": "Ultimately, Tap Strap can replace your keyboard and mouse",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/582b3a20cc74.webp",
     "description": "Using Tap Strap beyond the keyboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36947_images-8.jpg"
    }
   ]
  },
  {
   "id": 36948,
   "slug": "2021-04-10_fixed-gear-gran-fondo",
   "url": "https://agents.willem.com/en/posts/2021-04-10_fixed-gear-gran-fondo/",
   "source_url": "https://willem.com/en/2021-04-10_fixed-gear-gran-fondo/",
   "language": "en",
   "date": "2021-04-10",
   "published": "2021-04-10T00:00:00+02:00",
   "created": "2025-06-26T22:09:35.406000+02:00",
   "updated": "2026-04-03T14:34:45.076000+02:00",
   "title": "Fixed Gear Gran Fondo",
   "subtitle": "Cycling 176KM through rain and wind",
   "summary": "Today I took my fixed gear bike for a ride, 176KM from Amsterdam to America (Limburg, The Netherlands). Rain and wind added to the challenge, creating an ultimate test for man and machine. Let some of my fun be of inspiration to you!",
   "topics": [
    "Amsterdam",
    "bike",
    "health",
    "lifestyle",
    "minimal",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-04-10_fixed-gear-gran-fondo/",
    "source_url": "https://willem.com/nl/2021-04-10_fixed-gear-gran-fondo/"
   },
   "image": "https://willem.com/global/images/f865378d1849.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/b1a122c6b1a3.webp",
     "description": "Schindelhauer Siegfried Road - a fixed gear bike with a Gates Carbon belt drive ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/a5a1de597c2b.webp",
     "description": "Training through chilling hail... (Haarlemmermeerpolder)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/32aafd2683bd.webp",
     "description": "... and through radiating sunshine! (Zuiderheide, near Laren)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ff069e5096e3.webp",
     "description": "Getting ready for departure: Some coffee and 176 kilometers to go! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/b6f279556990.webp",
     "description": "The mighty “Prinses Irenesluizen” connect the Amsterdam-Rijnkanaal to the southern rivers of The Netherlands, Lek, Waal and Maas",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e3ef8b0fb9bc.webp",
     "description": "Find tasty croissants in Kesteren’s local bakery, Bakkerij de Greef!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/a1946b824f3a.webp",
     "description": "Bridge over the Waal river near Nijmegen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/f31f995492c0.webp",
     "description": "Nijmegen skyline ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/65e6ee9d09a7.webp",
     "description": "Crossing the last river by ferry",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/26a05896a4b4.webp",
     "description": "There is no such thing as bad weather... only bad gear!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/a55652c391d0.webp",
     "description": "Cycling route as recorded by Apple Watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/fa4dac00013e.webp",
     "description": "My heart rate during the entire day, by WHOOP",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-12.png"
    },
    {
     "url": "https://willem.com/global/images/7afc4fb3addb.webp",
     "description": "Daddy arriving by bike inspired the next generation!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36948_images-13.jpg"
    }
   ]
  },
  {
   "id": 36949,
   "slug": "2021-03-26_art-of-visualisation",
   "url": "https://agents.willem.com/en/posts/2021-03-26_art-of-visualisation/",
   "source_url": "https://willem.com/en/2021-03-26_art-of-visualisation/",
   "language": "en",
   "date": "2021-03-26",
   "published": "2021-03-26T00:00:00+01:00",
   "created": "2025-06-26T22:09:35.962000+02:00",
   "updated": "2026-04-03T14:34:45.269000+02:00",
   "title": "Art of visualisation",
   "subtitle": "Creating mouth-watering food photos",
   "summary": "You learn from working with experts and this month I had the privilege to work with a professional food photographer, my brother. Together we set out to photograph the entire menu of Café Carbòn in Amsterdam, enjoying the fabulous food afterwards.  Read along for some food photography takeaways!",
   "topics": [
    "Amsterdam",
    "art",
    "creating",
    "creativity",
    "photo",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-03-26_visualisatiekunst/",
    "source_url": "https://willem.com/nl/2021-03-26_visualisatiekunst/"
   },
   "image": "https://willem.com/global/images/20373a44f4c3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/9ebdcd625f58.webp",
     "description": "Café Carbòn - a local favourite in Amsterdam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/1e6d8835b25e.webp",
     "description": "His special tools, his craftmanship and his attention to detail enable my brother to deliver his art",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/443dfd71dfc5.webp",
     "description": "Working with light is a creative process, using reflections and shadows to create emphasis with natural elements",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/f28569609bed.webp",
     "description": "Highlights on the steak draw attention - an intentional effect created by the food photographer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/be47002e1b49.webp",
     "description": "Look at the result and note how your attention is drawn to the juicy highlights of this tasty steak, illuminating the texture: you can almost taste it by looking at it!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d845dc5c77a6.webp",
     "description": "Arranging dishes intentionally to create a pleasing composition",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/b50848df7eab.webp",
     "description": "Covering many different dishes this image communicates the many different options the menu offers",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/7871036d9101.webp",
     "description": "In contrast this hero image of the Café Carbòn Ribs puts full emphasis on one product",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/c8a3fa99ddb6.webp",
     "description": "Me helping the expert by eating the food photos afterwards, yummy!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36949_images-9.jpg"
    }
   ]
  },
  {
   "id": 36950,
   "slug": "2021-03-25_three-tips-to-make-a-content-strategy-work",
   "url": "https://agents.willem.com/en/posts/2021-03-25_three-tips-to-make-a-content-strategy-work/",
   "source_url": "https://willem.com/en/2021-03-25_three-tips-to-make-a-content-strategy-work/",
   "language": "en",
   "date": "2021-03-25",
   "published": "2021-03-25T00:00:00+01:00",
   "created": "2025-06-26T22:09:37.183000+02:00",
   "updated": "2026-04-03T14:34:45.491000+02:00",
   "title": "Three tips to make a content strategy work",
   "subtitle": "Maximise the effect of your writing",
   "summary": "When you write for your blog or for your company's website, there are things you can consider to maximise the discoverability, longevity and impact of your writing. Leverage the energy you put in into your words. Today I share with you three of my lessons learned while writing for this website.",
   "topics": [
    "blog",
    "creating",
    "work",
    "writing"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-03-25_drie-tips-om-een-contentstrategie-te-laten-werken/",
    "source_url": "https://willem.com/nl/2021-03-25_drie-tips-om-een-contentstrategie-te-laten-werken/"
   },
   "image": "https://willem.com/global/images/437b4df99fd3.webp",
   "image_width": 2560
  },
  {
   "id": 36951,
   "slug": "2021-02-28_wearing-two-watches",
   "url": "https://agents.willem.com/en/posts/2021-02-28_wearing-two-watches/",
   "source_url": "https://willem.com/en/2021-02-28_wearing-two-watches/",
   "language": "en",
   "date": "2021-02-28",
   "published": "2021-02-28T00:00:00+01:00",
   "created": "2025-06-26T22:09:37.551000+02:00",
   "updated": "2026-04-03T14:34:45.714000+02:00",
   "title": "Wearing two watches",
   "subtitle": "Both a mechanical and a smartwatch",
   "summary": "For the past weeks I have been wearing two watches, and boy this is a thing! I love my mechanical watch, but I needed the modern connectivity of a smartwatch. I couldn't choose between them, so I decided to wear both. It's not as bad as you think, let me share some thoughts on my experience.",
   "topics": [
    "art",
    "lifestyle",
    "people",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-02-28_het-dragen-van-twee-horloges/",
    "source_url": "https://willem.com/nl/2021-02-28_het-dragen-van-twee-horloges/"
   },
   "image": "https://willem.com/global/images/4df0a8c73014.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/921434406009.webp",
     "description": "Wearing my mechanical watch because I like it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/ced0cc310480.webp",
     "description": "Wearing an Apple Watch Series 6 because it is useful",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/474b0f66ec77.webp",
     "description": "Double wristing: wearing two watches at the same time",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/19c652569268.webp",
     "description": "Mechanical watch and Apple Watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/1cdce86c5e47.webp",
     "description": "You wear both on the wrist, yet they are very different things!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/24ecc12d975c.webp",
     "description": "The heart and soul of the watches are very unlike - they are created and powered differently",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/08693ca263c3.webp",
     "description": "The Night Watch (De Nachtwacht), Rembrandt van Rijn, 1642 - oil on canvas, h 379.5cm × w 453.5cm - rijksmuseum.nl",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36951_images-7.png"
    }
   ]
  },
  {
   "id": 36952,
   "slug": "2021-02-22_the-value-of-notifications",
   "url": "https://agents.willem.com/en/posts/2021-02-22_the-value-of-notifications/",
   "source_url": "https://willem.com/en/2021-02-22_the-value-of-notifications/",
   "language": "en",
   "date": "2021-02-22",
   "published": "2021-02-22T00:00:00+01:00",
   "created": "2025-06-26T22:09:37.944000+02:00",
   "updated": "2026-04-03T14:34:45.922000+02:00",
   "title": "The value of notifications",
   "subtitle": "How to setup your smartphone to save time",
   "summary": "It's easy to dismiss your phone's notifications as something that disturbs you, something annoying. But if you take the time to set them up correctly, notifications can actually save you time in the long run. Gain more focus by taking control over your online connection to the world. Read along for some tips!",
   "topics": [
    "cloud",
    "iOS",
    "iPhone",
    "lifestyle",
    "people",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-02-22_de-waarde-van-notificaties/",
    "source_url": "https://willem.com/nl/2021-02-22_de-waarde-van-notificaties/"
   },
   "image": "https://willem.com/global/images/601badc15ea6.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/7b93bee0f933.webp",
     "description": "Usage of my iPhone and iPad, from left to right: time spent, pickups and notifications ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36952_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/09d9d892b551.webp",
     "description": "The UptimeRobot is the only algorithm that I allow to wake me up at night",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36952_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ab7850507ad1.webp",
     "description": "Add any email sender to the VIP list and configure notifications differently for them",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36952_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/4f472d5e997b.webp",
     "description": "The \"Do not disturb\" feature on iOS enables you to automatically activate a different notification policy - e.g. during the night",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36952_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/6a2ceb0c5a85.webp",
     "description": "UptimeRobot - the monitoring system - is allowed to send me notifications at night, by enabling the \"Critical notifications\"  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36952_images-5.jpg"
    }
   ]
  },
  {
   "id": 36953,
   "slug": "2021-02-02_realtime-service-uptime-monitoring",
   "url": "https://agents.willem.com/en/posts/2021-02-02_realtime-service-uptime-monitoring/",
   "source_url": "https://willem.com/en/2021-02-02_realtime-service-uptime-monitoring/",
   "language": "en",
   "date": "2021-02-02",
   "published": "2021-02-02T00:00:00+01:00",
   "created": "2025-06-26T22:09:38.113000+02:00",
   "updated": "2026-04-03T14:34:46.154000+02:00",
   "title": "Realtime service uptime monitoring",
   "subtitle": "Discover problems before your customers do",
   "summary": "Downtime happens and it is nothing to be ashamed of, just make sure that you set yourself up to discover problems as soon as possible! You can use realtime uptime monitoring to automatically keep an eye on your servers and services. Read along to find out how.",
   "topics": [
    "cloud",
    "data",
    "iOS",
    "server",
    "watch",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-02-02_realtime-bewaking-van-de-uptime-van-services/",
    "source_url": "https://willem.com/nl/2021-02-02_realtime-bewaking-van-de-uptime-van-services/"
   },
   "image": "https://willem.com/global/images/0a5c22e0b3f3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/25a9e9483f49.webp",
     "description": "A special URL returns a simple text response if a few common (internal) function calls succeed ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36953_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/a65df145e260.webp",
     "description": "Set up UptimeRobot to detect the text that you expect when the service is online",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36953_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/1712f5b55395.webp",
     "description": "Keep chillin' - The app offers a glanceable view on all your uptime monitors",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36953_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/d0036ceb4556.webp",
     "description": "Downtime notifications on Apple Watch using UptimeRobot",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36953_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/6a2ceb0c5a85.webp",
     "description": "UptimeRobot supports iOS \"critical notifications\" - allowing you to be woken up at night when really bad things happen...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36953_images-5.jpg"
    }
   ]
  },
  {
   "id": 36954,
   "slug": "2021-01-31_building-a-product-platform",
   "url": "https://agents.willem.com/en/posts/2021-01-31_building-a-product-platform/",
   "source_url": "https://willem.com/en/2021-01-31_building-a-product-platform/",
   "language": "en",
   "date": "2021-01-31",
   "published": "2021-01-31T00:00:00+01:00",
   "created": "2025-06-26T22:09:38.672000+02:00",
   "updated": "2026-04-03T14:34:46.380000+02:00",
   "title": "Building a product platform",
   "subtitle": "Designing for reusability, flexibility and extensibility",
   "summary": "This month I am leveraging platform capabilities to launch a new product. Over the years I have developed the \"Lemmid\" platform, a set of building blocks that allow me to swiftly develop new products. Designing a platform takes some extra considerations, but if you follow some simple rules you can do it yourself!",
   "topics": [
    "cloud",
    "creating",
    "creativity",
    "design",
    "lemmid-store",
    "programming",
    "snake"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-01-31_een-productplatform-bouwen/",
    "source_url": "https://willem.com/nl/2021-01-31_een-productplatform-bouwen/"
   },
   "image": "https://willem.com/global/images/4a0843b5d82c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/adf7e59ff725.webp",
     "description": "A Duplo brick is can be so much more than just a brick",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/e201ce03c6f5.webp",
     "description": "New combinations can create novel products",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/940bb223debf.webp",
     "description": "Duplo brick design is brilliant",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/dacc99c30d87.webp",
     "description": "Building upon a platform - the coloured blocks could be imagined as products upon a platform foundation",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/feb76726f55d.webp",
     "description": "A funky new and exciting idea",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/5ed17f5114f9.webp",
     "description": "If your platform design is good - adding new and exciting pieces to it should be child's play (and thus, a lot of fun!!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/5e5ce4edc998.webp",
     "description": "The Lemmid platform is the foundation for the products that I build on top of it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/e879a65253ea.webp",
     "description": "From signup to product: automated onboarding of Lemmid Store is enabled by leveraging the Lemmid platform's capabilities",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/d3d2dd047fb3.webp",
     "description": "When the design comes together - great products appear: Harry van de Laar showing Lemmid Store straight from the kitchen! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36954_images-9.jpg"
    }
   ]
  },
  {
   "id": 36955,
   "slug": "2021-01-14_abandoning-my-own-tablet-os",
   "url": "https://agents.willem.com/en/posts/2021-01-14_abandoning-my-own-tablet-os/",
   "source_url": "https://willem.com/en/2021-01-14_abandoning-my-own-tablet-os/",
   "language": "en",
   "date": "2021-01-14",
   "published": "2021-01-14T00:00:00+01:00",
   "created": "2025-06-26T22:09:39.381000+02:00",
   "updated": "2026-04-03T14:34:46.595000+02:00",
   "title": "Abandoning my own tablet OS",
   "subtitle": "Why I moved back to iPad and the Mac",
   "summary": "The past year I have been experimenting with creating my own tablet operating system using Debian GNU/Linux and the i3 window manager on a Microsoft Surface Go 2 with LTE. After months of intense use I have now decided to abandon the experiment to move back to iPad Pro and the Mac. Read along to find out why.",
   "topics": [
    "Freedom",
    "apple",
    "experiment",
    "iPad",
    "linux",
    "pencil",
    "tablet",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-01-14_mijn-eigen-tablet-os-vaarwel-zeggen/",
    "source_url": "https://willem.com/nl/2021-01-14_mijn-eigen-tablet-os-vaarwel-zeggen/"
   },
   "image": "https://willem.com/global/images/d73ab682f139.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/a311f5097a11.webp",
     "description": "WillemOS in optima forma: Debian GNU/Linux on Surface GO 2 ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/a89149613f88.webp",
     "description": "Writing and reading blog posts using my own tablet OS ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/fbf1ade29b85.webp",
     "description": "A plant, a laptop and some coffee - the joy of a simple system that works!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/b45e0aec3a05.webp",
     "description": "In this \"Cloud age\" you'd better have a working internet connection - all the time: no time for amateur hour!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/d72bcced9787.webp",
     "description": "Pen input is great if it works - but good ideas can be lost if it fails!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1c010a7e0303.webp",
     "description": "You know you're digital pen is lacking trust if you grab for old fashioned pencil and paper...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/c29221027bf4.webp",
     "description": "When everything comes together there is magic: WillemOS doing things no iPad can do",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/6125494a73dc.webp",
     "description": "Back to iPad Pro (right) after some an incredible time with WillemOS on Surface Go (left)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36955_images-8.jpg"
    }
   ]
  },
  {
   "id": 36956,
   "slug": "2021-01-10_commuter-bike-checkup",
   "url": "https://agents.willem.com/en/posts/2021-01-10_commuter-bike-checkup/",
   "source_url": "https://willem.com/en/2021-01-10_commuter-bike-checkup/",
   "language": "en",
   "date": "2021-01-10",
   "published": "2021-01-10T00:00:00+01:00",
   "created": "2025-06-26T22:09:39.950000+02:00",
   "updated": "2026-04-03T14:34:46.831000+02:00",
   "title": "Commuter bike checkup",
   "subtitle": "How is my commuter bike doing after 21.000KM?",
   "summary": "This week my trustworthy commuter bike started making strange squeaking noises when braking. It has been just over three years since I started cycling on it. People frequently ask me how the bike is performing and how the Gates Carbon CDX belt drive is doing? Time to have a look at the bike after 21.000KM!",
   "topics": [
    "Amsterdam",
    "bike",
    "environment",
    "health",
    "lifestyle",
    "mobility",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2021-01-10_controle-van-de-forenzenfiets/",
    "source_url": "https://willem.com/nl/2021-01-10_controle-van-de-forenzenfiets/"
   },
   "image": "https://willem.com/global/images/1b6ceac9052e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/8784dfa2f0f4.webp",
     "description": "My Commuter bike in January 2021 - sharp eyes among you will spot the child's seating mount - as some things do change, ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/a7fd921cf858.webp",
     "description": "I use the bike all year long - under pretty much all weather conditions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/95f70d134b08.webp",
     "description": "Investigating my rear brake",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ea8924745def.webp",
     "description": "Removing my wheel to investigate the rear brake - note all the dirt!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/df97aa2d3bbb.webp",
     "description": "My hydraulic brake pads were worn out! Note the damaged fork in the upper right (which is supposed to keep the pads in place)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1581f83a1dd5.webp",
     "description": "After some cleaning you can clearly see how 21.000KM look on a set of brake pads!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/34bd1f9a6114.webp",
     "description": "New brake pads installed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/43f91e33a844.webp",
     "description": "You can see the light coming through right next to the disc - nothing is obstructing it and the squeaking noise is gone!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/1c2f265966d5.webp",
     "description": "This front CDX sprocket and CDX belt have powered my bike for ± 11.000KM - replacing the previous CDN parts that lasted for about 10.000KM",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/177197a151f8.webp",
     "description": "The rear CDX sprocket is still looking great (albeit a bit dusty) after 19.000KM! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/e8811df8e108.webp",
     "description": "The Schwalbe Marathon Plus Tour tires are very reliable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/e8607d6aa841.webp",
     "description": "Only some signs of wear after 11.000KM - and not a single puncture! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/21cf084ad8bd.webp",
     "description": "You instantly forget that you're riding a 21.000KM bike if you see the sun rise on a brand new day!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36956_images-13.jpg"
    }
   ]
  },
  {
   "id": 36957,
   "slug": "2020-12-31_working-with-special-hardware-from-china",
   "url": "https://agents.willem.com/en/posts/2020-12-31_working-with-special-hardware-from-china/",
   "source_url": "https://willem.com/en/2020-12-31_working-with-special-hardware-from-china/",
   "language": "en",
   "date": "2020-12-31",
   "published": "2020-12-31T00:00:00+01:00",
   "created": "2025-06-26T22:09:40.428000+02:00",
   "updated": "2026-04-03T14:34:47.084000+02:00",
   "title": "Working with special hardware from China",
   "subtitle": "On developing software without a manual",
   "summary": "This month I received a shipment from China containing some special hardware, Android devices with embedded printers! To make life easier for the restaurant and business owners that use my food ordering app, I want these devices to automatically print new orders. If only I can get these machines to work with my software... challenge accepted!",
   "topics": [
    "android",
    "hacking",
    "lemmid-store",
    "programming",
    "snake",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-12-31_werken-met-speciale-hardware-uit-china/",
    "source_url": "https://willem.com/nl/2020-12-31_werken-met-speciale-hardware-uit-china/"
   },
   "image": "https://willem.com/global/images/cc127164ed28.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d9984fd291cb.webp",
     "description": "People use the app to order food - orders are forwarded to kitchen and delivery staff",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/be106b0b6553.webp",
     "description": "Handheld Android Terminal - OEM hardware straight from China",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/4ca3fdca17db.webp",
     "description": "It runs Android - with some Chinese sauce on it (figuratively speaking...)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/c22d0497647e.webp",
     "description": "Its party trick is the embedded printer - super useful in the context of handling (online) orders",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/490062964133.webp",
     "description": "Snake '97 on the Lemmid Printer - ha!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e8928f950eb8.webp",
     "description": "Chinese code to make the printer work... how can one possibly understand this?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/f0cc5bc39dcb.webp",
     "description": "Google Translate to the rescue!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/31571969ba3a.webp",
     "description": "Java code to drive the printer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/25e13cb105b2.webp",
     "description": "YES! The printer prints the \"Lemmid\" logo on a ticket!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36957_images-9.jpg"
    }
   ]
  },
  {
   "id": 36958,
   "slug": "2020-12-15_why-apple-silicon-is-a-big-deal",
   "url": "https://agents.willem.com/en/posts/2020-12-15_why-apple-silicon-is-a-big-deal/",
   "source_url": "https://willem.com/en/2020-12-15_why-apple-silicon-is-a-big-deal/",
   "language": "en",
   "date": "2020-12-15",
   "published": "2020-12-15T00:00:00+01:00",
   "created": "2025-06-26T22:09:40.860000+02:00",
   "updated": "2026-04-03T14:34:47.318000+02:00",
   "title": "Why Apple Silicon is a big deal",
   "subtitle": "Blown away by a MacBook Air",
   "summary": "Apple now designs its own processors and I had a chance to work with the very latest from Cupertino: a brand new MacBook Air with M1 processor. Never ever have I been so blown away by a MacBook Air, pun intended. Let me share some thoughts why I think Apple Silicon is a big deal.",
   "topics": [
    "MacBook",
    "apple",
    "review",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-12-15_waarom-apple-silicon-zo-belangrijk-is/",
    "source_url": "https://willem.com/nl/2020-12-15_waarom-apple-silicon-zo-belangrijk-is/"
   },
   "image": "https://willem.com/global/images/e008bfc50bc4.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/1d10bae09d93.webp",
     "description": "The M1 processor is the first Apple Silicon available in a Mac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36958_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/68db3d5bf737.webp",
     "description": "The new M1 Apple Silicon in the MacBook Air blows me away",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36958_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/e008bfc50bc4.webp",
     "description": "Integrating chips inside the processor reduces the need to transfer data hence and forth to other (external) chips",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36958_images-3.png"
    }
   ]
  },
  {
   "id": 36959,
   "slug": "2020-12-02_designing-a-multi-dimensional-capacity-queue",
   "url": "https://agents.willem.com/en/posts/2020-12-02_designing-a-multi-dimensional-capacity-queue/",
   "source_url": "https://willem.com/en/2020-12-02_designing-a-multi-dimensional-capacity-queue/",
   "language": "en",
   "date": "2020-12-02",
   "published": "2020-12-02T00:00:00+01:00",
   "created": "2025-06-26T22:09:41.003000+02:00",
   "updated": "2026-04-03T14:34:47.558000+02:00",
   "title": "Designing a multi dimensional capacity queue",
   "subtitle": "Managing kitchen-, delivery- and pickup capacity",
   "summary": "This month I needed to create additional dimensions to a capacity queue mechanism. The food ordering app that I created needed to be able to restrict capacity based on the number of orders, the contents in individual orders and the dispatch type (takeaway/delivery). Read along to find out how I used a Lambda Architecture to do this.",
   "topics": [
    "data",
    "ecommerce",
    "lemmid-store",
    "payments",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-12-02_het-ontwerpen-van-een-multidimensionale-capaciteitswachtrij/",
    "source_url": "https://willem.com/nl/2020-12-02_het-ontwerpen-van-een-multidimensionale-capaciteitswachtrij/"
   },
   "image": "https://willem.com/global/images/774a2243490d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e9229d524bd1.webp",
     "description": "Eating pizza during development is how you \"live the algorithm\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36959_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/db564dd30d9f.webp",
     "description": "Three capacity constraints: kitchen / delivery / pickup",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36959_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/1e59e0b31de7.webp",
     "description": "An event stream of orders is the heart of the mechanism, queries are fulfilled by looking at this stream: how many pizza's will be ready at 18:00hrs?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36959_images-3.jpg"
    }
   ]
  },
  {
   "id": 36960,
   "slug": "2020-11-30_designing-my-own-watch",
   "url": "https://agents.willem.com/en/posts/2020-11-30_designing-my-own-watch/",
   "source_url": "https://willem.com/en/2020-11-30_designing-my-own-watch/",
   "language": "en",
   "date": "2020-11-30",
   "published": "2020-11-30T00:00:00+01:00",
   "created": "2025-06-26T22:09:41.151000+02:00",
   "updated": "2026-04-03T14:34:47.778000+02:00",
   "title": "Designing my own watch",
   "subtitle": "Timeless timepiece, both functional and comfortable",
   "summary": "Last month a very special package arrived from Switzerland, containing my custom made wrist watch. I decided to sell all my big brand watches and have them replaced by something unique, tailored to my personal preferences. This is the story of my watch.",
   "topics": [
    "Durable",
    "Freedom",
    "art",
    "creating",
    "creativity",
    "design",
    "lifestyle",
    "minimal",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-11-30_het-ontwerpen-van-mijn-eigen-horloge/",
    "source_url": "https://willem.com/nl/2020-11-30_het-ontwerpen-van-mijn-eigen-horloge/"
   },
   "image": "https://willem.com/global/images/428b27548029.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/5cbf46c5e43e.webp",
     "description": "Some of my watches over the years",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/2dbe726ea482.webp",
     "description": "Ludwig Oechslin is obsessed with reducing the number of parts - he is described as a living legend",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ca9e9c0d6a12.webp",
     "description": "Timeless timepiece: an annual calendar watch, custom made to my specifications",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/c0fbb2277584.webp",
     "description": "The annual calendar complication using just 3 additional parts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc745e2a8599.webp",
     "description": "How to read the time, month, date and weekday",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/5b2d2c137ac6.webp",
     "description": "Milling away material to make the watch lighter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/d198d78af6bb.webp",
     "description": "Before (left) and after (right) milling away material",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/bd97c01919d4.webp",
     "description": "The 3D model of my watch case",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/483fbca4a00a.webp",
     "description": "The super luminova makes the watch clearly readable in darkness",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/14e7b7f637fc.webp",
     "description": "While the subtile contrast allows my watch to fly under the radar during the day ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/cfe479fe9996.webp",
     "description": "The \"maestro\" himself working on my watch - this feels like I have picture of Rembrandt painting my very own Nachtwatch! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/b4ea32ba8b5e.webp",
     "description": "Before leaving Switzerland the watch is tested and calibrated to make sure it is working well",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/e59d50ccf678.webp",
     "description": "My son offered an helping hand while importing his future heirloom piece",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/08e6115a13bf.webp",
     "description": "It's all about the product, no money or energy is wasted on superflous boxes or booklets - I love this",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/7e57559d1dbf.webp",
     "description": "Like a kid in the candy store - happy me!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/9e152553584c.webp",
     "description": "The natural colours work well with light",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/518142ba9fb0.webp",
     "description": "The sturgeon leather strap is waterproof by nature",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/b8be900406cb.webp",
     "description": "The case is milled with extreme precision, making it unnecessary to hide mistakes by polishing (as there aren't any!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/af326b0723b7.webp",
     "description": "The curved case design is very comfortable on the wrist, as there are no sharp edges sticking in your arm",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/f3175a9e5dd7.webp",
     "description": "The dial is spectacular in an \"under the radar way\" - there is an incredible depth that is hard to capture in a photo (I tried anyway!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/0995265aa49e.webp",
     "description": "The 36MM size is perfect on my wrist",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/ef4d1a42bd62.webp",
     "description": "Changing the strap is easy and transforms the watch - because the watch itself is rather neutral",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/fac8ba7e8757.webp",
     "description": "The black fabric strap features a Kevlar core making it extremely durable and strong - perfect when riding your bike!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/8592aa859652.webp",
     "description": "The carbon buckle hardly adds any weight",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/9384fb6ebcd6.webp",
     "description": "Different colours have different effects on the watch - here you see it with a 'tan'-coloured fabric strap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/d2c35a3b5470.webp",
     "description": "In line with the \"LIGHT\"-case of my watch, the buckle of this strap is milled to remove any unneeded weight",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/a8807f4b67b5.webp",
     "description": "Wear the watch you want - if it doesn't exist you can create it!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36960_images-27.jpg"
    }
   ]
  },
  {
   "id": 36961,
   "slug": "2020-11-22_replacing-a-shimano-shift-cable",
   "url": "https://agents.willem.com/en/posts/2020-11-22_replacing-a-shimano-shift-cable/",
   "source_url": "https://willem.com/en/2020-11-22_replacing-a-shimano-shift-cable/",
   "language": "en",
   "date": "2020-11-22",
   "published": "2020-11-22T00:00:00+01:00",
   "created": "2025-06-26T22:09:43.730000+02:00",
   "updated": "2026-04-03T14:34:47.981000+02:00",
   "title": "Replacing a Shimano shift cable",
   "subtitle": "Fixing the cargo bike after hunting for bears",
   "summary": "Last week my son and I where looking for bears in the local park... a child's fantasy is priceless! Unfortunately, during some off road riding with our cargo bike, one of the cables got tangled up with a sturdy branch! Our wounded carbo bike was in need for a repair!",
   "topics": [
    "Durable",
    "Renewable",
    "bike",
    "daddy",
    "howto",
    "nature",
    "repair"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-11-22_shimano-schakelkabel-vervangen/",
    "source_url": "https://willem.com/nl/2020-11-22_shimano-schakelkabel-vervangen/"
   },
   "image": "https://willem.com/global/images/9a0826778be5.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/14701bce2442.webp",
     "description": "Looking for bears... in the local park - priceless adventure!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/6cec290ce7de.webp",
     "description": "Our adventure machine - the Babboe Big cargo bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/709aad539c10.webp",
     "description": "My small colleague inspecting the damage to the cargo bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/2e0235d40364.webp",
     "description": "The shifter cable underneath the cargo bike was pulled apart by a branch...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/179b3a671c8b.webp",
     "description": "Oops... this is not right!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/c48d5ebf3aea.webp",
     "description": "The Shimano Nexus 7-speed gear hub - the cable is fixed using a bolt, inside the red circle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/2993f11ce454.webp",
     "description": "The bolt holding the gear cable pulled out of the bracket at the gear hub",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/c8b1618b281b.webp",
     "description": "Loosening the bolt is easily done using two pliers",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/37a9182a24b4.webp",
     "description": "The endpoint has a fixed piece of metal on it - pulling it out can therefore only be done in one direction",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/e2fb5fee2592.webp",
     "description": "Pull the damaged cable out, all the way",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/c102442c70d7.webp",
     "description": "New inner and outer shifter cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/03baf5e21f6a.webp",
     "description": "Cargo bikes and tandems require longer cables! If your local bike shop doesn't sell them, you can find them on Amazon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/09989dc79f7d.webp",
     "description": "Install the new shifter cable starting from the handle bar",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/95082c8e5318.webp",
     "description": "Make sure you include + install all the end caps as they prevent moisture and dirt from entering the outer cable(s)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/b13a07126ced.webp",
     "description": "If things work out well, the inner cable will come out of the outer cable at the rear hub",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/8953b0eb5b15.webp",
     "description": "Properly tension the Nexus 7-speed gear hub by aligning the two yellow lines when you have selected the fourth gear",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/f94472545d61.webp",
     "description": "Don't forget to put an end cap on the cable to prevent it from unraveling ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/153ebf8d45eb.webp",
     "description": "New shift cable installed and ready for new adventures!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36961_images-18.jpg"
    }
   ]
  },
  {
   "id": 36962,
   "slug": "2020-11-03_the-joy-of-a-simple-laptop",
   "url": "https://agents.willem.com/en/posts/2020-11-03_the-joy-of-a-simple-laptop/",
   "source_url": "https://willem.com/en/2020-11-03_the-joy-of-a-simple-laptop/",
   "language": "en",
   "date": "2020-11-03",
   "published": "2020-11-03T00:00:00+01:00",
   "created": "2025-06-26T22:09:46.211000+02:00",
   "updated": "2026-04-03T14:34:48.197000+02:00",
   "title": "The joy of a simple laptop",
   "subtitle": "Surface Laptop Go with Windows 10",
   "summary": "Every now and then I switch my gear to keep a tap on what is going on outside my regular tech habits. You’ll be amazed by what you can learn from trying out different things. This week I had a chance to test the Surface Laptop Go running Windows 10. Quite frankly, it amazed me!",
   "topics": [
    "Windows",
    "design",
    "laptop",
    "minimal",
    "review",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-11-03_het-plezier-van-een-simpele-laptop/",
    "source_url": "https://willem.com/nl/2020-11-03_het-plezier-van-een-simpele-laptop/"
   },
   "image": "https://willem.com/global/images/375d785a7093.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/91bb997949a5.webp",
     "description": "Surface Laptop Go",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/7da4fd2c9d4f.webp",
     "description": "The Surface Laptop Go is a nice, compact laptop with no frills",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ae013303e31f.webp",
     "description": "Opening and closing the laptop gives you a solid feeling of its sturdiness and build quality",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/f348850ea45f.webp",
     "description": "The laptop is made from aluminium and plastic, moulded together as a singular piece",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/67586ee7b5e8.webp",
     "description": "Using the Surface Laptop Go, on the go - hence the name!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/c988abd0e4a3.webp",
     "description": "Windows 10 Home in S mode",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/15bf4ce1e09b.webp",
     "description": "Error 0x800711c7 when launching ‘powershell.exe’ - a friendly reminder that you’re running in S-mode, stupid...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/14c48f0b2f0c.webp",
     "description": "Switch out of S mode is possible and “free of charge”",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/65d81c39a04f.webp",
     "description": "Enabling the Windows Subsystem for Linux (WSL) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/d28fcec71d4f.webp",
     "description": "Installing Debian Linux from the Microsoft Store is as easy as one click - I like that",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc6c8ebf462a.webp",
     "description": "Unlocking Windows with your fingertip",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/fbf1ade29b85.webp",
     "description": "A plant, a laptop, some coffee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/5a3bf8fb70cf.webp",
     "description": "The keyboard is like candy - sweet and soft with enough bite, not too jelly, flat or fuzzy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/09e712d9c859.webp",
     "description": "The multi touch trackpad works well with Windows 10",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36962_images-14.jpg"
    }
   ]
  },
  {
   "id": 36963,
   "slug": "2020-10-31_increase-traffic-to-your-blog-with-a-rss-feed",
   "url": "https://agents.willem.com/en/posts/2020-10-31_increase-traffic-to-your-blog-with-a-rss-feed/",
   "source_url": "https://willem.com/en/2020-10-31_increase-traffic-to-your-blog-with-a-rss-feed/",
   "language": "en",
   "date": "2020-10-31",
   "published": "2020-10-31T00:00:00+01:00",
   "created": "2025-06-26T22:09:47.276000+02:00",
   "updated": "2025-07-22T16:42:43.456000+02:00",
   "title": "Increase traffic to your blog with a RSS feed",
   "subtitle": "How to setup RSS/Atom using NodeJS",
   "summary": "Writing for my blog has been a lot of fun, I receive messages from all of the world about the things I like. Traffic is growing, every month more readers are finding their way to my blog. This week I received a request to support RSS feeds on my blog. I wondered, are RSS feeds still relevant today?",
   "topics": [
    "blog",
    "cloud",
    "creating",
    "howto",
    "networking",
    "programming",
    "webdesign"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-10-31_vergroot-het-verkeer-naar-je-blog-met-een-rss-feed/",
    "source_url": "https://willem.com/nl/2020-10-31_vergroot-het-verkeer-naar-je-blog-met-een-rss-feed/"
   },
   "image": "https://willem.com/global/images/639e5a3bfb01.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/f423a61315b1.webp",
     "description": "Modern RSS reader apps offer advanced features to filter and organise different feeds - making you like a ZEN information overload master .... of sorts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36963_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/efdaa472a270.webp",
     "description": "The popular NodeJS module \"feed\" makes content syndication simple and intuitive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36963_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/b72d1c6597a5.webp",
     "description": "Implementing RSS, Atom and JSON feeds on my blog using NodeJS and the Feed module",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36963_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/d21d6e79f505.webp",
     "description": "Configuring NGINX to redirect common feed URL's to the generated RSS files",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36963_images-4.png"
    }
   ]
  },
  {
   "id": 36964,
   "slug": "2020-10-30_how-to-use-rsync-to-make-backups",
   "url": "https://agents.willem.com/en/posts/2020-10-30_how-to-use-rsync-to-make-backups/",
   "source_url": "https://willem.com/en/2020-10-30_how-to-use-rsync-to-make-backups/",
   "language": "en",
   "date": "2020-10-30",
   "published": "2020-10-30T00:00:00+01:00",
   "created": "2025-06-26T22:09:47.393000+02:00",
   "updated": "2025-07-22T16:42:43.704000+02:00",
   "title": "How to use rsync to make backups",
   "subtitle": "Explaining a powerful file transfer tool",
   "summary": "It is very important to make backups of your data, as you never know when disaster strikes! One powerful, cross platform, tool to help you achieve this is 'rsync'.  In this post I'll explain why rsync is useful and how you can use it to set up your own backups.",
   "topics": [
    "Freedom",
    "SSH",
    "Windows",
    "data",
    "howto",
    "linux",
    "networking",
    "server"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-10-30_hoe-rsync-te-gebruiken-voor-backups/",
    "source_url": "https://willem.com/nl/2020-10-30_hoe-rsync-te-gebruiken-voor-backups/"
   },
   "image": "https://willem.com/global/images/56f73e945374.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/7a7bafa71781.webp",
     "description": "Typical rsync command, showing the -arvz flags, a My-Source-Directory and My-Remote-Directory on a server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36964_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/0c7ba3c82117.webp",
     "description": "Using rsync on Windows 10 using WSL",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36964_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/c497fa4abfcc.webp",
     "description": "Using rsync to copy files from my Windows 10 desktop to a Debian GNU/Linux server over SSH (using WSL)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36964_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/d76217c9a685.webp",
     "description": "After adding the Milky Way photo to my sample files I run rsync again to use have it transfer my files incrementally, only copying the new file",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36964_images-4.png"
    }
   ]
  },
  {
   "id": 36965,
   "slug": "2020-10-15_rescuing-photos-from-a-crashed-imac",
   "url": "https://agents.willem.com/en/posts/2020-10-15_rescuing-photos-from-a-crashed-imac/",
   "source_url": "https://willem.com/en/2020-10-15_rescuing-photos-from-a-crashed-imac/",
   "language": "en",
   "date": "2020-10-15",
   "published": "2020-10-15T00:00:00+02:00",
   "created": "2025-06-26T22:09:47.514000+02:00",
   "updated": "2026-04-03T14:34:48.439000+02:00",
   "title": "Rescuing photos from a crashed iMac",
   "subtitle": "Using advanced tools to read files from a faulty disk",
   "summary": "This week I received a message from someone with a iMac that crashed. It contained more than 50.000 photos, covering two decades of personal history. As there was no backup, it was up to me to attempt to safe as much as I could. Could I possibly recover the personal photos?",
   "topics": [
    "apple",
    "data",
    "photo",
    "repair"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-10-15_foto-s-redden-van-een-gecrashte-imac/",
    "source_url": "https://willem.com/nl/2020-10-15_foto-s-redden-van-een-gecrashte-imac/"
   },
   "image": "https://willem.com/global/images/c8bcd8f90531.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/510971f83c8d.webp",
     "description": "Crashed iMac on my desk - ready to be opened",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/5a6b87888fc6.webp",
     "description": "Some iMacs require a special cutting blade to cut through the adhesive tape holding the glass on to the Aluminium frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/c5655a533b15.webp",
     "description": "Removing the glass panel using suction caps",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ae8c5ffaf3e9.webp",
     "description": "The display is fixed using Torx screws - it can be a little tricky to remove the screws as the magnets easily catch them!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/67230f56fa7d.webp",
     "description": "Be careful when lifting the display as it has multiple cables attached to the main logic board",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/720262fa53d4.webp",
     "description": "The iMac’s innards are visible after removing the display",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/b68f125ad627.webp",
     "description": "The hard disk inside the iMac - containing the personal photos",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/06d2b9e325bc.webp",
     "description": "Connecting the disk to a SATA-to-USB convertor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/480714b82b47.webp",
     "description": "This chip is was originally part of a external USB disk drive - you might have one around that you can use for this ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/73384ebdb549.webp",
     "description": "Connecting the salvaged disk to another Mac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/e1139f08b04c.webp",
     "description": "Reading files from the salvaged disk - if you understand Dutch you’ll understand the personal nature of these photos (‘bevalling’ means birth)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/a7ca5763c004.webp",
     "description": "Ohhhh no! Trouble! Read errors while copying photos!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/55594ba1a852.webp",
     "description": "Running macOS “First Aid” from Disk Utility",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/3dcfc02fcda8.webp",
     "description": "It doesn’t hurt to be nice to the damaged disk... “pleasssssse little disky... give me the photos!” - But don’t touch the chips!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/931ba8f932ef.webp",
     "description": "Ultimately I was able to rescue all other photos!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36965_images-15.jpg"
    }
   ]
  },
  {
   "id": 36966,
   "slug": "2020-09-29_riding-with-omata-one",
   "url": "https://agents.willem.com/en/posts/2020-09-29_riding-with-omata-one/",
   "source_url": "https://willem.com/en/2020-09-29_riding-with-omata-one/",
   "language": "en",
   "date": "2020-09-29",
   "published": "2020-09-29T00:00:00+02:00",
   "created": "2025-06-26T22:09:50.461000+02:00",
   "updated": "2026-04-03T14:34:48.679000+02:00",
   "title": "Riding with Omata One",
   "subtitle": "Analogue cycling computer with GPS",
   "summary": "For the past week I have been riding my bicycle with Omata One, a special bike computer. Its mechanical hands indicate speed, distance, ascent and time ridden measured using precise GPS data. It is fun, read along to know why.",
   "topics": [
    "bike",
    "data",
    "design",
    "health",
    "heart",
    "lifestyle",
    "minimal",
    "mobility",
    "review",
    "sensors",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-09-29_fietsen-met-omata-one/",
    "source_url": "https://willem.com/nl/2020-09-29_fietsen-met-omata-one/"
   },
   "image": "https://willem.com/global/images/c9a1d6801e02.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/bde6686f1a2e.webp",
     "description": "Clear your mind by riding your bike in the early morning (photo taken during my morning commute)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/019ece7431b4.webp",
     "description": "Let your thoughts wonder freely while the sun rises to a brand new day",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/8a257f35c88c.webp",
     "description": "Riding my bike as workout (photo by Niels)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/1bc31f6fa806.webp",
     "description": "The Omata One uses four mechanical hands to indicate speed (orange), distance (outer ring), ascent (left) and elapsed time (right)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/9be1c9ed2867.webp",
     "description": "The dial has a lot of depth and detail, with balanced symmetry, legible typography and functional colours",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/619df8eca85c.webp",
     "description": "Operating the Omata One is done using the outer ring which functions as a selector",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/dcf2417c1184.webp",
     "description": "The outer ring is easy to operate with gloves on, it is precisely engineered from 6063 aluminium and has a nice tactile feel to it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/95d793fa83dd.webp",
     "description": "The mechanical display is actually very power efficient, providing a 17+ hours battery life. Charging is done using a standard USB-C connector on the back.  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5df01991d38b.webp",
     "description": "Legibility remains great, even if you pickup some dirt ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/f4fc4c543978.webp",
     "description": "Once you finish your ride you can analyse the data by connecting Omata to your smartphone or computer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/5ae3408670fb.webp",
     "description": "Importing ride data is easy - with apps like Cyclemeter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/b32a26e839d8.webp",
     "description": "Analysing FIT files using GoldenCheetah on my tablet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36966_images-12.jpg"
    }
   ]
  },
  {
   "id": 36967,
   "slug": "2020-09-28_refining-my-tablet-os-experience",
   "url": "https://agents.willem.com/en/posts/2020-09-28_refining-my-tablet-os-experience/",
   "source_url": "https://willem.com/en/2020-09-28_refining-my-tablet-os-experience/",
   "language": "en",
   "date": "2020-09-28",
   "published": "2020-09-28T00:00:00+02:00",
   "created": "2025-06-26T22:09:51.426000+02:00",
   "updated": "2026-04-03T14:34:48.931000+02:00",
   "title": "Refining my tablet OS experience",
   "subtitle": "Using Surface Go 2 with 4G/LTE, Debian GNU/Linux and i3wm",
   "summary": "Earlier this year I tried to create my own tablet operating system by installing Debian GNU/Linux on a Microsoft Surface Go tablet. I learned a great deal about what I like about tablets. But I still preferred my iPad Pro, mainly because of its polished user experience. This time I set out to refine my tablet software to replace my iPad.",
   "topics": [
    "Freedom",
    "SSH",
    "creating",
    "design",
    "experiment",
    "howto",
    "laptop",
    "linux",
    "minimal",
    "tablet"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-09-28_mijn-tablet-os-ervaring-verfijnen/",
    "source_url": "https://willem.com/nl/2020-09-28_mijn-tablet-os-ervaring-verfijnen/"
   },
   "image": "https://willem.com/global/images/deac2f3345d3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e8c8c006c48d.webp",
     "description": "Microsoft Surface hardware is popular because it’s genuinely nice",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/9bdbd1ab55e3.webp",
     "description": "Microsoft Surface Go 2 with black type cover and Surface Pen - a nice piece of hardware!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/facf756bc1c8.webp",
     "description": "Installing Debian GNU/Linux on Surface Go 2 is very similar to the original Surface Go",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/831bf15741b3.webp",
     "description": "Debian GNU/Linux with i3wm (“aka WillemOS”) running on Surface Go 2",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/0e5191befac8.webp",
     "description": "Selling your iPad Pro is easy if you keep the original boxes - I sold mine in just a few days: enforcing myself to make the new tablet work!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/82029e2aa184.webp",
     "description": "Running Firefox (left) and a MOSH/tmux terminal window (right) in splitscreen using the i3wm tiling window manager",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e72f2eb2e0ee.webp",
     "description": "Multiple workspaces are very powerful: it’s like switching TV channels",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/0865c8fa1a0d.webp",
     "description": "Three finger swipe to switch workspaces - a trick from macOS - using fusuma you can use multi touch gestures in i3wm",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/4c4616d1c2e0.webp",
     "description": "Extending storage on a Surface Go 2 is possible using a MicroSD card",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/2ead4f4bf1d6.webp",
     "description": "Installing the SIM in the Surface Go 2 tablet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/6d41b18777f8.webp",
     "description": "Resetting the buffers of the Surface broadband modem allowed it to work with Debian GNU/Linux!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-11.png"
    },
    {
     "url": "https://willem.com/global/images/81a36fb447f0.webp",
     "description": "Network Manager (nm-applet) automatically switches between WiFi and mobile broadband connections",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/81abf9b1270b.webp",
     "description": "The systemd setting “AllowSuspendThenHibernate” in sleep.conf enables you to define a timeout between suspending to RAM and suspending to disk (hibernation)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/e2cc2410d5a6.webp",
     "description": "Configure the LidSwitch (in systemd’s login.conf) to automatically suspend and resume when you close the Surface type cover, I have configured it to suspend-then-hibernate using a timeout",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-14.png"
    },
    {
     "url": "https://willem.com/global/images/47e363822994.webp",
     "description": "Thunar file explorer (left) and GIMP (right) in visual harmony - create a uniform look by matching colours, icons and fonts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-15.png"
    },
    {
     "url": "https://willem.com/global/images/dfc9b4ac76c9.webp",
     "description": "Shotwell (left) and Xournal (right) - two very different apps running side by side, looking visually coherent",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-16.png"
    },
    {
     "url": "https://willem.com/global/images/6039e558b1d5.webp",
     "description": "Surface Pen is great and when you configure Xournal to use Xinput the pressure sensitivity works perfectly: you can see the thickness of the line vary, just like a real pen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/a248d70075f2.webp",
     "description": "The kickstand is brilliant in combination with Xournal and the Surface Pen - no iPad can do this",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/11ab54c312b3.webp",
     "description": "The kickstand is very sturdy as it uses two strong metal hinges",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/251c859582d7.webp",
     "description": "The type cover is charm to type on with real (backlit) keys, including ESC and a row of function keys",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/807ff12f0120.webp",
     "description": "You can use a Bluetooth keyboard, too - enabling a comfortable distance between your eyes and display",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/cf9e3a3ad1b7.webp",
     "description": "While USB-C is the future, the Surface connector port is quite handy as it works with Surface Dock 2 (that offers a ton of connectivity)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/dff454cf49ab.webp",
     "description": "The back of the Surface has no extruding camera lens which allows the tablet to lay perfectly flat on a table - as it should!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/4fae13e5079f.webp",
     "description": "It’s a tiny computer, but it is incredibly powerful and versatile!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/b2cfb6eddb63.webp",
     "description": "Reading mails in Evolution works well!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/2429d7f15a38.webp",
     "description": "It is light enough to handle with one hand - you can read the gyroscope sensor to automatically rotate the display - useful when reading an (interesting) article",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/eee21875c9c9.webp",
     "description": "The Surface Go 2 is a serious tool, capable of powerful things when you connect to the cloud (using a terminal, MOSH and tmux)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36967_images-27.jpg"
    }
   ]
  },
  {
   "id": 36968,
   "slug": "2020-09-16_syncing-files-seamlessly-between-smartphone-and-tablet",
   "url": "https://agents.willem.com/en/posts/2020-09-16_syncing-files-seamlessly-between-smartphone-and-tablet/",
   "source_url": "https://willem.com/en/2020-09-16_syncing-files-seamlessly-between-smartphone-and-tablet/",
   "language": "en",
   "date": "2020-09-16",
   "published": "2020-09-16T00:00:00+02:00",
   "created": "2025-06-26T22:09:53.593000+02:00",
   "updated": "2026-04-03T14:34:49.155000+02:00",
   "title": "Syncing files seamlessly between smartphone and tablet",
   "subtitle": "Using unison to automatically sync between GNU/Linux and the iPhone",
   "summary": "In order to optimise my workflow, I was looking for a way to seamlessly access the same files on both my computer and smartphone. This is useful to when you want to quickly send files from your computer using your smartphone through various messaging apps and vice versa. Read along to find out how I did it.",
   "topics": [
    "Freedom",
    "SSH",
    "cloud",
    "data",
    "howto",
    "iPhone",
    "linux",
    "server",
    "tablet"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-09-16_bestanden-naadloos-synchroniseren-tussen-smartphone-en-tablet/",
    "source_url": "https://willem.com/nl/2020-09-16_bestanden-naadloos-synchroniseren-tussen-smartphone-en-tablet/"
   },
   "image": "https://willem.com/global/images/193f047bbec3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0c3af5ec4a88.webp",
     "description": "Synchronising files between my tablet and iPhone: the NAS server act as an intermediate station; overcoming differences in protocol and connection",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36968_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/69ec55902e0c.webp",
     "description": "My Unison profile with parameters for the ‘WillemCloud’",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36968_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/172e19ff4677.webp",
     "description": "My cron command is wrapped in a check to prevent starting synchronisation when it is already running",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36968_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/d74a7d2d31ab.webp",
     "description": "Download and configure Secure ShellFish to connect to my “WillemCloud”",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36968_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/56496fdc5e80.webp",
     "description": "Accessing files using the native iOS Files app enables you to use many different apps and shortcuts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36968_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e9f915e8f52d.webp",
     "description": "The same files on both my smartphone and tablet - it just works!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36968_images-6.jpg"
    }
   ]
  },
  {
   "id": 36969,
   "slug": "2020-08-31_free-from-the-icloud-escaping-apple-photos",
   "url": "https://agents.willem.com/en/posts/2020-08-31_free-from-the-icloud-escaping-apple-photos/",
   "source_url": "https://willem.com/en/2020-08-31_free-from-the-icloud-escaping-apple-photos/",
   "language": "en",
   "date": "2020-08-31",
   "published": "2020-08-31T00:00:00+02:00",
   "created": "2025-06-26T22:09:53.875000+02:00",
   "updated": "2026-04-03T14:34:49.409000+02:00",
   "title": "Free from the iCloud: Escaping Apple Photos",
   "subtitle": "Using offline photo library management software",
   "summary": "After encountering the umpteenth ‘magic’ bug while managing my iPhone’s photos, I was done with it. Apple came a long way since it  launched iPhoto (the predecessor of iCloud Photos). But for something as valuable as my personal memories, I want to be in full control. Read along to learn how I migrated my photo library away from the iCloud, using free, open source software.",
   "topics": [
    "Freedom",
    "apple",
    "howto",
    "iOS",
    "iPhone",
    "linux",
    "photo",
    "tablet"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-08-31_bevrijd-van-icloud-ontsnappen-aan-apple-foto-s/",
    "source_url": "https://willem.com/nl/2020-08-31_bevrijd-van-icloud-ontsnappen-aan-apple-foto-s/"
   },
   "image": "https://willem.com/global/images/9fe85b5153b1.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/c8e223932080.webp",
     "description": "My first digital camera: a Samsung Digimax 800K shooting 1024x768px photos",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/eb8ade2ffd85.webp",
     "description": "My computer in 2001, captured using the Digimax 800K",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/d7cee4d45ab0.webp",
     "description": "No vintage photo filters applied: this is an untouched original digital photo from 2001. (Lake Garda, Italy, 2001)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/59341fab5bb5.webp",
     "description": "Yesteryear’s memory cards - note that they are sized in MB, as in mega, not gigabyte!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/a0a3d7661cb5.webp",
     "description": "My computer in 2005: Windows XP, Nokia Communicator and MSN Messenger",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/a3c5668f7a82.webp",
     "description": "Introducing iLife in 2002 - shown on an iMac G4 - designed to be fun, easy and powerful",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/87e7ba93a65e.webp",
     "description": "My first Mac in 2006: a G4 Mac Mini with 1GB RAM running OS X Tiger",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/3685afb1a6d6.webp",
     "description": "Using my 2006 Mac Mini to connect to a Sun Microsystems server using the fancy looking, yet powerful, terminal app.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/0b21feab6ea5.webp",
     "description": "Steve Jobs introducing the original iPhone in 2007 as ‘ultimate digital device’",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/cf388125cfb2.webp",
     "description": "Visiting the Apple Store in Miami Beach in 2008",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/191b4a3f89f1.webp",
     "description": "Drinking happy beers: I found myself an iPhone! (2008)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/774e42ab7748.webp",
     "description": "What seems normal today, was futuristic in 2008: browsing the web on a full touch screen device (while drinking beer)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/657de386c1a7.webp",
     "description": "The iPhone 4 replaced my camera in 2010 - selfie of Mr. Blurry Cam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/c82cd2219547.webp",
     "description": "The camera inside the iPhone 4 wasn’t all that bad: shooting detail rich pictures - Winter in Amsterdam (December 2010)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/4a02046444e5.webp",
     "description": "Going through my old photo libraries using iPhoto and Apple Photos",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/507cc05a4802.webp",
     "description": "In Apple Photos you can export the unmodified originals",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-16.png"
    },
    {
     "url": "https://willem.com/global/images/9cc8d0270776.webp",
     "description": "I used sequential filenames with a manually set prefix",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-17.png"
    },
    {
     "url": "https://willem.com/global/images/b4967c1674df.webp",
     "description": "Using EXIF information to rename the photos to include the date and time the photo was taken",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/70940e6862ad.webp",
     "description": "Batch converting HEIC image files to JPG using a VPS with a ton of CPU power",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/ae6d16dd8c1b.webp",
     "description": "Importing all photos into Shotwell caused my tablet to run a little hot (as it generated new thumbnails) - a problem solved using an rather analogue solution: a ventilator",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/bb889c594a1e.webp",
     "description": "My entire photo library on a single SD card - unbelievable!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/f816dceb5dc8.webp",
     "description": "Importing new photos from my camera is easy - very much like the Apple iPhoto ad from 2002! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/843a5fd8f358.webp",
     "description": "Ahhh, the sweet taste of freedom: managing my photos using Shotwell on my tablet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/1837475054b1.webp",
     "description": "In the macOS finder you can setup photo synchronisation using a normal directory on the file system as source - no need for a full fledged iCloud Photo library!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-24.png"
    },
    {
     "url": "https://willem.com/global/images/3156a91b1d91.webp",
     "description": "Happy together: Using the native iOS Photo app to browse through my entire photo collection managed with Shotwell",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36969_images-25.jpg"
    }
   ]
  },
  {
   "id": 36970,
   "slug": "2020-08-23_cleaning-a-vintage-watch",
   "url": "https://agents.willem.com/en/posts/2020-08-23_cleaning-a-vintage-watch/",
   "source_url": "https://willem.com/en/2020-08-23_cleaning-a-vintage-watch/",
   "language": "en",
   "date": "2020-08-23",
   "published": "2020-08-23T00:00:00+02:00",
   "created": "2025-06-26T22:09:55.141000+02:00",
   "updated": "2026-04-03T14:34:49.609000+02:00",
   "title": "Cleaning a vintage watch",
   "subtitle": "Rediscovering old beauty under layers of dirt",
   "summary": "This week I was cleaning my closet when I found an old watch. It came from my grandfather’s house. It looked like it had an adventurous live, full of wear and tear. I recognised that it had an automatic mechanical movement. Upon picking it up it almost instantly started running again. I wondered how cool it would be if I would gently clean it.",
   "topics": [
    "Circulair",
    "Durable",
    "Renewable",
    "howto",
    "lifestyle",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-08-23_het-reinigen-van-een-vintage-horloge/",
    "source_url": "https://willem.com/nl/2020-08-23_het-reinigen-van-een-vintage-horloge/"
   },
   "image": "https://willem.com/global/images/290b5b1d546c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e7bc9b8135b6.webp",
     "description": "Citizen Automatic, 21 jewels, 6000, 4-601084-Y",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/cb1eaa101432.webp",
     "description": "The rear of the watch, showing various numbers and markings",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/f07c3913db68.webp",
     "description": "Wear and tear is a great thing on a watch: it communicates the story of adventurous wrist time",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/7f4d18a47030.webp",
     "description": "Dirty bracelet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b2938aeda50.webp",
     "description": "Removing the bracelet from a watch is easier with the right tools",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/59cfa439ed7e.webp",
     "description": "Dirt inside the clasp",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/4b3db8430dfe.webp",
     "description": "Especially the parts facing the human skin can pick up interesting collections of dirt over time, giving rise to microbial ecosystems",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/1222910e2806.webp",
     "description": "Opening the watch can be done using a special tool",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/c444b13b3213.webp",
     "description": "Set the tool to match the mounting points on the case back, to enable it to rotate it open",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/687a24dbe12d.webp",
     "description": "You can rotate the case back and remove it from the watch head to reveal the movement",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/acadabbb37e1.webp",
     "description": "This watch has an automatic Citizen 6000 movement with 21 jewels",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/9239e4fceb5c.webp",
     "description": "There is a rotor that winds the watch when it is moved (on the wrist), a clever system that negates the need for batteries",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/7495ca6cd1df.webp",
     "description": "Citizen 6000 movement",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/93961ec5b2ec.webp",
     "description": "The cleaned bracelet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/0dec1affae90.webp",
     "description": "The cleaned watch head, as seen from the bottom",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/6539dc8e72b0.webp",
     "description": "The cleaned watch head, from the top",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/8b9c1fc917f6.webp",
     "description": "The watch back on the wrist: cleaned and running!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/9aee5b993b81.webp",
     "description": "Replacing the original metal bracelet for a nylon NATO strap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/5536295c7413.webp",
     "description": "Wearing your watch on a different strap can make it feel like an entirely different watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/8eecd9d7aad1.webp",
     "description": "Wearing a 50 year old watch, I like it!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36970_images-20.jpg"
    }
   ]
  },
  {
   "id": 36971,
   "slug": "2020-08-11_the-best-keyboard-for-ipad",
   "url": "https://agents.willem.com/en/posts/2020-08-11_the-best-keyboard-for-ipad/",
   "source_url": "https://willem.com/en/2020-08-11_the-best-keyboard-for-ipad/",
   "language": "en",
   "date": "2020-08-11",
   "published": "2020-08-11T00:00:00+02:00",
   "created": "2025-06-26T22:09:55.754000+02:00",
   "updated": "2026-04-03T14:34:49.829000+02:00",
   "title": "The best keyboard for iPad",
   "subtitle": "Smart Keyboard Folio vs Magic Keyboard",
   "summary": "The tablet is at the frontier of mobile computing and its hardware form factor is evolving. This year Apple introduced a new Magic Keyboard for iPad that includes a trackpad. Everybody is raving about it, yet I think there is something to be said for the \"mouse-less\" Smart Keyboard Folio. Read along for some key differences.",
   "topics": [
    "apple",
    "design",
    "iPad",
    "review",
    "tablet"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-08-11_het-beste-toetsenbord-voor-ipad/",
    "source_url": "https://willem.com/nl/2020-08-11_het-beste-toetsenbord-voor-ipad/"
   },
   "image": "https://willem.com/global/images/28b861b4f929.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/1978a5e07319.webp",
     "description": "Smart Keyboard Folio (left) and the new Magic Keyboard (right)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/b7c503117026.webp",
     "description": "Smart Keyboard Folio (11-inch) with iPad Pro and Apple Pencil weighs 528 grams",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/bab0cd3fe508.webp",
     "description": "iPad Pro Smart Keyboard Folio as seen from the side",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/f4f044203d42.webp",
     "description": "Smart Keyboard Folio (11-inch) with iPad Pro and Apple Pencil weighs 844 grams (that's about 59% heavier than the Smart Keyboard Folio)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/08595e15c99a.webp",
     "description": "iPad Pro Magic Keyboard as seen from the side, it is thicker and it has a dark aluminium hinge sticking out (on the left side)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/33c26818260d.webp",
     "description": "The Magic Keyboard is made like a laptop keyboard (with distinct keys and ditto mechanisms) - the Smart Keyboard Folio is made with a woven fabric from a single piece of material",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/28666bcf13f8.webp",
     "description": "The trackpad on the Magic Keyboard for iPad Pro is great - you can see the 'cursor' being a grey circle (just between the FaceTime and Zoom icons)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/5a9c803a7d55.webp",
     "description": "Smart Keyboard Folio vs Magic Keyboard for iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/9b60377a5d01.webp",
     "description": "If you want a laptop experience, why not just buy a MacBook?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-9.png"
    },
    {
     "url": "https://willem.com/global/images/f439591cffa8.webp",
     "description": "Touching is an integral part of the tablet experience - your hand can rest on a table for most tasks",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/51311d90c673.webp",
     "description": "Cropping and rotating photos feels natural, making multiple adjustments (size, rotation, dimensions) with one gesture instead of multiple mouse clicks",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/2ca165ca0d14.webp",
     "description": "Precisely adjusting sliders and immediately see their effects, zoom in with a simple pinching gesture while trying different settings. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/deb8e8b57bad.webp",
     "description": "Composing multi layered images by dragging, dropping, rotating, resizing in a matter of seconds. Optimised tablet apps help you achieve alignment precision using guides and rulers. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/f2e07c82d729.webp",
     "description": "Hand palms comfortably resting on the table surface",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/e559ebdd6b82.webp",
     "description": "Reveal available keyboard combinations by long-pressing the CMD-key in any app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/849c5f0449a2.webp",
     "description": "Don't underestimate the powers of the CMD / OPTION / Arrow / Shift keys: I bet I am faster than most folks using a mouse",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36971_images-16.jpg"
    }
   ]
  },
  {
   "id": 36972,
   "slug": "2020-07-31_influencing-purchase-behaviour",
   "url": "https://agents.willem.com/en/posts/2020-07-31_influencing-purchase-behaviour/",
   "source_url": "https://willem.com/en/2020-07-31_influencing-purchase-behaviour/",
   "language": "en",
   "date": "2020-07-31",
   "published": "2020-07-31T00:00:00+02:00",
   "created": "2025-06-26T22:09:56.318000+02:00",
   "updated": "2025-07-22T16:42:44.691000+02:00",
   "title": "Influencing purchase behaviour",
   "subtitle": "Applying behavioural sciences principles to the purchase decision process",
   "summary": "This week I stumbled upon a brilliant report on how people make their purchase decision. For my work on the online food order app I am continuously looking into scientific sources to improve performance, conversion and online revenue. This report by Google discusses six biases influencing decision making. It's worth reading their full report, let me explain why.",
   "topics": [
    "data",
    "ecommerce",
    "experiment",
    "lemmid-store",
    "literature",
    "people"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-07-31_invloed-uitoefenen-op-aankoopgedrag/",
    "source_url": "https://willem.com/nl/2020-07-31_invloed-uitoefenen-op-aankoopgedrag/"
   },
   "image": "https://willem.com/global/images/53010c1d158f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/8c5026a5cf32.webp",
     "description": "A brief history of the evolution of marketing models (Rennie Et Al., 2020)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36972_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/0cf7f2b42b33.webp",
     "description": "The Messy Middle model (Rennie Et Al., 2020)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36972_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/ce2c504ff301.webp",
     "description": "Six biases influencing the purchase decision process (Think with Google)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36972_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/7a829f7016cd.webp",
     "description": "Fictional brands, made up by the researches, won significant market share after applying the six biases (Rennie Et Al., 2020)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36972_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/0cf9a23d0f36.webp",
     "description": "Transfer of preference from original choice to fictional brand, per shopping category (Rennie Et Al., 2020)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36972_images-5.png"
    }
   ]
  },
  {
   "id": 36973,
   "slug": "2020-07-30_upgrading-a-27-inch-imac-5k-to-14-terabytes",
   "url": "https://agents.willem.com/en/posts/2020-07-30_upgrading-a-27-inch-imac-5k-to-14-terabytes/",
   "source_url": "https://willem.com/en/2020-07-30_upgrading-a-27-inch-imac-5k-to-14-terabytes/",
   "language": "en",
   "date": "2020-07-30",
   "published": "2020-07-30T00:00:00+02:00",
   "created": "2025-06-26T22:09:56.462000+02:00",
   "updated": "2026-04-03T14:34:50.054000+02:00",
   "title": "Upgrading a 27-inch iMac 5K to 14 terabytes",
   "subtitle": "Replacing the Fusion Drive with both a SSD and an harddisk",
   "summary": "This month I did an attempt to upgrade my 27-inch iMac 5K. I wanted to replace the fusion drive with a SSD and a large hardisk. In addition I decided this was a good time to upgrade the RAM memory as well, maxing it out at 64GB. I was on a mission to create the ultimate iMac, but things didn't go to plan!",
   "topics": [
    "Circulair",
    "Renewable",
    "apple",
    "design",
    "howto",
    "office",
    "repair"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-07-30_een-27-inch-imac-5k-upgraden-naar-14-terabyte/",
    "source_url": "https://willem.com/nl/2020-07-30_een-27-inch-imac-5k-upgraden-naar-14-terabyte/"
   },
   "image": "https://willem.com/global/images/94de0c2dd68d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/36dc6e9176cf.webp",
     "description": "iMac G3 (1998)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/52c5422faa00.webp",
     "description": "iMac ad - note the text emphasising to get you online in 10 minutes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/a0434f9e705d.webp",
     "description": "iMac evolution",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/7859c24f492b.webp",
     "description": "Today's iMac (in two sizes)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/e7dbc75c11ac.webp",
     "description": "The ultimate iMac Pro, 18 cores, 256GB RAM, 4TB SSD... € 16.308!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/f163664e6f14.webp",
     "description": "Few days after ordering my parts, a magic box appeared on my desk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/7617e7c1834f.webp",
     "description": "It contained the 64GB RAM and the 2TB PCIe Aura Pro X2 for iMac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/b821772c6692.webp",
     "description": "The RAM hatch pops open using the secret button inside the power connector ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5f3680361976.webp",
     "description": "After installing the new RAM, I powered on my iMac to see if the new modules worked - they did!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/0840a2f57bba.webp",
     "description": "Decoupling the fusion drive: separating the conventional harddisk from the PCIe SSD",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/70231e0fae69.webp",
     "description": "Using a special roller to cut the iMac open",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/5477badcf576.webp",
     "description": "Be careful when lifting the glass, there are cables connecting the panel to the logic board",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/ffb68195aa61.webp",
     "description": "Removing adhesive strips - pretty low tech task",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/71710e6f8d72.webp",
     "description": "The inside of the iMac is beautifully arranged",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/511bdbe89c5e.webp",
     "description": "Removing screws from the iMac ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/380b3c662163.webp",
     "description": "An average fly is bigger than most screws inside the iMac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/d16255accbe7.webp",
     "description": "Removing an iMac speaker",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/94e90ec49273.webp",
     "description": "Disconnecting the power button cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/147d54f8316c.webp",
     "description": "Removing the Fusion Drive 1TB harddisk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/d4958154c293.webp",
     "description": "Removing the main ventilator shaft",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/b6c5ebc897e6.webp",
     "description": "Removing the other iMac speaker",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/3536798be919.webp",
     "description": "The Power Supply should be handled with extra care, don't touch any solder joint as the capacitors can retain some charge after disconnecting the power cable!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/0ab106c1e2c8.webp",
     "description": "Removing the power supply board",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/85849bd18759.webp",
     "description": "Work in progress: most parts removed, the logic board remaining",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/e2178564b3d1.webp",
     "description": "Removing the antenna cables, remember their order using a piece of tape",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/bd68062a51db.webp",
     "description": "Disconnecting the iSight's (Applespeak for webcam) USB cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/c76fa90e60f7.webp",
     "description": "Disconnecting the microphone cable - right under my thumb - it's very tiny!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-27.jpg"
    },
    {
     "url": "https://willem.com/global/images/276dc432468d.webp",
     "description": "Disconnecting the headphone cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-28.jpg"
    },
    {
     "url": "https://willem.com/global/images/6cfde83486e4.webp",
     "description": "Removing screws from the heatsink",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-29.jpg"
    },
    {
     "url": "https://willem.com/global/images/100051ed9848.webp",
     "description": "A (nearly) empty iMac enclosure",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-30.jpg"
    },
    {
     "url": "https://willem.com/global/images/8e6f6c1d3de1.webp",
     "description": "The factory installed 32GB SSD that we're going to replace",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-31.jpg"
    },
    {
     "url": "https://willem.com/global/images/35c8bf89fa6e.webp",
     "description": "The new drive is ready to be installed - what could possibly go wrong?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-32.jpg"
    },
    {
     "url": "https://willem.com/global/images/ab8f7a8173c7.webp",
     "description": "iMac in trouble: no system drive found",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-33.jpg"
    },
    {
     "url": "https://willem.com/global/images/344fe607d496.webp",
     "description": "Creating a USB recovery drive using another MacBook",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-34.jpg"
    },
    {
     "url": "https://willem.com/global/images/e8636f886162.webp",
     "description": "The Debian GNU/Linux installer was in fact recognised by the iMac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-35.jpg"
    },
    {
     "url": "https://willem.com/global/images/7ce0798e7272.webp",
     "description": "Oops: the newly installed SSD drive is not correctly fitted in the PCIe slot! An expensive mistake! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-36.jpg"
    },
    {
     "url": "https://willem.com/global/images/cecc39b2cc83.webp",
     "description": "The SSD drive installed correctly, note how the connector is much deeper in its socket",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-37.jpg"
    },
    {
     "url": "https://willem.com/global/images/97bc9f87ec45.webp",
     "description": "Visiting Microfix in Amsterdam - the local Apple Premium Service Provider",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-38.jpg"
    },
    {
     "url": "https://willem.com/global/images/cb3515c407de.webp",
     "description": "On the logic board I found a number - I took a photo of it during one of my numerous assembling sessions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-39.jpg"
    },
    {
     "url": "https://willem.com/global/images/20432f71b906.webp",
     "description": "LUCKY ME! Found a perfectly matching replacement logic board - in new old stock condition!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-40.jpg"
    },
    {
     "url": "https://willem.com/global/images/1a4c986a048f.webp",
     "description": "Another box with parts - this time from Ireland",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-41.jpg"
    },
    {
     "url": "https://willem.com/global/images/41ff42b59d2b.webp",
     "description": "It contained a new logic board, but without a processor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-42.jpg"
    },
    {
     "url": "https://willem.com/global/images/68e38d95030f.webp",
     "description": "Removing the heatsink from the logic board",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-43.jpg"
    },
    {
     "url": "https://willem.com/global/images/230aeb827529.webp",
     "description": "Holding the Quad core processor in my hand",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-44.jpg"
    },
    {
     "url": "https://willem.com/global/images/5f3245a66b84.webp",
     "description": "Double, tripple, quadruple checking the PCIe SSD drive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-45.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc8243a14800.webp",
     "description": "Migrating the RAM modules to the new logic board",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-46.jpg"
    },
    {
     "url": "https://willem.com/global/images/0b5cfdf6fc29.webp",
     "description": "YES, it works! The new logic board accepted keyboard input and allowed me to proceed with macOS installation",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-47.jpg"
    },
    {
     "url": "https://willem.com/global/images/eadd52f31e13.webp",
     "description": "Many hours later, the iMac was working again!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36973_images-48.jpg"
    }
   ]
  },
  {
   "id": 36974,
   "slug": "2020-07-09_repairing-a-giro-aeon-bicycle-helmet",
   "url": "https://agents.willem.com/en/posts/2020-07-09_repairing-a-giro-aeon-bicycle-helmet/",
   "source_url": "https://willem.com/en/2020-07-09_repairing-a-giro-aeon-bicycle-helmet/",
   "language": "en",
   "date": "2020-07-09",
   "published": "2020-07-09T00:00:00+02:00",
   "created": "2025-06-26T22:09:57.273000+02:00",
   "updated": "2026-04-03T14:34:50.272000+02:00",
   "title": "Repairing a Giro AEON bicycle helmet",
   "subtitle": "How to replace the Roc Loc 5 system",
   "summary": "This month my trustworthy Giro Aeon bicycle helmet broke down! Normally I wouldn't hesitate to invest in safety and thus buying a new one. But I like the Aeon helmet so much that I went through some extra trouble to fix it. Read along to see how I did it.",
   "topics": [
    "Durable",
    "bike",
    "environment",
    "howto",
    "mobility",
    "repair",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-07-09_reparatie-van-een-giro-aeon-fietshelm/",
    "source_url": "https://willem.com/nl/2020-07-09_reparatie-van-een-giro-aeon-fietshelm/"
   },
   "image": "https://willem.com/global/images/23a134cdce83.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3022f2495dae.webp",
     "description": "Wearing the Giro Aeon helmet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f54562060071.webp",
     "description": "The Roc Loc 5 broken in my Giro Aeon helmet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/7d60416fd8ce.webp",
     "description": "Glueing the Roc Loc 5 - bad idea",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/71a943add0fc.webp",
     "description": "Roc Loc 5 - try finding this part on the internet...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/2c57a701058b.webp",
     "description": "You'd be surprised what you can find on eBay... hooray! New old stock Roc Loc 5!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/a90c4f779970.webp",
     "description": "Shipping details - my new Roc Loc 5 has seen parts of the World I have yet to visit!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/9921b6bd1a66.webp",
     "description": "New Roc Loc 5 installed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/d57e937fdd4d.webp",
     "description": "Rear of the helmet, note how the strap goes through the Roc Loc 5 ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/584e2e65af1c.webp",
     "description": "Side image the helmet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/0fd953caaf8f.webp",
     "description": "Removing the old padding is easy, just detach the velcro tape",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/c26e84b2acf2.webp",
     "description": "Installing fresh paddings isn't hard either, just make sure to align it properly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/41b6864cad77.webp",
     "description": "Wearing my helmet again!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/6229135b5e5f.webp",
     "description": "For those of you that are interested, this is a picture of the barcodes + part codes of the Roc Loc 5 system and the pad set",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36974_images-13.jpg"
    }
   ]
  },
  {
   "id": 36975,
   "slug": "2020-06-24_some-thoughts-on-touch-screen-user-interface-design",
   "url": "https://agents.willem.com/en/posts/2020-06-24_some-thoughts-on-touch-screen-user-interface-design/",
   "source_url": "https://willem.com/en/2020-06-24_some-thoughts-on-touch-screen-user-interface-design/",
   "language": "en",
   "date": "2020-06-24",
   "published": "2020-06-24T00:00:00+02:00",
   "created": "2025-06-26T22:09:57.709000+02:00",
   "updated": "2026-04-03T14:34:50.488000+02:00",
   "title": "Some thoughts on touch screen user interface design",
   "subtitle": "Creating intuitive natural interfaces",
   "summary": "Past weeks I have been working on a new app involving personal health. The main challenge is to come up with an intuitive, natural interface that works well on small touch screen devices. But what is it that makes an touch screen interface any good? Read along for some best practices.",
   "topics": [
    "creating",
    "creativity",
    "design",
    "game",
    "howto",
    "iOS",
    "iPad",
    "smartphone",
    "snake"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-06-24_enkele-gedachten-over-touchscreen-user-interface-design/",
    "source_url": "https://willem.com/nl/2020-06-24_enkele-gedachten-over-touchscreen-user-interface-design/"
   },
   "image": "https://willem.com/global/images/cc7c63278f76.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/9710101b75bf.webp",
     "description": "Recreating old UI patterns on a modern touch screen device is not going to win you any usability awards... (although, who doesn't miss Clippy?) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/37433282f380.webp",
     "description": "Directly manipulating the on screen elements feels natural - a mouse in this use case would be redundant",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/1c0b65647905.webp",
     "description": "The big 'yes/no' buttons reduce the likelihood of error as they do not require mouse pointer pixel precision",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/9022cd4a6bb1.webp",
     "description": "Contextual keyboards provide a better way to enable textual input. It makes no sense to show a full QWERTY-keyboard if you only ask for a numeric value.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/9e15010dbbdf.webp",
     "description": "The Back / Hide / Save buttons are near the thumb: they are within range and reaching for them does not cover the contents of the screen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/8b0744e3bebc.webp",
     "description": "Navigation structures that rely on hovering are NOT going to work on touch screens",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/840381231d21.webp",
     "description": "Snake '97 - It's fun, but it's UI design is arguably bad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/c673e319ed77.webp",
     "description": "Catapulting birds is fun because of the natural interaction that is key to the Angry Birds game",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36975_images-8.jpg"
    }
   ]
  },
  {
   "id": 36976,
   "slug": "2020-06-17_tudor-black-bay-36-long-term-review",
   "url": "https://agents.willem.com/en/posts/2020-06-17_tudor-black-bay-36-long-term-review/",
   "source_url": "https://willem.com/en/2020-06-17_tudor-black-bay-36-long-term-review/",
   "language": "en",
   "date": "2020-06-17",
   "published": "2020-06-17T00:00:00+02:00",
   "created": "2025-06-26T22:09:58.144000+02:00",
   "updated": "2026-04-03T14:34:50.747000+02:00",
   "title": "Tudor Black Bay 36 long-term review",
   "subtitle": "Six months on the wrist",
   "summary": "For the past six months I have been wearing the same watch, pretty much every day and night. It's a Tudor Black Bay 36 watch in steel, with a black dial. I like minimal (yet functional) design that lasts, this watch certainly ticks the right boxes. Read along to find out how wearable a smaller watch is in daily practice.",
   "topics": [
    "design",
    "minimal",
    "review",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-06-17_tudor-black-bay-36-lange-termijn-review/",
    "source_url": "https://willem.com/nl/2020-06-17_tudor-black-bay-36-lange-termijn-review/"
   },
   "image": "https://willem.com/global/images/0b3ebb13577c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0ffebbd149c9.webp",
     "description": "Tudor Oyster Prince ad (1952) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/743025cc12e3.webp",
     "description": "Tudor Black Bay 36 (photo by Tudor)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/9fb490f96236.webp",
     "description": "The pitch black dial, smooth bezel and high contrast indexes come alive under daylight",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ce7d4ff62d55.webp",
     "description": "Tudor Black Bay 36 on the wrist",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/a21f7b7da71c.webp",
     "description": "Black Bay 36MM size compared to a Whoop bio sensor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/11d535e5868b.webp",
     "description": "In my average-sized hands, the watch is just the right size",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/91dd1ac8cffd.webp",
     "description": "The Black Bay 36 is powered by the ETA 2824 movement (photo by Zeitauction GmbH) - a well known mechanical calibre with a trustworthy trackrecord",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/b4679d90938a.webp",
     "description": "The watch feels at home in and around the pool",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/088c48756082.webp",
     "description": "The 36MM size is really very comfortable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/ce798262a900.webp",
     "description": "It's light enough to be comfortable while cycling...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/d8eaf6ee0ce7.webp",
     "description": "... and when eating ice-creams afterwards :-) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/60cb9537fcc7.webp",
     "description": "The Oyster bracelet - precisely engineered to be both comfortable and strong",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/754aee3b3f24.webp",
     "description": "The steel bracelet fits the watch perfectly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/eed23a6734d0.webp",
     "description": "But the Oyster case is beautiful on other straps, too, like on this gray NATO",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/65a5b3e03c37.webp",
     "description": "The Black Bay works well on other straps, too",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/a997226a7353.webp",
     "description": "This is what 6 months of continuous wear look like on a Oyster bracelet!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36976_images-16.jpg"
    }
   ]
  },
  {
   "id": 36977,
   "slug": "2020-06-12_linking-lemmid-store-with-kitchens",
   "url": "https://agents.willem.com/en/posts/2020-06-12_linking-lemmid-store-with-kitchens/",
   "source_url": "https://willem.com/en/2020-06-12_linking-lemmid-store-with-kitchens/",
   "language": "en",
   "date": "2020-06-12",
   "published": "2020-06-12T00:00:00+02:00",
   "created": "2025-06-26T22:09:58.524000+02:00",
   "updated": "2025-07-22T16:42:45.474000+02:00",
   "title": "Linking Lemmid Store with kitchens",
   "subtitle": "Integrating with external systems that you don't control",
   "summary": "As part of the food ordering app I am building, I needed to design a reliable way to link the app to external systems. These external systems are beyond my direct control and include different checkout registers, kitchen management systems and ticket printers. Read along for more on designing for the unknown and unreliable.",
   "topics": [
    "data",
    "design",
    "lemmid-store",
    "networking",
    "programming",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-06-12_lemmid-store-koppelen-met-keukens/",
    "source_url": "https://willem.com/nl/2020-06-12_lemmid-store-koppelen-met-keukens/"
   },
   "image": "https://willem.com/global/images/26932b5ea8be.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e4dce3b523ff.webp",
     "description": "Lemmid Store - an app to order takeaway food",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36977_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/2c395cf2f419.webp",
     "description": "Printed ticket - through an external connection - including detailed order data like product modifiers (customer's choices per product)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36977_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/a1d4ad9cd8a3.webp",
     "description": "Integrating external systems into your app is like fitting third-party parts to an engine: you must carefully consider their fit and reliability (image of a combustion engine, public domain)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36977_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/2e9aca708f2b.webp",
     "description": "Separating the main backend server from the external systems by introducing a purpose built 'connector server'",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36977_images-4.png"
    }
   ]
  },
  {
   "id": 36978,
   "slug": "2020-05-25_different-ways-to-visualise-health",
   "url": "https://agents.willem.com/en/posts/2020-05-25_different-ways-to-visualise-health/",
   "source_url": "https://willem.com/en/2020-05-25_different-ways-to-visualise-health/",
   "language": "en",
   "date": "2020-05-25",
   "published": "2020-05-25T00:00:00+02:00",
   "created": "2025-06-26T22:09:58.699000+02:00",
   "updated": "2026-04-03T14:34:50.982000+02:00",
   "title": "Different ways to visualise health",
   "subtitle": "Looking at games and fitness apps",
   "summary": "This month I did some research into how health is visualised in fitness apps and games. For a new app involving personal health I am looking for an intuitive way to visualise how healthy one person is. There are many colourful approaches out there!",
   "topics": [
    "creativity",
    "data",
    "design",
    "game",
    "health",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-05-25_verschillende-manieren-om-gezondheid-te-visualiseren/",
    "source_url": "https://willem.com/nl/2020-05-25_verschillende-manieren-om-gezondheid-te-visualiseren/"
   },
   "image": "https://willem.com/global/images/ba1bce7ebace.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/2e660ac913d9.webp",
     "description": "The Activity app by Apple shows data measured by Apple Watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36978_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/ecfe9d33c8da.webp",
     "description": "The Biostrap app shows data collected by the Biostrap sensor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36978_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/2aa0def4304d.webp",
     "description": "Pillow sleep app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36978_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/4b67e45f4985.webp",
     "description": "Whoop showing strain and recovery",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36978_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/1e59f261fd36.webp",
     "description": "Mario 64 and a the Super Mario Galaxy life bar",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36978_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/d55fb06b37b7.webp",
     "description": "Doom and the protagonist \"Mud\" showing how he feels ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36978_images-6.png"
    }
   ]
  },
  {
   "id": 36979,
   "slug": "2020-05-11_scalable-application-design-without-magic",
   "url": "https://agents.willem.com/en/posts/2020-05-11_scalable-application-design-without-magic/",
   "source_url": "https://willem.com/en/2020-05-11_scalable-application-design-without-magic/",
   "language": "en",
   "date": "2020-05-11",
   "published": "2020-05-11T00:00:00+02:00",
   "created": "2025-06-26T22:09:59.814000+02:00",
   "updated": "2026-04-03T14:34:51.209000+02:00",
   "title": "Scalable application design without magic",
   "subtitle": "Leveraging client computing power for high performance with many users",
   "summary": "As part of the online food ordering app I'm building, I needed to design a scalable backend infrastructure that could handle lots of concurrent users. Scalability is considered a hard problem to tackle. Often it's presented like it's something magical, done by million dollar companies using secret tools. But, there is no such thing as magic, or is there?",
   "topics": [
    "cloud",
    "data",
    "design",
    "howto",
    "iOS",
    "lemmid-store",
    "programming",
    "server",
    "smartphone",
    "web",
    "webdesign"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-05-11_schaalbaar-applicatieontwerp-zonder-magie/",
    "source_url": "https://willem.com/nl/2020-05-11_schaalbaar-applicatieontwerp-zonder-magie/"
   },
   "image": "https://willem.com/global/images/b11642014936.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/02bda6e71f78.webp",
     "description": "One user interacting with one server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/0983daa5d3fa.webp",
     "description": "Server under high load handling multiple concurrent users",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/e4d580ef3ee0.webp",
     "description": "Smartphones (and tablets, PC's) have become more powerful over the years (image: Apple)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/3b24ef5be7d6.webp",
     "description": "Leveraging a user's device: the user's phone does most of the work originally done by the server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/d08b396a761f.webp",
     "description": "Ordering food online",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1d2831da7a52.webp",
     "description": "Separating the remaining server workload: serving products and handling orders",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/4c106f30570a.webp",
     "description": "Handling lots of traffic through distributed computing",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36979_images-7.png"
    }
   ]
  },
  {
   "id": 36980,
   "slug": "2020-05-01_designing-an-interface-for-a-food-ordering-page",
   "url": "https://agents.willem.com/en/posts/2020-05-01_designing-an-interface-for-a-food-ordering-page/",
   "source_url": "https://willem.com/en/2020-05-01_designing-an-interface-for-a-food-ordering-page/",
   "language": "en",
   "date": "2020-05-01",
   "published": "2020-05-01T00:00:00+02:00",
   "created": "2025-06-26T22:10:00.066000+02:00",
   "updated": "2026-04-03T14:31:11.523000+02:00",
   "title": "Designing an interface for a food ordering page",
   "subtitle": "Striking a balance between powerful options and mobile usability",
   "summary": "Online ordering pages are more important than ever before. The COVID-19 virus, the resulting lockdowns and the social distancing rules have  emphasised the need for a well-designed webshop user interface. This is surprisingly hard to get right!",
   "topics": [
    "creating",
    "design",
    "lemmid-store",
    "programming",
    "smartphone",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-05-01_een-interface-ontwerpen-voor-een-bestelpagina-voor-eten/",
    "source_url": "https://willem.com/nl/2020-05-01_een-interface-ontwerpen-voor-een-bestelpagina-voor-eten/"
   },
   "image": "https://willem.com/global/images/649de8a48c1c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/46615fdc8e0d.webp",
     "description": "Initial sketch for the food ordering user interface",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36980_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/92caf81f6d3a.webp",
     "description": "Sketching in context: try framing your design in a smaller viewport",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36980_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/4fcb33754a9f.webp",
     "description": "Sketching a two step interaction: differentiating between list and detail modes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36980_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/2eb5b8a8f3a5.webp",
     "description": "Ordering food in three steps: list, detail, summary",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36980_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/c80a12452033.webp",
     "description": "Deceptively simple: the resulting food ordering page",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36980_images-5.jpg"
    }
   ]
  },
  {
   "id": 36981,
   "slug": "2020-04-30_minimalistic-road-bike-with-gates-carbon-drive",
   "url": "https://agents.willem.com/en/posts/2020-04-30_minimalistic-road-bike-with-gates-carbon-drive/",
   "source_url": "https://willem.com/en/2020-04-30_minimalistic-road-bike-with-gates-carbon-drive/",
   "language": "en",
   "date": "2020-04-30",
   "published": "2020-04-30T00:00:00+02:00",
   "created": "2025-06-26T22:10:00.328000+02:00",
   "updated": "2026-04-03T14:34:51.421000+02:00",
   "title": "Minimalistic road bike with Gates carbon drive",
   "subtitle": "Meet your new therapist: the Schindelhauer Siegfried Road",
   "summary": "For the past few months I have been riding a special kind of bike, the minimalistic Siegfried Road from Schindelhauer. It is unlike most road bikes as it lacks a conventional chain and derailleur. It features the Gates CDX carbon drive. It's an exercise in minimal design. After riding it for nearly 1000KM, it's time to tell you all about it.",
   "topics": [
    "Amsterdam",
    "Durable",
    "Freedom",
    "bike",
    "design",
    "minimal",
    "mobility",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-04-30_minimalistische-racefiets-met-gates-carbon-drive/",
    "source_url": "https://willem.com/nl/2020-04-30_minimalistische-racefiets-met-gates-carbon-drive/"
   },
   "image": "https://willem.com/global/images/7392a9f736b8.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/db2bfaef07e7.webp",
     "description": "Schindelhauer Bikes designs belt drive bikes since 2009 (photos: schindelhauerbikes.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/4267c7998698.webp",
     "description": "Siegried Road delivered through Kaptein Tweewielers Amsterdam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/8c7a0443e939.webp",
     "description": "Siegfried Road as I got it from the bike shop - with a brown Brooks Swift saddle and matching Continental tires ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/83bfcff4d3f4.webp",
     "description": "If you've got the shoes to match, brown bar tape looks magnificent",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/92c9d497da13.webp",
     "description": "Replacing the brown leather with black rubber bar tape (from Brooks)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/0e05f8d0a468.webp",
     "description": "Removing the Alfine, Hollowtech II crank",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/31f69ac9ecb1.webp",
     "description": "The Shimano FC-R9100 Dura Ace power meter by 4iiii fits perfectly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/0391adc31c6d.webp",
     "description": "One day I might remove the paint from the crank, but it's better for your warrantee to leave things in their original condition",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/6d35a7477f96.webp",
     "description": "The Wahoo Speed sensor installed on the flip-flop rear hub",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/c1fb19ecf4bf.webp",
     "description": "The Continental Grand Prix Classic tires are beautiful, if you like brown retro vibes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/e073a53811cd.webp",
     "description": "Loosen the rear axle to create just enough clearance to take the belt from the sprockets",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/270039390b88.webp",
     "description": "The CDX rear sprocket is designed to last",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/d0697eed9933.webp",
     "description": "Siegfried Road with a touch of Willem",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/79d4cbe5247e.webp",
     "description": "The seatpost clamp is integrated in the minimal AL6061-T6 aluminium, triple butted aero tubing frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/c7a982fa75a5.webp",
     "description": "The rear wheel is fixed using a 'crocodile' belt tensioning system",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/9eb7108ff73e.webp",
     "description": "Kleo Carbon pedals (by Look) on the front crank on the BSA bottom bracket",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/a19f14b03972.webp",
     "description": "Without the conventional derailleurs the drive train is rather straightforward (60T/22T gear ratio)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/b5df038595c4.webp",
     "description": "Siegfried Road features simple, yet very functional Tektro R539 / TRP - RRL brakes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/4d6d29e248e4.webp",
     "description": "The Alexrims CX30 silver high polished wheels have high quality hubs ensuring a smooth ride",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/c299922bea97.webp",
     "description": "The beautifully spoked wheel is nothing short of harmonious, simple yet beautiful",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/7205bb32ddec.webp",
     "description": "The Schwalbe Durano Plus tire is the most puncture resistant road bike tire available ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/c9248d84bfe1.webp",
     "description": "Out in the wild: Siegfried Road x Willem",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/9d08f34e8657.webp",
     "description": "Happy chap riding a bike on an empty road",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/814681120fae.webp",
     "description": "You, the bike, the road, nothing else: cycling in optima forma",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/264f052287c6.webp",
     "description": "No degreasing and oil required - simply rinse off your bike after a wet ride",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36981_images-25.jpg"
    }
   ]
  },
  {
   "id": 36982,
   "slug": "2020-04-14_talking-tablets-what-makes-a-great-tablet",
   "url": "https://agents.willem.com/en/posts/2020-04-14_talking-tablets-what-makes-a-great-tablet/",
   "source_url": "https://willem.com/en/2020-04-14_talking-tablets-what-makes-a-great-tablet/",
   "language": "en",
   "date": "2020-04-14",
   "published": "2020-04-14T00:00:00+02:00",
   "created": "2025-06-26T22:10:01.599000+02:00",
   "updated": "2026-04-03T14:34:51.686000+02:00",
   "title": "Talking tablets: what makes a great tablet?",
   "subtitle": "Working with Microsoft Surface Pro X",
   "summary": "Earlier this year Microsoft released their brand new Surface Pro X tablet computer, in many ways this is a forward thinking device. As I like working with tablets I wondered what exactly makes a great tablet? Is Surface Pro X any good? Read along to find out.",
   "topics": [
    "SSH",
    "Windows",
    "design",
    "laptop",
    "mobility",
    "office",
    "pencil",
    "review",
    "tablet",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-04-14_talking-tablets-wat-maakt-een-tablet-geweldig/",
    "source_url": "https://willem.com/nl/2020-04-14_talking-tablets-wat-maakt-een-tablet-geweldig/"
   },
   "image": "https://willem.com/global/images/c2b645f5d2cb.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d7d698b4b179.webp",
     "description": "Unpacking Surface Pro X ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/d7a9b5cf2240.webp",
     "description": "Surface Pro X Signature Keyboard with the Slim Pen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/39529d91bc66.webp",
     "description": "The keyboard connects using a magnetic connector that also provides power and connectivity (no separate battery or connection setup required)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/8ce089ff1868.webp",
     "description": "The keys are 'real' and there is a nice multi touch glass trackpad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/9cffa9cba02f.webp",
     "description": "Disconnected keyboards have their advantages, too... :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1b6f735c1ad2.webp",
     "description": "Alcantara covered keyboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e8ad49a47760.webp",
     "description": "Surface Pro X with its keyboard is just like a laptop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/01723afa1da7.webp",
     "description": "The Slim Pen is always ready, charged, within reach, above the function row of keys",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/882dc1ee024a.webp",
     "description": "The Surface Slim Pen is about the same size as a conventional pen, slightly smaller then Apple Pencil",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/7c1f48262c77.webp",
     "description": "Handling the Suface Slim Pen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b648bc8e209.webp",
     "description": "Pen responsiveness is great",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/d02a7ae2c540.webp",
     "description": "Imprecise ruler in Microsoft Whiteboard hampers the experience",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/b57789096e71.webp",
     "description": "Manipulating high resolution images using GIMP, working with multiple layers - works great on Surface Pro X",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/73ac97a4d461.webp",
     "description": "\"Look ma, no Putty\" - SSH into anything, natively on Windows",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/2c1e49862532.webp",
     "description": "Coding on Surface Pro X is a dream thanks to the spacious screen and gorgeous keyboard - I do this over SSH with tmux on a dedicated, powerful development VPS ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/7f8d436238e1.webp",
     "description": "Use the pen to draw, write and design",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/92e2a4f3dc6e.webp",
     "description": "Different tablets, different software: iPadOS, Windows and \"WillemOS\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/1bae27da9f00.webp",
     "description": "Directly manipulating the interface with your fingers is a perfect example of integrating hardware with software",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/fdab8789c4ed.webp",
     "description": "Intuitive interfaces don't require a manual",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/e4480c704f71.webp",
     "description": "Surface Pro X does many things very well - it makes the perfect case to be your only computer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36982_images-20.jpg"
    }
   ]
  },
  {
   "id": 36983,
   "slug": "2020-04-01_traffic-shaping-using-iptables-and-tc",
   "url": "https://agents.willem.com/en/posts/2020-04-01_traffic-shaping-using-iptables-and-tc/",
   "source_url": "https://willem.com/en/2020-04-01_traffic-shaping-using-iptables-and-tc/",
   "language": "en",
   "date": "2020-04-01",
   "published": "2020-04-01T00:00:00+02:00",
   "created": "2025-06-26T22:10:02.354000+02:00",
   "updated": "2025-07-22T16:42:46.297000+02:00",
   "title": "Traffic shaping using iptables and tc",
   "subtitle": "Limiting outbound network bandwidth per client IP-address",
   "summary": "Last month I received an automated alert indicating excessive bandwidth usage, usually a sign of trouble. When this happens, you should follow a standard incident procedure, trying to isolate the source of the traffic before shutting it down. The cause of this incident was not what I expected however... requiring a different kind of mitigation than a simple blockade.",
   "topics": [
    "cloud",
    "cyber-security",
    "data",
    "linux",
    "networking",
    "server",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-04-01_verkeer-vormgeven-met-iptables-en-tc/",
    "source_url": "https://willem.com/nl/2020-04-01_verkeer-vormgeven-met-iptables-en-tc/"
   },
   "image": "https://willem.com/global/images/074af69e7bb6.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/cbef76c36df8.webp",
     "description": "Bandwidth graph of AMS-IX shows a predictable pattern - notice the wave-like pattern",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/f7c2d76b6a59.webp",
     "description": "Bandwidth graph with unusual spike indicating that something is wrong - you don't need to be Sherlock Holmes to find it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/2143a4110498.webp",
     "description": "Using the iftop tool to see bandwidth usage per connected IP-address",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/aee8f43379f0.webp",
     "description": "Bugs in Microsoft Outlook cause it to keep synchronising IMAP folders, a problem experienced by many people (see the number of views!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/62fa4ef3cf7a.webp",
     "description": "Using tokens to control traffic - only passengers (or data packets) with a valid token are allowed. Tokens are returned as traffic reaches its destination.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/d64adfb34510.webp",
     "description": "Traffic must wait for tokens to become available when the maximum number of tokens is given away, enforcing the maximum concurrent traffic",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/8cd95b55b130.webp",
     "description": "Sample traffic shaping script",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36983_images-7.png"
    }
   ]
  },
  {
   "id": 36984,
   "slug": "2020-03-25_designing-and-implementing-a-micro-payment-system",
   "url": "https://agents.willem.com/en/posts/2020-03-25_designing-and-implementing-a-micro-payment-system/",
   "source_url": "https://willem.com/en/2020-03-25_designing-and-implementing-a-micro-payment-system/",
   "language": "en",
   "date": "2020-03-25",
   "published": "2020-03-25T00:00:00+01:00",
   "created": "2025-06-26T22:10:02.624000+02:00",
   "updated": "2025-07-22T16:42:46.413000+02:00",
   "title": "Designing and implementing a (micro) payment system",
   "subtitle": "Monetising my blog with coffee, Apple Pay and Mollie",
   "summary": "Online payments are now more important than ever as businesses are disrupted by the COVID-19 virus. It drives my customers to seek new ways to make money online. I designed and implemented a (micro)payment system. This post is about achieving simplicity by solving complex challenges.",
   "topics": [
    "Amsterdam",
    "design",
    "iPad",
    "lemmid-store",
    "money",
    "payments",
    "programming",
    "server",
    "tablet",
    "vim",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-03-25_het-ontwerpen-en-implementeren-van-een-micro-betaalsysteem/",
    "source_url": "https://willem.com/nl/2020-03-25_het-ontwerpen-en-implementeren-van-een-micro-betaalsysteem/"
   },
   "image": "https://willem.com/global/images/5631448e9aa5.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0027da9ce9fa.webp",
     "description": "Steve Jobs announcing the Keynote app at MacWorld 2003, joking that it was build for himself, him being an underpaid beta tester",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/b5830cd60667.webp",
     "description": "Interface concept sketches, exploring different options to leave a message and buying multiple cups of coffee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/2d289b8f000c.webp",
     "description": "Translating the design sketch (left) into a prototype (right) on iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/e35470bb82d5.webp",
     "description": "Designing the coffee cup using Picta Graphic for iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/cddef4803d92.webp",
     "description": "Developing the user interface using Blink and Inspect Browser on iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/a24f596e619d.webp",
     "description": "Sketched sequence diagram of payment process",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/a04e328d248f.webp",
     "description": "Mollie is a payment provider that supports many different payment methods, including credit cards, PayPal, iDEAL, Sofort, Giropay, SEPA, various bank apps and Apple Pay",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/d214aa5c60ef.webp",
     "description": "Calling Mollie from NodeJS using promise based JavaScript",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/79791152064c.webp",
     "description": "Handling payment status updates ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/acc0ecf42914.webp",
     "description": "Connecting frontend with backend technology, simple as 1-2-3",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/487f0979a7e9.webp",
     "description": "Time to drink coffee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36984_images-11.jpg"
    }
   ]
  },
  {
   "id": 36985,
   "slug": "2020-03-09_making-my-own-tablet-os",
   "url": "https://agents.willem.com/en/posts/2020-03-09_making-my-own-tablet-os/",
   "source_url": "https://willem.com/en/2020-03-09_making-my-own-tablet-os/",
   "language": "en",
   "date": "2020-03-09",
   "published": "2020-03-09T00:00:00+01:00",
   "created": "2025-06-26T22:10:03.099000+02:00",
   "updated": "2026-04-03T14:34:51.962000+02:00",
   "title": "Making my own tablet OS",
   "subtitle": "Installing and modifying Debian GNU/Linux on Surface Go",
   "summary": "For some years now I use a tablet as main computer, I like its versatility. But, most tablets come with a locked down operating system, like iPadOS, Windows 10S or Android. As I like things my own (weird) way, I wondered if I could escape these \"software jails\" by installing a free operating system on a tablet. It's possible, read along to find out how I escaped!",
   "topics": [
    "Freedom",
    "design",
    "experiment",
    "hacking",
    "linux",
    "minimal",
    "tablet"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-03-09_mijn-eigen-tablet-os-maken/",
    "source_url": "https://willem.com/nl/2020-03-09_mijn-eigen-tablet-os-maken/"
   },
   "image": "https://willem.com/global/images/69c69c28c60b.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ab9c8e745c92.webp",
     "description": "Microsoft Surface Go - an ultra portable 10\" touch screen tablet computer (with type cover, pen and USB-C to ethernet and USB 3.0 adapter)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/382661906f53.webp",
     "description": "Check for updates manually using Windows Update",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/c9eda8928a1e.webp",
     "description": "Note the many firmware updates, you can only install them from Windows",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/af71b0cde6d9.webp",
     "description": "It might take some time, be patient or take photos :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/61767ebbcabc.webp",
     "description": "Debian GNU/Linux - The universal operating system",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/96a301b9ec66.webp",
     "description": "You can use another computer to create a bootable USB stick, I used my ThinkPad X1",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/8646d08e6a22.webp",
     "description": "Connecting the bootable USB drive to the Surface tablet using the USB-C to USB 3.0 and ethernet dongle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/1aba81e0731b.webp",
     "description": "\"Advanced Startup Options\" from Windows Settings allows you to use a USB drive as boot medium ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/9021f73fd09d.webp",
     "description": "Choose \"Linpus Lite\" to boot the installer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/da801a0461f7.webp",
     "description": "Debian GNU/Linux Installer Menu on Surface Go - happy me",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/ab59c48e114c.webp",
     "description": "Missing firmware renders hardware unusable during installation",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/d917bfda53e6.webp",
     "description": "Installation in progress - note the connected network cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/8631db9f2712.webp",
     "description": "Compiling my customised Linux kernel",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/416d53ff1e62.webp",
     "description": "Compiling the Linux kernel on a Surface Go takes some hours",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/5a77b988dded.webp",
     "description": "The 'onboard' virtual keyboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/126e903aa197.webp",
     "description": "Pen input works using my custom linux kernel and the Xournal app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/adba635a29f9.webp",
     "description": "Using the customised operating system on tablet to create content for this blog",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/947d3ad6683a.webp",
     "description": "Reading an article on my tablet in portrait mode",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/df660a485a36.webp",
     "description": "Using the customised Surface Go (right) for programming, similar to how I work using an iPad Pro (left)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36985_images-19.jpg"
    }
   ]
  },
  {
   "id": 36986,
   "slug": "2020-03-03_monolithic-vs-microservices-software-architecture",
   "url": "https://agents.willem.com/en/posts/2020-03-03_monolithic-vs-microservices-software-architecture/",
   "source_url": "https://willem.com/en/2020-03-03_monolithic-vs-microservices-software-architecture/",
   "language": "en",
   "date": "2020-03-03",
   "published": "2020-03-03T00:00:00+01:00",
   "created": "2025-06-26T22:10:03.931000+02:00",
   "updated": "2025-07-23T08:42:38.545000+02:00",
   "title": "Monolithic vs Microservices software architecture",
   "subtitle": "Choosing the right design for your app development",
   "summary": "This week I flew to Gothenburg to meet people from a large international shipping company, talking about the development of enterprise level software. During the meeting there were various experts in the room, one of them asked me on choosing the right software architecture (for big, complex, enterprise level apps). A very good question, well worthy for a blog post.",
   "topics": [
    "cloud",
    "data",
    "design",
    "programming",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-03-03_monolithische-versus-microservices-softwarearchitectuur/",
    "source_url": "https://willem.com/nl/2020-03-03_monolithische-versus-microservices-softwarearchitectuur/"
   },
   "image": "https://willem.com/global/images/ac25803922f6.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/189c28c69d02.webp",
     "description": "Visiting a large international shipping company to talk about enterprise software",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36986_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/b73d8bf569bc.webp",
     "description": "Simple software architecture example - different structures composing a system with different relations between them",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36986_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/df6c62e25d7d.webp",
     "description": "Increased complexity as the number of structures (and their relations) grows",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36986_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/875d62aa72f8.webp",
     "description": "Monolithic software architecture",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36986_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/2705ce2c332c.webp",
     "description": "Microservices Software Architecture",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36986_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/e50e134c3fb7.webp",
     "description": "“The sky is the limit” if you master the architecture you have chosen (just don’t change it during flight!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36986_images-6.jpg"
    }
   ]
  },
  {
   "id": 36987,
   "slug": "2020-02-28_your-own-addressbook-and-calendar-cloud",
   "url": "https://agents.willem.com/en/posts/2020-02-28_your-own-addressbook-and-calendar-cloud/",
   "source_url": "https://willem.com/en/2020-02-28_your-own-addressbook-and-calendar-cloud/",
   "language": "en",
   "date": "2020-02-28",
   "published": "2020-02-28T00:00:00+01:00",
   "created": "2025-06-26T22:10:04.275000+02:00",
   "updated": "2026-04-03T14:31:11.748000+02:00",
   "title": "Your own addressbook and calendar cloud",
   "subtitle": "Share contacts, agendas and tasks with CardDAV/CalDAV",
   "summary": "If you use different devices and computers to get things done, you might want to synchronise contacts, agendas and tasks. You can use any of the 'big cloud' services for this, like Apple iCloud, Microsoft Office 365 and Google Gmail. But, if you prefer not to share your addressbook and calendar with big American companies, you can do it yourself.",
   "topics": [
    "Freedom",
    "Windows",
    "android",
    "apple",
    "cloud",
    "data",
    "iPad",
    "iPhone",
    "linux",
    "networking",
    "office",
    "server",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-02-28_je-eigen-adresboek-en-agenda-cloud/",
    "source_url": "https://willem.com/nl/2020-02-28_je-eigen-adresboek-en-agenda-cloud/"
   },
   "image": "https://willem.com/global/images/f1d76451325b.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/a53513d7f1e8.webp",
     "description": "CardDAV/CalDAV server connecting with devices and apps",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36987_images-1.png"
    }
   ]
  },
  {
   "id": 36988,
   "slug": "2020-02-13_the-day-i-sold-my-car",
   "url": "https://agents.willem.com/en/posts/2020-02-13_the-day-i-sold-my-car/",
   "source_url": "https://willem.com/en/2020-02-13_the-day-i-sold-my-car/",
   "language": "en",
   "date": "2020-02-13",
   "published": "2020-02-13T00:00:00+01:00",
   "created": "2025-06-26T22:10:04.537000+02:00",
   "updated": "2026-04-03T14:34:52.188000+02:00",
   "title": "The day I sold my car",
   "subtitle": "Looking back at my years with Smart Roadster",
   "summary": "This week I sold my car, I now no longer own one. For me, this is something of a change as over the years I owned various sports cars that were like a hobby to me. My discovery of cycling and the birth of my son changed this. But if you're looking for a reason to buy a sports car, read along!",
   "topics": [
    "Amsterdam",
    "car",
    "lifestyle",
    "mobility",
    "people",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-02-13_de-dag-dat-ik-mijn-auto-verkocht/",
    "source_url": "https://willem.com/nl/2020-02-13_de-dag-dat-ik-mijn-auto-verkocht/"
   },
   "image": "https://willem.com/global/images/54765668dcdd.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/5dbac19e5804.webp",
     "description": "Smart Roadster - spice red",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b45635c0546.webp",
     "description": "Mercedes-Benz 3-cylinder Suprex engine",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/7629e5cd07ba.webp",
     "description": "Grippy tires provide plenty of contact with the tarmac",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/31b4d84c4282.webp",
     "description": "Smart Roadster steer - notice the F1-style gear flaps",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/7baaa9aa60d0.webp",
     "description": "Extra sporty gauges on the dashboard: turbo pressure and engine temperature",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/84a817bc8d14.webp",
     "description": "The car's interior is quite spacious - even if you're tall",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/39d6fa3e3682.webp",
     "description": "Driving my Smart Roadster in the Pyrenees mountains (France)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/57d63ec5270c.webp",
     "description": "Twisty mountain roads - pure fun in a Roadster! (near the French/Spanish border)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/bc96638df389.webp",
     "description": "Enjoying a little 'up and down' in the hilly countryside",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/c9dfbac70ee7.webp",
     "description": "Make sure to skip the highway, take the country roads (in Spain, near Alicante) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/96aa6df75e5d.webp",
     "description": "Open the cabrio roof and enjoy the weather, it's like playing outside for grown-ups (admit it: there is a child in all of us!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/71a549d87bf7.webp",
     "description": "The spacious trunk is big enough for a laptop or two",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/33f39066bed9.webp",
     "description": "With three straps and some cardboard, you can easily transport paintings of all sizes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/cbc07fb8d7d2.webp",
     "description": "Leave your girlfriend at home when you need to transport larger, more important stuff, like this HP DL380 Gen8 server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/65705d28053e.webp",
     "description": "Who needs a boat trailer anyway? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/90add49d7777.webp",
     "description": "If you use the appropriate flowers, you might even find yourself a nice bride!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/b91aba99d229.webp",
     "description": "The open roof doubles as an ergonomic cargo hatch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/f53b98176786.webp",
     "description": "Parking garage full? Think again!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/7aa1efc6f986.webp",
     "description": "The Smart Roadster fits in a shoe box, keep it under your bed or next to your lawn mower",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/11a4c1c14c9c.webp",
     "description": "The arrival of the family car...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/80aa1a727aed.webp",
     "description": "Opel Kadett Cabrio 1.6i Bertone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/3dd0dce7b886.webp",
     "description": "Smart Roadster - all black",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/d3cad6b5303e.webp",
     "description": "Mercedes-Benz SLK55 AMG V8 5.5L ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36988_images-23.jpg"
    }
   ]
  },
  {
   "id": 36989,
   "slug": "2020-01-28_measuring-cholesterol-levels-in-blood",
   "url": "https://agents.willem.com/en/posts/2020-01-28_measuring-cholesterol-levels-in-blood/",
   "source_url": "https://willem.com/en/2020-01-28_measuring-cholesterol-levels-in-blood/",
   "language": "en",
   "date": "2020-01-28",
   "published": "2020-01-28T00:00:00+01:00",
   "created": "2025-06-26T22:10:05.494000+02:00",
   "updated": "2025-07-22T16:42:46.971000+02:00",
   "title": "Measuring cholesterol levels in blood",
   "subtitle": "Know your LDL, HDL and Triglyceride numbers",
   "summary": "This week I went to my doctor to have my blood examined, to determine my cholesterol levels. Over the past years I have been paying more and more attention to my health. After improving my lifestyle considerably, I wondered what my numbers were.",
   "topics": [
    "data",
    "health",
    "heart",
    "lifestyle"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-01-28_cholesterolgehalte-in-het-bloed-meten/",
    "source_url": "https://willem.com/nl/2020-01-28_cholesterolgehalte-in-het-bloed-meten/"
   },
   "image": "https://willem.com/global/images/24702d73536c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d8a2df2af954.webp",
     "description": "Chemical structure of Cholesterol",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36989_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/b2354c1b45f3.webp",
     "description": "Patch after having my blood drawn for the cholesterol test",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36989_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/684c1dcd97b1.webp",
     "description": "Results from my cholesterol blood test",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36989_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/2870d5b91cf1.webp",
     "description": "Before and after changing my lifestyle  - two different Willem's",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36989_images-4.jpg"
    }
   ]
  },
  {
   "id": 36990,
   "slug": "2020-01-24_improve-your-sleep-by-blocking-light",
   "url": "https://agents.willem.com/en/posts/2020-01-24_improve-your-sleep-by-blocking-light/",
   "source_url": "https://willem.com/en/2020-01-24_improve-your-sleep-by-blocking-light/",
   "language": "en",
   "date": "2020-01-24",
   "published": "2020-01-24T00:00:00+01:00",
   "created": "2025-06-26T22:10:05.822000+02:00",
   "updated": "2026-04-03T14:34:52.393000+02:00",
   "title": "Improve your sleep by blocking light",
   "subtitle": "On the benefits of wearing a sleep mask in bed",
   "summary": "Over the past few weeks I have been experimenting with wearing a sleep mask in bed, blocking all light. Our bodies produce the sleep hormone, melatonin, in darkness. Living in an environment awash in artificial light, is therefore exactly the sort of thing that disrupts one's circadian rhythm. Can a simple mask help?",
   "topics": [
    "data",
    "experiment",
    "health",
    "heart",
    "lifestyle",
    "review",
    "sensors"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2020-01-24_verbeter-je-slaap-door-licht-te-blokkeren/",
    "source_url": "https://willem.com/nl/2020-01-24_verbeter-je-slaap-door-licht-te-blokkeren/"
   },
   "image": "https://willem.com/global/images/173503fe4b00.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/da1a9b27b20c.webp",
     "description": "The Mindfold sleep mask: total darkness with your eyes open",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc34cd04b108.webp",
     "description": "Maybe it's the font, maybe it's her haircut, but somehow I get a 80s vibe from the Mindfold's packaging :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ff2ac3ebd562.webp",
     "description": "The sleep mask has open spaces covering your eyes, allowing your eyes to open freely (while maintaining darkness): this is a mayor difference with many other masks that sit right on your eye lids ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/cf1cdf4de4d5.webp",
     "description": "The soft foam conforms to your face for maximum comfort and darkness",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/c410a9215f76.webp",
     "description": "The mask is flexible, enabling a comfortable fit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/ddaa508b14ab.webp",
     "description": "Wearing a sleep mask, you can see the mask takes the shape of my head",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6997b8ca0a3e.webp",
     "description": "Pavlovian response: my body knows it's time to sleep when I put my mask on - zzzzz",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/c581a81470d9.webp",
     "description": "Heart rate graph shows a near flat line, very close to my minimum rate (collected with Biostrap)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/8607e6e434b5.webp",
     "description": "Average heart rate variability (HRV) during the same night shows a steady increase (and recovery)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-9.png"
    },
    {
     "url": "https://willem.com/global/images/5ac339f455b7.webp",
     "description": "Effects of a nap during the day: around 2pm you'll notice a steady decline in heart rate",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36990_images-10.png"
    }
   ]
  },
  {
   "id": 36991,
   "slug": "2019-12-31_whoop-strap-review-24-7-wearable-sensor",
   "url": "https://agents.willem.com/en/posts/2019-12-31_whoop-strap-review-24-7-wearable-sensor/",
   "source_url": "https://willem.com/en/2019-12-31_whoop-strap-review-24-7-wearable-sensor/",
   "language": "en",
   "date": "2019-12-31",
   "published": "2019-12-31T00:00:00+01:00",
   "created": "2025-06-26T22:10:06.463000+02:00",
   "updated": "2026-04-03T14:34:52.608000+02:00",
   "title": "Whoop strap review: 24/7 wearable sensor",
   "subtitle": "Beyond fitness tracking and smartwatches",
   "summary": "The past months I have been wearing the WHOOP Strap 3.0, a wearable sensor that collects health and fitness data. It's different compared to most other fitness bands as it was designed with professional athletes in mind. It is focussed on daily strain, recovery and sleep. Read along to find out how this works.",
   "topics": [
    "bike",
    "data",
    "health",
    "heart",
    "lifestyle",
    "minimal",
    "sensors",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-12-31_whoop-band-review-24-7-wearable-sensor/",
    "source_url": "https://willem.com/nl/2019-12-31_whoop-band-review-24-7-wearable-sensor/"
   },
   "image": "https://willem.com/global/images/b1980a957ea3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e47f3970ca50.webp",
     "description": "WHOOP Strap 3.0 on the wrist, no buttons, no display  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/ad894c314f02.webp",
     "description": "WHOOP Strap 3.0 sensors",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/a21adad727ee.webp",
     "description": "WHOOP is about the same size as a regular watch (Tudor Black Bay 36MM)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/d3d5c9e75eef.webp",
     "description": "The ProKnit strap is made of fabric, it is comfortable, stretchy yet sturdy and dries quickly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/fd530d320a3c.webp",
     "description": "Different strap styles and lengths",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/c85c98950ecd.webp",
     "description": "Wearing the sensor higher up the arm allows it to be hidden under your clothing",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/df2be157c1de.webp",
     "description": "Seiko 5 mechanical watch with WHOOP strap 3.0 sensor attached",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/1e8881c74988.webp",
     "description": "You can attach the WHOOP strap to your watch in a similar fashion that NATO-straps are folded through the lugs",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/604386727626.webp",
     "description": "The \"trick\" is to balance recovery with strain - if you do this well, you'll gain fitness",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-9.png"
    },
    {
     "url": "https://willem.com/global/images/9fdc59bd9bd5.webp",
     "description": "Recovery declined when I became ill, WHOOP data detected the decline earlier than I felt ill!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/40413612662b.webp",
     "description": "The WHOOP Strap is charged using a slide-on battery pack, allowing you to wear it continuously",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/1438d56ef946.webp",
     "description": "Battery pack attached to the WHOOP strap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/f4f3547b88ae.webp",
     "description": "WHOOP data on a day when I went out I went out for a ride on my bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/5bd4a89b0e5c.webp",
     "description": "WHOOP Strap 3.0 can broadcast your heart rate to any Bluetooth device",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-14.png"
    },
    {
     "url": "https://willem.com/global/images/df10f73b4fad.webp",
     "description": "Beyond individual metrics: WHOOP provides a complete insight, including recovery, strain and sleep",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/275ef2e4582d.webp",
     "description": "Connecting with other WHOOP users through Facebook and Teams",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36991_images-16.png"
    }
   ]
  },
  {
   "id": 36992,
   "slug": "2019-12-01_realtime-human-pose-recognition-through-computer-vision",
   "url": "https://agents.willem.com/en/posts/2019-12-01_realtime-human-pose-recognition-through-computer-vision/",
   "source_url": "https://willem.com/en/2019-12-01_realtime-human-pose-recognition-through-computer-vision/",
   "language": "en",
   "date": "2019-12-01",
   "published": "2019-12-01T00:00:00+01:00",
   "created": "2025-06-26T22:10:06.985000+02:00",
   "updated": "2025-07-22T16:42:47.327000+02:00",
   "title": "Realtime human pose recognition through computer vision",
   "subtitle": "Using TensorFlow and PoseNet on a video feed",
   "summary": "For an exciting new project I have been experimenting with computer vision using TensorFlow. I wanted to achieve realtime human pose detection to drive interactive video projections and games. Time to dive into the world of machine learning, tensors and computer vision!",
   "topics": [
    "art",
    "data",
    "experiment",
    "game",
    "people",
    "sensors",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-12-01_realtime-herkenning-van-menselijke-houdingen-via-computervisie/",
    "source_url": "https://willem.com/nl/2019-12-01_realtime-herkenning-van-menselijke-houdingen-via-computervisie/"
   },
   "image": "https://willem.com/global/images/74019fb4ad6d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/50568e89a5e8.webp",
     "description": "ReCaptcha: you've been training Google's AI for years!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36992_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/7953a7232386.webp",
     "description": "Me and mini-me being recognised by the PoseNet model",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36992_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/567b618c7f65.webp",
     "description": "MobileNet-SSD algorithm (image: hey-yahei.cn)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36992_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/34fceca59e7a.webp",
     "description": "PomPom faux puff mirror by Daniel Rozin",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36992_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/e4956ea74e75.webp",
     "description": "Turning people into birds using computer vision",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36992_images-5.png"
    }
   ]
  },
  {
   "id": 36993,
   "slug": "2019-11-26_supernova-e3-pro-2-dynamo-powered-headlight",
   "url": "https://agents.willem.com/en/posts/2019-11-26_supernova-e3-pro-2-dynamo-powered-headlight/",
   "source_url": "https://willem.com/en/2019-11-26_supernova-e3-pro-2-dynamo-powered-headlight/",
   "language": "en",
   "date": "2019-11-26",
   "published": "2019-11-26T00:00:00+01:00",
   "created": "2025-06-26T22:10:07.218000+02:00",
   "updated": "2025-07-22T16:42:47.449000+02:00",
   "title": "Supernova E3 Pro 2 dynamo powered headlight",
   "subtitle": "Replacing my bike's headlight",
   "summary": "Earlier this month my dynamo powered headlight on my commuter bike needed replacing. One of the electrical connectors broke of, likely caused by intense daily use. I searched for the best possible light, one that would be extremely durable and bright. I found the Supernova E3 PRO 2 and decided to install it on my bike.",
   "topics": [
    "Durable",
    "Renewable",
    "bike",
    "design",
    "environment",
    "minimal",
    "mobility",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-11-26_supernova-e3-pro-2-dynamo-aangedreven-koplamp/",
    "source_url": "https://willem.com/nl/2019-11-26_supernova-e3-pro-2-dynamo-aangedreven-koplamp/"
   },
   "image": "https://willem.com/global/images/1c096afbd9b3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ae708621eb4d.webp",
     "description": "Supernova E3 Pro 2",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/eccb5c40992a.webp",
     "description": "Supernova E3 PRO 2 Box, no plastic - just recyclable cardboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/0bc147c49be4.webp",
     "description": "Supernova E3 Pro: bright, reliable, for years",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/6fa6e275094a.webp",
     "description": "The light comes in a metal box that you can reuse for something else afterwards. The anti-theft bolts came in a separate bag",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/9cb33529c8c4.webp",
     "description": "The Supernova E3 PRO comes with cables attached to it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d385483d4706.webp",
     "description": "Connector used by my Shimano hub dynamo",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/7a00ea5512ca.webp",
     "description": "Soldering the existing cables on my bike required a little creativity using clamps",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/3748b8611aac.webp",
     "description": "New cable soldered to the old one, allowing it to pull the new one through the bike frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/48ae0d1c0bdf.webp",
     "description": "Voila! Pulling the cable worked like charm",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/907ebab6f91c.webp",
     "description": "Connecting the rear light to the head light, protecting the joint with shrink wraps",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/4d1ad6ed7f1a.webp",
     "description": "After heating the shrink wraps, they'll provide a protective layer against the elements",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/8f3106d1501d.webp",
     "description": "Tie wrapping the electric wire to the sturdier shifter cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/f69dab781b32.webp",
     "description": "Supernova E3 PRO2 fitted to my bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36993_images-13.jpg"
    }
   ]
  },
  {
   "id": 36994,
   "slug": "2019-11-22_building-a-professional-72tb-nas",
   "url": "https://agents.willem.com/en/posts/2019-11-22_building-a-professional-72tb-nas/",
   "source_url": "https://willem.com/en/2019-11-22_building-a-professional-72tb-nas/",
   "language": "en",
   "date": "2019-11-22",
   "published": "2019-11-22T00:00:00+01:00",
   "created": "2025-06-26T22:10:07.853000+02:00",
   "updated": "2026-04-03T14:31:12.179000+02:00",
   "title": "Building a professional 72TB NAS",
   "subtitle": "Configuration and installation of an HPE ProLiant DL380 server",
   "summary": "Over the past few years I have been moving my data and work from local computers (mostly laptops) into the cloud. Cloud computing is done by servers in a datacenter, powerful computers that do the hard work. As my company grew, I needed more capacity. It was time to add some power to my cloud!",
   "topics": [
    "Amsterdam",
    "MacBook",
    "ThinkPad",
    "cloud",
    "data",
    "howto",
    "linux",
    "networking",
    "office",
    "server",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-11-22_een-professionele-72tb-nas-bouwen/",
    "source_url": "https://willem.com/nl/2019-11-22_een-professionele-72tb-nas-bouwen/"
   },
   "image": "https://willem.com/global/images/9e94939629b0.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/133e09c069cd.webp",
     "description": "Servers in a datacenter: the black racks are like closets for the grey server computers, each rack fits multiple servers (photo: HPE). ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/909896d1cd90.webp",
     "description": "Inside a HPE ProLiant DL380p Gen8 server (LFF)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/30d395d32ef6.webp",
     "description": "HPE ProLiant DL380p server powered on, green lights indicate the drives are working, monitor is connected and showing the boot process",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/c51ff21e2823.webp",
     "description": "Server (top left) connected to the computers on my desk (lower right) during installation inside my office",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/c8a597878d8b.webp",
     "description": "Computers on my desk powering the installation from left to right: ThinkPad X1, iPad Pro and MacBook",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/8a15db91132f.webp",
     "description": "MacBook acting as monitor and keyboard of the server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/a08146defef2.webp",
     "description": "iLO: \"sea of sensors\" enabling an extensive remote insight in the server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/50f6353b57ec.webp",
     "description": "Driving to the internet: visiting XS4ALL / KPN in Amsterdam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/7975165f7c9c.webp",
     "description": "Never underestimate the bandwidth of a car with 72TB in its trunk (72TB in my Smart Roadster)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/0ecba21deb2a.webp",
     "description": "Server connected and online inside the datacenter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/9ceff50b570c.webp",
     "description": "MacBook connected to the server in the datacenter through VMWare ESXi - installing GRUB boot loader on a virtual Debian GNU/Linux server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36994_images-11.jpg"
    }
   ]
  },
  {
   "id": 36995,
   "slug": "2019-10-19_flying-in-a-c47-a-dc-3-classic-plane",
   "url": "https://agents.willem.com/en/posts/2019-10-19_flying-in-a-c47-a-dc-3-classic-plane/",
   "source_url": "https://willem.com/en/2019-10-19_flying-in-a-c47-a-dc-3-classic-plane/",
   "language": "en",
   "date": "2019-10-19",
   "published": "2019-10-19T00:00:00+02:00",
   "created": "2025-06-26T22:10:08.388000+02:00",
   "updated": "2026-04-03T14:34:52.827000+02:00",
   "title": "Flying in a C47-A (DC-3) classic plane",
   "subtitle": "Aboard the 75-year old royal PH-PBA dakota",
   "summary": "As a wonderful birthday gift I was honoured to fly in a DC-3 classic plane. It was the 75-year old PH-PBA, a C-47A Skytrain or Dakota, formerly owned by H.R.H. Prince Bernhard from The Netherlands. It's a very special plane operated by the enthusiastic people from the Dutch Dakota Association (DDA Classic Airlines). Read along for some aviation history!",
   "topics": [
    "mobility",
    "retro",
    "review",
    "travel"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-10-19_vliegen-in-een-c47-a-dc-3-klassiek-vliegtuig/",
    "source_url": "https://willem.com/nl/2019-10-19_vliegen-in-een-c47-a-dc-3-klassiek-vliegtuig/"
   },
   "image": "https://willem.com/global/images/c69abd6b9948.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/a966e4f9eff1.webp",
     "description": "Rosie the Riverters work on the C-47 at the Douglas Plant in Oklahoma City (1944, Tinker Air Force Base History Office)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/aeb92149fe89.webp",
     "description": "U.S. Army Pathfinders and USAAF flight crew prior to D-Day (June, 1944, RAF North Witham, public domain)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ac2e76bfe452.webp",
     "description": "Paratroop C-47, 12th Air Force Troop Carrier Wing, during the invasion of southern France (August, 1944)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/3f8f6ca0ee9a.webp",
     "description": "The PH-PBA taking Queen Juliana and Prince Bernhard to Belgium, May 1960 (Ministerie van Infrastructuur en Waterstaat)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/bf74d1766ce6.webp",
     "description": "PH-PBA \"Prinses Amalia\" being prepared for takeoff by DDA volunteers at Lelystad Airport (October 2019)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d30c0dc0619d.webp",
     "description": "DDA Classic Airlines ticket boarding pass ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/f0b79035de53.webp",
     "description": "Lelystad Airport terminal building near the hangar where the PH-PBA is stationed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/5a128d169cbf.webp",
     "description": "Volunteers preparing the Pratt & Whitney R-1830 Twin Wasp aircraft engines for ignition",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/bd999f70526f.webp",
     "description": "Pratt & Whitney R-1830 Twin Wasp radial aero engine on display at the Imperial War Museum Duxford (photo: Nimbus227)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/8118f1056219.webp",
     "description": "Electrical generator, powered by a German built Deutz diesel engine, used to start the R-1830 engines",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/db4fa33a15dc.webp",
     "description": "Electrical generator control panel inside the platform car",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/65eee3571d8b.webp",
     "description": "Riveted by the Rosies, the C-47-A PH-PBA \"Prinses Amalia\" remains a beauty at her 75th year anniversary",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/fd3f3816c165.webp",
     "description": "The tail wheel of the C-47-A PH-PBA is quite close to the ground when parked on the platform",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/c30918bc8bac.webp",
     "description": "Inside the cabin you have a clear view into the cockpit as there is no door separating the pilots from the passengers",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/12565a5d817b.webp",
     "description": "The R-1830 Twin Wasp piston engine at work - it feels alive!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/af4733b8eba2.webp",
     "description": "KLM Captain flying the C47-A PH-PBA over the Markermeer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/73be6e490c5c.webp",
     "description": "PH-PBA wing over Friesland, the Markermeer on the horizon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/da1f914e4df2.webp",
     "description": "Flying over the village of Heeg with IJlst en Sneek visible on the horizon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/3aa8cd38feb7.webp",
     "description": "Frisian lakes visible from the C47-A PH-PBA cockpit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/90cf44ff69e7.webp",
     "description": "Terherne visible at the \"Snitser Mar\", Friesland",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/9e8ba6197fe4.webp",
     "description": "Flying over the Zuidermeerdijk near Urk, with the Ketelbrug visible crossing the water",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36995_images-21.jpg"
    }
   ]
  },
  {
   "id": 36996,
   "slug": "2019-10-07_multi-window-support-in-your-ipad-app",
   "url": "https://agents.willem.com/en/posts/2019-10-07_multi-window-support-in-your-ipad-app/",
   "source_url": "https://willem.com/en/2019-10-07_multi-window-support-in-your-ipad-app/",
   "language": "en",
   "date": "2019-10-07",
   "published": "2019-10-07T00:00:00+02:00",
   "created": "2025-06-26T22:10:09.099000+02:00",
   "updated": "2026-04-03T14:31:12.387000+02:00",
   "title": "Multi-Window support in your iPad app",
   "subtitle": "Native development for iPadOS",
   "summary": "Last month Apple released iPadOS, the first dedicated operating system for iPad. It differs from iOS with its support for the larger iPad screen, including multi / split screen windows. I develop apps and it was time to take advantage of these new possibilities that iPadOS offers.",
   "topics": [
    "apple",
    "design",
    "iOS",
    "iPad",
    "programming",
    "tablet",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-10-07_multi-window-ondersteuning-in-je-ipad-app/",
    "source_url": "https://willem.com/nl/2019-10-07_multi-window-ondersteuning-in-je-ipad-app/"
   },
   "image": "https://willem.com/global/images/38ef7e583455.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/590ada94c4e1.webp",
     "description": "iPad Pro as my main computer connected to a terminal using Blink",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/d4097d9a5811.webp",
     "description": "Multiple window support on iPad, running two instances of the same app at once",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/b0fd605efa8d.webp",
     "description": "Comparing different months in the calendar app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/62fc3c1ace78.webp",
     "description": "Looking at the map at different scales simultaneously",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/64d2bc5a822d.webp",
     "description": "Ken Ferry explaining the design of multiple window support for iOS during WWDC 2019",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/7b7e0e6a8f2a.webp",
     "description": "Conceptual overview UI structure iPadOS as explained by Steve Holt during WWDC 2019",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/3d8992b418c8.webp",
     "description": "Conceptual overview of UISceneSession, providing the persistent interface state between app representations (WWDC 2019, Steve Holt, Apple)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/0cc957f952fe.webp",
     "description": "Functional roles in the lifecycle of an iPadOS app (WWDC 2019, Steve Holt, Apple)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/8a48b3cb9b2d.webp",
     "description": "The same app on iOS/iPadOS and macOS",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-9.png"
    },
    {
     "url": "https://willem.com/global/images/5d22d4b5df00.webp",
     "description": "Using my \"Lemmid (content) Manager\" app to edit a blog post while looking at the results side-by-side",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/a825ee524dfd.webp",
     "description": "Editing a DNS record using my \"Lemmid Domain\" app while preserving context of the entire DNS zone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-11.png"
    },
    {
     "url": "https://willem.com/global/images/7f6a0e735536.webp",
     "description": "Using my \"Lemmid Count\" app to analyse views and traffic an article on willem.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-12.png"
    },
    {
     "url": "https://willem.com/global/images/be682d70074e.webp",
     "description": "Web development on iPad using Inspect and Blink side-by-side",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36996_images-13.png"
    }
   ]
  },
  {
   "id": 36997,
   "slug": "2019-09-27_visiting-an-international-hackers-conference",
   "url": "https://agents.willem.com/en/posts/2019-09-27_visiting-an-international-hackers-conference/",
   "source_url": "https://willem.com/en/2019-09-27_visiting-an-international-hackers-conference/",
   "language": "en",
   "date": "2019-09-27",
   "published": "2019-09-27T00:00:00+02:00",
   "created": "2025-06-26T22:10:09.537000+02:00",
   "updated": "2025-07-22T16:42:47.911000+02:00",
   "title": "Visiting an international hackers conference",
   "subtitle": "OWASP Global AppSec Amsterdam",
   "summary": "This month I was lucky enough to attend Global AppSec Amsterdam, an international conference for hackers and security specialists. There were presentations from former intelligence agents, bounty hunters, academics and software vendors. I learned about some of the newest hacking techniques, met with interesting people and played some cool retro games. Read along for more.",
   "topics": [
    "Amsterdam",
    "Nintendo",
    "cyber-security",
    "data",
    "hacking",
    "people",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-09-27_het-bezoeken-van-een-internationale-hackersconferentie/",
    "source_url": "https://willem.com/nl/2019-09-27_het-bezoeken-van-een-internationale-hackersconferentie/"
   },
   "image": "https://willem.com/global/images/cb5ea75db8ba.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/403811a3464b.webp",
     "description": "Global AppSec-Amsterdam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/8d317a6e37bb.webp",
     "description": "Keynote presentation by cyberwarfare specialist, Chris Kubecka",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ad3f0bba8321.webp",
     "description": "Lessons learned from dealing with terrorists",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/86cc76d31a28.webp",
     "description": "Coffee and PONG on the video-sports console with CRT monitor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/3ebd793dd0c1.webp",
     "description": "DuckHunt with an original Nintendo zapper",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/5ac85970a721.webp",
     "description": "Remember the days that this was your average computer - note: the IBM model M keyboard... oh boy!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/f7a3c90be9d0.webp",
     "description": "Persistent Client-Side XSS is a real threat - by Marius Steffens and Ben Stock",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/aa04e0114bcd.webp",
     "description": "James Kettle on hacking PayPal - gaining $38,900 in bounties",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/3c11c554de6f.webp",
     "description": "Hacking return rates on investment between 100% on the low end and 150,000% on the high end! (By Jarrod Overson)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/d039827bdd65.webp",
     "description": "Hacking Google - How I could have stolen your photos from Google (Gergö Turcsányi)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/1053cb217048.webp",
     "description": "Global AppSec Amsterdam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36997_images-11.jpg"
    }
   ]
  },
  {
   "id": 36998,
   "slug": "2019-09-10_fighting-backscatter-spam-at-server-level",
   "url": "https://agents.willem.com/en/posts/2019-09-10_fighting-backscatter-spam-at-server-level/",
   "source_url": "https://willem.com/en/2019-09-10_fighting-backscatter-spam-at-server-level/",
   "language": "en",
   "date": "2019-09-10",
   "published": "2019-09-10T00:00:00+02:00",
   "created": "2025-06-26T22:10:10.071000+02:00",
   "updated": "2025-07-22T16:42:48.054000+02:00",
   "title": "Fighting backscatter spam at server level",
   "subtitle": "Configure Postfix to block spam before it enters the server",
   "summary": "This month I had to deal with backscatter spam, affecting one of the mail servers I manage. As server engineer I make sure that servers don't send spam and that incoming email gets filtered. Despite all good efforts, this server kept being blacklisted for sending spam to iCloud, Office 365 and Google Gmail for Business (G Suite). Read along to find out how what caused this and how to fix this.",
   "topics": [
    "cloud",
    "cyber-security",
    "howto",
    "linux",
    "networking",
    "server"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-09-10_backscatter-spam-op-serverniveau-bestrijden/",
    "source_url": "https://willem.com/nl/2019-09-10_backscatter-spam-op-serverniveau-bestrijden/"
   },
   "image": "https://willem.com/global/images/af0df536f46b.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ce079c524f46.webp",
     "description": "Simple backscatter scenario, mail server bounces message to a falsified sender address",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36998_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/ecab1d4c0125.webp",
     "description": "Prevent backscatter bounce messages by responding with SMTP error codes instead",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36998_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/b76507d467ad.webp",
     "description": "Causing backscatter spam when the first mail server forwards email to another server that blocks message",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36998_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/75d348304794.webp",
     "description": "Prevent backscatter spam by checking all messages before forwarding them to another server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36998_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/39ef96cae1a9.webp",
     "description": "Implementing stringent SMTP restrictions in Postfix - annotated screenshot from main.cf",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36998_images-5.png"
    }
   ]
  },
  {
   "id": 36999,
   "slug": "2019-08-28_riding-with-a-power-meter-on-your-bike",
   "url": "https://agents.willem.com/en/posts/2019-08-28_riding-with-a-power-meter-on-your-bike/",
   "source_url": "https://willem.com/en/2019-08-28_riding-with-a-power-meter-on-your-bike/",
   "language": "en",
   "date": "2019-08-28",
   "published": "2019-08-28T00:00:00+02:00",
   "created": "2025-06-26T22:10:10.199000+02:00",
   "updated": "2026-04-03T14:34:53.046000+02:00",
   "title": "Riding with a power meter on your bike",
   "subtitle": "Installing and using the 4iiii Precision Powermeter",
   "summary": "After I created a minimal road bike, I decided to install a power meter to find out what's it like to measure the power output of my legs. What can you learn from a power meter? Is it difficult to install? Is it worth it? Read along to find out.",
   "topics": [
    "Amsterdam",
    "bike",
    "data",
    "health",
    "heart",
    "lifestyle",
    "review",
    "sensors",
    "smartphone",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-08-28_fietsen-met-een-vermogensmeter-op-je-fiets/",
    "source_url": "https://willem.com/nl/2019-08-28_fietsen-met-een-vermogensmeter-op-je-fiets/"
   },
   "image": "https://willem.com/global/images/6d8d02a5f9b3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/716721c9ea80.webp",
     "description": "4iiii Precision Powermeter - used by the professional cycling team Quick-Step / Bora Hansgrohe",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/0dc3eb4a6b8c.webp",
     "description": "The crank arm has it's model and length written on it, on my bike that's: FC-5800, 172.5MM",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/24519cf71ad2.webp",
     "description": "Quick start guide installing and using the power meter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/9ab899bb97f0.webp",
     "description": "Use a crank tool to remove the crank (Shimano TL-FC16 / FC-M960)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/ac636f5c8a5c.webp",
     "description": "You should be able to loosen the plastic cap with just your fingers/hand, no extreme torque is required",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e198a98a1225.webp",
     "description": "Tightening the crank arm using a torque wrench",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/8f487d0db8ee.webp",
     "description": "Make sure the battery is installed and the covering door is locked",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/abd4c691be41.webp",
     "description": "4iii Precision Power meter installed on my bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/9c43854daea6.webp",
     "description": "Bluetooth scan from the 4iiii app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/fb2acc59f195.webp",
     "description": "Zero offset calibration is very important for accurate measurements",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/9478e36027b6.webp",
     "description": "Connecting the 4iiii Precision Powermeter to the Cyclemeter app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/f1a22322fa3b.webp",
     "description": "Wahoo RFLKT+ showing realtime data from my bike computer app - obviously I was standing still here... all the zero's (except my heart rate)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/7d8494e84304.webp",
     "description": "Data from the power meter, compared with speed, cadence and heart rate data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/0c8143e51c04.webp",
     "description": "With or without a power meter: don't forget to enjoy your ride!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_36999_images-14.jpg"
    }
   ]
  },
  {
   "id": 37000,
   "slug": "2019-08-18_creating-a-minimal-road-bike",
   "url": "https://agents.willem.com/en/posts/2019-08-18_creating-a-minimal-road-bike/",
   "source_url": "https://willem.com/en/2019-08-18_creating-a-minimal-road-bike/",
   "language": "en",
   "date": "2019-08-18",
   "published": "2019-08-18T01:00:00+02:00",
   "created": "2025-06-26T22:10:10.809000+02:00",
   "updated": "2026-04-03T14:34:53.269000+02:00",
   "title": "Creating a minimal road bike",
   "subtitle": "Recombining and refinishing old parts into a new bike",
   "summary": "Over the past months I have worked on different bikes, leading to an accumulation of spare parts in my garage. I wondered how hard it would be to make a new bike using these spare parts. I decided to take advantage of this moment to refinish some parts, removing excessive decals in order to create a minimal looking road bike.",
   "topics": [
    "bike",
    "creating",
    "design",
    "howto",
    "minimal",
    "mobility",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-08-18_het-creeren-van-een-minimalistische-racefiets/",
    "source_url": "https://willem.com/nl/2019-08-18_het-creeren-van-een-minimalistische-racefiets/"
   },
   "image": "https://willem.com/global/images/b959632c5608.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/92c3d430876b.webp",
     "description": "Dirty rear derailleur",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/7374910a16b5.webp",
     "description": "Replace old bearings with fresh ones while you're at it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/b06b79a398cd.webp",
     "description": "Spray painting different parts into a uniform appearance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/0673ddc45033.webp",
     "description": "Spray painting the bike bike frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/76c4bcebc1f7.webp",
     "description": "Parts look like new with a fresh layer of paint",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d1f85924ed40.webp",
     "description": "Ready to put all parts together, creating a bike!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6049ee3723e3.webp",
     "description": "The seat post tube is a good place to fix your bike in the work stand",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/8ff61ea98e4e.webp",
     "description": "Apply grease to bearings like the ones in the front fork + headset",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/21c695eb4413.webp",
     "description": "Always use a good torque wrench to prevent excessive power on bolts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/ce95f6d56c50.webp",
     "description": "Most parts have torque values written on them in Newton Meter (Nm)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/0964518f750c.webp",
     "description": "Installing the crank using a torque wrench and crank tool - note the written instructions on the crank",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/5dfa532828cc.webp",
     "description": "Crank and pedals installed on the bike frame - make sure to check if it can move freely",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/583bfecd743b.webp",
     "description": "Installing the cassette is easy if you align it to match the rear axle's pattern",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/68f5f4624d06.webp",
     "description": "Use a cassette tool and/or chain sweep to install or uninstall the cassette",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/52d598aae359.webp",
     "description": "With the wheels installed, the bunch of parts start to look like a bike!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/aac25d03b82b.webp",
     "description": "Installing cables on the handle bar and handles",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/fefa3e92a375.webp",
     "description": "Connecting the cables to the derailleurs",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/ad7daca27354.webp",
     "description": "Front derailleur connected with the shifter cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/3fa39375c753.webp",
     "description": "Indexing the gears is easier when you're able to peddle freely, allowing you to precisely set the cable tightness ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/d5b80c1be59d.webp",
     "description": "Minimal road bike - made using spare parts and many hours!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37000_images-20.jpg"
    }
   ]
  },
  {
   "id": 37001,
   "slug": "2019-07-16_limitations-of-sleep-tracking-using-a-wearable",
   "url": "https://agents.willem.com/en/posts/2019-07-16_limitations-of-sleep-tracking-using-a-wearable/",
   "source_url": "https://willem.com/en/2019-07-16_limitations-of-sleep-tracking-using-a-wearable/",
   "language": "en",
   "date": "2019-07-16",
   "published": "2019-07-16T01:00:00+02:00",
   "created": "2025-06-26T22:10:11.616000+02:00",
   "updated": "2026-04-03T14:34:53.482000+02:00",
   "title": "Limitations of sleep tracking using a wearable",
   "subtitle": "Comparison with a chest strap HR-monitor",
   "summary": "Sleep monitoring is a popular feature of many smartwatches and wearables. Devices like Fitbit, Withings, Apple Watch and Biostrap analyse biometrics during your sleep. These wearables are worn on the wrist and use optical sensors to capture your heart rate. I wondered how the optical sensors would compare to a high resolution chest strap HR-monitor.",
   "topics": [
    "apple",
    "data",
    "health",
    "heart",
    "sensors",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-07-16_beperkingen-van-slaapregistratie-met-een-wearable/",
    "source_url": "https://willem.com/nl/2019-07-16_beperkingen-van-slaapregistratie-met-een-wearable/"
   },
   "image": "https://willem.com/global/images/9baa72d496cc.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/adf4d1369cd7.webp",
     "description": "Apple Watch uses an optical sensor to perform its automated heart rate monitoring",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37001_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/64efd1eff213.webp",
     "description": "Heart rates measured by Apple Watch reveal that measurement is only done once every 5 minutes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37001_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/3313b7c381f9.webp",
     "description": "Wahoo TICKR uses conductive pads in its strap to capture your heart's electric activity directly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37001_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/e6c5bf4cdf4a.webp",
     "description": "Wahoo TIKR (left) captures more data per minute than Apple Watch (right) per hour!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37001_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/d152323f0e6c.webp",
     "description": "Heart rate during my experiment night as captured with the optical HR sensor (top) and chest strap (bottom)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37001_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/321af3169856.webp",
     "description": "Combining heart rate measurements with movement data from a gyroscope sensor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37001_images-6.png"
    }
   ]
  },
  {
   "id": 37002,
   "slug": "2019-07-15_optical-vs-chest-strap-heart-rate-monitors",
   "url": "https://agents.willem.com/en/posts/2019-07-15_optical-vs-chest-strap-heart-rate-monitors/",
   "source_url": "https://willem.com/en/2019-07-15_optical-vs-chest-strap-heart-rate-monitors/",
   "language": "en",
   "date": "2019-07-15",
   "published": "2019-07-15T01:00:00+02:00",
   "created": "2025-06-26T22:10:11.875000+02:00",
   "updated": "2026-04-03T14:34:53.703000+02:00",
   "title": "Optical vs chest strap heart rate monitors",
   "subtitle": "Measuring beats per minute using different sensors",
   "summary": "With modern wearables, smartwatches and fitness bands, it has become easy and common to measure your heart rate. There are however fundamental differences in sensor types. Some sensors capture the electrical signal from your heart while others use light to analyse the blood flowing through your vessels. If you're interested in measuring heart rate, it's good to understand these differences.",
   "topics": [
    "apple",
    "data",
    "health",
    "heart",
    "sensors",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-07-15_optische-vs-borstband-hartslagmeters/",
    "source_url": "https://willem.com/nl/2019-07-15_optische-vs-borstband-hartslagmeters/"
   },
   "image": "https://willem.com/global/images/813bfb529f1e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/daad3bd9fd73.webp",
     "description": "Heart rate monitor in hospital uses electrode pads to capture the heart's electric activity",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37002_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/3313b7c381f9.webp",
     "description": "Conductive pads in the chest strap work in a similar way as the heart rate monitor in hospitals",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37002_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/df2636cbc686.webp",
     "description": "Biostrap features an optical sensor, located at the center, right between two LED's",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37002_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/adf4d1369cd7.webp",
     "description": "Apple Watch has an optical heart rate sensor, cleary visible in the middle of the underside",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37002_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/50b47bedbb47.webp",
     "description": "Heart rate data using different sensors, the workout was captured (in detail, bottom graph) with a chest strap while the hours afterwards with an optical sensor ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37002_images-5.png"
    }
   ]
  },
  {
   "id": 37003,
   "slug": "2019-06-25_assembling-a-cargo-bike",
   "url": "https://agents.willem.com/en/posts/2019-06-25_assembling-a-cargo-bike/",
   "source_url": "https://willem.com/en/2019-06-25_assembling-a-cargo-bike/",
   "language": "en",
   "date": "2019-06-25",
   "published": "2019-06-25T00:00:00+02:00",
   "created": "2025-06-26T22:10:12.064000+02:00",
   "updated": "2026-04-03T14:31:12.594000+02:00",
   "title": "Assembling a cargo bike",
   "subtitle": "Setting up the Babboe Big cargo bike",
   "summary": "This month our Babboe Big cargo bike arrived, in boxes. The engineer in me thought it was a good idea to assemble the bike by hand. This way I would know exactly about all its parts and fittings, handy knowledge for maintenance. Read along for my experience and some practical tips.",
   "topics": [
    "Amsterdam",
    "bike",
    "creating",
    "daddy",
    "environment",
    "howto",
    "mobility",
    "review",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-06-25_het-in-elkaar-zetten-van-een-bakfiets/",
    "source_url": "https://willem.com/nl/2019-06-25_het-in-elkaar-zetten-van-een-bakfiets/"
   },
   "image": "https://willem.com/global/images/8577e1380bcc.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3f54446cfbd3.webp",
     "description": "Babboe Big",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f94b848a6233.webp",
     "description": "The Babboe Big, in boxes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/c008e5a6ac0a.webp",
     "description": "Front wheels and fender",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/48e799582b1c.webp",
     "description": "Front frame and wooden box (still packed)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/c4f8ba278585.webp",
     "description": "Rear end of the bike, semi assembled",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/a97e2e90da51.webp",
     "description": "Bazillion screws, nuts, rings and bolts...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/c57b3fe10e7d.webp",
     "description": "Construction manual... 67 pages!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/01c1a2dabfa2.webp",
     "description": "Step by step instructions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/e0e6dc096c9f.webp",
     "description": "The assembling kit comes with some tools",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/4f91f20ed80e.webp",
     "description": "It helps to have your own (bike) tools",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/44d7e0090770.webp",
     "description": "Attaching the front wheels to the frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/ac379b781be2.webp",
     "description": "Using filler plates to make up for Chinese Precision",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/a8da4d2de6af.webp",
     "description": "Squeezing in the filler plates while joining the rear and front frames",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/987e0d1194fa.webp",
     "description": "Using a piece of wood as 'paint safe' hammer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/7ebe67903d41.webp",
     "description": "Using a hex key to nudge the filler plate into position, freeing up the bolt hole",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/362ea9f637aa.webp",
     "description": "Clean cable management: I repurposed the fenders bolt to fixate the brake cable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/b4e26309952f.webp",
     "description": "Make sure to test the swinging of the cargo box once you have fixed your cables",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/92d053214232.webp",
     "description": "Flat bed cargo bike - of sorts :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/016a4d1cddb8.webp",
     "description": "Assembling the cargo box",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/0b35f6ee193a.webp",
     "description": "Inside the cargo box are two flippable benches",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/56b504485e17.webp",
     "description": "You can install optional baby and infant seats",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/a80195290ca9.webp",
     "description": "Babboe Big, fully assembled",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/b06db8f74637.webp",
     "description": "One happy passenger in the Babboe Big",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/25b16e256a4a.webp",
     "description": "The 'big' in Babboe Big ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37003_images-24.jpg"
    }
   ]
  },
  {
   "id": 37004,
   "slug": "2019-06-24_six-months-with-mcadd",
   "url": "https://agents.willem.com/en/posts/2019-06-24_six-months-with-mcadd/",
   "source_url": "https://willem.com/en/2019-06-24_six-months-with-mcadd/",
   "language": "en",
   "date": "2019-06-24",
   "published": "2019-06-24T00:00:00+02:00",
   "created": "2025-06-26T22:10:12.662000+02:00",
   "updated": "2026-04-03T14:34:53.952000+02:00",
   "title": "Six months with MCADD",
   "subtitle": "Thoughts and tips on the daily life as parents",
   "summary": "Tomorrow it's six months since our son was born, a good moment to reflect upon the experience of being a parent of a kid with MCADD. This metabolic condition demands special attention on the feeding schedule and preparation for situations when things go different. It's good to share that this has quickly become normal for us, here are some thoughts and tips.",
   "topics": [
    "daddy",
    "data",
    "health",
    "lifestyle",
    "mcadd"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-06-24_zes-maanden-met-mcadd/",
    "source_url": "https://willem.com/nl/2019-06-24_zes-maanden-met-mcadd/"
   },
   "image": "https://willem.com/global/images/fdffeeecc806.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/86709ad4cb5f.webp",
     "description": "Fighting cramps with Infacol and reflux with Nutriton ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/16d9ef0fb567.webp",
     "description": "Boink boink, hello daddy! Playing around!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/5295f3b91622.webp",
     "description": "Hot drinks for father and son on the go",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/15b2737b36aa.webp",
     "description": "Dealing with MCADD, the L-Carnitine medicine and Fantomalt energy powder (photo by Ellen Middelkoop)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/b4cf502a81a8.webp",
     "description": "Feeding at night (photo by Ellen Middelkoop)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d3934cf2ec82.webp",
     "description": "Sleep data during the first six months",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/bcd0455a1bf6.webp",
     "description": "Time to wake up (photo by Ellen Middelkoop)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37004_images-7.jpg"
    }
   ]
  },
  {
   "id": 37005,
   "slug": "2019-05-29_solo-around-the-markermeer-211km",
   "url": "https://agents.willem.com/en/posts/2019-05-29_solo-around-the-markermeer-211km/",
   "source_url": "https://willem.com/en/2019-05-29_solo-around-the-markermeer-211km/",
   "language": "en",
   "date": "2019-05-29",
   "published": "2019-05-29T00:00:00+02:00",
   "created": "2025-06-26T22:10:12.994000+02:00",
   "updated": "2026-04-03T14:34:54.236000+02:00",
   "title": "Solo around the Markermeer (211KM)",
   "subtitle": "Tips to prepare, to endure and to enjoy long distance cycling",
   "summary": "This week I took my bike for a long distance (211KM) ride around the Dutch Markermeer, solo! Unlike participating in an organised event with service, support and company along the way, going solo requires a different preparation, mindset and planning. Read along for some practical tips for long distance cycling.",
   "topics": [
    "Amsterdam",
    "bike",
    "data",
    "environment",
    "health",
    "heart",
    "lifestyle",
    "mobility",
    "nature",
    "sensors",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-05-29_solo-rond-het-markermeer-211km/",
    "source_url": "https://willem.com/nl/2019-05-29_solo-rond-het-markermeer-211km/"
   },
   "image": "https://willem.com/global/images/1067c64b358d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/79a24aa34b54.webp",
     "description": "My bike prepared for long distance cycling",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/8c92328c7eed.webp",
     "description": "My food and drink supply for this ride",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/4de291d20f67.webp",
     "description": "Bring food that has a high energy level due to sugar, not fat!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/bdf1326b067d.webp",
     "description": "Around the Markermeer, through the former Dutch \"Zuider Zee\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/5c06929f6fa2.webp",
     "description": "Speed (blue) en effort (red, heart rates) around the Markermeer through strong winds (6 beaufort, 39-49KM/h) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/dc7ebf70404f.webp",
     "description": "Heart rates during the day and night of my long distance ride",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/d6452a337ab9.webp",
     "description": "Harbour in Marken ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/d1790dad25d5.webp",
     "description": "Sluice at Schardam",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/677bca9bbd36.webp",
     "description": "Beautiful sky on the Houtribdijk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/80826f81eed0.webp",
     "description": "Looking over the Markermeer at the (former) island of Marken",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/52290408de6e.webp",
     "description": "Oostvaardersplassen near Lelystad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/62a77483b7fb.webp",
     "description": "Wind blowing strongly over the water with Amsterdam on the horizon, as seen from Almere",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/f573ec0cc146.webp",
     "description": "Just you and the road ahead (Zeedijk near Marken)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/4924f9228be8.webp",
     "description": "Cycling underneath a tall ship!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/7d37b4b6c948.webp",
     "description": "Encountering an unexpected road block, about half way on the Houtribdijk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/72f685db8461.webp",
     "description": "Me and my bike on the Houtribdijk! Not in the way I imagined!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/a0d298de554d.webp",
     "description": "Smiling at the Markermeer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/ba2710e0fa2f.webp",
     "description": "Home sweet home! 211 incredible kilometres!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37005_images-18.jpg"
    }
   ]
  },
  {
   "id": 37006,
   "slug": "2019-05-24_dig-for-dummies",
   "url": "https://agents.willem.com/en/posts/2019-05-24_dig-for-dummies/",
   "source_url": "https://willem.com/en/2019-05-24_dig-for-dummies/",
   "language": "en",
   "date": "2019-05-24",
   "published": "2019-05-24T00:00:00+02:00",
   "created": "2025-06-26T22:10:13.644000+02:00",
   "updated": "2025-07-24T00:56:42.827000+02:00",
   "title": "Dig for dummies",
   "subtitle": "Explaining an highly useful network tool",
   "summary": "When you're building websites, apps or email services you may run into domain names and their configurations. When everything is working as it should, most of this is invisible. But when troubleshooting a domain name configuration, it may be necessary to dig a little deeper... read along to learn how!",
   "topics": [
    "cloud",
    "cyber-security",
    "data",
    "linux",
    "networking",
    "programming",
    "server",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-05-24_dig-voor-dummies/",
    "source_url": "https://willem.com/nl/2019-05-24_dig-voor-dummies/"
   },
   "image": "https://willem.com/global/images/3563cf340625.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/b02bcfa4dfab.webp",
     "description": "The Domain Name System (DNS) links domain names to IP-addresses, which in turn are routed through cables. You're reading this - seriously! - through the cable connected to the server shown on this photo!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37006_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/0ecb8ad41dca.webp",
     "description": "A map of the ARPANET in 1973... imaging mapping the internet today!  (Public domain)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37006_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/35dfaed28848.webp",
     "description": "Using dig to get information about a domain name, willem.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37006_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/a865a4e8afcd.webp",
     "description": "Using dig to get information about the SPF-records for a domain name, google.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37006_images-4.png"
    }
   ]
  },
  {
   "id": 37007,
   "slug": "2019-04-30_the-best-bike-computer-app-cyclemeter",
   "url": "https://agents.willem.com/en/posts/2019-04-30_the-best-bike-computer-app-cyclemeter/",
   "source_url": "https://willem.com/en/2019-04-30_the-best-bike-computer-app-cyclemeter/",
   "language": "en",
   "date": "2019-04-30",
   "published": "2019-04-30T00:00:00+02:00",
   "created": "2025-06-26T22:10:13.841000+02:00",
   "updated": "2026-04-03T14:34:54.456000+02:00",
   "title": "The best bike computer app: Cyclemeter",
   "subtitle": "Get advanced ride data with a flexible setup",
   "summary": "This month I have intensified my training to become fit for this year's Fietselfstedentocht, a 235KM bicycle ride through Friesland. Over the years I have tested different kinds of bike computer setups: from dedicated (and expensive) Garmin Edge bike computers to no data at all. Eventually I came up with a flexible setup to gather advanced ride data using my smartphone,  let me explain how this works.",
   "topics": [
    "Amsterdam",
    "apple",
    "bike",
    "data",
    "health",
    "heart",
    "iOS",
    "lifestyle",
    "minimal",
    "review",
    "sensors",
    "smartphone",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-04-30_de-beste-fietscomputer-app-cyclemeter/",
    "source_url": "https://willem.com/nl/2019-04-30_de-beste-fietscomputer-app-cyclemeter/"
   },
   "image": "https://willem.com/global/images/4c500e189ada.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6165a6aeebd7.webp",
     "description": "Garmin EDGE 1030 performance bundle (from evancycles.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c3071edff9d2.webp",
     "description": "Omata One (omata.com) minimal analogue bike computer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/19acd3932dd0.webp",
     "description": "Using Cyclemeter as my bike computer to collect advanced ride data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/c0d0468f99c7.webp",
     "description": "My 'bike area network': sensors (red) and displays (green) connected to the smartphone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/b72bfc77d4e4.webp",
     "description": "The combined speed and cadence sensor mounted on my bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/572f2f970266.webp",
     "description": "Wahoo RFLKT+ display showing a lot of things",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/53f00e45b084.webp",
     "description": "Wahoo RFLKT+ display showing current speed and heart rate",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/504937b129d9.webp",
     "description": "Apple Watch works great with Cyclemeter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/195fbce1b3a7.webp",
     "description": "Feeling adventurous mounting a €1659 iPhone on my steer with a rubber strap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/455f4d2401ab.webp",
     "description": "Quad Lock smartphone mounting system",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37007_images-10.jpg"
    }
   ]
  },
  {
   "id": 37008,
   "slug": "2019-04-25_search-like-a-pro-google-search-operators",
   "url": "https://agents.willem.com/en/posts/2019-04-25_search-like-a-pro-google-search-operators/",
   "source_url": "https://willem.com/en/2019-04-25_search-like-a-pro-google-search-operators/",
   "language": "en",
   "date": "2019-04-25",
   "published": "2019-04-25T00:00:00+02:00",
   "created": "2025-06-26T22:10:14.273000+02:00",
   "updated": "2026-04-03T14:31:12.991000+02:00",
   "title": "Search like a pro: Google search operators",
   "subtitle": "Comprehensive list of advanced search operators",
   "summary": "You probably use the world's most famous search engine to find things everyday, but you might not know about some of its advanced search operators. You can use these special search phrases to find things that are otherwise burried in the search results. Read along for a comprehensive list of advanced Google search operators.",
   "topics": [
    "SEO",
    "cloud",
    "cyber-security",
    "hacking",
    "web",
    "webdesign"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-04-25_zoek-als-een-pro-google-zoekoperators/",
    "source_url": "https://willem.com/nl/2019-04-25_zoek-als-een-pro-google-zoekoperators/"
   },
   "image": "https://willem.com/global/images/342a55e3ab9d.webp",
   "image_width": 2560
  },
  {
   "id": 37009,
   "slug": "2019-03-31_wordpress-10-tips-to-secure-your-website",
   "url": "https://agents.willem.com/en/posts/2019-03-31_wordpress-10-tips-to-secure-your-website/",
   "source_url": "https://willem.com/en/2019-03-31_wordpress-10-tips-to-secure-your-website/",
   "language": "en",
   "date": "2019-03-31",
   "published": "2019-03-31T00:00:00+01:00",
   "created": "2025-06-26T22:10:14.476000+02:00",
   "updated": "2026-04-03T14:34:54.693000+02:00",
   "title": "WordPress: 10 tips to secure your website",
   "subtitle": "Keep hackers out of the world's most popular content management system",
   "summary": "A lot of people use WordPress to manage their website, therefore it's no surprise people ask me to have a look at their site's security. As ethical hacker, I encounter WordPress in different shapes, sizes and states. Some of them are really badly protected against hacks. Prevent your site from being hacked using these 10 practical tips.",
   "topics": [
    "cloud",
    "cyber-security",
    "hacking",
    "howto",
    "networking",
    "server",
    "web",
    "webdesign"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-03-31_wordpress-10-tips-om-je-website-te-beveiligen/",
    "source_url": "https://willem.com/nl/2019-03-31_wordpress-10-tips-om-je-website-te-beveiligen/"
   },
   "image": "https://willem.com/global/images/51dd00a2ba31.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/79572e4a515e.webp",
     "description": "Update WordPress from the wp-admin dashboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/db2e086fcde8.webp",
     "description": "Check the reputation of a WordPress plugin by looking at the number of downloads and its rating",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/7ed5f0ee69b4.webp",
     "description": "Sniff WordPress password using WireShark packet capturing (via blog.wpscans.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/7e3624540722.webp",
     "description": "Password dictionary attacks use lists of known (leaked) passwords, you can find them on shady parts of the internet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/94b8eedd02ca.webp",
     "description": "Do you trust the free wifi you're using? (Image via buffered.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/b4bed4a35679.webp",
     "description": "Leaking personal user information from the WordPress REST API",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e8fa9fcb7c0e.webp",
     "description": "Limit access by IP basis to XML-RPC using a .htaccess file",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/a21ba24bbd4e.webp",
     "description": "It's pretty hard hacking into my WP-Admin page because you cannot find it (hint: it's not at /wp-admin)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/b8c695c798fe.webp",
     "description": "Somewhere in a datacenter there is a machine like this hosting your website",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/ba045569ad2d.webp",
     "description": "Use WP Security Audit Log to keep an eye on what's happening with your WordPress website (wpsecurityauditlog.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37009_images-10.png"
    }
   ]
  },
  {
   "id": 37010,
   "slug": "2019-03-20_servicing-a-robot-vacuum-cleaner",
   "url": "https://agents.willem.com/en/posts/2019-03-20_servicing-a-robot-vacuum-cleaner/",
   "source_url": "https://willem.com/en/2019-03-20_servicing-a-robot-vacuum-cleaner/",
   "language": "en",
   "date": "2019-03-20",
   "published": "2019-03-20T00:00:00+01:00",
   "created": "2025-06-26T22:10:14.729000+02:00",
   "updated": "2026-04-03T14:34:54.916000+02:00",
   "title": "Servicing a robot vacuum cleaner",
   "subtitle": "My iRobot Roomba is now running for 8 years and counting!",
   "summary": "Back in 2011 I got myself an iRobot Roomba 555 robot vacuum cleaner to automatically clean my apartment. It's a little circle shaped robot that drives around sucking up dust bunnies. Over the years it has bravely fought the dangers of my apartment... shoes, cables, carpet and belts. It survived and it is still working perfectly! This week it was time for some maintenance.",
   "topics": [
    "Amsterdam",
    "Durable",
    "Renewable",
    "howto",
    "office",
    "repair"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-03-20_onderhoud-van-een-robotstofzuiger/",
    "source_url": "https://willem.com/nl/2019-03-20_onderhoud-van-een-robotstofzuiger/"
   },
   "image": "https://willem.com/global/images/46f965af024c.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ada267387179.webp",
     "description": "Weaponised iRobot 710 - not your average vacuum cleaner...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/4e17f21fda2c.webp",
     "description": "iRobot Roomba 555 (from 2011)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/e63513fc59a6.webp",
     "description": "My iRobot Roomba 555 in need of maintenance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/6873ccc3deb8.webp",
     "description": "Operational since 2011, the iRobot Roomba has earned its battle scars - I wonder what it does when I'm not in the apartment...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/c421985b10af.webp",
     "description": "Flip the robot vacuum cleaner upside down - note the dust everywhere",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/aed3b4f20563.webp",
     "description": "Remove the dust can and brushes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/1a27071b8d6a.webp",
     "description": "Remove dust using the other vacuum cleaner",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/84d0b28c4f8a.webp",
     "description": "Clean \"the eyes\" of the Robot, the the sensor windows near the edge",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/358e41089410.webp",
     "description": "Front wheel with black and white pattern",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/c769e88eb9f3.webp",
     "description": "Remove dust from the sensor underneath the wheel base",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/8b545501494f.webp",
     "description": "Front wheel cleaning the bearings",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/3841691d62fb.webp",
     "description": "Front wheel replacement with a screw fixture ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/62df7ea9e06c.webp",
     "description": "Hairy brushes... but not the way you want them.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/af1935b9bb41.webp",
     "description": "Check underneath the caps of the brushes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/dee70a182091.webp",
     "description": "Use a screw driver to cut hairs loose",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/0678008a1089.webp",
     "description": "Voila, clean!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/4e0eedf7a8e8.webp",
     "description": "Unscrew the spinning brush",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/0f543acd918f.webp",
     "description": "Wiggle the brush loose from its center axle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/a60482120fa4.webp",
     "description": "Remove dirt from the axle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/88d41de8c9e0.webp",
     "description": "Remove the bottom cover to access the inside of the Roomba",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/1391104689c7.webp",
     "description": "Screws are clearly marked with a triangle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/7794d167fd03.webp",
     "description": "Remove all of them, make sure not to lose them (or suck them up during vacuum cleaning...)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/47f24c076302.webp",
     "description": "iRobot Roomba bottom cover removed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/501b8c5e72dc.webp",
     "description": "Looks like a carpet, but this is dust collected on the inside of Roomba",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/42364c9e126a.webp",
     "description": "Remove dust around corners and edges",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/81f71257b21a.webp",
     "description": "Make sure to check the wheel bases for dust bunnies",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/468d98dc8664.webp",
     "description": "iRobot XLife extended capacity battery",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-27.jpg"
    },
    {
     "url": "https://willem.com/global/images/40fbda3ca91e.webp",
     "description": "Removing the cleaning head",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-28.jpg"
    },
    {
     "url": "https://willem.com/global/images/1906eae66895.webp",
     "description": "Flip it around to access the motor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-29.jpg"
    },
    {
     "url": "https://willem.com/global/images/1e3ccf6616ab.webp",
     "description": "Note how much dust is around the motor - it's like a warm winter jacket...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-30.jpg"
    },
    {
     "url": "https://willem.com/global/images/8fa89d85b370.webp",
     "description": "Remove dust from the container by sliding out the filter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-31.jpg"
    },
    {
     "url": "https://willem.com/global/images/4815d84e2e5e.webp",
     "description": "You can clean the filter with another vacuum cleaner",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-32.jpg"
    },
    {
     "url": "https://willem.com/global/images/2cb89b65fd9e.webp",
     "description": "Like new, but 8 years old... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-33.jpg"
    },
    {
     "url": "https://willem.com/global/images/34fbbb7d06eb.webp",
     "description": "All parts back cleaned and back together. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-34.jpg"
    },
    {
     "url": "https://willem.com/global/images/6df1954b55f0.webp",
     "description": "Roomba ready for duty!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37010_images-35.jpg"
    }
   ]
  },
  {
   "id": 37011,
   "slug": "2019-02-28_understanding-the-security-concerns-in-shared-hosting",
   "url": "https://agents.willem.com/en/posts/2019-02-28_understanding-the-security-concerns-in-shared-hosting/",
   "source_url": "https://willem.com/en/2019-02-28_understanding-the-security-concerns-in-shared-hosting/",
   "language": "en",
   "date": "2019-02-28",
   "published": "2019-02-28T00:00:00+01:00",
   "created": "2025-06-26T22:10:15.996000+02:00",
   "updated": "2025-07-24T00:57:33.131000+02:00",
   "title": "Understanding the security concerns in shared hosting",
   "subtitle": "Considering open ports and unused network facing services",
   "summary": "People pay me to hack them, provided I'll explain how it was done, so future hacks can be prevented. As security consultant, I scan for weaknesses in my clients' apps, webshops and websites. Very often a hack starts by exploiting a security hole that is visible remotely. Read along to learn how hackers find security holes and what you can do to secure them.",
   "topics": [
    "cloud",
    "cyber-security",
    "data",
    "hacking",
    "linux",
    "networking",
    "programming",
    "server",
    "web",
    "webdesign"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-02-28_veiligheidsrisico-s-bij-shared-hosting/",
    "source_url": "https://willem.com/nl/2019-02-28_veiligheidsrisico-s-bij-shared-hosting/"
   },
   "image": "https://willem.com/global/images/56d28216dd15.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/cafc9709255f.webp",
     "description": "A typical server in the datacenter, a physical machine that can host apps, webshops and websites",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37011_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/0158845e7a25.webp",
     "description": "Different kinds of hosting: Shared hosting, VPS hosting and dedicated hosting visualised (a circle representing a physical server)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37011_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/bfbc8fc6e058.webp",
     "description": "Contagious effect of an hacked website (red indicating trouble)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37011_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/950d6bfeda3c.webp",
     "description": "Using nmap to scan a hosting server, identifying network facing services and open ports",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37011_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/c3d8458c889e.webp",
     "description": "Once a hacker knows what software your website uses, its easy to lookup known security holes using databases like cvedetails.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37011_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/e37a7be2befb.webp",
     "description": "Keep in mind that help is available - I know my way around servers and cyber security",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37011_images-6.jpg"
    }
   ]
  },
  {
   "id": 37012,
   "slug": "2019-02-27_one-year-on-the-ultimate-commuter-bike",
   "url": "https://agents.willem.com/en/posts/2019-02-27_one-year-on-the-ultimate-commuter-bike/",
   "source_url": "https://willem.com/en/2019-02-27_one-year-on-the-ultimate-commuter-bike/",
   "language": "en",
   "date": "2019-02-27",
   "published": "2019-02-27T00:00:00+01:00",
   "created": "2025-06-26T22:10:16.400000+02:00",
   "updated": "2026-04-03T14:34:55.144000+02:00",
   "title": "One year on the ultimate commuter bike",
   "subtitle": "6000KM in 12 months with Gates CDN/CDX and Shimano Alfine",
   "summary": "A year ago I tried to create the ultimate commuter bike, a modified Sensa Cintura with the Gates CDN/CDX carbon belt drive. I received lots of messages from cyclists and commuters from all over the world. From the Swiss alps, France, Italy, Germany, United States and even \"down under\", Australia! You all wanted to know: how does the upgraded bike hold up?",
   "topics": [
    "Amsterdam",
    "Durable",
    "Freedom",
    "bike",
    "environment",
    "health",
    "lifestyle",
    "minimal",
    "mobility",
    "office",
    "review",
    "sport",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-02-27_een-jaar-op-de-ultieme-forenzenfiets/",
    "source_url": "https://willem.com/nl/2019-02-27_een-jaar-op-de-ultieme-forenzenfiets/"
   },
   "image": "https://willem.com/global/images/a8a1eda88697.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/60a5bd3deed3.webp",
     "description": "My commuter bike, a modified Sensa Cintura with Gates Carbon Drive CDN/CDX, Shimano Alfine and a Schindelhauer steer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/b51d94d95c44.webp",
     "description": "My bike in Summer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/94f75ad777d2.webp",
     "description": "My bike in Winter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/fdfdb63f1e3d.webp",
     "description": "Road side servicing the bike: swapping a punctured tire",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/00911867b186.webp",
     "description": "That nail should not be there... puncture!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/6237f8869e5a.webp",
     "description": "Differences in tire profile between Schwalbe Marathon Plus Tour (left) and Schwalbe Durano (right)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/96679cb6a6b2.webp",
     "description": "Schwalbe Marathon Plus Tour - designed to be unplattable (so far, its holding up!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/ca7b2702ee2e.webp",
     "description": "Brutal, resilient tires: Schwalbe Marathon Plus Tour",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/7af502966145.webp",
     "description": "Faulty Gates Carbon Drive CDN rear sprocket left, shiny and stronger CDX sprocket right.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/cef1d281abe2.webp",
     "description": "Gates Carbon Drive CDX rear sprocket after 6000KM / 12 months, a little dusty but still fine!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/ee41a3fe1404.webp",
     "description": "Gates CDN front sprocket and CDN belt are in good shape after 7800KM (they are original to my bike, which is about 14 months old) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/2dfc9fef4f6e.webp",
     "description": "Hard conditions for the Gates Carbon Drive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/1b8f9954fc9d.webp",
     "description": "Make sure to wear a helmet when you try to master the slippery roads during winter!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/c329ac7d91ab.webp",
     "description": "Busch und Müller rear light mounted inside the rear fender, showing signs of wear caused by the spray of dirty water from the rear tire",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/c674a647369a.webp",
     "description": "Broken spoke on my rear tire after a sudden encounter with a hole...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/60b22d27dc7a.webp",
     "description": "Downtown Amsterdam, don't forget a lock!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/f2fe0c0d84b1.webp",
     "description": "Fietselfstedentocht 2018 - the ultimate endurance test for any bike - 235KM in one day",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/ac71cbb15142.webp",
     "description": "What matters most is the ride itself, don't forget that!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37012_images-18.jpg"
    }
   ]
  },
  {
   "id": 37013,
   "slug": "2019-01-29_born-with-mcadd",
   "url": "https://agents.willem.com/en/posts/2019-01-29_born-with-mcadd/",
   "source_url": "https://willem.com/en/2019-01-29_born-with-mcadd/",
   "language": "en",
   "date": "2019-01-29",
   "published": "2019-01-29T00:00:00+01:00",
   "created": "2025-06-26T22:10:16.994000+02:00",
   "updated": "2026-04-03T14:34:55.364000+02:00",
   "title": "Born with MCADD",
   "subtitle": "Medium chain acyl-CoA dehydrogenase deficiency",
   "summary": "Just days after our son was born, we ran into trouble when our little man didn't want to eat anymore. Repeated attempts to feed him failed as he appeared to be too tired to drink from his mother. When we measured his body temperature we were shocked, only 33º Celsius! What followed was nothing less than an incredible emotional rollercoaster!",
   "topics": [
    "Amsterdam",
    "daddy",
    "health",
    "heart",
    "lifestyle",
    "mcadd"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-01-29_geboren-met-mcadd/",
    "source_url": "https://willem.com/nl/2019-01-29_geboren-met-mcadd/"
   },
   "image": "https://willem.com/global/images/315ffa983d44.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3d96decd77d1.webp",
     "description": "Saving the life of our son - note the heart rate monitor being unable to detect heart activity (the green question mark)...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37013_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/0d060fa398d3.webp",
     "description": "It felt like victory to see him drinking again!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37013_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/dbd919f49899.webp",
     "description": "VU Amsterdam emergency room",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37013_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/e9131def68f3.webp",
     "description": "At least he got a cool Garfield adhesive band aid",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37013_images-4.jpg"
    }
   ]
  },
  {
   "id": 37014,
   "slug": "2019-01-24_my-first-weeks-as-dad",
   "url": "https://agents.willem.com/en/posts/2019-01-24_my-first-weeks-as-dad/",
   "source_url": "https://willem.com/en/2019-01-24_my-first-weeks-as-dad/",
   "language": "en",
   "date": "2019-01-24",
   "published": "2019-01-24T00:00:00+01:00",
   "created": "2025-06-26T22:10:17.154000+02:00",
   "updated": "2025-07-22T16:42:49.809000+02:00",
   "title": "My first weeks as dad",
   "subtitle": "On the challenges and rewards of being a father",
   "summary": "Last Christmas my wife gave birth to our son, a little boy that would change everything! It's an incredible experience to become a parent, especially if it is your first kid. It introduces a whole new way of living, having to deal with regular feeding, caring and sleepless nights. Read along for my (biometric) findings and some practical tips!",
   "topics": [
    "daddy",
    "data",
    "health",
    "heart",
    "howto",
    "lifestyle",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2019-01-24_mijn-eerste-weken-als-papa/",
    "source_url": "https://willem.com/nl/2019-01-24_mijn-eerste-weken-als-papa/"
   },
   "image": "https://willem.com/global/images/81b0327ed1f7.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0df65d930178.webp",
     "description": "Our son",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/768a3c8230aa.webp",
     "description": "Suitcase and Maxi Cosi where ready",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/806102325b97.webp",
     "description": "Holding my son for the very first time - trying to make sense what the little man wants... (a recurring theme as I would find out)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/5da38e17d71a.webp",
     "description": "Left: a full week of sleep data - right: one night in detail",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/b6a761400d05.webp",
     "description": "Data from a mediocre night (with minimal HRV recovery)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/7af65785c679.webp",
     "description": "Data from a good sleep (causing my HRV to recover) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-6.png"
    },
    {
     "url": "https://willem.com/global/images/740df7e764bf.webp",
     "description": "Room service by daddy: smoked salmon as starter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/f0a07acf87f7.webp",
     "description": "Happy boys - giving and taking a bottle of milk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/6f466d480779.webp",
     "description": "Carrying a baby during household tasks is fun and useful",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/75adda00e570.webp",
     "description": "My desk, daddy style ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/a4831b946c7d.webp",
     "description": "Baby asleep, daddy at work",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/c14d47fd7068.webp",
     "description": "Don't forget to have fun!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37014_images-12.gif"
    }
   ]
  },
  {
   "id": 37015,
   "slug": "2018-12-22_business-in-a-bag",
   "url": "https://agents.willem.com/en/posts/2018-12-22_business-in-a-bag/",
   "source_url": "https://willem.com/en/2018-12-22_business-in-a-bag/",
   "language": "en",
   "date": "2018-12-22",
   "published": "2018-12-22T00:00:00+01:00",
   "created": "2025-06-26T22:10:17.508000+02:00",
   "updated": "2026-04-03T14:34:55.589000+02:00",
   "title": "Business in a bag",
   "subtitle": "Using a waterproof backpack to fit my gear",
   "summary": "Over the past few months I have been testing different bags and cases to fit everything I need to run my business. As I commute by bike, the bag needs to be waterproof. The problem with waterproof gear is that it is usually very bulky. I need my gear to be both portable and representative, a challenge worth a blog post!",
   "topics": [
    "apple",
    "bike",
    "cash",
    "design",
    "iPad",
    "iPhone",
    "lifestyle",
    "minimal",
    "mobility",
    "office",
    "pencil",
    "review",
    "smartphone",
    "spending",
    "tablet",
    "wallet",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-12-22_zaken-in-een-zak/",
    "source_url": "https://willem.com/nl/2018-12-22_zaken-in-een-zak/"
   },
   "image": "https://willem.com/global/images/b2ab965bbd5a.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3170fb197609.webp",
     "description": "All I need to do my business - really!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/2574ae6bd62b.webp",
     "description": "Me wearing the hardcore Ortlieb Velocity bag through bad weather, fantastic but a little bit bulky...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ba002caae503.webp",
     "description": "Ortlieb Urban daypack 15L ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/908dfbc31974.webp",
     "description": "Ortlieb Urban: Textile appearance on the outside, polyurethane waterproofness on the inside",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/d8e8f37ce732.webp",
     "description": "Adjustable straps without loose ends. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/0da508a44d56.webp",
     "description": "Hardgraft iPhone cash card wallet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/3fdbacb60ab2.webp",
     "description": "The wallet allows quick (and naked) access to the phone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/62f718b4e3a3.webp",
     "description": "Charging the iPhone while inside the wallet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/005a4d5ced5a.webp",
     "description": "Hardgraft iPad Pro case with the keyboard folio and Apple Pencil",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/c8fda032e24f.webp",
     "description": "The iPad can be charged while tucked away in its case",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/a262b283c865.webp",
     "description": "The case has a high-end feeling because of its high quality finish and details",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/2e0d35ccc68c.webp",
     "description": "Peripheral case \"thing\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/3da3250a9523.webp",
     "description": "Access to accesoires from both sides of the \"thing\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/6e8b4a9950ac.webp",
     "description": "Awesome threesome... of sorts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/de9b4cb07332.webp",
     "description": "Packing it together, Hardgraft and Ortlieb",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/b2d9b7fbd964.webp",
     "description": "Inside the Ortlieb Urban Daypack - comfortably spacious",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37015_images-16.jpg"
    }
   ]
  },
  {
   "id": 37016,
   "slug": "2018-12-06_do-amazing-things-with-a-focused-mind",
   "url": "https://agents.willem.com/en/posts/2018-12-06_do-amazing-things-with-a-focused-mind/",
   "source_url": "https://willem.com/en/2018-12-06_do-amazing-things-with-a-focused-mind/",
   "language": "en",
   "date": "2018-12-06",
   "published": "2018-12-06T00:00:00+01:00",
   "created": "2025-06-26T22:10:18.086000+02:00",
   "updated": "2026-04-03T14:31:13.454000+02:00",
   "title": "Do amazing things with a focused mind",
   "subtitle": "Taking an ice bath and swimming in the Amstel river",
   "summary": "Just when the temperature was a low 2° Celsius, I jumped in the Amstel river! While it was nearly freezing outside I went for a swim, just moments after I've taken an ice bath! This post is about the incredible birthday present I got, a workshop involving the Wim Hof Method.",
   "topics": [
    "Amsterdam",
    "experiment",
    "health",
    "heart",
    "howto",
    "lifestyle",
    "people",
    "review",
    "swimming"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-12-06_doe-geweldige-dingen-met-een-gefocuste-geest/",
    "source_url": "https://willem.com/nl/2018-12-06_doe-geweldige-dingen-met-een-gefocuste-geest/"
   },
   "image": "https://willem.com/global/images/dbfa43b2e63f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/42b580c332c6.webp",
     "description": "Wim Hof in ice blocks wearing sensors",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37016_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/681a502a418b.webp",
     "description": "Wim Hof Method (source: wimhofmethod.com)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37016_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/2f81c403f769.webp",
     "description": "Bart Biermans' ice man training in Amsterdam (source: icemantrainingen.nl)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37016_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/3e53126d785b.webp",
     "description": "Not your typical hot tub... taking an ice bath!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37016_images-4.jpg"
    }
   ]
  },
  {
   "id": 37017,
   "slug": "2018-11-16_around-town-in-an-electric-car",
   "url": "https://agents.willem.com/en/posts/2018-11-16_around-town-in-an-electric-car/",
   "source_url": "https://willem.com/en/2018-11-16_around-town-in-an-electric-car/",
   "language": "en",
   "date": "2018-11-16",
   "published": "2018-11-16T00:00:00+01:00",
   "created": "2025-06-26T22:10:18.241000+02:00",
   "updated": "2025-07-22T16:42:50.146000+02:00",
   "title": "Around town in an electric car",
   "subtitle": "Driving the Smart Electric Drive (EQ fortwo)",
   "summary": "Earlier this month I drove around town for a week in an electric vehicle, a brand new Smart Electric Drive (EQ fortwo). I used it to commute, for my daily groceries and to visit family, friends and customers. What's it like to drive a fully electric car on a daily basis?",
   "topics": [
    "Amsterdam",
    "car",
    "design",
    "environment",
    "experiment",
    "lifestyle",
    "mobility",
    "office",
    "review",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-11-16_rond-de-stad-in-een-elektrische-auto/",
    "source_url": "https://willem.com/nl/2018-11-16_rond-de-stad-in-een-elektrische-auto/"
   },
   "image": "https://willem.com/global/images/6bf8c93464c4.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/dda315d2ed4d.webp",
     "description": "Nicolas G. Hayek, 1999 at his desk in Biel (photo: swissinfo.ch)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/e4960b2bbf42.webp",
     "description": "Micro Compact Car (MCC) from 1994",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/cd17033abd62.webp",
     "description": "Smart EQ fortwo (with full electric drive)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/d1dbcaa3fc16.webp",
     "description": "Two persons can sit comfortably in the Smart EQ fortwo",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/5cbb55df1b98.webp",
     "description": "Quick access to the trunk is possible through the window, in addition to the flip-down hatch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/816c0b5f2cba.webp",
     "description": "Styling on the car is mature and full of customisation options, you can have the Smart look anyway you'd like",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/ba11f4291285.webp",
     "description": "Smart fortwo cabrio in red/pink-ish",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/c26832adfc61.webp",
     "description": "Smart fortwo cabrio in green",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/985581badc5e.webp",
     "description": "Smart fortwo cabrio featuring the special \"nightsky\" style",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/82040a791e0a.webp",
     "description": "Matte grey finish with black accents - young, serious, but still a lot of fun!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/9dfb15ef8779.webp",
     "description": "Inside the smart fortwo - plenty of room for a tall guy (1.93M)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/d5d954d4cadc.webp",
     "description": "The smart cockpit - with lots of buttons",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/d19176715fcb.webp",
     "description": "Electric power gauge inside the Smart EQ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/9a894a12f44b.webp",
     "description": "Central touch screen - like an integrated iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/965ec4cd5908.webp",
     "description": "The smartphone cradle is an interesting alternative to the integrated media screen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/fbec64d86242.webp",
     "description": "Automatic rain wiper",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/fabd4344ef2e.webp",
     "description": "Heated car seats, with luxurious stitching",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/400912ec43ea.webp",
     "description": "Automatic lights",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/b054ce135422.webp",
     "description": "iPads rejoice - perfectly snug on the passenger seat",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/b440aad8cadd.webp",
     "description": "Electric drive train inside the Smart EQ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/a0407c921f10.webp",
     "description": "Make very - unbelievably! - sharp corners (with a turning cycle of just 6.95M)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/972c7ac058a7.webp",
     "description": "Creatively parking the car",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/acf67e07a442.webp",
     "description": "Typical Dutch street... atypical parking style :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/74b4a6b13286.webp",
     "description": "Smart in my garage, I can fit two of them... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/fed7827c01a9.webp",
     "description": "Charging using an ordinary power outlet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/cfef0eb0632e.webp",
     "description": "Charging the car on a public parking place",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/5d23a5e0f900.webp",
     "description": "Boxes of Heineken 0.0% in the Smart ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-27.jpg"
    },
    {
     "url": "https://willem.com/global/images/e7d0dc4e7891.webp",
     "description": "Two boxes of beer fit comfortably in the luggage compartment of the Smart",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-28.jpg"
    },
    {
     "url": "https://willem.com/global/images/7aa8b90e66b5.webp",
     "description": "96 bottles of beer inside the Smart... check!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37017_images-29.jpg"
    }
   ]
  },
  {
   "id": 37018,
   "slug": "2018-11-02_is-the-apple-watch-the-modern-tool-watch",
   "url": "https://agents.willem.com/en/posts/2018-11-02_is-the-apple-watch-the-modern-tool-watch/",
   "source_url": "https://willem.com/en/2018-11-02_is-the-apple-watch-the-modern-tool-watch/",
   "language": "en",
   "date": "2018-11-02",
   "published": "2018-11-02T00:00:00+01:00",
   "created": "2025-06-26T22:10:19.350000+02:00",
   "updated": "2026-04-03T14:34:55.799000+02:00",
   "title": "Is the Apple Watch the modern tool watch?",
   "subtitle": "Testing the Apple Watch's usefulness in real life",
   "summary": "This week I went to Frankfurt for business. I had to perform maintenance to servers in a data centre. This seemed like a great opportunity to test the Apple Watch's usefulness in real life (other than health and fitness). I wondered, is the Apple Watch the modern tool watch?",
   "topics": [
    "apple",
    "cloud",
    "data",
    "design",
    "experiment",
    "iOS",
    "iPhone",
    "lifestyle",
    "linux",
    "networking",
    "office",
    "review",
    "server",
    "smartphone",
    "travel",
    "watch",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-11-02_is-de-apple-watch-het-moderne-toolhorloge/",
    "source_url": "https://willem.com/nl/2018-11-02_is-de-apple-watch-het-moderne-toolhorloge/"
   },
   "image": "https://willem.com/global/images/64161a5125fe.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/c3e97e1c70b4.webp",
     "description": "Classic Rolex advertisement - highlighting the functionality first",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c347b22b860a.webp",
     "description": "Digital technology and social change (by Martin Hilbert, University of California)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/46a03b85751d.webp",
     "description": "Apple Watch - a modern tool watch?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/ea2b17467ee5.webp",
     "description": "The Apple Watch is a tiny wearable computer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/01397ceb3728.webp",
     "description": "Apple Watch showing an estimated delivery time of a parcel (from the Dutch PostNL service)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/df19f171c664.webp",
     "description": "Time and date can be checked easily using Apple Watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/1f54f0571730.webp",
     "description": "Despite its small size, the Apple Watch's screen is very capable of displaying lots of information",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/d2cd7926dd6d.webp",
     "description": "The Apple Watch has numerous sensors to collect data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/f96d172e4a00.webp",
     "description": "Data Centre in Frankfurt",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/29ea8d2866aa.webp",
     "description": "German warning signs inside the data centre (somehow they feel slightly more serious...)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/ef460ec8159d.webp",
     "description": "Accessing information while keeping my hands free",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/997dcf89cdca.webp",
     "description": "Server hardware inside a rack in the data centre",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/335417f119a3.webp",
     "description": "Console connected to server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/15b777edd022.webp",
     "description": "Happy engineer with Apple Watch inside the data centre!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/2ad44de93d3b.webp",
     "description": "The world on your wrist - using Apple Maps in downtown Frankfurt",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/c6c14ae03947.webp",
     "description": "Apple Watch and Rolex Milgauss 116400GV",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37018_images-16.jpg"
    }
   ]
  },
  {
   "id": 37019,
   "slug": "2018-10-16_rescuing-files-from-a-broken-harddisk",
   "url": "https://agents.willem.com/en/posts/2018-10-16_rescuing-files-from-a-broken-harddisk/",
   "source_url": "https://willem.com/en/2018-10-16_rescuing-files-from-a-broken-harddisk/",
   "language": "en",
   "date": "2018-10-16",
   "published": "2018-10-16T00:00:00+02:00",
   "created": "2025-06-26T22:10:19.737000+02:00",
   "updated": "2026-04-03T14:34:56.021000+02:00",
   "title": "Rescuing files from a broken harddisk",
   "subtitle": "Make backups to be safe rather than sorry!",
   "summary": "Yesterday a young woman brought me her laptop, it didn't start anymore and it only showed an error message. It turned out to be a broken harddisk. It startled her when I told her that all data on the disk was lost. She told me it contained precious photos of her pregnancy and young child. What could I do?",
   "topics": [
    "Amsterdam",
    "Windows",
    "data",
    "hacking",
    "howto",
    "laptop",
    "linux",
    "people",
    "repair",
    "volunteer",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-10-16_bestanden-redden-van-een-kapotte-harde-schijf/",
    "source_url": "https://willem.com/nl/2018-10-16_bestanden-redden-van-een-kapotte-harde-schijf/"
   },
   "image": "https://willem.com/global/images/2db3d73a3927.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d34bbf9c5a6e.webp",
     "description": "The broken laptop containing precious photos",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/52eb619083a3.webp",
     "description": "Defective harddisk ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/edb0c031bb1c.webp",
     "description": "Opening the laptop to remove the disk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/7553d00b6d5c.webp",
     "description": "The disk is usually fixed using some tiny screws",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/8218090a255a.webp",
     "description": "Connect any harddisk to a computer using the chip and cables from a USB-harddisk enclosure",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/45b9b0c73d41.webp",
     "description": "Detecting the \"USB Mass Storage device\", a sign of life from the disk!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6bcb215a0916.webp",
     "description": "Using terminal commands to mount a disk under Debian GNU/Linux",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/66f456d1da3b.webp",
     "description": "A lease on life: the faulty harddisk connected to my laptop ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/e1d7b2c6a796.webp",
     "description": "Error messages while reading data from the harddisk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/2a10c1f497f9.webp",
     "description": "Returning the precious photos on an USB-drive ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37019_images-10.jpg"
    }
   ]
  },
  {
   "id": 37020,
   "slug": "2018-10-09_using-a-budget-android-as-main-smartphone",
   "url": "https://agents.willem.com/en/posts/2018-10-09_using-a-budget-android-as-main-smartphone/",
   "source_url": "https://willem.com/en/2018-10-09_using-a-budget-android-as-main-smartphone/",
   "language": "en",
   "date": "2018-10-09",
   "published": "2018-10-09T00:00:00+02:00",
   "created": "2025-06-26T22:10:20.138000+02:00",
   "updated": "2025-07-22T16:42:50.614000+02:00",
   "title": "Using a budget Android as main smartphone",
   "subtitle": "Comparing a Nokia (€99) with an iPhone (€1329)",
   "summary": "Every now and then, I switch phones to keep track of mobile developments. As professional app and web developer, I need to know how different devices work in real life. This time I used a budget Android smartphone, making me curious how it would compare to an expensive iPhone.",
   "topics": [
    "android",
    "apple",
    "budget",
    "experiment",
    "iPhone",
    "lifestyle",
    "review",
    "smartphone",
    "spending"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-10-09_een-budget-android-als-primaire-smartphone-gebruiken/",
    "source_url": "https://willem.com/nl/2018-10-09_een-budget-android-als-primaire-smartphone-gebruiken/"
   },
   "image": "https://willem.com/global/images/8b20e41bdc84.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/fa923079c93a.webp",
     "description": "iPhone running iOS and Nokia running Android",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/20e8e3a2f1ce.webp",
     "description": "Nokia 2 with duckduckgo.com",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/a807ea52936c.webp",
     "description": "Nokia 2 build quality is good",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/1f7d5eb394c3.webp",
     "description": "The Nokia 2 feels nice - even compared to an expensive iPhone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/d16cf5a95829.webp",
     "description": "Compared to iPhone the Nokia 2 is about the same size",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e4b3e373dd4b.webp",
     "description": "Android One is - indeed - amazing",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/31b5e292819d.webp",
     "description": "With the right apps and paired with a keyboard, the budget smartphone can do some serious work",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/f440014d9b66.webp",
     "description": "Limited storage is taken up by... Google.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/9b97e592ee7d.webp",
     "description": "Google Privacy Policy - telling you what personal information is collected",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/176c7d5d5fbc.webp",
     "description": "Google is watching you when you use Android",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/c8a4fd61f6d0.webp",
     "description": "Opening the same page on iPhone and Android",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-11.png"
    },
    {
     "url": "https://willem.com/global/images/0e43f1176df0.webp",
     "description": "This is a web page in \"reader mode\" on iOS, full focus on web content without distractions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/c0d2aef381eb.webp",
     "description": "Landscape photo taken at the Amsterdamse Waterleidingduinen with the Nokia 2",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/668e707cb7a3.webp",
     "description": "Sign pole, taken with Nokia 2",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/4e8051d16e7b.webp",
     "description": "Side by side photo comparison: left Nokia, right iPhone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/3f1e10135de9.webp",
     "description": "Battery life is measured in days - fantastic!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/c61e71f84a2a.webp",
     "description": "The entire budget Android smartphone costs about as much as just one iPhone earpiece!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37020_images-17.jpg"
    }
   ]
  },
  {
   "id": 37021,
   "slug": "2018-09-27_swimming-and-cycling-with-apple-watch",
   "url": "https://agents.willem.com/en/posts/2018-09-27_swimming-and-cycling-with-apple-watch/",
   "source_url": "https://willem.com/en/2018-09-27_swimming-and-cycling-with-apple-watch/",
   "language": "en",
   "date": "2018-09-27",
   "published": "2018-09-27T00:00:00+02:00",
   "created": "2025-06-26T22:10:20.669000+02:00",
   "updated": "2026-04-03T14:34:56.253000+02:00",
   "title": "Swimming and cycling with Apple Watch",
   "subtitle": "Different activities in the workout app in watchOS",
   "summary": "This month Apple launched a new Apple Watch series and released an update to watchOS. The focus of the smartwatch is more and more gearing towards health and fitness. This made me curious, how well does Apple Watch work for different activities?",
   "topics": [
    "Amsterdam",
    "apple",
    "bike",
    "data",
    "health",
    "heart",
    "iOS",
    "iPhone",
    "sensors",
    "sport",
    "swimming",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-09-27_zwemmen-en-fietsen-met-apple-watch/",
    "source_url": "https://willem.com/nl/2018-09-27_zwemmen-en-fietsen-met-apple-watch/"
   },
   "image": "https://willem.com/global/images/6a6c9da7fced.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/fa8288fb68f1.webp",
     "description": "Double strapping in the name of Science: Biostrap and Apple Watch on my wrist",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37021_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/b51d94d95c44.webp",
     "description": "Riding my bike with Apple Watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37021_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/1e44a007cb1a.webp",
     "description": "Cycling with Apple Watch using the Workout app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37021_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/00617ffe84f6.webp",
     "description": "Swimming with Apple Watch (shot with iPhone)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37021_images-4.gif"
    },
    {
     "url": "https://willem.com/global/images/4a612b67c628.webp",
     "description": "Apple Watch summary screen after swimming",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37021_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/5b0c4c054dbc.webp",
     "description": "Swimming with Apple Watch using the Workout app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37021_images-6.png"
    }
   ]
  },
  {
   "id": 37022,
   "slug": "2018-09-26_optimising-images-for-the-web-and-performance",
   "url": "https://agents.willem.com/en/posts/2018-09-26_optimising-images-for-the-web-and-performance/",
   "source_url": "https://willem.com/en/2018-09-26_optimising-images-for-the-web-and-performance/",
   "language": "en",
   "date": "2018-09-26",
   "published": "2018-09-26T00:00:00+02:00",
   "created": "2025-06-26T22:10:20.991000+02:00",
   "updated": "2025-07-22T16:42:50.825000+02:00",
   "title": "Optimising images for the web and performance",
   "subtitle": "Reduce filesize with jpegoptim, optipng, pngcrush and pngquant",
   "summary": "One way to make your website faster is to make it smaller. Not with tiny fonts, but with less bytes! More than half the weight of an average website is because of images. Yet very few people optimise their images for the web and performance, time to find out how much bytes you can safe!",
   "topics": [
    "cloud",
    "data",
    "howto",
    "networking",
    "programming",
    "server",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-09-26_afbeeldingen-optimaliseren-voor-web-en-performance/",
    "source_url": "https://willem.com/nl/2018-09-26_afbeeldingen-optimaliseren-voor-web-en-performance/"
   },
   "image": "https://willem.com/global/images/c806bdb54964.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/ec02ee9672ec.webp",
     "description": "Average web page weight, divided by asset type (HttpArchive, September 2018)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37022_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/e94033e684f1.webp",
     "description": "Bitmap images are like chessboards, where the pixels are squares",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37022_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/3640b9482061.webp",
     "description": "Typical slide on pace-cme.org",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37022_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/4c08bf11faa4.webp",
     "description": "Test image, containing solid colours, photographic and textual content",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37022_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/19c8b9866186.webp",
     "description": "Inspecting quality: left original, right pngquant",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37022_images-5.jpg"
    }
   ]
  },
  {
   "id": 37023,
   "slug": "2018-08-21_space-travelling-from-el-teide",
   "url": "https://agents.willem.com/en/posts/2018-08-21_space-travelling-from-el-teide/",
   "source_url": "https://willem.com/en/2018-08-21_space-travelling-from-el-teide/",
   "language": "en",
   "date": "2018-08-21",
   "published": "2018-08-21T00:00:00+02:00",
   "created": "2025-06-26T22:10:21.190000+02:00",
   "updated": "2025-07-22T16:42:50.910000+02:00",
   "title": "Space travelling from El Teide",
   "subtitle": "Visiting Tenerife's volcano at the Canary Islands",
   "summary": "This summer holiday brought me to Tenerife, part of the Canary Islands, Spain. It's a popular destination because of the climate, but it's also the home of Teide, the world's second highest volcano (7500 m, measured from the sea floor). The incredible views reach way beyond earth, into outer space, the Milky Way and other distant galaxies.",
   "topics": [
    "environment",
    "holiday",
    "nature",
    "review",
    "travel",
    "volcano"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-08-21_ruimtereizen-vanaf-de-teide/",
    "source_url": "https://willem.com/nl/2018-08-21_ruimtereizen-vanaf-de-teide/"
   },
   "image": "https://willem.com/global/images/03cc5badbce0.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/5b0460cf6f3a.webp",
     "description": "Radar image from NASA showing the Teide volcano on the island of Tenerife, Canary Islands, Spain (Wikimedia Commons)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/e76d65f1a64f.webp",
     "description": "This detailed astronaut photograph features two stratovolcanoes, Pico de Teide and Pico Viejo (taken from the International Space Station, public domain)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/17a1a12095c9.webp",
     "description": "The Las Cañadas caldera on top of Teide, as seen from the International Space Station (public domain)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/8649c75b21a8.webp",
     "description": "Teide seen from my iPhone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/3f298ca1e260.webp",
     "description": "My space mobile, a Citroën C1 rental car... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/a6dd1f618352.webp",
     "description": "Twisty roads to the top of Teide, with remarkable geological formations visible",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6016357e2181.webp",
     "description": "Landscape inside the Las Cañadas caldera is similar to Mars",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/a87b2b140d48.webp",
     "description": "ESA's fast-moving Heavy Duty Planetary Rover (HDPR) at Teide (credit: ESA)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/2520d636df37.webp",
     "description": "Shadow of a Martian... of sorts :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/4aafbda36361.webp",
     "description": "Some rocks are unbelievable in size and shape",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/8dda8fbe04f4.webp",
     "description": "Pico del Teide as seen from the south of the caldera",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/be21b9bf796b.webp",
     "description": "The El Chinyero vent on the Santiago Ridge, still black from the 1909 eruption",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/3349da68ef9b.webp",
     "description": "Panorama in the Las Cañadas caldera",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/ea423501807b.webp",
     "description": "On top of the Los Gigantes massive, with the La Gomera island on the horizon",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/e143d3cd4b00.webp",
     "description": "The Los Gigantes are really unbelievable in their dimensions, you'll feel like a tiny human on the twisty roads.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/051ec2969047.webp",
     "description": "Driving above the clouds",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/288afd9ef72f.webp",
     "description": "Under the clouds the landscape is green, full of life",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/7c55d105d1fe.webp",
     "description": "El Palmar in the valley between Monte del Agua and the Teno mountains",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/79b715597a23.webp",
     "description": "Swimming in the Atlantic Ocean, down at Los Gigantes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/837fd42b8ba9.webp",
     "description": "Rescue helicopter lifting persons out of the ocean, notice the volcanic black beach",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/c61d626935e1.webp",
     "description": "Teide Observatory with telescopes from different countries at 2390 meters altitude",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/679e223ac695.webp",
     "description": "Me and the Milky Way (photo by Ellen Middelkoop)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/9c4031f45acd.webp",
     "description": "Relaxing in the pool",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37023_images-23.jpg"
    }
   ]
  },
  {
   "id": 37024,
   "slug": "2018-08-20_google-analytics-vs-awstats",
   "url": "https://agents.willem.com/en/posts/2018-08-20_google-analytics-vs-awstats/",
   "source_url": "https://willem.com/en/2018-08-20_google-analytics-vs-awstats/",
   "language": "en",
   "date": "2018-08-20",
   "published": "2018-08-20T00:00:00+02:00",
   "created": "2025-06-26T22:10:22.369000+02:00",
   "updated": "2026-04-03T14:34:56.494000+02:00",
   "title": "Google Analytics vs AWStats",
   "subtitle": "Understanding web traffic statistics software",
   "summary": "This month I have been working on website statistics, tracking traffic using different technologies. Some of my customers use Google Analytics, others use AWStats, and some use both. Which is better is often debated, but few people really understand the differences. Time to shed some light on the magic of web statistics.",
   "topics": [
    "cloud",
    "data",
    "linux",
    "networking",
    "review",
    "server",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-08-20_google-analytics-vs-awstats/",
    "source_url": "https://willem.com/nl/2018-08-20_google-analytics-vs-awstats/"
   },
   "image": "https://willem.com/global/images/fef3c413cf12.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/5395a5372a16.webp",
     "description": "Google Analytics and AWStats - web traffic statistics software",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37024_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/7689fca9d1b9.webp",
     "description": "Robots surfing the web: bot traffic listed by AWStats",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37024_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/d6ce3879461c.webp",
     "description": "Part of a web server log file, each line corresponds with a page request - do you see the bot?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37024_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/9fe21c623fcc.webp",
     "description": "Typical piece of Google Analtyics JavaScript code - you can clearly see it referring to Google's servers ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37024_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/a28ca2b50443.webp",
     "description": "Percentage of people blocking Google Analytics (2016), quantable.com - Jason Packer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37024_images-5.png"
    }
   ]
  },
  {
   "id": 37025,
   "slug": "2018-07-20_helping-people-with-free-software",
   "url": "https://agents.willem.com/en/posts/2018-07-20_helping-people-with-free-software/",
   "source_url": "https://willem.com/en/2018-07-20_helping-people-with-free-software/",
   "language": "en",
   "date": "2018-07-20",
   "published": "2018-07-20T00:00:00+02:00",
   "created": "2025-06-26T22:10:22.672000+02:00",
   "updated": "2026-04-03T14:34:56.765000+02:00",
   "title": "Helping people with free software",
   "subtitle": "Installing Debian GNU/Linux on an old laptop",
   "summary": "This week a man brought his laptop to the community centre where I help people with computer problems as volunteer. The old laptop wouldn't start anymore and had to be reinstalled. Instead of Windows, I installed a free operating system. I think it is important to tell you how and why I did it.",
   "topics": [
    "Amsterdam",
    "Circulair",
    "Durable",
    "Freedom",
    "budget",
    "environment",
    "hacking",
    "howto",
    "laptop",
    "linux",
    "networking",
    "people",
    "repair",
    "volunteer"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-07-20_mensen-helpen-met-vrije-software/",
    "source_url": "https://willem.com/nl/2018-07-20_mensen-helpen-met-vrije-software/"
   },
   "image": "https://willem.com/global/images/94f098acd593.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/62905284bcaf.webp",
     "description": "Laptop as it arrived at the community center ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/fb23e6aea1ef.webp",
     "description": "Boot device not found - that's not good",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/6d8226136f31.webp",
     "description": "The error message was right, quite literally: the boot device is missing!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/654cf1d89414.webp",
     "description": "Replacement disk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/df5c3cfc5c8a.webp",
     "description": "Installing the disk in the laptop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/3c2501280fb6.webp",
     "description": "Replacement disk tucked way inside the laptop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/739e2cc6f10a.webp",
     "description": "GNU/Linux distributions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/2e2c4b0d73bd.webp",
     "description": "Downloading Debian",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/7835cc6a90ea.webp",
     "description": "Creating bootable USB-drive for installation",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/f8e252e8203a.webp",
     "description": "Installing Debian involves answering questions like the desired language",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-10.png"
    },
    {
     "url": "https://willem.com/global/images/f377dfeda300.webp",
     "description": "Alfa One 802.11b WiFi adapter is recognised by the Debian installer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/c9ba52061281.webp",
     "description": "The laptop is working again, this time thanks to (mostly) free software",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37025_images-12.jpg"
    }
   ]
  },
  {
   "id": 37026,
   "slug": "2018-07-10_enjoy-a-festival-without-alcohol",
   "url": "https://agents.willem.com/en/posts/2018-07-10_enjoy-a-festival-without-alcohol/",
   "source_url": "https://willem.com/en/2018-07-10_enjoy-a-festival-without-alcohol/",
   "language": "en",
   "date": "2018-07-10",
   "published": "2018-07-10T00:00:00+02:00",
   "created": "2025-06-26T22:10:23.025000+02:00",
   "updated": "2026-04-03T14:34:57.045000+02:00",
   "title": "Enjoy a festival without alcohol",
   "subtitle": "Alcohol-free beer at Rock Werchter",
   "summary": "Last weekend me and my brother went to Rock Werchter, a multi-day, music festival in Belgium. Over 140 thousand visitors enjoy world famous artists like Pearl Jam, Nick Cave, Artic Monkeys, Noel Gallagher, The Killers and the Queens of the Stone Age. This year I didn't drink alcohol during the festival, leading to some interesting observations...",
   "topics": [
    "experiment",
    "health",
    "lifestyle",
    "music",
    "people",
    "review"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-07-10_geniet-van-een-festival-zonder-alcohol/",
    "source_url": "https://willem.com/nl/2018-07-10_geniet-van-een-festival-zonder-alcohol/"
   },
   "image": "https://willem.com/global/images/639d8846a49d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d8746f334670.webp",
     "description": "Rock Werchter, main stage",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/8af0b6f39456.webp",
     "description": "Message from Rock Werchter about alcohol-free beer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/617a44289daa.webp",
     "description": "Freshly drafted Jupiler 0.0% beer on Rock Werchter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/59fb97488ff9.webp",
     "description": "Queens of the Stone Age at Rock Werchter 2018",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/202f071a75a1.webp",
     "description": "You can look just as crazy as before - without alcohol",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1cb457b6572c.webp",
     "description": "A guy with a lot of trash, spontaneous art in the crowd",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/9c5af6ee3509.webp",
     "description": "The Brewery at Rock Werchter, home of Jupiler 0.0%",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/373823664f04.webp",
     "description": "See you next time, Werchter.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37026_images-8.jpg"
    }
   ]
  },
  {
   "id": 37027,
   "slug": "2018-06-09_removing-paint-from-a-bike-frame",
   "url": "https://agents.willem.com/en/posts/2018-06-09_removing-paint-from-a-bike-frame/",
   "source_url": "https://willem.com/en/2018-06-09_removing-paint-from-a-bike-frame/",
   "language": "en",
   "date": "2018-06-09",
   "published": "2018-06-09T00:00:00+02:00",
   "created": "2025-06-26T22:10:23.285000+02:00",
   "updated": "2025-07-22T16:42:51.417000+02:00",
   "title": "Removing paint from a bike frame",
   "subtitle": "Uncover the aluminium with chemicals and sanding paper",
   "summary": "There is beauty in raw, unfinished material that is often hidden with superfluous layers of paint. I like things to be true to the nature of the material. My bike was painted black - not bad - but I wondered what it really looked like from a material point of view.",
   "topics": [
    "bike",
    "creating",
    "design",
    "hacking",
    "howto",
    "lifestyle",
    "minimal",
    "mobility"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-06-09_verf-verwijderen-van-een-fietsframe/",
    "source_url": "https://willem.com/nl/2018-06-09_verf-verwijderen-van-een-fietsframe/"
   },
   "image": "https://willem.com/global/images/cd26caff52cc.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/bb4b446ef48a.webp",
     "description": "Bike painted black before the treatment",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/b66ff8ea8a20.webp",
     "description": "Safety label on the bottle of dichloromethane: danger, danger, danger!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/193060b8f2d7.webp",
     "description": "Testing the chemical solution to remove paint from my front fork - it works!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/5116ed7d38ca.webp",
     "description": "Front fork wrapped in plastic bag",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/93fa591e6967.webp",
     "description": "Flocks of paint falling of my bike frame, uncovering the raw aluminium",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/08f011476a22.webp",
     "description": "One part of the front fork uncovered, the other still painted black",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/eb38f7a42b08.webp",
     "description": "Front wheel fitted to the raw aluminium fork",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/bc8c02a1fc0c.webp",
     "description": "You know something is going on when chemical crystals are forming on your bike frame... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/b901f15978b8.webp",
     "description": "Working my way through the entire bike frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/7c925728a8d9.webp",
     "description": "Sanding my way through layers of unwanted paint and filler",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/0ad611cae6d0.webp",
     "description": "Aluminium bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/84f1a1206998.webp",
     "description": "Schindelhauer steer mounted on my aluminium bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37027_images-12.jpg"
    }
   ]
  },
  {
   "id": 37028,
   "slug": "2018-06-02_creating-a-minimal-iphone-stand",
   "url": "https://agents.willem.com/en/posts/2018-06-02_creating-a-minimal-iphone-stand/",
   "source_url": "https://willem.com/en/2018-06-02_creating-a-minimal-iphone-stand/",
   "language": "en",
   "date": "2018-06-02",
   "published": "2018-06-02T00:00:00+02:00",
   "created": "2025-06-26T22:10:23.622000+02:00",
   "updated": "2026-04-03T14:34:57.291000+02:00",
   "title": "Creating a minimal iPhone stand",
   "subtitle": "Routing oak wood for a custom fit",
   "summary": "Today I created a minimal iPhone stand from oak wood. While it's much faster to buy one online, I wanted one to fit my phone horizontally, with its case on. I like minimal design, so I opted to machine a single piece of wood to get it done.",
   "topics": [
    "Circulair",
    "Durable",
    "Renewable",
    "creating",
    "design",
    "hacking",
    "howto",
    "iPhone",
    "lifestyle",
    "minimal",
    "nature",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-06-02_een-minimalistische-iphone-standaard-maken/",
    "source_url": "https://willem.com/nl/2018-06-02_een-minimalistische-iphone-standaard-maken/"
   },
   "image": "https://willem.com/global/images/5fb9df70f36f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/b735cbf230a7.webp",
     "description": "Workmate with wood router ready for action",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f67f48225198.webp",
     "description": "Prototype from spruce wood to determine the routing profile",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/5a2a6495bfdb.webp",
     "description": "Raw piece of oak wood - right before machining",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/b08b37e5d025.webp",
     "description": "Rounding edges of the piece of wood",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/52659631e1d4.webp",
     "description": "Aligning the wood router",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/c9b8be47b949.webp",
     "description": "Comparing routing profile of prototype with final version",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e3e653e62c16.webp",
     "description": "The smartphone case fits perfectly",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/193b1c1d97c0.webp",
     "description": "Silky smooth surface after sanding",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/fafb4fcf0ac2.webp",
     "description": "The wood nerves provide a natural pattern on the stand",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/5ee83381e7ef.webp",
     "description": "The stand is very stable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/f214bf8d532f.webp",
     "description": "The angle is right for easy touch screen access",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/16164cb891ec.webp",
     "description": "The touch screen is fully accessible, the front ridge is slightly recessed to allow \"swipe up\" gestures  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37028_images-12.jpg"
    }
   ]
  },
  {
   "id": 37029,
   "slug": "2018-05-17_listen-to-your-body",
   "url": "https://agents.willem.com/en/posts/2018-05-17_listen-to-your-body/",
   "source_url": "https://willem.com/en/2018-05-17_listen-to-your-body/",
   "language": "en",
   "date": "2018-05-17",
   "published": "2018-05-17T00:00:00+02:00",
   "created": "2025-06-26T22:10:23.964000+02:00",
   "updated": "2026-04-03T14:34:57.505000+02:00",
   "title": "Listen to your body",
   "subtitle": "Why I stopped using health and fitness sensors",
   "summary": "A good customer of mine was once a physiotherapist, he told me about people asking him to \"feel their muscles\" to tell them how they where doing. \"Crazy!\" he told me: \"I can never feel better than the people themselves, if they only would listen to their body\". This caused me to question the health and fitness sensors I use.",
   "topics": [
    "bike",
    "data",
    "health",
    "heart",
    "lifestyle",
    "mobility",
    "sensors",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-05-17_luister-naar-je-lichaam/",
    "source_url": "https://willem.com/nl/2018-05-17_luister-naar-je-lichaam/"
   },
   "image": "https://willem.com/global/images/b48ca2ede57b.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/2065af7aa361.webp",
     "description": "Explosive little Vespa - the moped that made me start cycling",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37029_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/aef67106a5da.webp",
     "description": "My collection of health and fitness sensors ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37029_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ca85055247e0.webp",
     "description": "Resting heart rate no longer has any red spikes - relatively stable since I stopped drinking beer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37029_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/3e905eab9ea7.webp",
     "description": "Nocturnal HRV trend, an indicator how fit you are, has stabilised, too",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37029_images-4.png"
    },
    {
     "url": "https://willem.com/global/images/993c55672fa3.webp",
     "description": "The nervous system (image from Wikimedia)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37029_images-5.png"
    },
    {
     "url": "https://willem.com/global/images/7862fafde873.webp",
     "description": "For sure I will need some time to get used to not wearing sensors... note the white stripe on my wrist :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37029_images-6.jpg"
    }
   ]
  },
  {
   "id": 37030,
   "slug": "2018-05-09_lunch-by-plane",
   "url": "https://agents.willem.com/en/posts/2018-05-09_lunch-by-plane/",
   "source_url": "https://willem.com/en/2018-05-09_lunch-by-plane/",
   "language": "en",
   "date": "2018-05-09",
   "published": "2018-05-09T00:00:00+02:00",
   "created": "2025-06-26T22:10:24.332000+02:00",
   "updated": "2025-07-22T16:42:51.709000+02:00",
   "title": "Lunch by plane",
   "subtitle": "Flying from Hilversum to Texel in a Tecnam P2002JF",
   "summary": "This week I was invited to fly along over the Netherlands in a small aircraft, from Hilversum to Texel. A good buddy of mine is a pilot and planned to fly to the Texel island for lunch (and good fun!). The weather was excellent, so packed with my photo camera, I didn't hesitate for a moment to join him for lunch!",
   "topics": [
    "lifestyle",
    "mobility",
    "nature",
    "travel"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-05-09_lunch-per-vliegtuig/",
    "source_url": "https://willem.com/nl/2018-05-09_lunch-per-vliegtuig/"
   },
   "image": "https://willem.com/global/images/094b1686820b.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/c945de91c7cf.webp",
     "description": "Willem and Tim",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c3107c3d0895.webp",
     "description": "Vliegschool Hilversum",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/49705055d856.webp",
     "description": "Tecnam P2002JF - PH-TCM",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/072d335afa85.webp",
     "description": "Tecnam P2002JF dimensions (source: Tecnam)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/e5b64be7cba3.webp",
     "description": "Rotax 912S2 engine with 100HP ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d1bd75db2bc1.webp",
     "description": "Flight route indicated in purple",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/69a54a974871.webp",
     "description": "Loosdrechtse Plassen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/3eec5284abf9.webp",
     "description": "The Hollandse Brug (A6 near Almere)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5e41e5d8def9.webp",
     "description": "Marken, former Island in the Zuiderzee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/30bd9962bf66.webp",
     "description": "Marken from the west",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/ee5c7d460b49.webp",
     "description": "Middelie, with some colourful flower fields",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/8dae13850689.webp",
     "description": "Fields with flowers can easily be seen from above!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/347e880a61bb.webp",
     "description": "From above you can clearly spot buildings with solar panels, Smak Tulips near the N240, south of Medemblik",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/3f300b3eb4f8.webp",
     "description": "De Vlietlanden near Medemblik",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/20f9fbcdf785.webp",
     "description": "Medemblik (with the regattacenter in the top left)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/013c3dd31526.webp",
     "description": "Flying to Texel (the Medemblik Kaapstander towers clearly in sight)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/063dc6efe053.webp",
     "description": "Renault Twizzy from Texel Airport",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/cc33d39dc1dc.webp",
     "description": "Texel from above, near Plassendaal / Westerkolk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/999a974cb714.webp",
     "description": "Chalets seen from above at Jachtlust Recreatie, Slufterweg 380, Texel",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/f7b78cd9d439.webp",
     "description": "Westerkolk reflecting the sun light at Texel",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/a8195f78aa0a.webp",
     "description": "Passengership in de Waddenzee (near Texel)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/de941e65aaea.webp",
     "description": "Stevinssluizen near Den Oever, part of de Afsluitdijk",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc757f7e77fe.webp",
     "description": "Den Oever",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/f9eb57692641.webp",
     "description": "Den Oever with the soccer field from VV Wiron",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/6b351df3d638.webp",
     "description": "Flying over De Afsluitdijk from Den Oever to Friesland",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/628b5e82aa20.webp",
     "description": "Lorentzsluizen at Kornwernderzand, Friesland",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/58001bef1fac.webp",
     "description": "Makkumerdiep and Makkum beach, you can clearly see the differences in water depth from the sky",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-27.jpg"
    },
    {
     "url": "https://willem.com/global/images/b7aace9ff498.webp",
     "description": "Beach Resort Makkum",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-28.jpg"
    },
    {
     "url": "https://willem.com/global/images/3b528a82362c.webp",
     "description": "Windpark Noordoostpolder, near Lemmer ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-29.jpg"
    },
    {
     "url": "https://willem.com/global/images/917b541efef1.webp",
     "description": "Urk, the former Island in de Zuiderzee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-30.jpg"
    },
    {
     "url": "https://willem.com/global/images/f29ac17fc18f.webp",
     "description": "Industrieterrein Elburg, with the Flevomeer (top left) and Drontermeer (bottom right)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-31.jpg"
    },
    {
     "url": "https://willem.com/global/images/bac70a3ad47c.webp",
     "description": "Dolfinarium Hardewijk (the blue dome in the center)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-32.jpg"
    },
    {
     "url": "https://willem.com/global/images/292f89fa9655.webp",
     "description": "Zeewolde Strand",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-33.jpg"
    },
    {
     "url": "https://willem.com/global/images/aa02b9738689.webp",
     "description": "Bonshaven Zeewolde",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-34.jpg"
    },
    {
     "url": "https://willem.com/global/images/7b3cf5c6ff9c.webp",
     "description": "Bridge over Valleikanaal, near junction Holkerweg / Ringweg Koppel in Amertsfoort",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-35.jpg"
    },
    {
     "url": "https://willem.com/global/images/39cf1b1dd064.webp",
     "description": "Stichting Dierenzorg Eemland doing major ground works near Soest",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-36.jpg"
    },
    {
     "url": "https://willem.com/global/images/68e46c4f1016.webp",
     "description": "De Korte Duinen, Soest, seen from above ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-37.jpg"
    },
    {
     "url": "https://willem.com/global/images/5b40b9aef2f3.webp",
     "description": "Egelshoek, near Hilversum",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-38.jpg"
    },
    {
     "url": "https://willem.com/global/images/7b01a82687ee.webp",
     "description": "House seen from above near Hollandse Rading",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-39.jpg"
    },
    {
     "url": "https://willem.com/global/images/f71be5cebb25.webp",
     "description": "Ecoduct \"Natuurbrug Zwaluwenberg\" over the A27 near Hilversum",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-40.jpg"
    },
    {
     "url": "https://willem.com/global/images/70eaaff542b7.webp",
     "description": "A27 construction works near Hilversum where the unused connection to the never finished A80 is removed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-41.jpg"
    },
    {
     "url": "https://willem.com/global/images/136d57053365.webp",
     "description": "Hilversum - with the radio/TV tower clearly visible",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-42.jpg"
    },
    {
     "url": "https://willem.com/global/images/a94398681219.webp",
     "description": "Inside the Hiversum Airport control tower.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-43.jpg"
    },
    {
     "url": "https://willem.com/global/images/3dfc8268cd64.webp",
     "description": "The sky is limit - or is it?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37030_images-44.jpg"
    }
   ]
  },
  {
   "id": 37031,
   "slug": "2018-04-30_off-the-grid-working-on-100-renewable-energy",
   "url": "https://agents.willem.com/en/posts/2018-04-30_off-the-grid-working-on-100-renewable-energy/",
   "source_url": "https://willem.com/en/2018-04-30_off-the-grid-working-on-100-renewable-energy/",
   "language": "en",
   "date": "2018-04-30",
   "published": "2018-04-30T00:00:00+02:00",
   "created": "2025-06-26T22:10:25.731000+02:00",
   "updated": "2026-04-03T14:34:57.714000+02:00",
   "title": "Off the grid: Working on 100% renewable energy",
   "subtitle": "Collecting, storing and using solar electricity to power my phone, computer and wearables",
   "summary": "For the past 10 days I have powered my personal electronic devices (phone, computer, wearables) using nothing but energy collected using a small solar panel. I disconnected all grid-connected chargers. I hoped that by going off the grid, even in such a small way, I would gain insights that enable me to save energy (and money).",
   "topics": [
    "Amsterdam",
    "Circulair",
    "Durable",
    "Renewable",
    "creating",
    "environment",
    "experiment",
    "hacking",
    "howto",
    "iPad",
    "lifestyle",
    "minimal",
    "office",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-04-30_off-grid-werken-op-100-hernieuwbare-energie/",
    "source_url": "https://willem.com/nl/2018-04-30_off-grid-werken-op-100-hernieuwbare-energie/"
   },
   "image": "https://willem.com/global/images/0f46ad50642e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/07792197e4e3.webp",
     "description": "Gomadic portable Solar Charger - 15W - 330 x 305 x 38 mm",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/7a2cc4297f11.webp",
     "description": "Finding a way to fix the panel in a way that the weather would not harm it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/e61a7a1df7e1.webp",
     "description": "The solar panel directly placed behind the glass",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/b0fffae0fbe3.webp",
     "description": "Placed behind glass the panel works, but its performance is not optimal",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/e00f28a308cd.webp",
     "description": "Placing the solar panel is direct sunlight for optimal performance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/976569f35eff.webp",
     "description": "Rack mounted server chassis (1U), with rail kit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6c54e8b2470e.webp",
     "description": "Engineering a solar panel mounting kit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/34030d6f7112.webp",
     "description": "Clamping the solar panel using server parts ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/a6de5ca038cd.webp",
     "description": "Once the front of a server, now part of the solar panel mounting fixture",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/88d647bf806f.webp",
     "description": "Achieved a nice angle with three legs, suitable for fixture on my balcony",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/cdc12deb5e57.webp",
     "description": "Solar panel fixed on the balcony",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/9b5cd3693dfa.webp",
     "description": "Measuring energy usage with an in-line USB power monitor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/b66f751e9780.webp",
     "description": "Charging Biostrap using solar energy from the Anker power bank",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/641b478c9069.webp",
     "description": "Charging AirPods using solar energy - note the higher amperes compared to the Biostrap",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/5f1acc81fe28.webp",
     "description": "The Tesla PowerWall is a large battery pack that can be used to power an entire house ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37031_images-15.jpg"
    }
   ]
  },
  {
   "id": 37032,
   "slug": "2018-04-18_outside-the-comfort-zone-amateur-acting",
   "url": "https://agents.willem.com/en/posts/2018-04-18_outside-the-comfort-zone-amateur-acting/",
   "source_url": "https://willem.com/en/2018-04-18_outside-the-comfort-zone-amateur-acting/",
   "language": "en",
   "date": "2018-04-18",
   "published": "2018-04-18T00:00:00+02:00",
   "created": "2025-06-26T22:10:26.217000+02:00",
   "updated": "2026-04-03T14:34:57.925000+02:00",
   "title": "Outside the comfort zone: amateur acting",
   "subtitle": "Wearing an heart rate monitor during my debut performance",
   "summary": "This month I made my debut as amateur actor. I am no Hollywood star, nor do I envy to become one. But I do like crazy experiments and operating outside of my comfort zone often leads to new and refreshing insights. I took part in an amateur drama play and - in the name of science and fun - strapped myself with sensors to measure what happened to my body.",
   "topics": [
    "creativity",
    "data",
    "experiment",
    "health",
    "heart",
    "people",
    "sensors"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-04-18_buiten-de-comfortzone-amateurtoneel/",
    "source_url": "https://willem.com/nl/2018-04-18_buiten-de-comfortzone-amateurtoneel/"
   },
   "image": "https://willem.com/global/images/7cd209c6ad44.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/44ea7ca346a7.webp",
     "description": "Flyer announcing the play \"Zusters in Zaken\" by \"De Opregte Amateur\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/375bf7d85472.webp",
     "description": "Oh boy... there is no way back when you're face is all around town!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/5b1d9c31d3ef.webp",
     "description": "Part from the script with my first few lines of text, me playing \"Gerard\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b9c6d138a20.webp",
     "description": "Biostrap, wrist band, collecting health data on a daily basis, providing long term insights",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/861bb3b8d831.webp",
     "description": "Wahoo TICKR, waist worn strap, measuring heart rate in realtime",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/b7a783f5c41c.webp",
     "description": "Me playing \"Broeder Gerard\" in \"Zusters in Zaken\" during my debut as amateur actor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/e2acc65056d4.webp",
     "description": "Playing drama is a team effort - and the on stage interaction is what makes it fun!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/e56f31ee821c.webp",
     "description": "Heart rate during my debut - with annotations explaining what happened",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/ac23835d406b.webp",
     "description": "Heart rates during the two performance nights, left my debut, right the second performance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/67b76ba7b012.webp",
     "description": "Biometric readings covering the month leading up to the performance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/c779a03908a8.webp",
     "description": "De Opregte Amateur",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37032_images-11.jpg"
    }
   ]
  },
  {
   "id": 37033,
   "slug": "2018-03-10_cyber-security-5-easy-tips-to-protect-your-server-against-hackers",
   "url": "https://agents.willem.com/en/posts/2018-03-10_cyber-security-5-easy-tips-to-protect-your-server-against-hackers/",
   "source_url": "https://willem.com/en/2018-03-10_cyber-security-5-easy-tips-to-protect-your-server-against-hackers/",
   "language": "en",
   "date": "2018-03-10",
   "published": "2018-03-10T00:00:00+01:00",
   "created": "2025-06-26T22:10:26.500000+02:00",
   "updated": "2025-07-22T16:42:52.045000+02:00",
   "title": "Cyber security: 5 easy tips to protect your server against hackers",
   "subtitle": "Server hardening best practices for Windows and Linux",
   "summary": "This week one of my clients was hacked and asked me for emergency assistance to help secure their server infrastructure. It was a web server that ran WordPress websites on Apache (with PHP/MySQL), including a few webshops with customer data. This hack could easily have been prevented with the following best practices, is //your// server secure?",
   "topics": [
    "SSH",
    "cloud",
    "cyber-security",
    "data",
    "hacking",
    "howto",
    "linux",
    "networking",
    "programming",
    "server",
    "web",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-03-10_cyberbeveiliging-5-eenvoudige-tips-om-je-server-te-beschermen-tegen-hackers/",
    "source_url": "https://willem.com/nl/2018-03-10_cyberbeveiliging-5-eenvoudige-tips-om-je-server-te-beschermen-tegen-hackers/"
   },
   "image": "https://willem.com/global/images/39c9011ef9e3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/4a3f2a7449c7.webp",
     "description": "The data centre is where your server lives. Even though it may be physically secure, you should check upon its software too!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37033_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/82d99c9ffa6b.webp",
     "description": "Check upon your server regulary - or find somebody that does this for you.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37033_images-2.jpg"
    }
   ]
  },
  {
   "id": 37034,
   "slug": "2018-03-07_tablet-as-main-computer",
   "url": "https://agents.willem.com/en/posts/2018-03-07_tablet-as-main-computer/",
   "source_url": "https://willem.com/en/2018-03-07_tablet-as-main-computer/",
   "language": "en",
   "date": "2018-03-07",
   "published": "2018-03-07T00:00:00+01:00",
   "created": "2025-06-26T22:10:26.676000+02:00",
   "updated": "2026-04-03T14:34:58.126000+02:00",
   "title": "Tablet as main computer",
   "subtitle": "Comparing the Microsoft Surface Pro to iPad Pro",
   "summary": "For the past few weeks I have been using the Microsoft Surface Pro as my main computer. It's a modern tablet computer that can be used as laptop with the type cover. With the Surface Pen, it's a versatile PC that works in a lot of different ways. Time to find out if it's any good and how it compares to my other tablet computer, iPad Pro.",
   "topics": [
    "SSH",
    "Windows",
    "apple",
    "cloud",
    "creativity",
    "design",
    "iOS",
    "iPad",
    "laptop",
    "lifestyle",
    "linux",
    "minimal",
    "office",
    "pencil",
    "programming",
    "review",
    "tablet",
    "vim",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-03-07_tablet-als-hoofdcomputer/",
    "source_url": "https://willem.com/nl/2018-03-07_tablet-als-hoofdcomputer/"
   },
   "image": "https://willem.com/global/images/aef29b5dd461.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/68d001e042d0.webp",
     "description": "Microsoft Surface family",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f6628afc3f27.webp",
     "description": "Microsoft Surface Pro",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/df944dd3e043.webp",
     "description": "Surface Pro, type cover and pen - al sold seperately - because, why just one package if you can have three times as much fun!?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/2b84ec46efb8.webp",
     "description": "Updating... updating... updating... updating...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/87b1e93577d0.webp",
     "description": "Chromebook only took a few minutes to become usefull after unboxing.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d71476260d24.webp",
     "description": "Look what happens to my face when my patience is tested...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/8d8808c82806.webp",
     "description": "Windows works surprisingly well in Tablet Mode",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/ef88493b4d5a.webp",
     "description": "Annotate anything using Surface Pen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/57f24d186cdf.webp",
     "description": "Reading using a tablet computer is not limited to your desk - I like reading on the couch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/b583be2aa859.webp",
     "description": "Apple Pencil and Surface Pen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/3af862234efa.webp",
     "description": "Working with Surface Pen and Apple Pencil",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/543d686ed89c.webp",
     "description": "Kickstand is useful in combination with the Pen",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/6e418543ebfa.webp",
     "description": "Zoom in to work on details more precisely",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/621ab7b3b2e1.webp",
     "description": "Touch screens are important these days when designing (and testing) interfaces",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/f50e418b33c1.webp",
     "description": "Using the Surface and iPad as laptop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/ab567780c7ab.webp",
     "description": "Typing on a tablet is perfectly possible using an hardware keyboard.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/be0de60e4a44.webp",
     "description": "The Surface keyboard can be used under different angles",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/a76c754627ae.webp",
     "description": "The kickstand is a clever piece of design and engineering, being both functional and sturdy.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/c1af94b818ca.webp",
     "description": "Autodesk Graphic is an amazing app for iOS - I use it to design icons and graphics, with layers and alignment tools",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/2121c4e027ce.webp",
     "description": "Windows on iPad is possible using Remote Desktop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/a79bc46256a5.webp",
     "description": "Running four apps simultaneously thanks to Windows multitasking - at the price of consuming more battery power",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/7c77021765e8.webp",
     "description": "Developing software with Microsoft Visual Studio on a Surface Pro tablet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37034_images-22.jpg"
    }
   ]
  },
  {
   "id": 37035,
   "slug": "2018-02-24_creating-the-ultimate-commuter-bike",
   "url": "https://agents.willem.com/en/posts/2018-02-24_creating-the-ultimate-commuter-bike/",
   "source_url": "https://willem.com/en/2018-02-24_creating-the-ultimate-commuter-bike/",
   "language": "en",
   "date": "2018-02-24",
   "published": "2018-02-24T00:00:00+01:00",
   "created": "2025-06-26T22:10:27.195000+02:00",
   "updated": "2026-04-03T14:34:58.351000+02:00",
   "title": "Creating the ultimate commuter bike",
   "subtitle": "Riding at 35KM/h with Nexus Alfine 8 and Gates Carbon Drive",
   "summary": "This winter I use a Sensa Cintura bike with a Gates Carbon belt drive as my daily commuter. It's a bike designed to be nice to ride thanks to its sporty lightweight frame. It's also meant to be low on maintenance thanks to the belt drive and Nexus Afline 8 integrated gear hub. After 1800KM in just eight weeks, it was time for some upgrades.",
   "topics": [
    "Durable",
    "Freedom",
    "bike",
    "creating",
    "design",
    "health",
    "lifestyle",
    "mobility",
    "office",
    "review",
    "sport",
    "travel",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-02-24_de-ultieme-forenzenfiets-creeren/",
    "source_url": "https://willem.com/nl/2018-02-24_de-ultieme-forenzenfiets-creeren/"
   },
   "image": "https://willem.com/global/images/d7d7838047f4.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0955f24c885b.webp",
     "description": "Sensa Cintura - as I got it from the local bike shop",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/7b412540c301.webp",
     "description": "Sensa Cintura from the rear - I didn't like the excessive branding on the fenders",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/003aa3ab76b2.webp",
     "description": "A cleaner look thanks to less obvious branding",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/b51a103ed1a7.webp",
     "description": "The metal fenders match well with the bike's disc and bolts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/34bfd586ee77.webp",
     "description": "On the bike during Dutch winter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/4378a0bfbdca.webp",
     "description": "Excessive dirt after a \"normal\" commute during winter time",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/c5fe762b91dd.webp",
     "description": "Dirt on top of my rear fender",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/23e947f14601.webp",
     "description": "Gates Carbon Drive",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/428ebaf272b9.webp",
     "description": "Gates Carbon Drive rear sprocket showing excessive wear after just 1800KM",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/7af502966145.webp",
     "description": "Left the plastic CDN sprocket - if you look closely you'll notice the missing teeth, right the shiny stainless steel CDX sprocket",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/7ecf03a31507.webp",
     "description": "Upgrading the Sensa Cintura",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/6cf98cef1040.webp",
     "description": "The Gates CDX rear sprocket installed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/139d05b87475.webp",
     "description": "Schwalbe Durano",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/f22a57710eaf.webp",
     "description": "Brooks Cambium C15 ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/fe29b327c8a5.webp",
     "description": "Shimano Alfine 8",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/aa33d93f7451.webp",
     "description": "Shimano Alfine 8 trigger shifter",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/1d107a767ffb.webp",
     "description": "The upgraded Sensa Cintura",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/35cf54dccaf3.webp",
     "description": "Maybe the ultimate commuter bike?",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37035_images-18.jpg"
    }
   ]
  },
  {
   "id": 37036,
   "slug": "2018-02-21_updating-snake-97",
   "url": "https://agents.willem.com/en/posts/2018-02-21_updating-snake-97/",
   "source_url": "https://willem.com/en/2018-02-21_updating-snake-97/",
   "language": "en",
   "date": "2018-02-21",
   "published": "2018-02-21T00:00:00+01:00",
   "created": "2025-06-26T22:10:27.779000+02:00",
   "updated": "2025-07-23T09:59:25.265000+02:00",
   "title": "Updating Snake '97",
   "subtitle": "About the challenges of developing a wildly popular game",
   "summary": "Few years ago my brother threw a beer on my iPhone in an Amsterdam bar. The poor thing didn't like the Dutch brew as much as I do: it died. While waiting for a new phone to arrive, I used an old one that couldn't do anything but texting, calling and... Snake! The idea for Snake '97 was born and this month it was time to update the wildly popular game.",
   "topics": [
    "Windows",
    "android",
    "creating",
    "creativity",
    "design",
    "game",
    "iOS",
    "iPad",
    "iPhone",
    "programming",
    "retro",
    "server",
    "smartphone",
    "snake",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-02-21_snake-97-updaten/",
    "source_url": "https://willem.com/nl/2018-02-21_snake-97-updaten/"
   },
   "image": "https://willem.com/global/images/da5f22919df3.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/06e55a3e0198.webp",
     "description": "Café 't Pakhuis in Amsterdam - where Snake '97 was \"invented\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/ee992b73bb44.webp",
     "description": "Snake '97 running on iPhone X - looking and feeling like the retro mobile phone game from the 90s",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/13f8f2dd6fc1.webp",
     "description": "Snake '97 rocking the carts with Angry Birds and WhatsApp",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/87b0ccd8c5d9.webp",
     "description": "iPhone 4 - ahhh sweet developer memories when one (small) size did fit all...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/3da50637eff4.webp",
     "description": "Prototype of Snake '97 running on various devices",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/8d20b82f1396.webp",
     "description": "Programming the new game engine and testing it on an HMD Nokia 2 running Android",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/37052d0f8036.webp",
     "description": "Same 3310? Look closely and spot the differences between iPhone SE and iPhone X",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/98f47b70cb4c.webp",
     "description": "Wide screen gameplay is now possible thanks to the new responsive graphics",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/6848b7ac140f.webp",
     "description": "Snake '97 running as macOS desktop app made possible by the new scalable graphics",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/a5e27801afbd.webp",
     "description": "Analysing gameplay speed differences using slow motion video",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/6251dc574a72.webp",
     "description": "The actual code from Snake '97 handling distance calculation using the Pythagoras Theorem",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/07b9c2f3b1a4.webp",
     "description": "Controlling Snake using a Super Nintendo gamepad is awesome (using a SuperSmart-joy USB connector)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/fa191d607fbb.webp",
     "description": "A trick the original Snake couldn't: controlling the game using a Bluetooth DualShock PlayStation controller with an analog thumbstick",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/12934c0ebe67.webp",
     "description": "UX-design for an international audience. Designing interfaces without words is difficult!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/37c761847d86.webp",
     "description": "World champion of Snake '97 - but not for long...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/d31a2077c5a4.webp",
     "description": "This is what the cloud looks like, dear boys and girls. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/5234dd3dd7ae.webp",
     "description": "Snake '97 available as free download for iOS, Android, macOS, Windows and ChromeOS",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37036_images-17.jpg"
    }
   ]
  },
  {
   "id": 37037,
   "slug": "2018-01-21_something-the-smartwatch-will-never-have-patina",
   "url": "https://agents.willem.com/en/posts/2018-01-21_something-the-smartwatch-will-never-have-patina/",
   "source_url": "https://willem.com/en/2018-01-21_something-the-smartwatch-will-never-have-patina/",
   "language": "en",
   "date": "2018-01-21",
   "published": "2018-01-21T00:00:00+01:00",
   "created": "2025-06-26T22:10:28.139000+02:00",
   "updated": "2025-07-22T16:42:52.565000+02:00",
   "title": "Something the smartwatch will never have: patina",
   "subtitle": "Wear and tear by the hands of time",
   "summary": "A good friend of mine had an issue with his Apple Watch, the digital crown lost a rubber ring causing the watch to lose its water resistance. Apple made no problem of it and offered to replace his \"device\". While it solved his problem, it felt painful to my watch lover's ears. It made me realise the one thing a smartwatch will never have: patina.",
   "topics": [
    "apple",
    "environment",
    "lifestyle",
    "people",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-01-21_iets-wat-de-smartwatch-nooit-zal-hebben-patina/",
    "source_url": "https://willem.com/nl/2018-01-21_iets-wat-de-smartwatch-nooit-zal-hebben-patina/"
   },
   "image": "https://willem.com/global/images/a39291977a32.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/08ac2b8ce8f2.webp",
     "description": "Tudor Oyster-Prince Submariner 7924 (from 1959) auctioned for $93,750 in 2016 (photo: Christie's )",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/77770d30596c.webp",
     "description": "The Pebble Smartwach is no longer supported by software an will not develop patina",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/9353a98fbcf0.webp",
     "description": "a Zerdax (from the 1960's, worth about €100), a Citizen (1970's ~ €80) and a Seiko (2008, €130)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/b9904cd33e18.webp",
     "description": "Notice the countless microscopic scratches reflecting light like no new watch would",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/c519712bba02.webp",
     "description": "Among the scuffs and scratches you can see at least three different colours of paint drops",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/3d7b02bad639.webp",
     "description": "The plated gold is worn through, but the watch still shines in sunlight",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/610d58a1e22c.webp",
     "description": "Time can only tell how future generations will look back to the Apple Watch ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37037_images-7.jpg"
    }
   ]
  },
  {
   "id": 37038,
   "slug": "2018-01-08_lessons-from-a-takeaway-plastic-bag",
   "url": "https://agents.willem.com/en/posts/2018-01-08_lessons-from-a-takeaway-plastic-bag/",
   "source_url": "https://willem.com/en/2018-01-08_lessons-from-a-takeaway-plastic-bag/",
   "language": "en",
   "date": "2018-01-08",
   "published": "2018-01-08T00:00:00+01:00",
   "created": "2025-06-26T22:10:28.350000+02:00",
   "updated": "2026-04-03T14:34:58.594000+02:00",
   "title": "Lessons from a takeaway plastic bag",
   "subtitle": "My ever increasing antipathy to planned obsolescence",
   "summary": "About five months ago I got some take away food from our local Asian restaurant. They packaged the food and gave me a plastic bag to carry it home. On my way home I was thinking about the bag. Although it has some nice styling printed on it, it's designed for single use only. What a waste... making me wonder: how long would it last if you would use it on a daily basis?",
   "topics": [
    "Durable",
    "Renewable",
    "ThinkPad",
    "budget",
    "environment",
    "lifestyle",
    "linux",
    "people",
    "repair",
    "retro",
    "smartphone",
    "spending"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2018-01-08_lessen-van-een-plastic-tasje-van-de-afhaal/",
    "source_url": "https://willem.com/nl/2018-01-08_lessen-van-een-plastic-tasje-van-de-afhaal/"
   },
   "image": "https://willem.com/global/images/d8a313221ec9.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/be0a79d6abf6.webp",
     "description": "Plastic bag from the Asian takeaway restaurant",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37038_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/c4ebbc8d1643.webp",
     "description": "Plastic bag at work, with food inside protecting the contents of my commuting backpack",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37038_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/11c4aeaadbc1.webp",
     "description": "LG Nexus 5 running the latest version of Chrome (v63)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37038_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/8e9408e3241b.webp",
     "description": "ThinkPad X200 running Debian GNU/Linux with OpenBox.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37038_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/a8dbfe0dcad0.webp",
     "description": "Upgrading the ThinkPad X200 memory and SSD is easy. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37038_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/ade1eac2da8c.webp",
     "description": "Dopper - the bottle is the message",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37038_images-6.jpg"
    }
   ]
  },
  {
   "id": 37039,
   "slug": "2017-12-02_commuting-by-bike",
   "url": "https://agents.willem.com/en/posts/2017-12-02_commuting-by-bike/",
   "source_url": "https://willem.com/en/2017-12-02_commuting-by-bike/",
   "language": "en",
   "date": "2017-12-02",
   "published": "2017-12-02T00:00:00+01:00",
   "created": "2025-06-26T22:10:28.803000+02:00",
   "updated": "2026-04-03T14:34:58.850000+02:00",
   "title": "Commuting by bike",
   "subtitle": "One week (240KM) on the VanMoof Electrified S",
   "summary": "For a few years now, I commute to work using a bicycle. I have lost more than 15KG since I stopped using my scooter. This week I tested a VanMoof Electrified S, an electric bike with an industrial, minimal design. Is it any good? How does it compare to a normal bike? Will an electric bike make you lazy? Read along to find out!",
   "topics": [
    "Amsterdam",
    "Durable",
    "Freedom",
    "bike",
    "design",
    "environment",
    "experiment",
    "health",
    "heart",
    "lifestyle",
    "minimal",
    "mobility",
    "people",
    "review",
    "sensors",
    "sport",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-12-02_forenzen-met-de-fiets/",
    "source_url": "https://willem.com/nl/2017-12-02_forenzen-met-de-fiets/"
   },
   "image": "https://willem.com/global/images/4e970e5e0171.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/e3e837268217.webp",
     "description": "VanMoof's founders, brothers Taco and Ties Carlier",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/f4cfa52e66d2.webp",
     "description": "VanMoof Electrified S - an e-bike with secret superpowers - a rocket disguised as bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/f2a95e452ec1.webp",
     "description": "The inners of the Electrified S: the battery and electronics are cleverly hidden inside the bike's frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-3.png"
    },
    {
     "url": "https://willem.com/global/images/8cd61993c816.webp",
     "description": "Rain radar image during test riding the Electrified S (source: knmi.nl)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/3a19d2010c3b.webp",
     "description": "That smile is not because of the fantastic Dutch weather... it's because of that rocket disguised as bike ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/4dc32f2dd921.webp",
     "description": "Dutch bike, Dutch weather: The Electrified S handles the dark, cold and wet conditions easily!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/23e4266dcc54.webp",
     "description": "Unlocking the bike using a smartphone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/8ab2b8fffeed.webp",
     "description": "The VanMoof app",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/6ce115a6c7b1.webp",
     "description": "Out in the open: the Electrified S",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/f7727d33bcca.webp",
     "description": "Riding the VanMoof through the Dutch country side",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/8c09d43aa3a6.webp",
     "description": "VanMoof Electrified S",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/8ffd740ccf82.webp",
     "description": "Smile inducing speed advantage over other traffic during rush hour",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-12.gif"
    },
    {
     "url": "https://willem.com/global/images/0e601d18853c.webp",
     "description": "The bike features a sporty city steer and an integrated touchscreen in the frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/999dbe442e25.webp",
     "description": "The dashboard indicates current speed, battery level and engine performance",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/740cc0925e67.webp",
     "description": "Dashboard and charging connector are integrated into the frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/2c1de5b1fab0.webp",
     "description": "The charing port is hidden behind a rubber flap. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/455e4deeb657.webp",
     "description": "Front hub electric motor",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/0986841bdbba.webp",
     "description": "The booster button, conveniently positioned near the left thumb  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/dcd8dc5d44fc.webp",
     "description": "Front light is integrated into the frame",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/eceeee6deb62.webp",
     "description": "Rear light is integrated under the seat post",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/1cbdf3c77223.webp",
     "description": "ILU integrated light on the Sensa Cintura Belt Drive bike - it doesn't get blocked by rear luggage, child seats or a long jacket",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/4836e8544b9f.webp",
     "description": "Chain guard made from flexible plastic is resilient to damage",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/9511abada85a.webp",
     "description": "SRAM Automatix two speed gear hub - hate it or love it",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-23.jpg"
    },
    {
     "url": "https://willem.com/global/images/e43147ce4f26.webp",
     "description": "Big Ben tires from Schwalbe",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-24.jpg"
    },
    {
     "url": "https://willem.com/global/images/0711394fd530.webp",
     "description": "The mechanical disc brakes have no trouble stopping you",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-25.jpg"
    },
    {
     "url": "https://willem.com/global/images/9bce552575e0.webp",
     "description": "Lock chain inside a small luggage compartment",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-26.jpg"
    },
    {
     "url": "https://willem.com/global/images/4aa427374643.webp",
     "description": "The optional \"bambooman\" front carrier can be quite handy (photo from another bike, my VanMoof S5)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-27.jpg"
    },
    {
     "url": "https://willem.com/global/images/4ee4fa7f5b44.webp",
     "description": "Normal (non-electrified) vs Electrified bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-28.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc29cd2256b9.webp",
     "description": "Using the Cyclemeter Pro and a Wahoo Tickr I measured speed and performance during the test",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-29.jpg"
    },
    {
     "url": "https://willem.com/global/images/ca194f444a77.webp",
     "description": "Measuring heart rate at different speeds on both a normal and electric bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-30.jpg"
    },
    {
     "url": "https://willem.com/global/images/eedf6df533b3.webp",
     "description": "Histogram of time and heart rate, showing how long (% of total time) a given heart rate was measured. (blue is electric, red is normal)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-31.png"
    },
    {
     "url": "https://willem.com/global/images/9edfc8e27c88.webp",
     "description": "In case you're still in doubt: electric mobility is the future and is here to stay.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37039_images-32.jpg"
    }
   ]
  },
  {
   "id": 37040,
   "slug": "2017-11-15_collecting-health-data-with-biostrap",
   "url": "https://agents.willem.com/en/posts/2017-11-15_collecting-health-data-with-biostrap/",
   "source_url": "https://willem.com/en/2017-11-15_collecting-health-data-with-biostrap/",
   "language": "en",
   "date": "2017-11-15",
   "published": "2017-11-15T00:00:00+01:00",
   "created": "2025-06-26T22:10:29.726000+02:00",
   "updated": "2026-04-03T14:34:59.066000+02:00",
   "title": "Collecting health data with Biostrap",
   "subtitle": "Wearing a clinical-grade photoplethysmography (PPG) sensor for a month",
   "summary": "Most wearables (smartwatches, fitness trackers, etc.) use very basic sensors to capture heart rate. Their signal is binary: just counting beats. Biostrap is different, instead of just checking pulses, it captures a high-fidelity PPG waveform. These waveforms are the same kind that doctors use, making me wonder what I could learn from them!",
   "topics": [
    "data",
    "design",
    "experiment",
    "health",
    "heart",
    "lifestyle",
    "review",
    "sensors",
    "sport",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-11-15_gezondheidsgegevens-verzamelen-met-biostrap/",
    "source_url": "https://willem.com/nl/2017-11-15_gezondheidsgegevens-verzamelen-met-biostrap/"
   },
   "image": "https://willem.com/global/images/b06bf13f98d6.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d431d11fbb33.webp",
     "description": "Unboxing Biostrap: it comes well packed in a nice box. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/77e64ceddc47.webp",
     "description": "The box contains three straps, charging cable, charger and two sensors",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/bad36eb149aa.webp",
     "description": "Biostrap sensors size compared to an Apple AirPod",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/a8cc29662e04.webp",
     "description": "The Biostrap wrist PPG sensor next to a Swatch Sistem 51",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/d126ce02dba2.webp",
     "description": "The Biostrap PPG sensor is about as thick as a watch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/b2e34e39ab0e.webp",
     "description": "On the bottom you can see the two red LED's and the PPG sensor. Just like the Swatch Sistem51 movement this is hidden when worn on wrist",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/518d6ab1e50e.webp",
     "description": "Biostrap it's pretty much just like a Swatch, light on the wrist because of it's material: rubber and plastic.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/2a72820dd1f3.webp",
     "description": "Biostrap on the wrist - now you see me...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/aff50a2476dd.webp",
     "description": "... now you don't - Biostrap wears well and easily goes under your sleeve",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/994904d7956e.webp",
     "description": "Instead of just counting beats, the Biostrap cloud services analyses the PPG waveform captured by the sensor. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/a35855c69135.webp",
     "description": "Biostrap iOS app dashboard and daily heart rate",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-11.png"
    },
    {
     "url": "https://willem.com/global/images/a88ef8df34d7.webp",
     "description": "Heart rate variability (HRV) as measured and explained by Biostrap  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-12.png"
    },
    {
     "url": "https://willem.com/global/images/97771b6b7344.webp",
     "description": "Comparing the quality of sleep during two different nights. Being awake more often reduces quality of sleep. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/9034203c16e9.webp",
     "description": "Recovery after an heavy Thursday night can take up to days",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-14.png"
    },
    {
     "url": "https://willem.com/global/images/09207d4e4389.webp",
     "description": "Apple HealthKit aggregating data from different sources and devices",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-15.png"
    },
    {
     "url": "https://willem.com/global/images/3033656f0863.webp",
     "description": "Charging Biostrap is easy - Battery lasts up to 5 days",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/c4d934460ea9.webp",
     "description": "One month of Biostrap health data",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37040_images-17.png"
    }
   ]
  },
  {
   "id": 37041,
   "slug": "2017-10-23_from-tree-to-table",
   "url": "https://agents.willem.com/en/posts/2017-10-23_from-tree-to-table/",
   "source_url": "https://willem.com/en/2017-10-23_from-tree-to-table/",
   "language": "en",
   "date": "2017-10-23",
   "published": "2017-10-23T00:00:00+02:00",
   "created": "2025-06-26T22:10:30.288000+02:00",
   "updated": "2025-07-22T16:42:53.109000+02:00",
   "title": "From tree to table",
   "subtitle": "Designing and creating a night stand",
   "summary": "Right next to the house were I was born there was this chestnut tree, sadly it died one and a half year ago. When it was taken down, my brother saved me a slab of wood. I intended to create something from it, a nice \"do it yourself\" adventure, worthy of a blog post!",
   "topics": [
    "Circulair",
    "creating",
    "creativity",
    "design",
    "environment",
    "hacking",
    "howto",
    "lifestyle",
    "nature"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-10-23_van-boom-tot-tafel/",
    "source_url": "https://willem.com/nl/2017-10-23_van-boom-tot-tafel/"
   },
   "image": "https://willem.com/global/images/13574d1e4d40.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/27b64214cde5.webp",
     "description": "The chestnut slab wood on bench",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/1f59c6785b48.webp",
     "description": "\"Willem.com\" night stand - Designed on iPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/e717b7957e3b.webp",
     "description": "Sawing off rough edges",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/571618703c8f.webp",
     "description": "Sanding the slab of wood",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/69f61bc1fa8e.webp",
     "description": "Multitool sawing",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/0a6a2955391b.webp",
     "description": "Sawed pieces on work bench",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/d17ba6ef1c90.webp",
     "description": "Testing the design concept",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/841d47337036.webp",
     "description": "Drilling holes for the wooden pins",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/4e53b2582eae.webp",
     "description": "Glueing together",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/b00da7d1d6bb.webp",
     "description": "First connections made",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/b711a61aa3d6.webp",
     "description": "Two pieces on bench, painted.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/b12b6b9e06eb.webp",
     "description": "sanding again",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/4429473db95e.webp",
     "description": "Fresh lacquer... again",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/29080dd62f67.webp",
     "description": "... and again",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/6e6f489021b3.webp",
     "description": "Result (design fully visible)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/93c1840d0aaf.webp",
     "description": "Smooth surface detail",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/df8a7e7a22b8.webp",
     "description": "Wood nerves nicely visible throught the transparent lacquer",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/68d8c3068a60.webp",
     "description": "Drilling holes for wheels",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/6a12ba6c62e8.webp",
     "description": "Wheel with ring",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/0150624dde31.webp",
     "description": "Result on garden table",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/45dbefa83acf.webp",
     "description": "Lacquer finish is fantastic",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/40c78fa52cc6.webp",
     "description": "Night stand next to the bed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37041_images-22.jpg"
    }
   ]
  },
  {
   "id": 37042,
   "slug": "2017-09-14_saving-a-macbook-air-with-exploded-battery",
   "url": "https://agents.willem.com/en/posts/2017-09-14_saving-a-macbook-air-with-exploded-battery/",
   "source_url": "https://willem.com/en/2017-09-14_saving-a-macbook-air-with-exploded-battery/",
   "language": "en",
   "date": "2017-09-14",
   "published": "2017-09-14T00:00:00+02:00",
   "created": "2025-06-26T22:10:31.329000+02:00",
   "updated": "2025-07-22T16:42:53.252000+02:00",
   "title": "Saving a MacBook Air with exploded battery",
   "subtitle": "Don’t try this at home - but I did",
   "summary": "Last night I had a nasty surprise: my original MacBook Air was swollen due to an exploded battery. I immediately had to take action, for reasons of safety and  to preserve this piece of modern computer history. Don’t try this at home, but if you do... read along for some practical tips.",
   "topics": [
    "Durable",
    "MacBook",
    "apple",
    "design",
    "hacking",
    "laptop",
    "repair"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-09-14_een-macbook-air-met-geexplodeerde-batterij-redden/",
    "source_url": "https://willem.com/nl/2017-09-14_een-macbook-air-met-geexplodeerde-batterij-redden/"
   },
   "image": "https://willem.com/global/images/35ba145fde1f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/6a444211bc7c.webp",
     "description": "Steve Jobs unveiling the MacBook Air in 2008 from a vanilla envelope",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-1.jpeg"
    },
    {
     "url": "https://willem.com/global/images/e300a9fb99a7.webp",
     "description": "The original MacBook Air: Groundbreaking due to its thinness and lack of ports",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-2.jpeg"
    },
    {
     "url": "https://willem.com/global/images/b0dc65a92cc8.webp",
     "description": "This laptop is not supposed to have a bobble...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-3.jpeg"
    },
    {
     "url": "https://willem.com/global/images/8d9bcac8527e.webp",
     "description": "The keyboard and casing is deformed",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-4.jpeg"
    },
    {
     "url": "https://willem.com/global/images/76ad45d6ed3c.webp",
     "description": "That bobble is not supposed to be there.., causing the keyboard to be bend",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-5.jpeg"
    },
    {
     "url": "https://willem.com/global/images/243107d2b067.webp",
     "description": "Opening the MacBook Air is possible by removing the bottom lid.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-6.jpeg"
    },
    {
     "url": "https://willem.com/global/images/c22a24752c99.webp",
     "description": "Make sure to remember what screw went where... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-7.jpeg"
    },
    {
     "url": "https://willem.com/global/images/d779fb654228.webp",
     "description": "The damage to the battery pack is clearly visible",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-8.jpeg"
    },
    {
     "url": "https://willem.com/global/images/c4fd42293ba7.webp",
     "description": "Swollen and cracked. I carefully looked for any leaks.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-9.jpeg"
    },
    {
     "url": "https://willem.com/global/images/deadb40347b6.webp",
     "description": "I disconnected the battery from the logic board using a plastic tool (that does not conduct electricity).",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-10.jpeg"
    },
    {
     "url": "https://willem.com/global/images/9363647beb56.webp",
     "description": "Once removed the deformation in the battery pack is clearly visible",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-11.jpeg"
    },
    {
     "url": "https://willem.com/global/images/a0da0ca74e2c.webp",
     "description": "This battery is dead.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-12.jpeg"
    },
    {
     "url": "https://willem.com/global/images/a06c63362cd2.webp",
     "description": "The MacBook is back alive, greeting me with its boot screen.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-13.jpeg"
    },
    {
     "url": "https://willem.com/global/images/8412e2be42ad.webp",
     "description": "MacOS X correctly concluded that there are no batteries available, it works fine using a Power Adapter.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37042_images-14.jpeg"
    }
   ]
  },
  {
   "id": 37043,
   "slug": "2017-09-02_climbing-mount-etna",
   "url": "https://agents.willem.com/en/posts/2017-09-02_climbing-mount-etna/",
   "source_url": "https://willem.com/en/2017-09-02_climbing-mount-etna/",
   "language": "en",
   "date": "2017-09-02",
   "published": "2017-09-02T00:00:00+02:00",
   "created": "2025-06-26T22:10:31.607000+02:00",
   "updated": "2025-07-22T16:42:53.360000+02:00",
   "title": "Climbing Mount Etna",
   "subtitle": "Visiting an active volcano on Sicily, Italy",
   "summary": "Last week me and my wife went to Sicily for a little summer holiday. It is the largest island in the Mediterranean Sea. It is an autonomous region of Italy, along with surrounding minor islands. It's home to Europe's largest active volcano: Mount Etna. We had a chance to visit this lava spurring monstrosity and it was quite the experience.",
   "topics": [
    "environment",
    "holiday",
    "lifestyle",
    "nature",
    "people",
    "review",
    "travel",
    "volcano"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-09-02_de-beklimming-van-de-etna/",
    "source_url": "https://willem.com/nl/2017-09-02_de-beklimming-van-de-etna/"
   },
   "image": "https://willem.com/global/images/59ecd5061806.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d42d14eb1b32.webp",
     "description": "Overview of tectonic plates (image: USGS)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/0ec7ae998d59.webp",
     "description": "Etna is big enough to see it from space (NASA Earth Observatory)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/e453230babb7.webp",
     "description": "Lateral crater from 2001 - but if you look closely you'll notice many additional craters further below",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/a46a3ead52dd.webp",
     "description": "Rough terrain",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/e83069bf085d.webp",
     "description": "Mountaineering like a pro... of sorts. :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/c935c8003d76.webp",
     "description": "The higher you get the rougher the terrain becomes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/741b5d872a01.webp",
     "description": "The white/yellow on the Etna summit is sulphite - not gold... according to our guide",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/463b817ece26.webp",
     "description": "One can only image the forces of nature judging by these craters. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/5798343a0f56.webp",
     "description": "Fresh lava, just a few months old, clearly recognisable",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/240fd6ee0e7c.webp",
     "description": "These craters are the result of explosive magma eruptions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/44523864ab91.webp",
     "description": "The brown color is oxidation iron, or simply \"rust\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/8260f3221e11.webp",
     "description": "Our guide, Peppe, uncovers some dark patches on the crater. Steam escapes from it - you can literally feel the heat!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/0fbc383ebb5f.webp",
     "description": "The view is spectacular.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/ebf66d3764c8.webp",
     "description": "Not your typical busses. These 4x4 vehicles double as emergency escape cars in case of eruption.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/06eecea2a244.webp",
     "description": "The summit of Mount Etna",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/365b08e297f5.webp",
     "description": "An overview of the craters - notice how it is kept up to date :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/48ea8d339072.webp",
     "description": "Mount Etna",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37043_images-17.jpg"
    }
   ]
  },
  {
   "id": 37044,
   "slug": "2017-08-31_clouds-below-my-floor",
   "url": "https://agents.willem.com/en/posts/2017-08-31_clouds-below-my-floor/",
   "source_url": "https://willem.com/en/2017-08-31_clouds-below-my-floor/",
   "language": "en",
   "date": "2017-08-31",
   "published": "2017-08-31T00:00:00+02:00",
   "created": "2025-06-26T22:10:32.060000+02:00",
   "updated": "2026-04-03T14:34:59.291000+02:00",
   "title": "Clouds below my floor",
   "subtitle": "Building a little datacenter in my basement",
   "summary": "At my home I have this crazy fast optical internet connection. It is a 600MB up and down fibre connection which directly arrives in my home (no copper cables involved). It's like a private internet highway. Reason enough to find out if I could do something to make better use of all this speedy fiber galore...",
   "topics": [
    "SSH",
    "cloud",
    "creating",
    "data",
    "hacking",
    "howto",
    "lifestyle",
    "linux",
    "networking",
    "programming",
    "server",
    "vim",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-08-31_cloud-onder-mijn-vloer/",
    "source_url": "https://willem.com/nl/2017-08-31_cloud-onder-mijn-vloer/"
   },
   "image": "https://willem.com/global/images/beaadf85cb7a.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/b466ecfaf16d.webp",
     "description": "Though a hatch near my front door I have access to the space below the floor.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37044_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/9663a6d83ed9.webp",
     "description": "Sitting on some concrete tiles the modified PC is connected to the internet",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37044_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/6a015775189f.webp",
     "description": "Connected a monitor and keyboard to test the systems",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37044_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/cac3104b66e3.webp",
     "description": "Averaging 3.4 milliseconds in pinging Google. That's fast, datacenter fast. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37044_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/aed0a29d2feb.webp",
     "description": "Graphs from the connection monitoring system (from the real datacenter) cleary show when I tested my little server",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37044_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/1261457404f4.webp",
     "description": "Clouds below my floor: my little basement datacenter. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37044_images-6.jpg"
    }
   ]
  },
  {
   "id": 37045,
   "slug": "2017-07-31_the-day-i-killed-my-lan",
   "url": "https://agents.willem.com/en/posts/2017-07-31_the-day-i-killed-my-lan/",
   "source_url": "https://willem.com/en/2017-07-31_the-day-i-killed-my-lan/",
   "language": "en",
   "date": "2017-07-31",
   "published": "2017-07-31T00:00:00+02:00",
   "created": "2025-06-26T22:10:32.281000+02:00",
   "updated": "2026-04-03T14:34:59.520000+02:00",
   "title": "The day I killed my LAN",
   "subtitle": "Turned off my local network and went 4G only",
   "summary": "Today I called my provider to quit my office's ADSL internet subscription, I don't need it anymore. I have turned off my local area network and switched my workflow onto mobile internet only. The simplicity and savings actually surprised me so much, that I made blog post for it.",
   "topics": [
    "SSH",
    "apple",
    "budget",
    "cash",
    "cloud",
    "data",
    "design",
    "experiment",
    "hacking",
    "iOS",
    "iPad",
    "lifestyle",
    "linux",
    "minimal",
    "money",
    "networking",
    "office",
    "payments",
    "pencil",
    "programming",
    "smartphone",
    "vim",
    "web",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-07-31_de-dag-dat-ik-mijn-lan-uitzette/",
    "source_url": "https://willem.com/nl/2017-07-31_de-dag-dat-ik-mijn-lan-uitzette/"
   },
   "image": "https://willem.com/global/images/07d47895903e.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/eb644cecab17.webp",
     "description": "Feeling old already, my trustworthy old local area network (LAN)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37045_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/d51cfc953251.webp",
     "description": "iPad Pro + Apple Pencil replacing paper",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37045_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/fa27086768ce.webp",
     "description": "Programming on iPad Pro using VIM, Blink and a Linux VPS",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37045_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/d4d05312ed22.webp",
     "description": "Music from the office cabinet - iPhone as a connected music player. Quite the solid rock show in combination with Apple Watch as remote.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37045_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/373dab715867.webp",
     "description": "Charging and listening to music simultaniously using an Apple Lightning dock",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37045_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/e75025769249.webp",
     "description": "Maybe... my next office? ;-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37045_images-6.jpg"
    }
   ]
  },
  {
   "id": 37046,
   "slug": "2017-06-30_fietselfstedentocht-2017",
   "url": "https://agents.willem.com/en/posts/2017-06-30_fietselfstedentocht-2017/",
   "source_url": "https://willem.com/en/2017-06-30_fietselfstedentocht-2017/",
   "language": "en",
   "date": "2017-06-30",
   "published": "2017-06-30T00:00:00+02:00",
   "created": "2025-06-26T22:10:32.510000+02:00",
   "updated": "2025-07-22T16:42:53.631000+02:00",
   "title": "Fietselfstedentocht 2017",
   "subtitle": "Cycling the 235KM bicycle tour through Friesland",
   "summary": "This month I cycled the Fietselfstedentocht, a 235KM tour through Friesland. This tour brings you through various Frisian cities throughout one of the most Northern provinces of the Netherlands. The tour was first organised in 1912 and has grown to become legendary due to its history, challenge and popularity; well worthy of a blog post!",
   "topics": [
    "bike",
    "health",
    "heart",
    "lifestyle",
    "mobility",
    "people",
    "sensors",
    "sport",
    "travel"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-06-30_fietselfstedentocht-2017/",
    "source_url": "https://willem.com/nl/2017-06-30_fietselfstedentocht-2017/"
   },
   "image": "https://willem.com/global/images/5383179ea35f.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/91fcbb073bcc.webp",
     "description": "Elfstedentocht - where men become heroes",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/89c6653f3c5e.webp",
     "description": "Sneek, 1912 - the first Fietselfstedentocht",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/5016ebe6ea66.webp",
     "description": "The Postplaza Hotel in Leeuwarden",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/8a4112f16c04.webp",
     "description": "Something is missing... my front wheel!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/144f1414a202.webp",
     "description": "Bike in the local bike shop \"werkplaats\" (Dutch for workshop)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/0193147e360d.webp",
     "description": "Set to go - ready for 235KM on two wheels!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/a01a64c23ba9.webp",
     "description": "Crowdy streets near stamp posts along the route",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/4d71234dea7f.webp",
     "description": "Yep, it's me. :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/9ccc81dd18a4.webp",
     "description": "Along the way you collect stamps from the various Frisian cities. You need a completed card in order to collect the medal (Elfstedenkruisje)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/d01e7f7b0d17.webp",
     "description": "Special support: my lovely wife, Ellen!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/c66d554a9ad9.webp",
     "description": "Special support: my moms and her friend Albert",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/07e1de9c50f9.webp",
     "description": "Finished! Collected all the stamps, earned the medal and a drink to celebrate an awesome day!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/c61486e7cf2a.webp",
     "description": "The route through Friesland",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-13.png"
    },
    {
     "url": "https://willem.com/global/images/b78cf12dbee3.webp",
     "description": "Statistics from Cyclemeter Pro",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-14.png"
    },
    {
     "url": "https://willem.com/global/images/7f6fa0a15325.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/4d71234dea7f.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/07e1de9c50f9.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37046_images-39.jpg"
    }
   ]
  },
  {
   "id": 37047,
   "slug": "2017-05-31_beast-of-the-green-hell",
   "url": "https://agents.willem.com/en/posts/2017-05-31_beast-of-the-green-hell/",
   "source_url": "https://willem.com/en/2017-05-31_beast-of-the-green-hell/",
   "language": "en",
   "date": "2017-05-31",
   "published": "2017-05-31T00:00:00+02:00",
   "created": "2025-06-26T22:10:33.926000+02:00",
   "updated": "2025-07-22T16:42:53.713000+02:00",
   "title": "Beast of the Green Hell",
   "subtitle": "Driving the Mercedes-AMG GT R",
   "summary": "This month I received an invitation to join Mercedes at the Zolder circuit in Belgium to drive in \"the beast\". The Mercedes-AMG GT R, a furious green coloured performance car that gets its nickname from the Nürburgring where it was developed. It was an incredible experience, well worth a blog post!",
   "topics": [
    "car",
    "lifestyle",
    "mobility",
    "review",
    "sport",
    "travel"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-05-31_beest-van-de-groene-hel/",
    "source_url": "https://willem.com/nl/2017-05-31_beest-van-de-groene-hel/"
   },
   "image": "https://willem.com/global/images/ecba22c09055.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/f1ce0f17f2f2.webp",
     "description": "The Mercedes-AMG GT R at the Zolder Circuit in Belgium",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/3fe448fad2fa.webp",
     "description": "4.0L V8 Twin turbo AMG engine",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/4f3ade08a97e.webp",
     "description": "Breakfast at 8 am at the Zolder Circuit",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/400eef80ed15.webp",
     "description": "1971 Mercedes 300 SEL 6.8 AMG at the 24 Hours of Spa",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/1476bc51c5ab.webp",
     "description": "Mercedes-Benz G-Class - a 4x4 powerhouse",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/8e59a19c881f.webp",
     "description": "The G-Class Professional is pretty hardcore \"function first\"",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/7fcd5db179c3.webp",
     "description": "The Mercedes-AMG G63 comes in fancy colours, too",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/bd9d89fc9204.webp",
     "description": "Happy boy, driving AMG-goodness on the open road",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/e3d549376e0d.webp",
     "description": "The C63S is definitely my favourite, a rudimental monster with an open roof",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/59faa8681ee7.webp",
     "description": "Some more details of this brutal C63S machine",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/786146f20faf.webp",
     "description": "If you drive in the AMG GT S you feel like Bernd Mayländer (who drives a similar F1 Safety Car)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/91f76391ba44.webp",
     "description": "The S63s feels like a ship, a very fast one... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/4174438408b5.webp",
     "description": "The S63s interior is second to none: amazing details, very high-end",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/47a7620b9150.webp",
     "description": "The S63s is very comfortable for its passengers and there is plenty of space",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/d9efadc79306.webp",
     "description": "Ready for a run around the track with a professional race driver",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/39543ef1c76c.webp",
     "description": "Not your average Taxi... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-16.jpg"
    },
    {
     "url": "https://willem.com/global/images/df760eb1eaf5.webp",
     "description": "Driving the E63S around track surely gets the blood pumpin'... ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-17.jpg"
    },
    {
     "url": "https://willem.com/global/images/8bb12ae06640.webp",
     "description": "The less powerful A45 (left) is actually faster at the agility challenge than the S63s (right)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-18.jpg"
    },
    {
     "url": "https://willem.com/global/images/9f2aba990414.webp",
     "description": "The Beast from Green Hell: Mercedes-AMG GT R",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-19.jpg"
    },
    {
     "url": "https://willem.com/global/images/2024f9cd77b3.webp",
     "description": "It looks hungry.... for speed!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-20.jpg"
    },
    {
     "url": "https://willem.com/global/images/a13d60ba8268.webp",
     "description": "As hardcore is it is, the interior of the GT R is still top notch!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-21.jpg"
    },
    {
     "url": "https://willem.com/global/images/2024f9cd77b3.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-33.jpg"
    },
    {
     "url": "https://willem.com/global/images/9f2aba990414.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37047_images-34.jpg"
    }
   ]
  },
  {
   "id": 37048,
   "slug": "2017-04-30_smartwatches-vs-mechanical-watches",
   "url": "https://agents.willem.com/en/posts/2017-04-30_smartwatches-vs-mechanical-watches/",
   "source_url": "https://willem.com/en/2017-04-30_smartwatches-vs-mechanical-watches/",
   "language": "en",
   "date": "2017-04-30",
   "published": "2017-04-30T00:00:00+02:00",
   "created": "2025-06-26T22:10:34.494000+02:00",
   "updated": "2026-04-03T14:34:59.750000+02:00",
   "title": "Smartwatches vs Mechanical watches",
   "subtitle": "Why I still wear mechanical and why smartwatches have potential",
   "summary": "Technology has come a long way since the first computer. Smartwatches today are very much an achievement of miniaturisation of technology. I recently used an Apple Watch Series 2 to find out if technology has come far enough to replace my mechanical watch, today I share you my findings.",
   "topics": [
    "apple",
    "data",
    "experiment",
    "health",
    "lifestyle",
    "retro",
    "review",
    "watch"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-04-30_smartwatches-vs-mechanische-horloges/",
    "source_url": "https://willem.com/nl/2017-04-30_smartwatches-vs-mechanische-horloges/"
   },
   "image": "https://willem.com/global/images/716a7377a27d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/a65adb8a6d81.webp",
     "description": "The original Pebble from 2012",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/8984e4eba983.webp",
     "description": "The LG G Watch running Android Wear",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/42b888a67500.webp",
     "description": "The Apple Watch from 2014",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/a818beda4c5d.webp",
     "description": "The Apple Watch Series 2",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/2dc8ad4313e5.webp",
     "description": "Different styles thanks to the different watch band options",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/a0ee9a8a3284.webp",
     "description": "Apple Watch on the wrist showing current temperature, time, heart rate and access to mail, messages and music",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6a36a0c648d4.webp",
     "description": "Comparing data from sleep analyses (two nights with clearly a different pattern)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-7.png"
    },
    {
     "url": "https://willem.com/global/images/c7f6984c025b.webp",
     "description": "Analysing sport data from a cycle ride",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-8.png"
    },
    {
     "url": "https://willem.com/global/images/a4abad8d2ea4.webp",
     "description": "The Magnetic Charging dock is a fancy solution to an annoying problem: the constant need to charge the smartwatch",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/41600782da9e.webp",
     "description": "A mechanical watch: Christiaan van der Klaauw",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/d61b587b12f3.webp",
     "description": "The mechanical watch winding rotor and movement, visible through the sapphire case back",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/1aa571e7cd0c.webp",
     "description": "My mechanical watch in action (Milgauss 116400GV zBlue)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37048_images-13.jpg"
    }
   ]
  },
  {
   "id": 37049,
   "slug": "2017-03-26_repairing-a-nintendo-gameboy-advance-sp",
   "url": "https://agents.willem.com/en/posts/2017-03-26_repairing-a-nintendo-gameboy-advance-sp/",
   "source_url": "https://willem.com/en/2017-03-26_repairing-a-nintendo-gameboy-advance-sp/",
   "language": "en",
   "date": "2017-03-26",
   "published": "2017-03-26T00:00:00+01:00",
   "created": "2025-06-26T22:10:34.820000+02:00",
   "updated": "2025-07-22T08:30:43.509000+02:00",
   "title": "Repairing a Nintendo Gameboy Advance SP",
   "subtitle": "Chip surgery to play classic Zelda",
   "summary": "This month Nintendo released the Switch with Zelda \"Breath of the Wild\". The new console received positive reviews. The new Zelda game is amazing and can be played on-the-go, thanks to the portability of the Nintendo Switch. But it its hardly the first Nintendo device that features the mythical kingdom of Hyrule with Link and princess Zelda. I found an old Gameboy Advance, perfect for playing classic Zelda games... but it was in need for repair!",
   "topics": [
    "Nintendo",
    "game",
    "hacking",
    "howto",
    "lifestyle",
    "repair",
    "retro"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-03-26_een-nintendo-gameboy-advance-sp-repareren/",
    "source_url": "https://willem.com/nl/2017-03-26_een-nintendo-gameboy-advance-sp-repareren/"
   },
   "image": "https://willem.com/global/images/cfeb12d5b944.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/d8a1396b33ec.webp",
     "description": "This old Gameboy was broken: it stops working if you \"squeeze\" it... an indication of some electrical failure. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/598b62644bf4.webp",
     "description": "The new Zelda game \"Breath of the Wild\" sets the new benchmark for open world games according to the popular blog The Verge. It looks amazing!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/add74a997e6a.webp",
     "description": "On the left: an original screenshot from \"Link's Awakening\" (1993). On to the right: how fans perceive the magic. (Fan art created by \"einen\" from http://einen.deviantart.com) ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/96862d880d3f.webp",
     "description": "Thank you Ebay: an original replacement logic board for about €15",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/e5a04d90fb12.webp",
     "description": "Using the right tools: a Tri-wing triangular screwdriver",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/671c95175b7b.webp",
     "description": "Arrange the screws around something easy to recognise (the battery) to easily keep track of where the (different) screws should ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/be7d94d7f56a.webp",
     "description": "The Gameboy Advance SP from the inside",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/b6a8f7f3c8b8.webp",
     "description": "The buttons can be removed easily to be cleaned",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/df88f23b6ae4.webp",
     "description": "Clever hardware design: each button fits exactly on one position and orientation only!  ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/4f8e69f0fb57.webp",
     "description": "Spot the differences: the original faulty logic board above and the replacement on the bottom",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/7c11b16b9da9.webp",
     "description": "Zelda \"Link's awakening\" from 1993 on the repaired Gameboy Advance SP",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37049_images-11.jpg"
    }
   ]
  },
  {
   "id": 37050,
   "slug": "2017-02-16_programming-on-apple-watch",
   "url": "https://agents.willem.com/en/posts/2017-02-16_programming-on-apple-watch/",
   "source_url": "https://willem.com/en/2017-02-16_programming-on-apple-watch/",
   "language": "en",
   "date": "2017-02-16",
   "published": "2017-02-16T00:00:00+01:00",
   "created": "2025-06-26T22:10:35.080000+02:00",
   "updated": "2025-07-22T08:25:11.803000+02:00",
   "title": "Programming on Apple Watch",
   "subtitle": "Serious about crazy experiments",
   "summary": "Over the past years I have been no stranger to crazy experiments, but this time I really wanted to push it into the extreme: programming on an Apple Watch. Would it be possible to actually write code on such a tiny device? Why even bother? This post is about the case for crazy experiments, and why you should try too!",
   "topics": [
    "SSH",
    "ThinkPad",
    "apple",
    "creating",
    "creativity",
    "experiment",
    "hacking",
    "iOS",
    "iPhone",
    "laptop",
    "linux",
    "minimal",
    "programming",
    "retro",
    "smartphone",
    "vim",
    "watch",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-02-16_programmeren-op-de-apple-watch/",
    "source_url": "https://willem.com/nl/2017-02-16_programmeren-op-de-apple-watch/"
   },
   "image": "https://willem.com/global/images/e6b552619cf0.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/91b808d07886.webp",
     "description": "Message from my buddy Niels, suggesting I take my \"working on a smartphone\"-idea to the next level, complete with a Photoshop mockup. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/a91c01a62961.webp",
     "description": "And so I did! Programming on Apple Watch using VIM, SSH, a Bluetooth keyboard and coffee. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/a168f98b960f.webp",
     "description": "Real programming code, real Apple Watch. No Photoshop. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/caa603c5520c.webp",
     "description": "The source of the Magic: my ThinkPad X1 connected to the local network.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/d260e207062a.webp",
     "description": "Snake '97 - the original idea and stars of the game, the Nokia 5110 and 3310 - possible because of earlier experimentation with technology",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/4b4f8a31a75a.webp",
     "description": "Feeling mobile: this blog post was created using an iPhone, a keyboard and some coffee! No PC!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6870b8e5577e.webp",
     "description": "Multi platform development done properly, Nokia Communicator E90 with Symbian series 60 from 2007, Nokia 9300i running Symbian series 80 from 2004, Jolla phone with SailfishOS with the funky other half keyboard (tohkbd), and the iPhone 7.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/f19e6557543c.webp",
     "description": "Nokia E90 Communicator running Putty on Symbian Series 60.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/ef24cdb8830e.webp",
     "description": "Nokia 9300i, officially not a communicator but nonetheless a device with advanced mobile communication options for its day (2007). Running Putty on Symbian Series 80.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/2786e0481cad.webp",
     "description": "Multi user, multi screen. Two Nokia Communicators (E90/9300i) connected to my work environment simultaneously using Putty.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37050_images-10.jpg"
    }
   ]
  },
  {
   "id": 37051,
   "slug": "2017-01-30_ipad-pro-next-to-my-primary-machine",
   "url": "https://agents.willem.com/en/posts/2017-01-30_ipad-pro-next-to-my-primary-machine/",
   "source_url": "https://willem.com/en/2017-01-30_ipad-pro-next-to-my-primary-machine/",
   "language": "en",
   "date": "2017-01-30",
   "published": "2017-01-30T00:00:00+01:00",
   "created": "2025-06-26T22:10:35.402000+02:00",
   "updated": "2026-04-03T14:34:59.953000+02:00",
   "title": "iPad Pro next to my primary machine",
   "subtitle": "Using it with Apple Pencil as a creative powerhouse",
   "summary": "I wanted see if I can find something better than my old fashioned pencil and paper that I use for designing software as professional developer. I knew iPad Pro from my test last summer, figuring out if it could replace my primary development machine. While it may not be able to completely replace my thrustworthy ThinkPad, it turned out to be a totally different story when it comes to paper.",
   "topics": [
    "ThinkPad",
    "apple",
    "cloud",
    "creativity",
    "design",
    "experiment",
    "iOS",
    "iPad",
    "laptop",
    "lifestyle",
    "minimal",
    "office",
    "pencil",
    "programming",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2017-01-30_ipad-pro-naast-mijn-primaire-machine/",
    "source_url": "https://willem.com/nl/2017-01-30_ipad-pro-naast-mijn-primaire-machine/"
   },
   "image": "https://willem.com/global/images/69afec112c97.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/64bad261760f.webp",
     "description": "Typical drawing I create when designing software",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/359a7faa0215.webp",
     "description": "Initial scribble to see how pencil response",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/02d7d95ee305.webp",
     "description": "Using iPad to design something - with coffee",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/56e24c8ef0a0.webp",
     "description": "I began using the ruler and color",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/6bb7d6aff7a5.webp",
     "description": "White on blue",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/d7958dc2fb6b.webp",
     "description": "A pink sheep named Beh",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/9f5e442d173c.webp",
     "description": "Rolex GMT Master",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/8d7610c5ad00.webp",
     "description": "Sunset",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/f9748ca07b6e.webp",
     "description": "iPad Pro next to my ThinkPad",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37051_images-9.jpg"
    }
   ]
  },
  {
   "id": 37052,
   "slug": "2016-12-31_one-year-of-cycling",
   "url": "https://agents.willem.com/en/posts/2016-12-31_one-year-of-cycling/",
   "source_url": "https://willem.com/en/2016-12-31_one-year-of-cycling/",
   "language": "en",
   "date": "2016-12-31",
   "published": "2016-12-31T00:00:00+01:00",
   "created": "2025-06-26T22:10:35.659000+02:00",
   "updated": "2025-07-22T07:51:13.270000+02:00",
   "title": "One year of cycling",
   "subtitle": "GPS recording an entire year of bike rides using Garmin and Strava",
   "summary": "One year ago I started recording all my bike rides, including commutes, short grocery trips and long Gran Fondos. I equipped my bicycles with Garmin Edge computers that recorded location (GPS), speed, cadence and my heart rate. I covered more than 7683 kilometers during 320 hours of riding. It's time to review all the data and share some photos I took along the ride!",
   "topics": [
    "Amsterdam",
    "bike",
    "data",
    "experiment",
    "health",
    "lifestyle",
    "mobility",
    "nature",
    "sensors",
    "sport",
    "travel"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-12-31_een-jaar-fietsen/",
    "source_url": "https://willem.com/nl/2016-12-31_een-jaar-fietsen/"
   },
   "image": "https://willem.com/global/images/4f180eefb2c2.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/2f776e5c4ff0.webp",
     "description": "Heatmap of my bike rides in The Netherlands. Red indicates frequently driven routes. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-1.png"
    },
    {
     "url": "https://willem.com/global/images/d041d2afb030.webp",
     "description": "Heatmap of my bike rides in the Amsterdam area. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-2.png"
    },
    {
     "url": "https://willem.com/global/images/49f343116ab5.webp",
     "description": "This pedal was new when I started, this is how thousands of kilometers cycling look like on a pedal. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/0078e63e1b46.webp",
     "description": "First gran fondo was cycling around the Dutch \"Markermeer\", a 208.5KM ride.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/17424201acf8.webp",
     "description": "After some long haul rides I disassembled the bike to get home.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/dd884c3efbce.webp",
     "description": "For longer rides (>8 hours) the bike computer required additional power. I installed small USB power bank in my seat bag. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/325d72064e28.webp",
     "description": "The completed stamp card of the \"Fietselfstedentocht\", with 231 kilometers the longest single ride of 2016.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/5c844341322e.webp",
     "description": "In addition to commutes and grand fondos I also recorded short trips to the grocery store. Like this one on the \"Beer Bike\".",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/682aec513dcc.webp",
     "description": "On few occasions I crossed international borders. This photo was taken in Germany next to an Autobahn. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/e776c5e9f0b0.webp",
     "description": "This photo was taken during a ride through the forest near Hilversum. The nearby trees really give you a sense of speed (and reason to stay focussed on steering straight...)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-10.jpg"
    },
    {
     "url": "https://willem.com/global/images/44918c08eb81.webp",
     "description": "During autumn the days became shorter and many rides where done during dusk or dawn. It's nice to see the sun come up or go down. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-11.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc863a975db7.webp",
     "description": "This picture was taken in downtown Leiden during one of the first cold days of November.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/176b9a629ad9.webp",
     "description": "In the Netherlands there is no shortage of dykes. Many of them have long straight bike lines on them. This one is near \"Hoek van Holland\", you can see the Rotterdam Maasvlakte industry at the horizon. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/3de1feee1664.webp",
     "description": "One of my nightly rides went through the McDrive - bikes are welcome, apparently :-)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/df9a5aee6191.webp",
     "description": "It was really cold during this ride in December. My drink bottles, gloves and shoes where frozen! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-15.jpg"
    },
    {
     "url": "https://willem.com/global/images/0078e63e1b46.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-22.jpg"
    },
    {
     "url": "https://willem.com/global/images/17424201acf8.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-47.jpg"
    },
    {
     "url": "https://willem.com/global/images/dd884c3efbce.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-66.jpg"
    },
    {
     "url": "https://willem.com/global/images/325d72064e28.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-74.jpg"
    },
    {
     "url": "https://willem.com/global/images/5c844341322e.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-75.jpg"
    },
    {
     "url": "https://willem.com/global/images/682aec513dcc.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-88.jpg"
    },
    {
     "url": "https://willem.com/global/images/e776c5e9f0b0.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-99.jpg"
    },
    {
     "url": "https://willem.com/global/images/44918c08eb81.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-123.jpg"
    },
    {
     "url": "https://willem.com/global/images/49f343116ab5.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-127.jpg"
    },
    {
     "url": "https://willem.com/global/images/dc863a975db7.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-133.jpg"
    },
    {
     "url": "https://willem.com/global/images/176b9a629ad9.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-137.jpg"
    },
    {
     "url": "https://willem.com/global/images/3de1feee1664.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-148.jpg"
    },
    {
     "url": "https://willem.com/global/images/df9a5aee6191.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37052_images-151.jpg"
    }
   ]
  },
  {
   "id": 37053,
   "slug": "2016-11-21_being-a-volunteer-in-amsterdam-zuidoost",
   "url": "https://agents.willem.com/en/posts/2016-11-21_being-a-volunteer-in-amsterdam-zuidoost/",
   "source_url": "https://willem.com/en/2016-11-21_being-a-volunteer-in-amsterdam-zuidoost/",
   "language": "en",
   "date": "2016-11-21",
   "published": "2016-11-21T00:00:00+01:00",
   "created": "2025-06-26T22:10:40.958000+02:00",
   "updated": "2026-04-03T14:35:00.207000+02:00",
   "title": "Being a volunteer in Amsterdam-Zuidoost",
   "subtitle": "Computer support in the local community center",
   "summary": "After realising how lucky I am as an healthy, well educated, young man with a solid income, I wanted to do something for other people as volunteer. It just so happens to be that two years ago I received a flyer in my mailbox from the local community center: they were looking for someone with some knowledge of computers. A very interesting journey was about to begin!",
   "topics": [
    "Amsterdam",
    "cash",
    "lifestyle",
    "people",
    "repair",
    "volunteer"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-11-21_vrijwilliger-zijn-in-amsterdam-zuidoost/",
    "source_url": "https://willem.com/nl/2016-11-21_vrijwilliger-zijn-in-amsterdam-zuidoost/"
   },
   "image": "https://willem.com/global/images/9dbc208a3872.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/a5d39fb08909.webp",
     "description": "Typical alley in Venserpolder, Amsterdam-Zuidoost",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/217999ffa7b7.webp",
     "description": "The neighbourhood has lots of water and green",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/f09bedcf96e1.webp",
     "description": "The local community center is located at the Albert Camuslaan",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/4bbee11e9087.webp",
     "description": "The community center is like a cosy living room",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/53225aed9804.webp",
     "description": "Different activities are organised at the community center",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/960f6ea28456.webp",
     "description": "Dutch is more challenging than many natives realise",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-6.jpg"
    },
    {
     "url": "https://willem.com/global/images/6f4b337ce04a.webp",
     "description": "Some of the regular visitors of the weekly computer support sessions",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-7.jpg"
    },
    {
     "url": "https://willem.com/global/images/015fee1d4eaf.webp",
     "description": "Cashback madness: imagine explaining this to your grandmother",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-8.jpg"
    },
    {
     "url": "https://willem.com/global/images/cbce500b4522.webp",
     "description": "Numbers instead of letters: a keyboard feature easily mistaken as malfunctioning if you are unfamilair with Numlock",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/660128f4826c.webp",
     "description": "You never know what kind of machine will show up at the computer support sessions...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37053_images-10.jpg"
    }
   ]
  },
  {
   "id": 37054,
   "slug": "2016-10-01_harvesting-boredom-to-let-creativity-flourish",
   "url": "https://agents.willem.com/en/posts/2016-10-01_harvesting-boredom-to-let-creativity-flourish/",
   "source_url": "https://willem.com/en/2016-10-01_harvesting-boredom-to-let-creativity-flourish/",
   "language": "en",
   "date": "2016-10-01",
   "published": "2016-10-01T00:00:00+02:00",
   "created": "2025-06-26T22:10:41.571000+02:00",
   "updated": "2025-07-22T16:42:53.798000+02:00",
   "title": "Harvesting boredom to let creativity flourish",
   "subtitle": "using the Punkt MP01 dumb phone",
   "summary": "Smartphones are everywhere in the modern society we live in today. Through our 4G and WiFi connections the internet is just one tap away. In fact, it is so close that it feels like a natural extension. But is this wealth of information all good or does it have a downside too? It seems like an interesting experiment to go app-less for a while and solely use a dumb phone.",
   "topics": [
    "creativity",
    "design",
    "experiment",
    "health",
    "lifestyle",
    "minimal",
    "review",
    "smartphone"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-10-01_oogst-verveling-om-creativiteit-te-laten-bloeien/",
    "source_url": "https://willem.com/nl/2016-10-01_oogst-verveling-om-creativiteit-te-laten-bloeien/"
   },
   "image": "https://willem.com/global/images/2ef4a22b2478.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/29b67ce85355.webp",
     "description": "The Punkt MP01 dumb phone",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37054_images-1.jpeg"
    },
    {
     "url": "https://willem.com/global/images/32146ddb44f5.webp",
     "description": "Once opened it contains the charger, headset, booklet, SIM-card tool and the phone.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37054_images-2.jpeg"
    },
    {
     "url": "https://willem.com/global/images/7cc5af1a5f8d.webp",
     "description": "What was the last time I got a booklet with my phone? ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37054_images-3.jpeg"
    },
    {
     "url": "https://willem.com/global/images/36d090858b91.webp",
     "description": "The Punkt phone feels nice when you hold it; neither too small or too big.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37054_images-4.jpeg"
    },
    {
     "url": "https://willem.com/global/images/6d4edcde5962.webp",
     "description": "The back has a nice shape that makes it disappear in your pocket.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37054_images-5.jpeg"
    },
    {
     "url": "https://willem.com/global/images/f0649a81235a.webp",
     "description": "The experiment is on!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37054_images-6.jpeg"
    }
   ]
  },
  {
   "id": 37055,
   "slug": "2016-09-03_batavus-champion-bike-from-1978",
   "url": "https://agents.willem.com/en/posts/2016-09-03_batavus-champion-bike-from-1978/",
   "source_url": "https://willem.com/en/2016-09-03_batavus-champion-bike-from-1978/",
   "language": "en",
   "date": "2016-09-03",
   "published": "2016-09-03T00:00:00+02:00",
   "created": "2025-06-26T22:10:41.825000+02:00",
   "updated": "2025-07-21T23:14:31.218000+02:00",
   "title": "Batavus Champion bike from 1978",
   "subtitle": "restoring retro glory with some help from the Internet",
   "summary": "Almost a year ago I bought an old steel racing bike from 1978. I wanted to figure out if using a bike to commute worked for me. It did! I used it to ride more than 1000KM before I decided to get a modern road bike. Now, almost a year later, I decided to put the powers of the internet into good use: to bring the bike back to its retro glory!",
   "topics": [
    "bike",
    "design",
    "hacking",
    "lifestyle",
    "mobility",
    "repair",
    "retro",
    "sport"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-09-03_batavus-champion-fiets-uit-1978/",
    "source_url": "https://willem.com/nl/2016-09-03_batavus-champion-fiets-uit-1978/"
   },
   "image": "https://willem.com/global/images/b7258dbdb678.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/0eb362d74322.webp",
     "description": "New school Sensa Romagna Sport '15 and Old school Batavus Champion '78",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-1.jpeg"
    },
    {
     "url": "https://willem.com/global/images/257490a47a9a.webp",
     "description": "After cleaning and degreasing the bike, its retro glory became visible",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-2.jpeg"
    },
    {
     "url": "https://willem.com/global/images/4885d91f9774.webp",
     "description": "Old school bike brakes, slowing you down in retro style",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-3.jpeg"
    },
    {
     "url": "https://willem.com/global/images/ad407f677812.webp",
     "description": "With all the black filthy grease removed, the retro orange really shines in combination with the metal front chain discs",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-4.jpeg"
    },
    {
     "url": "https://willem.com/global/images/efbf2ea26c8d.webp",
     "description": "The rear derailleur was rusty and not original to this bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-5.jpeg"
    },
    {
     "url": "https://willem.com/global/images/7ced4075582b.webp",
     "description": "An original advertisment of the bike from the 70s - with specification of original parts",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-6.jpeg"
    },
    {
     "url": "https://willem.com/global/images/39c215244b13.webp",
     "description": "Thank you Ebay: a period correct Hurret rear derailleur",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-7.jpeg"
    },
    {
     "url": "https://willem.com/global/images/32cf12bc907a.webp",
     "description": "The Hurret rear derailleur (which was flown in from the other side of the world) fits nicely",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-8.jpeg"
    },
    {
     "url": "https://willem.com/global/images/5a44d4c928d0.webp",
     "description": "Retro bike pumps are available in different colours and sizes - I found an fitting chrome one from Italy!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-9.jpeg"
    },
    {
     "url": "https://willem.com/global/images/e1ae30bfb5fa.webp",
     "description": "The pump fits well and I also managed to find a period correct plastic drink bottle",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-10.jpeg"
    },
    {
     "url": "https://willem.com/global/images/c5bc4a7da5ac.webp",
     "description": "The big ding-dong bell is an overstatement and the tiny Garmin Edge 25 is a touch from the modern era I added to the bike to GPS-record my rides",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-11.jpeg"
    },
    {
     "url": "https://willem.com/global/images/eed9a5ad40df.webp",
     "description": "The Brooks C15 saddle with matching bag is a perfect (and comfortable) match for this bike",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-12.jpeg"
    },
    {
     "url": "https://willem.com/global/images/5bc9feab192e.webp",
     "description": "Batavus Champion bike from 1978 - ready for a ride!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37055_images-13.jpeg"
    }
   ]
  },
  {
   "id": 37056,
   "slug": "2016-08-15_ipad-pro-as-primary-computer",
   "url": "https://agents.willem.com/en/posts/2016-08-15_ipad-pro-as-primary-computer/",
   "source_url": "https://willem.com/en/2016-08-15_ipad-pro-as-primary-computer/",
   "language": "en",
   "date": "2016-08-15",
   "published": "2016-08-15T00:00:00+02:00",
   "created": "2025-06-26T22:10:42.338000+02:00",
   "updated": "2026-04-03T14:35:00.532000+02:00",
   "title": "iPad Pro as primary computer",
   "subtitle": "testing iOS as primairy development platform",
   "summary": "The lack of physical clutter, distracting branding, or blinking LED's makes the iPad Pro a textbook example of minimal design. My despiction of distraction explains my interest in using the iPad Pro as only computer to test if it is up to the task. Is Apple's latest effort on iOS enough to enable it to do serious development work?",
   "topics": [
    "SSH",
    "ThinkPad",
    "apple",
    "cloud",
    "creating",
    "creativity",
    "experiment",
    "iOS",
    "iPad",
    "laptop",
    "lifestyle",
    "linux",
    "networking",
    "office",
    "pencil",
    "programming",
    "review",
    "tablet",
    "vim",
    "webdesign",
    "work"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-08-15_ipad-pro-als-primaire-computer/",
    "source_url": "https://willem.com/nl/2016-08-15_ipad-pro-als-primaire-computer/"
   },
   "image": "https://willem.com/global/images/5d2e20b67d3d.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/3625e8867ba9.webp",
     "description": "Shiny new Apple iPad Pro, Apple Pencil and the Smart Keyboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37056_images-1.jpeg"
    },
    {
     "url": "https://willem.com/global/images/e4181c093e11.webp",
     "description": "The Smart Keyboard has a very nice tactile feel, but lacks certain keys (like ESC, HOME, END)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37056_images-2.jpeg"
    },
    {
     "url": "https://willem.com/global/images/277647b357c9.webp",
     "description": "The iPad Pro along side my trustworthy ThinkPad X1",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37056_images-3.jpeg"
    },
    {
     "url": "https://willem.com/global/images/a26dc822475e.webp",
     "description": "The iPad Pro works well with a normal bluetooth keyboard",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37056_images-4.jpeg"
    },
    {
     "url": "https://willem.com/global/images/24ba2fe2c2bc.webp",
     "description": "Split screen multitasking allows me to have access to the my programming code (left) and a live preview (right) simultainiously",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37056_images-5.jpeg"
    }
   ]
  },
  {
   "id": 37057,
   "slug": "2016-07-15_cash-is-king-or-is-it",
   "url": "https://agents.willem.com/en/posts/2016-07-15_cash-is-king-or-is-it/",
   "source_url": "https://willem.com/en/2016-07-15_cash-is-king-or-is-it/",
   "language": "en",
   "date": "2016-07-15",
   "published": "2016-07-15T00:00:00+02:00",
   "created": "2025-06-26T22:10:42.525000+02:00",
   "updated": "2025-07-21T21:21:53.335000+02:00",
   "title": "Cash is king, or is it?",
   "subtitle": "The wallet- and cash-less experiment",
   "summary": "Very often I see men carry a wallet filled with plastic: multiple debit and credit cards plus a bunch of loyalty programs and membership cards. Then, some even top it off with stinky paper money and sticky metal coins! It made me wonder if I can free up one pocket by ditching the wallet?",
   "topics": [
    "cash",
    "experiment",
    "iPhone",
    "lifestyle",
    "minimal",
    "money",
    "payments",
    "people",
    "smartphone",
    "wallet"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-07-15_cash-is-king-of-toch-niet/",
    "source_url": "https://willem.com/nl/2016-07-15_cash-is-king-of-toch-niet/"
   },
   "image": "https://willem.com/global/images/7db84e2a7af9.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/923e4b04103f.webp",
     "description": "The iPhone case is large enough to hide cards.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37057_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/6c0587ea2a8c.webp",
     "description": "Stacking two plastic cards is easy",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37057_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/ce901db81b4a.webp",
     "description": "The iPhone with case is only slightly thicker. ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37057_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/983a907a2b8f.webp",
     "description": "Just like any other iPhone: but this one has an NFC contactless bank card and ID hidden it it!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37057_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/4c171a022bf0.webp",
     "description": "This case allows easy access to the payment card while hiding the ID inside.",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37057_images-5.jpg"
    }
   ]
  },
  {
   "id": 37058,
   "slug": "2016-06-23_building-the-blog-in-style",
   "url": "https://agents.willem.com/en/posts/2016-06-23_building-the-blog-in-style/",
   "source_url": "https://willem.com/en/2016-06-23_building-the-blog-in-style/",
   "language": "en",
   "date": "2016-06-23",
   "published": "2016-06-23T00:00:00+02:00",
   "created": "2025-06-26T22:10:42.956000+02:00",
   "updated": "2025-07-21T21:01:30.057000+02:00",
   "title": "Building the blog... in style!",
   "subtitle": "Developing on a 20-year old computer with 16MB RAM and Windows 98",
   "summary": "One must be a bit crazy to come up with the idea to build a blog (as in: actual programming) on an old 486 laptop with just 16MB RAM. I happen to be that crazy: I took my very first laptop from the 90s and decided to find out if it was possible to turn it into a development machine.",
   "topics": [
    "MacBook",
    "SSH",
    "ThinkPad",
    "Windows",
    "cloud",
    "experiment",
    "hacking",
    "laptop",
    "linux",
    "networking",
    "programming",
    "repair",
    "retro",
    "vim",
    "webdesign"
   ],
   "author": {
    "name": "Willem L. Middelkoop",
    "url": "https://willem.com"
   },
   "translation": {
    "language": "nl",
    "url": "https://agents.willem.com/nl/posts/2016-06-23_het-blog-bouwen-in-stijl/",
    "source_url": "https://willem.com/nl/2016-06-23_het-blog-bouwen-in-stijl/"
   },
   "image": "https://willem.com/global/images/73e974ea7751.webp",
   "image_width": 2560,
   "images": [
    {
     "url": "https://willem.com/global/images/b5be855aa969.webp",
     "description": "Toshiba T2130CT laptop with a 75Mhz Intel 486 processor and a whopping 16MB RAM (that is megabytes!)",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-1.jpg"
    },
    {
     "url": "https://willem.com/global/images/3ae0df46d1ce.webp",
     "description": "I had to remove the original disk because it didn't work... or so I thought!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-2.jpg"
    },
    {
     "url": "https://willem.com/global/images/1610bbee32b3.webp",
     "description": "... apparently it needed a little encouragement from its modern cousins...",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-3.jpg"
    },
    {
     "url": "https://willem.com/global/images/c44b872a7dfc.webp",
     "description": "Never thought I would be happy to see this: the Windows 98 boot screen!",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-4.jpg"
    },
    {
     "url": "https://willem.com/global/images/6a30ba0135ec.webp",
     "description": "The 486-development machine! ",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-5.jpg"
    },
    {
     "url": "https://willem.com/global/images/4e404681a940.webp",
     "description": "VIM running on the 486 through PuTTY",
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-6.jpeg"
    },
    {
     "url": "https://willem.com/global/images/4e404681a940.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-7.jpeg"
    },
    {
     "url": "https://willem.com/global/images/b5be855aa969.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-9.jpg"
    },
    {
     "url": "https://willem.com/global/images/1610bbee32b3.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-12.jpg"
    },
    {
     "url": "https://willem.com/global/images/3ae0df46d1ce.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-13.jpg"
    },
    {
     "url": "https://willem.com/global/images/c44b872a7dfc.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-14.jpg"
    },
    {
     "url": "https://willem.com/global/images/6a30ba0135ec.webp",
     "description": null,
     "manager_file": "148-bf2d6faf6057f115dc72e82d984e71359f16b48d8c42b4b41c2ee918cf46b556_ContentAsPost_37058_images-15.jpg"
    }
   ]
  }
 ]
}