<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>whitelabel.org</title>
  <subtitle>Survival of the Easiest</subtitle>
  <link href="https://whitelabel.org/feed.xml" rel="self"/>
  <link href="https://whitelabel.org/"/>
  
  <updated>2026-05-02T00:00:00.000Z</updated>
  <id>https://whitelabel.org/</id>
  <author>
    <name>Stefan</name>
  </author>
  
  <entry>
    <title>Optoma CinemaX Projectors: Critical Vulnerabilities Including Remote Root Access</title>
    <link href="https://whitelabel.org/security/2026-02-01-smart-projector/"/>
    <updated>2026-05-02T00:00:00.000Z</updated>
    <id>https://whitelabel.org/security/2026-02-01-smart-projector/</id>
    <content type="html">&lt;p class=&quot;centered&quot;&gt;&lt;img src=&quot;/images/cinemax-p2.jpg&quot; alt=&quot;Optoma CinemaX P2 ultra-short-throw projector&quot; width=&quot;600&quot;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CVE IDs:&lt;/strong&gt; &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2026-30495&quot;&gt;CVE-2026-30495&lt;/a&gt;, &lt;a href=&quot;https://www.cve.org/CVERecord?id=CVE-2026-30496&quot;&gt;CVE-2026-30496&lt;/a&gt;
&lt;strong&gt;Vendor:&lt;/strong&gt; Optoma / Coretronic Corporation
&lt;strong&gt;Disclosure Date:&lt;/strong&gt; 2026-02-01
&lt;strong&gt;Public Disclosure:&lt;/strong&gt; 2026-05-02&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;TL;DR&lt;/h2&gt;
&lt;p&gt;I&#39;d owned my $3000 Optoma CinemaX P2 projector for nearly four years when I decided 2026 would be the year I started looking at IoT devices. I&#39;ve got a few IoT things, but I figured that starting with the only Android device (and the most expensive) made sense. Having just read &lt;a href=&quot;https://krebsonsecurity.com/2026/01/the-kimwolf-botnet-is-stalking-your-local-network/&quot;&gt;The Kimwolf botnet is stalking your local network&lt;/a&gt;, I started by testing ADB Debug- and immediately had root access, on the very first attempt of my IoT-hacking career. Everything they say is true.&lt;/p&gt;
&lt;p&gt;The projector was released in September 2020, but runs Android 8 with a security patch level from &lt;strong&gt;December 2017&lt;/strong&gt; - already 3 years out of date when it shipped. The last firmware update was July 2021 and addressed HDMI issues, not security. It ships with a user-debug build, an &#39;su&#39; binary, and ADB wide open on the network.&lt;/p&gt;
&lt;p&gt;In March 2026, Optoma issued a new firmware that addresses the ADB issue (CVE-2026-30495), but leaves the unauthenticated control API (CVE-2026-30496) exploitable. That update is not pushed through the on-device updater, the version string is unchanged, and the release notes don&#39;t mention security, so most owners will never receive it.&lt;/p&gt;
&lt;p&gt;Further firmware analysis revealed 5 further probable high or critical vulnerabilities (mostly TLS-related) that I simply haven&#39;t had time to submit.&lt;/p&gt;
&lt;h2&gt;Affected Products&lt;/h2&gt;
&lt;p&gt;I tested on a CinemaX P2, but based on shared firmware, these models are likely affected too:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Model&lt;/th&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CinemaX P2&lt;/strong&gt; (X1VDPTHG)&lt;/td&gt;
&lt;td&gt;Confirmed vulnerable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CinemaX P1&lt;/strong&gt; / &lt;strong&gt;UHZ65UST&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Likely vulnerable (same device, regional naming)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CinemaX Pro&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Likely vulnerable (same firmware platform)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Affected Versions&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Firmware build (&lt;code&gt;ro.build.date&lt;/code&gt;)&lt;/th&gt;
&lt;th&gt;Released as&lt;/th&gt;
&lt;th&gt;CVE-2026-30495 (root ADB)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Thu Jun  3 01:12:35 CST 2021&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Distributed by Optoma as &amp;quot;C13.2&amp;quot;, July 2021.&lt;/td&gt;
&lt;td&gt;Exploitable (&lt;code&gt;ro.adb.secure=0&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Wed Mar  4 17:57:00 CST 2026&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Published on the Optoma EMEA download page on 2026-03-23, still labelled &amp;quot;C13.2&amp;quot;&lt;/td&gt;
&lt;td&gt;Patched (&lt;code&gt;ro.adb.secure=1&lt;/code&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The projector reports firmware version &lt;strong&gt;&lt;code&gt;TVOS-04.24.010.04.01&lt;/code&gt;&lt;/strong&gt; with &lt;code&gt;ro.build.display.id&lt;/code&gt; = &lt;code&gt;P1_Lite-userdebug 8.0.0 OPR5.170623.014 TVOS-04.24.010.04.01 test-keys&lt;/code&gt;. Optoma did not change this string across the security rebuild, so the only reliable per-build identifier is the Android &lt;code&gt;ro.build.date&lt;/code&gt; property, which is not readable once the projector is patched.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Disclosure&lt;/h2&gt;
&lt;p&gt;An nmap sweep of my LAN showed the projector listening on TCP &lt;strong&gt;5555&lt;/strong&gt; (ADB) and &lt;strong&gt;2345&lt;/strong&gt; (HTTP). Neither should be reachable without authentication.&lt;/p&gt;
&lt;p&gt;I reported both issues to Optoma on 2026-02-01:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Optoma UK / EMEA&lt;/strong&gt; via the &lt;a href=&quot;https://www.optoma.co.uk/service-and-support/psti-enquiries&quot;&gt;UK PSTI enquiry form&lt;/a&gt; (Ticket #11594)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optoma US&lt;/strong&gt; via the &lt;a href=&quot;https://support.optomausa.com/hc/en-us/requests/new&quot;&gt;US support portal&lt;/a&gt; (Ticket #2033016)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Optoma US acknowledged the same day; Optoma EMEA acknowledged on 2026-02-04 and confirmed they had escalated the report to the relevant team. Optoma US never contacted me, nor responded to my followups, after initial acknowledgement. EMEA did continue to engage.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;CVE-2026-30495: Unauthenticated Remote Root Access (CVSS 9.6 Critical)&lt;/h2&gt;
&lt;p&gt;The projector exposes ADB (Android Debug Bridge) on port 5555 with no authentication required. From there you can trivially &lt;code&gt;su&lt;/code&gt; to root. Here you go, just grab your wifi passwd stored in cleartext:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ adb connect 192.168.1.73
connected to 192.168.1.73:5555
$ adb shell
P1_Lite:/ $ su
P1_Lite:/ # cat /data/misc/wifi/WifiConfigStore.xml | grep PreSharedKey
&amp;lt;string name=&amp;quot;PreSharedKey&amp;quot;&amp;gt;&amp;amp;quot;REDACTED&amp;amp;quot;&amp;lt;/string&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Vendor response&lt;/h3&gt;
&lt;p&gt;On 2026-03-23, Optoma EMEA notified me that a new firmware build was available addressing this issue. Static analysis of the unflashed image confirms the relevant Android build flags are flipped:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;ro.adb.secure=0&lt;/code&gt; → &lt;code&gt;1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ro.debuggable=1&lt;/code&gt; → &lt;code&gt;0&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;persist.sys.usb.config=adb&lt;/code&gt; → &lt;code&gt;none&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are several problems with how the patch is being delivered:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The new firmware is labelled &lt;strong&gt;C13.2&lt;/strong&gt;, the same version string as the known-vulnerable build it replaces. There is no way for an owner to tell from the version number whether they have the patched build.&lt;/li&gt;
&lt;li&gt;The &lt;a href=&quot;https://www.optomaeurope.com/ContentStorage/Documents/67f2982f-2e2f-eb68-8b4b-fed4783c3848.txt&quot;&gt;release notes&lt;/a&gt; do not mention this security issue.&lt;/li&gt;
&lt;li&gt;The firmware is not offered through the on-device update mechanism. I have checked many times over the years and have never been offered an update; this one is not offered either. Possibly a side-effect of the unchanged version string.&lt;/li&gt;
&lt;li&gt;The updated firmware is published on the &lt;a href=&quot;https://www.optomaeurope.com/product/cinemax-p2&quot;&gt;Optoma Europe download page&lt;/a&gt; but &lt;strong&gt;not on the &lt;a href=&quot;https://www.optomausa.com/product/cinemax-p2#Downloads&quot;&gt;Optoma USA download page&lt;/a&gt;&lt;/strong&gt; as of disclosure. The projector was sold in both regions.&lt;/li&gt;
&lt;li&gt;The updated firmware still ships with the &#39;su&#39; binary, So the patch only raises the bar for reaching the shell- anyone who gets shell on a patched device still gets root.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The combination of silent release notes, no automatic update, partial geographic coverage, and no version bump essentially means that this remains unfixed for all practical purposes.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;CVE-2026-30496: Unauthenticated Remote Control API (CVSS 6.3 Medium)&lt;/h2&gt;
&lt;p&gt;This isn&#39;t as severe as the first one, but there&#39;s an HTTP API on port 2345 that allows &lt;strong&gt;full remote control&lt;/strong&gt; - not just reading settings, but changing them:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Read volume
$ curl http://192.168.1.30:2345/get/Volume
93

# Change volume (no auth required)
$ curl http://192.168.1.30:2345/inc/Volume
94

# Set arbitrary value
$ curl -X PUT &amp;quot;http://192.168.1.30:2345/set/Volume?value=50&amp;quot;
0

# Mute the device
$ curl -X PUT &amp;quot;http://192.168.1.30:2345/set/Mute?value=1&amp;quot;
0
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Anyone on your network can mess with your projector settings, including even hammering them to damage the projector.&lt;/p&gt;
&lt;p&gt;The API exposes 74 distinct actions across display, audio, power, network protocols, lamp telemetry and more: &lt;a href=&quot;/security/2026-02-01-smart-projector/coretronic-api-endpoints/&quot;&gt;Coretronic Central Manager API: Endpoint Inventory&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Vendor response&lt;/h3&gt;
&lt;p&gt;Optoma did not address this issue. The control API is not mentioned in the release notes for the March 2026 firmware and is not closed by the firmware image. Even owners who manually apply the partial patch for CVE-2026-30495 remain exposed via this vector.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Other Issues&lt;/h2&gt;
&lt;p&gt;Additionally, the CinemaX P2 reports Android security patch level &lt;strong&gt;2017-12-01&lt;/strong&gt; and runs &lt;strong&gt;Android 8.0.0&lt;/strong&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The device is missing every monthly fix from the &lt;a href=&quot;https://source.android.com/docs/security/bulletin/asb-overview&quot;&gt;Android Security Bulletins&lt;/a&gt; since January 2018.&lt;/li&gt;
&lt;li&gt;Android 8 reached end-of-life for Google security updates in &lt;strong&gt;October 2020&lt;/strong&gt; (one &lt;em&gt;month&lt;/em&gt; after the Cinemax P2 &lt;em&gt;first&lt;/em&gt; went on sale!)&lt;/li&gt;
&lt;li&gt;The firmware build is &lt;code&gt;userdebug&lt;/code&gt; rather than &lt;code&gt;user&lt;/code&gt;, signed with &lt;code&gt;test-keys&lt;/code&gt; rather than &lt;code&gt;release-keys&lt;/code&gt; - Not appropriate for a consumer device.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;h2&gt;What You Should Do&lt;/h2&gt;
&lt;p&gt;If you own one of these projectors, realistically treat the device as compromised if it&#39;s ever been on a network exposed to the internet.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Disconnect it from the network entirely if you don&#39;t need it online&lt;/strong&gt; - if you only feed it video over HDMI from an Apple TV, set-top box, or laptop, the projector has no reason to be on WiFi or Ethernet at all. This is the only step that fully closes both vulnerabilities.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manually apply the March 2026 firmware&lt;/strong&gt; from the &lt;a href=&quot;https://www.optomaeurope.com/product/cinemax-p2&quot;&gt;Optoma Europe download page&lt;/a&gt; (or the UHZ65UST equivalent). Identify it by file date (see the CVE-2026-30495 vendor-response section above for why the version string can&#39;t be relied on). This closes the ADB vector but &lt;strong&gt;not&lt;/strong&gt; the unauthenticated control API.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Isolate it&lt;/strong&gt; - Put it on a separate VLAN or guest network. The unauthenticated control API on port 2345 is not addressed by any current firmware.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Don&#39;t use it on shared networks&lt;/strong&gt; - Hotels, offices, anywhere you don&#39;t control the network.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Disable network features&lt;/strong&gt; - If you don&#39;t need Alexa integration or remote control apps, don&#39;t use them.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Block outbound traffic&lt;/strong&gt; - At your firewall if possible.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Timeline&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Date&lt;/th&gt;
&lt;th&gt;Event&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;September 2020&lt;/td&gt;
&lt;td&gt;CinemaX P2 released (shipped with Dec 2017 security patches - already 3 years outdated)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;July 2021&lt;/td&gt;
&lt;td&gt;Last firmware update before this incident (HDMI/lip sync fixes only, no security updates)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;March 2022&lt;/td&gt;
&lt;td&gt;I purchased the projector new at retail&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;December 2022&lt;/td&gt;
&lt;td&gt;CinemaX P2 discontinued from retail sale&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;January 2026&lt;/td&gt;
&lt;td&gt;Discovered ADB open, root access confirmed, started assessment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-02-01&lt;/td&gt;
&lt;td&gt;Notified Optoma EMEA via UK PSTI form (Ticket #11594) and Optoma US (Ticket #2033016); CVEs requested from MITRE&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-02-02&lt;/td&gt;
&lt;td&gt;Optoma US acknowledged&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-02-04&lt;/td&gt;
&lt;td&gt;Optoma EMEA acknowledged, escalated to engineering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-02-08&lt;/td&gt;
&lt;td&gt;Retested on latest available firmware (C13.2) after factory reset; both vulnerabilities persist&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-03-23&lt;/td&gt;
&lt;td&gt;Optoma EMEA released a new firmware build addressing the ADB issue&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-03-30&lt;/td&gt;
&lt;td&gt;Static analysis of the new firmware confirmed CVE-2026-30495 is mitigated; CVE-2026-30496 is not addressed; rollout deficiencies identified&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2026-05-02&lt;/td&gt;
&lt;td&gt;Public disclosure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Technical Details&lt;/h2&gt;
&lt;p&gt;Full evidence available, on request:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ADB session logs showing root escalation&lt;/li&gt;
&lt;li&gt;API testing logs showing unauthenticated control&lt;/li&gt;
&lt;li&gt;Network packet captures&lt;/li&gt;
&lt;li&gt;Static analysis notes for the five further high/critical findings referenced in the TL;DR (mostly TLS-related)&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;AI Disclosure: I used Claude to help with some of the analysis and writeup. Not that I really needed to.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Questions? &lt;a href=&quot;mailto:stefan@whitelabel.org&quot;&gt;stefan@whitelabel.org&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Coretronic Central Manager API: Endpoint Inventory (CinemaX P2)</title>
    <link href="https://whitelabel.org/security/2026-02-01-smart-projector/coretronic-api-endpoints/"/>
    <updated>2026-05-02T00:00:00.000Z</updated>
    <id>https://whitelabel.org/security/2026-02-01-smart-projector/coretronic-api-endpoints/</id>
    <content type="html">&lt;p&gt;Supplementary inventory for the security advisory at &lt;a href=&quot;/security/2026-02-01-smart-projector/&quot;&gt;/security/2026-02-01-smart-projector/&lt;/a&gt;, with the full list of HTTP API endpoints exposed by &lt;code&gt;MCentralmanager.apk&lt;/code&gt; (&lt;code&gt;com.coretronic.demo.server&lt;/code&gt;) on TCP port 2345 of the Optoma CinemaX P2 (firmware &lt;code&gt;TVOS-04.24.010.04.01&lt;/code&gt;), tracked under &lt;strong&gt;CVE-2026-30496&lt;/strong&gt; (CVSS 6.3 Medium).&lt;/p&gt;
&lt;p&gt;All endpoints are accessible &lt;strong&gt;without authentication&lt;/strong&gt; to any device on the same Layer 2 network. The list below is from a single CinemaX P2 (model X1VDPTHG); values are example readings from that device, not a specification.&lt;/p&gt;
&lt;h2&gt;API Behaviour&lt;/h2&gt;
&lt;p&gt;URL pattern: &lt;code&gt;http://&amp;lt;ip&amp;gt;:2345/&amp;lt;behavior&amp;gt;/&amp;lt;action&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Method&lt;/th&gt;
&lt;th&gt;Behavior&lt;/th&gt;
&lt;th&gt;URL pattern&lt;/th&gt;
&lt;th&gt;Function&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;&lt;code&gt;get&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/get/&amp;lt;action&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read integer value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;&lt;code&gt;get_s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/get_s/&amp;lt;action&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Read string value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;&lt;code&gt;inc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/inc/&amp;lt;action&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Increment integer value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GET&lt;/td&gt;
&lt;td&gt;&lt;code&gt;dec&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/dec/&amp;lt;action&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Decrement integer value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUT&lt;/td&gt;
&lt;td&gt;&lt;code&gt;set&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/set/&amp;lt;action&amp;gt;?value=X&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set integer value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUT&lt;/td&gt;
&lt;td&gt;&lt;code&gt;set_s&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/set_s/&amp;lt;action&amp;gt;?value=X&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Set string value&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;PUT&lt;/td&gt;
&lt;td&gt;&lt;code&gt;action&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;&lt;code&gt;/action/&amp;lt;action&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Trigger action&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;There is no per-action authorisation; every action enum value reachable via &lt;code&gt;/get/&lt;/code&gt; is also writable via &lt;code&gt;/set/&lt;/code&gt;. Confirmed during disclosure testing for &lt;code&gt;Volume&lt;/code&gt;, &lt;code&gt;Mute&lt;/code&gt;, and &lt;code&gt;TelnetOn&lt;/code&gt; (the latter as a representative protocol-enable flag).&lt;/p&gt;
&lt;h2&gt;Endpoints&lt;/h2&gt;
&lt;p&gt;74 distinct actions enumerated. Sample values shown are what one device reported; they are not defaults and will vary between installations.&lt;/p&gt;
&lt;h3&gt;Display &amp;amp; image (14)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Brightness&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;-9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Contrast&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Color&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Sharpness&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Gamma&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AspectRatio&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DisplayMode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BrightnessMode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;12&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BrilliantColor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ColorTemperature&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ColorSpace&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Tint&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ProjectionMode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PureMotion&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Keystone, geometry, cursor &amp;amp; grid (9)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HKeystone&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;VKeystone&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricWarpControl&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricWarpInner&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricWarpMovement&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricWarpCursorColor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricBackgroundColor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricCursorPoints&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GeometricGridColor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Audio (8)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Volume&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;93&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;Mute&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AudioOut&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;InternalSpeaker&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SoundEffect&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SPDIF&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SpeakerDelay&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DigitalOutputDelay&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Input source &amp;amp; signal (8)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CurrentInputSource&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AutoSource&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SignalPowerOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SignalFrequency&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SignalHPosition&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SignalVPosition&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SignalPhase&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;EDIDReminder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Power management (6)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DirectPowerOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PowerModeStandby&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PowerOffLink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PowerOnLink&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AutoPowerOffMin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;20&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;SleepTimerMin&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Network &amp;amp; control protocols (8)&lt;/h3&gt;
&lt;p&gt;These flags advertise the device&#39;s exposed control surface and are writable. An attacker with access to port 2345 can flip any of them without authentication.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HTTPOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;TelnetOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;PJLinkOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;CrestronOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ExtronOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;AMXDeviceDiscoveryOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LANDHCP&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;WLANWiFiOn&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Lamp &amp;amp; filter (7)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LampHoursTotal&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LampHoursBright&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LampHoursDynamic&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LampHoursEco&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;LampReminder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FilterUsageHour&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FilterReminder&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;HDR (3)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DynamicRangeHDR&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;DynamicRangeHDRPictureMode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HLGPictureMode&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Sensors (2)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ProximitySensor&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;HighAltitude&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Colour calibration (6)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;RedGain&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GreenGain&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BlueGain&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;RedBias&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;GreenBias&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;BlueBias&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;Identification &amp;amp; UI (3)&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Endpoint&lt;/th&gt;
&lt;th&gt;Sample value&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;ProjectorID&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;MenuTimer&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;FrameDelay&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Reproduction&lt;/h2&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Read any value (no authentication)
curl http://&amp;lt;projector-ip&amp;gt;:2345/get/Volume

# Write any value (no authentication)
curl -X PUT &amp;quot;http://&amp;lt;projector-ip&amp;gt;:2345/set/Volume?value=50&amp;quot;

# Toggle a control protocol flag without authentication
curl http://&amp;lt;projector-ip&amp;gt;:2345/get/TelnetOn
curl -X PUT &amp;quot;http://&amp;lt;projector-ip&amp;gt;:2345/set/TelnetOn?value=0&amp;quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;See the &lt;a href=&quot;/security/2026-02-01-smart-projector/&quot;&gt;main advisory&lt;/a&gt; for impact, vendor response, and remediation guidance.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Wikilinker</title>
    <link href="https://whitelabel.org/2026/03/09/wikilinker/"/>
    <updated>2026-03-09T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2026/03/09/wikilinker/</id>
    <content type="html">&lt;p&gt;I&#39;ve quietly shipped something I&#39;m quite pleased with: &lt;a href=&quot;/wikilinker/about&quot;&gt;Wikilinker&lt;/a&gt;, a browser extension that auto-links the top 1,000,000 Wikipedia names on any webpage you visit.&lt;/p&gt;
&lt;p&gt;It&#39;s a modern rebuild of the &lt;a href=&quot;/2004/10/04/dont-get-me-wrong-i-really-like-bbc-news-online/&quot;&gt;Wikiproxy&lt;/a&gt; I hacked together in 2004 — same idea, much better execution. The extension runs entirely in your browser, makes no API calls, and uses a &lt;a href=&quot;https://en.wikipedia.org/wiki/Bloom_filter&quot;&gt;bloom filter&lt;/a&gt; to pack a million Wikipedia titles into under 2MB.&lt;/p&gt;
&lt;p&gt;Available for &lt;a href=&quot;https://chromewebstore.google.com/detail/wikilinker/niflckgdjlcciahgcankljebehnmlpii&quot;&gt;Chrome&lt;/a&gt;, &lt;a href=&quot;https://addons.mozilla.org/en-GB/firefox/addon/wikilinker/&quot;&gt;Firefox&lt;/a&gt;, and &lt;a href=&quot;https://apps.apple.com/app/wikilinker/id6760317743&quot;&gt;Safari (macOS and iOS)&lt;/a&gt;. You can also see how it works by trying &lt;a href=&quot;/wikilinker?url=https://www.theguardian.com/technology/2025/oct/27/people-thought-i-was-a-communist-doing-this-as-a-non-profit-is-wikipedias-jimmy-wales-the-last-decent-tech-baron&quot;&gt;this Guardian interview with Jimmy Wales through the proxy&lt;/a&gt;. Full details on the &lt;a href=&quot;/wikilinker/about&quot;&gt;Wikilinker about page&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Yup, I&#39;m another one of those former-developer exec types who started playing with Claude Code at Christmas.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>What&#39;s going on here? Why is everything so old?</title>
    <link href="https://whitelabel.org/2026/01/22/whats-going-on-here-why-is-everything-so-old/"/>
    <updated>2026-01-22T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2026/01/22/whats-going-on-here-why-is-everything-so-old/</id>
    <content type="html">&lt;p&gt;Probably more than a decade ago, &lt;a href=&quot;https://craphound.com/&quot;&gt;Cory&lt;/a&gt; told me off for letting this blog fall off the internet and become yet more linkrot. I always felt a bit guilty about that, but never quite got round to fixing it. But partially inspired by &lt;a href=&quot;https://www.oblomovka.com/wp/2026/01/07/ai-psychosis-ai-apotheosis/&quot;&gt;Danny&lt;/a&gt; and his oh so sleek &lt;a href=&quot;https://almnck.com/&quot;&gt;ALMNCK&lt;/a&gt;, now me and my new codependent buddy Claude Code grabbed all the old posts from the &lt;a href=&quot;https://archive.org&quot;&gt;Internet Archive&lt;/a&gt;, fixed up the broken links where we could, linked to the archive when we needed to, and basically rather shonkily stood the whole thing up again. So you get a bit of a snapshot of what I was like when I was a whippersnapper. Beware.&lt;/p&gt;
&lt;p&gt;We took care to put the articles back at their old urls. I&#39;m justing waiting for the traffic to come flooding in. But yeah, one less dead website.&lt;/p&gt;
&lt;p&gt;There&#39;s some cleanup left to do, and the plan is to make this into Corpse Reviver - a generic tool for extracting dead blogs from the archive and standing them up again.&lt;/p&gt;
&lt;p&gt;Stef&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>NHS pulls care.data. WAS: The story behind faxyourgp.com</title>
    <link href="https://whitelabel.org/2014/02/18/nhs-pulls-care-data-was-the-story-behind-faxyourgp-com/"/>
    <updated>2014-02-18T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2014/02/18/nhs-pulls-care-data-was-the-story-behind-faxyourgp-com/</id>
    <content type="html">&lt;p&gt;&lt;strong&gt;Breaking News&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;I hadn&#39;t &lt;em&gt;even finished writing the FaxYourGP launch blog post&lt;/em&gt; when the news below hit the Twitters:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Less than 24 hours after the launch of https://www.faxyourgp.com, the &lt;a href=&quot;https://www.telegraph.co.uk/health/nhs/10647031/NHS-medical-records-database-halted-amid-concerns.html&quot;&gt;rollout of care.data has been delayed by 6 months&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, bloody marvellous. I won&#39;t say it was &#39;us what won it&#39;, because we were a small little effort on the tail end of some dogged and fantastic campaigning by &lt;a href=&quot;http://www.medconfidential.org&quot;&gt;others&lt;/a&gt;, but I&#39;m glad that maybe we were a tipping point.&lt;/p&gt;
&lt;p&gt;So we have 6 months to sort this out. Here&#39;s what care.data should do:&lt;/p&gt;
&lt;p&gt;- Provide an online, easy to use, secure opt-in/opt-out system, that doesn&#39;t involve unintelligible codes, a burden on GPs, or any other obfuscated funny business. You could do worse than reading &lt;a href=&quot;https://www.gov.uk/service-manual&quot;&gt;gov.uk/service-manual&lt;/a&gt; to learn how.&lt;/p&gt;
&lt;p&gt;- Opt-in rates will be much higher if you explain the benefits and risks of care.data widely, clearly and honestly. This requires proper investment in communicating with the public over the next six months, not just a jumble sale-style leaflet drop.&lt;/p&gt;
&lt;p&gt;I believe there are potential benefits to care.data, but they won&#39;t be realised without an honest discussion with the owners (i.e. patients) of the most personal data there is. This includes listening to and responding to people&#39;s genuine fears, and well as explaining the benefits more clearly.&lt;/p&gt;
&lt;p&gt;Once we&#39;ve figured out if these things are happening, we shall decide whether to pause &lt;a href=&quot;http://www.faxyourgp.com&quot;&gt;FaxYourGP&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The story behind faxyourgp.com&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;16 years ago, in 1998, when Tony Blair had just come to power and the year DVDs went on sale for the first time, I was part of a small group of citizen activists who built &lt;a href=&quot;https://web.archive.org/web/20000815054210/http://www.stand.org.uk/&quot;&gt;Stand.org.uk&lt;/a&gt;. As part of that campaign we built a web-to-fax gateway so that people could contact their MPs, who at the time were notoriously hard to contact via 20th century email. Partly, it was a joke: &#39;haha, MPs still use faxes!&#39;&lt;/p&gt;
&lt;p&gt;But it turned out to be quite useful for people, and in 2001, we launched a generic version, &lt;a href=&quot;https://web.archive.org/web/20010202064500/https://faxyourmp.com/&quot;&gt;faxyourmp.com&lt;/a&gt; which in 2005 under the care of &lt;a href=&quot;http://www.mysociety.org&quot;&gt;mysociety.org&lt;/a&gt; evolved into &lt;a href=&quot;http://www.writetothem.com&quot;&gt;writetothem.com&lt;/a&gt; expanded beyond MPs to all tiers of democracy. WTT now facilitates hundreds of thousands of democratic communications each year.&lt;/p&gt;
&lt;p&gt;I thought my days of fax-based activism were over more than a decade ago, but imagine my surprise to returning to the UK in January and finding out about this.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some thoughts and questions about care.data&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;- Did they really think they could get away with not providing a central opt-out, and that telling people to send code plural9ZZAlpha to their GP would be acceptable, &lt;em&gt;in 2014&lt;/em&gt;?&lt;/p&gt;
&lt;p&gt;- How can anyone have so little respect for patients or GPs?&lt;/p&gt;
&lt;p&gt;- Didn&#39;t they know that, if the NHS was subject to the same laws as businesses, the Information Commissioner would never approve this?&lt;/p&gt;
&lt;p&gt;- Did they really think that no-one would step up and challenge them on this?&lt;/p&gt;
&lt;p&gt;- Or that by pretending that this trivial thing was so technically difficult, they would only make people &lt;em&gt;more&lt;/em&gt; worried about care.data, not less?&lt;/p&gt;
&lt;p&gt;- These thoughts were our primary motivation.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some faxYourGP facts:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;- It&#39;s built on the proven, secure, reliable &lt;a href=&quot;https://github.com/mysociety/writetothem&quot;&gt;WriteToThem codebase&lt;/a&gt;, which has been delivering sensitive citizen communications for over 10 years. It is battle-proven.&lt;/p&gt;
&lt;p&gt;- It really did take us a couple of weekends. I haven&#39;t programmed in 10 years, but with a little help from some friends (and the mysociety codebase), it wasn&#39;t hard.&lt;/p&gt;
&lt;p&gt;- Our main cost is sending faxes. about 4p each.&lt;/p&gt;
&lt;p&gt;- We are very careful to not spam GPs. They use their fax machines for critical activities (hilarious though that might be to the rest of us). So we had to alter the WTT code to send only one fax per day, listing all the patients who wanted to opt out.&lt;/p&gt;
&lt;p&gt;- We send faxes because it&#39;s the most reliable way to reach the largest number of GPs. Yes, that is daft in 2014. We can do email too, once we know the GPs are happy with that.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>The first time I used a Mac was...</title>
    <link href="https://whitelabel.org/2011/10/06/the-first-time-i-used-a-mac-was/"/>
    <updated>2011-10-06T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2011/10/06/the-first-time-i-used-a-mac-was/</id>
    <content type="html">&lt;p&gt;The first time I touched a mac, I remember as clear as yesterday. It was 1984, I was 12, I walked into Cambridge Computer Store on Emmanuel Street in Cambridge, UK. I was hacking assembler on my ZX Spectrum and playing with the BBC Micro at school, so I knew what computers were and were capable of.&lt;/p&gt;
&lt;p&gt;There, at the front, was a Mac, with MacPaint, a keyboard, and this funny little box. I&#39;d never seen anything like it. I moved the box, and the arrow moved on the screen. If I pushed the button on the top of the funny little box and moved it, a corresponding squiggle appeared. I clicked the virtual &#39;buttons&#39; down the right, and the &#39;brush&#39; changed. It was a revelatory moment. This was completely intuitive, and changed everything.&lt;/p&gt;
&lt;p&gt;I think I drew a willy and walked out of the shop.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>4 facts about travelling in Africa (that aren&#39;t true)</title>
    <link href="https://whitelabel.org/2011/02/06/4-facts-about-travelling-in-africa-that-arent-true/"/>
    <updated>2011-02-06T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2011/02/06/4-facts-about-travelling-in-africa-that-arent-true/</id>
    <content type="html">&lt;p&gt;[I suppose I should disclaim at the beginning that what I&#39;m saying may not be representative of all African trips. My point is that not all African trips conform to the stereotypes. We weren&#39;t adventurers, we were plain and simple independent tourists]&lt;/p&gt;
&lt;p&gt;We sat on the banks of the Zambezi river. There were cucumber sandwiches and Pimms. The &lt;a href=&quot;http://www.theriverclubafrica.com/&quot;&gt;hotel&lt;/a&gt; is an old colonial farm where the farmer murdered his wife in the dining room because he thought she was having an affair with the local priest.
They sound an &#39;all clear&#39; in the morning when the hippos have left the grounds, and we&#39;re warned to stay away from the river&#39;s edge because of the crocodiles.&lt;/p&gt;
&lt;p&gt;It was lovely to stay at, but quite the throwback.&lt;/p&gt;
&lt;p&gt;We drove 2550km to get here across 4 countries. We camped wild in Botswana, and stayed at various campsites along the way.&lt;/p&gt;
&lt;p&gt;Some fun facts that aren&#39;t true about travelling in Africa:&lt;/p&gt;
&lt;p&gt;1. &lt;strong&gt;The roads are full of potholes&lt;/strong&gt;. Nonsense: you can drive from Cape Town to Victoria Falls, 2918km, :&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://maps.google.co.uk/maps?f=d&amp;amp;saddr=cape+town&amp;amp;daddr=-22.49226,17.48098+to:victoria+falls&quot;&gt;Cape Town to Victoria Falls on Google Maps&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;without hitting a single pothole. (We did the Cape Town to Windhoek leg &lt;a href=&quot;https://www.flickr.com/photos/smagdali/sets/72157623234091486/&quot;&gt;last year&lt;/a&gt; -  this year we did Windhoek to Victoria Falls)&lt;/p&gt;
&lt;p&gt;The roads look like this...&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5361066805_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361066805_medium.webp&quot; alt=&quot;IMG_2971&quot;&gt;&lt;/a&gt;
and this:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5361164449_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361164449_medium.webp&quot; alt=&quot;IMG_3102&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and this:
&lt;a href=&quot;/images/flickr/5361342993_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361342993_medium.webp&quot; alt=&quot;IMG_3443&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;and this:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5361377877_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361377877_medium.webp&quot; alt=&quot;our first elephant&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(there&#39;s an elephant in that last pic!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The other drivers are dangerous&lt;/strong&gt;. No, not really. Mostly the roads were totally empty (see above), but we found the drivers in Namibia, Botswana, Zimbabwe and Zambia to be fine. (the same is NOT true in Cape Town, Nairobi, or Lagos)&lt;/p&gt;
&lt;p&gt;2. &lt;strong&gt;The police are corrupt and will ask you for bribes&lt;/strong&gt;. There are police roadblocks outside most major towns, but they efficiently checked our driving licences and destination, and were, without fail, courteous and friendly. No-one asked us for a bribe, intimidated or otherwise acted strangely with us. One policeman in Kasane went well out of his way to help us and make sure we were ok, and I wish I could remember his name and thank him here.&lt;/p&gt;
&lt;p&gt;3. &lt;strong&gt;Border crossings take forever and are corrupt&lt;/strong&gt;. Not our experience. There&#39;s certainly a tendency for bureacracy that is unusual for a European (or at least one from a Schengen country), but if your papers are in order and you have the right fees for importing the vehicle, you&#39;re fine. The border officials we met (at big crossings and obscure ones), were, like the police, courteous, friendly and honest. Here&#39;s the paperwork generated by the 3 border crossings:
&lt;a href=&quot;/images/flickr/5393774484_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5393774484_medium.webp&quot; alt=&quot;Paperwork for 3 border crossings&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I wish that I was treated as well by the hostile, rude, officious bastards at Heathrow as I was by their equivalents at Kasanguna or Victoria Falls.&lt;/p&gt;
&lt;p&gt;Over the years, Kay and I have driven the length and breadth of Europe, across &lt;a href=&quot;https://www.flickr.com/photos/smagdali/81627367/in/set-1748604/&quot;&gt;Patagonia&lt;/a&gt; in Argentina/Chile, and also big chunks of the western US. I can&#39;t say that I found driving across 5 African countries any more difficult than any of those. The biggest shock for me was how few other tourists there were on the roads, and how empty the amazing campsites and lodges we stayed at were.&lt;/p&gt;
&lt;p&gt;I think other people try and play up the african adventurer side of it. Let&#39;s be honest, we&#39;re not. We&#39;re just tourists, but that&#39;s fine.&lt;/p&gt;
&lt;p&gt;And the the things we did and saw along the way were pretty amazing:
&lt;a href=&quot;/images/flickr/5361359934_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361359934_medium.webp&quot; alt=&quot;IMG_2952&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5361719914_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361719914_medium.webp&quot; alt=&quot;IMG_3003-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5361896800_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361896800_medium.webp&quot; alt=&quot;IMG_3299&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5362187604_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5362187604_medium.webp&quot; alt=&quot;IMG_3250&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5361466017_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5361466017_medium.webp&quot; alt=&quot;IMG_3196&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/5362545803_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/5362545803_medium.webp&quot; alt=&quot;You can&#39;t see it, but it was raining.&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It was one of the best holidays we&#39;ve ever had, and I recommend you come on down and try it.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>TechCrunchTV</title>
    <link href="https://whitelabel.org/2010/08/28/techcrunchtv/"/>
    <updated>2010-08-28T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2010/08/28/techcrunchtv/</id>
    <content type="html">&lt;p&gt;I just did an interview with Paul Carr (formerly of the internet), and &lt;a href=&quot;https://twitter.com/sarahcuda&quot;&gt;@sarahcuda&lt;/a&gt; on techcrunchtv, about the &lt;a href=&quot;https://techcrunch.com/2010/08/27/kenya-a-land-of-endless-mobile-possibility-techcrunchtv/&quot;&gt;Kenyan/African tech scene&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I&#39;m in Nairobi right now; things are especially exciting at the moment. The Central Business District is chaos ahead of the promulgation of the new constitution on Friday (probably already happened by the time I post this), but there&#39;s a whole bunch of really, REALLY exciting things happening:&lt;/p&gt;
&lt;p&gt;1. The big mobile  price war. Last week, Zain (now owned by Bharti Airtel), cut their airtime and SMS tariffs to 25% of the previous, causing the other operators to immediately follow suit. In a country where people spend 50% of their disposable income on their phones, this is a huge deal, and will spark another round of mobile phone innovation and usage. The main point here is that lowering the cost of using technology, lowers the cost of failure; as Clay Shirky says, in turn this lowers the risk of innovation. I believe this will have a big impact on my business, &lt;a href=&quot;http://www.mocality.com/&quot;&gt;Mocality.com&lt;/a&gt;, by making it easier for EVERYONE to use us. Compare these two photos of adverts for Orange&#39;s tariff, taken on the same day;
&lt;a href=&quot;/images/flickr/4934545665_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4934545665_medium.webp&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;a href=&quot;/images/flickr/4934750018_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4934750018_medium.webp&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The pricing is changing so fast, that they can&#39;t even take down the old billboards quick enough!&lt;/p&gt;
&lt;p&gt;- (blowing own trumpet) Mocality hit a big milestone this week - we signed up our &lt;a href=&quot;http://www.mocality.co.ke/b/Invesco-Assurance/1f2f41e5-d210-46a7-a271-7c57f06e2757&quot;&gt;60,000th Nairobi business&lt;/a&gt;, making us easily the largest business directory in Africa. Most of our businesses have no web presence other than our listing - I&#39;m very proud to have given so many businesses their first outpost on the internet, and thank everyone involved, especially our hardworking Ambassadors and our network of crowdsourcing Agents. We&#39;re re-launching our website on the 30th August, now actively open for business.&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://makerfaireafrica.com/&quot;&gt;Maker Faire Africa&lt;/a&gt; is taking place on the 27th and 28th August, here in Nairobi - it&#39;ll be an explosion of local tech innovation.&lt;/p&gt;
&lt;p&gt;I namechecked a bunch of internet businesses/projects in Africa that I think are leading the way (although this is nothing like a complete list). Since TV is such a crappy medium for delivering URLs, I&#39;ll list them here:&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.mocality.com&quot;&gt;Mocality&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;https://www.pesapal.com/&quot;&gt;Pesapal&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://kalahari.co.ke&quot;&gt;Kalahari Kenya&lt;/a&gt; (disclaimer - sister company to Mocality)&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.ushahidi.com&quot;&gt;Ushahidi.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.ihub.co.ke&quot;&gt;The iHub &lt;/a&gt;(like the techhub that Paul mentioned, but better) (sorry, Mike :) )&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://eatout.co.ke/&quot;&gt;eatout.co.ke&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;https://jobberman.com/&quot;&gt;jobberman.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.villagetelco.org&quot;&gt;village telco&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.symbiotic.co.ke&quot;&gt;symbiotic&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;- &lt;a href=&quot;http://www.jobberman.com&quot;&gt;jobberman&lt;/a&gt; - in the interview, some weird mental buffer overflow made me say that they&#39;re in India. They&#39;re in Nigeria. Apologies.&lt;/p&gt;
&lt;p&gt;There&#39;s a great tech scene in South Africa, but I have to say, that I think Kenya eclipses it. Mocality&#39;s country manager, Josh Mwaniki and I  spent Wednesday giving our SA Head of Customer Service a crash course in Nairobi - Ray was pretty astonished at the variety and density of technology retail (phones, PCs, everything) across the city. Mobile tech (retail, M-Pesa, airtime sales) powers commerce in Nairobi like no where else.&lt;/p&gt;
&lt;p&gt;Right, more later, I&#39;m off to the Maker Faire party now.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Making iTunes appear for pdfs in the &#39;Open With&#39; contextual menu on Mac OSX</title>
    <link href="https://whitelabel.org/2010/08/26/making-itunes-appear-for-pdfs-in-the-open-with-contextual-menu-on-mac-osx/"/>
    <updated>2010-08-26T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2010/08/26/making-itunes-appear-for-pdfs-in-the-open-with-contextual-menu-on-mac-osx/</id>
    <content type="html">&lt;p&gt;iBooks and my iPhone/iPad can read pdfs, but iTunes&#39; support for pdfs on the filesystem is non-existent. Adding pdfs to iTunes is a pain. I didn&#39;t understand why iTunes.app didn&#39;t appear as an option for opening pdfs in the contextual menu. Note: I do not want to make iTunes the default App for handling pdfs - that would  be crazzzeeeeee.&lt;/p&gt;
&lt;p&gt;After much &lt;a href=&quot;https://en.wikibooks.org/wiki/Using_iTunes/Ogg_in_iTunes&quot;&gt;web searching&lt;/a&gt;, and more than a little help from some Monkeyz, the answer is this.&lt;/p&gt;
&lt;p&gt;1. Make sure iTunes is NOT running.&lt;/p&gt;
&lt;p&gt;2. Right-click on iTunes.app and choose &#39;Show Package Contents&#39;&lt;/p&gt;
&lt;p&gt;3. In the window that opens, open Contents, then open &#39;Info.plist&#39; in a text editor&lt;/p&gt;
&lt;p&gt;4. paste the following&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;dict&amp;gt;
&amp;lt;key&amp;gt;CFBundleTypeExtensions&amp;lt;/key&amp;gt;
&amp;lt;array&amp;gt;
&amp;lt;string&amp;gt;pdf&amp;lt;/string&amp;gt;
&amp;lt;string&amp;gt;PDF&amp;lt;/string&amp;gt;
&amp;lt;/array&amp;gt;
&amp;lt;key&amp;gt;CFBundleTypeMIMETypes&amp;lt;/key&amp;gt;
&amp;lt;array&amp;gt;
&amp;lt;string&amp;gt;application/pdf&amp;lt;/string&amp;gt;
&amp;lt;/array&amp;gt;
&amp;lt;key&amp;gt;CFBundleTypeRole&amp;lt;/key&amp;gt;
&amp;lt;string&amp;gt;Viewer&amp;lt;/string&amp;gt;
&amp;lt;/dict&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Finally, Rebuild the LaunchServices Database by running the following incantation on the command line.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;now, right-clicking on any pdf should include iTunes in the contextual &#39;Open With&#39; Menu, so you can add pdfs to iBooks RIGHT THERE:&lt;/p&gt;
&lt;p&gt;And people say that macs are obtuse and confusing. pah!&lt;/p&gt;
&lt;p&gt;&lt;img src=&quot;/images/uploads/2010/08/itunesincontextmenuforpdf1.png&quot; alt=&quot;iTunes in the context menu for a pdf file&quot;&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Young Rewired State</title>
    <link href="https://whitelabel.org/2010/07/19/young-rewired-state/"/>
    <updated>2010-07-19T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2010/07/19/young-rewired-state/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://rewiredstate.org/yrs&quot;&gt;Young Rewired State&lt;/a&gt; is a multi-city, multi-day UK event to get the best of young UK coding talent mashing up government data and generally encouraging insightful and innovative trouble-making.&lt;/p&gt;
&lt;p&gt;From the site:&lt;/p&gt;
&lt;p&gt;&amp;quot;During the first week of August, Young Rewired State will again show what groups of talented young coders can do with Government data. Young developers will spend the week at centres held at businesses and organisations across the UK, working with established tech teams, mentors and visiting experts making apps, websites, games and visualisations.&lt;/p&gt;
&lt;p&gt;These will then be played back to an awed roomful of Press, government and interested people on the Friday afternoon in London, with pizza, cake and drinks.&amp;quot;&lt;/p&gt;
&lt;p&gt;There&#39;s prizes too (one of which I&#39;m incredibly honoured to have named after &lt;a href=&quot;http://rewiredstate.org/pages/yrs-awards&quot;&gt;ME ME ME&lt;/a&gt;!)&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>iPad un(chocolate)boxing</title>
    <link href="https://whitelabel.org/2010/06/12/ipad-unchocolateboxing/"/>
    <updated>2010-06-12T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2010/06/12/ipad-unchocolateboxing/</id>
    <content type="html">&lt;p&gt;Right, this is the rebirth of my blogging. My first post in at least 5 years, with a new domain and a new title.&lt;/p&gt;
&lt;p&gt;Anyone who knows my wife, &lt;a href=&quot;https://twitter.com/kerrching&quot;&gt;@kerrching&lt;/a&gt;, knows that she&#39;s a Apple nut. Also, with a June birthday, she has conveniently positioned herself perfectly for the Apple release cycle. An iPad was inevitable for her birthday, but I knew that if I just delivered a wrapped box, there wouldn&#39;t be much of a surprise. Where&#39;s the fun in that? So I rang my friends James and Paul, who happens to run &lt;a href=&quot;http://www.paulayoung.co.uk/&quot;&gt;the finest chocolate shop in London&lt;/a&gt;, &lt;a href=&quot;http://www.paulayoung.co.uk&quot;&gt;Paul A Young Fine Chocolates&lt;/a&gt; and said &amp;quot;Could you freeze an iPad in chocolate carbonite, and have it survive?&amp;quot;. They weren&#39;t sure, but were willing to give it a go.&lt;/p&gt;
&lt;p&gt;Additionally, iPads aren&#39;t available yet in South Africa, so it had to smuggled over from London, without Kay finding out what was going on.&lt;/p&gt;
&lt;p&gt;The prepared product:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4692748039_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4692748039_medium.webp&quot; alt=&quot;P1030591&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unwrapping begins:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4693383150_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4693383150_medium.webp&quot; alt=&quot;IMG_1407-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The &amp;quot;I like chocolate, but you gave me 2 kg of it for my birthday, are you a bit nuts? look&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4692749099_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4692749099_medium.webp&quot; alt=&quot;IMG_1411&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Why don&#39;t you pull on that little ribbon embedded in the chocolate?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4693384204_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4693384204_medium.webp&quot; alt=&quot;IMG_1428-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Realisation!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4692749959_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4692749959_medium.webp&quot; alt=&quot;IMG_1434&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Revelation:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4693386690_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4693386690_medium.webp&quot; alt=&quot;IMG_1446&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Acceptance:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4693386020_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4693386020_medium.webp&quot; alt=&quot;IMG_1442-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4693387506_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4693387506_medium.webp&quot; alt=&quot;IMG_1473-2&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.flickr.com/photos/smagdali/4692753329/&quot;&gt;&lt;img src=&quot;https://farm5.staticflickr.com/4065/4692753329_cf3833357e.jpg&quot; alt=&quot;IMG_1476&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Success!!!!!!!!&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4693388862_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4693388862_medium.webp&quot; alt=&quot;IMG_1491&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;With many many thanks to all the wonderful people who helped this to happen:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/minor9th&quot;&gt;Simon&lt;/a&gt; , who waited in line forever at the London Apple Store to source the machine itself.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://twitter.com/jamescronin&quot;&gt;James&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/paul_a_young&quot;&gt;Paul&lt;/a&gt;, for successfully performing the carbon-freezing process, and&lt;/p&gt;
&lt;p&gt;Karen, who went through a couple of hours of hell trying to explain what was going on to the South African customs people.&lt;/p&gt;
&lt;p&gt;Oh, and just in case you&#39;re worried: no iPads were harmed in this production :)&lt;/p&gt;
&lt;h3&gt;Update: 16:27, June 14th&lt;/h3&gt;
&lt;p&gt;Wow. Well, thanks for all the kinds words, everyone. This ran away a little more than I expected.&lt;/p&gt;
&lt;p&gt;Media types: Yes, you can use the photos without permission, so long as you maintain attribution with my name or a linkback, as per &lt;a href=&quot;https://creativecommons.org/licenses/by/2.0/deed.en_GB&quot;&gt;https://creativecommons.org/licenses/by/2.0/deed.en_GB&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Barcamp Nairobi 2010</title>
    <link href="https://whitelabel.org/2010/06/12/barcamp-nairobi-2010/"/>
    <updated>2010-06-12T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2010/06/12/barcamp-nairobi-2010/</id>
    <content type="html">&lt;p&gt;Thoughts on &lt;a href=&quot;http://www.barcampnairobi.com/&quot;&gt;#barcampnairobi/wherecamp&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/4695683174_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/4695683174_medium.webp&quot; alt=&quot;P1030636&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Great turnout - over 600 Kenyan geeks and entrepreneurs, with a healthy sprinkling from the NGO community too.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Better gender ratio than I&#39;ve seen at any barcamp in the UK, and any tech event at all in South Africa.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Why is that?&lt;/p&gt;
&lt;ol start=&quot;3&quot;&gt;
&lt;li&gt;If I had a criticism of some of the companies that I see/meet in Kenya, it&#39;s that they don&#39;t focus tightly enough: &amp;quot;we&#39;ve built a social network and a classifieds platform and a game and a dating site&amp;quot; - as Erik said about Ushahidi, technology is 5% and people/growth is 90% (the other 5%? luck.)&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Without focus, you&#39;ll never be able to grow your 5 or 10 sites together. Pick the best, put the others in a drawer and dust them off later when the first is profitable or at least has audience and growth.&lt;/p&gt;
&lt;ol start=&quot;4&quot;&gt;
&lt;li&gt;
&lt;p&gt;The &lt;a href=&quot;http://ihub.co.ke&quot;&gt;iHub&lt;/a&gt; is a great space. Lovely combo of good connectivity and informality of setting makes it perfect for the barcamp ethos, better than the eBay offices in London or similar corporate venues that I&#39;ve barcamped at. This place is going to be great.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Loved the positive reception that &lt;a href=&quot;http://www.mocality.co.ke&quot;&gt;Mocality&lt;/a&gt; got from everyone here. Really great to hear the feedback.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Location:&lt;a href=&quot;https://maps.google.com/maps?q=Nairobi,%20Kenya&amp;amp;z=10&quot;&gt;Nairobi, Kenya&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Look! Kittens!</title>
    <link href="https://whitelabel.org/2007/08/10/look-kittens/"/>
    <updated>2007-08-10T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2007/08/10/look-kittens/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20070814072734/https://www.moo.com/readymade/choose.php?mode=theme#Kittens&quot;&gt;Kitten themed packs from MOO&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;we shoulda done this a longggggggggg time ago.&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>MOO Stickerbooks launches</title>
    <link href="https://whitelabel.org/2007/07/19/moo-stickerbooks-launches/"/>
    <updated>2007-07-19T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2007/07/19/moo-stickerbooks-launches/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.moo.com/products/stickers.php&quot;&gt;MOO Stickerbooks.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These are so exciting I can&#39;t breathe.&lt;/p&gt;
&lt;p&gt;I really must blog more often ;)&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>MOO launches</title>
    <link href="https://whitelabel.org/2006/09/19/moo-launches/"/>
    <updated>2006-09-19T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2006/09/19/moo-launches/</id>
    <content type="html">&lt;p&gt;Of course, this is the big day I&#39;ve been waiting for and wanting to write about for the last six months, but even today I manage to get scooped by coates. so &lt;a href=&quot;http://www.plasticbag.org/archives/2006/09/tiny_flickr_cards/&quot;&gt;I&#39;ll leave it to him.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.moo.com/&quot;&gt;http://www.moo.com&lt;/a&gt;- no politics, no data, no worthiness, just printing sexy little cards from your pictures.&lt;/p&gt;
&lt;p&gt;I&#39;d like to thank everyone. I&#39;m so excited.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20061107113748/http://www.capturecard.com/&quot;&gt;Emma&lt;/a&gt; Says:&lt;/p&gt;
&lt;p&gt;Congrats the site is great and your product is v. cool.  I would encourage you to check out our product Capture Cards &lt;a href=&quot;https://web.archive.org/web/20061107113748/http://www.capturecard.com/&quot;&gt;www.capturecard.com&lt;/a&gt; (we just sell paper so it would be an excellent addition to your current offering)  Just imagine having a full color calling card with stickers on the back you could have SOOOO much fun.  Let me know if you have questions.&lt;/p&gt;
&lt;p&gt;September 19th, 2006 at 6:40 pm&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>My first ever youtube video</title>
    <link href="https://whitelabel.org/2006/08/15/my-first-ever-youtube-video/"/>
    <updated>2006-08-15T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2006/08/15/my-first-ever-youtube-video/</id>
    <content type="html">&lt;p&gt;actually a quicktime of a days worth of pictures taken with my 20D at 6 fps..., since the youtube output looked rubbish:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/assets/archive/a_grand_day_out.mov&quot;&gt;Sophia and James&#39; Wedding&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The low quality youtube version, if the above doesn&#39;t work for you:&lt;/p&gt;
&lt;h3&gt;One Response to &amp;quot;My first ever youtube video&amp;quot;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;http://nick.recoil.org/&quot;&gt;Nick Ludlam&lt;/a&gt; Says:&lt;/p&gt;
&lt;p&gt;You know, that sort of works!&lt;/p&gt;
&lt;p&gt;I&#39;m not sure what&#39;s going on with the aspect ratio at times, but when you&#39;ve taken a series of shots together in b/w, it does give it an arthouse film feel&lt;/p&gt;
&lt;p&gt;August 17th, 2006 at 11:25 am&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>I think I now understand how Arthur Dent felt about that bypass</title>
    <link href="https://whitelabel.org/2006/08/04/i-think-i-now-understand-how-arthur-dent-felt-about-that-bypass/"/>
    <updated>2006-08-04T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2006/08/04/i-think-i-now-understand-how-arthur-dent-felt-about-that-bypass/</id>
    <content type="html">&lt;p&gt;I just got back from a very happy week long trip to the Bay Area, to find that LMS Capital (not getting no googlejuice from me), a property developer, wants to build [London&#39;s 12th highest skyscraper across the road from our first floor flat.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/List_of_tallest_structures_in_London&quot;&gt;&lt;img src=&quot;https://web.archive.org/web/20110607120913/https://static.flickr.com/98/205886363_745fdf11ab.jpg&quot; alt=&quot;IMG_3062.JPG&quot;&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Upon arrival, we rushed to see the (4-day long) exhibition that LMS Capital have organised to &#39;publicise&#39; this proposal. We have until august 17th to object.&lt;/p&gt;
&lt;p&gt;Had an interesting conversation with the robot marketing the proposal, in which she responded to my clear distress at having 44 floors of flats staring straight through the windows into my bedroom, with &#39;don&#39;t you want a community in your area?&#39; to which I replied, &#39;we moved to Hoxton for the community! you think we&#39;re so short of bars and community that we need a 140m glass skyscraper to help us connect?&#39;&lt;/p&gt;
&lt;p&gt;But I suppose, being a new technology nerdy kind of guy, and someone who has spent a fair bit of time taking things that should be online (but aren&#39;t) there, a few things surprise me about the planning process.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;We got a nice 4 page A4 glossy through the door that doesn&#39;t include a URL, not even for this major capital project, not for the company that&#39;s building it. Not an address nor a phone number either.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Whilst the planning notice from Islington council  claimed that the planning info would be available online, there was no URL included in that document either, and I can&#39;t find any reference to it online.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If I were the sort of paranoid who&#39;d spent 10 years extracting public information from public bodies who didn&#39;t really want me to, I&#39;d suspect, possibly, an unwillingness to use technology to improve the public&#39;s access to the planning process. I still have to take a day off work to go and get the detailed reports.&lt;/p&gt;
&lt;p&gt;only one thing for it, I guess, better build a website.&lt;/p&gt;
&lt;p&gt;We&#39;ll start with some pics:&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.flickr.com/photos/smagdali/sets/72157594223088610/&quot;&gt;photos from LMS Capital&#39;s proposed City Road Estate exhibition&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;One Response to &amp;quot;I think I now understand how Arthur Dent felt about that bypass&amp;quot;&lt;/h3&gt;
&lt;p&gt;Tom Says:&lt;/p&gt;
&lt;p&gt;Think you&#39;ll find those contact details in the darkened cellar of the planning department?.. perhaps in a locked filing cabinet, at the back of a disused lavatory, with a sign on the door saying beware of the leopard...&lt;/p&gt;
&lt;p&gt;September 12th, 2006 at 10:05 am&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Right, time to start blogging again</title>
    <link href="https://whitelabel.org/2006/07/19/right-time-to-start-blogging-again/"/>
    <updated>2006-07-19T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2006/07/19/right-time-to-start-blogging-again/</id>
    <content type="html">&lt;p&gt;I have a new job, I&#39;m CTO of a new digital printing startup called MOO. We make things. Making things is fun. I&#39;ll post more about them later.&lt;/p&gt;
&lt;h3&gt;One Response to &amp;quot;Right, time to start blogging again&amp;quot;&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://web.archive.org/web/20060819053446/http://www.rowperfect.co.uk/&quot;&gt;Becky Caroe&lt;/a&gt; Says:&lt;/p&gt;
&lt;p&gt;so what&#39;s MOO&#39;s URL?&lt;/p&gt;
&lt;p&gt;August 3rd, 2006 at 11:31 am&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Trillian dead</title>
    <link href="https://whitelabel.org/2006/02/16/trillian-dead/"/>
    <updated>2006-02-16T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2006/02/16/trillian-dead/</id>
    <content type="html">&lt;p&gt;&lt;a href=&quot;https://www.guardian.co.uk/g2/story/0,,1709875,00.html&quot;&gt;Tricia McMillian dead&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Trillian_%28character%29&quot;&gt;Tricia McMillian dead&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;obviously from some (as yet) unpublished edition of the Hitch-hiker&#39;s Guide&lt;/p&gt;
&lt;p&gt;(not laughing at tragedy, but merely spotting a co-incidence)&lt;/p&gt;
</content>
  </entry>
  
  <entry>
    <title>Possibly the most tasteless advert I’ve ever seen</title>
    <link href="https://whitelabel.org/2006/01/19/possibly-the-most-tasteless-advert-ive-ever-seen/"/>
    <updated>2006-01-19T00:00:00.000Z</updated>
    <id>https://whitelabel.org/2006/01/19/possibly-the-most-tasteless-advert-ive-ever-seen/</id>
    <content type="html">&lt;p&gt;I clipped this from a US Airways in-flight magazine. It doesn&#39;t say where this delightful institution is, but I&#39;m guessing Vegas.&lt;/p&gt;
&lt;p&gt;Check out the dolly&#39;s atrociously photoshopped mushroom cloud dress. Celebrating the culture and diverse history of the original Weapons of Mass Destruction. Lest we forget, the United States of America is the only nation to have &lt;a href=&quot;https://en.wikipedia.org/wiki/Little_boy&quot;&gt;used nuclear weapons in anger&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;/images/flickr/88333193_large.webp&quot;&gt;&lt;img src=&quot;/images/flickr/88333193_medium.webp&quot; alt=&quot;theatomicmuseum&quot;&gt;&lt;/a&gt;&lt;/p&gt;
</content>
  </entry>
  
</feed>
