← HomePRIVACYPrivacy policy
A deliberately simple, static website.
Overview
The site has no accounts, comments, advertising or contact forms and does not intentionally set cookies. Server access logs temporarily record technical request data for security, reliable operation and first-party audience statistics.
Public visitor statistics include up to 100 recent likely human page requests from the last 30 days: access time rounded to a minute in UTC, country, a categorized referral source and the public page path. IP addresses, browser identifiers, URL query strings, full referral URLs and persistent visitor identifiers are not published. Known automation is filtered heuristically; these requests are not unique people. Source labels include direct/unknown, internal navigation and other websites. Data is refreshed hourly and logs can arrive late.
External links and YouTube
Links to YouTube, LinkedIn, Facebook, X/Twitter, Xing, and certificate documents open only when you select them. The AI video watchlist is delivered as first-party text and direct links: it does not embed a YouTube player, copy thumbnails, or contact YouTube from your browser before a click. After selecting an external link, that provider's own terms and privacy policy apply.
Data controller
Bernd Kuhlen, Troisdorf, Germany. For privacy questions, contact me through the linked professional profiles.
Persistent article and story counts
Article badges show recorded page requests for the current language version. Opening a Work story sends a small first-party request containing only a fixed story name. Each story is reported at most once per page load; no cookie, browser storage or persistent visitor identifier is used. Story totals combine all languages. Known automation is excluded heuristically, so these are recorded views or opens, not verified people or unique visitors.
Anonymous daily counts and cumulative totals are retained in versioned JSON files after the underlying access logs expire. Updates reconcile retained days instead of adding the same window repeatedly. Historical article counts can only include available logs; Work-story counting begins when this feature is enabled. Counts refresh hourly and delayed log delivery can affect freshness.
Visits in the traffic chart are estimated sessions: successful HTML requests are temporarily grouped by IP address and browser user agent, with a new session after more than 30 minutes of inactivity. Existing log fields are processed only within the private analytics pipeline; no session cookies or new browser identifiers are created. Only hourly aggregate counts are retained or published, never the grouping identities. Shared addresses and address changes can merge or split visits. Sessions are not verified people. Requests include all methods, assets and response statuses; page views include successful GET HTML responses only. The human filter is heuristic.
Easter Egg voting
This optional poll accepts only one of two fixed choices, not free text. A separate AWS API processes the source IP to enforce one vote per public IP for the entire poll. A keyed, poll-specific hash is stored instead of the address. Short-lived hashed rate-limit records are also used. Vote-deduplication hashes are scheduled for deletion seven days after closing; expiry deletion is asynchronous. Aggregate vote counts and poll dates remain. The poll uses no cookies or browser identifiers. Shared connections share a vote; changing IPs can bypass this restriction. The poll API does not enable access logs or log request bodies, addresses or hashes.
Weather data and station requests
Weather data is served as static files; no weather-provider connection or location permission is required. Station requests send only a catalogue ID through AWS SES to the operator’s Gmail inbox. No visitor email or free text is requested. The public IP is processed briefly and stored only as a daily changing HMAC for rate limits. These records expire after 48 hours; deletion may be delayed. Anonymous monthly counters expire after 40 days. Request bodies and IPs are not logged; technical function logs are kept seven days. The request email is retained to handle the request.
Public arcade high scores
If you submit a score, your chosen alias (up to 10 characters), score and server-recorded date appear in the public top 10 for that game. Do not use your real name. Scores are not verified identities or cheat-proof. To limit abuse, the service derives a keyed, daily-changing hash from your IP address; the handler does not store the raw address. Run tokens expire after one hour, daily counters are scheduled for deletion after 48 hours and monthly totals after 40 days; AWS deletion may be delayed. Technical logs are retained for seven days without aliases or request bodies. Top-10 entries remain until displaced or removed by the owner. No additional tracking cookie is used. Contact the site owner to request removal of an alias.