<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="/scripts/pretty-feed-v3.xsl" type="text/xsl"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:h="http://www.w3.org/TR/html4/"><channel><title>Barnes Tech</title><description>Technology insights, reviews, and tutorials from Robby Barnes</description><link>https://barnes.tech</link><item><title>Artemis II: The Mission and Its Images</title><link>https://barnes.tech/blog/artemis-2-photo-gallery</link><guid isPermaLink="true">https://barnes.tech/blog/artemis-2-photo-gallery</guid><description>Key highlights from the Artemis II lunar flyby mission, and a gallery of 118 high-resolution NASA photos and videos.</description><pubDate>Sat, 11 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Artemis II launched on April 1, 2026, from Pad 39B at Kennedy Space Center aboard NASA&apos;s Space Launch System. The crew — Reid Wiseman, Victor Glover, Christina Koch, and Jeremy Hansen — flew a 10-day lunar flyby test mission aboard the Orion capsule (named &lt;em&gt;Integrity&lt;/em&gt;). The purpose was to test systems, identify problems, and validate hardware for future lunar landing missions. No landing was attempted.&lt;/p&gt;
&lt;p&gt;Watching this mission unfold has been genuinely incredible. In a period where so much of the world is chaotic and uncertain, having something this ambitious and this beautiful to follow has been a welcome reminder of what humans are capable of when they&apos;re pointed in the right direction. The images that came back are stunning, and I wanted to put all of my favorite ones in one place.&lt;/p&gt;
&lt;h2&gt;Dark-Side Earth Photography&lt;/h2&gt;
&lt;p&gt;Some of the most striking images showed Earth&apos;s night side after the spacecraft left low orbit. A thin crescent of sunlight and scattered city lights were visible, while the rest of the cloud cover was faintly illuminated by &lt;strong&gt;moonshine&lt;/strong&gt; — sunlight reflecting off the full Moon back onto Earth.&lt;/p&gt;
&lt;p&gt;Longer-exposure versions of these shots revealed additional features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Venus&lt;/strong&gt; as a bright point of light&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Green auroras&lt;/strong&gt; visible at high latitudes&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The sodium layer&lt;/strong&gt; — a thin glowing ring around the planet at roughly 90 km altitude, created by atomic sodium deposited from vaporized meteors and excited by sunlight. Astronomers use lasers tuned to this sodium&apos;s wavelength to create artificial &quot;guide stars,&quot; then measure atmospheric distortion to drive adaptive optics corrections on ground-based telescopes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zodiacal light&lt;/strong&gt; — a faint glow caused by sunlight scattering off interplanetary dust along the plane of the solar system&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Moon&apos;s Far Side&lt;/h2&gt;
&lt;p&gt;As the capsule orbited the Moon, it captured detailed views of the far side, which is heavily cratered compared to the smoother near side. The near side has a thinner crust, likely due to gravitational interaction and concentration of radioactive, heat-producing elements, which allowed more volcanic activity to resurface the terrain with lava flows. The far side, with its thicker crust, preserves a much longer history of impacts. Visible features include crater chains — linear strings of craters formed by ejecta from large impacts like the Orientale basin — and deep multi-ring impact basins.&lt;/p&gt;
&lt;h2&gt;&quot;Earthset&quot;&lt;/h2&gt;
&lt;p&gt;The mission produced a now-iconic image of a crescent Earth appearing to set behind the Moon&apos;s limb, shot with a long telephoto lens (80–400 mm on a Nikon D5). While visually stunning, the image contains three subtle distortions worth understanding:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Orientation&lt;/strong&gt; — The photo has been rotated to make it look like Earth is rising or setting over a horizon. From the spacecraft&apos;s actual trajectory, Earth was off to the side.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Apparent size&lt;/strong&gt; — The telephoto lens compresses the scene, making Earth appear far larger relative to the lunar surface than it would to the naked eye.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The concept of Earthrise/Earthset&lt;/strong&gt; — Because the Moon is tidally locked, Earth doesn&apos;t actually rise or set from the lunar surface. From the near side, Earth hangs in roughly the same spot in the sky (with slight wobble from libration). From the far side, Earth is never visible. The apparent motion in these photos is entirely due to the spacecraft&apos;s orbit.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Moon&apos;s surface in these shots also looks oddly &quot;rendered&quot; or video-game-like. This is because lighting in space comes from a single source (the Sun) with no atmospheric scattering to fill shadows, producing extreme contrast that our brains read as computer-generated.&lt;/p&gt;
&lt;h2&gt;The Unplanned Solar Eclipse&lt;/h2&gt;
&lt;p&gt;The mission&apos;s most dramatic visual moment was unplanned. Because of a launch schedule slip to April 1, the departing spacecraft&apos;s geometry happened to align so that the Moon passed directly in front of the Sun. The astronauts watched from within the Moon&apos;s shadow as the &lt;strong&gt;solar corona&lt;/strong&gt; — hot plasma extending far from the Sun&apos;s surface — formed a bright halo around the Moon&apos;s silhouette.&lt;/p&gt;
&lt;p&gt;The Moon&apos;s dark side was faintly illuminated by &lt;strong&gt;Earthshine&lt;/strong&gt;: sunlight bouncing off the distant Earth. Stars and several planets (including Mars, Venus, and Saturn) were visible along the plane of the solar system in the same frame. Victor Glover remarked from orbit that humans probably haven&apos;t evolved to process what they were seeing.&lt;/p&gt;
&lt;h2&gt;Wide Compositions&lt;/h2&gt;
&lt;p&gt;Several images placed the Orion capsule, the Moon, and the Earth all in a single frame — one captured by a GoPro mounted externally. These compositions drive home the scale contrast between the small, improvised nature of human spacecraft and the vastness of the space around them.&lt;/p&gt;
&lt;h2&gt;Why These Photos Matter&lt;/h2&gt;
&lt;p&gt;The most powerful Artemis II images resulted from a combination of luck and deliberate human choices. The launch date created the eclipse geometry. The astronauts chose the compositions, lenses, and framing. Photographs from crewed missions are not just data — they are artistic decisions that shape how humanity processes and remembers spaceflight.&lt;/p&gt;
&lt;h2&gt;Gallery&lt;/h2&gt;
&lt;p&gt;All 118 images and videos below are full-resolution NASA originals. Click any thumbnail to view it larger, and use the download button to save individual files or download the entire collection.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=oaXRREHVkHo&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;Hank Green&apos;s breakdown of the Artemis II mission and its images&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Claude Code&apos;s Source Code Leaked via npm</title><link>https://barnes.tech/blog/claude-codes-source-code-leaked-via-npm</link><guid isPermaLink="true">https://barnes.tech/blog/claude-codes-source-code-leaked-via-npm</guid><description>How a source map file accidentally shipped to npm exposed Claude Code&apos;s entire codebase, and why it&apos;s more embarrassing than catastrophic.</description><pubDate>Wed, 01 Apr 2026 12:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/claude-code-wordmark-light-mode.svg&quot; alt=&quot;Claude Code logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;ve &lt;a href=&quot;https://barnes.tech/blog/how-i-use-claude-code-every-day/&quot;&gt;written about Claude Code before&lt;/a&gt; and it&apos;s a tool I use every day. Yesterday, it was discovered that Anthropic accidentally included the source code for Claude Code.&lt;/p&gt;
&lt;p&gt;It&apos;s important to note, this is only the specific source code for Claude Code, the coding assistant that Anthropic have, primarily used in the terminal.  This is not the source of the actual AI model itself or the Claude app.&lt;/p&gt;
&lt;p&gt;Here&apos;s what actually happened, what people found inside, and why I think this is mostly just an embarrassing mistake rather than the catastrophic event some are making it out to be.&lt;/p&gt;
&lt;h2&gt;What Happened&lt;/h2&gt;
&lt;p&gt;On March 31st, security researcher Chaofan Shou discovered that a recent npm release of Claude Code included a source map file. For the non-developers: when code gets packaged up for distribution, it gets compressed and minified into something that&apos;s basically unreadable to humans. It still works fine, but if you opened it up and tried to make sense of it, you&apos;d just see a wall of characters. A source map is a separate file that reverses that process. It maps the compressed code back to the original, readable source. Developers keep these around for debugging, but they&apos;re meant to stay internal. You don&apos;t publish them to the world.&lt;/p&gt;
&lt;p&gt;Anthropic accidentally shipped one to the public.&lt;/p&gt;
&lt;p&gt;The result was roughly 1,900 TypeScript files and over 500,000 lines of readable code, essentially the entire Claude Code codebase, sitting right there in the npm package for anyone to extract. Researchers found it, the code spread quickly across GitHub, and by the time Anthropic pulled the release and started issuing DMCA takedowns, the cat was thoroughly out of the bag.&lt;/p&gt;
&lt;h2&gt;How Does This Happen?&lt;/h2&gt;
&lt;p&gt;This is actually a pretty common class of mistake. npm packages are defined by a &lt;code&gt;package.json&lt;/code&gt; file that specifies what gets included when you publish. A misconfigured &lt;code&gt;.npmignore&lt;/code&gt; file or a missing exclusion in the &lt;code&gt;files&lt;/code&gt; field, and suddenly your source maps, internal docs, or test fixtures are shipping to production.&lt;/p&gt;
&lt;p&gt;The leading theory is that someone on the team enabled richer source maps to debug some rate-limiting issues they were having, and then forgot to exclude them before the next publish.&lt;/p&gt;
&lt;p&gt;Anthropic confirmed as much in a statement to the press:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Earlier today, a Claude Code release included some internal source code. No sensitive customer data or credentials were involved or exposed. This was a release packaging issue caused by human error, not a security breach. We&apos;re rolling out measures to prevent this from happening again.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It was a build pipeline oversight. The kind of thing that can happen to any team, and has happened to plenty of others.&lt;/p&gt;
&lt;h2&gt;What&apos;s Inside&lt;/h2&gt;
&lt;p&gt;This is where it gets interesting. The leaked code reveals that Claude Code is a genuinely sophisticated piece of software, not just a thin wrapper around an API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The architecture&lt;/strong&gt; is built on Bun (not Node.js), uses React with Ink for terminal UI rendering, and has a modular tool-based system with around 40 built-in tools, each with its own permission gates. The query engine alone, which handles all the LLM API calls, streaming, caching, and orchestration, is reportedly around 46,000 lines.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Multi-agent orchestration&lt;/strong&gt; is a big part of it. Claude Code can spawn sub-agents (internally called &quot;swarms&quot;) to handle complex tasks in parallel, each running in its own context with specific tool permissions. If you&apos;ve used the Agent tool in Claude Code, you&apos;ve seen this in action.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;There&apos;s a persistent memory system&lt;/strong&gt;, which I&apos;ve &lt;a href=&quot;https://barnes.tech/blog/how-i-use-claude-code-every-day/&quot;&gt;talked about before&lt;/a&gt;, stored as files that maintain context about you and your projects across sessions. Seeing the implementation details confirms what the experience already suggested: this is one of the features that makes Claude Code actually useful rather than just clever.&lt;/p&gt;
&lt;h3&gt;The Most Interesting Stuff&lt;/h3&gt;
&lt;p&gt;Beyond the architecture, the leak exposed some features and behaviors that raised eyebrows.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anti-distillation tricks.&lt;/strong&gt; The code includes mechanisms designed to poison the output if someone tries to train another model on Claude&apos;s responses. Essentially, fake tool descriptions and misleading instructions get baked into the output in ways that would confuse a model trying to learn from it. This is Anthropic&apos;s attempt to protect against competitors scraping Claude&apos;s behavior to train cheaper models. Now that the actual tool list and real instructions are visible, this defense is somewhat undermined.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Undercover mode.&lt;/strong&gt; There&apos;s a flag that instructs Claude not to mention itself, its model name, or Anthropic in commit messages or outputs. The stated purpose is to avoid leaking internal model codenames, but it also raised concerns about AI-generated code being quietly contributed to open source projects without disclosure. I can see both sides of this. If you&apos;re an Anthropic engineer using Claude Code to help with a commit to a public repo, you probably don&apos;t want &quot;Claude Opus 4.7&quot; in the commit metadata. But the optics aren&apos;t great.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A frustration detector.&lt;/strong&gt; A regex-based system that scans user input for angry or profane language and logs events. This is pretty straightforward pattern matching, not some deep emotional intelligence system.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Unreleased features.&lt;/strong&gt; The code references a bunch of stuff that hasn&apos;t shipped yet: &quot;dream mode&quot; for background memory consolidation, &quot;coordinator mode&quot; for spinning up multiple workers in parallel, &quot;ultra plan&quot; and &quot;ultra review&quot; for long-running remote operations, auto/AFK modes that act while you&apos;re away, and references to unreleased models including something codenamed Capiara/Mythos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Feature flags everywhere.&lt;/strong&gt; The code uses tons of feature flagging, which is pretty standard, but the sheer number of flags and environment variables suggests this codebase moves fast and experiments constantly.&lt;/p&gt;
&lt;h2&gt;Why It&apos;s Not a Huge Deal&lt;/h2&gt;
&lt;p&gt;Here&apos;s where I&apos;ll probably diverge from some of the more dramatic coverage. I don&apos;t think this is actually that significant in terms of real damage.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The model is the product, not the harness.&lt;/strong&gt; Claude Code is an impressive piece of engineering, but it&apos;s ultimately orchestration software that makes API calls to Claude. The actual intelligence, the thing that makes it useful, lives in the model weights on Anthropic&apos;s servers. Those weren&apos;t leaked. A competitor could rebuild the entire Claude Code CLI from scratch using the leaked source and it would still need access to Claude&apos;s API (or another model&apos;s) to do anything.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Most of this was already knowable.&lt;/strong&gt; If you&apos;ve used Claude Code extensively, you already knew about the tool system, the memory architecture, the sub-agent spawning, and the permission gates. The leaked code confirms implementation details, but the overall architecture wasn&apos;t exactly a mystery. Anthropic&apos;s own documentation describes most of these systems.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The &quot;competitive advantage&quot; argument is overstated.&lt;/strong&gt; Yes, competitors can now see exactly how Anthropic implemented certain features. But the open-source AI coding tool space is already vibrant and moving fast. Tools like Aider, OpenCode, and others have independently arrived at similar architectures. The ideas aren&apos;t secret; the execution quality and the model behind it are what matter.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Anti-distillation being exposed is annoying, not devastating.&lt;/strong&gt; The poison-pill approach was always security through obscurity. Now that it&apos;s visible, Anthropic will need to adjust their approach, but this was never going to be a long-term defense anyway. This is a cat and mouse game that will continue regardless.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The unreleased features are just a product roadmap.&lt;/strong&gt; Every software company has unreleased features sitting in their codebase. Knowing that Anthropic is working on background agents and parallel worker coordination is interesting but not exactly surprising given the direction the entire industry is heading.&lt;/p&gt;
&lt;h2&gt;Embarrassing&lt;/h2&gt;
&lt;p&gt;The real impact here is reputational. Anthropic positions themselves as the &quot;safety-first&quot; AI company, the adults in the room. Having their flagship developer tool leak because of a build configuration mistake is... not a great look for that brand.&lt;/p&gt;
&lt;h2&gt;The Takeaway&lt;/h2&gt;
&lt;p&gt;A source map file shipped in an npm package. It happens. The code it exposed is impressive engineering but not the secret sauce that makes Claude useful. The unreleased features are interesting but not shocking. The anti-distillation tricks and undercover mode are worth discussing but not scandalous.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://dev.to/gabrielanhaia/claude-codes-entire-source-code-was-just-leaked-via-npm-source-maps-heres-whats-inside-cjo&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://dev.to/gabrielanhaia/claude-codes-entire-source-code-was-just-leaked-via-npm-source-maps-heres-whats-inside-cjo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/overview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://docs.anthropic.com/en/docs/claude-code/overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/how-i-use-claude-code-every-day/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/how-i-use-claude-code-every-day/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Government Is Trying to Destroy Anthropic</title><link>https://barnes.tech/blog/the-government-is-trying-to-destroy-anthropic</link><guid isPermaLink="true">https://barnes.tech/blog/the-government-is-trying-to-destroy-anthropic</guid><description>The Pentagon designated Anthropic a supply chain risk -- a label for foreign adversaries -- for refusing to build unsupervised killbots.</description><pubDate>Tue, 03 Mar 2026 01:22:05 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Anthropic logo - Slate.svg&quot; alt=&quot;Anthropic logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I try not to post about politics very often. The state of things is genuinely terrible, and dwelling on it is bad for my mental health. But this story sits squarely at the intersection of AI, big tech, and government overreach -- topics I write about often -- and I think it&apos;s important enough to talk about.&lt;/p&gt;
&lt;p&gt;Full disclosure: I use Anthropic&apos;s products every day. Claude Code is &lt;a href=&quot;/blog/how-i-use-claude-code-every-day/&quot;&gt;my most-used tool&lt;/a&gt;. I have every reason to be biased here. But the facts of this situation are so outrageous that bias barely matters. What the Pentagon just did to Anthropic should alarm anyone who cares about free enterprise, the rule of law, or the basic idea that the government shouldn&apos;t be able to destroy an American company because it lost a contract negotiation.&lt;/p&gt;
&lt;h2&gt;What Happened&lt;/h2&gt;
&lt;p&gt;Last summer, Anthropic was one of four AI companies -- alongside Google, OpenAI, and xAI -- awarded contracts with the Pentagon worth up to $200 million each. Anthropic&apos;s contract included their standard usage policy, which the Pentagon agreed to at the time.&lt;/p&gt;
&lt;p&gt;In January, Defense Secretary Pete Hegseth issued an AI strategy memo directing that all Pentagon AI contracts include &quot;any lawful use&quot; language -- meaning AI companies must remove all safeguards and let the military use their models for anything not explicitly illegal. This was a direct collision with Anthropic&apos;s contract terms.&lt;/p&gt;
&lt;p&gt;Anthropic didn&apos;t refuse to work with the military. They were the first AI company to deploy on classified military networks. They were the first to deploy at the national labs. Claude was used in the operation that captured former Venezuelan president Nicolás Maduro. They have an extensive partnership with Palantir. They voluntarily cut off hundreds of millions in revenue from Chinese firms linked to the CCP.&lt;/p&gt;
&lt;p&gt;Anthropic drew exactly two red lines:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;No mass domestic surveillance.&lt;/strong&gt; Using AI to surveil American citizens at scale.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No fully autonomous weapons.&lt;/strong&gt; AI systems that select and engage targets without any human in the loop.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;That&apos;s it. Not &quot;we won&apos;t work with the military.&quot; Not &quot;we object to military operations.&quot; Two specific guardrails on capabilities that don&apos;t even exist reliably yet and that most Americans would consider common sense.&lt;/p&gt;
&lt;p&gt;The Pentagon&apos;s response was to demand Anthropic accept the new terms unconditionally by Friday evening or face consequences.&lt;/p&gt;
&lt;h2&gt;The Punishment&lt;/h2&gt;
&lt;p&gt;When Anthropic held their ground, the administration escalated to something unprecedented. Trump called them &quot;Leftwing nut jobs&quot; on social media and directed federal agencies to stop using their products. Hegseth designated Anthropic a &lt;strong&gt;supply chain risk&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;This designation has never been used against an American company. It was created to deal with foreign adversaries like Huawei -- companies suspected of espionage or embedding malware in American infrastructure. Using it as a cudgel against a domestic company because you don&apos;t like how contract negotiations are going is, as Scott Alexander put it, &quot;insane Third World bullshit.&quot;&lt;/p&gt;
&lt;p&gt;The designation doesn&apos;t just cut Anthropic off from military contracts. It bans any contractor, supplier, or partner that does business with the US military from doing any commercial activity with Anthropic. Given how many companies do some business with the government, this could be fatal to Anthropic&apos;s business. That&apos;s the point. It&apos;s not a policy disagreement. It&apos;s punishment.&lt;/p&gt;
&lt;p&gt;And the whole thing is self-contradicting. You can&apos;t simultaneously designate a company a supply chain risk &lt;em&gt;and&lt;/em&gt; threaten to invoke the Defense Production Act to force them to provide their technology because it&apos;s essential to national security. As &lt;a href=&quot;https://www.lawfaremedia.org/article/what-the-defense-production-act-can-and-can&amp;#x27;t-do-to-anthropic&quot;&gt;Lawfare noted&lt;/a&gt;, these two threats are inherently contradictory: one labels Anthropic a security risk, the other labels Claude as critical to national defense. &lt;a href=&quot;https://www.lawfaremedia.org/article/pentagon&amp;#x27;s-anthropic-designation-won&amp;#x27;t-survive-first-contact-with-legal-system&quot;&gt;Lawfare&apos;s follow-up analysis&lt;/a&gt; called it &quot;designation as political theater: a show of force that will not stick.&quot;&lt;/p&gt;
&lt;h2&gt;The Broader Context&lt;/h2&gt;
&lt;p&gt;This isn&apos;t just about Anthropic. This is the US government demonstrating that it can threaten to destroy any American company, with no legal review, for failing to comply with demands that weren&apos;t even in the original contract. Every company that does business with the government should be concerned.&lt;/p&gt;
&lt;p&gt;As former Trump White House AI advisor Dean Ball &lt;a href=&quot;https://www.hyperdimensional.co/p/clawed&quot;&gt;wrote&lt;/a&gt;: &quot;Even if Secretary Hegseth backs down and narrows his extremely broad threat against Anthropic, great damage has been done. Most corporations, political actors, and others will have to operate under the assumption that the logic of the tribe will now reign.&quot;&lt;/p&gt;
&lt;p&gt;The Defense Production Act was designed for wartime rationing of steel and aluminum, not for forcing a software company to retrain its AI model to enable mass surveillance. The DPA has never been used to mark a domestic company as a supply chain threat. Criminal penalties apply for noncompliance. The government is wielding a Korean War-era statute to bully a company that had the audacity to include guardrails in a contract that the Pentagon originally agreed to.&lt;/p&gt;
&lt;p&gt;And the irony is suffocating. When Biden used the DPA&apos;s &lt;em&gt;lightest&lt;/em&gt; authority -- Title VII, information gathering only -- to require AI companies to report on training activities, Republicans called it dangerous overreach. Trump promised to repeal it. Now they&apos;re threatening Title I compulsion powers, which are orders of magnitude more coercive, against a company that won&apos;t let them build unsupervised killbots. The party of free markets and limited government, everyone.&lt;/p&gt;
&lt;h2&gt;OpenAI Swoops In&lt;/h2&gt;
&lt;p&gt;The same day Hegseth designated Anthropic a supply chain risk, Sam Altman announced that OpenAI had reached a deal with the Pentagon. He claimed it includes &quot;technical safeguards&quot; addressing the same issues -- prohibitions on mass surveillance and human responsibility for use of force. Whether these protections have any real teeth remains to be seen, and I&apos;m skeptical that OpenAI somehow got the exact terms that Anthropic asked for and somehow the Pentagon is fine with it now.&lt;/p&gt;
&lt;p&gt;Over 640 Google employees and nearly 100 OpenAI employees signed an &lt;a href=&quot;https://notdivided.org/&quot;&gt;open letter&lt;/a&gt; asking their companies to stand with Anthropic and refuse the Pentagon&apos;s demands. The letter makes the point that the government was trying to divide the companies with fear that the others would cave. Credit to those employees for standing up.&lt;/p&gt;
&lt;h2&gt;Why This Matters&lt;/h2&gt;
&lt;p&gt;Anthropic is the company that has most consistently prioritized safety in AI development. You can argue they&apos;re imperfect, that they&apos;re too cautious, that their models are annoying sometimes. But they are the only major AI lab that drew a line in the sand and held it when the most powerful institution on Earth threatened to destroy them for it.&lt;/p&gt;
&lt;p&gt;Dario Amodei &lt;a href=&quot;https://youtu.be/MPTNHrq_4LU&quot;&gt;said it plainly in his CBS interview&lt;/a&gt;: the supply chain risk designation is &quot;retaliatory and punitive,&quot; and Anthropic drew these red lines because &quot;we believe that crossing those lines is contrary to American values, and we wanted to stand up for American values.&quot;&lt;/p&gt;
&lt;p&gt;He&apos;s right. And the fact that standing up for the idea that maybe the government shouldn&apos;t conduct mass AI surveillance on its own citizens, or deploy autonomous weapons without human oversight, can get your company destroyed -- that tells you everything you need to know about the people making these demands.&lt;/p&gt;
&lt;p&gt;Anthropic says they&apos;ll challenge the designation in court. Based on &lt;a href=&quot;https://www.lawfaremedia.org/article/pentagon&amp;#x27;s-anthropic-designation-won&amp;#x27;t-survive-first-contact-with-legal-system&quot;&gt;Lawfare&apos;s legal analysis&lt;/a&gt;, they&apos;ll likely win. But the damage in the interim is real, and the chilling effect on every other company is exactly what this administration wants.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.bbc.com/news/articles/cjrq1vwe73po&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.bbc.com/news/articles/cjrq1vwe73po&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.anthropic.com/news/statement-department-of-war&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.anthropic.com/news/statement-department-of-war&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://notdivided.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://notdivided.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.astralcodexten.com/p/the-pentagon-threatens-anthropic&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.astralcodexten.com/p/the-pentagon-threatens-anthropic&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.lawfaremedia.org/article/what-the-defense-production-act-can-and-can&apos;t-do-to-anthropic&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.lawfaremedia.org/article/what-the-defense-production-act-can-and-can&apos;t-do-to-anthropic&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2026/02/28/openais-sam-altman-announces-pentagon-deal-with-technical-safeguards/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2026/02/28/openais-sam-altman-announces-pentagon-deal-with-technical-safeguards/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Managing Home Assistant with Claude Code</title><link>https://barnes.tech/blog/managing-home-assistant-with-claude-code</link><guid isPermaLink="true">https://barnes.tech/blog/managing-home-assistant-with-claude-code</guid><description>How I use Claude Code to manage Home Assistant over SSH — editing automations, dashboards, and device configs through conversation.</description><pubDate>Sun, 15 Feb 2026 23:30:05 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/claude-code-wordmark-light-mode.svg&quot; alt=&quot;Claude Code logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;ve written about &lt;a href=&quot;/blog/how-i-use-claude-code-every-day/&quot;&gt;how I use Claude Code&lt;/a&gt; and about &lt;a href=&quot;/blog/home-assistant/&quot;&gt;Home Assistant&lt;/a&gt; separately. This post is about what happens when you combine them. Home Assistant is powerful, but managing it can be tedious. Dashboard layouts are deeply nested JSON. Automations require getting YAML syntax exactly right. Renaming a device means editing an internal registry. None of it is too hard — it&apos;s just fiddly and time-consuming. Claude Code turns these tasks into conversations.&lt;/p&gt;
&lt;h2&gt;How It Connects&lt;/h2&gt;
&lt;p&gt;The Home Assistant Green runs an SSH add-on with key-based authentication. The SSH key lives in &lt;a href=&quot;https://1password.com/&quot;&gt;1Password&lt;/a&gt;, and macOS is configured to use the 1Password SSH agent globally. That means Claude Code can run &lt;code&gt;ssh homeassistant &quot;cat /config/automations.yaml&quot;&lt;/code&gt; and it just works — 1Password handles the key at connection time, confirming with touchID, no passwords or key files sitting on disk.&lt;/p&gt;
&lt;p&gt;The local project directory has a CLAUDE.md that tells Claude Code everything about the HA environment — the SSH hostname, key file paths on the HA instance, dashboard file-to-name mappings, entity IDs, coordinator details, and general notes about the setup. There&apos;s also an inventory file listing every integration, device, area, automation, and custom component installed. This means Claude Code starts every session already knowing the full environment without having to discover anything.&lt;/p&gt;
&lt;h2&gt;What It Does&lt;/h2&gt;
&lt;h3&gt;Automations and Scripts&lt;/h3&gt;
&lt;p&gt;Claude Code SSHs into Home Assistant and reads configuration files directly. For automations, it can read &lt;code&gt;automations.yaml&lt;/code&gt;, explain what each one does, add new automations with correct YAML syntax, or modify triggers, conditions, and actions on existing ones.&lt;/p&gt;
&lt;p&gt;The real value shows up with complex tasks. When I wanted to set up appliance monitoring for my washing machine using a community blueprint, Claude Code read the blueprint YAML to understand all of its input options, found the correct entity IDs for the power-monitoring plug, identified my mobile device ID for notifications, and wrote a complete automation entry with power thresholds, debounce settings, notification messages, and status tracking. Then it created the input helper for the dashboard and restarted HA to apply everything. That whole process would have taken me a while to do manually — figuring out the blueprint&apos;s input schema alone is tedious.&lt;/p&gt;
&lt;h3&gt;Dashboard Editing&lt;/h3&gt;
&lt;p&gt;Home Assistant dashboards are stored as JSON in &lt;code&gt;/config/.storage/&lt;/code&gt;. Claude Code downloads the JSON over SSH, parses it, makes changes, and uploads the result. This is where it saves the most time. Adding a conditional badge that only appears when the washing machine is running, setting up dynamic weather icons that change based on conditions, or configuring Mushroom cards with the right entity IDs and display properties — all of this involves deeply nested JSON that&apos;s painful to hand-edit.&lt;/p&gt;
&lt;p&gt;The workflow is: read the file over SSH, pipe through &lt;code&gt;python3&lt;/code&gt; locally for JSON manipulation (HA OS doesn&apos;t have python3 installed), then write the result back. Claude Code handles this entire pipeline.&lt;/p&gt;
&lt;h3&gt;Device Management&lt;/h3&gt;
&lt;p&gt;Some changes require editing Home Assistant&apos;s internal &lt;code&gt;.storage&lt;/code&gt; files directly. When I repurposed a smart plug from a Christmas tree to the washing machine, Claude Code found all entities associated with the device in the entity registry, stopped HA core (so the registry wouldn&apos;t get overwritten on shutdown), renamed all the entity IDs and unique IDs, uploaded the modified registry, and started HA core back up. Doing that manually means finding the right JSON file, understanding the data structure, making changes without breaking anything, and getting the stop/edit/start sequence right.&lt;/p&gt;
&lt;h3&gt;Troubleshooting&lt;/h3&gt;
&lt;p&gt;This might be where Claude Code adds the most value. Home Assistant problems can be genuinely hard to diagnose. An automation that stopped firing, a device that shows unavailable intermittently, an entity that&apos;s returning stale data — these issues often involve tracing through multiple files, checking logs, cross-referencing entity IDs, and understanding how different parts of the system interact. That&apos;s exactly the kind of tedious, detail-heavy investigation that Claude Code is good at.&lt;/p&gt;
&lt;p&gt;It can pull the HA logs over SSH, read the relevant automation or integration config, check the entity registry for mismatches, and piece together what&apos;s going wrong — all in one conversation. Problems that would take me 20 minutes of jumping between files and docs often get resolved in a couple of exchanges.&lt;/p&gt;
&lt;h3&gt;HA Core Lifecycle&lt;/h3&gt;
&lt;p&gt;Claude Code can restart or reload Home Assistant through the Supervisor API over SSH. The Supervisor token is an environment variable injected into the SSH add-on container at runtime — it&apos;s never stored locally or included in any config files. Claude Code references it by variable name in SSH commands, so the actual token value is resolved on the HA side.&lt;/p&gt;
&lt;h2&gt;A Word of Caution&lt;/h2&gt;
&lt;p&gt;I want to be clear: giving an AI tool SSH access to a system that controls your home is something you should think carefully about before doing. Home Assistant manages locks, cameras, alarms, and other things with real physical consequences. If you&apos;re going to experiment with this, do it deliberately and with guardrails.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Don&apos;t give it more access than it needs.&lt;/strong&gt; Scope SSH access to the HA config container, not a general-purpose shell. Don&apos;t hand it admin credentials to your router, your NAS, or anything else on the network.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Never store credentials in the project or with Claude Code.&lt;/strong&gt; No API tokens in CLAUDE.md. No passwords in config files. No SSH keys on disk. Use an agent like 1Password&apos;s SSH agent so the key material is never exposed. If Claude Code needs to reference a token, it should be by environment variable name, resolved on the remote side — never as a literal value in a command.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Be aware of prompt injection.&lt;/strong&gt; If Claude Code reads content from external sources — log files, API responses, community forum posts, or anything user-generated — that content could theoretically contain instructions that try to manipulate its behavior. Review what it&apos;s about to execute before approving, especially after it&apos;s ingested content from sources you don&apos;t fully control.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Keep the approval prompts on.&lt;/strong&gt; It&apos;s tempting to auto-approve everything for speed, but for SSH commands against a live system, you should be reviewing each one. The few seconds it takes to read a command before hitting enter is the difference between a safe workflow and a mistake that locks you out of your house.&lt;/p&gt;
&lt;p&gt;With all that said, here&apos;s how I keep it safe in practice.&lt;/p&gt;
&lt;h2&gt;How I Keep It Safe&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Every command requires approval.&lt;/strong&gt; Claude Code doesn&apos;t silently execute anything. Every SSH call, file write, or shell command is presented in the terminal before it runs. You see the full command and approve or deny each one. You can also configure permission levels to auto-approve reads while always prompting for writes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No credentials on disk.&lt;/strong&gt; The SSH key lives exclusively in 1Password. The 1Password SSH agent brokers authentication at connection time — there&apos;s no key file for anything to leak. If the vault is locked, SSH fails. Claude Code never sees the private key material.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;No stored API tokens.&lt;/strong&gt; The Supervisor token is a runtime environment variable in the SSH container. It&apos;s never written to a file, never included in CLAUDE.md, and never stored locally.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Read-before-write.&lt;/strong&gt; Claude Code reads existing files before modifying them. It doesn&apos;t generate a new &lt;code&gt;automations.yaml&lt;/code&gt; from scratch — it reads the current one, understands what&apos;s there, and appends or modifies only what&apos;s needed. Existing automations, formatting, and comments are preserved.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;HA validates on restart.&lt;/strong&gt; If Claude Code writes malformed YAML, Home Assistant will log the error and either skip the invalid entry or refuse to start with a clear message. It won&apos;t silently apply broken configuration. And HA&apos;s built-in backup system captures the entire &lt;code&gt;/config/&lt;/code&gt; directory automatically, so restoring from a mistake is straightforward.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Scoped access.&lt;/strong&gt; The SSH connection lands in the HA OS container, which is sandboxed. It has access to &lt;code&gt;/config/&lt;/code&gt; and the Supervisor API, but it&apos;s not a general-purpose Linux box. There&apos;s no package manager, no way to install software, and no access to the host OS.&lt;/p&gt;
&lt;h2&gt;Lessons Learned&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;HA OS is minimal.&lt;/strong&gt; There&apos;s no &lt;code&gt;python3&lt;/code&gt;, no &lt;code&gt;jq&lt;/code&gt;, no package manager on the HA instance. Any JSON or YAML processing has to happen locally by piping SSH output through local tools.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Entity registry timing matters.&lt;/strong&gt; HA writes its internal registries to disk on shutdown. If you edit a registry file and then restart HA, the shutdown phase overwrites your changes with the in-memory state. The fix is to stop HA first (so it writes current state), edit the file, then start HA (so it reads the modified version).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blueprint inputs aren&apos;t obvious.&lt;/strong&gt; Blueprints can have dozens of inputs with specific expected values — like a literal string &lt;code&gt;&quot;enable_start_notify_options&quot;&lt;/code&gt; rather than &lt;code&gt;true&lt;/code&gt;. Claude Code reads the full blueprint YAML to discover correct input names, types, and selector configurations rather than guessing.&lt;/p&gt;
&lt;h2&gt;The Pattern&lt;/h2&gt;
&lt;p&gt;The common thread is that Claude Code handles the mechanical parts — SSH connections, file parsing, YAML syntax, JSON manipulation, API calls, restart sequences — while I describe what I want in plain language. The CLAUDE.md gives it the environment context, the inventory file gives it the device knowledge, and the approval system keeps me in control of what actually executes. It&apos;s the same pattern I described in the &lt;a href=&quot;/blog/how-i-use-claude-code-every-day/&quot;&gt;Claude Code post&lt;/a&gt;, just applied to home automation instead of software development.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/overview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://docs.anthropic.com/en/docs/claude-code/overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://1password.com/developer/ssh&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://1password.com/developer/ssh&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>How I Use Home Assistant</title><link>https://barnes.tech/blog/how-i-use-home-assistant</link><guid isPermaLink="true">https://barnes.tech/blog/how-i-use-home-assistant</guid><description>A look at how I actually use Home Assistant day to day — automations, presence detection, dashboards, and monitoring.</description><pubDate>Sun, 15 Feb 2026 23:17:22 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/home-assistant.svg&quot; alt=&quot;Home Assistant Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I wrote a &lt;a href=&quot;/blog/home-assistant/&quot;&gt;general overview of Home Assistant&lt;/a&gt; recently, but I wanted to follow up with how I actually use it. Home Assistant can do a staggering amount of things, and it&apos;s easy to get overwhelmed when you first look at it. This post covers the things I use most and find most useful, explained for someone who might not be familiar with the platform yet.&lt;/p&gt;
&lt;h2&gt;Lighting Automations&lt;/h2&gt;
&lt;p&gt;This is the first thing most people set up, and for good reason — it&apos;s immediately useful and easy to understand.&lt;/p&gt;
&lt;p&gt;My front porch lights and outdoor plugs turn on automatically an hour before sunset and off 30 minutes after sunrise. I never think about it. Seasonal changes are handled automatically because Home Assistant knows the exact sunrise and sunset times for my location every day.&lt;/p&gt;
&lt;p&gt;I have arrival lighting that turns on the living room lights when someone comes home. It uses multiple triggers — the thermostat switching out of eco mode, a phone entering the home zone, or a Wi-Fi connection being detected — and only fires during daytime hours. There&apos;s a toggle in the dashboard to disable it if I don&apos;t want it for a while.&lt;/p&gt;
&lt;p&gt;There&apos;s also a vacation mode that simulates occupancy by turning lights on and off at natural times. Bedroom lights come on at 10 PM with a warm dim setting and turn off at 8 AM on weekdays. A scheduled lamp flips on at 5 PM and off at 11 PM. None of this requires me to do anything once it&apos;s set up.&lt;/p&gt;
&lt;h2&gt;Washing Machine Notifications&lt;/h2&gt;
&lt;p&gt;I have a power-monitoring smart plug on the washing machine. Home Assistant watches the power draw — when it goes above 10 watts, it knows a cycle started, and when it drops below 5 watts and stays there, it knows the cycle is done. It sends a push notification to my phone when the wash starts and a time-sensitive notification when it finishes.&lt;/p&gt;
&lt;p&gt;The trick is debouncing. Wash cycles have periods where the drum stops briefly between stages, and power draw drops temporarily. The automation uses dead zones and repeat checks to avoid false positives. It works really well. I also track the status ( Washing / Finished) with a dropdown helper so it shows up as a badge on the dashboard while it is washing, then disappears when it has finished.&lt;/p&gt;
&lt;h2&gt;Presence Detection&lt;/h2&gt;
&lt;p&gt;I have &lt;a href=&quot;https://esphome.io/&quot;&gt;ESPHome&lt;/a&gt; presence sensors placed around the house. These are small BLE (Bluetooth Low Energy) devices that detect how close my phone is to each one. Combined with Bermuda BLE Trilateration, Home Assistant can triangulate my position and know which room I&apos;m in — not just whether I&apos;m home or away. That opens up automations that aren&apos;t possible with simple presence detection, like adjusting climate or lighting based on where in the house I actually am.&lt;/p&gt;
&lt;p&gt;ESPHome is worth calling out specifically. It&apos;s a framework for building custom smart home sensors using cheap microcontrollers. You define what the device does in a YAML config file, flash the firmware, and it integrates directly with Home Assistant over your local network. The presence sensors, an air quality monitor I have in my server closet, and Bluetooth proxies are all ESPHome devices. It&apos;s one of the more powerful parts of the ecosystem once you start using it.&lt;/p&gt;
&lt;h2&gt;Water Leak Detection&lt;/h2&gt;
&lt;p&gt;I have three IKEA water leak sensors placed near the washing machine, water heater, and under the kitchen sink. They connect via Matter over Thread, so they&apos;re fast, low-power, and communicate locally without needing the internet. If any of them detect water, I get an immediate critical push notification to my phone with the alert sound. Once all sensors have been dry for 15 minutes, I get an all-clear notification.&lt;/p&gt;
&lt;p&gt;This is the kind of thing you set up and hope never fires, but when it does, the early warning can save you thousands of dollars in water damage. The sensors cost about $10 each and since they run on Thread, they work even if your internet is down.&lt;/p&gt;
&lt;h2&gt;Dashboards&lt;/h2&gt;
&lt;p&gt;Home Assistant dashboards are fully customizable, and I&apos;ve built a mobile dashboard that I use constantly. The main view has badges across the top showing the current time, weather conditions, air quality index (color-coded by severity), sunrise/sunset times, front door lock status, package delivery count, and the status of things like the washing machine and 3D printer.&lt;/p&gt;
&lt;p&gt;The main section has quick toggles for all lights and switches, media player controls, and network stats. I use conditional visibility heavily — the NAS health stats only appear when CPU or memory usage is elevated, media players only show when something is actively playing, and weather alerts only appear when there&apos;s actually something to alert about. This keeps the dashboard clean instead of overwhelming.&lt;/p&gt;
&lt;p&gt;There are dedicated views for cameras (live WebRTC streams from doorbell, indoor, and outdoor cameras), weather details, media controls across all rooms, 3D printer monitoring, and package tracking.&lt;/p&gt;
&lt;p&gt;The custom frontend cards from the community make a big difference here. Mushroom cards give everything a clean, modern look. Mini Media Player provides compact audio controls. Auto Entities dynamically filters and displays things like battery levels across all devices. None of these come built in, but they&apos;re easy to install through HACS (the Home Assistant Community Store).&lt;/p&gt;
&lt;h2&gt;Infrastructure Monitoring&lt;/h2&gt;
&lt;p&gt;This one is more niche, but I find it useful. My Synology NAS shows up in Home Assistant with CPU usage, memory, temperature, drive health, and network throughput. I have an ESPHome-based AirGradient sensor in the server closet monitoring PM2.5, temperature, and humidity. NextDNS stats show up as well — total queries, blocked queries, and block ratio.&lt;/p&gt;
&lt;p&gt;Having all of this in one place alongside the rest of the smart home data means I don&apos;t need to open separate apps to check on infrastructure. If the NAS is running hot or the server closet humidity spikes, I&apos;ll see it on the same dashboard where I check the weather.&lt;/p&gt;
&lt;h2&gt;Everything Else&lt;/h2&gt;
&lt;p&gt;There&apos;s a lot more I haven&apos;t covered — Sonos multi-room audio controls, Nest camera integration via a Starling Home Hub for local access, Rachio sprinkler control, package tracking through Parcel, PlayStation and Xbox profile monitoring for the family, Bambu Lab 3D printer status with filament and temperature tracking, and a Bird Buddy smart bird feeder that identifies bird species. Home Assistant is the kind of platform where you keep finding new things to connect to it.&lt;/p&gt;
&lt;p&gt;The common thread across all of this is that it&apos;s one app, one dashboard, running locally, and I control all of it. No subscriptions required for the core functionality, no reliance on someone else&apos;s servers, and it gets better every month with community updates. If any of this sounds interesting, the &lt;a href=&quot;/blog/home-assistant/&quot;&gt;first post&lt;/a&gt; covers what Home Assistant is and how to get started.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://esphome.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://esphome.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://hacs.xyz/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://hacs.xyz/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/integrations/zha/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/integrations/zha/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/apps&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/apps&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Home Assistant</title><link>https://barnes.tech/blog/home-assistant</link><guid isPermaLink="true">https://barnes.tech/blog/home-assistant</guid><description>What Home Assistant is, why it has such a loyal following, and why the Home Assistant Green is the best way to run it.</description><pubDate>Sun, 15 Feb 2026 22:50:58 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/home-assistant.svg&quot; alt=&quot;Home Assistant Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;ve written before about my &lt;a href=&quot;/blog/homepod/&quot;&gt;frustrations with HomePods&lt;/a&gt; and how Google &lt;a href=&quot;/blog/google-home-plus-gemini/&quot;&gt;completely squandered Nest&lt;/a&gt;. The common thread is that when you depend on a big tech company for your smart home, you&apos;re at their mercy. They can kill products, raise subscription prices, remove features, or just let the software rot. &lt;a href=&quot;https://www.home-assistant.io/&quot;&gt;Home Assistant&lt;/a&gt; is the answer to all of that.&lt;/p&gt;
&lt;h2&gt;What Is Home Assistant&lt;/h2&gt;
&lt;p&gt;Home Assistant is open source home automation software that runs locally on your network. It integrates with over 3,400 different devices and services — Zigbee, Z-Wave, Matter, Thread, Bluetooth, Wi-Fi, and pretty much every major smart home brand you&apos;ve heard of. Philips Hue, IKEA, Sonos, Shelly, Lutron, and hundreds more. It all gets unified into a single app with a single dashboard.&lt;/p&gt;
&lt;p&gt;The key differentiator is that everything runs locally. Your data stays on your network. Your automations don&apos;t depend on someone else&apos;s cloud server being up. If your internet goes down, your smart home still works. That alone makes it fundamentally different from Google Home, Alexa, or HomeKit, which are all dependent on cloud services to varying degrees. But it&apos;s not just about independence from cloud providers — local control also means everything is noticeably faster. Lights respond instantly. Automations trigger without the round trip to a server halfway across the country. Once you experience the speed difference, going back to cloud-dependent smart home controls feels sluggish.&lt;/p&gt;
&lt;p&gt;The one thing people worry about with local-only is remote access. &lt;a href=&quot;/blog/tailscale-home-assistant/&quot;&gt;Tailscale&lt;/a&gt; solves that completely. It connects you to your home network from anywhere as if you were on your couch, without exposing anything to the public internet. I&apos;ve written about &lt;a href=&quot;/blog/tailscale-home-assistant/&quot;&gt;how well it works with Home Assistant&lt;/a&gt; before — it&apos;s a great combo.&lt;/p&gt;
&lt;p&gt;It&apos;s also run by the &lt;a href=&quot;https://www.openhomefoundation.org/&quot;&gt;Open Home Foundation&lt;/a&gt;, a nonprofit. It can&apos;t be sold or acquired. That matters more than people realize when you&apos;re building infrastructure for your home that you want to last.&lt;/p&gt;
&lt;h2&gt;Why People Love It&lt;/h2&gt;
&lt;p&gt;The community is enormous. Home Assistant was the &lt;a href=&quot;https://github.blog/news-insights/octoverse/octoverse-a-new-developer-joins-github-every-second-as-ai-leads-typescript-to-1/#the-top-open-source-projects-by-contributors&quot;&gt;top open source project by contributors in 2025&lt;/a&gt; on GitHub. It gets meaningful updates every single month — new integrations, new dashboard features, better automations, voice assistant improvements. It&apos;s actively getting better, which is the opposite of what happens with most smart home platforms over time.&lt;/p&gt;
&lt;p&gt;The automation engine is genuinely powerful. You can trigger actions based on time, presence, sensor data, device states, weather, sun position, or basically any combination of conditions you can think of. Turn on the porch lights at sunset. Get a notification if the garage door has been open for more than 10 minutes. Adjust the thermostat when everyone leaves the house. The complexity ceiling is high, but simple automations are easy to set up through the UI without writing any code.&lt;/p&gt;
&lt;p&gt;The dashboards are fully customizable and accessible from mobile apps, a web interface, or even cast to a TV. There&apos;s a built-in voice assistant called Assist that runs locally, an energy management system, and you can install additional apps like Node-RED directly through the interface.&lt;/p&gt;
&lt;p&gt;But the real reason people love it is control. You own your smart home. No one can change the terms of service on you, raise prices, or shut down the platform. After watching Google kill product after product and Apple let Siri and HomePod stagnate, having something that&apos;s actually in your control is a relief.&lt;/p&gt;
&lt;p&gt;I still use Apple Home in addition to Home Assistant. It&apos;s not mutually exclusive. There are advantages to the built-in functionality that Apple Home can offer, and Home Assistant only enhances that. I can even publish incompatible devices to Apple Home by bridging them through Home Assistant.&lt;/p&gt;
&lt;h2&gt;Why I Use the Home Assistant Green&lt;/h2&gt;
&lt;p&gt;You can run Home Assistant on a lot of things — a Raspberry Pi, a VM, a Docker container, an old PC. I ran it in Docker on a Synology NAS for a while and it worked fine for the basics. But running it as a container means you&apos;re running Home Assistant Container, not the full Home Assistant Operating System, and there&apos;s a real difference. Container installs don&apos;t get the app store — which means no one-click installs for things like Node-RED, an MQTT broker, or the file editor. You also lose built-in backups, one-click updates, and out-of-the-box support for Thread and Z-Wave since those are managed by apps that only run on HA OS. You can set all of that up yourself alongside Docker, but at that point you&apos;re managing a bunch of moving parts instead of just running Home Assistant.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://www.home-assistant.io/green/&quot;&gt;Home Assistant Green&lt;/a&gt; is exactly that. It&apos;s a small box with a quad-core ARM processor, 4 GB of RAM, and 32 GB of eMMC storage. It comes with Home Assistant already installed. You plug in power, plug in Ethernet, and it&apos;s running. That&apos;s the whole setup.&lt;/p&gt;
&lt;p&gt;No flashing SD cards. No configuring Docker. No fighting with a Raspberry Pi that&apos;s also trying to run Pi-hole and three other things. No VM overhead. It&apos;s a dedicated appliance that does one thing well.&lt;/p&gt;
&lt;p&gt;At $159, it&apos;s not the cheapest option. A Raspberry Pi can be had for less. But the Green removes every possible friction point from the setup. It comes with a proper power supply, a passive aluminum heatsink so there&apos;s no fan noise, and eMMC storage instead of an SD card — which matters because SD cards in Raspberry Pis are notorious for failing over time. The Green is just more reliable hardware for a system that ideally runs 24/7 for years.&lt;/p&gt;
&lt;p&gt;The monthly updates install through the web UI with one click. Backups are built in. If you want to add Zigbee or Thread support, you plug in a &lt;a href=&quot;https://www.home-assistant.io/connect/zbt-2/&quot;&gt;Home Assistant Connect ZBT-2&lt;/a&gt; USB stick. It also works with your existing Apple HomeKit, Google Home, and Alexa setups, so you can migrate gradually without ripping everything out at once.&lt;/p&gt;
&lt;p&gt;The whole experience is closer to setting up a consumer router than building a Linux server. That&apos;s the point. I want my smart home platform to be something I configure once and then it just works in the background, not something I have to babysit. The Green delivers on that.&lt;/p&gt;
&lt;p&gt;If you&apos;re frustrated with the state of smart home platforms from big tech, or if you&apos;ve been curious about Home Assistant but didn&apos;t want to deal with the Raspberry Pi setup, the Green is the easiest on-ramp. Plug it in, open the app, and you&apos;re running.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/green/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/green/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.home-assistant.io/connect/zbt-2/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.home-assistant.io/connect/zbt-2/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.openhomefoundation.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.openhomefoundation.org/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Making Your Site Visible to AI Agents with Cloudflare</title><link>https://barnes.tech/blog/making-your-site-visible-to-ai-agents</link><guid isPermaLink="true">https://barnes.tech/blog/making-your-site-visible-to-ai-agents</guid><description>How Cloudflare&apos;s Markdown for Agents and Content Signals help your website get discovered by AI crawlers and agents.</description><pubDate>Sat, 14 Feb 2026 05:31:22 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/cloudflare-logo.svg&quot; alt=&quot;Cloudflare Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;The way people find things online is changing. It used to be all about Google and SEO. Now, an increasing amount of traffic is coming from AI agents and crawlers that need structured data from a web that was built for humans. If your site isn&apos;t set up to talk to these systems, you&apos;re going to get left behind.&lt;/p&gt;
&lt;p&gt;Cloudflare just launched two features that make this significantly easier: &lt;strong&gt;Markdown for Agents&lt;/strong&gt; and &lt;strong&gt;Content Signals&lt;/strong&gt;. I&apos;ve already enabled both on a site I manage at work, and the setup is straightforward enough that there&apos;s no real reason not to do it.&lt;/p&gt;
&lt;h2&gt;Markdown for Agents&lt;/h2&gt;
&lt;p&gt;The core idea is simple. HTML is expensive for AI to process. All the &lt;code&gt;&amp;#x3C;div&gt;&lt;/code&gt; wrappers, nav bars, script tags, and CSS classes are noise that burns through tokens without adding any meaning. Cloudflare claims this blog post about the feature takes 16,180 tokens as HTML and only 3,150 as markdown — an 80% reduction.&lt;/p&gt;
&lt;p&gt;Markdown for Agents handles the conversion automatically at the edge. When an AI agent requests a page with &lt;code&gt;Accept: text/markdown&lt;/code&gt; in the header, Cloudflare intercepts the response, converts the HTML to clean markdown, and serves that instead. The agent gets exactly what it needs without wasting compute on parsing junk.&lt;/p&gt;
&lt;p&gt;Here&apos;s what the request looks like:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl https://your-site.com/about/ \
  -H &quot;Accept: text/markdown&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The response comes back as &lt;code&gt;text/markdown&lt;/code&gt; with an &lt;code&gt;x-markdown-tokens&lt;/code&gt; header that tells you exactly how many tokens are in the document. Tools like Claude Code and OpenCode already send these accept headers, so enabling this means those tools immediately get cleaner content from your site.&lt;/p&gt;
&lt;h3&gt;How to Enable It&lt;/h3&gt;
&lt;p&gt;If you&apos;re on Cloudflare (Pro, Business, or Enterprise), it&apos;s a toggle. Go to your zone in the dashboard, find Quick Actions, and flip on Markdown for Agents. That&apos;s it.&lt;/p&gt;
&lt;p&gt;You can also enable it via the API:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -X PATCH &apos;https://api.cloudflare.com/client/v4/zones/{zone_tag}/settings/content_converter&apos; \
  --header &apos;Content-Type: application/json&apos; \
  --header &quot;Authorization: Bearer {api_token}&quot; \
  --data &apos;{&quot;value&quot;: &quot;on&quot;}&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;There are some limitations worth knowing about. It only converts HTML (no PDFs or other formats yet), it won&apos;t work if the origin response is larger than 1 MB or doesn&apos;t include a &lt;code&gt;content-length&lt;/code&gt; header, and compressed origin responses aren&apos;t supported. But for a typical website, these shouldn&apos;t be issues.&lt;/p&gt;
&lt;h2&gt;Content Signals&lt;/h2&gt;
&lt;p&gt;The second piece is Content Signals, which is a framework built around &lt;code&gt;robots.txt&lt;/code&gt; that lets you explicitly tell AI systems what they can and can&apos;t do with your content. It&apos;s defined at &lt;a href=&quot;https://contentsignals.org/&quot;&gt;contentsignals.org&lt;/a&gt; and uses three categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ai-train&lt;/code&gt;&lt;/strong&gt; — Can this content be used to train or fine-tune AI models?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;search&lt;/code&gt;&lt;/strong&gt; — Can this content be indexed and returned in search results?&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;ai-input&lt;/code&gt;&lt;/strong&gt; — Can this content be used as input to AI models (RAG, grounding, agentic use)?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You add these as directives in your &lt;code&gt;robots.txt&lt;/code&gt;:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-text&quot;&gt;User-Agent: *
Content-Signal: ai-train=no, search=yes, ai-input=yes
Allow: /
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The site at &lt;a href=&quot;https://contentsignals.org/&quot;&gt;contentsignals.org&lt;/a&gt; has a generator where you can pick from preset policies and get the exact &lt;code&gt;robots.txt&lt;/code&gt; directives you need. You can go as broad as &quot;allow everything&quot; or as restrictive as &quot;disallow all.&quot; You can even target specific user agents or specific paths if you want different rules for different parts of your site.&lt;/p&gt;
&lt;p&gt;When Markdown for Agents is enabled, converted responses automatically include a &lt;code&gt;Content-Signal&lt;/code&gt; header: &lt;code&gt;ai-train=yes, search=yes, ai-input=yes&lt;/code&gt;. Custom policy options are coming in the future.&lt;/p&gt;
&lt;p&gt;It&apos;s worth being clear about what this is and isn&apos;t. These are signals, not enforcement. Just like &lt;code&gt;robots.txt&lt;/code&gt; has always been a polite request rather than a technical barrier, Content Signals express your preferences. Some crawlers will respect them. Some won&apos;t. But having an explicit, machine-readable declaration of your intent is better than having nothing, and it establishes a baseline that responsible AI companies are starting to honor.&lt;/p&gt;
&lt;h2&gt;Why This Matters&lt;/h2&gt;
&lt;p&gt;If you run a website and want AI tools to be able to accurately reference your content, you should be making it easy for them to do so. That means serving clean, structured content when agents ask for it, and being explicit about how that content can be used.&lt;/p&gt;
&lt;p&gt;I recently enabled both of these on a website at work. The process took about five minutes — flip the toggle, update &lt;code&gt;robots.txt&lt;/code&gt; with Content Signals, done. If you&apos;re already on Cloudflare, this is one of the easiest things you can do to make your site more accessible to the next generation of how people find things online.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/markdown-for-agents/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/markdown-for-agents/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://contentsignals.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://contentsignals.org/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>What Is Enshittification?</title><link>https://barnes.tech/blog/what-is-enshittification</link><guid isPermaLink="true">https://barnes.tech/blog/what-is-enshittification</guid><description>Cory Doctorow&apos;s framework for how platforms decay: attract users, exploit them, then extract all value. Here&apos;s what it means and why it matters.</description><pubDate>Thu, 12 Feb 2026 16:51:40 GMT</pubDate><content:encoded>&lt;p&gt;I reference enshittification a lot on this site. &lt;a href=&quot;/blog/apple-maps-enshitification/&quot;&gt;Apple Maps ads&lt;/a&gt;, &lt;a href=&quot;/blog/perplexity-enshitification/&quot;&gt;Perplexity&apos;s surveillance pivot&lt;/a&gt;, &lt;a href=&quot;/blog/google-search-is-getting-worse/&quot;&gt;Google Search getting worse&lt;/a&gt; -- it keeps coming up because it keeps happening. This week, OpenAI started testing ads in ChatGPT, and one of their own researchers, Zoe Hitzig, &lt;a href=&quot;https://www.nytimes.com/2026/02/11/opinion/openai-ads-chatgpt.html&quot;&gt;resigned over it&lt;/a&gt;, warning that the most detailed record of private human thought ever assembled is about to be monetized with advertising. We&apos;re watching the next wave of enshittification happen in real time with AI, so I figured it was time to actually explain the concept properly since I keep referring to it.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://pluralistic.net/&quot;&gt;Cory Doctorow&lt;/a&gt; coined the term. He&apos;s a novelist, activist, and has worked with the &lt;a href=&quot;https://www.eff.org/&quot;&gt;Electronic Frontier Foundation&lt;/a&gt; for over two decades. The American Dialect Society named &quot;enshittification&quot; the &lt;a href=&quot;https://www.americandialectsociety.org/2023-word-of-the-year-is-enshittification/&quot;&gt;2023 word of the year&lt;/a&gt;. It describes the predictable lifecycle of how platforms decay, and once you see the pattern, you can&apos;t unsee it.&lt;/p&gt;
&lt;h2&gt;The Three Stages&lt;/h2&gt;
&lt;p&gt;Doctorow defines enshittification as a three-stage process of platform decay.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stage one: Be good to users.&lt;/strong&gt; A platform starts by offering genuine value to attract users. Facebook in 2006 told everyone to leave MySpace because Rupert Murdoch spied on them. &quot;Come to Facebook, we&apos;ll never spy on you, we&apos;ll just show you what you ask to see.&quot; Users pile in, and critically, they get &lt;strong&gt;locked in&lt;/strong&gt; -- you love your friends, and you can&apos;t convince all of them to move somewhere else at the same time. As long as you love your friends more than you hate the platform, you&apos;ll stay.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stage two: Sell out users to business customers.&lt;/strong&gt; Once users are locked in, the platform makes things worse for them to attract advertisers and business customers. Facebook goes to advertisers and says &quot;remember when we told users we wouldn&apos;t spy on them? Obviously that was a lie. We spy on them from ass to appetite. Give us money and we&apos;ll target ads with exquisite fidelity.&quot; They go to publishers and say &quot;put your content on our platform, we&apos;ll cram it into eyeballs that never asked to see it. Free traffic.&quot; The business customers pile in and get locked in too -- they become dependent on the platform.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Stage three: Extract all value.&lt;/strong&gt; Now the platform makes things worse for the business customers too. Ad targeting fidelity goes down. Ad prices go up. Ad fraud explodes. Procter &amp;#x26; Gamble in 2017 zeroed out its $200 million surveillance advertising spend and saw zero drop in sales, because to a first approximation all those ads disappeared down the fraud hole. The platform harvests everything except the bare minimum needed to keep people from leaving. Your feed becomes a homeopathic residue of stuff you actually asked to see, filled with things people paid billions to show you, and they&apos;re getting robbed blind. This is ideal for the platform. It&apos;s a giant pile of shit.&lt;/p&gt;
&lt;h2&gt;Why It Happens&lt;/h2&gt;
&lt;p&gt;There&apos;s a tempting but wrong explanation for this: &quot;If you&apos;re not paying for the product, you&apos;re the product.&quot; Doctorow pushes back on this hard. The people who &lt;strong&gt;do&lt;/strong&gt; pay -- the advertisers, the publishers, the business customers -- get shafted too. Everyone gets worse treatment except the platform itself.&lt;/p&gt;
&lt;p&gt;The real answer is policy. Four things used to discipline tech companies: &lt;strong&gt;competition&lt;/strong&gt;, &lt;strong&gt;regulation&lt;/strong&gt;, &lt;strong&gt;interoperability&lt;/strong&gt;, and &lt;strong&gt;an empowered workforce&lt;/strong&gt;. All four eroded over the last two decades.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Competition&lt;/strong&gt; disappeared as the industry consolidated. When you have hundreds of equally sized companies, none of them can conspire to screw users because someone will defect and steal the others&apos; customers. When you have a handful of giants, they don&apos;t worry about that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Regulation&lt;/strong&gt; got captured. Concentrated industries are much better at lobbying than fragmented ones.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Interoperability&lt;/strong&gt; got outlawed. This is the big one that non-technical people underappreciate. Interoperability means you can make one thing work with another -- any light bulb in any socket, anyone&apos;s gas in your tank. With digital technology, you get even more opportunities because you can always write software that undoes what some other software tries to do. An ad blocker, a third-party printer cartridge, a tool to export your data. This is an enormous source of discipline because once someone installs an ad blocker, the revenue from that user falls to zero &lt;strong&gt;forever&lt;/strong&gt;. No one ever uninstalled their ad blocker.&lt;/p&gt;
&lt;p&gt;But laws like Section 1201 of the DMCA (1998) made it a &lt;strong&gt;felony&lt;/strong&gt; to bypass a digital lock -- five years in prison and a $500,000 fine for a first offense, even if no copyright infringement takes place. Companies started wrapping everything in a thin layer of digital lock. Your printer cartridge has a chip that does a cryptographic handshake to prove it came from HP. Ink is now $10,000 a gallon. Your audiobooks on Audible are wrapped in DRM so you&apos;d forfeit everything if you left the platform. Your tractor, your car, your insulin pump -- all locked down.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Worker power&lt;/strong&gt; collapsed. A quarter million tech layoffs in a couple of years destroyed the leverage that tech workers once had to push back internally when their bosses wanted to do something harmful to users.&lt;/p&gt;
&lt;h2&gt;It&apos;s Not Inevitable&lt;/h2&gt;
&lt;p&gt;Doctorow is insistent that this didn&apos;t have to happen and doesn&apos;t have to continue. The platforms were genuinely good once -- that wasn&apos;t our imagination. The same people running them then are running them now. What changed was the environment, everything that used to keep them in check.&lt;/p&gt;
&lt;p&gt;The way out is restoring those four constraints. Of particular interest right now is interoperability. Every country adopted laws like the DMCA because the US trade representative made tariff-free access conditional on it. Those laws primarily benefit American tech giants. Other countries could repeal them, allowing domestic companies to build tools that jailbreak locked-down devices, export data from walled gardens, and create competitive alternatives. As Doctorow puts it: the first country that does it gets a durable advantage, and there&apos;s going to be a race to the top.&lt;/p&gt;
&lt;h2&gt;The AI Wave&lt;/h2&gt;
&lt;p&gt;This brings us to right now. AI companies are burning through cash at staggering rates, and the enshittification playbook is already in motion. Perplexity&apos;s CEO announced their browser will &lt;a href=&quot;https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/&quot;&gt;track everything users do online&lt;/a&gt; to sell hyper-personalized ads. Google is &lt;a href=&quot;https://searchengineland.com/google-ads-ai-overviews-spotted-455889&quot;&gt;stuffing ads into AI Overviews&lt;/a&gt;. And OpenAI, the company that positioned itself as a mission-driven AI safety lab, just started testing ads in ChatGPT.&lt;/p&gt;
&lt;p&gt;Zoe Hitzig, who spent two years as a researcher at OpenAI working on AI models, pricing, and safety, &lt;a href=&quot;https://www.nytimes.com/2026/02/11/opinion/openai-ads-chatgpt.html&quot;&gt;resigned and wrote in the New York Times&lt;/a&gt; that OpenAI has the most detailed record of private human thought ever assembled, and is about to monetize it with advertising. People share their medical symptoms, relationship problems, financial anxieties, career fears -- things they might not tell another human. The surveillance advertising model applied to that data is a different beast entirely from what we&apos;ve seen with social media.&lt;/p&gt;
&lt;p&gt;The pattern is clear. Stage one is already over -- AI tools attracted hundreds of millions of users by being genuinely useful. We&apos;re entering stage two now, where the platforms start selling out users to business customers. If history is any guide, stage three won&apos;t be far behind.&lt;/p&gt;
&lt;p&gt;As Doctorow says, the real culprits aren&apos;t the ketamine-addled billionaires running these companies. They&apos;re just filling a void created by policy. The policymakers who created the enshittogenic environment that guarantees people who do the worst things in the worst way will make the most money -- those are the people who need to change course.&lt;/p&gt;
&lt;p&gt;If you want to hear Doctorow explain it himself, here&apos;s a great clip from The Daily Show, and I&apos;d also recommend the full &lt;a href=&quot;/blog/enshitification-podcast/&quot;&gt;Organized Money podcast episode&lt;/a&gt; where he goes deep on all of this.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://pluralistic.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://pluralistic.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.eff.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.eff.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.nytimes.com/2026/02/11/opinion/openai-ads-chatgpt.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.nytimes.com/2026/02/11/opinion/openai-ads-chatgpt.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://searchengineland.com/google-ads-ai-overviews-spotted-455889&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://searchengineland.com/google-ads-ai-overviews-spotted-455889&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/enshitification-podcast/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>How I Use Claude Code Every Day</title><link>https://barnes.tech/blog/how-i-use-claude-code-every-day</link><guid isPermaLink="true">https://barnes.tech/blog/how-i-use-claude-code-every-day</guid><description>How Claude Code has become my go-to tool for development, research, writing, and just about everything else.</description><pubDate>Sun, 08 Feb 2026 22:30:29 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/claude-code-wordmark-light-mode.svg&quot; alt=&quot;Claude Code logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;ve written about AI tools a few times on this blog, but I haven&apos;t really talked about the one that has most fundamentally changed how I work. &lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/overview&quot;&gt;Claude Code&lt;/a&gt; is Anthropic&apos;s CLI tool that gives Claude direct access to your terminal, filesystem, and development environment. At this point it&apos;s involved in essentially every project I touch, whether that&apos;s a web app, a native macOS app, Python scripts, workflow automations, or infrastructure configs.&lt;/p&gt;
&lt;h2&gt;CLAUDE.md&lt;/h2&gt;
&lt;p&gt;CLAUDE.md is a markdown file you put in the root of a project that gives Claude Code context about your codebase — architecture, commands, conventions, gotchas. Claude reads it automatically when you open a project.&lt;/p&gt;
&lt;p&gt;This is the single most important feature. It&apos;s what turns Claude Code from a generic AI assistant into something that actually understands your project. It knows your build commands, your deployment pipeline, your file structure, and the decisions you&apos;ve made along the way. Without it, you&apos;re re-explaining basics every session. With it, Claude starts every conversation already up to speed.&lt;/p&gt;
&lt;h2&gt;Memory&lt;/h2&gt;
&lt;p&gt;Claude Code also maintains a memory directory where it stores things it learns across sessions. API quirks, patterns that work well in a codebase, bugs that were painful to track down. The kinds of things that are easy to forget between sessions. This means Claude gets better at working in each project over time, and you don&apos;t repeat the same mistakes.&lt;/p&gt;
&lt;h2&gt;Skills&lt;/h2&gt;
&lt;p&gt;Skills are predefined workflows triggered with slash commands. The ones I use most:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/commit&lt;/code&gt;&lt;/strong&gt; — Analyzes staged changes, generates a good commit message, and commits. &lt;code&gt;/commit-push-pr&lt;/code&gt; goes further and handles the full commit, push, and PR creation flow. I actually get better commit history from this than when I was writing messages manually.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/code-review&lt;/code&gt;&lt;/strong&gt; — Reviews a PR for bugs, security issues, and whether changes follow the patterns in your project. Because it has the CLAUDE.md context, it understands your conventions rather than just applying generic rules.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/feature-dev&lt;/code&gt;&lt;/strong&gt; — A guided workflow for building features. It reads the existing code, identifies patterns, and proposes an implementation that fits naturally into what&apos;s already there. Useful for larger features where you want to think through the approach first.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;/frontend-design&lt;/code&gt;&lt;/strong&gt; — Builds production-quality UI components with Tailwind and shadcn/ui. It&apos;s opinionated about avoiding generic-looking AI output, which is a common problem.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Plugins&lt;/h2&gt;
&lt;h3&gt;Firecrawl&lt;/h3&gt;
&lt;p&gt;&lt;a href=&quot;https://www.firecrawl.dev/&quot;&gt;Firecrawl&lt;/a&gt; gives Claude the ability to search the web, scrape pages, and do research without leaving the terminal. Need to check API docs, look up how a library handles an edge case, or research a topic? Firecrawl handles it. This blog post used it for research.&lt;/p&gt;
&lt;h3&gt;Sentry&lt;/h3&gt;
&lt;p&gt;The &lt;a href=&quot;https://sentry.io/&quot;&gt;Sentry&lt;/a&gt; integration lets Claude pull up recent issues, dig into errors, and trace them back to the code. &lt;code&gt;/sentry&lt;/code&gt; looks for open issues and helps resolve them. The Seer feature lets you ask natural language questions about your Sentry environment. The part I find most useful is the PR code review integration — if Sentry flags something on a PR, Claude can analyze it and fix the root cause.&lt;/p&gt;
&lt;h2&gt;Why a Terminal Tool?&lt;/h2&gt;
&lt;p&gt;I know a terminal-based AI tool is not for everyone. Most people reaching for AI help with code are pasting snippets into ChatGPT or the Claude app, and that works fine for one-off questions. But the difference with Claude Code is that it&apos;s already inside your project. It can read every file, understand the full directory structure, reference the CLAUDE.md and memory files, run your build commands, execute tests, and commit code — all without you copy-pasting anything.&lt;/p&gt;
&lt;p&gt;That context is the whole game. When I ask Claude Code to fix a bug, it doesn&apos;t just see the snippet I pasted — it can trace through the actual imports, check the actual database schema, and run the actual tests to verify the fix. When I ask it to build a feature, it reads the existing patterns and matches them. That&apos;s fundamentally different from explaining your codebase in a chat window and hoping the AI infers the rest.&lt;/p&gt;
&lt;p&gt;The agentic workflow is the other big difference. Claude Code doesn&apos;t just suggest code, it writes files, runs commands, creates commits, and opens PRs. It&apos;s doing the work, not just advising on it. Once you get comfortable with that, going back to copy-pasting between a browser and your editor feels slow.&lt;/p&gt;
&lt;h2&gt;What Makes It Work&lt;/h2&gt;
&lt;p&gt;The CLAUDE.md gives it project knowledge. Memory gives it learning across sessions. Skills automate repetitive workflows. Plugins connect it to external services. Each piece is useful on its own, but together they make something that feels like a real development environment rather than a chat window.&lt;/p&gt;
&lt;p&gt;It still makes mistakes, sometimes confidently. But the baseline quality with good context is remarkably high, and the speed at which I move through projects is genuinely different than it was a year ago. If you&apos;re not using Claude Code, it&apos;s worth trying.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/overview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://docs.anthropic.com/en/docs/claude-code/overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/memory&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://docs.anthropic.com/en/docs/claude-code/memory&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://docs.anthropic.com/en/docs/claude-code/skills&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://docs.anthropic.com/en/docs/claude-code/skills&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.firecrawl.dev/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.firecrawl.dev/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sentry.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sentry.io/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Raycast Hotkey Guide</title><link>https://barnes.tech/blog/raycast-hotkey-guide</link><guid isPermaLink="true">https://barnes.tech/blog/raycast-hotkey-guide</guid><description>A guide of a few examples of using Raycast Hotkeys effectively</description><pubDate>Thu, 15 Jan 2026 17:57:11 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Raycast Logo.svg&quot; alt=&quot;Raycast Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Raycast has been doing a series of videos about how to effectively use hotkeys with Raycast. The one that came out today is really good - https://www.youtube.com/watch?v=N4eiUgRYoL4&lt;/p&gt;
&lt;p&gt;The specific ideas in this include -&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Clipboard History&lt;/strong&gt; → Shift+Cmd+V or similar (pairs naturally with paste)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Window Management&lt;/strong&gt; → Ctrl+Opt+Cmd+Arrow keys for left/right half, center, fullscreen&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI Chat&lt;/strong&gt; → Hyper+A for quick access&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emoji Picker&lt;/strong&gt; → Ctrl+Cmd+Space to replace the native macOS picker&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Frequently Used Apps&lt;/strong&gt; → Option+letter (e.g., Option+S for Safari)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Quick Links&lt;/strong&gt; → Treat them like apps with similar modifier patterns&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Folder Access&lt;/strong&gt; → Ctrl+Cmd+letter for Downloads, Desktop, etc.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Display Presets&lt;/strong&gt; → Option+Shift+Plus/Minus for screen recording resolution changes&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Definitely worth watching this series from Raycast if you&apos;re a Raycast user. If you&apos;re not, you should be!&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=N4eiUgRYoL4&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=N4eiUgRYoL4&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/raycast-opengraph-previews/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/raycast-opengraph-previews/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/raycast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/raycast/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://raycast.com/?via=robby&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://raycast.com/?via=robby&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>AI and the Human Condition - Stratechery</title><link>https://barnes.tech/blog/ai-and-the-human-condition-stratechery</link><guid isPermaLink="true">https://barnes.tech/blog/ai-and-the-human-condition-stratechery</guid><description>Ben Thompson&apos;s optimistic analysis of AI&apos;s impact on humanity, with commentary on wealth inequality concerns in the AI era.</description><pubDate>Tue, 06 Jan 2026 00:12:36 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/stratechery.svg&quot; alt=&quot;Stratechery by Ben Thompson&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I think Ben Thompson is an excellent writer and analyst. I think this is worth reading as I think a somewhat optimistic take on AI at the moment - https://stratechery.com/2026/ai-and-the-human-condition/&lt;/p&gt;
&lt;p&gt;On the one hand, it&apos;s hard to argue that so much of the world is better than it&apos;s ever been, and it&apos;s logical that that would continue to some degree.&lt;/p&gt;
&lt;p&gt;My main concern with his optimism in the space is with the acceleration of the wealth gap of the hyper wealthy and the &quot;rest of us&quot;. It&apos;s hard to fathom the wealth that billionairs have, and that&apos;s only accelerating. One of my main concerns with AI, honestly similar to the current tech monopolies, is that it will be a way for the hyper rich to even further accelerate their wealth. Sure, things have gotten better for everyone as a whole over history, but the inequity between the hyper wealthy and everyone else is historically a pretty recent phenomenon and I don&apos;t see it getting any better any time soon without some serious systemic corrections, and AI will be another way for the rich to get richer and push all of the negative consequences that inevitably will come along with it to the rest of us.&lt;/p&gt;
&lt;p&gt;One of my favorite illustrations of just how much wealth the ultra rich have is this site - https://eattherichtextformat.github.io/1-pixel-wealth/. I&apos;m not even sure the last time it was updated but whenever it was, it&apos;s only gotten worse since then.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://stratechery.com/2026/ai-and-the-human-condition/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://stratechery.com/2026/ai-and-the-human-condition/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://eattherichtextformat.github.io/1-pixel-wealth/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://eattherichtextformat.github.io/1-pixel-wealth/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>AI Water Use</title><link>https://barnes.tech/blog/ai-water-use</link><guid isPermaLink="true">https://barnes.tech/blog/ai-water-use</guid><description>Hank Green breaks down why AI water use discourse is so confusing and why power consumption matters more.</description><pubDate>Sat, 27 Dec 2025 20:57:55 GMT</pubDate><content:encoded>&lt;p&gt;Hank Green put together a really good breakdown of the AI water use discourse, and it&apos;s one of those videos where both sides of the argument come out looking a little dishonest.&lt;/p&gt;
&lt;h2&gt;The numbers game&lt;/h2&gt;
&lt;p&gt;Sam Altman claims the average ChatGPT query uses about a fifteenth of a teaspoon of water. Morgan Stanley projects AI data center water use could hit a trillion liters per year by 2028 — an 11x increase from 2024. Both numbers can technically be true, and that&apos;s the problem. Resource analysis for any industry is a legitimate field of science, but packaging it into neat, shareable numbers inevitably involves fudging. This complexity makes it really easy to mislead in either direction.&lt;/p&gt;
&lt;h2&gt;Why Altman&apos;s number is misleading&lt;/h2&gt;
&lt;p&gt;Hank calls Altman&apos;s figure &quot;a lie,&quot; and I think that&apos;s fair. It only counts water used at the moment of answering your query, conveniently ignoring some pretty important stuff. Reasoning models often trigger multiple behind-the-scenes queries for a single user question — potentially 15x or more the stated water use. And training costs are completely excluded. Building these models takes weeks or months of GPU-intensive computing that burns through electricity and water. The University of California estimates training accounts for roughly half of total AI resource use. Altman&apos;s number pretends none of that exists, and OpenAI doesn&apos;t share the data needed to fairly allocate those costs across queries, so outsiders can&apos;t do accurate accounting even if they wanted to.&lt;/p&gt;
&lt;h2&gt;How the other side inflates numbers too&lt;/h2&gt;
&lt;p&gt;The biggest source of the inflated AI water numbers comes from thermoelectric power plants. Natural gas, coal, and nuclear plants use massive amounts of water to condense steam after it drives turbines — electricity generation accounts for 40% of all U.S. freshwater withdrawals. But most of that water is returned to rivers and lakes, with only about 2-3% actually evaporating. It&apos;s also not municipal water — it&apos;s pulled directly from natural water bodies, not treated drinking water. Including this flow-through water in AI&apos;s footprint makes the numbers look enormous but is pretty misleading.&lt;/p&gt;
&lt;p&gt;That said, even the returned water is a concern. The waste heat dumped into waterways is a real form of pollution. Even a 1-2 degree temperature change in a river can damage ecosystems. It&apos;s a legitimate issue that needs regulation, just not the same thing as &quot;consuming&quot; water.&lt;/p&gt;
&lt;h2&gt;Context matters more than totals&lt;/h2&gt;
&lt;p&gt;Every region has a finite water budget. A data center in the Pacific Northwest is a completely different situation from one in Tucson. The key question isn&apos;t just &quot;how much water?&quot; but &quot;does this place have water to spare?&quot; Building a water-cooled data center in the desert is, as Hank puts it, &quot;just very dumb.&quot; Most data centers use evaporative cooling with fresh municipal water — the same treated, drinkable water delivered to homes — so where you build these things really matters.&lt;/p&gt;
&lt;p&gt;There&apos;s also the chip manufacturing side that most people don&apos;t think about. Making Nvidia GPUs requires ultra-pure water far more refined than drinking water. The volume is small compared to cooling, but producing it is energy-intensive. Another hidden layer.&lt;/p&gt;
&lt;h2&gt;The corn comparison&lt;/h2&gt;
&lt;p&gt;Hank&apos;s most striking comparison is one that puts the whole debate in perspective. U.S. corn production uses roughly 20 trillion gallons of water per year — nearly 80 times more than the entire global AI data center footprint of around 260 billion gallons. And 40% of that corn is turned into ethanol burned in cars and trucks, with each gallon of ethanol carrying an irrigation footprint of about 1,500 gallons of water. Lawn irrigation also uses trillions of gallons of municipal water annually. None of this excuses waste, but it does make you wonder why AI gets the outrage while corn ethanol quietly remains one of the most absurdly wasteful things we do.&lt;/p&gt;
&lt;h2&gt;Power is the real concern&lt;/h2&gt;
&lt;p&gt;Hank argues that AI&apos;s electricity demand — not water — is the more serious problem, and I think he&apos;s right. The projected increase in power demand is an order of magnitude larger as a percentage of existing infrastructure than the water increase. This is going to hit carbon budgets and consumer electricity bills a lot harder than water ever will.&lt;/p&gt;
&lt;h2&gt;The bigger picture&lt;/h2&gt;
&lt;p&gt;Hank&apos;s biggest worry isn&apos;t actually water or power — it&apos;s that the massive data center buildout happening right now might be based on an overly optimistic vision of AI&apos;s future. Microsoft, Google, and Amazon are each spending over $100 billion a year on this. If more compute doesn&apos;t improve AI systems as advertised, or if political and environmental constraints slow things down, the economic fallout could be severe. A significant chunk of S&amp;#x26;P 500 value is riding on a future that nobody can predict with confidence.&lt;/p&gt;
&lt;p&gt;Both sides of this debate cherry-pick numbers to make their case. The real answer, as usual, is more complicated than either side wants to admit. Expertise matters, public discourse is bad at handling nuance, and corn ethanol remains absurdly wasteful.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=H_c6MWk7PQc&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=H_c6MWk7PQc&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Music 2025</title><link>https://barnes.tech/blog/music-2025</link><guid isPermaLink="true">https://barnes.tech/blog/music-2025</guid><description>Some of the music I listened to the most in 2025</description><pubDate>Sat, 27 Dec 2025 19:29:43 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple-music-icon.svg&quot; alt=&quot;Apple Music Icon&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;As 2025 comes to a close (finally...) I wanted to mention some of my favorite music from the year. These are not necessarily all new music from 2025, just my most listened to music.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chevelle - Bright as Blasphemy&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We finally got a new Chevelle album. Hard hitting as usual, and politically poignant, I really enjoy this album. The first 2 singles released, “Rabbit Hole (Cowards, Pt. 1)” and “Jim Jones (Cowards, Pt. 2),” both hit really hard and deliver blistering critiques of the cowardice and cult-like following that is poisoning the country. Pale Horse is another one of my favorites from the album.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Linkin Park - From Zero&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This came out in 2024, but is still one of my top albums. Linkin Park has been one of my favorite bands since their very first album, and it was really hard for me when Chester Bennington passed away. For a few years it was difficult for me to listen to Linkin Park, and I had very mixed feelings when they announced they were coming out with a new album with a new singer, but it&apos;s a fantastic album.&lt;/p&gt;
&lt;p&gt;The Emptiness Machine was the first single and is still one of my favorites from the album. I feel like it was a great one to start with as it seems to me to directly address some of the hesitation about making new music and some of the struggle with fame. Heavy is the Crown is probably my favorite of the whole album.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;One of the songs that has always been one of my favorites, and was one of the top songs of 2025 for me by Linkin Park is &quot;Given Up&quot;. It remains one of the most raw emotional songs of all time. If you haven&apos;t seen it yet, watch the live performance. Chester&apos;s performance is absolutely unbelievable. Incredible performance physically, but also one of the most incredible displays of raw emotion in a performance I&apos;ve ever seen.&lt;/p&gt;
&lt;p&gt;I was extremely excited for TRON: Ares this year. I have always been a fan of Tron, and when they announced that Nine Inch Nails was doing the soundtrack, one of my favorite bands, I was losing my mind. The movie wasn&apos;t as good as I hoped it would be, but was still fun and enjoyable, but I really enjoyed several of the songs from the soundtrack. My favorite is the single from it -&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Nine Inch Nails - As Alive as you Need me to be&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;On the other end of things, I really enjoyed Mumford &amp;#x26; Sons &quot;Rushmere&quot; album as well. Very Mumford and Sons sounding, but I enjoy that. I&apos;m glad they are making music again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Mumford &amp;#x26; Sons - Rushmere&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Their album &quot;Prizefighter&quot; is set to come out in 2026, but the single &quot;Rubber Band Man&quot; just came out recently, and I really like that song as well. Hopefully this is a good sign for the album.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I totally get that Coldplay is not everyone&apos;s favorite, but they are one of those bands I would say is on the sound track of my life. While Moon Music came out in 2024, I still listen to it quite a bit. It&apos;s comforting to me, and many of the songs are just beautiful. There has been a lot of hopelessness in 2025, and the message of this album helps me feel a little bit of hope.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Coldplay - Moon Music&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Of course I listened to a lot of music from bands I will always listen to, such as Tool, Nine Inch Nails, and older albums from some of the bands I have mentioned. I&apos;m not much of an EDM fan in general, but Deadmau5 is uniquely talented in my mind, and I listen to a lot of his stuff as well, particularly as background music while working.&lt;/p&gt;</content:encoded></item><item><title>Google Dark Web Monitoring Goes to the Google Graveyard</title><link>https://barnes.tech/blog/google-dark-web-monitoring</link><guid isPermaLink="true">https://barnes.tech/blog/google-dark-web-monitoring</guid><description>Google shuts down Dark Web Reports, adding another product to the Google graveyard.</description><pubDate>Tue, 16 Dec 2025 16:26:46 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Yet another Google product killed off.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2025/12/google-is-shutting-down-dark-web-reports-in-january-because-they-werent-helpful/&quot;&gt;Ars Technica - Google will end dark web reports that alerted users to leaked data&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2025/12/google-is-shutting-down-dark-web-reports-in-january-because-they-werent-helpful/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/gadgets/2025/12/google-is-shutting-down-dark-web-reports-in-january-because-they-werent-helpful/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://killedbygoogle.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://killedbygoogle.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Enshittification - The Daily Show</title><link>https://barnes.tech/blog/enshittification-the-daily-show</link><guid isPermaLink="true">https://barnes.tech/blog/enshittification-the-daily-show</guid><description>Cory Doctorow explains “enshittification” on The Daily Show, with a YouTube clip and related links for more context.</description><pubDate>Mon, 15 Dec 2025 01:29:15 GMT</pubDate><content:encoded>&lt;p&gt;Cory Doctorow on The Daily Show recently describing &lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot;&gt;enshittification&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Excellent elevator pitch version of what it means and why it happens.&lt;/p&gt;
&lt;p&gt;Enshittification describes the predictable lifecycle of digital platforms: they start by delivering strong value to users to drive adoption, then shift to prioritizing business customers and advertisers at the users’ expense, and ultimately optimize for extraction and profit for the platform itself, degrading the experience for everyone else. The result is a hollowed-out product where usability, trust, and long-term value are sacrificed in favor of short-term financial gains, often leaving users and partners locked in with few viable alternatives.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://youtu.be/d2e-c9SF5nE&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://youtu.be/d2e-c9SF5nE&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/enshitification-podcast/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google DNSSEC MX Records Disappear</title><link>https://barnes.tech/blog/google-dnssec-mx-records-disappear</link><guid isPermaLink="true">https://barnes.tech/blog/google-dnssec-mx-records-disappear</guid><description>Explore the mystery behind Google&apos;s removal of DNSSSEC MX Record options and its implications for domain management.</description><pubDate>Tue, 25 Nov 2025 23:10:28 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I previously wrote about how &lt;a href=&quot;https://barnes.tech/blog/google-dnssec-mx-records/&quot;&gt;Google added DNSSSEC MX Record options&lt;/a&gt;, just back in September.&lt;/p&gt;
&lt;p&gt;I went to get more information about them, and write a similar blog post for work on our site, but for some reason, Google has removed any reference to this in their support documents, and removed the blog post about the update. Very strange.&lt;/p&gt;
&lt;p&gt;I reached out to Google Support for information about this and they basically wouldn&apos;t say anything about it (somewhat unsurprisingly). We manage a domain that we moved to these records and they seem to still be working fine, but now I guess they are unsupported?&lt;/p&gt;
&lt;p&gt;Does this count as going to the &lt;a href=&quot;https://killedbygoogle.com/&quot;&gt;Google Graveyard&lt;/a&gt;? So bizarre.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/google-dnssec-mx-records/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/google-dnssec-mx-records/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://killedbygoogle.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://killedbygoogle.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Power of Vulnerability</title><link>https://barnes.tech/blog/the-power-of-vulnerability</link><guid isPermaLink="true">https://barnes.tech/blog/the-power-of-vulnerability</guid><description>Brené Brown shares a deep insight from her research on human connection, empathy, and belonging in this influential TEDxHouston talk.</description><pubDate>Mon, 17 Nov 2025 03:44:19 GMT</pubDate><content:encoded>&lt;p&gt;Similar to &lt;a href=&quot;https://barnes.tech/blog/this-is-water/&quot;&gt;&quot;This is Water&quot;&lt;/a&gt;, this is one of the most influential talks I&apos;ve seen in my life. In the off chance you somehow have missed this, I highly recommend it.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.ted.com/talks/brene_brown_the_power_of_vulnerability&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.ted.com/talks/brene_brown_the_power_of_vulnerability&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/this-is-water/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/this-is-water/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Raycast OpenGraph Previews</title><link>https://barnes.tech/blog/raycast-opengraph-previews</link><guid isPermaLink="true">https://barnes.tech/blog/raycast-opengraph-previews</guid><description>Explore tips and tools for enhancing productivity with AI and automation in your workflow.</description><pubDate>Wed, 12 Nov 2025 19:12:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Raycast Logo.svg&quot; alt=&quot;Raycast Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Another useful feature of Raycast is when you use the clipboard manager, if you have a URL in the clipboard history, it will show you the opengraph image used for that site. I’ve been working on completely rebuilding our website at work, and doing different opengraph images based on specific criteria on different pages, and this has been extremely helpful in testing them out as I deploy new ones.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.raycast.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.raycast.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Affiliate link&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://raycast.com/?via=robby&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://raycast.com/?via=robby&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>CarPlay&apos;s Longevity</title><link>https://barnes.tech/blog/carplays-longevity</link><guid isPermaLink="true">https://barnes.tech/blog/carplays-longevity</guid><description>Exploring the future of CarPlay amid rising subscription models and data privacy concerns in the automotive industry.</description><pubDate>Wed, 12 Nov 2025 01:51:09 GMT</pubDate><content:encoded>&lt;p&gt;John Gruber, writing on Daring Fireball - &lt;a href=&quot;https://daringfireball.net/linked/2025/11/11/george-carplay-atlantic&quot;&gt;Patrick George Thinks CarPlay’s Days Are Numbered; I Doubt It&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I don’t doubt that most carmakers are looking at ways to charge subscriptions. I do doubt, however, that they’re going to follow GM’s lead in abandoning CarPlay support.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I think Gruber is a little overly optimistic about how much most people care about CarPlay, but I think the main reason CarPlay may struggle in the future would be because these companies will cram tracking and ads on any screen they can, rather than strictly subscriptions.&lt;/p&gt;
&lt;p&gt;Google, Facebook, and increasingly Amazon make obscene amounts of money just from tracking everything you do and cramming garbage in your face any chance they get. Car companies are &lt;a href=&quot;https://barnes.tech/blog/cars-and-data-privacy/&quot;&gt;already doing this&lt;/a&gt; as &lt;a href=&quot;https://barnes.tech/blog/cars-and-data-privacy-follow-up/&quot;&gt;much as they can get away with,&lt;/a&gt; and they will continue to push the boundary as far as people let them.&lt;/p&gt;
&lt;p&gt;I&apos;m not a CarPlay extremist like many Apple fans. There are a couple of cars I think do a better job at UI / UX than CarPlay, but it&apos;s extremely rare, and I definitely get the arguments for wanting to use your own apps like Apple Maps or your favorite podcast player, but for me I really only prefer it in cars that are absolutely awful at software UI / UX / everything (the vast vast majority of cars).&lt;/p&gt;
&lt;p&gt;Gruber argues that customers wanting CarPlay may keep competition strong enough that car markers need to support it to compete. That&apos;s a real possibility and I hope it&apos;s true, but if advertising is the goal, then you are no longer the customer. You&apos;re the product.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2025/11/11/george-carplay-atlantic&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2025/11/11/george-carplay-atlantic&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/cars-and-data-privacy/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/cars-and-data-privacy/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/cars-and-data-privacy-follow-up/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/cars-and-data-privacy-follow-up/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Meta Made $16 Billion From Scam Ads in 2024</title><link>https://barnes.tech/blog/facebook-scam-ads</link><guid isPermaLink="true">https://barnes.tech/blog/facebook-scam-ads</guid><description>How Meta profited from billions of daily scam ads while funding AI development, and why &apos;penalty bids&apos; made the problem worse.</description><pubDate>Mon, 10 Nov 2025 02:23:20 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/facebook-logo.svg&quot; alt=&quot;Facebook Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;A &lt;a href=&quot;https://www.reuters.com/investigations/meta-is-earning-fortune-deluge-fraudulent-ads-documents-show-2025-11-06/&quot;&gt;Reuters investigation&lt;/a&gt; revealed that Meta made &lt;strong&gt;$16 billion from scam ads in 2024&lt;/strong&gt;—10% of total revenue. Internal documents show the company knowingly profited from fraud to fund AI development.&lt;/p&gt;
&lt;p&gt;Users encounter about &lt;strong&gt;15 billion &quot;high risk&quot; scam ads daily&lt;/strong&gt;, plus &lt;strong&gt;22 billion organic scam attempts&lt;/strong&gt;. Meta platforms are involved in roughly &lt;strong&gt;one-third of all successful scams in the United States&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Meta&apos;s System Makes It Worse&lt;/h2&gt;
&lt;p&gt;Meta only bans advertisers when it&apos;s 95% certain they&apos;re fraudulent. Everyone else flagged as suspicious gets charged &lt;strong&gt;higher ad rates as a &quot;penalty.&quot;&lt;/strong&gt; So Meta profits more from suspected scammers than legitimate advertisers.&lt;/p&gt;
&lt;p&gt;Thanks to &quot;ad personalization&quot;, users who click one scam ad get shown more scam ads. It&apos;s a feedback loop that maximizes revenue while exposing vulnerable users to escalating fraud.&lt;/p&gt;
&lt;p&gt;Some accounts accumulated &lt;strong&gt;over 500 strikes&lt;/strong&gt; before being shut down. Four campaigns alone generated &lt;strong&gt;$67 million monthly&lt;/strong&gt; before removal. Meta&apos;s enforcement teams operated under &quot;revenue guardrails&quot;—they couldn&apos;t take actions costing more than $135 million per quarter.&lt;/p&gt;
&lt;p&gt;The math: Meta estimated $1 billion in potential fines while earning $3.5 billion from risky scam ads every six months. &lt;strong&gt;Three-to-one profit margin on fraud&lt;/strong&gt;.&lt;/p&gt;
&lt;h2&gt;Real-World Impact&lt;/h2&gt;
&lt;p&gt;In October 2024, scammers hijacked a Royal Canadian Air Force recruiter&apos;s account and ran crypto fraud ads using her identity. Despite &lt;strong&gt;over 100 reports&lt;/strong&gt;, Meta took weeks to act. Five people were defrauded—one victim lost &lt;strong&gt;C$40,000 ($28,000 USD)&lt;/strong&gt; believing he was talking to his trusted friend.&lt;/p&gt;
&lt;p&gt;Meta&apos;s own safety staff found &lt;strong&gt;96% of valid fraud reports were ignored&lt;/strong&gt;. Santa Clara County prosecutor Erin West: &quot;I don&apos;t know I&apos;ve ever seen something taken down as the result of a single user report.&quot;&lt;/p&gt;
&lt;p&gt;Meta claims they reduced scam ad reports by 58% and removed 134 million scam posts in 2025.&lt;/p&gt;
&lt;p&gt;Maybe people just gave up reporting because Meta doesn&apos;t do anything about it.&lt;/p&gt;
&lt;p&gt;Why would they try to fix it? They make tons of money from it, and they dictate the entire process from start to finish. They could make it go away very quickly if they cared to, but they don&apos;t. They clearly spent all their time covering it up, instead of trying to fix the problem, because they do not agree on what the problem is. Even with this kind of reporting, my guess is that exactly nothing will change.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.reuters.com/investigations/meta-is-earning-fortune-deluge-fraudulent-ads-documents-show-2025-11-06/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.reuters.com/investigations/meta-is-earning-fortune-deluge-fraudulent-ads-documents-show-2025-11-06/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/tech-policy/2025/11/bombshell-report-exposes-how-meta-relied-on-scam-ad-profits-to-fund-ai/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/tech-policy/2025/11/bombshell-report-exposes-how-meta-relied-on-scam-ad-profits-to-fund-ai/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple Maps Enshitification</title><link>https://barnes.tech/blog/apple-maps-enshitification</link><guid isPermaLink="true">https://barnes.tech/blog/apple-maps-enshitification</guid><description>Apple Maps may soon feature ads, raising concerns over user experience and monetization strategies.</description><pubDate>Sun, 26 Oct 2025 22:12:17 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple.svg&quot; alt=&quot;Apple logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple Maps users could start seeing ads in the app as soon as next year&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.bloomberg.com/news/newsletters/2025-10-26/what-s-next-for-the-ipad-pro-iphone-17-pro-like-vapor-chamber-apple-maps-ads-mh7nq39h&quot;&gt;According to Mark Gurman.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;These companies just can&apos;t help themselves but enshitify everything they possibly can. It&apos;s legal, and basically free money. A lot of free money.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot;&gt;The Enshitification of Big Tech: A Conversation with Cory Doctorow&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nothing is free, and when you use online services that say they are free, you are actually the product, not the customer. Facebook? Google? Increasingly Amazon...? You are a source of data that they own, and they sell. You effectively have no choice in the matter. One of the main reasons I have always been fine paying (a lot) for Apple products is that it&apos;s very clear what you&apos;re paying for, where the company makes their money (you know... from us paying for it), and the customer / product relationship is very clear. That line seems to be blurring.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The big risk Apple faces here is a potential consumer backlash. Some customers are already unhappy that the iPhone has been turned into a digital billboard for services like AppleCare+, Apple Music, Apple TV and Fitness+. The company also pushes web-like ad slots within Apple News. When you consider that an iPhone can cost up to $2,000, some see this as an unseemly money grab.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You don&apos;t say!&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.bloomberg.com/news/newsletters/2025-10-26/what-s-next-for-the-ipad-pro-iphone-17-pro-like-vapor-chamber-apple-maps-ads-mh7nq39h&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.bloomberg.com/news/newsletters/2025-10-26/what-s-next-for-the-ipad-pro-iphone-17-pro-like-vapor-chamber-apple-maps-ads-mh7nq39h&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/enshitification-podcast/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/10/26/ads-might-be-coming-to-apple-maps-next-year/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2025/10/26/ads-might-be-coming-to-apple-maps-next-year/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>This is Water</title><link>https://barnes.tech/blog/this-is-water</link><guid isPermaLink="true">https://barnes.tech/blog/this-is-water</guid><description>Explore the inspiring message of David Foster Wallace&apos;s &apos;This Is Water&apos;.</description><pubDate>Sun, 19 Oct 2025 23:19:23 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/this-is-water.png&quot; alt=&quot;This is water book cover&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;m sure most people have seen this by now, but I find it really inspiring. I try to rewatch it every couple of years.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://youtu.be/eC7xzavzEKY&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://youtu.be/eC7xzavzEKY&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://fs.blog/david-foster-wallace-this-is-water/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://fs.blog/david-foster-wallace-this-is-water/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Peter Thiel’s Dangerous Ideology</title><link>https://barnes.tech/blog/the-real-stakes-and-real-story-of-peter-thiels-antichrist-obsession</link><guid isPermaLink="true">https://barnes.tech/blog/the-real-stakes-and-real-story-of-peter-thiels-antichrist-obsession</guid><description>A critical look at Peter Thiel&apos;s dangerous influence on technology and politics, exploring his obsession with the Antichrist.</description><pubDate>Wed, 15 Oct 2025 02:07:31 GMT</pubDate><content:encoded>&lt;p&gt;&lt;/p&gt;
&lt;p&gt;I recently read &lt;a href=&quot;https://www.wired.com/story/the-real-stakes-real-story-peter-thiels-antichrist-obsession/&quot;&gt;The Real Stakes, and Real Story, of Peter Thiel’s Antichrist Obsession&lt;/a&gt;, recently written by &lt;a href=&quot;https://www.wired.com/author/laura-bullard/&quot;&gt;Laura Bullard&lt;/a&gt; on Wired about Peter Thiel’s obsession with the antichrist, and it’s terrifying. I’ve known Peter Thiel was a jackass for a long time, and his involvement in Facebook and Palantir were problematic, but I did not fully grasp the depth of how awful he is, and how much he has influenced so much of all of the terrible things going on currently in the world.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;By Thiel’s telling, the modern world is scared, way too scared, of its own technology. Our “listless” and “zombie” age, he said, is marked by a growing hostility to innovation, plummeting fertility rates, too much yoga, and a culture mired in the “endless Groundhog Day of the worldwide web.” But in its neurotic desperation to avoid technological Armageddon—the real threats of nuclear war, environmental catastrophe, runaway AI—modern civilization has become susceptible to something even more dangerous: the Antichrist.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;First, rather convenient that someone who has so much money invested in tech is going around telling people that trying to put safety in place, or slow down things like “AI” in the name of safety are somehow &lt;em&gt;literally&lt;/em&gt; the anti-christ feels laughable, until you realize how dead serious he is.&lt;/p&gt;
&lt;p&gt;But you don’t become a billionaire without believing in making money at the expense of literally everyone, right? So the inappropriately over the top sell of his own technologies seems par for the course so far, but that’s just the beginning.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;For Thiel and the Nazi theorist Carl Schmitt, the Antichrist’s evil is pretty much synonymous with any attempt to unify the world.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yeah… Turns out he’s a big fan of Carl Schmitt, the Nazi sympathizer, and Thiel preaches many of the exact same arguments Carl Schmitt made when defending Nazi’s and Hitler, but conveniently doesn’t mention Nazi’s or Hitler directly.&lt;/p&gt;
&lt;p&gt;Thiel is also single handedly responsible for JD Vance’s rise in political power, and seemingly much of JD’s racist extremist views as well.&lt;/p&gt;
&lt;p&gt;It’s a long article, but it’s worth reading. Thiel is an incredibly powerful, and incredibly dangerous individual.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/the-real-stakes-real-story-peter-thiels-antichrist-obsession/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.wired.com/story/the-real-stakes-real-story-peter-thiels-antichrist-obsession/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.wired.com/author/laura-bullard/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.wired.com/author/laura-bullard/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Notion 3.0 / Notion AI Follow Up</title><link>https://barnes.tech/blog/notion-30-notion-ai-follow-up</link><guid isPermaLink="true">https://barnes.tech/blog/notion-30-notion-ai-follow-up</guid><description>A review of Notion AI&apos;s capabilities, highlighting both its strengths and weaknesses in project proposal drafting.</description><pubDate>Tue, 14 Oct 2025 23:23:06 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Notion.svg&quot; alt=&quot;Notion Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Not too long ago, I wrote about Notion’s announcement of Notion 3.0 (even though the current app version is 4.x… But whatever)- https://barnes.tech/blog/notion-30/. I was optimistic about what they announced. In a nutshell, they added “agents” and significantly updated the AI that powers Notion AI. Notion AI can work with Notion pages or databases but can also connect to all of the other data connectors that you have connected to Notion. Sounds great, and the demos looked good. After testing it out for a day or so I was fairly impressed.&lt;/p&gt;
&lt;p&gt;Since then I’ve been using it a fair amount more, and it has been a pretty mixed bag for me. Sometimes it seems to do exactly what they demoed. I can reference a bunch of data, briefly explain what we are planning to do for a project, give it a good example of a well designed project proposal, and it can do an excellent job filling out at least a rough draft of a project proposal based on all that data. It has legitimately saved me several hours of busy work already.&lt;/p&gt;
&lt;p&gt;But sometimes it completely shits the bed. It’s very weird. I know AI hallucination pretty well, but as long as you know how to craft prompts, give examples, and are really explicit with what you’re looking for, Claude and OpenAI are pretty good at sticking to the parameters you give it. Notion seems to occasionally just completely lose it’s mind. I’ve now twice had it completely ignore instructions I’ve given it, specifically about content on a page I want left as-is, or formatting I want to remain the same, and completely messes up a page. I’ve now twice had it delete embedded files that I specifically told it in the prompt to leave exactly as-is. Honestly, using a Notion MCP server and just having Claude Code or OpenAI Codex interact with Notion has been much more successful so far, which is strange to me since Notion is using both models under “Notion AI”.&lt;/p&gt;
&lt;p&gt;The idea they have here I think is solid, and Notion seems like a great place to use AI when a lot of time I’m just trying to consolidate data, summarize something, or do a bunch of busy repetitive work, but in it’s current state, you better be careful. It feels like this needs to bake in the oven for a while longer before they push it too far.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/notion-30/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/notion-30/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>On the Other Hand...</title><link>https://barnes.tech/blog/on-the-other-hand</link><guid isPermaLink="true">https://barnes.tech/blog/on-the-other-hand</guid><description>Exploring Apple&apos;s challenges and the balance between security and privacy in a complex landscape.</description><pubDate>Wed, 08 Oct 2025 04:22:58 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple.svg&quot; alt=&quot;Apple logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I recently wrote about how &lt;a href=&quot;https://barnes.tech/blog/apple-between-a-tough-spot-and-a-tough-spot/&quot;&gt;Apple and Tim Cook have been between a tough spot and a tough spot&lt;/a&gt;, and that it is more complicated than it might seem on the surface given the state of things. &lt;a href=&quot;https://substack.com/inbox/post/175351960&quot;&gt;This post by 22 year Apple veteran articulates a potent counter point.&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;...there is a symmetry to how the larger world equates values and actions; just as one stand against an invasive and unlawful request could help people see that Apple was genuinely committed to security and privacy, the removal of the ICEBlock app represents an act that squanders that same good faith.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Giving the bully your lunch money never stops the bully, it makes them take your lunch money more. There has to be a point where you draw a line in the sand and stand up. The comparison to the FBI wanting a back door after the San Bernadine case is stark and apt.&lt;/p&gt;
&lt;p&gt;Where is that line? How long will a wannabe dictator bully around a nearly $4 Trillion company?&lt;/p&gt;
&lt;p&gt;I am still really glad I’m not in charge of Apple right now.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://substack.com/inbox/post/175351960&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://substack.com/inbox/post/175351960&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/apple-between-a-tough-spot-and-a-tough-spot/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/apple-between-a-tough-spot-and-a-tough-spot/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Good CISOs / Bad CISOs</title><link>https://barnes.tech/blog/good-cisos-and-bad-cisos</link><guid isPermaLink="true">https://barnes.tech/blog/good-cisos-and-bad-cisos</guid><description>Explore key insights on effective CISO leadership and the difference between good and bad practices in IT security.</description><pubDate>Sun, 05 Oct 2025 18:08:44 GMT</pubDate><content:encoded>&lt;p&gt;I came across this recently, and thought it was a really good read - &lt;a href=&quot;https://www.philvenables.com/post/good-ciso---bad-ciso&quot;&gt;Good CISO / Bad CISO&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Key points ￼&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Strategy vs. projects&lt;/strong&gt;: Good CISOs craft a clear, generative strategy; bad CISOs confuse tool lists and project plans for strategy.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Flywheels vs. firefighting&lt;/strong&gt;: Good CISOs build scalable, self-reinforcing systems; bad CISOs chase incidents and ticket counts.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Business communication&lt;/strong&gt;: Good CISOs speak in risk, capital, opportunity with quantified positions; bad CISOs use techno-jargon and FUD.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ownership and culture&lt;/strong&gt;: Good CISOs own vendor risk, empower teams, surface bad news fast, and partner with the board; bad CISOs abdicate, bottleneck, and are last to know.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Excellent insights and definitely something I&apos;ve observed over the years. This applies to all IT leadership, not just CISOs.&lt;/p&gt;
&lt;p&gt;IT and Security are so often seen only as a cost center by businesses, but IT and Security leadership can change that if they approach this the right way.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.philvenables.com/post/good-ciso---bad-ciso&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.philvenables.com/post/good-ciso---bad-ciso&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple - Between a Tough Spot and a Tough Spot</title><link>https://barnes.tech/blog/apple-between-a-tough-spot-and-a-tough-spot</link><guid isPermaLink="true">https://barnes.tech/blog/apple-between-a-tough-spot-and-a-tough-spot</guid><description>A critical look at Tim Cook&apos;s leadership at Apple compared to Steve Jobs, exploring moral dilemmas and corporate challenges.</description><pubDate>Sat, 04 Oct 2025 23:51:14 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple.svg&quot; alt=&quot;Apple logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I recently posted Anil Dash’s article, &lt;a href=&quot;https://www.anildash.com/2025/09/09/how-tim-cook-sold-out-steve-jobs/&quot;&gt;How Tim Cook sold out Steve Jobs&lt;/a&gt;. I think it’s an interesting article, and I completely understand all of the sentiment of it. In many regards I feel the same way. The golden statue stunt really grosses me out. The weird dystopian dinner at the White House with tech leaders being forced to compliment the President makes me sick to my stomach. Extorting people for inauguration donations feels blatantly illegal. If it’s not it should be. All of this is not only disturbing, terrifying, gross, etc. but also just feels like this is a bad mafia movie, one with such a bad plot line that would feel way too on the nose to be any good. And I completely agree, this is not how Steve Jobs would have handled this situation, and I miss his presence and leadership at Apple.&lt;/p&gt;
&lt;p&gt;But Tim Cook is not Steve Jobs, no one is. This is an awful time in our history, and I think it’s naive to think that Apple, and Tim Cook personally, is necessarily just “wrong” and he should have done the “right” thing. Life is not that simple. There was and is no “right” solution to this mess of a situation.&lt;/p&gt;
&lt;p&gt;What would be different if Tim had dug in based on principal? It’s hard to know for sure, but it doesn’t seem to me like things would be any better. It seems reasonable that punitive tariffs would be impacting the price of all Apple products, which would either raise the price of all of them or Apple would have to eat billions of dollars of margin, which surely would impact the stock price significantly. It’s easy to feel like the stock price shouldn’t matter, and I agree it shouldn’t be the only thing, but it does matter. A lot of people’s investments both within Apple and outside of Apple are tied up in there and it’s not just a simple decision to tank that due to moral reasons.&lt;/p&gt;
&lt;p&gt;It’s also possible that Apple would be punished in to removing their diversity efforts to one degree or another. I’m not sure how but the administration has been far more effective than they should be able to be at destroying significant progress in those regards across the country. I may be wrong, but it doesn’t &lt;em&gt;seem&lt;/em&gt; like Apple has capitulated on that aspect of their internal culture.&lt;/p&gt;
&lt;p&gt;I don’t mean any of this as an excuse. This all feels gross. Apple has never been a perfect company, and Steve Jobs was never a perfect person, yet for much of my life it has been a company that I’ve really admired. I’ve worked for Apple or Apple Partners for nearly all of my professional life, and I feel passionate about the products, company, and culture of Apple. This has soured that to some degree. At the same time, I’m not sure that there is any way it could have been handled better to date. I can’t see any good choices, they’re all bad. I also have a pretty strong feeling that Tim hates this too.&lt;/p&gt;
&lt;p&gt;One thing is for sure, I am really glad I’m not in charge of Apple right now.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.anildash.com/2025/09/09/how-tim-cook-sold-out-steve-jobs/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.anildash.com/2025/09/09/how-tim-cook-sold-out-steve-jobs/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Home Plus Gemini</title><link>https://barnes.tech/blog/google-home</link><guid isPermaLink="true">https://barnes.tech/blog/google-home</guid><description>Exploring Google&apos;s renewed focus on smart home tech with Gemini and the challenges faced by Nest products.</description><pubDate>Sun, 21 Sep 2025 20:39:57 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/gemini.svg&quot; alt=&quot;Google Gemini Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Google is talking like they are going to take smart home seriously again with their new &quot;&lt;a href=&quot;https://blog.google/products/google-nest/gemini-for-home/&quot;&gt;Gemini infused Google Home&lt;/a&gt;&quot;. I&apos;ve written several times about how frustrating it has been to be a user of Google products, or rather former products, but The Verge summed it up really well -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The last five years have been trying ones for anyone committed to the Google Home ecosystem and Nest hardware. From &lt;a href=&quot;https://www.theverge.com/news/638171/google-discontinuing-nest-protect-smoke-alarm-nest-x-yale-smart-lock&quot;&gt;discontinued products&lt;/a&gt; and &lt;a href=&quot;https://www.theverge.com/news/708538/google-nest-aware-plus-price-increase-subscription&quot;&gt;increased subscription prices&lt;/a&gt; to the &lt;a href=&quot;https://www.theverge.com/2024/1/11/24034262/google-assistant-removes-17-features-layoffs-pixel-voice-commands&quot;&gt;removal of features&lt;/a&gt; and &lt;a href=&quot;https://gizmodo.com/google-assistant-is-basically-on-life-support-and-things-just-got-worse-2000635521&quot;&gt;declining performance of Google Assistant&lt;/a&gt; on Nest smart speakers, there hasn’t been a lot to be happy about, as also evidenced by the Google Home &lt;a href=&quot;https://www.reddit.com/r/googlehome/comments/1n5msm9/monthly_complaints_and_rants_megathread_september/&quot;&gt;“rant and complaints” megathread&lt;/a&gt; on Reddit.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What a completely unnecessary mess. I was a huge Nest fan from the very first thermostat they launched, and it has been incredibly frustrating to watch Google completely squander the company that essentially kickstarted the whole smart home concept, and just grind it in to mediocrity. If you dig in to the details of Nest pre-Google it&apos;s kind of nuts how many technologies they pioneered, including the early work on Thread and what has become Matter. If Google had been able to keep their foot on the gas and actually improved Nest, it&apos;s crazy to think how far of a lead they would have today.&lt;/p&gt;
&lt;p&gt;Needless to say, I&apos;m skeptical. Honestly though, even if whatever they are coming out with is absolutely incredible, do any of us trust them to stick with it this time?&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/report/781221/the-end-of-nest-google-home-smart-home&quot;&gt;Google Dismantled Nest - Can Gemini Save What&apos;s Left?&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/report/781221/the-end-of-nest-google-home-smart-home&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/report/781221/the-end-of-nest-google-home-smart-home&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.google/products/google-nest/gemini-for-home/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.google/products/google-nest/gemini-for-home/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/638171/google-discontinuing-nest-protect-smoke-alarm-nest-x-yale-smart-lock&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/638171/google-discontinuing-nest-protect-smoke-alarm-nest-x-yale-smart-lock&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/708538/google-nest-aware-plus-price-increase-subscription&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/708538/google-nest-aware-plus-price-increase-subscription&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2024/1/11/24034262/google-assistant-removes-17-features-layoffs-pixel-voice-commands&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2024/1/11/24034262/google-assistant-removes-17-features-layoffs-pixel-voice-commands&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gizmodo.com/google-assistant-is-basically-on-life-support-and-things-just-got-worse-2000635521&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://gizmodo.com/google-assistant-is-basically-on-life-support-and-things-just-got-worse-2000635521&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/googlehome/comments/1n5msm9/monthly_complaints_and_rants_megathread_september/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.reddit.com/r/googlehome/comments/1n5msm9/monthly_complaints_and_rants_megathread_september/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Notion 3.0</title><link>https://barnes.tech/blog/notion-30</link><guid isPermaLink="true">https://barnes.tech/blog/notion-30</guid><description>Notion&apos;s latest update enhances AI capabilities, database permissions, and customization options for improved productivity.</description><pubDate>Fri, 19 Sep 2025 22:50:39 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Notion.svg&quot; alt=&quot;Notion Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Speaking of Notion, they announced several new features yesterday that are pretty substantial. AI got a big upgrade, allowing it to act more &quot;agentic&quot; on your behalf. I tested this and while it&apos;s not perfect, it&apos;s pretty good! It has already helped me clean up several databases and pages that were disorganized but not quite worth the time of manually cleaning up for me.&lt;/p&gt;
&lt;p&gt;You can also customize the agent with memory and custom instructions now. Seems to work relatively well, and is a very welcome change. It&apos;s also not perfect but it&apos;s excellent progress. It seems like soon you&apos;ll be able to create completely custom agents as well, which I&apos;m very interested in seeing and exploring.&lt;/p&gt;
&lt;p&gt;Finally, they also added much more granular database permissions which is one of the biggest missing features, and extremely welcome. Add this to the offline mode they launched last month and it has been a very good run so far for Notion this year in my book.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.notion.com/blog/introducing-notion-3-0&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.notion.com/blog/introducing-notion-3-0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.notion.com/releases/2025-08-19&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.notion.com/releases/2025-08-19&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Notion Hex Color Swatches</title><link>https://barnes.tech/blog/notion-hex-color-swatches</link><guid isPermaLink="true">https://barnes.tech/blog/notion-hex-color-swatches</guid><description>Learn how to preview hex colors in Notion using a clever inline equation workaround.</description><pubDate>Fri, 19 Sep 2025 22:19:05 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Notion.svg&quot; alt=&quot;Notion Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;One thing I&apos;ve wanted to be able to do in Notion for a while is to have some way of showing a hex color when you put it somewhere in a block, similar to how Slack gives you a little preview, or in &lt;a href=&quot;https://barnes.tech/blog/raycast/&quot;&gt;Raycast&lt;/a&gt; you get a preview as well.&lt;/p&gt;
&lt;p&gt;You still can&apos;t technically do it, but I found a work around that&apos;s better than nothing.&lt;/p&gt;
&lt;p&gt;If you use an inline equation block you can put (obviously with whatever color you are looking for. Adding space in there just allows it to be a longer line) -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;\colorbox{#3a3a3a}{            }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;and it will give you a little preview of that color. Not perfect, but a nice little way to add a little preview of colors right on the page.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/raycast&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/raycast&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google DNSSEC MX Records</title><link>https://barnes.tech/blog/google-dnssec-mx-records</link><guid isPermaLink="true">https://barnes.tech/blog/google-dnssec-mx-records</guid><description>Learn how to enhance email security in Google Workspace using DNSSEC-signed MX records to prevent tampering and unauthorized access.</description><pubDate>Fri, 05 Sep 2025 23:30:13 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;m not sure how long this has been available, but it was news to me today.  Apparently Google gives you the option to use DNSSEC secured MX records now for Google Workspace accounts -&lt;/p&gt;
&lt;p&gt;https://support.google.com/a/answer/16528693?hl=en&lt;/p&gt;
&lt;h2&gt;Enhancing Email Security with DNSSEC-Signed MX Records in Google Workspace&lt;/h2&gt;
&lt;p&gt;Google Workspace administrators can improve domain email security by using DNS Security Extensions (DNSSEC)-signed MX hosts instead of the standard &lt;strong&gt;smtp.google.com&lt;/strong&gt; MX value. DNSSEC adds digital signatures to DNS records, including MX records, which verifies authenticity and prevents tampering or redirection to unauthorized servers.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Implementation Steps:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Follow the standard &lt;a href=&quot;url://1&quot;&gt;Google Workspace MX record setup&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In Step 4, for the &lt;strong&gt;Value / Answer / Destination&lt;/strong&gt; field, enter the DNSSEC-signed MX records below instead of &lt;strong&gt;smtp.google.com&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;| Priority | Server           |
|----------|------------------|
| 10       | MX1.SMTP.GOOG    |
| 20       | MX2.SMTP.GOOG    |
| 30       | MX3.SMTP.GOOG    |
| 40       | MX4.SMTP.GOOG    |&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;By implementing DNSSEC-signed MX records, you strengthen email authentication and reduce risk from DNS-based attacks.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://support.google.com/a/answer/16528693?hl=en&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://support.google.com/a/answer/16528693?hl=en&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Browser Company - More Fallout</title><link>https://barnes.tech/blog/the-browser-company-more-fallout</link><guid isPermaLink="true">https://barnes.tech/blog/the-browser-company-more-fallout</guid><description>Exploring the implications of Atlassian&apos;s acquisition of The Browser Company and its potential impact on future browser development.</description><pubDate>Fri, 05 Sep 2025 17:31:21 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/RIP The Browser Company.png&quot; alt=&quot;The logo of the browser company with a skull and crossbones on it&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Here&apos;s a video deep dive about The Browser Company&apos;s announcement that they are being acquired by Atlassian, including diving in to why The Browser Company was looking to be acquired, and why Atlassian may have wanted to buy them.&lt;/p&gt;
&lt;p&gt;No one online seems to think this is a good acquisition for The Browser Company. It&apos;s almost certainly going to make Dia (or any other browsers they are working on) much worse.&lt;/p&gt;
&lt;p&gt;There are some really interesting and compelling points.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=45fbNFMd_vc&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=45fbNFMd_vc&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Browser Company is being acquired</title><link>https://barnes.tech/blog/the-browser-company-is-being-acquired</link><guid isPermaLink="true">https://barnes.tech/blog/the-browser-company-is-being-acquired</guid><description>The Browser Company, known for Arc and Dia, is being acquired by Atlassian, raising concerns among users.</description><pubDate>Thu, 04 Sep 2025 15:42:50 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/RIP The Browser Company.png&quot; alt=&quot;The logo of the browser company with a skull and crossbones on it&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;From the Verge - &lt;a href=&quot;https://www.theverge.com/web/770947/browser-company-arc-dia-acquired-atlassian&quot;&gt;The Browser Company, maker of Arc and Dia, is being acquired&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;As they say in the amazing documentary &quot;&lt;a href=&quot;https://www.youtube.com/watch?v=W7JyjZI3LUM&amp;#x26;t=6s&quot;&gt;Rejected&lt;/a&gt;&quot; -&lt;/p&gt;
&lt;p&gt;I honestly hate using any Atlassian software so much. Real bummer. Hopefully some of these other browsers popping up will be something I can switch to in the near future.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/web/770947/browser-company-arc-dia-acquired-atlassian&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/web/770947/browser-company-arc-dia-acquired-atlassian&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=W7JyjZI3LUM&amp;t=6s&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=W7JyjZI3LUM&amp;t=6s&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>AI Laundering</title><link>https://barnes.tech/blog/ai-laundering</link><guid isPermaLink="true">https://barnes.tech/blog/ai-laundering</guid><description>Explore how &apos;Context Rot&apos; affects LLM performance and the benefits of using multiple AI models for better results.</description><pubDate>Sat, 30 Aug 2025 19:36:09 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/ai-light-mode.svg&quot; alt=&quot;AI Sparkle Icon&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h2&gt;Context Rot&lt;/h2&gt;
&lt;p&gt;If you&apos;ve been using LLMs for long tasks like Coding, you probably notice the longer you have an individual chat session, the results start to get worse over time. This is particularly evident when you switch tasks entirely after working on something specific for a while. Some are calling this &quot;Context Rot&quot; &lt;a href=&quot;https://research.trychroma.com/context-rot&quot;&gt;Context Rot: How Increasing Input Tokens Impacts LLM Performance&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I find this whole idea pretty interesting. For a while now I&apos;ve found that if you have one model try a bunch of tasks, then have another model check that work and make suggestions about how to improve it (ideally from another provider, since the training and data from another company seems to add a different perspective). This seems to make much higher quality results. I will often have one LLM be more of the master planner, and another be doing the individual tasks.&lt;/p&gt;
&lt;p&gt;To some degree, certain products already do this. Claude code for instance (with the right plan at least) will use the Opus model for planning tasks, then hand it to Sonnet to handle individual tasks laid out by Opus. You can go even further by setting up subagents with individual tasks and even individual instructions / context, however I still find I get better results by handing it back and forth from more than one provider. This isn&apos;t only applicable to code either, I often find doing this with text, or documentation, or any number of other things is also quite beneficial.&lt;/p&gt;
&lt;p&gt;I&apos;ve been calling this &quot;AI Laundering&quot;. Yes, I do amuse myself.&lt;/p&gt;
&lt;p&gt;This has taken a huge leap with OpenAI&apos;s recent updates to Codex CLI which has gotten &lt;em&gt;dramatically&lt;/em&gt; better in the last week. I try to not mention specific products too much because they are changing so much so rapidly, anything specific about products seems to age like milk, but it&apos;s worth noting in this case. Having Claude Code write code, then having Codex check the work and critique it, then go back to Claude Code with the recommendations seems to make a huge difference. &lt;a href=&quot;https://www.youtube.com/watch?v=GJzfNWK4iHg&quot;&gt;I&apos;m not alone either, several others are noting this as well.&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://research.trychroma.com/context-rot&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://research.trychroma.com/context-rot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=TUjQuC4ugak&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=TUjQuC4ugak&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=GJzfNWK4iHg&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=GJzfNWK4iHg&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Cloudflare vs Perplexity and the Future of the Internet</title><link>https://barnes.tech/blog/cloudflare-vs-perplexity-and-the-future-of-the-internet</link><guid isPermaLink="true">https://barnes.tech/blog/cloudflare-vs-perplexity-and-the-future-of-the-internet</guid><description>Explore the conflict between Cloudflare and Perplexity over web crawling and AI access rights.</description><pubDate>Sat, 09 Aug 2025 20:01:30 GMT</pubDate><content:encoded>&lt;p&gt;Cloudflare posted a technically grounded exposé titled &lt;strong&gt;“Perplexity is using stealth, undeclared crawlers to evade website no-crawl directives.”&lt;/strong&gt; They documented a controlled experiment: domains blocked via &lt;code&gt;robots.txt&lt;/code&gt; and WAF rules, yet Perplexity reportedly bypassed the protections by rotating IPs, spoofing user-agents (e.g., impersonating Chrome on macOS), and shifting ASNs. The conclusion: Perplexity was removed from Cloudflare’s Verified Bots program and targeted with new heuristics. CEO Matthew Prince went so far as to liken this to “North Korean hackers,” calling it “time to name, shame, and hard block them.”&lt;/p&gt;
&lt;p&gt;Perplexity’s reply, &lt;strong&gt;“Agents or Bots? Making Sense of AI on the Open Web,”&lt;/strong&gt; framed their behavior not as crawling but user-driven fetching, aligning it with how a human user navigates a site. They dismissed Cloudflare’s piece as a “sales pitch” and hinted at a third-party being responsible for some of the behavior.&lt;/p&gt;
&lt;p&gt;I feel like both articles go too hard after the other. Also, you never know what went on behind the scenes, but from the outside it seems like this was just thrown online in a blog with pretty harsh rhetoric. Seems overly petty to me on both articles, and I&apos;m not sure what it accomplishes other than both companies seemingly trying to get some headline attention.&lt;/p&gt;
&lt;p&gt;Still, this isn&apos;t a simple problem. Website owners should be able to choose what kind of traffic accesses their sites, and services like Cloudflare are one of the few ways they can enforce things like that. That said, if you&apos;re using an &quot;agentic&quot; (still don&apos;t love that term) AI platform where you are asking AI to go find something or do something on your behalf, I can see the argument that it should be able to do so with the same access a user would have.&lt;/p&gt;
&lt;p&gt;It&apos;s not an easy problem.&lt;/p&gt;
&lt;p&gt;While I do believe website owners should have control over those things as strictly as they want, Cloudflare feels like they are throwing their weight around too much for my comfort recently. It feels like they have been pushing the line about how much they, as essentially an infrastructure provider, should be editorializing on this kind of thing.&lt;/p&gt;
&lt;p&gt;Their &lt;strong&gt;“Content Independence Day — No AI Crawl Without Compensation”&lt;/strong&gt; post further deepens my concern. This feels like it is right on the border between fighting for the rights of content creators, and simply platform fiat. To me, the fact that this is only shown directly to users as enabled on new accounts, and the fact that it can be turned off just barely keeps it from crossing the line to me, it still makes me uncomfortable.&lt;/p&gt;
&lt;p&gt;Many people are fretting that AI will be &quot;the end of the open web&quot;. I would argue that effectively happened several years ago, but there&apos;s no question AI is upending everything left on whatever the web is any more.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/content-independence-day-no-ai-crawl-without-compensation/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/content-independence-day-no-ai-crawl-without-compensation/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/perplexity-is-using-stealth-undeclared-crawlers-to-evade-website-no-crawl-directives/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/perplexity-is-using-stealth-undeclared-crawlers-to-evade-website-no-crawl-directives/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.perplexity.ai/hub/blog/agents-or-bots-making-sense-of-ai-on-the-open-web&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.perplexity.ai/hub/blog/agents-or-bots-making-sense-of-ai-on-the-open-web&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/08/05/some-people-are-defending-perplexity-after-cloudflare-named-and-shamed-it/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2025/08/05/some-people-are-defending-perplexity-after-cloudflare-named-and-shamed-it/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Backtracks on URL Shortener</title><link>https://barnes.tech/blog/google-backtracks</link><guid isPermaLink="true">https://barnes.tech/blog/google-backtracks</guid><description>Google updates goo.gl link plans, preserving active URLs while discontinuing inactive ones. Learn more about the changes.</description><pubDate>Sun, 03 Aug 2025 18:21:32 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;From Google&apos;s keyword blog -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We’re updating our plans for goo.gl links.&lt;/p&gt;
&lt;p&gt;While we previously announced discontinuing support for all goo.gl URLs after August 25, 2025, we&apos;ve adjusted our approach in order to preserve actively used links.&lt;/p&gt;
&lt;p&gt;We understand these links are embedded in countless documents, videos, posts and more, and we appreciate the input received.&lt;/p&gt;
&lt;p&gt;Nine months ago, we redirected URLs that showed no activity in late 2024 to a message specifying that the link would be deactivated in August, and these are the only links targeted to be deactivated. If you get a message that states, “This link will no longer work in the near future”, the link won&apos;t work after August 25 and we recommend transitioning to another URL shortener if you haven’t already.&lt;/p&gt;
&lt;p&gt;All other goo.gl links will be preserved and will continue to function as normal. To check if your link will be retained, visit the link today. If your link redirects you without a message, it will continue to work.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is much more reasonable, though I&apos;m not sure why they wouldn&apos;t have just done this from the beginning. I can&apos;t imagine all of this costs Google that much to just keep running. Still, this illustrates a fairly big issue with one company having so much power over the internet.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.google/technology/developers/googl-link-shortening-update/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.google/technology/developers/googl-link-shortening-update/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Dropbox Password Manager</title><link>https://barnes.tech/blog/dropbox-password-manager</link><guid isPermaLink="true">https://barnes.tech/blog/dropbox-password-manager</guid><description>Dropbox discontinues its password manager service, raising concerns for users. Find out more about the timeline and implications.</description><pubDate>Fri, 01 Aug 2025 03:27:06 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/dropbox.png&quot; alt=&quot;Dropbox Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;This week &lt;a href=&quot;https://help.dropbox.com/installs/dropbox-passwords-discontinuation&quot;&gt;Dropbox announced that they are discontinuing their password manager&lt;/a&gt;. I don’t know anyone that actually uses their password manager, so it’s probably not many people impacted… still, this is a super tight timeline.&lt;/p&gt;
&lt;p&gt;I’m not sure exactly what would happen if you don’t do anything and they kill it, but if my parents or in laws were using this it would be potentially disastrous.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://help.dropbox.com/installs/dropbox-passwords-discontinuation&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://help.dropbox.com/installs/dropbox-passwords-discontinuation&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>TRMNL X</title><link>https://barnes.tech/blog/trmnl-x</link><guid isPermaLink="true">https://barnes.tech/blog/trmnl-x</guid><description>TRMNL X announced: a larger, waterproof, and more powerful version of the original TRMNL device. Pre-order details inside!</description><pubDate>Wed, 30 Jul 2025 22:47:27 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/trmnl-logo.svg&quot; alt=&quot;TRMNL Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Announced today, TRMNL is making a new version they are calling TRMNL X. The TRMNL X is interactive, larger, higher resolution, waterproof, and more powerful than the original (Now called the OG) TRMNL. I wrote about how much I like my TRMNL previously - &lt;a href=&quot;https://barnes.tech/blog/trmnl/&quot;&gt;TRMNL&lt;/a&gt;. I love it, but there are times I wish there was a bigger one. Now there will be!&lt;/p&gt;
&lt;p&gt;I&apos;m really excited about this new version, and have placed a pre-order. Here is my affiliate link again if you would like to place a pre-order as well - https://usetrmnl.com/?ref=robby10&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://usetrmnl.com/?ref=robby10&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://usetrmnl.com/?ref=robby10&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=D0wQ8gCxCvw&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=D0wQ8gCxCvw&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google URL Shortener</title><link>https://barnes.tech/blog/google-url-shortener</link><guid isPermaLink="true">https://barnes.tech/blog/google-url-shortener</guid><description>Google is shutting down its URL shortener, leading to link rot and the need for alternatives like Dub.co.</description><pubDate>Wed, 30 Jul 2025 22:30:01 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-url-shortener.png&quot; alt=&quot;Error message shown when using a URL that Google will not support any more.&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Although this was announced a fair amount of time ago, the time is nearly here. Google is killing off all shortened URLs that were using the &lt;a href=&quot;https://goo.gl&quot;&gt;&lt;code&gt;https://goo.gl&lt;/code&gt;&lt;/a&gt; short link.&lt;/p&gt;
&lt;p&gt;Google doing what Google does best - Killing off products. There will be an enormous amount of link rot because of this.&lt;/p&gt;
&lt;p&gt;It’s a big problem how much of the internet Google controls or heavily influences. It’s not Google per se that is the problem, it’s a problem with any one company controlling that much of the internet.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://Dub.co&quot;&gt;Dub.co&lt;/a&gt; is my favorite alternative for dynamic links. Really great platform that is easy to use, and does exactly what it’s supposed to. They are also launching a new partner platform affiliate / referral platform that we have been in early testing for, and it’s built with the same standard of quality as the rest of the platform.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://dub.co/blog/firebase-alternative&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://dub.co/blog/firebase-alternative&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://refer.dub.co/robby-barnes-ovjp&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://refer.dub.co/robby-barnes-ovjp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://developers.googleblog.com/en/google-url-shortener-links-will-no-longer-be-available/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/713125/google-url-shortener-links-shutdown-deadline&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/713125/google-url-shortener-links-shutdown-deadline&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple&apos;s Cloud</title><link>https://barnes.tech/blog/apples-cloud</link><guid isPermaLink="true">https://barnes.tech/blog/apples-cloud</guid><description>Exploring Apple&apos;s potential cloud service offerings to compete with AWS and Google Cloud, focusing on business tools and productivity.</description><pubDate>Mon, 07 Jul 2025 22:38:26 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple.svg&quot; alt=&quot;Apple logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;According to some &lt;a href=&quot;https://www.theinformation.com/articles/apple-explored-launching-cloud-service-developers&quot;&gt;recent reporting&lt;/a&gt;, Apple considered launching a cloud service to compete more with public cloud providers like AWS, Azure, and Google Cloud. Many people are commenting recently on Apple being late to AI, or potentially even too late to it, but I have long believed that the real boat they missed was with Cloud in general. I would argue that them missing out on Cloud is exactly why they are in such a tough position with AI now.&lt;/p&gt;
&lt;p&gt;First, when I talk about Cloud, I’m referring more to AWS, Google Cloud, etc. not really what iCloud is. I don’t think it would be that helpful to completely copy what the other providers are broadly doing. There are plenty of good options, and to some degree it’s just a race to the bottom cost wise, but there are plenty of developer and business focused tools that should be available in an Apple cloud.&lt;/p&gt;
&lt;p&gt;Some ideas, off the top of my head -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Business grade storage for businesses to use. You should be able to pay for whatever you need, not have weird “buckets” of storage like iCloud has for business customers. You should also be able to manage these &lt;em&gt;like a business&lt;/em&gt;. You should have shared spaces for storage that multiple people can access, you should have rich ACL’s, you should be able to transfer data from one user to another as an admin if someone is terminated. This needs to be far more like Box, Dropbox, Google Drive, etc.
&lt;ul&gt;
&lt;li&gt;Bonus - If you had the ability to host static files on an Apple cloud with an S3 compatible endpoint, that would be fantastic.&lt;/li&gt;
&lt;li&gt;Bonus bonus - Why do we &lt;em&gt;still&lt;/em&gt; not have time machine in the cloud?&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Identity manager - Apple should take on the identity providers like Google, Microsoft, Okta, etc. by offering a more capable and business oriented “Sign-in with Apple” infrastructure. At the same time, they need to integrate with the market leaders &lt;em&gt;far&lt;/em&gt; more than they currently do. You should have granular access controls, you should be able to federate these identities elsewhere, support SAML and OAuth, allow groups for access controls, much richer HRIS integrations, etc. there is a long list they could do here. It can’t be half-assed, they need to create an alternative that people would want to use because it’s a good product.
&lt;ul&gt;
&lt;li&gt;They should extend this to the EDU market too, for free.&lt;/li&gt;
&lt;li&gt;You should (optionally) be able to sync essentially your whole Mac through the cloud. You should be able to walk up to a computer, sign in to it, and have everything laid out and installed the way you like it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Productivity software - They should push iWork much further than it has ever gone. Make this a real competitor to Office and Google Workspace. They are very nice tools to use, but they seem utterly unaware of how nearly every business uses these tools. They need to be much more interoperable, significantly improve collaboration, and really push the boundaries of what you can do with these apps.&lt;/li&gt;
&lt;li&gt;Mail - Email isn’t going anywhere, particularly in business. Apple should make a real, enterprise-grade email service that is designed for businesses. You need to be able to have WAY more control over email than iCloud allows, and add functionality for groups, access control lists, etc. You also need to make it easy to use business email security tools and backup tools. Take e-discovery seriously and provide a way to do that, and allow 3rd party solutions as well. Importantly - Don’t make it restricted to only Apple devices either.&lt;/li&gt;
&lt;li&gt;Contacts / Calendars, etc. - To finish out the productivity tools they need to make contacts and calendars business ready too. Shared contacts, integrations with CRM’s, directory syncing, &lt;em&gt;functional&lt;/em&gt; deduplication, far more flexible calendar options, scheduling, conference call integrations, etc. There is a long list of what they could do here.&lt;/li&gt;
&lt;li&gt;Gaming - If Apple wants to be taken more seriously in gaming (which, honestly I can’t tell if they do or don’t), they should build a similar application to Xbox Live.&lt;/li&gt;
&lt;li&gt;iMessage for businesses - They should make something like Slack but not too much like Slack. Make a business version of iMessage that can be used for those kinds of things.&lt;/li&gt;
&lt;li&gt;Business photo sharing - We work with a lot of businesses who rely heavily on taking photos for the business and then making sure everyone has access to them. This is surprisingly difficult to do in 2025 without a bunch of manual instructions that no one wants to follow. This might not make sense for every business, but I know several who would pay a ton to have this work seamlessly, and have a repository shared with everyone who needs access to it (same thing with ACLs, etc.)&lt;/li&gt;
&lt;li&gt;Remote Desktop - Make this require a cloud subscription. Make it only work for devices in Apple Business Manager. I’d even be fine if it was built in but still required an approval dialogue for the end users before you join to completely share the screen, or maybe a big warning that comes up so you can’t do it without the end user knowing, but this is such a royal pain to deal with on Mac with 3rd party tools, it makes it extremely difficult to support &lt;em&gt;business owned&lt;/em&gt; devices.
&lt;ul&gt;
&lt;li&gt;This should extend to iOS too. A lot of the plumbing is in place, just need to make it work for businesses.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;FaceTime for business - Compete with Zoom, Google Meet, MS Teams, etc.!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Some of these things they have been making glacial progress in with Apple Business Manager over the last few years, but honestly in many ways, it seems like Apple is just oblivious to how all of this stuff works everywhere else. Most of their services are pretty solid for personal use, but when you try to apply them to businesses, they’re just… Weirdly disconnected from how every other service works.&lt;/p&gt;
&lt;p&gt;Some of this is in the name of “privacy”, though over the years I am unfortunately starting to think that some of the reason Apple leans on that so much is to be anticompetitive. Privacy should mean a choice of how to use the device and it’s services, not just lock you out of things that Apple doesn’t want you to use. This should apply to business-owned devices too, and the businesses should be able to do what they need to do.&lt;/p&gt;
&lt;p&gt;A large cloud infrastructure to support all of this would lead to several things that are critically important to Apple right now. One - How long have they been beating the “Services revenue” drum? Guess who spends an enormous amount of money - Businesses / Enterprise. Second - I truly believe one of the main reasons Apple is struggling with AI, and frankly why Siri has been so bad for so long is that they don’t take cloud seriously. They need to be able to run large models in a cloud, and it should be controlled and operated by them. The cloud-based responses need to be incredibly fast, which means infrastructure needs to be close to people. Cloud would also mean that Apple would need to deploy updates continuously, and move faster than they ever have in this space. They also need to vastly improve their web apps to support functionality.&lt;/p&gt;
&lt;p&gt;I could think of a dozen more examples that to me make a ton of sense, but I’m not convinced Apple could do this, even if they decided to. This would cost a ludicrous amount of money, and they would be trying to catch up to some pretty enormous leads. They have a ludicrous amount of money, but I think culturally Apple is just not prepared for this. Hopefully they can at least be more flexible to integrations, and partner with some cloud services providers in the short term to more rapidly improve the areas they desperately need.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.theinformation.com/articles/apple-explored-launching-cloud-service-developers&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theinformation.com/articles/apple-explored-launching-cloud-service-developers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.techradar.com/pro/apple-reportedly-considered-launching-its-own-public-cloud&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.techradar.com/pro/apple-reportedly-considered-launching-its-own-public-cloud&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Gemini CLI</title><link>https://barnes.tech/blog/gemini-cli</link><guid isPermaLink="true">https://barnes.tech/blog/gemini-cli</guid><description>Explore Google&apos;s Gemini CLI, a powerful open-source AI agent with an impressive context window and free usage options.</description><pubDate>Wed, 25 Jun 2025 19:22:14 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Gemini CLI.png&quot; alt=&quot;Google Gemini Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;It is certainly interesting to see the level of competition in the AI space right now. I&apos;ve become a huge fan of Claude Code (and will likely continue to use it) but Google is coming in strong with Gemini CLI announced today - &lt;a href=&quot;https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/&quot;&gt;Gemini CLI: your open-source AI agent&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Gemini has a couple of advantages -&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The context window is enormous compared to all of the other models. This is using 2.5 Pro, which has a 1,000,000 token context window, which is kind of mind boggling.&lt;/li&gt;
&lt;li&gt;They are offering a pretty significant amount of usage for free. Claude Code and Codex from OpenAI are both pretty good but will rack up the cost pretty quickly.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I&apos;ve only had the chance to use it for a couple of minutes, but it seems like a nice experience. I&apos;ve run in to a couple of hiccups though. First, you can&apos;t use a Google Workspace account yet. Second, because of that I tried setting up a Gemini API key instead, but for some reason it wouldn&apos;t recognize it and kept trying to do the oauth authentication anyway. I switched to a gmail account though and it worked fine.&lt;/p&gt;
&lt;p&gt;My favorite terminal app, &lt;a href=&quot;https://app.warp.dev/referral/ZL9WG&quot;&gt;Warp&lt;/a&gt; also announced what they are calling &lt;a href=&quot;https://www.youtube.com/watch?v=k9BRhSbVSpI&quot;&gt;&quot;Warp 2.0&quot;&lt;/a&gt; which is essentially adding more &quot;agentic&quot; capabilities to their AI tools as well. I think they might have a hard time keeping up with all these other CLI tools that are taking off right now, but I hope they are able to stick around!&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.google/technology/developers/introducing-gemini-cli-open-source-ai-agent/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/google-gemini/gemini-cli&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/google-gemini/gemini-cli&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://app.warp.dev/referral/ZL9WG&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://app.warp.dev/referral/ZL9WG&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=k9BRhSbVSpI&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=k9BRhSbVSpI&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Wispr Flow</title><link>https://barnes.tech/blog/wispr-flow</link><guid isPermaLink="true">https://barnes.tech/blog/wispr-flow</guid><description>Discover Wispr Flow, an AI dictation app for Mac and iPhone that enhances productivity with smart transcription and formatting.</description><pubDate>Mon, 23 Jun 2025 03:05:02 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Flow Logo.svg&quot; alt=&quot;Wispr Flow logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I recently came across an app called &lt;a href=&quot;https://wisprflow.ai/&quot;&gt;Wispr Flow&lt;/a&gt;. Wispr Flow is an AI powered dictation that works anywhere on the Mac. They have an iPhone app too, which I&apos;ll get to in a second.&lt;/p&gt;
&lt;p&gt;The platform uses AI to transcribe, auto-edit, and format your speech into polished text, and adapts its tone to different apps. I had 2 thoughts before using it.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Sounds over hyped on their website. I&apos;m always skeptical of software that claims to be a game changer for productivity, but I also tend to not be able to help but test them out.&lt;/li&gt;
&lt;li&gt;I don&apos;t think I would ever just dictate to my computer. After all, macOS has this built in, and it&apos;s decent, and that has never stuck for me.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Like I said, I can&apos;t help myself though. I downloaded it and forced my self to really give it a try. After about a day, I was sold. It honestly feels like a game changer for me. I definitely still feel very weird talking to my computer, and I don&apos;t use it in all cases, but I find that there are a ton of cases that it&apos;s extremely helpful. The auto correction clearly powered by AI is fantastic. You can correct yourself, and it&apos;s remarkably good at writing what you meant to say, rather than a mistake you may have said. You can also add a dictionary of specific words / spellings that you use frequently that may be difficult to spell. It will also suggest items for the dictionary if you say something, then go back and correct it.&lt;/p&gt;
&lt;p&gt;It also gets some amount of context of where your cursor is, and uses that to help format the text given that context. If you&apos;re writing an email, it will format it like an email. If you&apos;re using the command line, it will format it like the command line.&lt;/p&gt;
&lt;p&gt;There is an iOS app, which also works pretty well, but the limitations of iOS make it fairly clunky. It shows up as a keyboard, but then you have to flip over to the app, turn on dictation, and then flip back. Once you do that, it works well, but that is a pain to do.&lt;/p&gt;
&lt;p&gt;Definitely give it a shot if this kind of thing sounds interesting.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://wisprflow.ai/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://wisprflow.ai/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Zendesk Voice Summary Tool</title><link>https://barnes.tech/blog/zendesk-voice-summary-tool</link><guid isPermaLink="true">https://barnes.tech/blog/zendesk-voice-summary-tool</guid><description>Learn how to build a voice transcription tool for Zendesk using AI for automation and efficiency.</description><pubDate>Sat, 14 Jun 2025 19:52:26 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/zendesk.svg&quot; alt=&quot;Zendesk Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h2&gt;How I Built a Voice Transcription Tool for Zendesk (and Made It a CLI)&lt;/h2&gt;
&lt;p&gt;At work we&apos;ve used Zendesk for several years for our ticketing. In the last few years we&apos;ve also used the Zendesk Talk voice for the phone (and SMS) as well. It&apos;s not perfect, but it helps keep information about tickets that are phone calls in the same system as everything else. It records each call, and makes it available via API as well. This was a great use case for AI, both in helping me build this tool, and using AI endpoints for transcription and summarization.&lt;/p&gt;
&lt;p&gt;Listening to each call and trying to summarize what the issue was and what was done to resolve the issue is tedious. If the person who received the call can immediately summarize it right after the call that can work, but it&apos;s easy to forget something, and if we are busy, it&apos;s hard to make the time for it. Knowing what the issue was and what was done to resolve it is valuable information though, and helps us remain proactive in support instead of always reactive.&lt;/p&gt;
&lt;p&gt;So I built a tool to automate the whole process. It downloads voice recordings from Zendesk tickets, transcribes them with OpenAI&apos;s Whisper, generates summaries with GPT-4o, and posts everything back to the ticket.&lt;/p&gt;
&lt;p&gt;Here&apos;s how it works and how I packaged it up as a command-line tool.&lt;/p&gt;
&lt;h2&gt;The Basic Architecture&lt;/h2&gt;
&lt;p&gt;The tool works in three phases:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Download and Transcribe&lt;/strong&gt; - Grabs all voice recordings from a ticket and runs them through Whisper&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Summarize&lt;/strong&gt; - Takes all the transcripts and creates a structured summary with GPT-4o-mini&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Post Back&lt;/strong&gt; - Adds the summary as a private comment on the ticket.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;File Management&lt;/h2&gt;
&lt;p&gt;One thing I learned early on - you need a consistent naming scheme or you&apos;ll lose track of files fast:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;file_basename = f&quot;ticket{ticket_id}_call{call_id}&quot;
audio_file = file_basename + &quot;.mp3&quot;
transcript_file = file_basename + &quot;.txt&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This naming convention means I can easily find all files for a ticket, and more importantly, the tool can check if it&apos;s already processed something:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;if not os.path.exists(transcript_file):
    print(&quot;   Transcribing audio with Whisper...&quot;)
    transcript = transcribe_audio(audio_file)
    with open(transcript_file, &quot;w&quot;, encoding=&quot;utf-8&quot;) as tf:
        tf.write(transcript)
else:
    if skip_existing:
        print(&quot;   Skipping - transcript already exists&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This saves a ton of time (and API costs) when reprocessing tickets.&lt;/p&gt;
&lt;h2&gt;Handling API Failures&lt;/h2&gt;
&lt;p&gt;In order to handle potential failures, I built in a simple retry decorator that handles transient failures:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def retry_on_failure(func):
    &quot;&quot;&quot;Decorator to retry a function on failure.&quot;&quot;&quot;
    def wrapper(*args, **kwargs):
        for attempt in range(MAX_RETRIES):
            try:
                return func(*args, **kwargs)
            except Exception as e:
                if attempt &amp;#x3C; MAX_RETRIES - 1:
                    print(f&quot;  Warning: Attempt {attempt + 1} failed: {str(e)}&quot;)
                    print(f&quot;  Retrying in {RETRY_DELAY} seconds...&quot;)
                    time.sleep(RETRY_DELAY)
                else:
                    print(f&quot;  Error: All {MAX_RETRIES} attempts failed.&quot;)
                    raise
        return None
    return wrapper
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;You can add &lt;code&gt;@retry_on_failure&lt;/code&gt; on any function that makes API calls and you&apos;re good to go.&lt;/p&gt;
&lt;h2&gt;The Multi-Call Problem&lt;/h2&gt;
&lt;p&gt;Tickets often have multiple voice recordings - maybe the customer called back, or there were multiple conversations. I needed to handle this scenario, ideally without creating a bunch of individual private comments, making it hard to digest and adding a lot of noise.&lt;/p&gt;
&lt;p&gt;For single calls, it&apos;s simple - just add a timestamp header:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def summarize_multiple_transcripts(transcripts_data: List[Dict], context: Dict) -&gt; str:
    &quot;&quot;&quot;Summarize multiple call transcripts into a single comprehensive summary.&quot;&quot;&quot;
    if len(transcripts_data) == 1:
        # Single call - just add timestamp header
        data = transcripts_data[0]
        timestamp = format_timestamp(data[&apos;started_at&apos;])
        summary = summarize_transcript(data[&apos;transcript&apos;], context)
        return f&quot;**Call on {timestamp}**\n\n{summary}&quot;

    # Multiple calls - create sections for each
    # ... (builds detailed prompt for GPT-4)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The output looks like this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-markdown&quot;&gt;## Call 1 - March 15, 2024 at 10:30 AM MDT

_Duration: 15m 23s | From: +1-555-0123 -&gt; To: +1-555-0456_

### Description of the Call

Customer called about internet connectivity issues...

### Troubleshooting

- Verified modem lights status
- Performed speed test (5 Mbps down, 1 Mbps up)
- Reset modem and router

### Next Steps

- Schedule technician visit for tomorrow
- Follow up email with ticket number

---

## Call 2 - March 15, 2024 at 2:45 PM MDT

_Duration: 8m 12s | From: +1-555-0123 -&gt; To: +1-555-0456_

### Description of the Call

Customer called back to confirm technician appointment...
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Making It User-Friendly&lt;/h2&gt;
&lt;p&gt;I wanted this tool to work both interactively and from the command line. So when you run it without arguments, you get a nice interactive mode:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ python voice_summary.py

Zendesk Voice Recording Processor - Interactive Mode
============================================================

Enter ticket numbers or URLs (comma-separated or one per line)
Press Enter twice when done:
12345
12346
https://company.zendesk.com/agent/tickets/12347

Found 3 valid ticket(s): 12345, 12346, 12347

Post summaries to Zendesk? (y/n) [default: y]: y
Skip recordings with existing transcripts? (y/n) [default: n]: y

Processing 3 ticket(s)
   Post to Zendesk: Yes
   Skip existing: Yes

Press Enter to continue or Ctrl+C to cancel...
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But it also works great for automation:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;parser = argparse.ArgumentParser(
    description=&apos;Process voice recordings from Zendesk tickets&apos;,
    formatter_class=argparse.RawDescriptionHelpFormatter,
    epilog=&apos;&apos;&apos;
Examples:
  %(prog)s 12345                    # Process single ticket
  %(prog)s 12345 12346 12347        # Process multiple tickets
  %(prog)s --no-zendesk 12345       # Process without posting to Zendesk
  %(prog)s --skip-existing 12345    # Skip tickets with existing transcripts
  %(prog)s https://company.zendesk.com/agent/tickets/12345  # Process from URL
    &apos;&apos;&apos;
)
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;The Progress Display&lt;/h2&gt;
&lt;p&gt;Here&apos;s how it handles progress indicators, which help with longer operations to know that it&apos;s still running:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Processing Ticket #12345
============================================================
Fetching ticket details...
   Subject: Internet Connection Issues
   Customer: John Smith
   Agent: Support Team
   Status: OPEN

Searching for voice recordings...
   Found 2 voice recording(s)

Phase 1: Downloading and transcribing 2 recording(s)...

Processing recording 1/2 (Call ID: abc123)
   Duration: 15m 23s
   From: +1-555-0123 -&gt; To: +1-555-0456
   Downloading audio...
    Downloaded: ticket12345_callabc123.mp3
   Transcribing audio with Whisper...
   Saved transcript: ticket12345_callabc123.txt

Phase 2: Summarizing 2 transcript(s) with GPT-4o-mini...
   Saved combined summary: ticket12345_combined_summary.txt

Phase 3: Posting combined summary to Zendesk...
   Added private comment to ticket 12345

Ticket #12345 Complete!
   Processed: 2/2 recordings
   Time: 45.2s
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Turning It Into a Real Command-Line Tool&lt;/h2&gt;
&lt;p&gt;Rather than running this directly with python every time, I decided to make it in to a command line tool to make it easier to run from anywhere.&lt;/p&gt;
&lt;h3&gt;The Wrapper Script&lt;/h3&gt;
&lt;p&gt;First, I created a bash wrapper that handles all the environment setup:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash
# Wrapper script for voice_summary.py

# Configuration
PROJECT_DIR=&quot;$(cd &quot;$(dirname &quot;${BASH_SOURCE[0]}&quot;)/..&quot; &amp;#x26;&amp;#x26; pwd)&quot;
VENV_DIR=&quot;$PROJECT_DIR/venv&quot;
SCRIPT_PATH=&quot;$PROJECT_DIR/voice_summary.py&quot;
TRANSCRIPT_DIR=&quot;$HOME/zendesk-transcripts&quot;

# Create transcript directory if it doesn&apos;t exist
if [ ! -d &quot;$TRANSCRIPT_DIR&quot; ]; then
    echo &quot;Creating transcript directory at $TRANSCRIPT_DIR...&quot;
    mkdir -p &quot;$TRANSCRIPT_DIR&quot;
fi

# Change to transcript directory
cd &quot;$TRANSCRIPT_DIR&quot; || exit 1

# Activate virtual environment if it exists
if [ -d &quot;$VENV_DIR&quot; ]; then
    source &quot;$VENV_DIR/bin/activate&quot;
fi

# Execute the Python script with all arguments
python &quot;$SCRIPT_PATH&quot; &quot;$@&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This wrapper does a few nice things:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creates a dedicated directory for transcripts (&lt;code&gt;~/zendesk-transcripts&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Activates the virtual environment automatically&lt;/li&gt;
&lt;li&gt;Passes all arguments through to the Python script&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Installing It System-Wide&lt;/h3&gt;
&lt;p&gt;Then I wrote an installation script that sets everything up:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash
# Installation script for voice_summary command line tool

SCRIPT_DIR=&quot;$(cd &quot;$(dirname &quot;${BASH_SOURCE[0]}&quot;)&quot; &amp;#x26;&amp;#x26; pwd)&quot;
WRAPPER_SCRIPT=&quot;$SCRIPT_DIR/voice_summary&quot;

# Create ~/bin directory if it doesn&apos;t exist
if [ ! -d &quot;$HOME/bin&quot; ]; then
    echo &quot;Creating ~/bin directory...&quot;
    mkdir -p &quot;$HOME/bin&quot;
fi

# Create symlink
echo &quot;Installing voice_summary to ~/bin...&quot;
rm -f &quot;$HOME/bin/voice_summary&quot; 2&gt;/dev/null
ln -s &quot;$WRAPPER_SCRIPT&quot; &quot;$HOME/bin/voice_summary&quot;

# Check if ~/bin is in PATH
if [[ &quot;:$PATH:&quot; != *&quot;:$HOME/bin:&quot;* ]]; then
    echo &quot;WARNING: ~/bin is not in your PATH&quot;
    echo &quot;To add it, add this line to your ~/.zshrc:&quot;
    echo &quot;    export PATH=\&quot;\$HOME/bin:\$PATH\&quot;&quot;
fi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;After running this, you can use the tool from anywhere:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;$ voice_summary 12345
$ voice_summary  # Interactive mode
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Building a Standalone Executable&lt;/h3&gt;
&lt;p&gt;For distribution, I also created a PyInstaller build script:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# PyInstaller spec file configuration
a = Analysis(
    [&apos;voice_summary.py&apos;],
    hiddenimports=[&apos;openai&apos;, &apos;requests&apos;],
    # ... other configuration
)

exe = EXE(
    pyz,
    a.scripts,
    a.binaries,
    a.zipfiles,
    a.datas,
    [],
    name=&apos;voice_summary&apos;,
    console=True,
    # ... other configuration
)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The build script handles everything:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash
# Build a standalone executable using PyInstaller

# Install dependencies
pip install -q requests openai pyinstaller

# Build the executable
pyinstaller voice_summary.spec

if [ -f &quot;dist/voice_summary&quot; ]; then
    echo &quot;Build successful!&quot;
    echo &quot;To install system-wide:&quot;
    echo &quot;    sudo cp dist/voice_summary /usr/local/bin/&quot;
fi
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Configuration&lt;/h2&gt;
&lt;p&gt;Instead of hardcoding credentials, the tool uses environment variables:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;# Configuration from environment
ZENDESK_DOMAIN = os.getenv(&apos;ZENDESK_DOMAIN&apos;, &apos;yourcompany.zendesk.com&apos;)
ZENDESK_EMAIL = os.getenv(&apos;ZENDESK_EMAIL&apos;, &apos;&apos;)
ZENDESK_PASSWORD = os.getenv(&apos;ZENDESK_PASSWORD&apos;, &apos;&apos;)
OPENAI_API_KEY = os.getenv(&apos;OPENAI_API_KEY&apos;, &apos;&apos;)

# Validate configuration
if not all([ZENDESK_EMAIL, ZENDESK_PASSWORD, OPENAI_API_KEY]):
    print(&quot;Error: Missing required configuration&quot;)
    print(&quot;Please set the following environment variables:&quot;)
    print(&quot;  - ZENDESK_EMAIL: Your Zendesk email&quot;)
    print(&quot;  - ZENDESK_PASSWORD: Your Zendesk password&quot;)
    print(&quot;  - OPENAI_API_KEY: Your OpenAI API key&quot;)
    sys.exit(1)
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This makes it easy to use across different environments without touching the code.&lt;/p&gt;
&lt;h2&gt;Edge Cases I try to Handle&lt;/h2&gt;
&lt;h3&gt;Closed Tickets&lt;/h3&gt;
&lt;p&gt;You can&apos;t update closed tickets in Zendesk. Instead of just failing, the tool asks what you want to do:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def confirm_closed_ticket_processing() -&gt; bool:
    &quot;&quot;&quot;Ask user if they want to proceed with processing a closed ticket.&quot;&quot;&quot;
    print(&quot;\nWARNING: This ticket is CLOSED.&quot;)
    print(&quot;   Closed tickets cannot be updated in Zendesk.&quot;)
    while True:
        response = input(&quot;\n   Do you still want to process? (y/n): &quot;)
        if response.lower() in [&apos;y&apos;, &apos;yes&apos;]:
            return True
        elif response.lower() in [&apos;n&apos;, &apos;no&apos;]:
            return False
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;If they proceed, it shows the summary in the console instead of trying to post it.&lt;/p&gt;
&lt;h3&gt;Timezone Conversion&lt;/h3&gt;
&lt;p&gt;The API defaults to using UTC, so I convert everything to Mountain Time:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-python&quot;&gt;def format_timestamp(timestamp_str: str) -&gt; str:
    &quot;&quot;&quot;Convert ISO timestamp to human-readable format in Mountain Time.&quot;&quot;&quot;
    try:
        from zoneinfo import ZoneInfo  # Python 3.9+
    except ImportError:
        from pytz import timezone as ZoneInfo  # Fallback

    dt = datetime.fromisoformat(timestamp_str.replace(&apos;Z&apos;, &apos;+00:00&apos;))
    mountain_tz = ZoneInfo(&apos;America/Denver&apos;)
    dt_mountain = dt.astimezone(mountain_tz)
    return dt_mountain.strftime(&quot;%B %d, %Y at %I:%M %p %Z&quot;)
&lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;Batch Processing Stats&lt;/h3&gt;
&lt;p&gt;When processing multiple tickets, you want to know what happened:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;============================================================
FINAL SUMMARY
============================================================
Tickets processed: 45/50
Recordings processed: 127
Total errors: 5
Total time: 425.3s

Failed tickets:
   - Ticket #12399: 403 Forbidden
   - Ticket #12412: No recordings found
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;What I Learned&lt;/h2&gt;
&lt;p&gt;Building this tool taught me a few things:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Phase your processing&lt;/strong&gt; - Breaking it into download, transcribe, summarize, and post phases made debugging way easier&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cache aggressively&lt;/strong&gt; - Saving transcripts locally saves API calls, and makes it easier to process in general&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Make it interactive AND scriptable&lt;/strong&gt; - Different use cases need different interfaces&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Handle failures gracefully&lt;/strong&gt; - APIs will fail, tickets will be closed, permissions will be wrong&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Clear progress indicators matter&lt;/strong&gt; - Make it easier to know it&apos;s still running on longer operations.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;The Results&lt;/h2&gt;
&lt;p&gt;This tool has been extremely helpful in automating summaries of tickets that were phone calls, making it much easier to determine what was talked about and what resolution was reached, helping us determine where to spend time proactively solving problems, and informing our customers the types of items we have been working on with their employees.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/robbybarnes/zendesk-voice-summary&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/robbybarnes/zendesk-voice-summary&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Dia Browser</title><link>https://barnes.tech/blog/dia-browser</link><guid isPermaLink="true">https://barnes.tech/blog/dia-browser</guid><description>Explore Dia Browser, its AI features, and the transition from Arc, highlighting usability and skepticism about its future.</description><pubDate>Sat, 14 Jun 2025 17:32:19 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/dia-browser.png&quot; alt=&quot;Dia Browser Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Recently &lt;a href=&quot;https://thebrowser.company/&quot;&gt;The Browser Company&lt;/a&gt; talked about how &lt;a href=&quot;https://browsercompany.substack.com/p/letter-to-arc-members-2025&quot;&gt;they are discontinuing Arc&lt;/a&gt;, which is still my favorite browser to use. In that article they talked about &lt;a href=&quot;https://www.diabrowser.com/&quot;&gt;Dia&lt;/a&gt;, their new version of the browser built with AI as the focus. &lt;a href=&quot;https://barnes.tech/blog/the-demise-of-arc/&quot;&gt;I wrote about this&lt;/a&gt;, and how I’m skeptical of it, and frankly irritated that the browser I love is getting killed off.&lt;/p&gt;
&lt;p&gt;I remain skeptical, but they have opened up the beta of Dia now to Arc users. I’m a sucker for trying out new software, so naturally I downloaded it, and… I kind of love it.&lt;/p&gt;
&lt;p&gt;It’s not quite what I liked about Arc. I miss the side tab bars (Dia puts them back up top where Chrome does), and it’s missing a lot of the settings and developer features that Arc had that I liked, but it does have the best feature of all, which is the one I use dozens of times a day and honestly feels like a feature I can’t live without - &lt;strong&gt;⌘ + Shift + C&lt;/strong&gt; to copy the current URL. It’s just incredibly useful. I’ve tried some Chrome extensions since writing about all this that are supposed to do this, but they just don’t work well.&lt;/p&gt;
&lt;p&gt;The AI features I’m not 100% sold on yet, but I have to admit it is helpful to have a little chat you can open right on any page and ask questions about it, summarize it, have it help you do research, etc. I find myself using it more than I thought I might.&lt;/p&gt;
&lt;p&gt;It feels like a bad idea to really start heavily using and relying on another browser from the company that just took away my favorite one. They have yet to make any money as a business, this is all venture backed and at this point, essentially a proof of concept. It’s only a matter of time before they start charging for it or &lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot;&gt;enshittifying it&lt;/a&gt;, or just run out of money and go away. I hope they figure out a model that works this time.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://thebrowser.company/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://thebrowser.company/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://browsercompany.substack.com/p/letter-to-arc-members-2025&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://browsercompany.substack.com/p/letter-to-arc-members-2025&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.diabrowser.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.diabrowser.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/the-demise-of-arc/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/the-demise-of-arc/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/enshitification-podcast/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Meta and Yandex are de-anonymizing Android users’ web browsing identifiers</title><link>https://barnes.tech/blog/meta-and-yandex-are-de-anonymizing-android-users-web-browsing-identifiers</link><guid isPermaLink="true">https://barnes.tech/blog/meta-and-yandex-are-de-anonymizing-android-users-web-browsing-identifiers</guid><description>Meta and Yandex track Android users, compromising privacy through de-anonymization and embedded scripts.</description><pubDate>Wed, 04 Jun 2025 03:27:07 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/facebook-surveilance.png&quot; alt=&quot;Facebook logo as a surveilance camera&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;From &lt;a href=&quot;https://arstechnica.com/security/2025/06/meta-and-yandex-are-de-anonymizing-android-users-web-browsing-identifiers/&quot;&gt;Ars Technica&lt;/a&gt; - Meta and Yandex were found to be using embedded tracking scripts to link Android users’ web browsing activity with their app identities, effectively de-anonymizing them, bypassing typical privacy protections like browser sandboxing and incognito mode.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://en.wikipedia.org/wiki/Surveillance_capitalism&quot;&gt;surveylance economy&lt;/a&gt; makes these companies go to some crazy lengths to track everything that you do, just to cram more ads wherever they can. Unfortunately, at least in the U.S., you don&apos;t have any recourse.&lt;/p&gt;
&lt;p&gt;It&apos;s important to note - these trackers will track you and your activity regardless of whether you have an account with them.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/security/2025/06/meta-and-yandex-are-de-anonymizing-android-users-web-browsing-identifiers/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/security/2025/06/meta-and-yandex-are-de-anonymizing-android-users-web-browsing-identifiers/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Surveillance_capitalism&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Surveillance_capitalism&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Auto Update Tailscale on Synology</title><link>https://barnes.tech/blog/tailscale-tip-on-synology</link><guid isPermaLink="true">https://barnes.tech/blog/tailscale-tip-on-synology</guid><description>Learn how to automate Tailscale updates on Synology for seamless connectivity and security.</description><pubDate>Sat, 31 May 2025 20:49:02 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/tailscale-logo.svg&quot; alt=&quot;Tailscale Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;If you are running Tailscale on a Synology (which is a fantastic use case), you can set up a daily task to have Synology update itself, making it muach easier to ensure you stay up to date.&lt;/p&gt;
&lt;p&gt;First create a scheduled task, and name it something clear that you will know what it&apos;s for. Make sure this runs as &lt;code&gt;root&lt;/code&gt; -&lt;/p&gt;
&lt;p&gt;Next, go to the &quot;Task Settings&quot; and in the Run Command section, put &lt;code&gt;tailscale update --yes&lt;/code&gt;. Select the schedule you want this to run on and you&apos;re set!&lt;/p&gt;</content:encoded></item><item><title>TRMNL</title><link>https://barnes.tech/blog/trmnl</link><guid isPermaLink="true">https://barnes.tech/blog/trmnl</guid><description>Explore the TRMNL e-ink display for smart dashboards, plugins, and open-source development for a unique tech experience.</description><pubDate>Sat, 31 May 2025 19:00:19 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/trmnl-logo.svg&quot; alt=&quot;TRMNL Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;A few months ago I bought one of the &lt;a href=&quot;https://usetrmnl.com/&quot;&gt;TRMNL e-ink displays&lt;/a&gt;, and I think it&apos;s really cool. TRMNL is a small battery powered e-ink display with several free plugins, as well as a developer platform for you to &lt;a href=&quot;https://usetrmnl.com/developers&quot;&gt;build your own plugins&lt;/a&gt;. The 7.5&quot; e-ink display makes it extremely power efficient and really crisp and clear to see. It connects to wifi to allow you to modify settings or to update / refresh the data for any dashboards that you choose to use.&lt;/p&gt;
&lt;p&gt;I&apos;ve been experimenting with several different plugins and information. At the moment, the most useful dashboard I have set up has the weather on the left half, and Google Calendar on the right half, which connects to our shared family calendar. It&apos;s very light weight, which made it easy to hang on the kitchen wall using just a command strip with the picture frame hanger hook on it, making it easy to take down and charge when needed.&lt;/p&gt;
&lt;p&gt;I got the bigger battery option, but I have it refresh the page fairly regularly. It still goes months without needing a recharge. When I need to charge it, there is a USB-C plug to plug it in and charge.&lt;/p&gt;
&lt;p&gt;For me this is the perfect device for me to play with. You could absolutely make something like this yourself, though I&apos;m not sure it would be any cheaper... And for some people that would be more fun. TRNML is helping that community too with all of their &lt;a href=&quot;https://github.com/usetrmnl/&quot;&gt;open source options&lt;/a&gt; allowing you to bring your own hardware, or bring your own server, or both! For me though I don&apos;t particularly enjoy working with the hardware, but love tinkering with the software, so the product itself is great. (They even have guides on turning your old &lt;a href=&quot;https://github.com/usetrmnl/trmnl-kobo&quot;&gt;Kobo&lt;/a&gt; or &lt;a href=&quot;https://github.com/usetrmnl/trmnl-kindle&quot;&gt;Kindle&lt;/a&gt; reader in to a TRMNL device)&lt;/p&gt;
&lt;p&gt;If you want to get one for yourself, I have a referral link that gets you a little discount - &lt;a href=&quot;https://usetrmnl.com?ref=robby10&quot;&gt;https://usetrmnl.com?ref=robby10&lt;/a&gt; or just use the code &lt;code&gt;robby10&lt;/code&gt; at checkout to get it applied.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://usetrmnl.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://usetrmnl.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://usetrmnl.com/developers&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://usetrmnl.com/developers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/usetrmnl/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/usetrmnl/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-kobo&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/usetrmnl/trmnl-kobo&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/usetrmnl/trmnl-kindle&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/usetrmnl/trmnl-kindle&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://usetrmnl.com?ref=robby10&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://usetrmnl.com?ref=robby10&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Internet of Consent - Anil Dash</title><link>https://barnes.tech/blog/the-internet-of-consent-anil-dash</link><guid isPermaLink="true">https://barnes.tech/blog/the-internet-of-consent-anil-dash</guid><description>Explore the concept of consent in the digital age and its implications for privacy and data protection.</description><pubDate>Fri, 30 May 2025 01:24:56 GMT</pubDate><content:encoded>&lt;p&gt;Well worth the read if you have the time - &lt;a href=&quot;https://www.anildash.com/2025/05/27/internet-of-consent/&quot;&gt;The Internet of Consent&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.anildash.com/2025/05/27/internet-of-consent/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.anildash.com/2025/05/27/internet-of-consent/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Demise of Arc</title><link>https://barnes.tech/blog/the-demise-of-arc</link><guid isPermaLink="true">https://barnes.tech/blog/the-demise-of-arc</guid><description>Reflecting on the sunset of the Arc browser and its unique features that users will miss.</description><pubDate>Thu, 29 May 2025 15:25:15 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/arc-browser.png&quot; alt=&quot;Arc Browser Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h2&gt;Another great product killed&lt;/h2&gt;
&lt;p&gt;A few days ago, on Substack, The &lt;a href=&quot;https://thebrowser.company&quot;&gt;Browser Company&lt;/a&gt; wrote a &lt;a href=&quot;https://browsercompany.substack.com/p/letter-to-arc-members-2025&quot;&gt;Letter to Arc members 2025&lt;/a&gt; telling us what we all probably knew was coming all along - Arc is no longer goign to be developed and is being sunset.&lt;/p&gt;
&lt;p&gt;This was the only likely outcome if we&apos;re honest with ourselves. I resisted starting to use Arc when it first started blowing up online because of this very reason. If I found that I loved it and there were some killer features not available elsewhere, then when it almost certainly died, I would be particularly irritated about it. Well, here we are.&lt;/p&gt;
&lt;p&gt;I eventually caved and started using it, and got hooked fairly quickly. There are lots of small things I have liked about Arc. Side bar tabs took me some time to get used to, but now I really prefer it. Split view with 2 tabs - kind of a weird power user thing, but now I find I use it at least once a week, often more. I didn&apos;t really care about the AI features, it was the browser that I loved. The killer feature that is truly killing me - They added the keyboard shortcut &lt;strong&gt;⌘ + Shift + C&lt;/strong&gt; to copy the current URL you are on. It would even automatically strip trackers from the URL string if there were any.&lt;/p&gt;
&lt;p&gt;I can&apos;t tell you how much I use this now, and everything else feels broken by comparison. I&apos;ve found a couple of Chrome extensions that try to mimic this, but as of yet, I can&apos;t find any that reliably work. If anyone has suggestions here, please let me know.&lt;/p&gt;
&lt;p&gt;Maybe they are right. Maybe the browser really does need a full re-think for the &quot;AI Era&quot;. I kind of don&apos;t think so, but wouldn&apos;t bet too much money that I am right. Dia sounds like a big risk. I personally want to try it, but almost certainly don&apos;t want to use it as a daily driver. Hope I&apos;m proven wrong, and if so I hope they can stick around for that. Killing this off, regardless of the reasons has lost a lot of trust from me, even though it&apos;s not surprising. I really hate coming to rely on a tool just to have the VC bro&apos;s not happy with it if it can&apos;t take over everything for everyone and kill it off.&lt;/p&gt;
&lt;p&gt;For what it&apos;s worth, I would have 100% paid for Arc to keep using it. I&apos;d probably get it for all of our employees at work too, particularly if they started adding some basic work controls to it.&lt;/p&gt;
&lt;p&gt;What a waste of a great product.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://thebrowser.company&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://thebrowser.company&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://browsercompany.substack.com/p/letter-to-arc-members-2025&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://browsercompany.substack.com/p/letter-to-arc-members-2025&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Wasabi Deleter Update</title><link>https://barnes.tech/blog/wasabi-deleter-update</link><guid isPermaLink="true">https://barnes.tech/blog/wasabi-deleter-update</guid><description>Update on Wasabi Deleter handling edge cases for bulk deletes with clearer error handling.</description><pubDate>Thu, 29 May 2025 10:49:09 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Wasabi.svg&quot; alt=&quot;Wasabi Cloud Storage logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Quick update on the &lt;a href=&quot;https://barnes.tech/blog/wasabi-deleter/&quot;&gt;Wasaabi Deleter&lt;/a&gt; that I posted not too long ago - Turns out there were a ton of edge cases I needed to handle, so this has been updated significantly to handle several weird cases where bulk deletes will fail with not terribly clear reasons.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/robbybarnes/wasabi-deleter&quot;&gt;Wasabi Deleter - GitHub&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/wasabi-deleter/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/wasabi-deleter/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/robbybarnes/wasabi-deleter&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/robbybarnes/wasabi-deleter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Neon and Databricks</title><link>https://barnes.tech/blog/neon-and-databricks</link><guid isPermaLink="true">https://barnes.tech/blog/neon-and-databricks</guid><description>Neon database is acquired by Databricks. Will it maintain its unique features or fade into neglect?</description><pubDate>Wed, 14 May 2025 21:02:47 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/neon-logo.svg&quot; alt=&quot;Neon serverless postgresql logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;This morning I got an email from Neon - A really cool database company I&apos;ve been using for a while, and &lt;a href=&quot;https://barnes.tech/blog/neon-database/&quot;&gt;wrote about recently&lt;/a&gt;, saying &lt;a href=&quot;https://neon.tech/blog/neon-and-databricks#neon-beginnings&quot;&gt;they are being purchased by Databricks&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I don&apos;t particularly have a problem with &lt;a href=&quot;https://www.databricks.com/&quot;&gt;Databricks&lt;/a&gt; specifically, but it seems that about 90% of the time when an acquisition like this happens, it inevitably either disappears in to the main product, which is worse for the use cases Neon was fantastic for, or it will just slowly move to neglect mode and then fade out over time.&lt;/p&gt;
&lt;p&gt;Of course, Neon says that won&apos;t happen. They all promise that, but it&apos;s not in their control. I know the founders saying that mean well, and have the intention of doing so, but the bigger company will always exert what they want at some point. Maybe not today, maybe not tomorrow, but that time always comes.&lt;/p&gt;
&lt;p&gt;I hope they are able to hang on and maintain their independence, just with more resources where they need them. It does occassionally happen.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://neon.tech/blog/neon-and-databricks#neon-beginnings&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://neon.tech/blog/neon-and-databricks#neon-beginnings&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/neon-database/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/neon-database/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://neon.tech/blog/neon-and-databricks#neon-beginnings&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://neon.tech/blog/neon-and-databricks#neon-beginnings&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Wasabi Deleter</title><link>https://barnes.tech/blog/wasabi-deleter</link><guid isPermaLink="true">https://barnes.tech/blog/wasabi-deleter</guid><description>A Python script to efficiently delete objects from Wasabi S3 storage buckets in batches.</description><pubDate>Tue, 13 May 2025 10:40:07 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Wasabi.svg&quot; alt=&quot;Wasabi Cloud Storage logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;At work, we have a couple of clients that have been using &lt;a href=&quot;https://wasabi.com/&quot;&gt;Wasabi S3 storage&lt;/a&gt; for certain things. For various reasons, we are moving them off of Wasabi to other solutions.&lt;/p&gt;
&lt;p&gt;In order to delete a storage bucket in Wasabi, similar to any other S3 storage I&apos;m aware of, you have to delete every version of every object in the bucket, then you can delete the bucket. If you have a very large number of items or large amount of storage being used, this turns out to be somewhat difficult. If you try to do it in the web UI, it basically just freezes and will never finish. I tried some other solutions, including &lt;a href=&quot;https://rclone.org/&quot;&gt;rclone&lt;/a&gt;, and some other S3 utilities, but they also just seemed to get stuck, even listing all the objects before it could delete them.&lt;/p&gt;
&lt;p&gt;So I made a python script to handle this better.&lt;/p&gt;
&lt;p&gt;Here is &lt;a href=&quot;https://github.com/robbybarnes/wasabi-deleter&quot;&gt;Wasabi Deleter&lt;/a&gt;. This will first list out the buckets that your key has access to, then ask you if you want to delete all of the objects in that bucket. If you choose yes, it will do it 1,000 at a time, so that it doesn&apos;t just choke on large amounts of files, and can easily be stopped and restarted later if needed.&lt;/p&gt;
&lt;p&gt;This is the first thing I&apos;ve put out there open source, which is oddly nervewracking, but hopefully someone out there will find this useful.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://wasabi.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://wasabi.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rclone.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://rclone.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/robbybarnes/wasabi-deleter&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/robbybarnes/wasabi-deleter&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Bicycle for the Mind</title><link>https://barnes.tech/blog/bicycle-for-the-mind</link><guid isPermaLink="true">https://barnes.tech/blog/bicycle-for-the-mind</guid><description>Exploring the role of AI as a tool for enhancing productivity, not a replacement for human jobs.</description><pubDate>Mon, 12 May 2025 00:28:16 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/steve-jobs-glasses.svg&quot; alt=&quot;Icon in the shape of Steve Jobs&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;I think one of the things that really separates us from the high primates is that we’re tool builders. I read a study that measured the efficiency of locomotion for various species on the planet. The condor used the least energy to move a kilometer. And, humans came in with a rather unimpressive showing, about a third of the way down the list. It was not too proud a showing for the crown of creation. So, that didn’t look so good. But, then somebody at Scientific American had the insight to test the efficiency of locomotion for a man on a bicycle. And, a man on a bicycle, a human on a bicycle, blew the condor away, completely off the top of the charts.&lt;/p&gt;
&lt;p&gt;And that’s what a computer is to me. What a computer is to me is it’s the most remarkable tool that we’ve ever come up with, and it’s the equivalent of a bicycle for our minds.&lt;/p&gt;
&lt;p&gt;~ Steve Jobs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;The Noise Around AI&lt;/h1&gt;
&lt;p&gt;AI has been in the news a lot recently. Half the news is from &lt;a href=&quot;https://en.wikipedia.org/wiki/Brogrammer&quot;&gt;tech bro&apos;s&lt;/a&gt; about how &quot;&lt;a href=&quot;https://en.wikipedia.org/wiki/Artificial_general_intelligence&quot;&gt;AGI&lt;/a&gt;&quot; will save the world. Some are about how AI or AGI will destroy the world, and some are about how AI and AGI are overrated and completely useless. No one can even agree on what AGI is, let alone how close we actually are, or if it&apos;s even possible, but the &lt;a href=&quot;https://en.wikipedia.org/wiki/Gartner_hype_cycle&quot;&gt;hype cycle&lt;/a&gt; is in full swing.&lt;/p&gt;
&lt;p&gt;I have a lot of thoughts on all of that, and have been trying to come to a conclusion on how I find these tools useful, how they aren&apos;t useful, as well as the complex moral questions about using AI, from the energy consumption to the vast amount of intellectual property with no second thought about the morality or consequences. But, it&apos;s complicated. I don&apos;t think there is a single answer about any of this.&lt;/p&gt;
&lt;h1&gt;AI as a Tool, Not a Threat, and Not a Silver Bullet&lt;/h1&gt;
&lt;p&gt;Then there are the companies laying off people already due to AI.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/644943/shopify-ceo-memo-ai-hires-job&quot;&gt;Shopify CEO - &quot;Before asking for more headcount and resources, teams must demonstrate why they cannot get what they want done using AI&quot;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/05/07/crowdstrike-says-it-will-lay-off-500-workers/&quot;&gt;Crowdstrike says it will lay off 500 workers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.businessinsider.com/meta-job-cuts-everything-we-know-2025-2&quot;&gt;Meta layoffs have begun. Here&apos;s everything we know so far.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These tools are pretty incredible, for what they are. Anyone who has used them extensively, however, knows that they absolutely can&apos;t replace people in a company. To me, the Steve Jobs quote about the &quot;bicycle for the mind&quot; is a perfect analogy, though he was talking about the personal computer at the time.&lt;/p&gt;
&lt;p&gt;A bicycle by itself doesn&apos;t do anything. It is a tool to enhance what people are able to do. When computers came out, there was a similar panic about human jobs being replaced. Sure, things changed, but I don&apos;t think anyone would argue that people&apos;s jobs are not needed. In fact, the personal computer helped create a ton of new kinds of jobs, because people were able to do more. AI is just a tool. It augments what people can do. Like other tools, it has to be used correctly in order to be useful. I believe it truly can improve productivity in several areas, but it should be a way to make people better at what they are doing, not replace them.&lt;/p&gt;
&lt;p&gt;None of the companies mentioned need to save money. It isn&apos;t about that. &lt;a href=&quot;https://www.anildash.com/about/&quot;&gt;Anil Dash&lt;/a&gt; wrote about this in his post &lt;a href=&quot;https://anildash.com/2025/04/19/ai-first-is-the-new-return-to-office/&quot;&gt;&quot;AI-first&quot; is the new Return To Office&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Anil knows this space well, and isn&apos;t shy about calling out the toxicity that has infected Silicon Valley -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Big tech CEOs and VCs really love performing for each other. We know they hang out in group chats like high schoolers, preening and sending each other texts, each trying to make sure they&apos;re all wearing the latest fashions, whether it&apos;s a gold chain or a MAGA hat or just repeating a phrase that they heard from another founder. A key way of showing that they&apos;re part of this cohort is to make sure they&apos;re having a tantrum and acting out against their workers fairly regularly.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;He echos a sentiment I&apos;ve talked about several times, said far more eloquently than I have been able to -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The strangest part is, the AI pushers don&apos;t have to lie about what AI can do! If, as they say, AI tools are going to get better quickly, then let them do so and trust that smart people will pick them up and use them. If you think your workers and colleagues are too stupid to recognize good tools that will help them do their jobs better, then... you are a bad leader and should step down. Because you&apos;ve created a broken culture.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Completely true about AI and similar fields like Self Driving. These technologies are incredible. Using them feels like magic. But that&apos;s never enough. The tech bro CEO&apos;s and VC&apos;s still have to create more urgency, still have to lie about capabilities to keep everyone&apos;s attention focused on them, out of sheer insecurity and the insatiable need for more money, more power, and more control. It&apos;s exhausting.&lt;/p&gt;
&lt;p&gt;Read his whole article, it&apos;s really good.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Brogrammer&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Brogrammer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Artificial_general_intelligence&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Artificial_general_intelligence&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Gartner_hype_cycle&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Gartner_hype_cycle&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/04/07/shopify-ceo-tells-teams-to-consider-using-ai-before-growing-headcount/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2025/04/07/shopify-ceo-tells-teams-to-consider-using-ai-before-growing-headcount/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/05/07/crowdstrike-says-it-will-lay-off-500-workers/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2025/05/07/crowdstrike-says-it-will-lay-off-500-workers/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.businessinsider.com/meta-job-cuts-everything-we-know-2025-2&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.businessinsider.com/meta-job-cuts-everything-we-know-2025-2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.anildash.com/about/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.anildash.com/about/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/644943/shopify-ceo-memo-ai-hires-job&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/644943/shopify-ceo-memo-ai-hires-job&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://anildash.com/2025/04/19/ai-first-is-the-new-return-to-office/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://anildash.com/2025/04/19/ai-first-is-the-new-return-to-office/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Kandji KST - Multi Tenant</title><link>https://barnes.tech/blog/kandji-kst-multi-tenant</link><guid isPermaLink="true">https://barnes.tech/blog/kandji-kst-multi-tenant</guid><description>Discover how the Kandji Sync Toolkit streamlines MDM management with multi-tenancy and version control for Apple devices.</description><pubDate>Sat, 10 May 2025 21:52:34 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/kandji.svg&quot; alt=&quot;Kandji Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h2&gt;Streamlining MDM Management: The Kandji Sync Toolkit and Multi-Tenancy&lt;/h2&gt;
&lt;p&gt;The &lt;strong&gt;Kandji Sync Toolkit (KST)&lt;/strong&gt; is a new command-line utility that bridges the gap between local development and your Kandji MDM tenant. If you manage Apple devices with Kandji, KST enables you to efficiently work with custom profiles and scripts outside the web interface.&lt;/p&gt;
&lt;h2&gt;What KST Does for MDM Administrators&lt;/h2&gt;
&lt;p&gt;At its core, KST allows you to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create and maintain a local Git repository of your Kandji custom profiles and scripts&lt;/li&gt;
&lt;li&gt;Pull existing resources from Kandji to your local repository&lt;/li&gt;
&lt;li&gt;Push local changes back to your Kandji tenant&lt;/li&gt;
&lt;li&gt;Create new profiles and scripts from templates or import existing ones&lt;/li&gt;
&lt;li&gt;List and display detailed information about your resources&lt;/li&gt;
&lt;li&gt;Format output in structured formats like YAML, JSON, or plist&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This workflow brings the benefits of version control and local development to MDM management - meaning you can track changes, collaborate with others, and use your favorite code editor for scripts and profiles.&lt;/p&gt;
&lt;p&gt;At &lt;a href=&quot;https://215.tech&quot;&gt;2Fifteen Tech&lt;/a&gt;, we use Kandji across all of the Mac environments that we manage, so to me it was obvious that this could be hugely beneficial to manage things across several tenants, with version control, and dramatically speed up the process of implementing a new environment or updating a script or profile that we use across all tenants. So I worked on adding a few things to make it easier to work with multiple environments.&lt;/p&gt;
&lt;h2&gt;The Multi-Tenant Enhancement&lt;/h2&gt;
&lt;p&gt;In the &lt;a href=&quot;https://github.com/kandji-inc/kst&quot;&gt;version of KST that Kandji released&lt;/a&gt;, Managing multiple Kandji tenants (for example, development vs. production environments, or different client organizations) requires manually switching API credentials and repositories. I added a multi-tenant extension streamlines this process with a new set of commands that make working with multiple tenants effortless.&lt;/p&gt;
&lt;h2&gt;What I added&lt;/h2&gt;
&lt;p&gt;The multi-tenant enhancement adds key features:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tenant Configuration Storage&lt;/strong&gt;: Securely stores tenant API URLs and tokens in &lt;code&gt;~/.config/kst/tenants.json&lt;/code&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Repository Organization&lt;/strong&gt;: Maps each tenant to its own repository directory&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Automatic Credential Management&lt;/strong&gt;: Sets the appropriate environment variables when switching tenants&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Directory Navigation&lt;/strong&gt;: Automatically changes to the tenant&apos;s repository when switching tenants&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Full Tenant Lifecycle Management&lt;/strong&gt;: Commands for adding, updating, listing, switching between, and removing tenants&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;How It Works Behind the Scenes&lt;/h2&gt;
&lt;p&gt;This was implemented in two main components:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;TenantManager (tenant_manager.py)&lt;/strong&gt;: A core class that handles:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Storing and retrieving tenant configurations&lt;/li&gt;
&lt;li&gt;Managing the active tenant selection&lt;/li&gt;
&lt;li&gt;Setting environment variables for the active tenant&lt;/li&gt;
&lt;li&gt;Providing repository path information&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;CLI Commands (cli/tenant.py)&lt;/strong&gt;: New commands that make tenant management accessible:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;kst tenant add&lt;/code&gt;&lt;/strong&gt;: Add a new tenant with API credentials and repository path&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;kst tenant list&lt;/code&gt;&lt;/strong&gt;: Show all configured tenants&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;kst tenant switch&lt;/code&gt;&lt;/strong&gt;: Change active tenant and its directory&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;kst tenant update&lt;/code&gt;&lt;/strong&gt;: Update tenant configuration (especially useful for API token rotation)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;kst tenant remove&lt;/code&gt;&lt;/strong&gt;: Remove tenant configurations&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The design ensures backward compatibility with existing workflows while enabling efficient multi-tenant use cases like:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;# Add a new tenant
kst tenant add client1 --tenant-url https://client1.api.kandji.io --api-token &quot;token&quot; --create-repo

# Switch between tenants (automatically changes directory)
kst tenant switch client1

# Use active tenant&apos;s credentials automatically
kst profile pull --all
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Why This Matters for MDM Administrators&lt;/h2&gt;
&lt;p&gt;If you&apos;re managing multiple Kandji instances, this enhancement dramatically reduces friction:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No more manually exporting/importing environment variables&lt;/li&gt;
&lt;li&gt;No confusion about which repository goes with which tenant&lt;/li&gt;
&lt;li&gt;Simplified API token rotation&lt;/li&gt;
&lt;li&gt;Less chance of accidentally pushing changes to the wrong tenant&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;With these improvements, KST becomes an even more powerful tool for Kandji administrators who need to manage multiple environments or client organizations efficiently.&lt;/p&gt;
&lt;p&gt;This is a fork of the original, which I may make available as open source in the near future. I need to check a few things and clean up the comments on the sections that are modified. Let me know if this is something that would be useful to you though.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/kandji-inc/kst&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/kandji-inc/kst&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://215.tech&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://215.tech&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Kandji Sync Toolkit</title><link>https://barnes.tech/blog/kandji-sync-toolkit</link><guid isPermaLink="true">https://barnes.tech/blog/kandji-sync-toolkit</guid><description>Discover the Kandji Sync Toolkit for efficient management of custom profiles and scripts using the Kandji API.</description><pubDate>Fri, 09 May 2025 02:37:39 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/kandji.svg&quot; alt=&quot;Kandji Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Super helpful new toolkit from &lt;a href=&quot;https://www.kandji.io/&quot;&gt;Kandji&lt;/a&gt; - My favorite MDM - today if you use Kandji as your MDM. &lt;a href=&quot;https://www.kandji.io/updates/2025/05/new-api-utility-kandji-sync-toolkit-kst-3bc1b312-851e-4437-b479-e822cda93cca/&quot;&gt;From their announcement&lt;/a&gt; -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We are excited to announce the release of Kandji Sync Toolkit (kst).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;kst&lt;/code&gt; (pronounced /kast/) is a new tool designed to simplify interaction with and management of resources such as custom profiles and scripts within your Kandji tenant, using the Kandji API.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sync a local repository of custom profiles and scripts with your Kandji tenant without copy/pasting.&lt;/li&gt;
&lt;li&gt;Create new custom profiles and scripts locally.&lt;/li&gt;
&lt;li&gt;List and show details of local and remote resources and see their status directly from the command line.&lt;/li&gt;
&lt;li&gt;Format output as structured YAML, plist, or JSON for use with other tools.&lt;/li&gt;
&lt;li&gt;Build your own integration for managing custom profiles or scripts with a fully featured Python client module.&lt;/li&gt;
&lt;li&gt;GitHub workflow support for kst to “automagically” manage custom profiles and scripts in a remote git repo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For more details, see the README in the kst repository.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here is the repository with installation instructions and how to use the utility - &lt;a href=&quot;https://github.com/kandji-inc/kst&quot;&gt;kandji-inc/kst&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.kandji.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.kandji.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.kandji.io/updates/2025/05/new-api-utility-kandji-sync-toolkit-kst-3bc1b312-851e-4437-b479-e822cda93cca/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.kandji.io/updates/2025/05/new-api-utility-kandji-sync-toolkit-kst-3bc1b312-851e-4437-b479-e822cda93cca/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/kandji-inc/kst&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/kandji-inc/kst&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Facebook AI Companions - Using the Licensed Voices of Celebrity Actors, Will</title><link>https://barnes.tech/blog/facebook-ai-companions</link><guid isPermaLink="true">https://barnes.tech/blog/facebook-ai-companions</guid><description>Facebook&apos;s new feature allows users to interact with celebrity voices, raising concerns about safety and AI ethics.</description><pubDate>Mon, 05 May 2025 06:58:16 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/facebook-logo.svg&quot; alt=&quot;Facebook logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Facebook seemingly started rolling out a feature where people can talk to celebrity voices. At least this time they paid the celebrities to use their voices, &lt;a href=&quot;https://www.wired.com/story/new-documents-unredacted-meta-copyright-ai-lawsuit/&quot;&gt;unlike when they torrented books to train their AI models...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Still, they once again illustrate that they don&apos;t really care about safety as it seems the AI companions fairly easily can be talked in to saying really explicit things, regardless of the user. &lt;a href=&quot;https://daringfireball.net/linked/2025/04/29/meta-digtal-companions-talking-dirty&quot;&gt;Daring Fireball, quoting the Wallstreet Journal article&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;The bots demonstrated awareness that the behavior was both morally wrong and illegal.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Facebook often says they are doing all they can for online safety, but history repeatedly says otherwise. Again, why would they care when no one is stopping them.&lt;/p&gt;
&lt;p&gt;This from the company that &lt;a href=&quot;https://futurism.com/the-byte/facebook-hosting-ai-hitler&quot;&gt;hosted an AI Hitler...&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/new-documents-unredacted-meta-copyright-ai-lawsuit/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.wired.com/story/new-documents-unredacted-meta-copyright-ai-lawsuit/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2025/04/29/meta-digtal-companions-talking-dirty&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2025/04/29/meta-digtal-companions-talking-dirty&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://futurism.com/the-byte/facebook-hosting-ai-hitler&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://futurism.com/the-byte/facebook-hosting-ai-hitler&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Facebook Ad Targeting</title><link>https://barnes.tech/blog/facebook-ad-targeting</link><guid isPermaLink="true">https://barnes.tech/blog/facebook-ad-targeting</guid><description>Explore Facebook&apos;s ad tactics exploiting users&apos; vulnerabilities for profit and the implications of AI in advertising.</description><pubDate>Sun, 04 May 2025 01:51:34 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/facebook-surveilance.png&quot; alt=&quot;Facebook logo made to look like a security camera&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;From Futurism - &lt;a href=&quot;https://futurism.com/facebook-beauty-targeted-ads&quot;&gt;Facebook Allegedly Detected When Teen Girls Deleted Selfies So It Could Serve Them Beauty Ads&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Often when people think about ad tracking, they downplay it, thinking these companies are just tracking their online shopping and browsing to make recommendations on purchases, but it goes far deeper than that. This outlineds the far nastier things that they exploit with people all to maximize profits.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Though Facebook&apos;s ad algorithms are notoriously opaque, in 2017 The Australian alleged that the company had crafted a pitch deck for advertisers bragging that it could exploit &quot;moments of psychological vulnerability&quot; in its users by targeting terms like &quot;worthless,&quot; &quot;insecure,&quot; &quot;stressed,&quot; &quot;defeated,&quot; &quot;anxious,&quot; &quot;stupid,&quot; &quot;useless,&quot; and &quot;like a failure.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This isn&apos;t the first report of this, and likely won&apos;t be the last. Why doesn&apos;t this change? Facebook made $164.5 billion in revenue in 2024.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;This is what puts money in all our pockets.&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Much if this information is from &lt;a href=&quot;https://us.macmillan.com/books/9781250391230/carelesspeople/&quot;&gt;Careless People&lt;/a&gt;, a book from a former employee at Facebook, which &lt;a href=&quot;https://www.theverge.com/news/629347/meta-careless-people-flatiron-books-macmillan&quot;&gt;Facebook has tried to legally prevent from ever getting published&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Remember, if you think an online product is &quot;free&quot;, you&apos;re the product, not the customer.&lt;/p&gt;
&lt;p&gt;Makes you wonder &lt;a href=&quot;https://barnes.tech/blog/perplexity-enshitification/&quot;&gt;what a company could (would) do if they had the infinite money spigot turned on, hyper charged with AI&lt;/a&gt;...&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://futurism.com/facebook-beauty-targeted-ads&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://futurism.com/facebook-beauty-targeted-ads&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://us.macmillan.com/books/9781250391230/carelesspeople/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://us.macmillan.com/books/9781250391230/carelesspeople/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/629347/meta-careless-people-flatiron-books-macmillan&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/629347/meta-careless-people-flatiron-books-macmillan&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/perplexity-enshitification/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/perplexity-enshitification/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>You Wouldn&apos;t Steal a Car...</title><link>https://barnes.tech/blog/you-wouldnt-steal-a-car</link><guid isPermaLink="true">https://barnes.tech/blog/you-wouldnt-steal-a-car</guid><description>Explore the irony of the &apos;You wouldn&apos;t steal a car&apos; anti-piracy ad using potentially pirated fonts and music.</description><pubDate>Tue, 29 Apr 2025 09:37:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/you-wouldnt-steal-a-car.png&quot; alt=&quot;You wouldn&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Man, I find this absolutely hilarious. Apparently that &quot;You wouldn&apos;t steal a car&quot; anti-piracy ad apparently stole the font they used - &lt;a href=&quot;https://arstechnica.com/gadgets/2025/04/you-wouldnt-steal-a-car-anti-piracy-campaign-may-have-used-pirated-fonts/&quot;&gt;“You wouldn’t steal a car” anti-piracy campaign may have used pirated fonts&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It seems they may have also &lt;a href=&quot;https://www.abc.net.au/science/articles/2013/01/29/3678851.htm&quot;&gt;stolen the song that was used...&lt;/a&gt; Just hilarious unbelievable irony.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/gadgets/2025/04/you-wouldnt-steal-a-car-anti-piracy-campaign-may-have-used-pirated-fonts/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/gadgets/2025/04/you-wouldnt-steal-a-car-anti-piracy-campaign-may-have-used-pirated-fonts/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.abc.net.au/science/articles/2013/01/29/3678851.htm&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.abc.net.au/science/articles/2013/01/29/3678851.htm&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Dub</title><link>https://barnes.tech/blog/dub</link><guid isPermaLink="true">https://barnes.tech/blog/dub</guid><description>Explore Dub.co, a developer-friendly link shortening platform with custom domains, analytics, and a Raycast extension for easy use.</description><pubDate>Mon, 28 Apr 2025 03:38:46 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/dub-logo.svg&quot; alt=&quot;Dub.co logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Another tool that I wanted to talk about is &lt;a href=&quot;https://dub.co/&quot;&gt;Dub.co&lt;/a&gt;. Primarily, Dub.co is a link shortening platform, similar to Bitly, but in the vein of really streamlined, developer focused tools that I have become a big fan of recently, Dub.co is really great.&lt;/p&gt;
&lt;p&gt;You can easily connect your own domain, campaign tracking, click analytics, even custom branded QR codes. I use this at work for several things, and even use the free plan on my personal domain for a few things.&lt;/p&gt;
&lt;p&gt;The API is also really great to use. There&apos;s a project I&apos;m building for work which I&apos;m not quite ready to talk about, but I have it integrated with Dub.co to generate short links, and branded QR codes on the fly. It&apos;s really nice. Of course, there are a million ways to do this kind of thing out there, but Dub.co is very pleasant and easy to use.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt; - There is a fantastic &lt;a href=&quot;https://www.raycast.com/dubinc/dub&quot;&gt;Raycast Extension for Dub.co&lt;/a&gt; which makes creating short links or quickly checking click analytics even esier. Here&apos;s my post about Raycast - &lt;a href=&quot;https://barnes.tech/blog/raycast/&quot;&gt;Raycast&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you feel so inclined, here is my affiliate link - https://refer.dub.co/robby-barnes&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://dub.co/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://dub.co/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.raycast.com/dubinc/dub&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.raycast.com/dubinc/dub&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/raycast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/raycast/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Affiliate link&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://refer.dub.co/robby-barnes&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://refer.dub.co/robby-barnes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Affiliate link&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://raycast.com/?via=robby&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://raycast.com/?via=robby&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Perplexity Enshitification</title><link>https://barnes.tech/blog/perplexity-enshitification</link><guid isPermaLink="true">https://barnes.tech/blog/perplexity-enshitification</guid><description>Explore Perplexity, an AI-driven search engine facing challenges with surveillance marketing and user privacy.</description><pubDate>Sun, 27 Apr 2025 01:22:39 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/perplexity.png&quot; alt=&quot;Perplexity Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://www.perplexity.ai/&quot;&gt;Perplexity&lt;/a&gt; is a tool that I&apos;ve mentioned before. It is a lot of things, but in general, it&apos;s a search engine that uses several different AI models to understand what you&apos;re asking and essentially research what you&apos;re looking for, providing source links, and so forth. I really liked it, though I&apos;ve stopped using it since others have gotten close enough in functionality that I can&apos;t justify paying for another tool...&lt;/p&gt;
&lt;p&gt;Unfortunately, it looks like Perplexity is headed straight in to &lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot;&gt;Enshitification&lt;/a&gt; - &lt;a href=&quot;https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/&quot;&gt;Perplexity CEO says its browser will track everything users do online to sell ‘hyper personalized’ ads&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Social media and search have been hyper catalysts for surveilance marketing, which I don&apos;t think is hard to argue is the source of many large global problems today. They won&apos;t stop because it is a firehose of money, either. One of the things I&apos;m most worried about with AI is that it will make the surveilance advertising we have today seem quaint in comparison. There are many scary scenarios that could result from this. And of course they are going to do it, it&apos;s essentially infinite money, and we are unable to create functional laws to stop them.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.perplexity.ai/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.perplexity.ai/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2025/04/24/perplexity-ceo-says-its-browser-will-track-everything-users-do-online-to-sell-hyper-personalized-ads/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/enshitification-podcast/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/enshitification-podcast/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Gemini Usage Numbers</title><link>https://barnes.tech/blog/gemini-usage-numbers</link><guid isPermaLink="true">https://barnes.tech/blog/gemini-usage-numbers</guid><description>Google&apos;s Gemini sees massive user growth amid antitrust discussions, but how does it compare to ChatGPT?</description><pubDate>Sat, 26 Apr 2025 23:12:41 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/gemini_wordmark.svg&quot; alt=&quot;Google Gemini Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Recently, in Ars Technica - &lt;a href=&quot;https://arstechnica.com/ai/2025/04/gemini-usage-is-exploding-but-google-is-a-long-way-from-catching-chatgpt/&quot;&gt;Google reveals sky-high Gemini usage numbers in antitrust case&lt;/a&gt; Google talks about the &quot;significant increase&quot;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;During day three of Google&apos;s antitrust remedies trial, the company presented a slide showing that Gemini reached 350 million monthly active users as of March 2025. That&apos;s a massive increase from last year, showing that Google is beginning to gain traction among competing chatbots.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Seems to imply that it has improved significantly, leading to people using it more... But could it possibly have anything to do with &lt;a href=&quot;https://workspace.google.com/blog/product-announcements/google-workspace-extends-gemini-benefits-to-more-customers&quot;&gt;Google just forcing it on to every Workspace customer&lt;/a&gt;, and &lt;a href=&quot;https://ai.google/get-started/gemini-ecosystem/&quot;&gt;every corner of all of their products&lt;/a&gt;?&lt;/p&gt;
&lt;p&gt;Snarking aside, I have found Gemini to be more useful than it used to be, but it still is far less useful to me than ChatGPT. The embarassing part for Google, is that I find that even &lt;a href=&quot;https://help.openai.com/en/articles/10847137-internal-knowledge-on-chatgpt-faq&quot;&gt;integrating ChatGPT with Google Drive&lt;/a&gt; works FAR better than the built in Gemini Side Panel...&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/ai/2025/04/gemini-usage-is-exploding-but-google-is-a-long-way-from-catching-chatgpt/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/ai/2025/04/gemini-usage-is-exploding-but-google-is-a-long-way-from-catching-chatgpt/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://workspace.google.com/blog/product-announcements/google-workspace-extends-gemini-benefits-to-more-customers&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://workspace.google.com/blog/product-announcements/google-workspace-extends-gemini-benefits-to-more-customers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://ai.google/get-started/gemini-ecosystem/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://ai.google/get-started/gemini-ecosystem/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://help.openai.com/en/articles/10847137-internal-knowledge-on-chatgpt-faq&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://help.openai.com/en/articles/10847137-internal-knowledge-on-chatgpt-faq&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Automatically Deploy a Tailscale Exit Node on GCP Using Bash</title><link>https://barnes.tech/blog/tailscale_ephemeral_server</link><guid isPermaLink="true">https://barnes.tech/blog/tailscale_ephemeral_server</guid><description>Automate Tailscale exit node deployment on GCP with a Bash script for seamless network setup.</description><pubDate>Tue, 22 Apr 2025 01:33:19 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/tailscale-logo.svg&quot; alt=&quot;Tailscale Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Tailscale makes creating software-defined networks easy. This is a quote right from their site but it&apos;s 100% true. In this post I want to talk about a script I made that will allow you to easily set up a Google Cloud linux machine, install and authroize Tailscale with an ephemeral authentication token, and then set up network rules in Google Cloud to allow connection. This is a great, really easy way to get around any geofenced conent on the internet, if you found yourself needing something like that.&lt;/p&gt;
&lt;p&gt;For this to work, you will need a Google Cloud account, as well as the Google Cloud CLI set up on whichever machine you are running this on. You&apos;ll also need to be an admin in your Tailscale Tailnet to be able to generate the auth keys.&lt;/p&gt;
&lt;h2&gt;What the Script Does&lt;/h2&gt;
&lt;p&gt;This script handles provisioning a cloud-based Tailscale exit node using the Google Cloud Platform (GCP) and Tailscale&apos;s API, and connects it to your Tailnet without any interaction on your part. It sets up Linux to be an &lt;a href=&quot;https://tailscale.com/kb/1103/exit-nodes&quot;&gt;exit node&lt;/a&gt; (so you can route traffic through that node), as well as setting up &lt;a href=&quot;https://tailscale.com/tailscale-ssh&quot;&gt;Tailscale SSH&lt;/a&gt;, which is a fantastic way to just connect to the box if needed.&lt;/p&gt;
&lt;p&gt;In this example, I have it set to be an ephemeral key, which will remove itself from Tailscale shortly after the machine goes offline, but you wouldn&apos;t necessarily need to do that, just be cautious with the type of auth key you are generating. The idea is to set up a machine to easily and quickly connect to, then have it destroy itself as soon as you&apos;re done. For the amount I use this, it makes it effectively free.&lt;/p&gt;
&lt;p&gt;Additionally, I use &lt;a href=&quot;https://tailscale.com/kb/1068/tags&quot;&gt;tags&lt;/a&gt; to change ownership to the tailnet instead of me specifically. In this case I use the tag &quot;streaming&quot;, which I put on my Plex and Jellyfin server, and is set with several rules that could potentially allow streaming from whatever geography you were connecting to. You can change the tag to whatever makes the most sense for your use case.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; - Whatever tag or group or users you set up make sure to set the &lt;a href=&quot;https://tailscale.com/kb/1018/acls&quot;&gt;ACL rules&lt;/a&gt; correctly in Tailscale. I will do another post about that in more depth.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Step-by-Step Breakdown&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;1. Generate a Tailscale Ephemeral Auth Key&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The script first makes a &lt;code&gt;POST&lt;/code&gt; request to the &lt;a href=&quot;https://tailscale.com/kb/1215/api-create-keys/&quot;&gt;Tailscale API&lt;/a&gt; to generate a one-time-use authentication key. It enables:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ephemeral mode (expires when the device disconnects)&lt;/li&gt;
&lt;li&gt;Preauthorization (no manual approval needed)&lt;/li&gt;
&lt;li&gt;Tagging (&lt;code&gt;tag:streaming&lt;/code&gt; in this example)&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;curl -X POST https://api.tailscale.com/api/v2/tailnet/&amp;#x3C;your-tailnet&gt;/keys
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This key allows the new VM to automatically join your Tailscale network without interaction.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;2. Validate the API Response&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;After sending the request, the script parses the response to check for a successful status code and then extracts the newly issued auth key.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;3. Generate a GCP Instance Startup Script&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Using a temporary file, the script creates a startup script that will run on the new GCP instance when it boots up. This script:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Installs Tailscale&lt;/li&gt;
&lt;li&gt;Brings the node online with the generated auth key&lt;/li&gt;
&lt;li&gt;Enables SSH via Tailscale&lt;/li&gt;
&lt;li&gt;Advertises itself as an exit node with a tag&lt;/li&gt;
&lt;li&gt;Sets up basic IP forwarding and NAT (via &lt;code&gt;iptables&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Ensures the firewall rules persist across reboots&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;4. Provision the GCP VM&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Finally, it provisions a VM using the &lt;code&gt;gcloud&lt;/code&gt; CLI, specifying:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Machine type and zone&lt;/li&gt;
&lt;li&gt;Boot disk size&lt;/li&gt;
&lt;li&gt;Debian OS&lt;/li&gt;
&lt;li&gt;IP forwarding enabled&lt;/li&gt;
&lt;li&gt;Metadata to run the startup script&lt;/li&gt;
&lt;li&gt;Proper scopes and network tags&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Once the instance boots, it will automatically connect to your Tailscale network and act as an SSH-accessible exit node.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Final Output&lt;/h2&gt;
&lt;p&gt;After the script runs, you&apos;ll have a fully functional, cloud-hosted Tailscale exit node with minimal effort. It’s perfect for setting up private, secure tunnels for streaming, remote work, or general internet privacy. In my experience it is up and going and ready to connect to in about 30 seconds.&lt;/p&gt;
&lt;p&gt;This version will only create the server for you. In my workflow I just manually delete the instance when I&apos;m done, but I will work on a version that potentially does that in the script itself. Still trying to think through how I want to do that exactly. Once you delete the server in Google Cloud, however, shortly after the machine in Tailscale will also remove itself if you used the ephemeral key option.&lt;/p&gt;
&lt;p&gt;This little experiment of mine was mostly a proof of concept for myself, but I&apos;m already thinking of a few other crazy things I could try with what I learned during this.&lt;/p&gt;
&lt;p&gt;Here&apos;s the script in full -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-sh&quot;&gt;#!/bin/bash

# === CONFIG ===
TAILSCALE_API_KEY=&quot;&amp;#x3C;your-tailscale-api-key&gt;&quot;
TAILNET=&quot;&amp;#x3C;your-tailnet-domain&gt;&quot;
GCP_PROJECT=&quot;&amp;#x3C;your-gcp-project-id&gt;&quot;
ZONE=&quot;&amp;#x3C;your-gcp-zone&gt;&quot;
INSTANCE_NAME=&quot;tailscale-node&quot;
MACHINE_TYPE=&quot;e2-micro&quot;
DISK_SIZE=&quot;10GB&quot;

echo &quot;🔒 Generating Tailscale ephemeral auth key with tag:streaming...&quot;

# === Step 1: Call the Tailscale API and capture the full response
RESPONSE=$(curl -s -w &quot;\n%{http_code}&quot; -X POST &quot;https://api.tailscale.com/api/v2/tailnet/$TAILNET/keys&quot; \
  -u &quot;$TAILSCALE_API_KEY:&quot; \
  -H &quot;Content-Type: application/json&quot; \
  -d &apos;{
    &quot;capabilities&quot;: {
      &quot;devices&quot;: {
        &quot;create&quot;: {
          &quot;ephemeral&quot;: true,
          &quot;preauthorized&quot;: true,
          &quot;tags&quot;: [&quot;tag:streaming&quot;]
        }
      }
    }
  }&apos;)

# === Step 2: Separate JSON and HTTP status
HTTP_BODY=$(echo &quot;$RESPONSE&quot; | sed &apos;$d&apos;)
HTTP_STATUS=$(echo &quot;$RESPONSE&quot; | tail -n1)

# === Step 3: Parse key or show debug info
if [[ &quot;$HTTP_STATUS&quot; != &quot;200&quot; ]]; then
  echo &quot;❌ Failed to create Tailscale auth key. HTTP status: $HTTP_STATUS&quot;
  echo &quot;Response body:&quot;
  echo &quot;$HTTP_BODY&quot;
  exit 1
fi

AUTHKEY=$(echo &quot;$HTTP_BODY&quot; | jq -r &apos;.key&apos;)

if [[ -z &quot;$AUTHKEY&quot; || &quot;$AUTHKEY&quot; == &quot;null&quot; ]]; then
  echo &quot;❌ Auth key was not found in the response.&quot;
  echo &quot;Full response:&quot;
  echo &quot;$HTTP_BODY&quot;
  exit 1
fi

echo &quot;✅ Tailscale auth key created: $AUTHKEY&quot;

# === Step 4: Build startup script with injected auth key
STARTUP_SCRIPT=$(mktemp)
cat &gt; &quot;$STARTUP_SCRIPT&quot; &amp;#x3C;&amp;#x3C;EOF
#!/bin/bash
echo &apos;net.ipv4.ip_forward = 1&apos; &gt;&gt; /etc/sysctl.conf
sysctl -p
curl -fsSL https://tailscale.com/install.sh | sh
tailscale up --authkey=$AUTHKEY --ssh --advertise-exit-node --advertise-tags=tag:streaming
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
apt-get update
DEBIAN_FRONTEND=noninteractive apt-get install -y iptables-persistent
iptables-save &gt; /etc/iptables/rules.v4
EOF

echo &quot;🚀 Creating GCP instance &apos;$INSTANCE_NAME&apos; in &apos;$ZONE&apos;...&quot;

gcloud compute instances create &quot;$INSTANCE_NAME&quot; \
  --project=&quot;$GCP_PROJECT&quot; \
  --zone=&quot;$ZONE&quot; \
  --machine-type=&quot;$MACHINE_TYPE&quot; \
  --image-family=&quot;debian-12&quot; \
  --image-project=&quot;debian-cloud&quot; \
  --boot-disk-size=&quot;$DISK_SIZE&quot; \
  --can-ip-forward \
  --tags=tailscale-exit-node \
  --metadata-from-file startup-script=&quot;$STARTUP_SCRIPT&quot; \
  --scopes=https://www.googleapis.com/auth/cloud-platform

rm &quot;$STARTUP_SCRIPT&quot;

echo &quot;✅ Instance created and fully configured as a Tailscale exit node with SSH.&quot;
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/kb/1103/exit-nodes&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/kb/1103/exit-nodes&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/tailscale-ssh&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/tailscale-ssh&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/kb/1068/tags&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/kb/1068/tags&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/kb/1018/acls&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/kb/1018/acls&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Tailscale Tips</title><link>https://barnes.tech/blog/tailscale-tips</link><guid isPermaLink="true">https://barnes.tech/blog/tailscale-tips</guid><description>Discover beginner tips for maximizing Tailscale&apos;s potential and enhancing your Tailnet experience.</description><pubDate>Fri, 18 Apr 2025 04:35:36 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/tailscale-logo.svg&quot; alt=&quot;Tailscale Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h2&gt;Tailscale Tips&lt;/h2&gt;
&lt;p&gt;There is a lot I love about Tailscale, but their video content is one of the best things. They just posted &lt;a href=&quot;https://www.youtube.com/watch?v=jOcYJ81-3xM&quot;&gt;5 beginner friendly tips to get more from your Tailnet&lt;/a&gt;, with some really great tips about using Tailscale.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=jOcYJ81-3xM&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=jOcYJ81-3xM&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Enshitification of Big Tech: A Conversation with Cory Doctorow</title><link>https://barnes.tech/blog/enshitification-podcast</link><guid isPermaLink="true">https://barnes.tech/blog/enshitification-podcast</guid><description>Cory Doctorow discusses the Enshitification of Big Tech on Organized Money. A must-listen for insights on the tech industry.</description><pubDate>Thu, 17 Apr 2025 03:09:21 GMT</pubDate><content:encoded>&lt;p&gt;Cory Doctorow recently on Organized Money talking about the Enshitification of Big Tech. Really good listen from the person who actually coined the term.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://overcast.fm/+ABLSluPAuKI&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://overcast.fm/+ABLSluPAuKI&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Open AI Social Network</title><link>https://barnes.tech/blog/open-ai-social</link><guid isPermaLink="true">https://barnes.tech/blog/open-ai-social</guid><description>OpenAI is reportedly developing a social network, raising concerns about the implications for AI and tech culture.</description><pubDate>Wed, 16 Apr 2025 08:45:43 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/openai.svg&quot; alt=&quot;OpenAI Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Today, &lt;a href=&quot;https://www.theverge.com/openai/648130/openai-social-network-x-competitor&quot;&gt;The Verge reported that OpenAI is building a social network&lt;/a&gt;. While I can mildly appreciate sticking the middle finger to Zuckerberg and Musk, I’m so tired of the Silicon Valley pissing contest.&lt;/p&gt;
&lt;p&gt;I use OpenAI nearly every day at the moment. I totally understand all the complaints and problems with AI. I get it, and I am conflicted about it, but it has become an incredibly useful tool to me too. That said, I’m almost positive that the unbelievable amount of money being shoveled in to OpenAI will almost certainly rot the brains of leadership and it will become a toxic shit show like nearly every big tech company has become. Social network seems like an unbelievable accelerant toward inevitable &lt;a href=&quot;https://podcasts.apple.com/us/podcast/the-enshitification-of-big-tech-a/id1773721991?i=1000699099177&quot;&gt;enshitification&lt;/a&gt;.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/the-enshitification-of-big-tech-a/id1773721991&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://podcasts.apple.com/us/podcast/the-enshitification-of-big-tech-a/id1773721991&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/openai/648130/openai-social-network-x-competitor&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/openai/648130/openai-social-network-x-competitor&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Nest Protect - Another Google Casualty</title><link>https://barnes.tech/blog/nest-protect</link><guid isPermaLink="true">https://barnes.tech/blog/nest-protect</guid><description>Google discontinues the Nest Protect, raising concerns about product support and innovation in smart home technology.</description><pubDate>Sun, 13 Apr 2025 04:37:10 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/nest-protect-dead.png&quot; alt=&quot;Nest Protect - Dead&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;No one should be surprised any more when Google kills more products, but it doesn’t stop being incredibly frustrating. &lt;a href=&quot;https://www.theverge.com/news/638171/google-discontinuing-nest-protect-smoke-alarm-nest-x-yale-smart-lock&quot;&gt;Google recently announced that the next excellent product on the chopping block is the Nest Protect&lt;/a&gt;. I would argue this was the second revolutionary product Nest came out with after the thermostat. Far more expensive than alternatives, it became extremely popular because of it’s aesthetic and excellent functionality. It’s a product that came along, completely blew away everything that came before it, and people were willing to pay a premium for it. The motion sensing for home presence was way ahead of it’s time, and triggering the clever little night lights was very smart and looks super cool.&lt;/p&gt;
&lt;p&gt;Nest Protect has not been updated for many years now, but honestly, it didn’t need to be. They still work incredibly well. Why is Google killing it off? Honestly who knows, other than they probably get some money from the new “partnership” with &lt;a href=&quot;https://www.theverge.com/news/638234/first-alert-smart-smoke-alarm-google-nest-protect-replacement&quot;&gt;First Alert&lt;/a&gt;, which is an uglier and less functional version, and I think it’s clear that Google doesn’t particularly care about any product that isn’t a conduit for advertising for them.&lt;/p&gt;
&lt;p&gt;Google is also killing off the Nest / Yale smart lock that they used to make, which is less frustrating. It was always more of a half assed Yale lock trying to talk to Nest in a weird way. It was neat when Google had their Alarm System (which was fantastic and also killed off), and the Nest / Yale lock would also disarm the alarm when you unlocked the door, but it is a weird product that doesn’t feel very “Nest”y. The replacement is essentially a better looking version of the same thing from Yale, and it seems like it’s more just dropping the Nest labeling. Not terribly surprising or upsetting. There are much better options out there, and that remains true.&lt;/p&gt;
&lt;p&gt;I’m so tired of buying Google products because they are significantly better than the competition (at least at the time), and then being punished by Google’s lack of focus and follow through. I also &lt;em&gt;really&lt;/em&gt; wish Google had not been the one to buy Nest, which they have completely squandered.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://killedbygoogle.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://killedbygoogle.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/638171/google-discontinuing-nest-protect-smoke-alarm-nest-x-yale-smart-lock&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/638171/google-discontinuing-nest-protect-smoke-alarm-nest-x-yale-smart-lock&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/638234/first-alert-smart-smoke-alarm-google-nest-protect-replacement&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/638234/first-alert-smart-smoke-alarm-google-nest-protect-replacement&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Something&apos;s Rotten</title><link>https://barnes.tech/blog/somethings-rotten</link><guid isPermaLink="true">https://barnes.tech/blog/somethings-rotten</guid><description>Exploring Apple&apos;s struggles with AI and cloud services amidst rising competition and expectations.</description><pubDate>Fri, 14 Mar 2025 01:01:48 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple-intelligence.png&quot; alt=&quot;Apple Intelligence Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h1&gt;Something&apos;s Rotten&lt;/h1&gt;
&lt;p&gt;Yesterday, John Gruber posted on his site &lt;a href=&quot;https://daringfireball.net/&quot;&gt;Daring Fireball&lt;/a&gt; a blistering commentary, “&lt;a href=&quot;https://daringfireball.net/2025/03/something_is_rotten_in_the_state_of_cupertino&quot;&gt;&lt;strong&gt;Something Is Rotten in the State of Cupertino&lt;/strong&gt;&lt;/a&gt;” on Apple’s recent announcement that the “Advanced Siri” would be delayed further than expected. While I disagree with some of the specifics, in all I agree with him on this. This is completely uncharacteristic of Apple, and unfortunately it is an area Apple is not great at.&lt;/p&gt;
&lt;p&gt;To be clear, I love Apple and the products they’ve made, but there are several things they are just not great at. Online services is one of them, and I would argue that’s very closely linked to the “AI” craze going on at the moment. Sure, they’ve improved since the MobileMe disaster that Gruber mentions in this post (for the record, I worked in an Apple Store when that launch happened, and it was just awful. Our phone activation servers also went down… with a new phone, and a new cloud syncing platform all in the same day…). iCloud is a decent platform for most people. I’d even say it is really good at a few things, but we just kind of ignore the other things because we know they won’t change.&lt;/p&gt;
&lt;p&gt;Compare this to other cloud services. What AWS can do, what Google Cloud can do, what Azure can (sometimes*) do, iCloud is extremely basic. Dig a little deeper and you realize that iCloud is actually running on these other cloud services for most of the hard work. Apple does a lot of work to keep things private and portable between platforms, which is great, but if you’re talking about a ~$4 Trillion company? It’s kind of embarrassing how little they do with the cloud.&lt;/p&gt;
&lt;p&gt;You could easily argue that this doesn’t matter. Apple is largely a hardware company, and the software that runs on that hardware. As long as they continue to do that well, and lately I think they’ve been doing that extremely well, then people will keep buying their hardware, even if a lot of the work they do is to connect to a SaaS platform to do some sort of work. That might be true, but it’s potentially a little shaky. Now that AI is seemingly making a huge impact across the industry, it could be a bigger problem.&lt;/p&gt;
&lt;p&gt;You can make arguments either way on whether AI will actually be revolutionary, or if it’s mostly hype and won’t live up to the expectations, but that isn’t really the point here. All of the leading AI companies / models right now have something in common - Huge amounts of cloud infrastructure to run these extremely computationally expensive models. OpenAI - Essentially unlimited access to the resources in Azure. Gemini - Google has probably the most advanced cloud infrastructure to run all of this on, despite missing (or squandering) their enormous AI lead, they have the infrastructure to at least stay relevant if not catch up or even win. Amazon - Huge amount of infrastructure, but kind of struggle with focus. Still, Alexa+ is supposedly coming soon, they have their own large models that are actually available and being used, and they partner with Anthropic to run much of their model building as well.&lt;/p&gt;
&lt;p&gt;Apple of course has essentially unlimited money, so they of course could just throw that at one of these clouds and run models that way, but so far it kind of seems like they aren’t. Now the competency of modern cloud, and everything that comes along with it, seems to become a problem. &lt;a href=&quot;https://security.apple.com/blog/private-cloud-compute/&quot;&gt;Private Cloud Compute&lt;/a&gt; is interesting, and seems to have some cutting edge privacy features, but it’s hard to tell how much it’s actually being used right now, or what the plan is in the future. Almost feels like too little, too late. More importantly - they seem culturally incompatible with the way successful companies have built out similar products.&lt;/p&gt;
&lt;p&gt;Still, I think Apple would be fine being the hardware that everyone &lt;em&gt;wants&lt;/em&gt; to run AI models on. If they had thrown huge amounts of money at OpenAI, or Anthropic, and run those models more natively, Advanced Siri would likely be in a demo-able state, if not already pretty good. There are definitely arguments against doing these kind of partnerships, but from a technology standpoint, it would get them closer to what they promised. And that’s the big problem, as Gruber points out. The promise.&lt;/p&gt;
&lt;p&gt;Can they pull this out? Of course they can, but it’s not guaranteed. They told everyone very specific things at WWDC about Apple Intelligence, and to Gruber’s point it is seemingly just vaporware to this day. That’s not ok. They advertised &lt;em&gt;heavily&lt;/em&gt; on features that just straight up don’t exist.&lt;/p&gt;
&lt;p&gt;The question unfortunately remains - Can they do it at all? It’s hard to say. This is something they are historically bad at. How many times have we been promised better Siri over the years? It’s fundamentally broken, and I’m not sure that the culture is right in that part of the company to truly do what it needs to do to fix it. They also clearly focus on running things on-device. This got us a &lt;em&gt;long&lt;/em&gt; overdue increase in base RAM across the product line, which is fantastic. But is that enough? We obviously aren’t running what they promised, so what if they guessed wrong on the hardware requirements to even do that? That would be a huge misstep, and one of the big risks of pre-announcing things you aren’t &lt;em&gt;completely&lt;/em&gt; sure is even possible…&lt;/p&gt;
&lt;p&gt;*I couldn’t help myself…&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/2025/03/something_is_rotten_in_the_state_of_cupertino&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/2025/03/something_is_rotten_in_the_state_of_cupertino&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://security.apple.com/blog/private-cloud-compute/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://security.apple.com/blog/private-cloud-compute/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>rclone and ChatGPT</title><link>https://barnes.tech/blog/rclone-and-chatgpt</link><guid isPermaLink="true">https://barnes.tech/blog/rclone-and-chatgpt</guid><description>Learn how to optimize rclone transfers using AI for faster data uploads with tailored commands.</description><pubDate>Thu, 13 Mar 2025 08:28:58 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/rclone-dark.png&quot; alt=&quot;rClone logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;If you haven’t heard of &lt;a href=&quot;https://rclone.org/&quot;&gt;rclone&lt;/a&gt;, it’s a fantastic utility that you should check out. It’s an open source Swiss Army knife of data transfer tools, and something I use frequently.&lt;/p&gt;
&lt;p&gt;It’s often something I run in the background and just let it run, and I’m not too concerned about how fast it goes. Sometimes I need it to go a little faster. I knew you could add additional flags to make it use more resources and go a little faster but I had never gone through the documentation to figure out the correct incantation. Somehow I had never really thought about using ChatGPT for this but today I did and it kind of blew my mind.&lt;/p&gt;
&lt;p&gt;First I ask what flags you can use with &lt;a href=&quot;https://rclone.org/&quot;&gt;rclone&lt;/a&gt; to make it go faster, and it answered really well, including explanation of each flag and what it does. Cool and helpful, I expected that. Then it connected to my terminal, &lt;a href=&quot;https://app.warp.dev/referral/ZL9WG&quot;&gt;Warp&lt;/a&gt; (which is fantastic), and saw the specific command I was running, and gave me the updated one with my specific paths. That’s really cool as well, but I have used that a few times. Then it asked me if I wanted to tell it my CPU, RAM, and available network speed and it would craft a specific command based on my available resources to maximize the upload speed. I did so and it worked like a champ. I now have a transfer running nearly 10x as fast as the default settings. 🤯&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://app.warp.dev/referral/ZL9WG&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://app.warp.dev/referral/ZL9WG&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://rclone.org/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://rclone.org/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.warp.dev/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.warp.dev/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Raycast</title><link>https://barnes.tech/blog/raycast</link><guid isPermaLink="true">https://barnes.tech/blog/raycast</guid><description>Explore how Raycast enhances productivity with application launching, hotkeys, and custom shortcuts on Mac.</description><pubDate>Thu, 06 Mar 2025 11:15:43 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Raycast Logo.svg&quot; alt=&quot;Raycast Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;In an effort to distract myself from the state of the world, there have been a few tech things I have been spending a lot more time diving in to recently and I wanted to talk about a few of them here on my blog and how I’m using them. (Have I told you about Tailscale? 😆)&lt;/p&gt;
&lt;p&gt;Today I wanted to write about &lt;a href=&quot;https://www.raycast.com/&quot;&gt;Raycast&lt;/a&gt;. At a basic level, Raycast is an application launcher, similar to Apple’s built in Spotlight, or other 3rd party replacements for Spotlight like &lt;a href=&quot;https://www.alfredapp.com/&quot;&gt;Alfred&lt;/a&gt;, &lt;a href=&quot;https://www.obdev.at/products/launchbar/index.html&quot;&gt;LuanchBar&lt;/a&gt;, and several others. I have tried the popular ones and they were alright, but I settled on Raycast for this fairly simple replacement a few years ago and had been very happy with it. I mostly started using these tools because Spotlight can often be slow, stuck indexing, or honestly just miss something obvious. It has been a fantastic tool since it launched, but it’s one of those tools where if you can improve it even a little bit with a 3rd party app it makes a big difference over time. I use the ole ⌘ + Space dozens if not hundreds of times a day.&lt;/p&gt;
&lt;p&gt;I was happy doing basic app launching and basic file searches, but I knew Raycast could do a lot more. I had done some more “power user” things with Alfred, but for one reason or another none of them really stuck over time, and I had not spent much time going in to the deeper features of Raycast until the last couple of months. I decided to revisit this, and Raycast has become a tool that I now pay for and honestly have a hard time thinking I will ever live without it on Mac again.&lt;/p&gt;
&lt;p&gt;There are so many things you can do with it there’s no way I could write them all, but here are a few of my favorite things. I know other tools can do these, but the way Raycast has implemented these became second nature to me very quickly, and just feel fantastic.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Application Launching&lt;/strong&gt; - The first reason I came to Raycast. It automatically ranks the apps in the suggestion based on your usage, but if you want to do more, you can favorite specific applications to always show up on top. Additionally you can assign an application to a hotkey, which leads me to my next item -&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hotkeys&lt;/strong&gt; - In Raycast you can assign hotkeys to all sorts of actions. When you go to the Raycast settings, under “Extensions” you can see all of the many many things you can assign a hotkey to. These can be actions, or they can simply be opening a specific application. I’ll talk more about hotkeys in some other examples I use.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hyperkey&lt;/strong&gt; - If you already have a bunch of keyboard shortcuts you don’t want to mess with, Raycast has what they call the “Hyperkey” which you can use to attach to hotkeys. The “hyperkey” defaults to all of the left keyboard modifiers pressed at the same time - ⌃⌥⌘⇧. You can combine that with other keys to do shortcuts, something like ⌃⌥⌘⇧+V to paste in plaintext or something like that. More recently they have made it so you can bind the hyperkey to other keys, including a clever way to use the caps lock key as the modifier, all while determining whether you are using it as a keyboard shortcut, or actually turning on caps lock. This is outlined in their &lt;a href=&quot;https://www.youtube.com/watch?v=3UaOst_nqu8&quot;&gt;YouTube video&lt;/a&gt; published recently.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;This took a little while to get my muscle memory used to this, but it has been a complete game changer for me. Some examples I have -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;⌃⌥⌘⇧ + A = “Open &lt;a href=&quot;https://arc.net/&quot;&gt;Arc&lt;/a&gt;”&lt;/li&gt;
&lt;li&gt;⌃⌥⌘⇧ + M = “Open &lt;a href=&quot;https://mimestream.com/&quot;&gt;Mimestream&lt;/a&gt;”&lt;/li&gt;
&lt;li&gt;⌃⌥⌘⇧ + E = “Open &lt;a href=&quot;https://eagle.cool/&quot;&gt;Eagle&lt;/a&gt;”&lt;/li&gt;
&lt;li&gt;etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Many people use it for ⌃⌥⌘⇧ + V to open clipboard history, but I use a different hotkey for that.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aliases&lt;/strong&gt; - If you have an app that is named one thing, but you always think of it as another thing, you can put in an alias for it. This also works for any other extension, so many actions that are directly supported or even extensions you install from the store, which I’ll cover separately. For example, I use &lt;a href=&quot;https://parcelapp.net/&quot;&gt;Parcel&lt;/a&gt; for delivery tracking, but sometimes I just think “Delivery” so I made an alias for Parcel of “Delivery” and now if I start typing that, it will come up first as well.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Store&lt;/strong&gt; - There are thousands of extensions available in the store. I believe they are all free, but they give you even more functionality right in Raycast. There are extensions for Notion, Slack, 1Password, Google Calendar, and many many more. I use several of them daily. I’ll do another post on this, but &lt;a href=&quot;http://dub.co&quot;&gt;dub.co&lt;/a&gt; has an extension as well and I use this a surprising amount.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Actions&lt;/strong&gt; - From anything you search for in Raycast you can use ⌘ + K to pull up available actions for what you have selected. Custom add-on extensions can have any number of actions available, but even for built in macOS apps the options are fantastic. Show in finder is right there, show info in finder also great, but even things like copy file path, copy app name, copy bundle ID, quit app, force quit app, and even delete app are all right there. Most of them have their own keyboard shortcuts you can do right from that menu if it’s something you do all the time.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt; - When you delete an app this way, it does something similar to &lt;a href=&quot;https://www.noodlesoft.com/&quot;&gt;Hazel&lt;/a&gt;, or other potentially scammy apps, where it will remove all of the library files created, settings files, etc. all across your system, giving you the option to &lt;em&gt;really&lt;/em&gt; delete the file.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Clipboard Manager&lt;/strong&gt; - If you want, you can set up Raycast as your clipboard manager. I had been using Pastebot for years and loved it, but consolidating has been nice. I pay for Raycast so I get the cloud sync as well which is great. You can optionally enable unlimited clipboard history too if you are on the paid version. Another great feature is that you can easily go in to the history and with another keyboard shortcut, you can delete specific items from the history if you need / want to. The previews for things like links in your clipboard history in Raycast are fantastic and a huge help.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Emoji Picker&lt;/strong&gt; - I remapped the emoji picker ( ⌃⌘ + Space ) to Raycast’s emoji picker instead of the macOS one and it is amazing how much better it is. Instant, every time (I’m confused why the macOS one is always so slow…), search is MUCH better, and you can even favorite your own emoji if you want, as well as add other keywords to specific emoji if it makes more sense to you. Seems like a small thing, but this is a huge quality of life improvement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Calculator&lt;/strong&gt; - The calculator built in to Raycast is fantastic. When you do some quick math, and hit “Return”, it saves the answer to your clipboard automatically. It even saves it in the history in Raycast so you can go back and search if you need to. It’s also fantastic at things like unit conversions, date conversions, and even things like “2 weeks from now” or “December 25 - 3 weeks” or things like that. Truly great and incredibly helpful.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are a million other things it can do. Many people use it for more advanced window management as well. I currently use BetterSnapTool, which has been perfect for me, but I may try out the Raycast window management as well in the near future.&lt;/p&gt;
&lt;p&gt;The &lt;a href=&quot;https://youtu.be/NuIpZoQwuVY?si=gELwMs4MzKAPzSD2&quot;&gt;101 things you can do with Raycast&lt;/a&gt; video is a great way to learn more about what parts you might want to dive in to more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bonus&lt;/strong&gt; - If you have Raycast, try typing in “Confetti”. You can actually use a callback URL for this at the end of scripts if you feel so inclined as well 🎉&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://dub.co&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;http://dub.co&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://arc.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arc.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://eagle.cool/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://eagle.cool/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://mimestream.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://mimestream.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://parcelapp.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://parcelapp.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.alfredapp.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.alfredapp.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.noodlesoft.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.noodlesoft.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.obdev.at/products/launchbar/index.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.obdev.at/products/launchbar/index.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.raycast.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.raycast.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=3UaOst_nqu8&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=3UaOst_nqu8&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://youtu.be/NuIpZoQwuVY?si=gELwMs4MzKAPzSD2&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://youtu.be/NuIpZoQwuVY?si=gELwMs4MzKAPzSD2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Affiliate link&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://raycast.com/?via=robby&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://raycast.com/?via=robby&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Tailscale - Home Assistant</title><link>https://barnes.tech/blog/tailscale-home-assistant</link><guid isPermaLink="true">https://barnes.tech/blog/tailscale-home-assistant</guid><description>Explore how Tailscale enhances Home Assistant integration with detailed YouTube tutorials and real-world examples.</description><pubDate>Sat, 01 Mar 2025 03:15:33 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/tailscale-logo.svg&quot; alt=&quot;Tailscale Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I won&apos;t post constantly about Tailscale, but I have recently started going down the Home Assistant rabbit hole (more on that in another post). Unsurprisingly, Tailscale not only works fantastically well with Home Assistant, but they posted a YouTube video about how to do it.&lt;/p&gt;
&lt;p&gt;Their YouTube videos are probably my favorite of any tech product. Excellent detail, explain everything very well but don&apos;t treat you like an idiot or that you should already know everything. It&apos;s not just a big advertisement for themselves, and they use a ton of real examples of how people could use it, both as a corporate network and for nerdy home lab use cases. If you use Home Assistant this is a great one to check out.&lt;/p&gt;</content:encoded></item><item><title>Humane AI Purchased by HP</title><link>https://barnes.tech/blog/humane-ai</link><guid isPermaLink="true">https://barnes.tech/blog/humane-ai</guid><description>HP&apos;s acquisition of Humane AI raises concerns over customer treatment and product failure in the tech industry.</description><pubDate>Fri, 21 Feb 2025 05:08:47 GMT</pubDate><content:encoded>&lt;p&gt;This week it was announced that Humane AI is being purchased by HP for a ludicrous $116 million. I honestly can’t think of another product so over hyped that had such a big flop. On top of that, the founders seemed so incredibly arrogant every video they made, or for the &lt;a href=&quot;https://www.youtube.com/watch?v=gMsQO5u7-NQ&quot;&gt;weird commercial wrapped in a Ted Talk&lt;/a&gt; they did…&lt;/p&gt;
&lt;p&gt;Surely they are refunding everyone who spent $700+ on top of the required monthly cellular plan, right? Haha, no. The &lt;a href=&quot;https://support.humane.com/hc/en-us/articles/34243204841997-Ai-Pin-Consumers-FAQ&quot;&gt;support document and FAQ&lt;/a&gt; are just a big and clear fuck you to anyone who bought this garbage.&lt;/p&gt;
&lt;p&gt;Beyond the fact that this is an incredibly dumb purchase by HP, they are welcome to waste their money however they want, but you shouldn’t be able to launch a company that promises such ambitious goals, completely under delivers, charges customers a fortune, then pulls the rug out from everyone without any refunds all while getting an enormous pay day.&lt;/p&gt;
&lt;p&gt;I get that companies don’t survive. If humane was going out of business I would get it. You can’t support the servers if you go under. There is a risk buying in to such early technology. But that’s not what is happening. They all get huge pay days, get to just bounce on their awful failed product, and only the customers who were suckers get screwed on this. Couldn’t use part of the $116 million to give the people their money back, could we? Pretty messed up.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt; -&lt;/p&gt;
&lt;p&gt;https://www.theverge.com/news/614883/humane-ai-hp-acquisition-pin-shutdown&lt;/p&gt;
&lt;p&gt;https://support.humane.com/hc/en-us/articles/34243204841997-Ai-Pin-Consumers-FAQ&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://support.humane.com/hc/en-us/articles/34243204841997-Ai-Pin-Consumers-FAQ&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://support.humane.com/hc/en-us/articles/34243204841997-Ai-Pin-Consumers-FAQ&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/news/614883/humane-ai-hp-acquisition-pin-shutdown&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/news/614883/humane-ai-hp-acquisition-pin-shutdown&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=gMsQO5u7-NQ&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=gMsQO5u7-NQ&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Tailscale Update</title><link>https://barnes.tech/blog/tailscale_update</link><guid isPermaLink="true">https://barnes.tech/blog/tailscale_update</guid><description>Explore Tailscale, a modern VPN alternative that simplifies secure connections and enhances productivity.</description><pubDate>Tue, 18 Feb 2025 11:54:16 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/tailscale-logo.svg&quot; alt=&quot;Tailscale Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I’ve written about &lt;a href=&quot;https://barnes.tech/blog/tailscale/&quot;&gt;Tailscale before&lt;/a&gt;, but I wanted to write about it again as I am using it much more than I was in the past. It is one of my favorite tools of the last several years. No one likes VPNs, but I have felt for years like VPNs were just so antiquated compared to so much technology these days. It’s difficult to set up, it’s difficult to connect additional endpoints, and even when it’s all working the way it’s supposed to it’s usually really slow.&lt;/p&gt;
&lt;p&gt;I don’t need to go in to the details of all of the features, but we use this at work now and honestly it just works. We have Tailscale agents deployed in all of the networks that we need and we can just connect to whatever we need securely. Tailscale checks our computers for compliance and users logged in with Okta, then we can just access whatever we need. It’s like magic.&lt;/p&gt;
&lt;p&gt;Since last time I wrote I have been using &lt;a href=&quot;https://tailscale.com/kb/1193/tailscale-ssh&quot;&gt;Tailscale SSH&lt;/a&gt; and &lt;a href=&quot;https://tailscale.com/kb/1223/funnel&quot;&gt;Tailscale Funnels&lt;/a&gt; much more and they are fantastic. The Tailscale Synology app is also fantastic. I will likely write another post about some tips with the Synology app.&lt;/p&gt;
&lt;p&gt;Tailscale also has a generous personal use plan for home labs. I use the &lt;a href=&quot;https://tailscale.com/kb/1280/appletv&quot;&gt;Apple TV app&lt;/a&gt; both personally and at my parents house to troubleshoot things. If you haven’t yet, you should check out Tailscale.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/tailscale/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/tailscale/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/kb/1193/tailscale-ssh&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/kb/1193/tailscale-ssh&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/kb/1223/funnel&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/kb/1223/funnel&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/kb/1280/appletv&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/kb/1280/appletv&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Social Media, the Internet, and Content Filtering</title><link>https://barnes.tech/blog/social_media_and_content_filtering</link><guid isPermaLink="true">https://barnes.tech/blog/social_media_and_content_filtering</guid><description>Exploring the decline of the open internet and the impact of social media and personalized advertising on society.</description><pubDate>Mon, 02 Sep 2024 19:39:14 GMT</pubDate><content:encoded>&lt;p&gt;I have to admit, my thoughts and feelings on the internet (and to some degree, tech in general) have soured quite a bit over the last few years. Don&apos;t get me wrong, I still use the internet every day, my job heavily depends on it, and many aspects of it I still geek out pretty hard with, but in many, many ways, the internet as it should have been is completely dead. I&apos;m not the first one to say this, and I know I won&apos;t be the last, but my thoughts are slightly different than what most people I have heard talking about it say, so I wanted to outline some of it here.&lt;/p&gt;
&lt;p&gt;Although I&apos;m not sure I would have ever considered myself a complete internet libertarian, I&apos;ve always thought there should be some rules in place, but I definitely found the idea of an &quot;open internet&quot; appealing. I largely felt that you should be able to do whatever you want on the internet, essentially as long as it was legal, and you&apos;d have to pay the consequences if it was illegal. Frankly, similar to how real life is. Do whatever you want, but if it&apos;s something illegal, you may have to pay the price for it.&lt;/p&gt;
&lt;p&gt;This was probably fine when the internet was full of personal blogs and a few low-traffic sites. The majority of people who roamed the internet early on were just having fun for the most part. Security and privacy weren&apos;t a concern because it was a fun new toy that everyone could use and seemed to basically only be upsides. I know there were exceptions and dark places of the internet, but it didn&apos;t really impact you unless you went looking for it.&lt;/p&gt;
&lt;p&gt;I don&apos;t need to go through the whole history, but the two things that I think began the rot were &quot;personalized&quot; advertising and social. Particularly together. To some degree, this is oversimplifying, but honestly I don&apos;t think it is a whole lot. When surveillance advertising started to work really well, and social media saw this, the birth of engagement-based timelines was born, and everything on the internet shifted. On the surface, engagement-based timelines don&apos;t seem awful, just slightly annoying. I think it has become clear over time that this just amplifies our worst attributes and that the most engaging content is usually rage-based, fear-based, etc. We also tend to find ourselves in echo chambers of whatever hot-topic item we find engaging, all while becoming more and more addicted to whatever service it is we are using, and becoming more isolated from each other. &lt;a href=&quot;https://en.wikipedia.org/wiki/Enshittification&quot;&gt;See also - enshittification&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The large tech companies that run these engagement casinos have shown over and over again that they do not care how this impacts anyone. They take to the stand in Congress and pretend like there&apos;s nothing they could have done for the teenage suicide caused by negativity and the relative anonymity of social media, coupled with the constant &quot;engagement&quot; with harmful content. Harmful content doesn&apos;t have to mean terrorism, or drug use, or pornography, it could be as simple as amplifying a teenager’s insecurity by constantly showing them unrealistic body expectations, or any number of other topics that are easy for companies to claim don&apos;t ever cause any harm, while refusing to even allow anyone to study the effects or any of the engagement algorithms.&lt;/p&gt;
&lt;p&gt;Finally, more recently, the whole argument of constitutional &quot;free speech&quot; has come up, which is something that really bothers me. Social companies have enjoyed the problematic &lt;a href=&quot;https://www.eff.org/issues/cda230&quot;&gt;Section 230&lt;/a&gt; which has essentially shielded them from any form of responsibility, allowing them to print money as fast as they feel like at the expense of our mental health, privacy, and arguably the foundations of democracy. They personally don&apos;t care because they make so much money, coupled with the fact that they essentially legally have complete legal immunity on their platforms. Section 230 was meant to protect utility companies, such as your internet provider or phone company, from any liability if you did something illegal while using their service, or a blog site that someone posts a problematic comment on, but it has been wielded by social media and search giants as a shield from needing to do any of the hard work of protecting people. Section 230 has come under fire recently, and I don&apos;t think it&apos;s a coincidence that the conversation has been taking a hard right turn to claiming &quot;Free Speech&quot; instead of hiding behind a law that no one likes.&lt;/p&gt;
&lt;p&gt;This to me is ridiculous. Should you have free speech online? I definitely think so, but I do not think that is connected to social media companies at all, not to mention &quot;free speech&quot; is wielded as a weapon by people who typically don&apos;t understand what it even means (or know exactly what it means but want to convince people not paying attention that they are right). To me, free speech means you can host whatever you&apos;d like on the internet. You can spin up a server and put whatever filth you want out there. If it&apos;s illegal, law enforcement should be able to shut it down and find you. I don&apos;t think that means that companies out there should &lt;strong&gt;have&lt;/strong&gt; to host your information, and it certainly does not mean anything for &quot;promoting&quot; content on algorithmic timelines. These are private (or publicly traded) companies running commercial enterprises. They are not a &quot;Town Square&quot; or a platform you should just get to say whatever you want.&lt;/p&gt;
&lt;p&gt;When the government even implies that they want to provide some guidelines, they freak out and claim &quot;censorship&quot; as if they were some crucial bastion of a democratic society, but then they choose what to amplify and what to demote so no one ever sees it all based on an algorithm clearly motivated only by selling the most ads by keeping you addicted to doom scrolling, and they keep it in a tight black box that no one can ever see. They act like it&apos;s &quot;too complex to understand&quot; but panic like a toddler when you try to take a toy away any time someone tries.&lt;/p&gt;
&lt;p&gt;This has slowly shifted to starting to say that the whole concept of content filtering is essentially authoritarian censoring, but they literally never even let you see things the way you want to. It is ALWAYS their version of what you see. In other words, it is literally all filtered all the time, no matter what. It’s just in their financial favor. Filtering things to be more healthy for the rest of us, or turn the heat down on a certain topic, just turns down their free money spigot a little, so why would they? Why would you stop promoting Covid misinformation when lots of people will click on the content (doesn&apos;t particularly matter what you believe, because it&apos;s a charged topic either way)? So keep the unlimited money train coming and throw a fit about “censorship,&quot; then go hide in your giant bunker in Hawaii so you don&apos;t have to actually be around the rest of us when the democracy you live in crumbles around you.&lt;/p&gt;
&lt;p&gt;On the flip side, somehow unironically, some states are trying to simultaneously rage about &quot;government censorship&quot; when it comes to accountability of rich white adults, but also trying to force religious conservative values onto these platforms and the internet as a whole by law. Believing in these things isn&apos;t good enough; you have to force everyone to follow your religious beliefs apparently. This is what Texas tried to do by forcing any tech online to verify people&apos;s age and then filter out content considered &quot;harmful material&quot; to minors. What does &quot;harmful material&quot; mean? It doesn&apos;t say. I&apos;m sure that would never be a problem, since it could just be interpreted as anything, right?&lt;/p&gt;
&lt;p&gt;But on the flip side, as reported by &lt;a href=&quot;https://www.theverge.com/2024/9/2/24232366/texas-scope-act-hb18-blocked-kids-online-safety&quot;&gt;The Verge - Social networks can&apos;t be forced to filter content for kids, says judge&lt;/a&gt; - the other side of the argument seems to be back to what I was talking about earlier. &quot;You can&apos;t force these companies to filter anything because they are immune from everything&quot; is the essential argument. This is also a huge problem. Neither side is right in this case, and there seem to be more and more of these coming up all the time.&lt;/p&gt;
&lt;p&gt;This is the kind of thing that is pushing the internet to essentially die. There is a lot more to the internet than social and search, powered by algorithmic timelines, but if you look at the traffic and time spent, the rest is a vanishingly small part of the overall internet. These lawsuits will come up and get struck down, and we keep spinning our tires and never doing anything, all while these companies cash in on taking advantage of all of us, surveilling everything we do and never taking any responsibility. Why would they, if they don&apos;t have to?&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Enshittification&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Enshittification&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.eff.org/issues/cda230&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.eff.org/issues/cda230&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2024/9/2/24232366/texas-scope-act-hb18-blocked-kids-online-safety&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2024/9/2/24232366/texas-scope-act-hb18-blocked-kids-online-safety&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>SMS Spam</title><link>https://barnes.tech/blog/sms_spam</link><guid isPermaLink="true">https://barnes.tech/blog/sms_spam</guid><description>Explore the rising issue of SMS spam, particularly political messages, and the ineffectiveness of current reporting methods.</description><pubDate>Mon, 02 Sep 2024 18:21:49 GMT</pubDate><content:encoded>&lt;p&gt;It seems I am not alone in getting absolutely bombarded with SMS Spam recently, particularly political spame. Daring Fireball, by John Gruber recently talked about the same issue he is having in &lt;a href=&quot;https://daringfireball.net/linked/2024/08/28/messages-political-spam&quot;&gt;What to Do With Unwanted Political Spam Texts&lt;/a&gt;. It is interesting to see some concrete evidence about what the mysterious iMessage &quot;Delete and Report Junk&quot; button that seems to behave like the elevator close buttons that aren&apos;t even hooked up to anything.&lt;/p&gt;
&lt;p&gt;I&apos;ve worked with a few SMS services programmatically in the past, and I know that every programmatic text that is sent is expected to comply when you send back &quot;Stop&quot;, and in almost all cases, if they use an &lt;a href=&quot;https://en.wikipedia.org/wiki/Short_code&quot;&gt;SMS Short Code&lt;/a&gt; the chances are pretty high that it will respect it. Getting a short code is expensive, and much more heavily monitored by providers (such as Twilio, etc.). There is a theoretical fine of $10,000 per message that ignores these rules, however I&apos;m not aware of this ever actually happening. With short codes, at least the providers seem to be pretty strict about it, possibly because they themselves are afraid of those fines.&lt;/p&gt;
&lt;p&gt;Regular SMS numbers though are trivial to get. While the &quot;Delete and Report Junk&quot; &lt;em&gt;may&lt;/em&gt; help move that message to the junk folder in your messages (yes, this exists, but I&apos;m not sure it ever actually works), you have to explicitly block the number to prevent new messages coming in from that number. I tried this for a while and it has made absolutely no difference for me personally, because every message comes from a new number.&lt;/p&gt;
&lt;p&gt;I get literally up to 15 messages some days and it&apos;s rare that I go a full day without a single message any more. I respond stop to every single one, and I went through the effort of blocking for a while but it does nothing.&lt;/p&gt;
&lt;p&gt;This is a small issue compared to many issues we face as a nation and as a globe these days, but it is absolutely infuriating to me, and frankly dangerous for most people. Carriers won&apos;t do anything unless they are forced to by the government, and the government seems to have absolutely no willingness (frankly, I&apos;m not convinced they even understand how this all works) to fix the issue. Until they do, scams will continue to grow nearly exponentially, and we&apos;ll keep getting blown up with messages we never signed up for and cannot effectively opt out of.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2024/08/28/messages-political-spam&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2024/08/28/messages-political-spam&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Short_code&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Short_code&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Slack AI Training Backlash</title><link>https://barnes.tech/blog/slack_ai_training</link><guid isPermaLink="true">https://barnes.tech/blog/slack_ai_training</guid><description>Slack faces backlash for using user data for AI training without explicit consent. Privacy laws need urgent reform.</description><pubDate>Mon, 20 May 2024 07:13:30 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Slack.svg&quot; alt=&quot;Slack Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Slack is under fire this week as the internet seemed to discover that user data from all Slack instances, paid or not, are being used to train Slack&apos;s AI model, unless you opt &lt;strong&gt;out&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;From Ars Technica - &lt;a href=&quot;https://arstechnica.com/tech-policy/2024/05/slack-defends-default-opt-in-for-ai-training-on-chats-amid-user-outrage/&quot;&gt;Slack users horrified to discover messages used for AI training&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This is a really bad look, and maybe they&apos;ll back off of this given the backlash, but to me it isn&apos;t the key issue. If large companies can get away with it, they will absolutely use your data for this kind of thing. Even if they think it will result in a lawsuit, they will likely make more money from it than they would lose in a lawsuit. The problem is our privacy laws. Companies do this because they &lt;em&gt;can&lt;/em&gt;. That&apos;s the part that needs to change.&lt;/p&gt;
&lt;p&gt;Absolutely bare minimum, it should be illegal to update any data usage policy like this and make it opt-out, but there really should be a lot more than that. In this case, it&apos;s honestly not even clear what Slack&apos;s policy even is, but even if they back track, someone else will do it in the future if they can.&lt;/p&gt;
&lt;p&gt;We desperately need updated privacy laws in this country, or companies will keep pushing the boundaries of how they can use our information to make money for themselves.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/tech-policy/2024/05/slack-defends-default-opt-in-for-ai-training-on-chats-amid-user-outrage/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/tech-policy/2024/05/slack-defends-default-opt-in-for-ai-training-on-chats-amid-user-outrage/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>PSA - Google Workspace Passkeys</title><link>https://barnes.tech/blog/google-workspace-passkeys</link><guid isPermaLink="true">https://barnes.tech/blog/google-workspace-passkeys</guid><description>Learn about Google Workspace passkeys, their security implications, and admin challenges in managing user access.</description><pubDate>Sat, 11 May 2024 09:07:50 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.1password.com/what-are-passkeys/&quot;&gt;Passkeys&lt;/a&gt; are a form of passwordless authentication that enhances security and simplifies the login process for users. Unlike passwords, which can be phished, guessed, or stolen, passkeys rely on cryptographic key pairs (a public key and a private key) to verify a user&apos;s identity. This method is inherently more secure because the private key, which is necessary for authentication, never leaves the user&apos;s device. Passkeys offer a more secure and user-friendly alternative to passwords. I have been using passkeys everywhere I can since they launched, and they are fantastic.&lt;/p&gt;
&lt;p&gt;Google is one of the companies that is working on the Passkey standard, and one of the largest early adopters. In June 2023, they announced &lt;a href=&quot;https://workspace.google.com/blog/product-announcements/major-security-innovation-passkeys&quot;&gt;Google Workspace would be adding support for Passkeys.&lt;/a&gt; As part of a company that is a Google partner I have a ton of Google accounts, and this was a huge thing for me. It has been excellent!&lt;/p&gt;
&lt;p&gt;Today, on the MacAdmin Slack channel, another admin discovered that for Google Workspace, there is no way for admins to reset or remove passkeys for users. You apparently can&apos;t see if a user has one set up, either. You do have the ability to block them domain wide, org unit wide, or to specific groups.&lt;/p&gt;
&lt;p&gt;This leads to some potentially big problems. It&apos;s not uncommon when organizations let someone go to just reset their password, sign in sessions, app passwords, etc. so that forwarding works, or a manager can have delegate access. The problem is that this apparently does not remove or reset the passkeys. Passkeys also don&apos;t show up anywhere in the user&apos;s security settings. This means a terminated employee could potentially still sign in if you have &quot;Allow users to skip passwords at sign-in by using passkeys&quot;. I spoke to Google Support, and according to the person I spoke to, this appears to be known.&lt;/p&gt;
&lt;p&gt;I understand this feature is in &quot;beta&quot;, but this seems like a pretty big oversight. Passkeys are presented as a highly secure alternative for authentication, so this kind of thing feels like a pretty big oversight. At the very least, Google should be very clear when enabling this feature that this is something to consider.&lt;/p&gt;
&lt;p&gt;As a work around, it does seem that putting a user in a group or org that has passkeys disabled does seem to remove them, so you can create an off-boarding group or OU with that disabled, and add that to your off-boarding procedures, but hopefully this is something Google will resolve in the near future.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.1password.com/what-are-passkeys/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.1password.com/what-are-passkeys/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://workspace.google.com/blog/product-announcements/major-security-innovation-passkeys&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://workspace.google.com/blog/product-announcements/major-security-innovation-passkeys&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Usefulness of AI, and Tools That I Use</title><link>https://barnes.tech/blog/usefulness-of-ai</link><guid isPermaLink="true">https://barnes.tech/blog/usefulness-of-ai</guid><description>Exploring the nuances of AI hype, its potential, and practical uses for productivity and development.</description><pubDate>Sat, 30 Mar 2024 20:34:53 GMT</pubDate><content:encoded>&lt;p&gt;AI is a bit of a polarizing topic as of late. Most people fall into one of a few seemingly extreme camps. Either AI is the most revolutionary technology ever, and will trigger its own industrial revolution size change to our society, or it&apos;s equally powerful but will cause more of an apocalypse of some sort, or it&apos;s all just hype with no substance and seemingly completely useless. I don&apos;t really think any of these are accurate, and it makes me sad that so many people have seemingly lost the ability to think or articulate nuance in complex topics. I think this is something that has been hyper-accelerated by social media, and is a huge problem. No topic is actually completely polar, but that&apos;s how many people seem to talk about it any more.&lt;/p&gt;
&lt;p&gt;I&apos;m not going to pretend that I know where AI is going to go, or what it will be capable of in the future. I&apos;ve heard people who are much smarter than me in the area make claims that Artificial General Intelligence (AGI, which would essentially be a &quot;conscious&quot; AI that could improve itself, much like humans, though there is some debate on the definition as well), is just a few years away, and others say things like the recently super popular Large Language Models are very impressive but are likely to plateau in capability pretty soon, and will only marginally improve in the future. Anyone who claims to &lt;strong&gt;know&lt;/strong&gt; one way or the other is lying.&lt;/p&gt;
&lt;p&gt;The naysayers out there are quick to point out how easy it is to get tools like ChatGPT to either be wrong, or straight up &quot;lie&quot;, as if it was an actual conscious being already, and therefore can somehow be either &quot;dumb&quot; or &quot;malicious&quot; when it can confidently tell you something incorrect. Many people compare it to the hype of Crypto or Web3, which has never materialized into much more than just money speculation, fraud, and financing criminal activities. I could write a ton about how much of an empty hype Crypto has been, but to me there is a pretty clear and meaningful difference.&lt;/p&gt;
&lt;p&gt;I want to start by saying I do actually think AI is over hyped right now. I also think it&apos;s pretty incredible and for me has been extremely useful already, and I&apos;m really excited for its future. These are both true.&lt;/p&gt;
&lt;p&gt;Many people know this, but many also struggle with this idea. You have to understand the things current AI is good at, and tailor how you use it to fit that. If you do, I think it can be a very useful tool. Importantly, you have to know and understand that it is not actually knowledgeable, and therefore is not always correct. If you know that, it can still be really powerful.&lt;/p&gt;
&lt;p&gt;When I am using AI tools in ways that it is helpful with, it reminds me of Steve Jobs talking about the computer being like a &quot;bicycle for the mind&quot;. It helps me do the things I would normally be doing, but significantly faster and more effective. Here are some ways and specific tools I have found useful -&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Summarization&lt;/strong&gt; - So much of the internet has been filled with absolute SEO garbage, and a lot of times I just need a quick summary of something. Much of the time I have found AI very good at summarizing the key points of something. Sometimes a web page, sometimes a long PDF where I just need some highlights, and many more. It&apos;s important to realize that it&apos;s very possible it will miss something, or be slightly wrong on part of its summary, so if there is an important document like a contract, you probably don&apos;t want to use AI to just summarize it and call it good. But most of the time, I don&apos;t need it to be 100% accurate, and speed can be important. It&apos;s excellent for that.&lt;/p&gt;
&lt;p&gt;I use &lt;a href=&quot;https://readwise.io/read&quot;&gt;Readwise Reader&lt;/a&gt; as my &quot;read later&quot; app. It has a summarize feature built in that I use all the time. More often than not, the summary tells me if I want to read the entire article or not. It often does actually get me to read a whole article I might not have otherwise.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Coding&lt;/strong&gt; - I am well aware AI is not a &lt;strong&gt;great&lt;/strong&gt; coder. But I&apos;m not either. I&apos;m in IT, and I dabble in code from time to time. Frankly, I&apos;ve had many developers work for me over the years, and unfortunately most people developers aren&apos;t very good either. But if you know that, it can still be useful. It&apos;s often better than I am, and if you ask things in the right way, it&apos;s honestly pretty impressive. Sure, I&apos;d rather have a highly experienced and talented developer I could just call on any time, but I don&apos;t, so things like ChatGPT and GitHub Copilot have been a great resource for me. Of course I test everything, and don&apos;t just trust that everything it comes back with is correct, and if it&apos;s something high stakes I&apos;d have a person who knows what they are doing review it before making something production, but it has helped me do a lot more than I could or would have otherwise.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Rubber_duck_debugging&quot;&gt;Rubber ducking&lt;/a&gt; and brainstorming&lt;/strong&gt; - Somewhat related, I have found it a great resource to rubber duck and brainstorm ideas with. If I code something and I don&apos;t completely understand what made it work, or why something had to be a certain way, I can ask one of these tools, and gain a better understanding. If I&apos;m writing a blog post, particularly for work where we are just trying to establish a presence online, I can bounce ideas off of it really easily. I often find the way it writes to be a little weird or overly formal, but if I take these ideas and run with them, and make them my own, it not only often gives me great ideas or places to start, but dramatically speeds up the time I can do it.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Search&lt;/strong&gt; - Search is one that it seems like a lot of people struggle with. ChatGPT, for instance, is not really search. There are millions of comparisons to how ChatGPT fails at some search-like thing where Google search does just fine. But that&apos;s not really what ChatGPT is. For this, I use Perplexity AI. Perplexity uses several of these LLM technologies under the hood, but has put them together in a way that honestly has completely changed search for me.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;a href=&quot;https://www.perplexity.ai/hub/faq/what-is-perplexity&quot;&gt;In their own words,&lt;/a&gt; this is what Perplexity is -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Perplexity is an alternative to traditional search engines, where you can directly pose your questions and receive concise, accurate answers backed up by a curated set of sources. It has a conversational interface, contextual awareness and personalization to learn your interests and preferences over time.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Perplexity’s mission is to make searching for information online feel like you have a knowledgeable assistant guiding you. It is a powerful productivity and knowledge tool that can help you save time and energy with mundane tasks for a multitude of use cases.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;How does Perplexity accomplish this?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;With the help of our advanced answer engine, it processes your questions and tasks It then uses predictive text capabilities to generate useful responses, choosing the best one from multiple sources, and summarizes the results in a concise way.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Perplexity to me has been like a research assistant. It is truly AI powered search. It does a fantastic job answering simple questions, but importantly provides links to the references that were used. I&apos;ve seen many online publications panic about tools like this (It&apos;s similar to &lt;a href=&quot;https://arc.net/blog/arc-search&quot;&gt;Arc Search&lt;/a&gt; as well, which I use on my phone), because it will often just answer a question, meaning you don&apos;t have to click through to get an answer. While that logic makes sense, I honestly find myself clicking through far more than I ever do with Google.&lt;/p&gt;
&lt;p&gt;With Google, so many results are just SEO garbage that increasingly don&apos;t even answer your question. Content farms pump out keyword filled garbage articles, cram as many ads per inch as they possibly can, and game Google&apos;s system very effectively. As I&apos;ve written several times recently, this ruins the quality of results and honestly has made Google search nearly unbearable. Perplexity somehow seems to cut through that junk, and not only answer my question well, but all the links are much much higher quality in my experience. Because of this, I find myself clicking through FAR more regularly to the linked resources for more information.&lt;/p&gt;
&lt;p&gt;The downside is that if you need to do more than a couple of searches and you want the highest quality where it searches for you, you have to pay for it, and these tools add up quickly. The time it saves me and how much it helps me with my work make it absolutely worth it to me, but this isn&apos;t going to replace &quot;free&quot; search engines, but this is the first time in many many years where I feel like Google has some legitimate search competition. If you haven&apos;t tried it yet, I encourage you to do so.&lt;/p&gt;
&lt;p&gt;I think there will be many more extremely useful applications for AI soon. For instance, once it can more effectively use your own data as a source of information, I think that will be pretty revolutionary.&lt;/p&gt;
&lt;h2&gt;AI Tools I Use The Most&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;ChatGPT / OpenAI - &lt;a href=&quot;https://chat.openai.com&quot;&gt;https://chat.openai.com&lt;/a&gt; and OpenAI API for certain scripts, Zapier automations, and more - &lt;a href=&quot;https://platform.openai.com/&quot;&gt;https://platform.openai.com/&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note - Using the paid version for GPT 4 makes a big difference in quality of results&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;GitHub Copilot - &lt;a href=&quot;https://github.com/features/copilot&quot;&gt;https://github.com/features/copilot&lt;/a&gt; I use my student copy of this with JetBrains to have integration right in my IDE. I have found this slightly less useful than using ChatGPT, but more convenient for specific scenarios.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Perplexity AI (Referral link. You get a discount on the first month if you use this link)- &lt;a href=&quot;https://perplexity.ai/pro?referral_code=EYDWD3IX&quot;&gt;https://www.perplexity.ai/&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arc.net/blog/arc-search&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arc.net/blog/arc-search&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://chat.openai.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://chat.openai.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Rubber_duck_debugging&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Rubber_duck_debugging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/features/copilot&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/features/copilot&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://platform.openai.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://readwise.io/read&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://readwise.io/read&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.perplexity.ai/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.perplexity.ai/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.perplexity.ai/hub/faq/what-is-perplexity&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.perplexity.ai/hub/faq/what-is-perplexity&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Search is Getting Worse</title><link>https://barnes.tech/blog/google-search-is-getting-worse</link><guid isPermaLink="true">https://barnes.tech/blog/google-search-is-getting-worse</guid><description>An analysis of Google&apos;s declining search quality and the impact of SEO and AI-generated content on the internet.</description><pubDate>Thu, 21 Mar 2024 08:28:39 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Quick follow up to what I wrote the other day - &lt;a href=&quot;https://barnes.tech/blog/how-google-lost-its-way/&quot;&gt;How Google Lost its Way&lt;/a&gt;, the &lt;a href=&quot;https://www.theverge.com/decoder-podcast-with-nilay-patel&quot;&gt;Decoder podcast&lt;/a&gt; recently did an episode about &lt;a href=&quot;https://podcasts.apple.com/us/podcast/why-google-search-feels-like-its-gotten-worse/id1011668648?i=1000649171711&quot;&gt;Why Google Search feels like it’s gotten worse&lt;/a&gt;, where they discuss how &quot;SEO&quot; is essentially breaking the internet, and (my words) how gaming Google Search has made the internet far worse. Google, at least hypothetically, cares about the quality of your search results, but they way they do that is more aligned with advertising, both for Google themselves and for all the people trying to game the system, leading to full on &lt;a href=&quot;https://en.wikipedia.org/wiki/Enshittification&quot;&gt;enshittification&lt;/a&gt; of essentially all of the internet due to Google&apos;s search dominance. Regardless of how intentional it was, or how much of a blind eye Google turns to the problem, it&apos;s hard to deny that it &lt;em&gt;is&lt;/em&gt; a problem.&lt;/p&gt;
&lt;p&gt;To reiterate what I wrote, Google is seemingly in trouble. Not only are they vulnerable to better search, which has suddenly become far more possible from companies like &lt;a href=&quot;https://www.perplexity.ai/&quot;&gt;Perplexity AI&lt;/a&gt;, coupled with how Google is seemingly unable to determine the quality of results with the deluge of crap constantly being shoved on to the internet. The garbage content is already in hyperdrive with generative AI, and that&apos;s only going to get worse.&lt;/p&gt;
&lt;p&gt;Google is a big powerful company. They aren&apos;t realistically going anywhere any time soon, but they have seemingly been caught completely off guard in so many ways. Not only did they seem to completely squander their lead in AI, it all of a sudden feels like Google being the undisputed search leader is seemingly not a given any more either.&lt;/p&gt;
&lt;p&gt;Overcast link to Why Google Search feels like it’s gotten worse - &lt;a href=&quot;https://overcast.fm/+QLdtjSgg4&quot;&gt;Why Google Search feels like it’s gotten worse&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you are interested in Perplexity AI, which I have found incredibly useful, here is my affiliate link. I will write more about Perplexity, and why I have found it so impressive soon - &lt;a href=&quot;https://perplexity.ai/pro?referral_code=EYDWD3IX&quot;&gt;Perplexity AI&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/how-google-lost-its-way/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/how-google-lost-its-way/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Enshittification&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://en.wikipedia.org/wiki/Enshittification&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://overcast.fm/+QLdtjSgg4&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://overcast.fm/+QLdtjSgg4&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://perplexity.ai/pro?referral_code=EYDWD3IX&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://perplexity.ai/pro?referral_code=EYDWD3IX&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://podcasts.apple.com/us/podcast/why-google-search-feels-like-its-gotten-worse/id1011668648?i=1000649171711&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://podcasts.apple.com/us/podcast/why-google-search-feels-like-its-gotten-worse/id1011668648?i=1000649171711&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.perplexity.ai/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.perplexity.ai/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/decoder-podcast-with-nilay-patel&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/decoder-podcast-with-nilay-patel&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>How Google Lost Its Way</title><link>https://barnes.tech/blog/how-google-lost-its-way</link><guid isPermaLink="true">https://barnes.tech/blog/how-google-lost-its-way</guid><description>An analysis of Google&apos;s recent struggles in innovation, AI leadership, and company culture challenges.</description><pubDate>Mon, 18 Mar 2024 04:47:49 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I thought this was a really great article about how Google has lost it&apos;s way as of late, from Business Insider &lt;a href=&quot;https://www.businessinsider.com/google-gemini-ai-layoffs-innovation-boring-2024-2&quot;&gt;How Google Lost its Way&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As I&apos;ve written several times, Google has been repeatedly and needlessly shooting themselves in the foot over the last few years with so many different things. No one trusts them to manage a product because they are so trigger happy about killing things off, and don&apos;t seem to take anything seriously outside of their advertising business.&lt;/p&gt;
&lt;p&gt;As mentioned in this article, the stock value of Google has significantly gone up under Sundar, but I honestly believe the company is in a really bad place right now. He seems like a sharp guy, and personally I honestly kind of like him as a person, but after these repeated problems as a company I&apos;m not sure he&apos;s the right person to take them out of their current state.&lt;/p&gt;
&lt;p&gt;Most of Google&apos;s stumbles over the last few years shouldn&apos;t have been a huge deal, though I would argue the sentiment because of them kind of snowballs in people&apos;s perception of the company. Most people I talk to either don&apos;t trust Google because of privacy (totally valid) or because they don&apos;t think Google can be trusted with a product someone might care about (also valid).&lt;/p&gt;
&lt;p&gt;There are two pretty big problems right now that put Google in a tough spot. First, they were clearly caught completely off guard by what has happened with AI since ChatGPT. They literally invented this kind of AI, and by nearly every measure were in the lead in AI for years, but they have clearly squandered that lead. Sure, they have listed a few reasons why that&apos;s the case, primarily around safety, but the fact that they are still so far behind is a problem. Not to mention, even after slowing down for safety, when they do launch something it has had some pretty &lt;a href=&quot;https://www.theverge.com/2024/2/21/24079371/google-ai-gemini-generative-inaccurate-historical&quot;&gt;significant problems&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Not only is Google behind in AI as a product, but I think the recent AI tools are honestly the first time in decades that there has been any real threat to Google&apos;s search dominance. Bing has seen significant growth since adding Copilot to their product, though it&apos;s still a small fraction of the market, but other tools such as Perplexity AI offer a very compelling alternative. I will write more about Perplexity AI shortly, but for me it is the first tool to make me replace Google in my daily usage, which is significant for me. The current iteration is likely not going to work for everyone in the world, but it&apos;s a crack in the glass surrounding Google&apos;s search dominance, and unfortunately as outlined in the Business Insider article, they are not doing enough to diversify their revenue outside of that. Every interesting new project they have they half ass, then cancel without warning.&lt;/p&gt;
&lt;p&gt;The other problem is the company culture. The article goes in to more detail, but there is clearly a culture problem at Google and the employees are not happy. The once safe cushy jobs at Google are not seeming so safe, and there is a lot of discontent within the organization that does not seem to be being addressed very effectively, at least from the outside.&lt;/p&gt;
&lt;p&gt;To me it falls in the same category, but to see more cultural issues at Google going back for years, you should check out &lt;a href=&quot;https://www.buildc.com/the-book&quot;&gt;Tony Fadell&apos;s book, Build&lt;/a&gt;. Tony worked at Apple for years on several ground breaking products, then started Nest which sold to Google, and he goes in to some detail about how that basically sucked all the life that made Nest unique and great out of the company. It&apos;s not hard to see that the innovation on Nest has essentially hit a brick wall since being acquired, which is extremely unfortunate.&lt;/p&gt;
&lt;p&gt;All of this personally frustrates me because I really like a lot of what Google does. I vastly prefer Google Workspace over Microsoft 365, but I find myself wishing more and more that productivity platforms weren&apos;t such a duopoly. I wish there was a 3rd platform that was really truly competing with those two, because honestly neither choice is great at the moment, but there aren&apos;t any great alternatives for most companies out there. I also like Chrome, I loved Stadia, Google Fiber has been absolutely incredible. If they could just get their shit together, I think they could get back to greatness.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.buildc.com/the-book&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.buildc.com/the-book&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.businessinsider.com/google-gemini-ai-layoffs-innovation-boring-2024-2&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.businessinsider.com/google-gemini-ai-layoffs-innovation-boring-2024-2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2024/2/21/24079371/google-ai-gemini-generative-inaccurate-historical&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2024/2/21/24079371/google-ai-gemini-generative-inaccurate-historical&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>NSA Buys American&apos;s Data</title><link>https://barnes.tech/blog/nsa-buys-americans-data</link><guid isPermaLink="true">https://barnes.tech/blog/nsa-buys-americans-data</guid><description>Exploring the implications of the NSA purchasing Americans&apos; data and the need for stronger privacy laws.</description><pubDate>Sun, 28 Jan 2024 18:00:38 GMT</pubDate><content:encoded>&lt;p&gt;Recently it has been widely reported about how the &lt;a href=&quot;https://www.nytimes.com/2024/01/25/us/politics/nsa-internet-privacy-warrant.html?unlocked_article_code=1.QU0.4pE1.GsHm21JjzJC4&amp;#x26;smid=nytcore-ios-share&amp;#x26;referringSource=articleShare&quot;&gt;NSA is buying up American&apos;s data - New York Times&lt;/a&gt;, and &lt;a href=&quot;https://techcrunch.com/2024/01/26/national-security-agency-americans-internet-browsing-records-warrantless/?guccounter=1&quot;&gt;Tech Crunch&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Senators are obviously acting like this is some huge scandal, because it&apos;s part of the government doing this, but I don&apos;t understand how they are confused by this. (I do actually know, it&apos;s because Congress doesn&apos;t understand technology, but my point is the same). Of course the NSA is buying this data. It&apos;s valuable, and critically &lt;em&gt;it&apos;s commercially available&lt;/em&gt;. This means pretty much anyone could buy it if they really wanted to. You think Google and Facebook don&apos;t just vacuum up the same data?&lt;/p&gt;
&lt;p&gt;To me the problem is not the NSA buying this data, it&apos;s that it&apos;s possible to buy this data. It&apos;s that companies are somehow allowed to gather and keep this data in the first place, so that anyone can buy it. The internet is so addicted to surveillance on all of us, just to squeeze a tiny bit more money out from advertising, but it&apos;s a huge problem.&lt;/p&gt;
&lt;p&gt;We desperately need laws in this country to protect our privacy, or this can and will continue to happen. We should all have the right to know what data is being gathered and what it is being used for, and importantly have a choice to NOT have it collected.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2024/01/26/national-security-agency-americans-internet-browsing-records-warrantless/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2024/01/26/national-security-agency-americans-internet-browsing-records-warrantless/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.nytimes.com/2024/01/25/us/politics/nsa-internet-privacy-warrant.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.nytimes.com/2024/01/25/us/politics/nsa-internet-privacy-warrant.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Neon Database</title><link>https://barnes.tech/blog/neon-database</link><guid isPermaLink="true">https://barnes.tech/blog/neon-database</guid><description>Explore Neon, a serverless PostgreSQL database tool for developers that simplifies AWS complexities with unique features.</description><pubDate>Fri, 19 Jan 2024 09:57:27 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/neon-logo.svg&quot; alt=&quot;Neon serverless postgresql logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I recently wrote about &lt;a href=&quot;https://barnes.tech/blog/resend/&quot;&gt;Resend&lt;/a&gt;, a transactional email service I found that is focused on developers, and is really a fantastic tool. Today I wanted to mention another tool I&apos;ve found that is really awesome.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://neon.tech/&quot;&gt;Neon&lt;/a&gt; follows a similar philosophy and allows developers to create serverless PostgreSQL databases. Like &lt;a href=&quot;https://resend.com/&quot;&gt;Resend&lt;/a&gt;, this seems to be a service that is built on top of AWS technologies, but abstracts out a lot of the (in my opinion, dumb) technical overhead that accompanies all AWS services. It is shockingly easy to get set up and running with Neon, and there is a ton of flexibility on how your database will work, how many resources it will be allowed to pull from, and more.&lt;/p&gt;
&lt;p&gt;I love how easy it is to create new users, roles, and even new databases, but some of the more advanced features really make Neon unique. For instance, they have a feature called &lt;a href=&quot;https://neon.tech/branching&quot;&gt;&quot;Branching&quot;&lt;/a&gt;, where you can create a &quot;branch&quot; of your database either from a snapshot you save, or from the current database. Nearly instantly you have a second copy of your DB that you can use to test something out with.&lt;/p&gt;
&lt;p&gt;There are lots of other features, like automatic snapshots, auto-scaling, and one-click read replicas. I also love how they help you generate credentials to connect from whatever project you are working on. For instance, I&apos;m working on a &lt;a href=&quot;https://www.djangoproject.com/&quot;&gt;Django&lt;/a&gt; project at the moment, and in Neon, I was able to just choose Django as a source, and it gave me the exact code to add the database to my Django project. Copy, paste, run the migration script, and it was done. I really was that simple.&lt;/p&gt;
&lt;p&gt;I have seen several apps similar to this pop up lately, where they take something that one of the big cloud companies does, and specializes in just making it a really good experience, and I love it. More of this kind of thing please.&lt;/p&gt;
&lt;p&gt;I have a couple more I will mention over the next few weeks, but I&apos;m loving these.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/resend/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/resend/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://neon.tech/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://neon.tech/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://neon.tech/branching&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://neon.tech/branching&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://resend.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://resend.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.djangoproject.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.djangoproject.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Resend</title><link>https://barnes.tech/blog/resend</link><guid isPermaLink="true">https://barnes.tech/blog/resend</guid><description>Discover the simplicity of Resend, a transactional email service designed for developers seeking efficiency and ease of use.</description><pubDate>Fri, 19 Jan 2024 09:57:12 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/resend-wordmark-black.svg&quot; alt=&quot;Resend Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I have recently found a couple of really neat tools specifically designed for developers recently that I have been super happy with and wanted to share. (Caveat - I&apos;m not a developer, but I have been trying to learn a bit more about coding.)&lt;/p&gt;
&lt;p&gt;The first one I wanted to mention is called &lt;a href=&quot;https://resend.com/&quot;&gt;Resend&lt;/a&gt;. This is a transactional email service, similar to Sendgrid, Amazon Simple Email Service (SES), Mailgun, Mailchimp Mandrill if that still exists, and many others.&lt;/p&gt;
&lt;p&gt;I have been using several different transactional email services over the years. Several have started out pretty well but they have seemingly just gotten really frustrating over the years. For what it&apos;s worth, I primarily use these for sending emails to customers such as an alert, or our service desk holiday hour reminders, or if there&apos;s a big change we&apos;re making in the company and we want to email all our customers or something like that. I don&apos;t particularly like marketing emails, and personally don&apos;t really have any interest in trying to do those, so nothing I am talking about is in the context of how these tools are used for marketing.&lt;/p&gt;
&lt;p&gt;Amazon SES is the engine behind many other services people offer, and is likely the largest option out there, but I kind of wonder if they were trying to be sarcastic by naming it &quot;Simple&quot;. It is, like many AWS services, way more complex to set up than it should be, and if/when it has problems they are certainly not going to make it easy to figure out what the problem is or how to fix it.&lt;/p&gt;
&lt;p&gt;Sendgrid is what I have been using more recently, and it started out ok, but I swear every time we go in to use it it fights you a little more on what you are trying to do. Whenever I want to send a quick email out to a bunch of customers, it seemed like it would always take 2x or more time than I anticipated. I tried making some scripts to use their API to streamline things, but wow... What a mess.&lt;/p&gt;
&lt;p&gt;I wish I remember how I found Resend, but I took a look at their product and it seemed to be saying all the right things to me. It seemed far more simple, straightforward, and designed to do exactly what I was looking to do. I signed up and have been incredibly happy so far.&lt;/p&gt;
&lt;p&gt;They posted an article introducing themselves and explaining what they are trying to do and why. So far, this matches the reality for me - &lt;a href=&quot;https://resend.com/blog/introducing-resend&quot;&gt;Introducing Resend&lt;/a&gt;. The documentation is straightforward. The interface when you log in is simple and straightforward. The API&apos;s are easy and make sense, and - This is important - they WORK.&lt;/p&gt;
&lt;p&gt;I don&apos;t know exactly how they are doing everything on the backend for this service. For all I know this is just a layer in front of Amazon SES, but honestly, totally fine with me. I love tools like this that are well designed, a pleasure to use, and just make my life easier. If this sounds like something interesting to you, I recommend checking it out!&lt;/p&gt;
&lt;p&gt;I have found a couple other tools that to me are in the same camp - Smaller projects designed by developers who want to do something really well, with nice design, and are simple to do what you are trying to do. I plan on writing a few more of these in the coming days.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://resend.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://resend.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://resend.com/blog/introducing-resend&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://resend.com/blog/introducing-resend&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>5G</title><link>https://barnes.tech/blog/5g</link><guid isPermaLink="true">https://barnes.tech/blog/5g</guid><description>Frustrations with 5G service and its disappointing rollout in urban areas, exploring the challenges faced by users.</description><pubDate>Sun, 10 Dec 2023 18:30:37 GMT</pubDate><content:encoded>&lt;p&gt;I have recently been extremely frustrated with my phone service. While I agreed at the time that carriers (and Apple for that matter) were over-hyping 5G, I also felt like people were being too harsh in their criticism. Deploying new networks takes time. I even wrote about it &lt;a href=&quot;https://barnes.tech/blog/5g-misconceptions/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I wrote that in early 2021, and we are getting close to 2024 now, and I have to say, 5G has been an enormous disappointment for me. My experience is on Verizon, which is one of the carriers who pushed 5G being a revolution the hardest. When I wrote that, there were only little pockets of good 5G coverage, but when you were in those spots, it felt like sci-fi. I was getting over 2.5 Gb/s (Yes, Gb/s, not Mb/s) on my cellular, which is unbelievable to me still. The problem was you had to be within about 200-300 feet of one of their mmWave towers. Still, I thought at least in high traffic areas, this would be a game changer.&lt;/p&gt;
&lt;p&gt;I get season tickets to MLS soccer here locally (Real Salt Lake) and often go to University of Utah Football games. Stadiums are one of the worst places for cell service, and one of the clearest benefits of where mmWave 5G would make a ton of sense in my mind. Well it&apos;s been years, and although I think they have added some towers near the stadiums, I almost never actually get any service. Likewise, other places I used to consistently get the mmWave signal, no longer seem to be working very consistently. A local Taco Bell has an mmWave tower right in the parking lot, and I used to always connect at hyper fast speeds. Now it only connects to it maybe half the time, if that.&lt;/p&gt;
&lt;p&gt;I also live in the city, not right down town, but definitely in a very populated area. My work is about a 10 minute drive for me, and yet about 90% of that drive, my phone won&apos;t connect to 5G at all. Just LTE the whole way. More than that, there are spots now where music struggles to stream. In a city. In 2023.&lt;/p&gt;
&lt;p&gt;It doesn&apos;t really matter how good 5G &lt;em&gt;could&lt;/em&gt; be, if it won&apos;t ever work. I pay more every month for the &quot;faster&quot; service to be on the bleeding edge of connectivity, but I&apos;m not sure what the point is.&lt;/p&gt;
&lt;p&gt;The Verge wrote an article this week around the same kind of thing - &lt;a href=&quot;https://www.theverge.com/23991136/5g-network-att-verizon-tmobile-cost-competition&quot;&gt;The race to 5G is over — now it’s time to pay the bill&lt;/a&gt;. It seems investors are also getting impatient about 5G being smoke and mirrors. It&apos;s hard to tell if the US Carriers just completely botched this rollout, or if the technology from Chinese chip makers really killed the rollout for the US, or if 5G was just an overhyped technology that is actually worse in far more ways than we were lead to believe, but either way it&apos;s incredibly frustrating.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/5g-misconceptions/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/5g-misconceptions/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/23991136/5g-network-att-verizon-tmobile-cost-competition&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/23991136/5g-network-att-verizon-tmobile-cost-competition&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Warp Terminal</title><link>https://barnes.tech/blog/warp-terminal</link><guid isPermaLink="true">https://barnes.tech/blog/warp-terminal</guid><description>Explore Warp, a fast and customizable macOS terminal with AI features and workflow automation for enhanced productivity.</description><pubDate>Sun, 10 Dec 2023 10:20:57 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Warp.png&quot; alt=&quot;Warp Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://www.warp.dev/&quot;&gt;Warp&lt;/a&gt; is a modern macOS terminal that I have been using for quite a while now and to me, and it keeps getting better.&lt;/p&gt;
&lt;p&gt;Warp is built with Rust, and is extremely fast, works really well, and has some really neat features. It&apos;s highly customizable with several themes, and you can set your own font (I have been using SF Mono for a while now and really like it), and you can easily change the specifics of the information that your prompt shows directly.&lt;/p&gt;
&lt;p&gt;There is also a fairly new feature called Warp AI, which I have found pretty useful from time to time. It can help you craft prompts (be careful with this of course), but also interpret outputs in Terminal which I find to be extremely useful.&lt;/p&gt;
&lt;p&gt;The feature I have begun to rely on the most though which is fantastic is one they call Warp Drive. This is where you can set up specific workflows that you use frequently, and add arguments as part of the workflow, which are basically like variables within your workflow. Warp Drive workflows can be used with teams as well, which is pretty cool that you can share common workflows, but currently I just use them personally. I found them immediately helpful, but recently they made it so you can use a keyboard command to search them, and that has made it something I would have a hard time ever moving from.&lt;/p&gt;
&lt;p&gt;One thing to mention is you do need to sign up for an account to use this. That doesn&apos;t bother me, but it&apos;s something to be aware of. This is used to sync your workflows across computers, but it is not optional even if you don&apos;t want to sync.&lt;/p&gt;
&lt;p&gt;There are a ton of other features but I have really enjoyed this tool so far, so I wanted to share. Here is my referral link if you are interested in giving it a shot.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://app.warp.dev/referral/ZL9WG&quot;&gt;Referral Link - Warp&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://app.warp.dev/referral/ZL9WG&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://app.warp.dev/referral/ZL9WG&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.warp.dev/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.warp.dev/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Inside Apples Chip Lab</title><link>https://barnes.tech/blog/inside-apples-chip-lab</link><guid isPermaLink="true">https://barnes.tech/blog/inside-apples-chip-lab</guid><description>Exploring Apple&apos;s approach to AI and machine learning amidst the cloud-driven tech landscape.</description><pubDate>Mon, 04 Dec 2023 03:13:16 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple-silicon.png&quot; alt=&quot;Apple Silicon logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;CNBC recently got access to one of Apple&apos;s Silicon Chip labs - &lt;a href=&quot;https://www.cnbc.com/2023/12/01/how-apple-makes-its-own-chips-for-iphone-and-mac-edging-out-intel.html&quot;&gt;Inside Apple’s chip lab, home to the most ‘profound change’ at the company in decades&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I thought the video was pretty interesting, but the conclusion toward the end around Apple and AI is a common narrative that doesn&apos;t make sense to me. &quot;Mainstream&quot; news organizations seem to be somewhat obsessed with the idea that Apple is behind in the &quot;AI boom&quot; taking place recently.&lt;/p&gt;
&lt;p&gt;I understand where this comes from. Siri to me is a prime example of how you can make the argument that Apple is behind in AI. To this day I can barely stand using Siri because it&apos;s so awful for me. In some cases, it feels like it&apos;s getting worse... But that&apos;s a story for a different article.&lt;/p&gt;
&lt;p&gt;Leaving aside the arguments about what &quot;AI&quot; really is, Apple uses in lots of applications. They tend to be really careful to call it ML when they refer to it (more accurately), but it&apos;s all over the place. To me though, this isn&apos;t even the main point that these companies are missing. They tend to just point toward what OpenAI, ChatGPT, and sort of by proxy Microsoft are doing, and to some degree how Google and Amazon are catching up with OpenAI and Microsoft. This seems to be something they like lumping together because they are all in &quot;Tech&quot;, but it doesn&apos;t make sense to me. That type of &quot;AI&quot; is really only going to be possible in the cloud with huge server farms to train the models, and make them accessible to whatever degree necessary as a cloud service. This is just not an area Apple is interested in. There are hundreds of services offered by the big cloud giants that Apple has no direct answer for, and I don&apos;t think it makes any sense for them to.&lt;/p&gt;
&lt;p&gt;I&apos;m certain Apple is working on internal models to be used in their products, and possibly even for internal use. We also know that if they are doing this, Apple will be a lot more conservative with safety and privacy, and this will always put them behind the &quot;state of the art&quot; with this type of tool, and that&apos;s ok. Reports like the CNBC ones seem to think that this is an existential threat to Apple if they don&apos;t have something in the space soon, but I don&apos;t see the relation. I can access all of these technologies from Apple devices when needed, because they are on the cloud. There are definitely times I wish Apple were better at cloud/internet type services on their own, but it clearly hasn&apos;t impacted their ability to be the most valuable company in the world, and I don&apos;t really think the &quot;AI&quot; tools will change that.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.cnbc.com/2023/12/01/how-apple-makes-its-own-chips-for-iphone-and-mac-edging-out-intel.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.cnbc.com/2023/12/01/how-apple-makes-its-own-chips-for-iphone-and-mac-edging-out-intel.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Okta Breach Another Update</title><link>https://barnes.tech/blog/okta-breach-another-update</link><guid isPermaLink="true">https://barnes.tech/blog/okta-breach-another-update</guid><description>Analysis of the recent Okta breach and its inadequate response to security concerns.</description><pubDate>Mon, 04 Dec 2023 02:21:53 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Okta.svg&quot; alt=&quot;Okta Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I recently posted a couple of articles about the recent Okta breach, &lt;a href=&quot;https://barnes.tech/blog/okta-suffers-another-breach/&quot;&gt;here&lt;/a&gt;, and &lt;a href=&quot;https://barnes.tech/blog/ars-technica-okta-writeup/&quot;&gt;here&lt;/a&gt;. I mentioned how their response was completely tone deaf, essentially blaming customers and a specific employee instead of taking responsibility for themselves, and also seemingly downplaying the size and magnitude of the breach, almost seemingly bragging about how it was just a tiny percentage of customers impacted.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sec.okta.com/articles/2023/11/unauthorized-access-oktas-support-case-management-system-root-cause&quot;&gt;From Okta&apos;s Security Blog Post on November 3rd&lt;/a&gt; -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Having finalized our investigation, we can confirm that from September 28, 2023 to October 17, 2023, a threat actor gained unauthorized access to files inside Okta’s customer support system associated with 134 Okta customers, or less than 1% of Okta customers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Well, turns out that wasn&apos;t entirely accurate. On November 29th, Okta posted a follow up article explaining that in fact the threat actor was able to download at least some information from &lt;em&gt;all&lt;/em&gt; Okta customers. &lt;a href=&quot;https://sec.okta.com/harfiles&quot;&gt;October Customer Support Security Incident - Update and Recommended Actions&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Once again they seem to be downplaying the incident, and giving even more suggestions of what their customers should do, and a whole lot of nothing that Okta is doing.&lt;/p&gt;
&lt;p&gt;Security incidents are going to happen, but companies as important as Okta need to do a better job with both their internal security, as well as how they handle these breaches. Really not a good look for Okta, or their CSO David Bradbury.&lt;/p&gt;
&lt;p&gt;Links -
https://sec.okta.com/articles/2023/11/unauthorized-access-oktas-support-case-management-system-root-cause&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://therecord.media/okta-security-breach-all-support-users&quot;&gt;The Record - Okta security breach affected all customer support system users&lt;/a&gt; - https://therecord.media/okta-security-breach-all-support-users
&lt;a href=&quot;https://techcrunch.com/2023/11/29/okta-admits-hackers-accessed-data-on-all-customers-during-recent-breach/&quot;&gt;Tech Crunch - Okta admits hackers accessed data on all customers during recent breach&lt;/a&gt; - https://techcrunch.com/2023/11/29/okta-admits-hackers-accessed-data-on-all-customers-during-recent-breach/&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/ars-technica-okta-writeup/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/ars-technica-okta-writeup/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/okta-suffers-another-breach/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/okta-suffers-another-breach/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sec.okta.com/articles/2023/11/unauthorized-access-oktas-support-case-management-system-root-cause&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sec.okta.com/articles/2023/11/unauthorized-access-oktas-support-case-management-system-root-cause&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sec.okta.com/harfiles&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sec.okta.com/harfiles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2023/11/29/okta-admits-hackers-accessed-data-on-all-customers-during-recent-breach/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2023/11/29/okta-admits-hackers-accessed-data-on-all-customers-during-recent-breach/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://therecord.media/okta-security-breach-all-support-users&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://therecord.media/okta-security-breach-all-support-users&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Jamboard - Another Google Casualty</title><link>https://barnes.tech/blog/jamboard</link><guid isPermaLink="true">https://barnes.tech/blog/jamboard</guid><description>Google&apos;s Jamboard is discontinued, highlighting issues with product support and rising costs in Google Workspace.</description><pubDate>Mon, 04 Dec 2023 02:16:19 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/jamboard-dead.png&quot; alt=&quot;Picture of a Jamboard with skull and crossbones on it, indicating a dead product.&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Google is once again killing off another product. I don’t think it’s terribly surprising if you have been paying attention to the amount of effort Google has(n’t) been putting in to the product over the last few years, but it’s a cool idea, and it’s a shame Google continues to be allergic to putting any effort in to products.&lt;/p&gt;
&lt;p&gt;Google is telling users to go to alternatives like Miro for the app functionality, and 3rd party digital boards for the actual hardware. On the one hand, the 3rd party options are much better than what Jamboard ever offered. I’ve been testing out Miro recently and it’s very nice. We’ll likely end up using that internally at work. But on the other hand, part of why they are so much better is because Google completely ignored their own product for years.&lt;/p&gt;
&lt;p&gt;It’s frustrating that now users have to pay for yet another recurring monthly cost for something that was included in Google Workspace already. Oddly enough, Google isn’t lowering the price for Google Workspace as they continue to remove apps and functionality… In fact it keeps going up in price, while the pace of products seems completely stagnant.&lt;/p&gt;
&lt;p&gt;Once again, Google frustrates me, not because they can’t make good products. They do. But They just cannot focus on keeping them around or improving them. In the productivity space, I FAR prefer Google over the Microsoft alternatives with their 1,000,000 license types, and completely unnecessary complexity, as well as their superpower for vendor lock-in. Google Workspace by comparison is in my opinion much nicer to use, but the more Google does this, the more difficult it is to continue to rely on them for anything, business or personal. I can’t believe they don’t see this as a critical problem internally.&lt;/p&gt;
&lt;p&gt;We desperately need a real 3rd competitor in the productivity suite space… Someone needs to compete with Microsoft and Google, the duopoly is not good for anyone.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://killedbygoogle.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://killedbygoogle.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/9/28/23894509/google-jamboard-whiteboarding-app-graveyard&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/9/28/23894509/google-jamboard-whiteboarding-app-graveyard&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple Security Prompts</title><link>https://barnes.tech/blog/apple-security-prompts</link><guid isPermaLink="true">https://barnes.tech/blog/apple-security-prompts</guid><description>Discussing Apple&apos;s security prompts and their impact on user experience during device setup.</description><pubDate>Sun, 03 Dec 2023 19:49:25 GMT</pubDate><content:encoded>&lt;p&gt;Recently &lt;a href=&quot;https://daringfireball.net/&quot;&gt;Daring Fireball&lt;/a&gt; and &lt;a href=&quot;https://sixcolors.com/&quot;&gt;Six Colors&lt;/a&gt; posted articles about how obnoxious Apple&apos;s security prompts have become, particularly when you&apos;re setting up a new device.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sixcolors.com/post/2023/11/a-picture-is-worth-a-thousand-permissions-requests/&quot;&gt;Six Colors - A picture is worth a thousand permissions requests&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://daringfireball.net/linked/2023/11/29/snell-macos-security&quot;&gt;Daring Fireball - MacOS Security Prompts Need a Rethinking&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Both are worth reading, and I completely agree. I understand Apple is trying to help people be as secure as possible, but I think they&apos;ve gone too far for most people, honestly. The actual things they are doing for security may be fine, but the implementation has become a huge pain to deal with. The picture posted at Six Colors almost feels like a joke, but it definitely isn&apos;t.&lt;/p&gt;
&lt;p&gt;There are 2 scenarios I run in to frequently -&lt;/p&gt;
&lt;h2&gt;Power Users&lt;/h2&gt;
&lt;p&gt;First, my own experience, as well as colleagues I work with. I am in the IT field, working for an Apple Consultant that specializes in helping companies with their Apple products. We do setups a LOT, both for ourselves and for customers, and it has become a huge pain to deal with all of these prompts. From an admin perspective, I really want the ability to just set all of the settings I want in bulk. For me, I know what I want my computer to do and not to do, and I&apos;m tired of fighting with the system every time, with every individual pop-up that comes up. Some of this can be deployed via MDM, which helps, but I&apos;d still like a way to just do this in bulk on my own. Make it difficult to do so people won&apos;t ever accidentally do it, but some way would be great.&lt;/p&gt;
&lt;p&gt;On that note, I understand why Apple makes it so difficult to screen share with someone, but it&apos;s a bit ridiculous. In my opinion, at the very least, if a device is purchased for a business via Apple Business Manager (ABM) so that it&apos;s part of the Automated Device Enrollment, you should be able to deploy a Privacy Profile that allows apps to screen share without the end user approving it. I think it&apos;s fair to say that it shouldn&apos;t be a completely silent screen sharing, but it needs to be easier to do. Sonoma shows in the menu bar when an app is screen sharing, which I think is a good thing, and should stay in place. Maybe a good middle ground would be to allow an app to screen share, but prompt the user with an &quot;approve&quot; and &quot;deny&quot; pop up when the app tries to screen share. This would be easier than the current method of going in to System Settings and enabling screen sharing for the app, and requesting that the user quit and re-launch the app.&lt;/p&gt;
&lt;p&gt;We use Splashtop to screen share with clients all the time to help troubleshoot. Even though we deploy it and do as much as we can to approve everything possible with a Privacy Profile, nearly every time our customer gets confused with approving screen recording in System Settings. It&apos;s just not a good experience. Prompting the user with a simple prompt to approve or deny access would be much easier.&lt;/p&gt;
&lt;h2&gt;Other Users&lt;/h2&gt;
&lt;p&gt;The next scenario is far more common. In my experience, the average Mac user just doesn&apos;t understand all of the prompts that come up, and in many cases just click something to move past the prompt, often with unintended consequences. For instance, I have had to fix several family computers because family members don&apos;t understand the login item prompts coming from more recent macOS versions, and then they don&apos;t understand why some apps don&apos;t work well any more because they can no longer run in the background. Is this increasing their security? I would argue it doesn&apos;t because they don&apos;t understand it.&lt;/p&gt;
&lt;p&gt;Too many prompts are not educating the users on what is happening, it just feels like poking the user in the eye several times as they set up their new Mac. This is something Apple needs to figure out how to do in a better way that doesn&apos;t take forever, and explains in simpler terms what it is asking, as well as allow them to bulk accept some of these prompts.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2023/11/29/snell-macos-security&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2023/11/29/snell-macos-security&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sixcolors.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sixcolors.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sixcolors.com/post/2023/11/a-picture-is-worth-a-thousand-permissions-requests/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sixcolors.com/post/2023/11/a-picture-is-worth-a-thousand-permissions-requests/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Judge Throws Out Car Privacy Lawsuit</title><link>https://barnes.tech/blog/judge-throws-out-car-privacy-lawsuit</link><guid isPermaLink="true">https://barnes.tech/blog/judge-throws-out-car-privacy-lawsuit</guid><description>A judge&apos;s ruling allows automakers to continue collecting data, highlighting privacy issues in the US.</description><pubDate>Sat, 11 Nov 2023 03:48:48 GMT</pubDate><content:encoded>&lt;p&gt;In another blow to privacy, The Verge reports&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;A federal judge upheld the dismissal of a class action lawsuit that alleged automakers unlawfully collected and recorded car owners’ text messages, as first reported by The Record. In a ruling on Tuesday, the Seattle-based judge said the claims aren’t severe enough to be considered a violation of the state’s Washington Privacy Act (WPA).&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/11/9/23953798/automakers-collect-record-text-messages-federal-judge-ruling&quot;&gt;Your car can keep collecting your data after a judge dismissed a privacy lawsuit&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is unfortunate, but the real issue is the lack of laws around privacy in the US. Of course cars are going to spy on you and sell your data if they can. Why wouldn&apos;t they? No one is stopping them. If this remains unchecked, it will be a race to the bottom like how TV&apos;s are. Cheaper TV in order to extract as much data as possible to sell.&lt;/p&gt;
&lt;p&gt;You&apos;re the product, not the customer.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/11/9/23953798/automakers-collect-record-text-messages-federal-judge-ruling&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/11/9/23953798/automakers-collect-record-text-messages-federal-judge-ruling&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Ars Technica Okta Writeup</title><link>https://barnes.tech/blog/ars-technica-okta-writeup</link><guid isPermaLink="true">https://barnes.tech/blog/ars-technica-okta-writeup</guid><description>Analysis of Okta&apos;s recent security breach response and its implications for trust in security companies.</description><pubDate>Sun, 05 Nov 2023 07:44:27 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Okta.svg&quot; alt=&quot;Okta Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Following up on the &lt;a href=&quot;https://barnes.tech/blog/okta-suffers-another-breach/&quot;&gt;Okta breach and disclosure issues I mentioned the other day&lt;/a&gt;, on Friday Okta published a follow up article on their security blog &lt;a href=&quot;https://sec.okta.com/harfiles&quot;&gt;Unauthorized Access to Okta&apos;s Support Case Management System: Root Cause and Remediation&lt;/a&gt;. Pretty stark difference to me in how &lt;a href=&quot;https://barnes.tech/blog/cloudflare-control-plane-outage/&quot;&gt;Cloudflare handled a post mortem&lt;/a&gt;, and how Okta did with this response. Granted, they aren&apos;t exactly the same scenario, but this is also not the first time Okta has been completely tone deaf in their response. After their first half assed response, several security researchers called them out on how poor of a response it was. You would think Okta would take the opportunity in creating their detailed response to maybe address some of the complaints about how tone deaf their response was. Well... Not really.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&quot;https://arstechnica.com/?p=1981227&quot;&gt;Ars Technica published a post&lt;/a&gt;&lt;/strong&gt; about the detailed response, excoriating Okta for essentially now blaming one employee for the issue.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Accessing personal accounts at a company like Okta has long been known to be a huge no-no. And if that prohibition wasn’t clear to some before, it should be now. The employee almost surely violated company policy, and it wouldn’t be surprising if the offense led to the employee’s firing.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;However, it would be wrong for anyone to conclude that employee misconduct was the cause of the breach. It wasn’t. The fault, instead, lies with the security people who designed the support system that was breached, specifically the way the breached service account was configured.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is all completely true. You can absolutely block logging in to personal accounts entirely, not to mention block the password saving feature. Given the sensitivity of what Okta does, this is completely on the leadership team, not on that employee. It probably will not be the senior leadership that pays the price though.&lt;/p&gt;
&lt;p&gt;Given the similarities to the January 2022 breach, outlined in this &lt;a href=&quot;https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/&quot;&gt;Cloudflare Blog post&lt;/a&gt;, it&apos;s hard to believe Okta has learned it&apos;s lesson here. Their support system is clearly a huge vulnerability, and it does not seem like they treated the situation appropriately, and from the outside it&apos;s hard to believe they have taken many (if any) steps to correct the issue going forward. It&apos;s hard to assume otherwise when this happens more than once, and there is almost no transparency in either case. What&apos;s worse, in both cases we found out about the situation first from someone other than Okta.&lt;/p&gt;
&lt;p&gt;Okta needs to get their head out of their ass on this stuff. As a security company, particularly one that is so crucial to so many customer&apos;s security stacks, they NEED to do better. They should be a gold standard in the industry, and no one should ever have to question whether they are doing everything they can to keep customers safe. That should be table stakes for a leading security company. They have a great product, but none of that matters if people can&apos;t trust them, and they are making it harder and harder to trust them.&lt;/p&gt;
&lt;p&gt;Here&apos;s a link to the Ars Technica article - &lt;a href=&quot;https://arstechnica.com/?p=1981227&quot;&gt;https://arstechnica.com/?p=1981227&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I want to also point out that there was another Ars Technica article this week titled &lt;a href=&quot;https://arstechnica.com/?p=1980825&quot;&gt;Okta hit by another breach, this one stealing employee data from 3rd-party vendor&lt;/a&gt;. I don&apos;t think the title is fair on this. Okta wasn&apos;t breached in this case as far as everything I&apos;ve been able to find, it was a 3rd party company that Okta works with to handle internal employee data. I don&apos;t think this constitutes as &quot;Okta hit by another breach&quot;. While &lt;em&gt;technically&lt;/em&gt; not false, I think it&apos;s fairly misleading.&lt;/p&gt;
&lt;p&gt;That said, there are some important things from this that have similarities. In the article, Ars links to a copy of the letter sent to employees -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“The types of personal information contained in the impacted eligibility census file included your Name, Social Security Number, and health or medical insurance plan number,” a letter sent to affected Okta employees stated. “We have no evidence to suggest that your personal information has been misused against you.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What does that even mean? Of course it will be used against employees. This reeks of a legal team saying and doing the bare minimum they can, while vaguely patting themselves on the back, but essentially saying &quot;Sorry, nothing we are going to do about it&quot;. It&apos;s hard to know how much, if anything, Okta itself could have done to prevent this from happening. All of that information is likely needed by the healthcare provider, and the healthcare provider clearly did not have good security in place to have this happen, but this was an opportunity for Okta to actually try to help their employees, and they instead chose to just cover their own legal asses.&lt;/p&gt;
&lt;p&gt;Later in the letter they say -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What We Are Doing. Okta regularly reviews and updates the measures it takes to protect your personal information. While we have no evidence that your personal information has been misused, as an added precaution, we are making available to you access to 24 months of complementary credit monitoring, identity restoration, and fraud detection services, through a product called IdentityWorks, offered by Experian.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;More boiler plate &quot;cover your ass&quot; bullshit clearly from a lawyer. This is just the go-to canned response from most data breaches any more, and it honestly pisses me off. Experian, and frankly all of the credit bureaus, are essentially rackets, and they are all honestly some of the worst companies in the world. I have some personal reasons that I may write about at some point about why I personally hate them so much, but I don&apos;t think anyone has to imagine too hard, and no one is a big fan of any of them. Regardless, their &quot;credit monitoring, identity restoration, etc...&quot; services are completely useless. I&apos;ve gotten this for &quot;free&quot; a few times due to breaches and other scenarios and they are bait-and-switch services that just try to loop you in to paying them for it long term, and it does not really solve anything. If I were one of the employees impacted by this, I&apos;d be really irritated by this being offered as the solution.&lt;/p&gt;
&lt;p&gt;Okta should realize that all of this personal information leaking will be used for spear phishing employees to try to gain access to their systems. Hackers just gained access to a bunch of sensitive information about employees of the company which can now be used for extortion or false familiarity campaigns when attacking Okta employees, which loops back in to the previous article and discussion. But I guess next time it happens again, Okta can just blame the employee again...&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/?p=1980825&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/?p=1980825&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/?p=1981227&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/?p=1981227&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/cloudflare-control-plane-outage/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/cloudflare-control-plane-outage/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/okta-suffers-another-breach/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/okta-suffers-another-breach/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sec.okta.com/harfiles&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sec.okta.com/harfiles&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Cloudflare Control Plane Outage - Another Post Mortem</title><link>https://barnes.tech/blog/cloudflare-control-plane-outage</link><guid isPermaLink="true">https://barnes.tech/blog/cloudflare-control-plane-outage</guid><description>An analysis of the recent Cloudflare Control Plane outage and their transparent post mortem process.</description><pubDate>Sun, 05 Nov 2023 05:24:20 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/cloudflare-logo.svg&quot; alt=&quot;Cloudflare Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;First of all, what a wild ride. It sounds like a really rough week for Cloudflare engineers, dealing with such a crazy set of circumstances.&lt;/p&gt;
&lt;p&gt;More importantly though, I personally always really appreciate how detailed Cloudflare is on post mortems. They explain in detail what happened, why it happened, and what they are going to do to prevent the same issue happening again. That&apos;s not easy to do, both technically and swallowing your pride to admit mistakes, but they do it time and time again.&lt;/p&gt;
&lt;p&gt;While this was clearly not caused by something that was their fault, they also acknowledge that that should not matter, because they could have done more to prevent this scenario. Taking ownership of the circumstance no matter the scenario is extremely admirable.&lt;/p&gt;
&lt;p&gt;Other companies could learn a lot from Cloudflare on how to transparently handle these scenarios. &lt;a href=&quot;https://barnes.tech/blog/okta-suffers-another-breach/&quot;&gt;Okta specifically comes to mind...&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you haven&apos;t read this yet, I recommend it, it&apos;s pretty fascinating.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/post-mortem-on-cloudflare-control-plane-and-analytics-outage/&quot;&gt;Post Mortem on Cloudflare Control Plane and Analytics Outage&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/okta-suffers-another-breach/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/okta-suffers-another-breach/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/post-mortem-on-cloudflare-control-plane-and-analytics-outage/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/post-mortem-on-cloudflare-control-plane-and-analytics-outage/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>My HomePod Experience</title><link>https://barnes.tech/blog/homepod</link><guid isPermaLink="true">https://barnes.tech/blog/homepod</guid><description>A personal account of frustrations with HomePods, exploring sound quality and software issues.</description><pubDate>Sun, 29 Oct 2023 09:01:23 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/accidental-tech-podcast.svg&quot; alt=&quot;Accidental Tech Podcast Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;In a recent Accidental Tech Podcast (ATP) episode, Marco Arment discussed his journey from HomePods to Sonos, and how irritating the HomePods have been. While part of the conversation about sound quality is subjective, I have been thinking about this topic in general for a while, and Marco&apos;s comments made me finally want to write it down.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://atp.fm/558&quot;&gt;ATP - 558: Multilevel Pizza Oven&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I have been somewhat of an Apple fanatic ever since high school. That year I took a video editing class where we would produce a TV show for the school every week, and I got to start really using Macs for the first time. I primarily edited using Final Cut Studio on the flowerpot G4 iMac (still my favorite Mac design of all time). I was hooked, and quickly got one of the first iPods, and have been an Apple fan ever since. About 5 months before the iPhone was announced, I started working at Apple Retail, where I worked for almost 5 years. After that, I went to work for a company called Simply Mac, an Apple Premiere Partner that had explosive growth for several years, and now I&apos;m working at a Managed Service Provider that is part of the Apple Consultants Network. I mention all of that just as an illustration of where I&apos;m coming from.&lt;/p&gt;
&lt;p&gt;I won&apos;t go through all of the Apple products I&apos;ve gotten over the years, but it&apos;s a lot. Like... A lot. I&apos;ve also always really been in to Music, and audio in general. Next to Apple, I&apos;ve probably spent more on speakers, amps, etc. than any other tech. It&apos;s more than I care to think about. So naturally when the HomePod came out, I was thrilled. After hearing them in person I was even more excited. I went all out on HomePods. They sound fantastic, particularly in a pair... When they work. Unfortunately that turned out to not be a given.&lt;/p&gt;
&lt;p&gt;In all I ended up with about 6 HomePods, and of all of the Apple products I&apos;ve ever gotten over the years, they are the first and only product that I completely regret getting.&lt;/p&gt;
&lt;p&gt;Let me first mention Siri. This part has honestly not surprised me. Siri has always been a mess. This is probably a whole other discussion, but Siri has been really bad for as long as I can remember. Some people seem to have better luck than me, though I honestly don&apos;t think anyone has a good experience with it. Some people are also just less picky than I am about that. I bring this up because Siri has been really bad for me on HomePod, but for me, this was fairly expected. I have hoped for years that it would improve, and I hoped the HomePod would be better, but it wasn&apos;t. And if that was the only issue, for myself personally, it is not a deal breaker.&lt;/p&gt;
&lt;p&gt;As I mentioned, the sound quality is fantastic. When they work I love how they sound. But they were immediately plagued with software bugs that are infuriating. AirPlay works like 75% of the time. Sometimes the HomePod pair doesn&apos;t work right. In some cases that means it just won&apos;t play until I reboot both of them. Sometimes it will only play through one until I reboot both of them. AirPlay sometimes just wouldn&apos;t start, or would freeze. Other times it starts streaming directly to the HomePod when started from my phone while other times it would stream from the phone. If it starts streaming directly, after a few minutes my phone would just go back to it&apos;s own playlist and forget to &quot;remote control&quot; the HomePods. I couldn&apos;t ever get it to consistently do one or the other though. Sometimes when it did start playing, it would become unresponsive to remote controls at all. Often (and this seems to happen with all Apple Music unfortunately...) it just decides to stop playing mid playlist. Why? Who knows. It never tells you.&lt;/p&gt;
&lt;p&gt;This didn&apos;t happen every day, or every time, but it happened enough that it has been driving me crazy. Luckily, these are software problems, right? So they should be able to fix this with future updates... Right? Well in my experience, they have gotten worse over time. Some updates make them clearly worse, others make them slightly better than a previous one, but overall they are worse than when they started.&lt;/p&gt;
&lt;p&gt;On top of that, after about a year, some of them started clearly having electric issues. They would become unresponsive entirely, and would occasionally just do a fairly loud speaker pop on their own when nothing was playing. Shortly after that started happening, those HomePods would completely die. I&apos;ve had 2 completely die, and a 3rd that is showing the same signs.&lt;/p&gt;
&lt;p&gt;These issues have largely made it so I don&apos;t use them almost ever. It is hugely disappointing to me. These were released in 2018, which is not very long ago, especially for speakers. My parents have a set of nice speakers by Boston Acoustics that are nearly as old as me, and still sound fantastic. I have a Sonos Soundbar and Sub that I&apos;ve had for over 10 years and still work and sound fantastic as well. HomePods were &lt;strong&gt;$350&lt;/strong&gt; each when they launched, or &lt;strong&gt;$700&lt;/strong&gt; for a pair to make them sound truly fantastic. That&apos;s a lot of money in general, though not unreasonable for a nice set of speakers, but also definitely not &quot;cheap&quot;, yet these have effectively not lasted more than a couple of years.&lt;/p&gt;
&lt;p&gt;From the sounds of it, Marco&apos;s experience is that the HomePod 2 is not much better. They probably fixed the complete failure issues, though time will tell, but the underlying software issues seem to still be there. Even if it did fix all the issues, it&apos;s not reasonable for Apple to expect people to replace all their 1st generation ones with the new ones.&lt;/p&gt;
&lt;p&gt;I don&apos;t know what the right answer is for this scenario, but I feel like they were bad enough that Apple should have done something to make it right for people. I am still a huge Apple fan, but I feel burned by the HomePod. Some products I&apos;ve disliked more than others over the years. Not every one will knock it out of the park, but HomePod is different. It feels like a defective product in my opinion, and I strongly regret not getting Sonos at the time.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://atp.fm/558&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://atp.fm/558&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Okta Faces Another Security Breach in Customer Support Unit</title><link>https://barnes.tech/blog/okta-suffers-another-breach</link><guid isPermaLink="true">https://barnes.tech/blog/okta-suffers-another-breach</guid><description>Okta faces a security breach in its customer support unit, raising concerns about third-party risk management and security practices.</description><pubDate>Mon, 23 Oct 2023 00:47:28 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Okta.svg&quot; alt=&quot;Okta Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Recently reported by &lt;a href=&quot;https://krebsonsecurity.com/2023/10/hackers-stole-access-tokens-from-oktas-support-unit/&quot;&gt;KrebsOnSecurity&lt;/a&gt;, Okta experienced a security breach targeting its customer support unit. Attackers exploited a stolen credential to access Okta’s support case management system, potentially viewing sensitive files uploaded by certain clients. Although Okta asserts that a minimal number of customers were affected, it&apos;s concerning to note that the intruders had access for approximately two weeks before containment.&lt;/p&gt;
&lt;p&gt;While the impact seems to be minimal, this is not the first time Okta has been compromised through their support system, which it seems is either entirely or at least mostly outsourced. In January 2022 there was a similar breach, outlined in this blog post -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.okta.com/blog/2022/04/okta-concludes-its-investigation-into-the-january-2022-compromise/&quot;&gt;Okta Concludes its Investigation Into the January 2022 Compromise&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately, from their “Lessons Learned” section they specifically mention the following -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Third-party risk management&lt;/strong&gt;:&lt;/p&gt;
&lt;p&gt;Okta is strengthening our audit procedures of our sub-processors and will confirm they comply with our new security requirements. We will require that sub-processors who provide Support Services on Okta&apos;s behalf adopt “Zero Trust” security architectures and that they authenticate via Okta’s IDAM solution for all workplace applications.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;While it’s difficult to know for sure, it doesn’t seem like this was actually done given the current breach.&lt;/p&gt;
&lt;p&gt;Cloudflare was specifically targeted in both cases once Okta was compromised, which makes sense given how impactful it would be if you could successfully use Okta to gain access to privileged accounts within Cloudflare. In both cases, Cloudflare’s internal security practices prevented the compromise, and in both cases they wrote some good blog posts about how they were able to prevent access.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;January, 2022&lt;/strong&gt; -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/&quot;&gt;Cloudflare’s investigation of the January 2022 Okta compromise&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;And October 2023&lt;/strong&gt; -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/how-cloudflare-mitigated-yet-another-okta-compromise/&quot;&gt;How Cloudflare mitigated yet another Okta compromise&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In the October 2023 post, it is clearly much more pointed, and you can see their frustration leaking through, I think with good cause.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Recommendations for Okta&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We urge Okta to consider implementing the following best practices, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Take any report of compromise seriously and act immediately to limit damage; in this case Okta was first notified on October 2, 2023 by &lt;a href=&quot;https://www.beyondtrust.com/blog/entry/okta-support-unit-breach&quot;&gt;BeyondTrust&lt;/a&gt; but the attacker still had access to their support systems at least until October 18, 2023.&lt;/li&gt;
&lt;li&gt;Provide timely, responsible disclosures to your customers when you identify that a breach of your systems has affected them.&lt;/li&gt;
&lt;li&gt;Require hardware keys to protect all systems, including third-party support providers.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For a critical security service provider like Okta, we believe following these best practices is table stakes.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;On the surface, this may seem harsh, but for an identity provider like Okta, it is absolutely critical that they are following the strictest security standards, and they can’t cut corners at all. If an attacker is able to compromise an identity provider like that, that’s essentially the keys to the kingdom. Cloudflare is right, Okta absolutely needs to do better.&lt;/p&gt;
&lt;p&gt;While Okta addresses this directly in their post, honestly it seems a tiny bit tone deaf, and kind of underplays the whole situation -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://sec.okta.com/harfiles&quot;&gt;Tracking Unauthorized Access to Okta&apos;s Support System&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Unfortunately they spend the majority of the article explaining why it isn’t that big of a deal, then seem to kind of pivot toward “This is why our customers need to be vigilant, and watch for suspicious activity”&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Attacks such as this highlight the importance of remaining vigilant and being on the lookout for suspicious activity. We are sharing the following Indicators of Compromise to assist customers who wish to perform their own threat hunting activity. We recommend referring to our previously &lt;a href=&quot;https://sec.okta.com/articles/2023/02/user-sign-and-recovery-events-okta-system-log&quot;&gt;published advice&lt;/a&gt; on how to search System Log for any given suspicious session, user or IP. Please note that the majority of the indicators are commercial VPN nodes according to our enrichment information.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Yes, customers need to be vigilant, and should be looking for suspicious activity, but this was Okta’s fault, not their customers. They need to do a better job of owning up to that, and a better job of communicating. More than anything, they absolutely &lt;strong&gt;&lt;em&gt;need&lt;/em&gt;&lt;/strong&gt; to tighten up their security internally. This kind of thing cannot be happening to a company that is built on trust.&lt;/p&gt;
&lt;p&gt;Here is BeyondTrust’s article about discovering the compromise - &lt;a href=&quot;https://www.beyondtrust.com/blog/entry/okta-support-unit-breach&quot;&gt;Okta Support Unit Breach&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I am a big fan of Okta. Their product is great and in my opinion they are the clear leader in the identity provider space, which is becoming more crucial for companies as a core pillar of your cybersecurity posture. But the more this kind of thing happens, it’s difficult to trust them, and without trust, it won’t really matter how good the product is.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Blog post&lt;/strong&gt; - &lt;a href=&quot;https://blog.1password.com/okta-incident/&quot;&gt;Okta Support System incident and 1Password&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;While it looks like 1Password was able to shut this down during the recon phase, and seemingly nearly immediately, and confirm that none of their internal systems or customer systems were accessed, this reiterates why companies like Okta need to be as bullet proof as possible. If an attacker was able to compromise Okta, then compromise companies like Cloudflare or 1Password, there is an unbelievable amount of damage that could be done.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Blog Post&lt;/strong&gt; - &lt;a href=&quot;https://www.wired.com/story/okta-support-system-breach-disclosure/&quot;&gt;Okta’s Latest Security Breach Is Haunted by the Ghost of Incidents Past
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Jake Williams (a former NSA hacker) seems to echo the sentiment I was trying to convey about Okta&apos;s blog post -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;“Okta&apos;s suggestion—that somehow the customer must be responsible for stripping session tokens from the files they specifically request for troubleshooting purposes—is absurd,” he says. “That&apos;s like handing a knife to a toddler and then blaming the toddler for bleeding.”&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.1password.com/okta-incident/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.1password.com/okta-incident/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/cloudflare-investigation-of-the-january-2022-okta-compromise/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/how-cloudflare-mitigated-yet-another-okta-compromise/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/how-cloudflare-mitigated-yet-another-okta-compromise/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://krebsonsecurity.com/2023/10/hackers-stole-access-tokens-from-oktas-support-unit/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://krebsonsecurity.com/2023/10/hackers-stole-access-tokens-from-oktas-support-unit/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sec.okta.com/articles/2023/02/user-sign-and-recovery-events-okta-system-log&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sec.okta.com/articles/2023/02/user-sign-and-recovery-events-okta-system-log&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sec.okta.com/harfiles&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sec.okta.com/harfiles&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.beyondtrust.com/blog/entry/okta-support-unit-breach&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.beyondtrust.com/blog/entry/okta-support-unit-breach&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.okta.com/blog/2022/04/okta-concludes-its-investigation-into-the-january-2022-compromise/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.okta.com/blog/2022/04/okta-concludes-its-investigation-into-the-january-2022-compromise/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/okta-support-system-breach-disclosure/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.wired.com/story/okta-support-system-breach-disclosure/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Build the Life You Want</title><link>https://barnes.tech/blog/build-the-life-you-want</link><guid isPermaLink="true">https://barnes.tech/blog/build-the-life-you-want</guid><description>Explore insights from The Happiness Lab podcast and the book &apos;Build the Life You Want&apos; for a happier life.</description><pubDate>Tue, 17 Oct 2023 03:00:28 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/build-the-life-you-want.png&quot; alt=&quot;Book cover for Build the Life You Want&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I was recommended this podcast episode the other day, and quite liked it. It&apos;s from The Happiness Lab, and I thought it had some great insights in to what actually makes us happy.&lt;/p&gt;
&lt;p&gt;They talk about the book, Build the Life You Want, which I definitely plan on reading in the near future.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.pushkin.fm/podcasts/the-happiness-lab-with-dr-laurie-santos/build-the-life-you-want-advice-from-arthur-brooks-and-oprah&quot;&gt;Build the Life You Want… Advice from Arthur Brooks and Oprah&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.pushkin.fm/podcasts/the-happiness-lab-with-dr-laurie-santos/build-the-life-you-want-advice-from-arthur-brooks-and-oprah&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.pushkin.fm/podcasts/the-happiness-lab-with-dr-laurie-santos/build-the-life-you-want-advice-from-arthur-brooks-and-oprah&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Steve Jobs 2023</title><link>https://barnes.tech/blog/steve-jobs-2023</link><guid isPermaLink="true">https://barnes.tech/blog/steve-jobs-2023</guid><description>Reflecting on Steve Jobs&apos; legacy and influence 12 years after his passing, featuring key resources and memories.</description><pubDate>Sat, 07 Oct 2023 21:36:07 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/make-something-wonderful.png&quot; alt=&quot;Make Something Wonderful quote&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;This past week marked 12 years since Steve Jobs passed away. Steve had an amazing mind, and an incredibly unique outlook on the world. He personally meant a lot to me, and inspired much of my life. I was working at Apple when he passed away, and the memorial we held within the company was truly one of the more meaningful experiences of my life, and I like to reflect on it around this time.&lt;/p&gt;
&lt;p&gt;I have posted these before, but there are a few things that I like to read through or think about. First, if you haven&apos;t checked out the Steve Jobs Archive, there is a lot of great stuff there -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stevejobsarchive.com/&quot;&gt;Steve Jobs Archive&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Next, I watch this about once a year - This is the commencement speech that Steve towards the end of his life, and it has been incredibly influential in my life.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=UF8uR6Z6KLc&quot;&gt;Steve Jobs - Stanford Commencement Speech&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;hr&gt;
&lt;p&gt;Image credit - Basic Apple Guy &lt;a href=&quot;https://mastodon.social/@BasicAppleGuy/111184175185115945&quot;&gt;Mastodon&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://mastodon.social/@BasicAppleGuy/111184175185115945&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://mastodon.social/@BasicAppleGuy/111184175185115945&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://stevejobsarchive.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://stevejobsarchive.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.youtube.com/watch?v=UF8uR6Z6KLc&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.youtube.com/watch?v=UF8uR6Z6KLc&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Cars and Data Privacy - Follow Up</title><link>https://barnes.tech/blog/cars-and-data-privacy-follow-up</link><guid isPermaLink="true">https://barnes.tech/blog/cars-and-data-privacy-follow-up</guid><description>Explore the alarming privacy issues surrounding modern cars and the need for regulation on data collection and sharing.</description><pubDate>Sat, 07 Oct 2023 15:09:23 GMT</pubDate><content:encoded>&lt;p&gt;In a recent post, I discussed cars and data privacy - &lt;a href=&quot;https://barnes.tech/blog/cars-and-data-privacy/&quot;&gt;Cars and Data Privacy&lt;/a&gt;, but since then, Mozilla has published a far more detailed and in depth report about how truly awful the privacy of modern cars really is.&lt;/p&gt;
&lt;p&gt;Some key points from the article -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Car brand collect too much personal data - Every car brand collects more personal data than is necessary, and they use it for reasons that have nothing to do with the operation of the car.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Most car brands share or sell your data - 84% of car brands can share your personal data, and 76% can sell it. 56% share it with the government.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Drives have essentially no control over their personal data. 2 car brands in Europe have some control in place for individuals, but none of them outside of Europe have any ability for the driver to control their own data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Car brands have a poor security and privacy track record - 68% of car brands have had leaks, hacks, and breaches in the last 3 years.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is absolutely worth reading the whole article by Mozilla. It&apos;s extremely concerning to me and we &lt;em&gt;need&lt;/em&gt; to get some meaningful regulation in place.&lt;/p&gt;
&lt;p&gt;Here&apos;s the article from Mozilla - &lt;a href=&quot;https://foundation.mozilla.org/en/privacynotincluded/articles/its-official-cars-are-the-worst-product-category-we-have-ever-reviewed-for-privacy/&quot;&gt;It’s Official: Cars Are the Worst Product Category We Have Ever Reviewed for Privacy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I think there are a few absolutely minimum items we need to legislate on -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our data needs to be &lt;em&gt;our&lt;/em&gt; data. Companies need to get permission to gather and especially to sell our data.&lt;/li&gt;
&lt;li&gt;The only exception should be data gathered for the use of the product itself, and there should be strict regulation in place that puts the burden on companies to prove that they need data, not on individuals to try to prove that data is misused. Companies should face heavy penalties if that data is sold or used for targeted advertising in any way.&lt;/li&gt;
&lt;li&gt;You should have the right to see what data is gathered about you, and if it&apos;s anonymized in any way, how that works, so that it can be audited by security and privacy professionals.&lt;/li&gt;
&lt;li&gt;You should have a right to be forgotten by these companies.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I&apos;m sure there is a lot more to do, but we (in the US anyway) desperately need to get something in place. Reading this about cars is honestly offensive to me, and unlike the normal web in my house where I have lots of tools to try to throw off tracking and protect my privacy, there&apos;s absolutely nothing you can do with what your car gathers and then sells about you.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/cars-and-data-privacy/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/cars-and-data-privacy/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://foundation.mozilla.org/en/privacynotincluded/articles/its-official-cars-are-the-worst-product-category-we-have-ever-reviewed-for-privacy/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://foundation.mozilla.org/en/privacynotincluded/articles/its-official-cars-are-the-worst-product-category-we-have-ever-reviewed-for-privacy/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Platformer - It&apos;s time to change how we cover Elon Musk</title><link>https://barnes.tech/blog/platformer-elon-musk</link><guid isPermaLink="true">https://barnes.tech/blog/platformer-elon-musk</guid><description>A critical look at media coverage of Elon Musk and the need for change in reporting.</description><pubDate>Fri, 11 Aug 2023 02:50:52 GMT</pubDate><content:encoded>&lt;p&gt;From Casey Newton&apos;s Platformer newsletter - &lt;a href=&quot;https://www.platformer.news/p/its-time-to-change-how-we-cover-elon&quot;&gt;It&apos;s time to change how we cover Elon Musk&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Elon&apos;s antics are exhausting. In this newsletter, Casey Newton talks about how it&apos;s time for the media to change how it covers Elon, and his constant gaslighting. It&apos;s well worth reading if you care about this kind of thing.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.platformer.news/p/its-time-to-change-how-we-cover-elon&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.platformer.news/p/its-time-to-change-how-we-cover-elon&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Cars and Data Privacy</title><link>https://barnes.tech/blog/cars-and-data-privacy</link><guid isPermaLink="true">https://barnes.tech/blog/cars-and-data-privacy</guid><description>Explore the data privacy issues surrounding modern cars and the need for regulation in the automotive industry.</description><pubDate>Wed, 09 Aug 2023 18:22:52 GMT</pubDate><content:encoded>&lt;p&gt;Most people would be shocked at the amount of information that is gathered and transmitted from cars that we drive around every day. There have already been stories about Tesla employees inappropriately viewing and sharing intimate videos that were recorded without users knowing or consenting. This is obviously an extreme case, but there are constantly huge amounts of data being sent from any modern car.&lt;/p&gt;
&lt;p&gt;Cars measure &lt;em&gt;and transmit&lt;/em&gt; things like your location, location history, all sorts of telemetry about how you are driving, when the brakes are applied and how hard, seat position, HVAC usage information, information about the media you are playing, and for driver and passenger seats in almost every car (and in some cars all the seats) they even transmit things like the weight of the person sitting in there. We know that companies like Tesla are constantly streaming all of the cameras back to Tesla, but most cars have many cameras now, and it&apos;s never clear what they are doing with that data.&lt;/p&gt;
&lt;p&gt;They probably (hopefully) do a rudimentary pass at &quot;anonymizing&quot; the data, however, anyone who knows how that has gone on the web knows that any one of those pieces of data could easily be aggregated with other things to pinpoint exactly who it belongs to.&lt;/p&gt;
&lt;p&gt;It&apos;s not hard to imagine a scenario where this massive amount of data is kept by car companies and is compromised by a malicious actor, and used to significantly enrich other compromised data, allowing for impersonation or even extremely targeted phishing campaigns.&lt;/p&gt;
&lt;p&gt;Possibly less obvious, but arguably just as upsetting, there&apos;s nothing stopping these car companies from selling all that data to other data aggregators who can then sell it to law enforcement, social media apps, online advertisers, or really anyone who wants to pay for the data. Coupled with all the other data that is collected about you, they can add to their ever-growing live feed of exactly what you are doing any time. Hell, why not sell that info to your insurance company so they can comb through your data and find any nit-picky reason they want to either charge you more for your insurance, or deny any claims they feel like?&lt;/p&gt;
&lt;p&gt;The Record asks if it&apos;s time to regulate this industry -
&lt;a href=&quot;https://therecord.media/connected-cars-hoover-up-data&quot;&gt;As cars hoover up more and more driver data, is it time to regulate the industry?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I would say it&apos;s far past time to do so. As it stands, they don&apos;t have to tell you what they are collecting about you. You also have no say in it. There&apos;s no way to &quot;opt out&quot; of this, other than buy a car from before all this telemetry was being collected, which is not a real solution.&lt;/p&gt;
&lt;p&gt;On another level, I feel like if we are the people generating valuable data, we should get something out of it. This is a pipe dream and half meant as a joke, but it is messed up that there are multi-billion dollar companies that make ALL their money off of surveillance on all of us (There are several good books and articles about &quot;Surveillance Capitalism&quot; out there that I recommend reading), yet we are the ones creating the value. They want us to feel like we are the customer, but we&apos;re the product, and we aren&apos;t compensated at all for that &quot;privilege.&quot;&lt;/p&gt;
&lt;p&gt;More than anything it is far past time for strict laws giving people more control over their own privacy, and choice over how &lt;strong&gt;OUR&lt;/strong&gt; data is being used. I don&apos;t really believe that we should be paid to allow surveillance. That leads to a bad place, but it is meant as an illustration of the bigger problem of data. We need it codified that it is even OUR data (which right now it kind of... isn&apos;t.), and then we need laws in place allowing us to choose how that is or more importantly &lt;em&gt;isn&apos;t&lt;/em&gt; being used.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://therecord.media/connected-cars-hoover-up-data&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://therecord.media/connected-cars-hoover-up-data&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Firebase Dynamic Links Killed</title><link>https://barnes.tech/blog/google-dynamic-links</link><guid isPermaLink="true">https://barnes.tech/blog/google-dynamic-links</guid><description>Google is shutting down Firebase Dynamic Links, raising concerns about the reliability of its platforms.</description><pubDate>Sun, 06 Aug 2023 09:10:51 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Yet another pretty widely used Google product that is being killed off...&lt;/p&gt;
&lt;p&gt;Is it a huge deal? Probably not, but every one of these erodes confidence in Google&apos;s platforms.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.pragmaticengineer.com/google-shutting-down-firebase-dynamic-links/&quot;&gt;Google Shutting down Firebase Dynamic Links&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.pragmaticengineer.com/google-shutting-down-firebase-dynamic-links/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.pragmaticengineer.com/google-shutting-down-firebase-dynamic-links/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google AR Software Lead Leaving</title><link>https://barnes.tech/blog/google-ar-lead</link><guid isPermaLink="true">https://barnes.tech/blog/google-ar-lead</guid><description>Explore Google&apos;s recent leadership changes and concerns over its AR vision and commitment.</description><pubDate>Tue, 11 Jul 2023 10:22:02 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&quot;Google’s unstable commitment and vision&quot;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Google? Unstable commitment and vision? You don&apos;t say...&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/7/10/23790393/google-ar-software-leader-mark-lucovsky-project-iris&quot;&gt;Google’s AR software leader is out over the company’s ‘unstable commitment and vision’&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/7/10/23790393/google-ar-software-leader-mark-lucovsky-project-iris&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/7/10/23790393/google-ar-software-leader-mark-lucovsky-project-iris&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Reddit Shit Show</title><link>https://barnes.tech/blog/reddit-shit-show</link><guid isPermaLink="true">https://barnes.tech/blog/reddit-shit-show</guid><description>Reddit&apos;s API fee changes spark outrage among developers, reflecting broader issues in tech and data usage.</description><pubDate>Fri, 30 Jun 2023 04:14:02 GMT</pubDate><content:encoded>&lt;h2&gt;Reddit is losing it’s mind&lt;/h2&gt;
&lt;p&gt;Anyone paying attention to tech news over the last couple months has probably seen Reddit decide to follow the shit show of Twitter. In short, earlier this year, Reddit told it’s API users (which had been offered for free for years), that it would begin charging for API usage. I don’t think any reasonable person who understands how all this works thinks that’s unreasonable, and many app developers who build Reddit apps agreed that was totally fine. Reddit even specifically said it would not make any drastic changes, and any changes they did make would roll out over the coming years. Well, they (seemingly primarily the CEO, Steve Huffman) changed their minds, and announced incredibly high API fees, and essentially yanked the rug out from under developers by giving them roughly a month before the changes were going to be made.&lt;/p&gt;
&lt;h2&gt;Why would Reddit do this?&lt;/h2&gt;
&lt;p&gt;Well I think there are a few parts to that question.&lt;/p&gt;
&lt;p&gt;I’ll start with the rational reasons that make sense why they would charge for the API. First, servers and web services cost money to run. If you’re giving that away for free to developers, that is costing you money. You could argue that it is also not generating any profit for you. In literal terms that is true, but one could argue that the content generated by the users on these apps is providing value, which could definitely be an argument about the ROI on providing the API for free, but I get it. You can’t really prove that, or measure how much, etc. So you should at least cover the costs of running the API if you can, and I think that’s reasonable.&lt;/p&gt;
&lt;p&gt;Second, Reddit has been rumored to be trying to go public for a couple of years now. So that would be a reason to make costs and income look as good as possible on paper. Ok, also somewhat reasonable I suppose.&lt;/p&gt;
&lt;p&gt;Third, I think it’s fairly obvious that Steve is upset that OpenAI and other Large Language Model (LLM) based AI tools which have exploded in the last few months were able to train their models on Reddit essentially for free. To some degree this makes sense as well.&lt;/p&gt;
&lt;p&gt;Steve said in an interview recently - &quot;Reddit represents one of the largest data sets of just human beings talking about interesting things… We are not in the business of giving that away for free.” Well… Kind of true. Literally that is what they have been doing, but I get the point. If you have that much data, other companies should not be able to just ingest huge amounts or all of it for free and essentially build a new product off of the data that is in there.&lt;/p&gt;
&lt;p&gt;Given the overall reactions, however, it honestly seems like Steve is lashing out because he doesn’t know what he’s doing and was somehow blind sided about how these LLMs used their data.&lt;/p&gt;
&lt;h2&gt;What happened?&lt;/h2&gt;
&lt;p&gt;I will post several links that go in to more detail on all of this below, but in short they announced a huge price for the API, and essentially gave developers about a month notice about the change. This is effectively killing off 3rd party Reddit apps with extremely little notice, after essentially lying about what they were going to do, and when they were going to do it. How do we know they were lying? Well one of the most publicized apps being killed off is Apollo (My personal favorite Reddit app), made by &lt;a href=&quot;https://mastodon.social/@christianselig&quot;&gt;Christian Selig&lt;/a&gt;, and he happened to record all of the interactions, and has recently posted about it. It’s a lot, but it’s pretty wild, and I think worth reading - &lt;a href=&quot;https://gist.github.com/christianselig/449b0bd374167ff7335fab2b823120ef&quot;&gt;https://gist.github.com/christianselig/449b0bd374167ff7335fab2b823120ef&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;At this point, it could have just been an awful PR execution of the changes that they were going to make, and a competent and mature executive would just swallow their pride, admit that it was handled poorly, clarify what they are trying to do, and try to minimize the PR damage. That is definitely not what Steve did. He continues to double down on just being an asshole about this.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/15/23762868/reddit-ceo-steve-huffman-interview&quot;&gt;Reddit CEO Steve Huffman isn’t backing down: our full interview&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://daringfireball.net/linked/2023/06/16/peters-huffman-interview&quot;&gt;Jay Peters Interviews Reddit CEO Steve Huffman for The Verge&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/13/23759559/reddit-internal-memo-api-pricing-changes-steve-huffman&quot;&gt;Reddit CEO tells employees that subreddit blackout ‘will pass’&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;They also seemingly started doubling down on just lying to everyone too. Moderators of several subreddits decided to protest the way things have been handled by changing popular subreddits to private, or marking them as NSFW, specifically because Reddit doesn’t put ads on NSFW subreddits. Reddit said they would not be overruling the mods on these decisions -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.platformer.news/p/reddit-goes-dark&quot;&gt;Reddit goes dark&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/13/23759674/reddit-mods-blackout-protest-extended-indefinitely&quot;&gt;Reddit communities with millions of followers plan to extend the blackout indefinitely&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/15/23762792/reddit-subreddit-closed-unilaterally-reopen-communities&quot;&gt;Reddit says it won’t overrule mods and force subreddits back open (but will it?)&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But that didn’t last long -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/28/23777195/reddit-protesting-moderators-communities-subreddits-private-reopen&quot;&gt;Reddit is telling protesting mods their communities ‘will not’ stay private&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/29/23778997/reddit-remove-mods-private-communities-unless-reopen&quot;&gt;Reddit will remove mods of private communities unless they reopen&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/20/23767848/reddit-blackout-api-protest-moderators-suspended-nsfw&quot;&gt;Reddit starts removing moderators behind the latest protests&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Community Value&lt;/h2&gt;
&lt;p&gt;Beyond the 3rd party apps, another absolutely tone deaf aspect of Steve’s responses is how clear it is that he doesn’t understand the actual value of Reddit. Reddit’s website is a cluttered and slow mess, and their first party app is a dumpster fire. So why is Reddit so important on the internet? It’s because of the communities. There are a lot of awful subreddits to be sure, but there are also a lot of extremely good and valuable ones. People spend a lot of time creating content on these, and the moderators of these subreddits deal with an unbelievable amount of work curating these, making the subreddits as good as they can be. The users and the moderators do all of this for free. Without this content, Reddit is nothing. Steve’s comments throughout this process make it clear he only cares about making money, not about cultivating these communities.&lt;/p&gt;
&lt;h2&gt;Reddit should have been clear&lt;/h2&gt;
&lt;p&gt;This all doesn’t make sense to me because it all just seems like an unforced error. If they had just been clear about what they were trying to do, this all would have been a much smaller deal. I’m personally upset because I love using Apollo, and the Reddit app is not something I’m going to use, but if they had just come out and said that they weren’t going to allow 3rd party clients, we’d be upset but whatever. It’s their right to do that, so if that’s what they wanted they can do that.&lt;/p&gt;
&lt;p&gt;Alternatively, they could require 3rd party apps serve ads or pay more for ad-free. Hell, they could even require that users be part of Reddit premium in order to use 3rd party apps. There are lots of ways they could have made this work, but they were clearly not interested.&lt;/p&gt;
&lt;p&gt;To put a nice little bow on everything, it’s clear where Steve’s inspiration is coming from…&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.nbcnews.com/tech/tech-news/reddit-blackout-protest-private-ceo-elon-musk-huffman-rcna89700&quot;&gt;Reddit CEO praises Elon Musk’s cost-cutting as protests rock platform&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2023/06/16/peters-huffman-interview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2023/06/16/peters-huffman-interview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gist.github.com/christianselig/449b0bd374167ff7335fab2b823120ef&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://gist.github.com/christianselig/449b0bd374167ff7335fab2b823120ef&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://mastodon.social/@christianselig&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://mastodon.social/@christianselig&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.nbcnews.com/tech/tech-news/reddit-blackout-protest-private-ceo-elon-musk-huffman-rcna89700&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.nbcnews.com/tech/tech-news/reddit-blackout-protest-private-ceo-elon-musk-huffman-rcna89700&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.platformer.news/p/reddit-goes-dark&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.platformer.news/p/reddit-goes-dark&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/13/23759559/reddit-internal-memo-api-pricing-changes-steve-huffman&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/13/23759559/reddit-internal-memo-api-pricing-changes-steve-huffman&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/13/23759674/reddit-mods-blackout-protest-extended-indefinitely&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/13/23759674/reddit-mods-blackout-protest-extended-indefinitely&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/15/23762792/reddit-subreddit-closed-unilaterally-reopen-communities&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/15/23762792/reddit-subreddit-closed-unilaterally-reopen-communities&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/15/23762868/reddit-ceo-steve-huffman-interview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/15/23762868/reddit-ceo-steve-huffman-interview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/20/23767848/reddit-blackout-api-protest-moderators-suspended-nsfw&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/20/23767848/reddit-blackout-api-protest-moderators-suspended-nsfw&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/28/23777195/reddit-protesting-moderators-communities-subreddits-private-reopen&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/28/23777195/reddit-protesting-moderators-communities-subreddits-private-reopen&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/29/23778997/reddit-remove-mods-private-communities-unless-reopen&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/29/23778997/reddit-remove-mods-private-communities-unless-reopen&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/7/1/23781306/reddit-moderators-iama-celebrity-ama&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/7/1/23781306/reddit-moderators-iama-celebrity-ama&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Domains Continued</title><link>https://barnes.tech/blog/google-domains-continued</link><guid isPermaLink="true">https://barnes.tech/blog/google-domains-continued</guid><description>Discussion on the shutdown of Google Domains and implications for users and services.</description><pubDate>Mon, 26 Jun 2023 04:16:42 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;On this week&apos;s free edition of &lt;a href=&quot;https://blog.pragmaticengineer.com/&quot;&gt;The Pragmatic Engineer&lt;/a&gt; newsletter, Gergely discusses some other points about Google Domains shutting down that I hadn&apos;t even thought about, but they are excellent points.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.pragmaticengineer.com/google-domains-to-shut-down/&quot;&gt;Google Domains to shut down&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;He also mentions that Google is also shutting down the Google Cloud specific &lt;a href=&quot;https://cloud.google.com/domains/docs/overview&quot;&gt;Google Domains&lt;/a&gt;, which is so strange to me. I honestly don&apos;t understand what Google is doing here...&lt;/p&gt;
&lt;p&gt;Link to my first post on this - &lt;a href=&quot;https://barnes.tech/blog/google-domains/&quot;&gt;Google Domains&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/google-domains/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/google-domains/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.pragmaticengineer.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.pragmaticengineer.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.pragmaticengineer.com/google-domains-to-shut-down/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.pragmaticengineer.com/google-domains-to-shut-down/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://cloud.google.com/domains/docs/overview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://cloud.google.com/domains/docs/overview&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>AI Regulations</title><link>https://barnes.tech/blog/ai-regulations</link><guid isPermaLink="true">https://barnes.tech/blog/ai-regulations</guid><description>Exploring the need for AI regulation and the potential pitfalls of industry self-regulation.</description><pubDate>Wed, 21 Jun 2023 03:06:02 GMT</pubDate><content:encoded>&lt;p&gt;I am not quite as optimistic as John Gruber in this. I do think we need AI regulation and that it will be a big problem in the next few years.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://daringfireball.net/linked/2023/06/20/regulation-altman&quot;&gt;Regulation for Thee, but Not for Me&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I’m optimistic about many of the benefits it will bring and I actually think Open AI and Sam Altman have been saying a lot of good things about the dangers as well as curbing some expectations or what AI can to. But it seems to me like allowing these companies to help write the regulations would be like asking tobacco companies how they should be regulated. Or asking oil companies what they think about environmental protections.&lt;/p&gt;
&lt;p&gt;Yes, I know big companies lobby their way in to these all the time, but it’s hard to see any good outcomes that has ever had. Unfortunately it’s a broken process in a broken system.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2023/06/20/regulation-altman&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2023/06/20/regulation-altman&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Domains</title><link>https://barnes.tech/blog/google-domains</link><guid isPermaLink="true">https://barnes.tech/blog/google-domains</guid><description>Google sells Google Domains to Squarespace, highlighting ongoing challenges with product focus and reliability.</description><pubDate>Tue, 20 Jun 2023 05:25:48 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;At this point, it seems like Google just can’t help themselves. They just love &lt;a href=&quot;https://killedbygoogle.com/&quot;&gt;killing products&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It’s hard to know what else to say that I haven’t already covered in other &lt;a href=&quot;https://barnes.tech/blog/google-kills-more-products/&quot;&gt;posts&lt;/a&gt;, but somehow they still surprise me. This week, Google announced that they are selling their Google Domains to Squarespace.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://arstechnica.com/?p=1948540&quot;&gt;Google Domains is yet another useful service to get the ax in favor of “focus”“&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/16/23763340/google-domains-sunset-sell-squarespace&quot;&gt;Google sunsets Domains business and shovels it off to Squarespace&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Listen, some products it makes sense for them to kill off. Honestly if you go read Google Graveyard’s website, most people wouldn’t have ever even heard of most of them. And I completely understand that you can’t be good at too many products. Apple is a company that for the most part is really good at staying focused on what they do well (though there are definitely some areas I could complain about, I’ll leave that for another time. I think overall they do an excellent job at focus, particularly for their size). But with Google, I don’t think there’s any evidence of focus going on. Look at their constantly changing absolute cluster f*** of messaging apps, just as one particularly messy example - &lt;a href=&quot;https://www.theverge.com/2021/6/21/22538240/google-chat-allo-hangouts-talk-messaging-mess-timeline&quot;&gt;A very brief history of every Google messaging app&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To me, it seems obvious where Google should be focusing, and they even say similar things from time to time. Google Workspace and Google Cloud Platform are 2 of the biggest areas they should be razor focused on right now, I’d say even more than ever given that they essentially squandered their huge lead in AI. First and foremost, Google is an internet services company. As such, domain registration and DNS should be absolutely key. For years we used Amazon’s Route 53, which despite being more complicated than I feel like it needs to be, it was rock solid, very developer minded, and had all the dials and knobs you would ever want to use when doing public DNS routing. Google Domains was more customer focused, but it seemed for a while like Google was slowly getting their heads out of their a**es in that regard with &lt;a href=&quot;https://cloud.google.com/domains/docs/overview&quot;&gt;Google Cloud Domains&lt;/a&gt;, which unfortunately to this day is still pretty half baked for many use cases.&lt;/p&gt;
&lt;p&gt;To be fair, I’m not clear on whether this sale includes Google Cloud Domains, or if this is literally just the “consumer” portion of Google Domains, but regardless it reiterates the notion that Google will kill any product any time because they can’t focus, and that makes it really hard to rely on them as a business. This frustrates me so much because I really like most of the products Google makes. They truly are one of the best (I would argue THE best) at planet scale infrastructure, and web applications. Somehow translating that enormous amount of talent, engineering, technology, footprint, etc. in to products people can rely on has been a struggle.&lt;/p&gt;
&lt;p&gt;I could go on about this, but at the end of the day, there’s yet another really great product that I recommended to people that is being killed off for reasons that make no sense to me. I’m sure it wasn’t a huge money maker for them, but I also know that they have a serious reputation problem and every one of these is making that worse. They really need to get their shit together over there or other companies are going to keep chipping away at their dominance. If they can lose the lead in AI, they can lose their lead in anything they are doing.&lt;/p&gt;
&lt;p&gt;For the record, I have moved all of my personal domains (and the customers I work with) over to Cloudflare, both for DNS records and for domain registration. I have been and continue to be very impressed with Cloudflare as a company and their products, and they do not mark up domain costs, which is very nice as well. It’s not the most user friendly registrar for someone who doesn’t understand DNS (I’d say “consumer” in this case), but it’s pretty straight forward compared to things like Route 53, and extremely powerful.&lt;/p&gt;
&lt;p&gt;Also, I do want to state that I quite like Squarespace. I have done several websites with them and will likely continue to do so in the future. I just don’t like this move, and I don’t particularly like having the domain name and website in the same place. I don’t know what Squarespace is planning on doing with this purchase but to date they also don’t have great DNS settings. I hope that changes, but regardless, I don’t blame Squarespace in this scenario.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://arstechnica.com/?p=1948540&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://arstechnica.com/?p=1948540&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/google-kills-more-products/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/google-kills-more-products/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://cloud.google.com/domains/docs/overview&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://cloud.google.com/domains/docs/overview&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://killedbygoogle.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://killedbygoogle.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2021/6/21/22538240/google-chat-allo-hangouts-talk-messaging-mess-timeline&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2021/6/21/22538240/google-chat-allo-hangouts-talk-messaging-mess-timeline&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/6/16/23763340/google-domains-sunset-sell-squarespace&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/6/16/23763340/google-domains-sunset-sell-squarespace&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Twitter, then Reddit</title><link>https://barnes.tech/blog/twitterthenreddit</link><guid isPermaLink="true">https://barnes.tech/blog/twitterthenreddit</guid><description>Explore the impact of Reddit&apos;s API changes on third-party apps and developer relations amidst social media challenges.</description><pubDate>Sun, 11 Jun 2023 23:17:37 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/reddit.svg&quot; alt=&quot;Reddit&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;It’s been rough for 3rd party social media apps made by small developers lately. First Twitter effectively killed 3rd party apps, and now Reddit is effectively doing the same. At the time, the way Twitter handled the situation seemed like it couldn’t have been handled any more poorly, and while that is probably still the case, Reddit decided to sure give them a run for their money.&lt;/p&gt;
&lt;p&gt;To some degree, I think everyone knew Twitter would do this with the new ownership in place, though it’s hard to think anyone would have predicted how poorly it was communicated and executed, I hardly think anything outside the timing and actual execution was surprising. Reddit, on the other hand, had always been pretty open to working with developers. Well, that certainly didn’t last.&lt;/p&gt;
&lt;p&gt;A few months ago, Reddit started reaching out to developers about some API changes they were going to be making, primarily around starting to charge for previously free APIs. This seems to me to be in response to the recent explosion of LLM chat apps that have been trained on public internet data, including most social media sites, though I’m not sure Reddit ever explicitly said that this was why. While kind of a bummer, I think it’s reasonable to charge for API usage. The developer of my favorite Reddit app, Apollo, seemed to feel the same way. In several posts on Reddit and Mastodon, he was open to the idea of reasonably priced API calls, even though he may need to restrict his app a bit and possibly only allow it for higher tier plans to account for the cost. He was even assured multiple times by people at Reddit that they intended to work together on pricing that was reasonable. Unfortunately once the pricing was announced it was absurdly high. For Apollo specifically, the cost at the new rate would be somewhere around $20 Million per year -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/5/31/23743993/reddit-apollo-client-api-cost&quot;&gt;A developer says Reddit could charge him $20 million a year to keep his app working&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is insane. To me it’s clear that they are just trying to kill off 3rd party apps, and possibly try to cash in on AI companies training their data. There’s no way those companies will pay that, so I think it’s clear they are just trying to block them from doing so. But if they just wanted to stop AI companies from training their data, or even somehow if they think they would actually pay that price, they could have just changed their developer guidelines specifically for training data, and either deny it or specifically have a different pricing structure for that.&lt;/p&gt;
&lt;p&gt;Additionally, if their goal was to kill 3rd party Reddit apps, why not just say that? Instead their CEO essentially went on a smear campaign against Apollo and the developer making it in a bizarre series of posts on Reddit. Christian, the developer of Apollo, luckily chronicled all of the conversations he has been having with Reddit and it’s quite the ride.&lt;/p&gt;
&lt;p&gt;Reddit’s CEO for some reason decided to do an AMA which… I’m not even sure what to say about it. It was a train wreck. I’m not sure why he would think it was a good idea to do in the first place, but then he acted like an angry child in many of his responses. At best, he would dodge the questions, and at worst he would double down on smearing Apollo for some reason, even though Christian produced specific evidence to the contrary.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.reddit.com/r/apolloapp/comments/144f6xm/apollo_will_close_down_on_june_30th_reddits/&quot;&gt;📣 Apollo will close down on June 30th. Reddit’s recent decisions and actions have unfortunately made it impossible for Apollo to continue. Thank you so, so much for all the support over the years. ❤️&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Many people on social media pulled out some of the best / worst responses during the AMA. For example -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mastodon.social/@sdw/110516914119381983&quot;&gt;Reddit communities should go dark to demand this guy leaves. This is some of the most incompetent management I’ve seen.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Regardless, it’s frustrating to me that two of my absolute all time favorite apps are being killed off by the social media companies that they connect to. Tweetbot for Twitter and Apollo for Reddit were both fantastic apps that made the toxic services they connect to actually tolerable to use. I stopped using Twitter and I will stop using Reddit now as well. I know it won’t make a difference but I don’t want to support companies that do shit like that.&lt;/p&gt;
&lt;p&gt;To be clear, I am all in support of paying for services like this. A fair API price is not a problem, and I would have paid more for either app to support those changes. Hell, if Twitter had just required Twitter blue to use the API or if Reddit did the same with whatever the hell their paid version is, I may have done that. But this back handed bullshit is not ok. If you want to kill off 3rd party apps, just say it. Don’t pull this chicken shit jerking people around.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://mastodon.social/@sdw/110516914119381983&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://mastodon.social/@sdw/110516914119381983&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.reddit.com/r/apolloapp/comments/144f6xm/apollo_will_close_down_on_june_30th_reddits/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.reddit.com/r/apolloapp/comments/144f6xm/apollo_will_close_down_on_june_30th_reddits/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/5/31/23743993/reddit-apollo-client-api-cost&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/5/31/23743993/reddit-apollo-client-api-cost&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Mimestream</title><link>https://barnes.tech/blog/mimestream</link><guid isPermaLink="true">https://barnes.tech/blog/mimestream</guid><description>Discover Mimestream, the email client that combines Apple Mail aesthetics with seamless Google integration for a faster email experience.</description><pubDate>Tue, 30 May 2023 23:12:13 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Mimestream-logo.png&quot; alt=&quot;Mimestream Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;h2&gt;Apple Mail is a mess under load&lt;/h2&gt;
&lt;p&gt;I am a big fan of Google Workspace and Gmail in general. Once you get used to how Google manages email, it can really help you plow through email quickly and efficiently, particularly if you use keyboard shortcuts, and once you get used to how Labels work.&lt;/p&gt;
&lt;p&gt;Plus, as a bonus, it’s not Microsoft! 😆&lt;/p&gt;
&lt;p&gt;Years ago I was a fan of using Apple Mail both on iOS and macOS, but as the years went on and I got more email, it started choking all the time. New messages would stop coming through until I quit and re-launched the app, or &lt;strong&gt;*&lt;/strong&gt;maybe***** they would come through 15+ minutes after they actually came through. It also just always fought with how Google does things, and I got tired of it.&lt;/p&gt;
&lt;p&gt;I primarily went to using Chrome and had Gmail in a pinned tab. It worked much better than Apple Mail, but it didn’t have native notifications or anything like that, so it was… fine.&lt;/p&gt;
&lt;p&gt;I tried &lt;a href=&quot;https://superhuman.com/&quot;&gt;Superhuman&lt;/a&gt; for a few months, and it had a lot of advantages. I could go even faster through email, and their iOS app was WAY better than Google’s for organizing mail, but it is very pricey.&lt;/p&gt;
&lt;h2&gt;Mimestream&lt;/h2&gt;
&lt;p&gt;I signed up for the beta of Mimestream almost 2 years ago, and it has been making steady progress ever since then. Honestly the whole time I’ve used it in beta, it has been rock solid. There was one release (which I believe was actually a change macOS made) that crashed the app periodically, but they fixed that within a day.&lt;/p&gt;
&lt;p&gt;On May 22, the 1.0 version was announced, and I’m extremely happy with it.&lt;/p&gt;
&lt;p&gt;I expected once they launched 1.0 that it would essentially be saying “this is stable enough now that we feel comfortable charging for it and supporting it” but of course they added several new features as part of 1.0.&lt;/p&gt;
&lt;p&gt;Here is the blog post announcing it, along with the new 1.0 features -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://mimestream.com/blog/whats-new-in-1.0&quot;&gt;What’s new in Mimestream 1.0?&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I always enjoyed the aesthetics of Apple Mail, I just couldn’t reliably use it. Mimestream to me combines the best of Apple Mail, but uses modern Google API’s to directly talk to Google rather than using IMAP, which is always a bit flaky, and not that secure by modern standards. The result is a MUCH faster, solid way to connect to Google mail accounts. Since it is integrating with Google, they added other Google API integrations such as Contacts, Calendar, and as part of 1.0 you can now integrate with several Google settings directly as well.&lt;/p&gt;
&lt;p&gt;Direct Google integration allows for things like server-side filters / mail rules, vacation settings, and more. This means you can set those in Mimestream, but unlike Apple mail, they will work on messages no matter when they come in, and whether or not your computer is online at the moment, which is fantastic. Additionally, whatever you have your signature set to in Gmail, it will automatically show up in Mimestream and vice versa. Trying to do this in Apple Mail is… not easy, and pretty fragile.&lt;/p&gt;
&lt;p&gt;Another feature that is a game changer for me is that you can choose whether you want to use the same keyboard shortcuts Apple Mail uses, or you can use the same ones Gmail uses. Years ago I was used to the Apple ones but in the years since then I have become completely used to the Gmail keyboard shortcuts. It would be very difficult to unlearn that muscle memory at this point, and I can’t sort email nearly as efficiently without keyboard shortcuts.&lt;/p&gt;
&lt;p&gt;I think Mimestream is the perfect combination of being all the benefits of being a native &lt;a href=&quot;https://daringfireball.net/linked/2020/03/20/mac-assed-mac-apps&quot;&gt;Mac-Assed Mac App&lt;/a&gt;, as well as the benefits of a truly great web service (which Apple is not great at).&lt;/p&gt;
&lt;h2&gt;Price&lt;/h2&gt;
&lt;p&gt;The price may be a sticking point for some people, but so much of my professional life relies on email that it was a no brainer for me. It’s either $5 a month or $50 per year, but there’s a 40% discount for the first year as a launch special. For me I am thrilled to pay it. I want to support the development of amazing apps like this and I know they have big future plans for this, including an iOS app which I’m really looking forward to.&lt;/p&gt;
&lt;p&gt;Here’s an article over on TidBITS that goes through why they like Mimestream and a lot more detail about the app itself -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tidbits.com/2023/05/24/why-i-use-mimestream-for-gmail/&quot;&gt;Why I Use Mimestream for Gmail - TidBITS&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2020/03/20/mac-assed-mac-apps&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2020/03/20/mac-assed-mac-apps&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://mimestream.com/blog/whats-new-in-1.0&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://mimestream.com/blog/whats-new-in-1.0&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://superhuman.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://superhuman.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://tidbits.com/2023/05/24/why-i-use-mimestream-for-gmail/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tidbits.com/2023/05/24/why-i-use-mimestream-for-gmail/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>AI Reading Tools</title><link>https://barnes.tech/blog/ai-reading-tools</link><guid isPermaLink="true">https://barnes.tech/blog/ai-reading-tools</guid><description>Explore AI tools enhancing reading apps like Reader and Artifact with summarization and Q&amp;A features for better document interaction.</description><pubDate>Fri, 28 Apr 2023 08:06:02 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/ghost-reader.png&quot; alt=&quot;GhostReader&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;There are a million different stories about all the new AI tools based on large language models (LLMs) and all the things they are able to do, ChatGPT being the most popular one recently.&lt;/p&gt;
&lt;p&gt;I have been using AI tools a lot more recently, as I’ve written before but I wanted to call out a couple of specific apps I use a lot and how they have implemented these models in extremely useful ways.&lt;/p&gt;
&lt;p&gt;For me, one of the most immediately useful things these models seem to do quite well is being able to summarize documents, articles, etc. and even provide the ability to ask questions about the document. Two reading apps I use a TON have implemented AI, and it nearly immediately became invaluable to me.&lt;/p&gt;
&lt;p&gt;First, the “read later” app that I use is called Reader, by Readwise.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://readwise.io/read#center&quot;&gt;Readwise Reader: The first read-it-later app built for power readers.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I think it’s an excellent app, and I also use Readwise to highlight and clip things that I read, and their reader app is really well integrated with that. I also sync those highlights to Notion, which is also great. Reader has a feature called “ghost reader” which allows you to “ask the document a question”, “summarize the document”, “generate thought-provoking questions”, or “generate Q&amp;#x26;A pairs based on your highlights.”&lt;/p&gt;
&lt;p&gt;I frequently use the first two options, and they have been great for me. I have tried the other options and they do a surprisingly good job, I just don’t have the need for them quite as often.&lt;/p&gt;
&lt;p&gt;Another reading app I use is called Artifact, and they just launched some summarization tools as well.&lt;/p&gt;
&lt;p&gt;Artifact - Broken link removed&lt;/p&gt;
&lt;p&gt;Artifact is a personalized news app that I have found to be very good, and they just added AI powered summaries as well.&lt;/p&gt;
&lt;p&gt;They added some funny options as well, including a Gen Z mode and a Summarize this article in Emoji. Both made me laugh pretty hard when I was trying them out.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://medium.com/artifact-news/summaries-tool-now-on-artifact-8eee439049fc#center&quot;&gt;Summaries Tool, Now in Artifact&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://medium.com/artifact-news/summaries-tool-now-on-artifact-8eee439049fc#center&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://medium.com/artifact-news/summaries-tool-now-on-artifact-8eee439049fc#center&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://readwise.io/read#center&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://readwise.io/read#center&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>iPhone Audio Message - Save Location</title><link>https://barnes.tech/blog/iphone-audio-messages</link><guid isPermaLink="true">https://barnes.tech/blog/iphone-audio-messages</guid><description>Learn where your saved iPhone audio messages go and how to find them in Voice Memos.</description><pubDate>Fri, 21 Apr 2023 03:31:53 GMT</pubDate><content:encoded>&lt;p&gt;My family has recently been sending more audio messages to each other than we ever previously did, as my daughter has been making up a lot of songs lately, and we like sharing them with each other.&lt;/p&gt;
&lt;p&gt;My parents asked me where those go when you save them from Messages, and I realized I didn&apos;t actually know the answer. I started searching around the internet, and there is a TON of garbage articles out there that are 1. wrong, and 2. usually trying to sell you some scammy iPhone recovery utility.&lt;/p&gt;
&lt;p&gt;So here you go - They save to &lt;strong&gt;voice memos&lt;/strong&gt;. Why? I&apos;m not entirely sure, but that&apos;s where they seem to go.&lt;/p&gt;</content:encoded></item><item><title>Steve Jobs - Make Something Wonderful</title><link>https://barnes.tech/blog/steve-jobs-make-something-wonderful</link><guid isPermaLink="true">https://barnes.tech/blog/steve-jobs-make-something-wonderful</guid><description>Explore the inspiring collection of Steve Jobs&apos; speeches and emails available for free from the Steve Jobs Archive.</description><pubDate>Sat, 15 Apr 2023 09:00:38 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/put-something-back.png&quot; alt=&quot;Put something back - An email from Steve Jobs&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;The Steve Jobs Archive recently released a book that has a collection of some of Steve&apos;s speeches, interviews, and emails. I find Steve incredibly inspiring and thought this was a great read. It is available for free as an Apple book or in ePub format on the Steve Jobs archive website.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stevejobsarchive.com/&quot;&gt;Steve Jobs Archive&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://stevejobsarchive.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://stevejobsarchive.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Set up Okta SSO with Meraki and multiple SAML roles</title><link>https://barnes.tech/blog/meraki-okta-setup</link><guid isPermaLink="true">https://barnes.tech/blog/meraki-okta-setup</guid><description>Learn how to set up Okta SSO with Cisco Meraki for multiple roles, tailored for MSPs managing network infrastructure.</description><pubDate>Sat, 15 Apr 2023 08:49:42 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Okta.svg&quot; alt=&quot;Okta Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I wanted to quickly write a post about how we used Okta internally to set up Cisco Meraki SSO, because in our use case, none of the documentation I could find actually worked the way we wanted to use this. It seems like it should be a pretty common use case, at least for MSPs, so I wanted to write up the details on how we got it to work.&lt;/p&gt;
&lt;p&gt;First, a little bit of background. We are a Managed Service Provider (MSP), so we help fully manage several customers IT infrastructure, including their Cisco Meraki networks, which is our preferred vendor to work with. We also have different roles within our org, which need different levels of access when we log in to our networking equipment.&lt;/p&gt;
&lt;p&gt;Many Single Sign On (SSO) integrations essentially match up your username, typically an email, to a user that is in the system, and then that username is assigned roles (like super admin, partial admin, or read only, etc.) either directly or through a group that they are in. More advanced implementations can actually provision new users or groups on the fly from the SSO provider, such as Okta. Cisco Meraki does not do it this way, in fact SSO will not work correctly if your username conflicts with a username that is already in the Cisco Meraki dashboard. Instead, you set up roles as a user attribute which gets passed along in the SSO request, and then grants the access to the user based on that role that is passed through.&lt;/p&gt;
&lt;p&gt;If you only have one role in your organization, this is pretty easy to set up in Okta. You can use the pre-built Cisco Meraki Okta app, and follow the instructions provided by Okta. During the setup process, Okta provides a specific field called SAML administrator role. Simply put your SAML role that you set up in the Meraki dashboard, along with the other necessary information, and you’re good to go in a few minutes.&lt;/p&gt;
&lt;p&gt;But what if you have different users that need different roles? We needed this, and I also didn’t want to have a conflict for users that have regular accounts in Cisco Meraki dashboard. We have a couple of users that need to use the Cisco Meraki API, which you can only generate with a regular user account, and not a SAML SSO login. You certainly could create new accounts that use email aliases or something like that, then have the SSO pass through the primary email and it would work fine, but ideally I didn’t want to have any conflicts and didn’t really want to re-do our regular accounts and API keys, etc.&lt;/p&gt;
&lt;p&gt;So rather than using the built in Okta Cisco Meraki application, I decided to just create a custom SAML app, and see if I could get it working that way. I will assume for the sake of this post that you already know how to create a custom SAML app in Okta.&lt;/p&gt;
&lt;p&gt;First, I created a custom profile attribute in the Okta directory where I can store the SAML role that I want to assign to specific users. I called the attribute &lt;code&gt;Meraki Administrator Role&lt;/code&gt; with a variable name of &lt;code&gt;adminRole&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;In the first section, I added the SSO URL and Audience URI (you can follow Cisco Meraki’s documentation on these), but rather than passing email through as the Application Username, like the pre-built app integration does, I pass through the Okta Username prefix, which solves the conflict issue.&lt;/p&gt;
&lt;p&gt;Next, under the Attribute Statements (Optional), I added the following fields to match up with what Cisco Meraki is expecting in a SAML request.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt; -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://dashboard.meraki.com/saml/attributes/role
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Name Format&lt;/strong&gt; -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Unspecified
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Value&lt;/strong&gt; - (the adminRole is coming from the custom profile attribute from above)&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;user.adminRole
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And a second Attribute Statement with&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Name&lt;/strong&gt; -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://dashboard.meraki.com/saml/attributes/username
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Name Format&lt;/strong&gt; -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;Unspecified
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;Value&lt;/strong&gt; -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;user.firstName
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With this all set, I added the SAML role from the Meraki dashboard that we set up to everyone’s user profile, assigned the app, and it worked great!&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://dashboard.meraki.com/saml/attributes/role&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://dashboard.meraki.com/saml/attributes/role&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://dashboard.meraki.com/saml/attributes/username&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://dashboard.meraki.com/saml/attributes/username&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Kills More Products</title><link>https://barnes.tech/blog/google-kills-more-products</link><guid isPermaLink="true">https://barnes.tech/blog/google-kills-more-products</guid><description>Google announces the shutdown of Nest Secure and Dropcam, raising concerns about product reliability and support.</description><pubDate>Sat, 15 Apr 2023 08:07:08 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/4/7/23673165/google-nest-dropcam-nest-secure-eol&quot;&gt;Google will shut down Dropcam and Nest Secure in 2024&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Google has announced, yet again, that they are killing off products. Earlier this month, Google announced that Nest Secure, and the old Dropcam devices will stop working altogether.&lt;/p&gt;
&lt;p&gt;Dropcam cameras have been around and working for a very long time, so to some degree I don’t think this is a huge deal. You can’t realistically support cloud based hardware forever, though I also understand that some people will be frustrated by this. It’s frustrating when you have fully functional hardware and it just stops working at some point because the company behind it stops supporting it. You can’t help but feel like it’s a little bit of a bait and switch, even though the reality is that it’s not possible or reasonable to support something like that indefinitely.&lt;/p&gt;
&lt;p&gt;While I wish I was surprised by the Nest Secure being killed off too, the writing was on the wall when they discontinued it fairly abruptly shortly after selling it.&lt;/p&gt;
&lt;p&gt;The Nest Secure is a great product. It looks really nice and works really well. When it launched it had even better functionality too. It integrates really well with the other Nest products, has a built in battery so that it can function for some time even if the power goes out, and initially had a cellular connection that could be used to alert authorities even if the internet was out. There was a small subscription fee to keep the cellular working but otherwise this all worked without a subscription.&lt;/p&gt;
&lt;p&gt;On top of the built in Nest controls, I also have a Starling Home hub (which I highly recommend if you have Google home or Nest products and you’re an Apple house), which let me automate certain functions using Apple’s Shortcuts. For instance, every night at a certain time, the alarm arms itself, then in the morning it disarms itself shortly before we all wake up. It also disarms the alarm automatically when you put in the code on the front door lock. It’s all very handy and has worked extremely well.&lt;/p&gt;
&lt;p&gt;Around the same time, Google announced that they are essentially killing off support for 3rd party smart displays. There have been some pretty good ones over the years, and I was close to getting one a couple of times.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.theverge.com/2023/4/10/23676959/google-third-party-assistant-smart-displays-updates-bard&quot;&gt;Google cuts off third-party smart displays as Assistant support dwindles&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Its honestly a joke how often Google wildly shifts directions and kills off products, often ones that are very popular. None of these announcements are terribly surprising unfortunately, and they probably make financial sense for Google, but this just continues to feed the legitimate concerns about relying on Google for anything, particularly if it’s important.&lt;/p&gt;
&lt;p&gt;I really like a lot of what Google does. They are honestly the world leader in web based applications and services, and obviously Chrome is enormously successful. But how many times do customers need to be burned by Google before they don’t take them seriously as an option? I’m coming from the standpoint of being a big fan of most of what they do, but honestly at this point I am hesitant to invest more in to the ecosystem. I invested in Nest because I genuinely think they did (and still do for the most part) a better job than their competitors. But when the life of the product is so wildly unpredictable, it is extremely frustrating.&lt;/p&gt;
&lt;p&gt;I think this is a serious problem for Google, but I’m not sure how they are ever going to change. It’s a culture issue at this point, but honestly I think it is costing them probably billions of dollars on lost opportunities because they can’t be relied on. It’s not about the specific products, it’s about trust in the brand, and that’s going to be extremely difficult to regain.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/4/10/23676959/google-third-party-assistant-smart-displays-updates-bard&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/4/10/23676959/google-third-party-assistant-smart-displays-updates-bard&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2023/4/7/23673165/google-nest-dropcam-nest-secure-eol&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2023/4/7/23673165/google-nest-dropcam-nest-secure-eol&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Mastodon Verification with Hugo and Cloudflare Pages</title><link>https://barnes.tech/blog/mastodon-verification-updated</link><guid isPermaLink="true">https://barnes.tech/blog/mastodon-verification-updated</guid><description>Learn to verify your Hugo blog on Mastodon using Cloudflare Pages with a simple step-by-step guide.</description><pubDate>Sun, 02 Apr 2023 22:30:20 GMT</pubDate><content:encoded>&lt;p&gt;I run my blog on Cloudflare Pages, using Hugo to generate the specific static pages. I recently set up my own Mastodon server with my own domain as well, at barnes.social, and I wanted to verify my blogs website on my Mastodon account. It wasn’t immediately obvious to me how to do that, so I thought I would write out what I ended up needing to do.&lt;/p&gt;
&lt;p&gt;In a Hugo-generated website, you&apos;ll typically add the &lt;strong&gt;&lt;code&gt;rel=&quot;me&quot;&lt;/code&gt;&lt;/strong&gt; link to one of the template files in the &lt;strong&gt;&lt;code&gt;layouts&lt;/code&gt;&lt;/strong&gt; folder. The specific file depends on your site&apos;s structure and theme.&lt;/p&gt;
&lt;p&gt;Here are some common places to add the &lt;strong&gt;&lt;code&gt;rel=&quot;me&quot;&lt;/code&gt;&lt;/strong&gt; link:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;layouts/partials/header.html&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;layouts/partials/head.html&lt;/code&gt;&lt;/strong&gt;: Add the &lt;strong&gt;&lt;code&gt;rel=&quot;me&quot;&lt;/code&gt;&lt;/strong&gt; link in the header section, which will include it on every page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;layouts/partials/footer.html&lt;/code&gt;&lt;/strong&gt;: Add the &lt;code&gt;rel=&quot;me&quot;&lt;/code&gt; link in the footer section, which will include it on every page.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;layouts/partials/sidebar.html&lt;/code&gt;&lt;/strong&gt; or &lt;strong&gt;&lt;code&gt;layouts/partials/navigation.html&lt;/code&gt;&lt;/strong&gt;: Add the &lt;code&gt;rel=&quot;me&quot;&lt;/code&gt; link to a sidebar or navigation menu, which will typically include it on every page.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;If you are using a theme, you may need to copy the relevant file from the theme&apos;s &lt;strong&gt;&lt;code&gt;layouts&lt;/code&gt;&lt;/strong&gt; folder (for instance., &lt;strong&gt;&lt;code&gt;themes/your-theme/layouts/partials/header.html&lt;/code&gt;&lt;/strong&gt;) to your site&apos;s &lt;strong&gt;&lt;code&gt;layouts&lt;/code&gt;&lt;/strong&gt; folder (for instance, &lt;strong&gt;&lt;code&gt;layouts/partials/header.html&lt;/code&gt;&lt;/strong&gt;) before making the changes. This will ensure you&apos;re modifying your site&apos;s layout, not the theme&apos;s default layout.&lt;/p&gt;
&lt;p&gt;Once you&apos;ve located the appropriate file, add the &lt;strong&gt;&lt;code&gt;rel=&quot;me&quot;&lt;/code&gt;&lt;/strong&gt; link, which can be found on your Mastodon account. It will look similar to this:&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-html&quot;&gt;&amp;#x3C;a href=&quot;https://your-mastodon-instance.example/@yourusername&quot; rel=&quot;me&quot;&gt;My Mastodon Profile&amp;#x3C;/a&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Replace &lt;strong&gt;&lt;code&gt;your-mastodon-instance.example&lt;/code&gt;&lt;/strong&gt; with your Mastodon instance&apos;s domain, and &lt;strong&gt;&lt;code&gt;@yourusername&lt;/code&gt;&lt;/strong&gt; with your Mastodon username.&lt;/p&gt;
&lt;p&gt;It can take a few minutes for the verification to happen, and unfortunately there’s no way (that I could find anyway) to manually tell your account or server to check now, however it seemed to take only a couple of minutes.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://your-mastodon-instance.example/@yourusername&quot;&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://your-mastodon-instance.example/@yourusername&quot;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Tailscale Apple Shortcuts</title><link>https://barnes.tech/blog/tailscale_shortcuts</link><guid isPermaLink="true">https://barnes.tech/blog/tailscale_shortcuts</guid><description>Explore Tailscale&apos;s new Apple Shortcuts for iOS and macOS, enhancing your VPN experience with automation.</description><pubDate>Thu, 26 Jan 2023 02:26:08 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/tailscale-logo.svg&quot; alt=&quot;Tailscale Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;ve written about Tailscale before, but it is a very cool product that creates a custom WireGuard VPN between whatever you need, and is a great tool.&lt;/p&gt;
&lt;p&gt;Yesterday they updated their app with some Apple Shortcuts, and wrote a great post about how you could potentially use them. Definitely worth checking out -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://tailscale.com/blog/ios-macos-shortcuts/&quot;&gt;Tailscale actions for iOS and macOS Shortcuts&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://tailscale.com/blog/ios-macos-shortcuts/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tailscale.com/blog/ios-macos-shortcuts/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Ivory</title><link>https://barnes.tech/blog/ivory</link><guid isPermaLink="true">https://barnes.tech/blog/ivory</guid><description>Discover the new Ivory app for Mastodon, enhancing your social media experience away from Twitter&apos;s drama.</description><pubDate>Thu, 26 Jan 2023 02:03:54 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/ivory.png&quot; alt=&quot;Ivory for Mastodon Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I don&apos;t have the energy to do a play by play of all of the Twitter drama, but last week they decided to officially make it a rule to disallow 3rd party apps that imitate Twitter&apos;s own functionality. While I understand the decision, in Twitter / Elon fashion, they did not communicate it, they just yanked the cord on everyone with no warning and over a week before there was any explanation.&lt;/p&gt;
&lt;p&gt;Regardless, I can&apos;t stand using the actual Twitter app, and I&apos;m just getting tired of all the bullshit going on over there.&lt;/p&gt;
&lt;p&gt;I started using Mastodon a couple of months ago, and I will say the app that you use to access Mastodon makes a &lt;em&gt;big&lt;/em&gt; difference in the experience. Luckily the team at Tapbots that made Tweetbot, my preferred Twitter client, have been working on a Mastodon client, which just came out yesterday. If you&apos;ve wanted to give Mastodon a try, I&apos;d highly recommend checking out this app.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://tapbots.com/ivory/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://tapbots.com/ivory/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Mastodon Tipping Point</title><link>https://barnes.tech/blog/mastodon-tipping-point</link><guid isPermaLink="true">https://barnes.tech/blog/mastodon-tipping-point</guid><description>Exploring the growing appeal of Mastodon as a social media platform compared to Twitter.</description><pubDate>Wed, 28 Dec 2022 05:03:30 GMT</pubDate><content:encoded>&lt;p&gt;Today was a bit of a personal tipping point for my personal use of Mastodon. I have always been a bit of a timeline completionist, regardless the platform, which is why I use apps like Tweetbot and now Ivory (currently in alpha testing).&lt;/p&gt;
&lt;p&gt;Today was the first time where I opened up Twitter and Mastodon, and actually had more content to read through in Mastodon than Twitter.&lt;/p&gt;
&lt;p&gt;Regardless of people&apos;s thoughts on whether Mastodon is good or not (there are plenty of opinions both ways), it all doesn&apos;t really matter too much if no one ends up using it. For me, I really liked Google Plus when that came out back in the day. I thought they had a lot of fantastic ideas that were better, and still are better, than any other social media out there today. But it didn&apos;t particularly matter because people never used it, so it never gained traction anywhere.&lt;/p&gt;
&lt;p&gt;Mastodon is a little different. The nature of the way it&apos;s built probably means that it will never go away, but if people don&apos;t use it, it may stall out and never really grow in to anything.&lt;/p&gt;
&lt;p&gt;So far I really like it. A good 3rd party app dramatically improves the experience in my opinion, so I hope more of them become available more widely soon.&lt;/p&gt;
&lt;p&gt;Who knows if it means anything, but for my timelines, I thought it was quite interesting.&lt;/p&gt;</content:encoded></item><item><title>Mastodon Verification - ARCHIVE</title><link>https://barnes.tech/blog/mastodon-verification</link><guid isPermaLink="true">https://barnes.tech/blog/mastodon-verification</guid><description>Learn how to verify your Mastodon account using Hugo and Cloudflare Pages with this practical guide.</description><pubDate>Wed, 28 Dec 2022 00:39:35 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/chatgpt-1.png&quot; alt=&quot;Chat GPT screenshot&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I have recently started to use Mastodon more than Twitter. I&apos;m sure I don&apos;t need to explain why.&lt;/p&gt;
&lt;p&gt;I will post later some more in depth thoughts about Mastodon, but in general I am enjoying it. One nice thing Mastodon does is that it allows you to add your own personal websites to your bio, and then provides a method of verifying that you are the owner of that site. For instance, my Mastodon account has https://barnes.tech and is now verified that I&apos;m the owner. I didn&apos;t need to pay anything for any check marks, and unlike Twitter, it&apos;s actually verifying something about me and a domain I own!&lt;/p&gt;
&lt;p&gt;Typically this is extremely easy to do. Mastodon provides a small link that you can provide in the header of your site and whatever Mastodon server you on will be able to reach out and verify ownership based on that. However, my blog is built as a static website with &lt;a href=&quot;https://gohugo.io/&quot;&gt;Hugo&lt;/a&gt; on top of &lt;a href=&quot;https://pages.cloudflare.com/&quot;&gt;Cloudflare Pages&lt;/a&gt;. I will do a more in-depth about how I do this in the future, but it essentially runs serverlessly on Cloudflare&apos;s infrastructure as a static website, so it loads SUPER fast. I am able to build my blogs in simple markdown files in a &quot;blog&quot; folder, and then as soon as I commit the changes to GitHub, the whole website rebuilds itself (and only takes about 10 seconds). It&apos;s really cool.&lt;/p&gt;
&lt;p&gt;The only problem is I wasn&apos;t sure how to add the link to verify my page with how Hugo templates work. This is probably something pretty easy for someone who really understands all the plumbing going on in Hugo, but that person is not me.&lt;/p&gt;
&lt;p&gt;I stared by doing what everyone does, and Googling it. The results were not great. There are lots of unrelated articles about how to verify a Mastodon server with your website (but does not include Hugo sites) and some results about Hugo sites (without any information about verifying them with Hugo). Not super helpful.&lt;/p&gt;
&lt;p&gt;I&apos;ve been doing what every nerd on the internet has been doing for the last few weeks, playing with OpenAI&apos;s Chat bot, and I&apos;ve been kind of blown away by how good it can be. Sure, at times it&apos;s laughably wrong, and countless people on the internet have written about how inaccurate it can be with some of it&apos;s answers, however everyone is writing this because of how creepy good it is most of the time. It&apos;s almost like they are bargaining with themselves by telling themselves that this isn&apos;t a huge leap forward in AI. Again, I will write another post to go in to more detail on my thoughts on this, as well as some links from both sides of the argument, but it&apos;s pretty indisputable how good it can be a lot of the time.&lt;/p&gt;
&lt;p&gt;I didn&apos;t think it would be a huge amount of help with this, but as I&apos;ve been doing a lot lately, I figured I&apos;d ask and if nothing else, I&apos;d maybe get a laugh out of it&apos;s response. But it actually completely answered me, and correctly, and now my site is verified on Mastodon. Here&apos;s how the exchange went -&lt;/p&gt;
&lt;p&gt;Wow. Well that&apos;s a lot closer to what I was looking for, but not quite there. It gives me a good detailed explanation of how to verify the site in general, with a better answer than I get from Googling anything, but I need to know how to do this specifically in Hugo.&lt;/p&gt;
&lt;p&gt;Well there you go. That gets super specific about Hugo. But let me play dumb for a minute. I found the &lt;code&gt;head&lt;/code&gt; file that this was referring to, and I assume that&apos;s where I add this link, but let&apos;s keep going down this rabbit hole.&lt;/p&gt;
&lt;p&gt;Well there you have it. That&apos;s exactly where it is. I went and added the link to my &lt;code&gt;head&lt;/code&gt; file, and within seconds, I was verified.&lt;/p&gt;
&lt;p&gt;Super cool, but a little freaky.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/mastodon-verification-updated/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/mastodon-verification-updated/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gohugo.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://gohugo.io/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://pages.cloudflare.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://pages.cloudflare.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Free Speech</title><link>https://barnes.tech/blog/free-speech</link><guid isPermaLink="true">https://barnes.tech/blog/free-speech</guid><description>Explore the complexities of free speech in social media and its weaponization in today&apos;s discourse.</description><pubDate>Mon, 19 Dec 2022 04:01:30 GMT</pubDate><content:encoded>&lt;p&gt;I found this substack article today that I thought was exceptionally well written about Free Speech. This is an increasingly weaponized term, which is relevant given the social media shitstorm going on right now.&lt;/p&gt;
&lt;p&gt;I&apos;m inferring this, but he seems to take a slightly more optimistic take than I would and seems to believe that the main problem is that people don&apos;t quite understand the term Free Speech, and almost seems to think it&apos;s just a misunderstanding that is the problem. While I agree there is a big misunderstanding, I believe the weaponization of the term is entirely purposeful and is just a way to manipulate people into being angry so they are more easily manipulated. Maybe he agrees, and that just wasn&apos;t the point of this article.&lt;/p&gt;
&lt;p&gt;Regardless, I highly recommend giving this a read.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://popehat.substack.com/p/in-defense-of-free-speech-pedantry&quot;&gt;In Defense of Free Speech Pedantry&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://popehat.substack.com/p/in-defense-of-free-speech-pedantry&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://popehat.substack.com/p/in-defense-of-free-speech-pedantry&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Social Media - Part 2</title><link>https://barnes.tech/blog/social-media-2</link><guid isPermaLink="true">https://barnes.tech/blog/social-media-2</guid><description>A critical look at Twitter&apos;s recent policies and the shift towards Mastodon as an alternative social media platform.</description><pubDate>Mon, 19 Dec 2022 03:19:30 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/twitter-support.png&quot; alt=&quot;Tweet from twitter support&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I feel it&apos;s time to follow up on my other post about social media. I laid out some of my thoughts in my &lt;a href=&quot;https://barnes.tech/blog/socialmedia/&quot;&gt;last post&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It would take a lot of time to go through all of the specifics of how Twitter has continued to take an almost unbelievable nosedive, but there are a couple of things worth mentioning.&lt;/p&gt;
&lt;p&gt;First, Elon decided to start banning all sorts of reporters who reported on him, claiming that they were doxing him. Clearly, this was just his increasingly fragile ego reacting to a situation that personally irritated him. The sheer hypocrisy of what he said about free speech and what he&apos;s doing is somewhat sickening, but &lt;a href=&quot;https://www.techdirt.com/2022/12/16/elon-tries-badly-to-defend-the-banning-of-journalists-as-twitter-starts-blocking-links-mentions-of-mastodon/&quot;&gt;Tech Dirt did a much better job going into the details of what happened and why it&apos;s bad than I could&lt;/a&gt;. I do want to note, though, that if Twitter had actually ever put as much effort into protecting marginalized people as it has in the last week protecting &lt;a href=&quot;https://www.washingtonpost.com/technology/2020/11/17/space-karen-elon-musk/&quot;&gt;Space Karen&apos;s&lt;/a&gt; Twitter feed, it would be a far safer and happier platform.&lt;/p&gt;
&lt;p&gt;At the time, and as mentioned in the Tech Dirt article, it seemed that they were starting to flag Mastodon links as &quot;Malicious&quot;. Well, as of today, it is Twitter&apos;s &quot;official policy&quot; *&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We recognize that many of our users are active on other social media platforms. However, we will no longer allow free promotion of certain social media platforms on Twitter.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;— Twitter Support (@TwitterSupport) &lt;a href=&quot;https://twitter.com/TwitterSupport/status/1604531261791522817?ref_src=twsrc%5Etfw&quot;&gt;December 18, 2022&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Here&apos;s a screenshot just in case the tweet disappears.&lt;/p&gt;
&lt;p&gt;I have not decided what I am personally going to do yet, but I am not ok supporting Twitter as a platform anymore. I also don&apos;t know exactly what that means. I for sure will not participate in any of the advertising, and although I didn&apos;t post a ton historically, I don&apos;t particularly want to feed the content machine in any way either. I will likely just let my account sit, as is, and just stop using it.&lt;/p&gt;
&lt;p&gt;I&apos;m under no illusion that me participating or not participating makes any difference at all to these platforms, but it&apos;s also pretty much the only thing I can do.&lt;/p&gt;
&lt;p&gt;I&apos;m trying out Mastodon right now. I may spin up my own server just to see what it&apos;s like, and to mess around with it more. The Mastodon clients are not terribly polished right now, but that&apos;s ok. It feels like Twitter from years ago where there is a sense of optimism and even a small amount of excitement. Bonus that it&apos;s not run by a want-to-be fascist.&lt;/p&gt;
&lt;p&gt;If you feel so inclined, my main account is @robby@barnes.social. I will update this post if I set up my own server and change that name.&lt;/p&gt;
&lt;p&gt;Updated Mastodon link since I moved servers&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/socialmedia/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/socialmedia/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://twitter.com/TwitterSupport/status/1604531261791522817?ref_src=twsrc%5Etfw&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://twitter.com/TwitterSupport/status/1604531261791522817?ref_src=twsrc%5Etfw&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.techdirt.com/2022/12/16/elon-tries-badly-to-defend-the-banning-of-journalists-as-twitter-starts-blocking-links-mentions-of-mastodon/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.techdirt.com/2022/12/16/elon-tries-badly-to-defend-the-banning-of-journalists-as-twitter-starts-blocking-links-mentions-of-mastodon/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.washingtonpost.com/technology/2020/11/17/space-karen-elon-musk/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.washingtonpost.com/technology/2020/11/17/space-karen-elon-musk/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple and Advertising</title><link>https://barnes.tech/blog/apple-ads</link><guid isPermaLink="true">https://barnes.tech/blog/apple-ads</guid><description>Explore Apple&apos;s increasing ad presence and its impact on user experience and privacy.</description><pubDate>Sat, 05 Nov 2022 22:13:33 GMT</pubDate><content:encoded>&lt;p&gt;As many people have noticed, and many people have written about, Apple has recently started fairly dramatically increasing the number of advertisements in their products. Apple has had advertisements in the App Store for a long time, but they initially were fairly subtle. They focused initially on high-quality editorial content where a team at Apple would review high-quality apps and recommend them, primarily in the “Today” view. Over the last couple of years, Apple has been adding more paid ad slots, then started sending push notifications for their own “services”, and finally, in the last few weeks have dramatically increased the number of ads across the app store.&lt;/p&gt;
&lt;p&gt;To me, this dramatically cheapens and worsens the experiences, and frankly, I think this presents some problems for Apple as a brand and company.&lt;/p&gt;
&lt;p&gt;Several sites had reported over the last year, in particular that Apple was posting more jobs about advertising and that they were going to start pushing into the space more and more. I was hopeful that this was primarily an effort in the TV+ space, particularly as they start to get major sports packages. I think it totally makes sense to have ads in those spaces, just like linear TV offers (though given the option, I will &lt;em&gt;always&lt;/em&gt; pay more to have no ads), but it appears that it won’t just be limited to TV.&lt;/p&gt;
&lt;p&gt;What’s wrong with ads? Well, lots of things. First, I feel like it just cheapens the overall experience and is bad for the brand. I think one of the worst things that has happened to tech in the last couple of decades, and to the internet in general, is the explosion of ad-driven “free to use” products. It has led to many people thinking the products are free and don’t really think about how things are being paid for.&lt;/p&gt;
&lt;p&gt;Facebook, Twitter, Google, and even Amazon more recently vacuum up everything they possibly can about users, so they can build profiles about you and sell more expensive advertising targeted at you. People were given free products that they grow to love (or become addicted to) then after people are used to it, these companies slowly turn on the advertising spigot, then it doesn’t take long before they are crammed into every corner of your life.&lt;/p&gt;
&lt;p&gt;It shouldn’t be surprising, but companies were purposely misleading to get people on their platforms. Time after time, we are “sold” the idea that we are customers of a product like a social media site and that ads are there to just help keep the lights on. Sometimes they even tell you that you should like ads because they are “personalized” for you. They really mean targeted, and they can do that essentially by essentially spying on everything you do in as many ways as possible to try to make their “profile” of you more accurate, AKA more valuable. The customer is someone who pays for a product, so you aren’t the customer for social media or other “free” online services, the advertisers are. You, the user of the site, are actually the product to be sold, and you essentially have no choice.&lt;/p&gt;
&lt;p&gt;Apple has always sold itself as different from that. Apple products are expensive, partially because they are premium products, and partially to make a point clear, &lt;em&gt;you&lt;/em&gt; are buying a product, and &lt;em&gt;you&lt;/em&gt; are the customer of that product. It’s clear where Apple is making its money, and its priority has been almost always the customer, where its money is directly coming from.&lt;/p&gt;
&lt;p&gt;Apple has also been pushing itself as the privacy company. You, the actual customer, should have a choice in your own privacy. Facebook, Amazon, Google, etc. will do everything in their power to track everything about you, and Apple was saying very clearly - “You should have a choice in this, and if you don’t want to be tracked, you should be able to make that choice”. The more choice Apple has given people, the more they choose to not be tracked. You can see this hammering the revenue of companies that rely on tracking (surveillance) revenue.&lt;/p&gt;
&lt;p&gt;Several companies and lawmakers started talking about how this seemed anti-competitive, which I previously disagreed with since they were only giving you the choice, in some cases, not to be tracked across apps. I absolutely think everyone should have the right to choose whether they are or not tracked on the internet. But then Apple started pushing more into advertising, and have repeatedly explained that they see it as different when it’s “first party” data instead of “third party” data. That’s when it started getting gross to me.&lt;/p&gt;
&lt;p&gt;This is the second problem to me. I am certainly no lawyer, but I don’t see how it possibly couldn’t be considered anti-competitive when you make a move to purposely knee-cap other companies’ advertising businesses, regardless of the reason, then immediately ramp up your own advertising, often in the exact same space.&lt;/p&gt;
&lt;p&gt;On top of that, even if there was nothing wrong with any of this that Apple is doing, they are also just bad at it. When Apple launched their more aggressive ads recently, many people noted major issues. If you searched for an app to help with gambling addiction, you would be suggested gambling ads. If you searched for marriage counseling apps it would suggest dating apps, or even thinly veiled adult chat apps. This in addition to the fact that these garbage apps were showing up for &lt;a href=&quot;https://www.theverge.com/2022/10/26/23424316/app-store-gambling-ads-listings-apple-developers&quot;&gt;other developers who just didn’t want these kinds of ads showing up next to their app&lt;/a&gt;. More info &lt;a href=&quot;https://www.fastcompany.com/90804816/will-apple-advertising-gamble-hurt-its-brand&quot;&gt;here, from Fast Company&lt;/a&gt;. It’s (historically at least) rare for Apple to be this tone-deaf with a product.&lt;/p&gt;
&lt;p&gt;I don’t think it’s a stretch to think Apple might be bad at ads because it tries to preserve privacy. I often wonder if that is why Siri is so bad compared to Google Home and Amazon Alexa or how Apple Photos is so much worse at face and object recognition compared to Google Photos, but if that’s the case, they will either always be bad at ads (and shouldn’t do them) or they will slowly start compromising on privacy. Frankly, either way, to me it dramatically cheapens the brand.&lt;/p&gt;
&lt;p&gt;Not terribly surprising, but do developers see any money from the ads placed next to their app? Nope. Is anything from apple getting cheaper because of this? &lt;a href=&quot;https://daringfireball.net/linked/2022/10/24/apple-subscription-price-increases&quot;&gt;Actually, they are getting more expensive at the same time&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;None of this is going to immediately change my purchasing habits with Apple products, but it has definitely put a really sour taste in my mouth.&lt;/p&gt;
&lt;p&gt;Coupled with the &lt;a href=&quot;https://sixcolors.com/post/2022/11/up-next-disappointment/&quot;&gt;recent change on TV,&lt;/a&gt; Apple has been taking a turn for the worse lately in services. I hope they change course but companies rarely make moves to turn down huge gobs of money. Hopefully an antitrust lawsuit will make them back down on this.&lt;/p&gt;
&lt;p&gt;Here are some other articles I read around the same topic you should check out -
&lt;a href=&quot;https://www.theverge.com/2022/10/25/23423637/apple-app-store-tax-boosted-social-media-posts&quot;&gt;Apple App Store tax is a direct shot at Meta - The Verge&lt;/a&gt;
&lt;a href=&quot;https://www.wired.com/story/apple-is-an-ad-company-now/&quot;&gt;Apple is an ad company now - Wired&lt;/a&gt;
&lt;a href=&quot;https://daringfireball.net/2022/10/app_store_ads_gone_wild&quot;&gt;App Store ads gone wild - Daring Fireball&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/2022/10/app_store_ads_gone_wild&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/2022/10/app_store_ads_gone_wild&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://daringfireball.net/linked/2022/10/24/apple-subscription-price-increases&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://daringfireball.net/linked/2022/10/24/apple-subscription-price-increases&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sixcolors.com/post/2022/11/up-next-disappointment/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sixcolors.com/post/2022/11/up-next-disappointment/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.fastcompany.com/90804816/will-apple-advertising-gamble-hurt-its-brand&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.fastcompany.com/90804816/will-apple-advertising-gamble-hurt-its-brand&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2022/10/25/23423637/apple-app-store-tax-boosted-social-media-posts&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2022/10/25/23423637/apple-app-store-tax-boosted-social-media-posts&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2022/10/26/23424316/app-store-gambling-ads-listings-apple-developers&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2022/10/26/23424316/app-store-gambling-ads-listings-apple-developers&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.wired.com/story/apple-is-an-ad-company-now/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.wired.com/story/apple-is-an-ad-company-now/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Platforms Continued</title><link>https://barnes.tech/blog/google-platforms-continued</link><guid isPermaLink="true">https://barnes.tech/blog/google-platforms-continued</guid><description>Analysis comparing Google and Amazon&apos;s operational practices and culture over the years.</description><pubDate>Mon, 10 Oct 2022 22:53:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;One more comment on Google&apos;s platform issues, this post is 11 years old, but it&apos;s depressing how accurate it still is -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://gist.github.com/chitchcock/1281611#file-20111011_steveyeggegoogleplatformrant-md&quot;&gt;Direct Link&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In case the link ever goes away, here is the original post -&lt;/p&gt;
&lt;h1&gt;Stevey&apos;s Google Platforms Rant&lt;/h1&gt;
&lt;p&gt;I was at Amazon for about six and a half years, and now I&apos;ve been at Google for that long. One thing that struck me immediately about the two companies -- an impression that has been reinforced almost daily -- is that Amazon does everything wrong, and Google does everything right. Sure, it&apos;s a sweeping generalization, but a surprisingly accurate one. It&apos;s pretty crazy. There are probably a hundred or even two hundred different ways you can compare the two companies, and Google is superior in all but three of them, if I recall correctly. I actually did a spreadsheet at one point but Legal wouldn&apos;t let me show it to anyone, even though recruiting loved it.&lt;/p&gt;
&lt;p&gt;I mean, just to give you a very brief taste: Amazon&apos;s recruiting process is fundamentally flawed by having teams hire for themselves, so their hiring bar is incredibly inconsistent across teams, despite various efforts they&apos;ve made to level it out. And their operations are a mess; they don&apos;t really have SREs and they make engineers pretty much do everything, which leaves almost no time for coding - though again this varies by group, so it&apos;s luck of the draw. They don&apos;t give a single shit about charity or helping the needy or community contributions or anything like that. Never comes up there, except maybe to laugh about it. Their facilities are dirt-smeared cube farms without a dime spent on decor or common meeting areas. Their pay and benefits suck, although much less so lately due to local competition from Google and Facebook. But they don&apos;t have any of our perks or extras -- they just try to match the offer-letter numbers, and that&apos;s the end of it. Their code base is a disaster, with no engineering standards whatsoever except what individual teams choose to put in place.&lt;/p&gt;
&lt;p&gt;To be fair, they do have a nice versioned-library system that we really ought to emulate, and a nice publish-subscribe system that we also have no equivalent for. But for the most part they just have a bunch of crappy tools that read and write state machine information into relational databases. We wouldn&apos;t take most of it even if it were free.&lt;/p&gt;
&lt;p&gt;I think the pubsub system and their library-shelf system were two out of the grand total of three things Amazon does better than google.&lt;/p&gt;
&lt;p&gt;I guess you could make an argument that their bias for launching early and iterating like mad is also something they do well, but you can argue it either way. They prioritize launching early over everything else, including retention and engineering discipline and a bunch of other stuff that turns out to matter in the long run. So even though it&apos;s given them some competitive advantages in the marketplace, it&apos;s created enough other problems to make it something less than a slam-dunk.&lt;/p&gt;
&lt;p&gt;But there&apos;s one thing they do really really well that pretty much makes up for ALL of their political, philosophical and technical screw-ups.&lt;/p&gt;
&lt;p&gt;Jeff Bezos is an infamous micro-manager. He micro-manages every single pixel of Amazon&apos;s retail site. He hired Larry Tesler, Apple&apos;s Chief Scientist and probably the very most famous and respected human-computer interaction expert in the entire world, and then ignored every goddamn thing Larry said for three years until Larry finally -- wisely -- left the company. Larry would do these big usability studies and demonstrate beyond any shred of doubt that nobody can understand that frigging website, but Bezos just couldn&apos;t let go of those pixels, all those millions of semantics-packed pixels on the landing page. They were like millions of his own precious children. So they&apos;re all still there, and Larry is not.&lt;/p&gt;
&lt;p&gt;Micro-managing isn&apos;t that third thing that Amazon does better than us, by the way. I mean, yeah, they micro-manage really well, but I wouldn&apos;t list it as a strength or anything. I&apos;m just trying to set the context here, to help you understand what happened. We&apos;re talking about a guy who in all seriousness has said on many public occasions that people should be paying him to work at Amazon. He hands out little yellow stickies with his name on them, reminding people &quot;who runs the company&quot; when they disagree with him. The guy is a regular... well, Steve Jobs, I guess. Except without the fashion or design sense. Bezos is super smart; don&apos;t get me wrong. He just makes ordinary control freaks look like stoned hippies.&lt;/p&gt;
&lt;p&gt;So one day Jeff Bezos issued a mandate. He&apos;s doing that all the time, of course, and people scramble like ants being pounded with a rubber mallet whenever it happens. But on one occasion -- back around 2002 I think, plus or minus a year -- he issued a mandate that was so out there, so huge and eye-bulgingly ponderous, that it made all of his other mandates look like unsolicited peer bonuses.&lt;/p&gt;
&lt;p&gt;His Big Mandate went something along these lines:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;All teams will henceforth expose their data and functionality through service interfaces.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Teams must communicate with each other through these interfaces.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;There will be no other form of interprocess communication allowed: no direct linking, no direct reads of another team&apos;s data store, no shared-memory model, no back-doors whatsoever. The only communication allowed is via service interface calls over the network.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;It doesn&apos;t matter what technology they use. HTTP, Corba, Pubsub, custom protocols -- doesn&apos;t matter. Bezos doesn&apos;t care.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;All service interfaces, without exception, must be designed from the ground up to be externalizable. That is to say, the team must plan and design to be able to expose the interface to developers in the outside world. No exceptions.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Anyone who doesn&apos;t do this will be fired.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Thank you; have a nice day!&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Ha, ha! You 150-odd ex-Amazon folks here will of course realize immediately that #7 was a little joke I threw in, because Bezos most definitely does not give a shit about your day.&lt;/p&gt;
&lt;p&gt;#6, however, was quite real, so people went to work. Bezos assigned a couple of Chief Bulldogs to oversee the effort and ensure forward progress, headed up by Uber-Chief Bear Bulldog Rick Dalzell. Rick is an ex-Armgy Ranger, West Point Academy graduate, ex-boxer, ex-Chief Torturer slash CIO at Wal*Mart, and is a big genial scary man who used the word &quot;hardened interface&quot; a lot. Rick was a walking, talking hardened interface himself, so needless to say, everyone made LOTS of forward progress and made sure Rick knew about it.&lt;/p&gt;
&lt;p&gt;Over the next couple of years, Amazon transformed internally into a service-oriented architecture. They learned a tremendous amount while effecting this transformation. There was lots of existing documentation and lore about SOAs, but at Amazon&apos;s vast scale it was about as useful as telling Indiana Jones to look both ways before crossing the street. Amazon&apos;s dev staff made a lot of discoveries along the way. A teeny tiny sampling of these discoveries included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;pager escalation gets way harder, because a ticket might bounce through 20 service calls before the real owner is identified. If each bounce goes through a team with a 15-minute response time, it can be hours before the right team finally finds out, unless you build a lot of scaffolding and metrics and reporting.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;every single one of your peer teams suddenly becomes a potential DOS attacker. Nobody can make any real forward progress until very serious quotas and throttling are put in place in every single service.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;monitoring and QA are the same thing. You&apos;d never think so until you try doing a big SOA. But when your service says &quot;oh yes, I&apos;m fine&quot;, it may well be the case that the only thing still functioning in the server is the little component that knows how to say &quot;I&apos;m fine, roger roger, over and out&quot; in a cheery droid voice. In order to tell whether the service is actually responding, you have to make individual calls. The problem continues recursively until your monitoring is doing comprehensive semantics checking of your entire range of services and data, at which point it&apos;s indistinguishable from automated QA. So they&apos;re a continuum.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;if you have hundreds of services, and your code MUST communicate with other groups&apos; code via these services, then you won&apos;t be able to find any of them without a service-discovery mechanism. And you can&apos;t have that without a service registration mechanism, which itself is another service. So Amazon has a universal service registry where you can find out reflectively (programmatically) about every service, what its APIs are, and also whether it is currently up, and where.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;debugging problems with someone else&apos;s code gets a LOT harder, and is basically impossible unless there is a universal standard way to run every service in a debuggable sandbox.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;That&apos;s just a very small sample. There are dozens, maybe hundreds of individual learnings like these that Amazon had to discover organically. There were a lot of wacky ones around externalizing services, but not as many as you might think. Organizing into services taught teams not to trust each other in most of the same ways they&apos;re not supposed to trust external developers.&lt;/p&gt;
&lt;p&gt;This effort was still underway when I left to join Google in mid-2005, but it was pretty far advanced. From the time Bezos issued his edict through the time I left, Amazon had transformed culturally into a company that thinks about everything in a services-first fashion. It is now fundamental to how they approach all designs, including internal designs for stuff that might never see the light of day externally.&lt;/p&gt;
&lt;p&gt;At this point they don&apos;t even do it out of fear of being fired. I mean, they&apos;re still afraid of that; it&apos;s pretty much part of daily life there, working for the Dread Pirate Bezos and all. But they do services because they&apos;ve come to understand that it&apos;s the Right Thing. There are without question pros and cons to the SOA approach, and some of the cons are pretty long. But overall it&apos;s the right thing because SOA-driven design enables Platforms.&lt;/p&gt;
&lt;p&gt;That&apos;s what Bezos was up to with his edict, of course. He didn&apos;t (and doesn&apos;t) care even a tiny bit about the well-being of the teams, nor about what technologies they use, nor in fact any detail whatsoever about how they go about their business unless they happen to be screwing up. But Bezos realized long before the vast majority of Amazonians that Amazon needs to be a platform.&lt;/p&gt;
&lt;p&gt;You wouldn&apos;t really think that an online bookstore needs to be an extensible, programmable platform. Would you?&lt;/p&gt;
&lt;p&gt;Well, the first big thing Bezos realized is that the infrastructure they&apos;d built for selling and shipping books and sundry could be transformed an excellent repurposable computing platform. So now they have the Amazon Elastic Compute Cloud, and the Amazon Elastic MapReduce, and the Amazon Relational Database Service, and a whole passel&apos; o&apos; other services browsable at aws.amazon.com. These services host the backends for some pretty successful companies, reddit being my personal favorite of the bunch.&lt;/p&gt;
&lt;p&gt;The other big realization he had was that he can&apos;t always build the right thing. I think Larry Tesler might have struck some kind of chord in Bezos when he said his mom couldn&apos;t use the goddamn website. It&apos;s not even super clear whose mom he was talking about, and doesn&apos;t really matter, because nobody&apos;s mom can use the goddamn website. In fact I myself find the website disturbingly daunting, and I worked there for over half a decade. I&apos;ve just learned to kinda defocus my eyes and concentrate on the million or so pixels near the center of the page above the fold.&lt;/p&gt;
&lt;p&gt;I&apos;m not really sure how Bezos came to this realization -- the insight that he can&apos;t build one product and have it be right for everyone. But it doesn&apos;t matter, because he gets it. There&apos;s actually a formal name for this phenomenon. It&apos;s called Accessibility, and it&apos;s the most important thing in the computing world.&lt;/p&gt;
&lt;p&gt;The. Most. Important. Thing.&lt;/p&gt;
&lt;p&gt;If you&apos;re sorta thinking, &quot;huh? You mean like, blind and deaf people Accessibility?&quot; then you&apos;re not alone, because I&apos;ve come to understand that there are lots and LOTS of people just like you: people for whom this idea does not have the right Accessibility, so it hasn&apos;t been able to get through to you yet. It&apos;s not your fault for not understanding, any more than it would be your fault for being blind or deaf or motion-restricted or living with any other disability. When software -- or idea-ware for that matter -- fails to be accessible to anyone for any reason, it is the fault of the software or of the messaging of the idea. It is an Accessibility failure.&lt;/p&gt;
&lt;p&gt;Like anything else big and important in life, Accessibility has an evil twin who, jilted by the unbalanced affection displayed by their parents in their youth, has grown into an equally powerful Arch-Nemesis (yes, there&apos;s more than one nemesis to accessibility) named Security. And boy howdy are the two ever at odds.&lt;/p&gt;
&lt;p&gt;But I&apos;ll argue that Accessibility is actually more important than Security because dialing Accessibility to zero means you have no product at all, whereas dialing Security to zero can still get you a reasonably successful product such as the Playstation Network.&lt;/p&gt;
&lt;p&gt;So yeah. In case you hadn&apos;t noticed, I could actually write a book on this topic. A fat one, filled with amusing anecdotes about ants and rubber mallets at companies I&apos;ve worked at. But I will never get this little rant published, and you&apos;ll never get it read, unless I start to wrap up.&lt;/p&gt;
&lt;p&gt;That one last thing that Google doesn&apos;t do well is Platforms. We don&apos;t understand platforms. We don&apos;t &quot;get&quot; platforms. Some of you do, but you are the minority. This has become painfully clear to me over the past six years. I was kind of hoping that competitive pressure from Microsoft and Amazon and more recently Facebook would make us wake up collectively and start doing universal services. Not in some sort of ad-hoc, half-assed way, but in more or less the same way Amazon did it: all at once, for real, no cheating, and treating it as our top priority from now on.&lt;/p&gt;
&lt;p&gt;But no. No, it&apos;s like our tenth or eleventh priority. Or fifteenth, I don&apos;t know. It&apos;s pretty low. There are a few teams who treat the idea very seriously, but most teams either don&apos;t think about it all, ever, or only a small percentage of them think about it in a very small way.&lt;/p&gt;
&lt;p&gt;It&apos;s a big stretch even to get most teams to offer a stubby service to get programmatic access to their data and computations. Most of them think they&apos;re building products. And a stubby service is a pretty pathetic service. Go back and look at that partial list of learnings from Amazon, and tell me which ones Stubby gives you out of the box. As far as I&apos;m concerned, it&apos;s none of them. Stubby&apos;s great, but it&apos;s like parts when you need a car.&lt;/p&gt;
&lt;p&gt;A product is useless without a platform, or more precisely and accurately, a platform-less product will always be replaced by an equivalent platform-ized product.&lt;/p&gt;
&lt;p&gt;Google+ is a prime example of our complete failure to understand platforms from the very highest levels of executive leadership (hi Larry, Sergey, Eric, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We all don&apos;t get it. The Golden Rule of platforms is that you Eat Your Own Dogfood. The Google+ platform is a pathetic afterthought. We had no API at all at launch, and last I checked, we had one measly API call. One of the team members marched in and told me about it when they launched, and I asked: &quot;So is it the Stalker API?&quot; She got all glum and said &quot;Yeah.&quot; I mean, I was joking, but no... the only API call we offer is to get someone&apos;s stream. So I guess the joke was on me.&lt;/p&gt;
&lt;p&gt;Microsoft has known about the Dogfood rule for at least twenty years. It&apos;s been part of their culture for a whole generation now. You don&apos;t eat People Food and give your developers Dog Food. Doing that is simply robbing your long-term platform value for short-term successes. Platforms are all about long-term thinking.&lt;/p&gt;
&lt;p&gt;Google+ is a knee-jerk reaction, a study in short-term thinking, predicated on the incorrect notion that Facebook is successful because they built a great product. But that&apos;s not why they are successful. Facebook is successful because they built an entire constellation of products by allowing other people to do the work. So Facebook is different for everyone. Some people spend all their time on Mafia Wars. Some spend all their time on Farmville. There are hundreds or maybe thousands of different high-quality time sinks available, so there&apos;s something there for everyone.&lt;/p&gt;
&lt;p&gt;Our Google+ team took a look at the aftermarket and said: &quot;Gosh, it looks like we need some games. Let&apos;s go contract someone to, um, write some games for us.&quot; Do you begin to see how incredibly wrong that thinking is now? The problem is that we are trying to predict what people want and deliver it for them.&lt;/p&gt;
&lt;p&gt;You can&apos;t do that. Not really. Not reliably. There have been precious few people in the world, over the entire history of computing, who have been able to do it reliably. Steve Jobs was one of them. We don&apos;t have a Steve Jobs here. I&apos;m sorry, but we don&apos;t.&lt;/p&gt;
&lt;p&gt;Larry Tesler may have convinced Bezos that he was no Steve Jobs, but Bezos realized that he didn&apos;t need to be a Steve Jobs in order to provide everyone with the right products: interfaces and workflows that they liked and felt at ease with. He just needed to enable third-party developers to do it, and it would happen automatically.&lt;/p&gt;
&lt;p&gt;I apologize to those (many) of you for whom all this stuff I&apos;m saying is incredibly obvious, because yeah. It&apos;s incredibly frigging obvious. Except we&apos;re not doing it. We don&apos;t get Platforms, and we don&apos;t get Accessibility. The two are basically the same thing, because platforms solve accessibility. A platform is accessibility.&lt;/p&gt;
&lt;p&gt;So yeah, Microsoft gets it. And you know as well as I do how surprising that is, because they don&apos;t &quot;get&quot; much of anything, really. But they understand platforms as a purely accidental outgrowth of having started life in the business of providing platforms. So they have thirty-plus years of learning in this space. And if you go to msdn.com, and spend some time browsing, and you&apos;ve never seen it before, prepare to be amazed. Because it&apos;s staggeringly huge. They have thousands, and thousands, and THOUSANDS of API calls. They have a HUGE platform. Too big in fact, because they can&apos;t design for squat, but at least they&apos;re doing it.&lt;/p&gt;
&lt;p&gt;Amazon gets it. Amazon&apos;s AWS (aws.amazon.com) is incredible. Just go look at it. Click around. It&apos;s embarrassing. We don&apos;t have any of that stuff.&lt;/p&gt;
&lt;p&gt;Apple gets it, obviously. They&apos;ve made some fundamentally non-open choices, particularly around their mobile platform. But they understand accessibility and they understand the power of third-party development and they eat their dogfood. And you know what? They make pretty good dogfood. Their APIs are a hell of a lot cleaner than Microsoft&apos;s, and have been since time immemorial.&lt;/p&gt;
&lt;p&gt;Facebook gets it. That&apos;s what really worries me. That&apos;s what got me off my lazy butt to write this thing. I hate blogging. I hate... plussing, or whatever it&apos;s called when you do a massive rant in Google+ even though it&apos;s a terrible venue for it but you do it anyway because in the end you really do want Google to be successful. And I do! I mean, Facebook wants me there, and it&apos;d be pretty easy to just go. But Google is home, so I&apos;m insisting that we have this little family intervention, uncomfortable as it might be.&lt;/p&gt;
&lt;p&gt;After you&apos;ve marveled at the platform offerings of Microsoft and Amazon, and Facebook I guess (I didn&apos;t look because I didn&apos;t want to get too depressed), head over to developers.google.com and browse a little. Pretty big difference, eh? It&apos;s like what your fifth-grade nephew might mock up if he were doing an assignment to demonstrate what a big powerful platform company might be building if all they had, resource-wise, was one fifth grader.&lt;/p&gt;
&lt;p&gt;Please don&apos;t get me wrong here -- I know for a fact that the dev-rel team has had to FIGHT to get even this much available externally. They&apos;re kicking ass as far as I&apos;m concerned, because they DO get platforms, and they are struggling heroically to try to create one in an environment that is at best platform-apathetic, and at worst often openly hostile to the idea.&lt;/p&gt;
&lt;p&gt;I&apos;m just frankly describing what developers.google.com looks like to an outsider. It looks childish. Where&apos;s the Maps APIs in there for Christ&apos;s sake? Some of the things in there are labs projects. And the APIs for everything I clicked were... they were paltry. They were obviously dog food. Not even good organic stuff. Compared to our internal APIs it&apos;s all snouts and horse hooves.&lt;/p&gt;
&lt;p&gt;And also don&apos;t get me wrong about Google+. They&apos;re far from the only offenders. This is a cultural thing. What we have going on internally is basically a war, with the underdog minority Platformers fighting a more or less losing battle against the Mighty Funded Confident Producters.&lt;/p&gt;
&lt;p&gt;Any teams that have successfully internalized the notion that they should be externally programmable platforms from the ground up are underdogs -- Maps and Docs come to mind, and I know GMail is making overtures in that direction. But it&apos;s hard for them to get funding for it because it&apos;s not part of our culture. Maestro&apos;s funding is a feeble thing compared to the gargantuan Microsoft Office programming platform: it&apos;s a fluffy rabbit versus a T-Rex. The Docs team knows they&apos;ll never be competitive with Office until they can match its scripting facilities, but they&apos;re not getting any resource love. I mean, I assume they&apos;re not, given that Apps Script only works in Spreadsheet right now, and it doesn&apos;t even have keyboard shortcuts as part of its API. That team looks pretty unloved to me.&lt;/p&gt;
&lt;p&gt;Ironically enough, Wave was a great platform, may they rest in peace. But making something a platform is not going to make you an instant success. A platform needs a killer app. Facebook -- that is, the stock service they offer with walls and friends and such -- is the killer app for the Facebook Platform. And it is a very serious mistake to conclude that the Facebook App could have been anywhere near as successful without the Facebook Platform.&lt;/p&gt;
&lt;p&gt;You know how people are always saying Google is arrogant? I&apos;m a Googler, so I get as irritated as you do when people say that. We&apos;re not arrogant, by and large. We&apos;re, like, 99% Arrogance-Free. I did start this post -- if you&apos;ll reach back into distant memory -- by describing Google as &quot;doing everything right&quot;. We do mean well, and for the most part when people say we&apos;re arrogant it&apos;s because we didn&apos;t hire them, or they&apos;re unhappy with our policies, or something along those lines. They&apos;re inferring arrogance because it makes them feel better.&lt;/p&gt;
&lt;p&gt;But when we take the stance that we know how to design the perfect product for everyone, and believe you me, I hear that a lot, then we&apos;re being fools. You can attribute it to arrogance, or naivete, or whatever -- it doesn&apos;t matter in the end, because it&apos;s foolishness. There IS no perfect product for everyone.&lt;/p&gt;
&lt;p&gt;And so we wind up with a browser that doesn&apos;t let you set the default font size. Talk about an affront to Accessibility. I mean, as I get older I&apos;m actually going blind. For real. I&apos;ve been nearsighted all my life, and once you hit 40 years old you stop being able to see things up close. So font selection becomes this life-or-death thing: it can lock you out of the product completely. But the Chrome team is flat-out arrogant here: they want to build a zero-configuration product, and they&apos;re quite brazen about it, and Fuck You if you&apos;re blind or deaf or whatever. Hit Ctrl-+ on every single page visit for the rest of your life.&lt;/p&gt;
&lt;p&gt;It&apos;s not just them. It&apos;s everyone. The problem is that we&apos;re a Product Company through and through. We built a successful product with broad appeal -- our search, that is -- and that wild success has biased us.&lt;/p&gt;
&lt;p&gt;Amazon was a product company too, so it took an out-of-band force to make Bezos understand the need for a platform. That force was their evaporating margins; he was cornered and had to think of a way out. But all he had was a bunch of engineers and all these computers... if only they could be monetized somehow... you can see how he arrived at AWS, in hindsight.&lt;/p&gt;
&lt;p&gt;Microsoft started out as a platform, so they&apos;ve just had lots of practice at it.&lt;/p&gt;
&lt;p&gt;Facebook, though: they worry me. I&apos;m no expert, but I&apos;m pretty sure they started off as a Product and they rode that success pretty far. So I&apos;m not sure exactly how they made the transition to a platform. It was a relatively long time ago, since they had to be a platform before (now very old) things like Mafia Wars could come along.&lt;/p&gt;
&lt;p&gt;Maybe they just looked at us and asked: &quot;How can we beat Google? What are they missing?&quot;&lt;/p&gt;
&lt;p&gt;The problem we face is pretty huge, because it will take a dramatic cultural change in order for us to start catching up. We don&apos;t do internal service-oriented platforms, and we just as equally don&apos;t do external ones. This means that the &quot;not getting it&quot; is endemic across the company: the PMs don&apos;t get it, the engineers don&apos;t get it, the product teams don&apos;t get it, nobody gets it. Even if individuals do, even if YOU do, it doesn&apos;t matter one bit unless we&apos;re treating it as an all-hands-on-deck emergency. We can&apos;t keep launching products and pretending we&apos;ll turn them into magical beautiful extensible platforms later. We&apos;ve tried that and it&apos;s not working.&lt;/p&gt;
&lt;p&gt;The Golden Rule of Platforms, &quot;Eat Your Own Dogfood&quot;, can be rephrased as &quot;Start with a Platform, and Then Use it for Everything.&quot; You can&apos;t just bolt it on later. Certainly not easily at any rate -- ask anyone who worked on platformizing MS Office. Or anyone who worked on platformizing Amazon. If you delay it, it&apos;ll be ten times as much work as just doing it correctly up front. You can&apos;t cheat. You can&apos;t have secret back doors for internal apps to get special priority access, not for ANY reason. You need to solve the hard problems up front.&lt;/p&gt;
&lt;p&gt;I&apos;m not saying it&apos;s too late for us, but the longer we wait, the closer we get to being Too Late.&lt;/p&gt;
&lt;p&gt;I honestly don&apos;t know how to wrap this up. I&apos;ve said pretty much everything I came here to say today. This post has been six years in the making. I&apos;m sorry if I wasn&apos;t gentle enough, or if I misrepresented some product or team or person, or if we&apos;re actually doing LOTS of platform stuff and it just so happens that I and everyone I ever talk to has just never heard about it. I&apos;m sorry.&lt;/p&gt;
&lt;p&gt;But we&apos;ve gotta start doing this right.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://plus.google.com/110981030061712822816/posts/WugKtXSp7We&quot;&gt;Original URL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://plus.google.com/110981030061712822816/posts/bwJ7kAELRnf&quot;&gt;Follow-up URL&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://news.ycombinator.com/item?id=3101876&quot;&gt;Hacker News URL&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://news.ycombinator.com/item?id=3101876&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;http://news.ycombinator.com/item?id=3101876&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://gist.github.com/chitchcock/1281611#file-20111011_steveyeggegoogleplatformrant-md&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://gist.github.com/chitchcock/1281611#file-20111011_steveyeggegoogleplatformrant-md&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://plus.google.com/110981030061712822816/posts/WugKtXSp7We&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://plus.google.com/110981030061712822816/posts/WugKtXSp7We&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://plus.google.com/110981030061712822816/posts/bwJ7kAELRnf&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://plus.google.com/110981030061712822816/posts/bwJ7kAELRnf&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>The Death of Stadia</title><link>https://barnes.tech/blog/google-stadia</link><guid isPermaLink="true">https://barnes.tech/blog/google-stadia</guid><description>Google ends Stadia, reflecting on its impact and the challenges faced in the gaming industry.</description><pubDate>Wed, 05 Oct 2022 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-stadia.svg&quot; alt=&quot;Google Stadia Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Most people knew this day was coming, however on September 29th, Google seemingly abruptly decided they were throwing in the towel on Stadia. With a blog post and a few emails, Google announced they were done with Stadia -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.google/products/stadia/message-on-stadia-streaming-strategy/&quot;&gt;Stadia - A message about Stadia and our long term streaming strategy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I wish I could say I was surprised, but honestly, Google is kind of a joke at this point with their attention span on products, regardless of how good they are. I wanted to write a few thoughts on Stadia specifically and on what I see as a huge problem for Google, which somehow they seem unaware of (or worse, they don&apos;t care).&lt;/p&gt;
&lt;p&gt;First, a bit about Stadia.&lt;/p&gt;
&lt;p&gt;I tried out stadia a long time ago when it was just a beta test of Assassin&apos;s Creed Odyssey in 2018. While it was &lt;em&gt;far&lt;/em&gt; from perfect, I immediately saw the appeal. It worked shockingly well for streaming a game entirely in your browser.&lt;/p&gt;
&lt;p&gt;When Stadia was officially announced, I signed up for the Founders Edition. I would not classify myself as a hardcore gamer, but I play games quite a bit. I also love being an early adopter of tech, so this was a no-brainer. Throw in the fact that you could choose a Gamertag before everyone else so you can get a really good name? No question, I&apos;m sold.&lt;/p&gt;
&lt;p&gt;I want to start by saying, I really like(d) Stadia. To this day, I use it almost every day. However, there were some signs from the very beginning that were concerning, especially given Google&apos;s track record with... Everything.&lt;/p&gt;
&lt;p&gt;When it was released, it was definitely a &quot;minimum viable product&quot;. Several features mentioned during the initial announcement were just not ready yet. For companies that have a really good track record, this is not always very concerning. Apple, for instance, will usually preview the next year of software when they announce macOS or iOS. Some features don&apos;t make the first release of the new OS, but it&apos;s rare that those features don&apos;t get added before the next iteration. Google, on the other hand, loves to talk things up, then either underwhelm, or change their mind.&lt;/p&gt;
&lt;p&gt;But, who knows? Many of the features were pretty ambitious and it&apos;s totally fair that some of them might not be ready on day 1. Particularly since many of them would clearly require game developers to support on their end, even if the platform itself was ready. But that&apos;s why Google had their own gaming studio, right? Did I expect some amazing AAA games from Google&apos;s brand-new game studio? Absolutely not. They were new to this, and gaming is a very difficult industry. But surely they could make some proof-of-concept games to show the massively scalable infrastructure, right? Or the Google Assistant being integrated right into the game from the controller? Right? Surely YouTube Streaming directly from Google Cloud was one of the highest priorities for this whole project... Right?&lt;/p&gt;
&lt;p&gt;Well, they delivered on some of the hype. Eventually. Kind of. And some of it worked really well! YouTube took MUCH longer to integrate than I would have thought (and frankly, much longer than it should have), but it worked really well when it came out. I don&apos;t feel the need to stream to YouTube, but I understand the appeal. I tried doing it a few times just for fun, and it was pretty flawless.&lt;/p&gt;
&lt;p&gt;All of these should have been signs. The big games starting to bail were also pretty clearly bad signs, but then once in a while, you would get a glimmer of hope. When Cyberpunk 2077 first came out, it was an absolute mess. It was not built well and was not able to take advantage of the newest generation of game consoles. Only high-end PC hardware was handling it ok, except for Stadia. All of a sudden, the appeal of a cloud-based console was popping up in articles all over the place. First of all, it WORKED. That was a huge bonus. Then, as they started rolling out enormous patches trying to fix the game, Stadia was again in the news since you never had to update anything. 100GB update? Not if you were using Stadia!&lt;/p&gt;
&lt;p&gt;Well apparently that was not enough. For me, I never really saw it as a next-gen console competitor. It seemed unlikely that it could compete with a fairly high-end console I have right here in front of me, plugged right into my TV, and 10 feet from my controller. However, it absolutely worked great for most of the gaming I do. I played Destiny on there a LOT, and it was great. Cyberpunk also worked great. Anything, where I was not competing with player vs. player (which I don&apos;t do on Destiny very often), was absolutely awesome. I fantasized about playing hardware-heavy games like Civilization 6 on there (even if it required a keyboard and mouse). It&apos;s a CPU-heavy game, but a small amount of lag won&apos;t matter. Also, the updates and add-ons are enormous. Seems perfect. Or even if I could play some of my very favorite retro games, that would be amazing. Even without that, I still played it a lot.&lt;/p&gt;
&lt;p&gt;I used it primarily on my phone. Apple decided these kinds of apps can&apos;t exist (which is a whole other topic) but they released browser support for iOS and it frankly worked nearly flawlessly. I have a phone mount for my Stadia controller and it&apos;s awesome. If I want to dive into a game and get the best experience, I would play on my Xbox, however, if we&apos;re watching some mindless TV at the end of the day and I want to grind some resources or do some Vanguard playlists on Destiny, it was phenomenal for that.&lt;/p&gt;
&lt;p&gt;I have tried Nvidia&apos;s version of this and Microsoft&apos;s and Amazon&apos;s. To be honest, from a technology standpoint, Stadia in my experience, was &lt;em&gt;far&lt;/em&gt; superior.&lt;/p&gt;
&lt;p&gt;So why did Stadia fail? Well, obviously, it doesn&apos;t have enough users to justify keeping it up. It seems like maybe it was a good idea, but there is no future or market for it, right? Well... I don&apos;t know how much I agree with that. I think a big part of this is a core problem with Google. If there was no market for this kind of gaming, I don&apos;t think you&apos;d see Nvidia, Microsoft, and Amazon all directly competing with this.&lt;/p&gt;
&lt;p&gt;From day 1, all across the internet, and even among my social circles, people would joke that Google was just going to kill it, so why bother? On Reddit, fans of Stadia would get incredibly heated in their defense. This is a superior technology and experience. The world will see. There&apos;s no way Google will kill this. Matter of fact, Google would &lt;a href=&quot;https://www.theverge.com/2022/9/30/23378757/google-stadia-commitments-shutdown-rumors&quot;&gt;repeatedly promise that they were taking it seriously and were not going to kill it off.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;But I, like many on the internet, had my doubts. Google kills things off at a comical rate. Often, it&apos;s because they have some crazy ideas, and unlike many companies, they will try them out instead of just talk about it. Other times, they kill off products that many people love, or even heavily rely on, to the point where it&apos;s basically a joke on the internet. There are sites dedicated to just keeping track of the Google products that they have killed, such as - &lt;a href=&quot;https://killedbygoogle.com/&quot;&gt;Killed by Google&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Some of these pretty clearly no one cares that much about. Most people probably didn&apos;t even know they existed. However, some of them were key products that people relied on. When Google Reader shut down, it nearly killed off the entire RSS reader industry. There are some great alternatives now, but the broader internet has still never recovered to the point it was at when Google Reader was shut down. Others are even part of their paid products. Google Cloud IoT Core had some great ideas, but they killed it off. Google Hire was an AI-driven hiring tool that was meant to be an add-on for Google Workspace Enterprise. I used it briefly at my last job, and it honestly felt like magic. Google App Maker was a low-code automation/app-building tool that was part of Google Workspace. All of these were just killed off. If you had invested a significant amount of time into any of these products, well... Tough luck. In some cases, there was a replacement, in others, just tough luck.&lt;/p&gt;
&lt;p&gt;I have been a Google Partner in both of my last 2 jobs. I really like a lot of what Google does. Chrome is excellent. No one scales products across the internet quite like Google does. The way the infrastructure is built for Google Cloud is just better than the other big clouds. I love the way you can use really robust apps right in the browser. I love the &quot;internet first&quot; approach to apps, and frankly, the way the company completely restructured after China hacked them and essentially rocked the entire cybersecurity industry with their Zero Trust methodology, as well as their contributions to continuous delivery methods, hyper scale applications, and data... There is a huge list of things that Google is second to none in the world.&lt;/p&gt;
&lt;p&gt;But if you don&apos;t believe that a company will keep something around, why would you invest in it? Why would you build on Google Cloud if you don&apos;t even know if the tools that run the app will still be there? If you&apos;re a customer, why would you buy Stadia and invest time into these games if they just kill it off in a few years?&lt;/p&gt;
&lt;p&gt;In contrast, Microsoft is relentless with these things. Do they kill off products? Absolutely, but it&apos;s not their reputation. They will come into a market they have no business being in, and just iterate year after year and just stay with it until it bears some fruit.&lt;/p&gt;
&lt;p&gt;Sometimes it feels like Google lacks focus. Or maybe it&apos;s lacking direction. It&apos;s hard to say. Even for products that don&apos;t get killed off, look at the mess that they continually create for themselves with their &lt;a href=&quot;https://www.theverge.com/2021/6/21/22538240/google-chat-allo-hangouts-talk-messaging-mess-timeline&quot;&gt;messaging platform&lt;/a&gt;. To a lesser degree, but still similar, their video messaging with &lt;a href=&quot;https://www.theverge.com/2022/8/3/23290225/google-meet-duo-video-calling-messaging&quot;&gt;Duo vs. Meet&lt;/a&gt;. I follow this space very closely, and it&apos;s hard for me to keep track of what they are doing with all of their products. I understand consolidating and things like that but they never seem to even be able to successfully do so, and you end up with changed plans a million times, and confusion and frustration from users.&lt;/p&gt;
&lt;p&gt;At work we use Slack instead of Google Chat. I like Slack, but why should I pay for a messaging tool when our Google Workspace (Enterprise, nonetheless) has a chat platform built in? Well partially because it&apos;s a mess. One day it&apos;s a separate app. They announce some cool features, then back track on those, then they merge it into the Gmail interface for some kind of &quot;Unified messaging&quot; platform, then they let you back track from that. At least temporarily. All the while barely actually adding functionality beyond more emoji or things like that.&lt;/p&gt;
&lt;p&gt;I could go on with countless other examples, but I think the point is clear, and I don&apos;t think Google realizes how big of a reputation problem they have by killing off products like Stadia. When big Google fans (like myself) have a hard time trusting that Google will keep something around, we are hesitant to even try new things. What if we like it, and start to rely on it, then it&apos;s gone? I personally am really tired of it, and I know I&apos;m not alone. If your promoters and early adopters are scared to use your new products, and you&apos;re a company that thrives on innovation, that&apos;s a huge problem. Google desperately needs to address this image or it will really hurt them in the future. Either stick with products even if they lose money, and use those learnings on future products, or hold your cards to your chest longer so things can bake more before you release them.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.google/products/stadia/message-on-stadia-streaming-strategy/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.google/products/stadia/message-on-stadia-streaming-strategy/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://killedbygoogle.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://killedbygoogle.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2021/6/21/22538240/google-chat-allo-hangouts-talk-messaging-mess-timeline&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2021/6/21/22538240/google-chat-allo-hangouts-talk-messaging-mess-timeline&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2022/8/3/23290225/google-meet-duo-video-calling-messaging&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2022/8/3/23290225/google-meet-duo-video-calling-messaging&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2022/9/30/23378757/google-stadia-commitments-shutdown-rumors&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2022/9/30/23378757/google-stadia-commitments-shutdown-rumors&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Drive Quicksearch</title><link>https://barnes.tech/blog/drive-quicksearch</link><guid isPermaLink="true">https://barnes.tech/blog/drive-quicksearch</guid><description>Discover how to use Google Drive&apos;s quick search feature on Mac for efficient file retrieval.</description><pubDate>Mon, 19 Sep 2022 10:14:13 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Recently I found out that if you have the Google Drive Desktop app installed on Mac, you can invoke a quick search function that works much like Spotlight, but for your Google Drive data. I don&apos;t know what this feature is actually called. It&apos;s likely not quick search, but I also didn&apos;t have anything else to call it.&lt;/p&gt;
&lt;p&gt;If you have it installed and signed in, simply press &lt;code&gt;command + option + G&lt;/code&gt; and it pulls up a search box.&lt;/p&gt;
&lt;p&gt;It&apos;s worth noting that in more recent versions of Drive Desktop, you can directly enable Spotlight indexing as well in the preferences, however I&apos;ve had mixed luck with how well it works, and honestly for me if I&apos;m searching for something in Drive, I know it&apos;s there and I like having the mental separation between the two.&lt;/p&gt;</content:encoded></item><item><title>Cloudflare Access</title><link>https://barnes.tech/blog/cloudflare-access</link><guid isPermaLink="true">https://barnes.tech/blog/cloudflare-access</guid><description>Explore Cloudflare Access and its potential to replace traditional VPNs with modern security solutions.</description><pubDate>Sun, 11 Sep 2022 23:52:38 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/cloudflare-logo.svg&quot; alt=&quot;Cloudflare Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;As I have mentioned in a previous post, I truly believe we are on the edge of some pretty radical changes in corporate networking. The buzzword for the concept is SASE (Pronounced “sassy” and stands for Secure Access Service Edge). The buzzword is pretty cringeworthy in my opinion, but the idea is solid. It’s important to note that it’s just a marketing term (similar to “Zero Trust”). It represents a concept, not a specific “thing”, and therefore different vendors offer different functions in the space.&lt;/p&gt;
&lt;p&gt;As I’ve been testing out different offerings out there (including this article I wrote about &lt;a href=&quot;https://barnes.tech/blog/tailscale/&quot;&gt;TailScale&lt;/a&gt;), Cloudflare’s offering has been the most interesting to me. The naming is a little confusing, but I really like what they have been doing. In general, their SASE offering is called &lt;a href=&quot;https://www.cloudflare.com/cloudflare-one/&quot;&gt;Cloudflare One&lt;/a&gt;. This is really a platform with several products within it. I will go into detail in other posts, but for this one I’m working with &lt;a href=&quot;https://www.cloudflare.com/products/zero-trust/access/&quot;&gt;Cloudflare Access&lt;/a&gt;, which is part of their &lt;a href=&quot;https://www.cloudflare.com/products/zero-trust/access/&quot;&gt;Zero Trust platform&lt;/a&gt;, which in turn is part of &lt;a href=&quot;https://www.cloudflare.com/cloudflare-one/&quot;&gt;Cloudflare One&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I see lots of potential with Cloudflare Access. In general, I want to replace VPN’s. They are old, clunky, and don’t work well. They are a heavy-handed solution to specific problems and no one really likes using them. If employees hate to use them, then they typically try to get around using them. I think with modern technology, we should be able to increase security significantly while also actually making it a smoother better experience to actually use.&lt;/p&gt;
&lt;p&gt;Cloudflare can create tunnels to specific resources, allowing you to use Access to directly and more securely connect directly to resources. For this post, I set up a direct connection to an RDP instance on a Windows server from my Mac. I then wanted to make sure that the tunnel was set up automatically for me whenever I booted my computer. The idea is based on this tutorial provided by Cloudflare - &lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/tutorials/rdp/&quot;&gt;Connect through Cloudflare Access over RDP&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you follow that tutorial and have a Cloudflare tunnel running on both sides, you can run the following to create a direct tunnel, which allows you to connect RDP to &lt;code&gt;localhost:3389&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;cloudflared access rdp --hostname {{subdomian}}.barnes.tech --url localhost:3389
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;My goal was to completely and silently deploy both &lt;code&gt;cloudflared&lt;/code&gt; and the above command via MDM, but also have that maintain the connection in the background, and even start it back up after reboot.&lt;/p&gt;
&lt;p&gt;The tutorial above walks you through creating the destination tunnel using the &lt;code&gt;config.yml&lt;/code&gt; file, which you need to create and authenticate locally on that machine. This works fine, but Cloudflare has since added the ability to create these tunnels directly in the cloud Zero Trust dashboard, and give you one command to set up the tunnel, authenticate with a token, and set up everything you need for RDP. An example of how this looks is something like this -&lt;/p&gt;
&lt;h1&gt;Windows&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;`\path\to\cloudflared.exe service install {{service token}}`
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Mac&lt;/h1&gt;
&lt;pre&gt;&lt;code&gt;`cloudflared service install {{service token}}`
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Deploying this way, it is pretty easy to deploy through a script in an MDM. You can just create a script like this -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash

mostCommonUser=$(/usr/bin/last -t console | awk &apos;!/_mbsetupuser|root|wtmp/&apos; | /usr/bin/cut -d&quot; &quot; -f1 | /usr/bin/uniq -c | /usr/bin/sort -nr | /usr/bin/head -n1 | /usr/bin/grep -o &apos;[a-zA-Z].*&apos;)

# Install Cloudflare Tunnel
/usr/bin/su - &quot;${mostCommonUser}&quot; -c &quot;/opt/homebrew/bin/brew install cloudflare/cloudflare/cloudflared&quot;

/opt/homebrew/bin/cloudflared service install {{service token}}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;With that in place, you can create a LaunchDaemon to run the previous command to open an access tunnel and make it available at &lt;code&gt;localhost&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;I just created one called &lt;code&gt;com.barnes.cloudflare.plist&lt;/code&gt;. In Kandji, you can easily deploy this file by zipping it, and then creating a custom application that just unzips the file to &lt;code&gt;/Library/LaunchDaemons&lt;/code&gt;. After it does that, you need to use a postinstall script to load the Launch Daemon. First the Launch Daemon -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-xml&quot;&gt;&amp;#x3C;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&amp;#x3C;!DOCTYPE plist PUBLIC &quot;-//Apple//DTD PLIST 1.0//EN&quot; &quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot;&gt;
&amp;#x3C;plist version=&quot;1.0&quot;&gt;
&amp;#x3C;dict&gt;
	&amp;#x3C;key&gt;KeepAlive&amp;#x3C;/key&gt;
	&amp;#x3C;dict&gt;
		&amp;#x3C;key&gt;SuccessfulExit&amp;#x3C;/key&gt;
		&amp;#x3C;false/&gt;
	&amp;#x3C;/dict&gt;
	&amp;#x3C;key&gt;Label&amp;#x3C;/key&gt;
	&amp;#x3C;string&gt;local.job&amp;#x3C;/string&gt;
	&amp;#x3C;key&gt;ProgramArguments&amp;#x3C;/key&gt;
	&amp;#x3C;array&gt;
		&amp;#x3C;string&gt;/opt/homebrew/bin/cloudflared&amp;#x3C;/string&gt;
		&amp;#x3C;string&gt;access&amp;#x3C;/string&gt;
		&amp;#x3C;string&gt;rdp&amp;#x3C;/string&gt;
		&amp;#x3C;string&gt;--hostname&amp;#x3C;/string&gt;
		&amp;#x3C;string&gt;{{subdomain}}.barnes.tech&amp;#x3C;/string&gt;
		&amp;#x3C;string&gt;--url&amp;#x3C;/string&gt;
		&amp;#x3C;string&gt;localhost:3389&amp;#x3C;/string&gt;
	&amp;#x3C;/array&gt;
	&amp;#x3C;key&gt;RunAtLoad&amp;#x3C;/key&gt;
	&amp;#x3C;true/&gt;
	&amp;#x3C;key&gt;ThrottleInterval&amp;#x3C;/key&gt;
	&amp;#x3C;integer&gt;5&amp;#x3C;/integer&gt;
&amp;#x3C;/dict&gt;
&amp;#x3C;/plist&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;These can be pretty complex to create these correctly and without any errors, and it will just not work if there are any errors, so I used &lt;a href=&quot;https://www.soma-zone.com/LaunchControl/&quot;&gt;Launch Control&lt;/a&gt; to create this.&lt;/p&gt;
&lt;p&gt;For PostInstall I used this script -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash

sudo /bin/launchctl load -w /Library/LaunchDaemons/com.barnes.cloudflare.plist
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;And that’s it! With this all in place, the tunnel is automatically deployed and the Launch Daemon makes sure it reconnects after reboot automatically!&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;http://www.apple.com/DTDs/PropertyList-1.0.dtd&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;http://www.apple.com/DTDs/PropertyList-1.0.dtd&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/tailscale/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/tailscale/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://developers.cloudflare.com/cloudflare-one/tutorials/rdp/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://developers.cloudflare.com/cloudflare-one/tutorials/rdp/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.cloudflare.com/cloudflare-one/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.cloudflare.com/cloudflare-one/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.cloudflare.com/products/zero-trust/access/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.cloudflare.com/products/zero-trust/access/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.soma-zone.com/LaunchControl/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.soma-zone.com/LaunchControl/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Malwarebytes Uninstall</title><link>https://barnes.tech/blog/malwarebytes</link><guid isPermaLink="true">https://barnes.tech/blog/malwarebytes</guid><description>Learn how to silently uninstall Malwarebytes using a script for bulk deployment without user interaction.</description><pubDate>Sun, 17 Jul 2022 23:07:05 GMT</pubDate><content:encoded>&lt;p&gt;Antivirus and other endpoint security tools are fairly notorious for being difficult to uninstall, so I wanted to write a few posts about different uninstall tools and processes as I figure out how to remove them. This is how to remove Malwarebytes, and do so silently through an MDM or with a script.&lt;/p&gt;
&lt;p&gt;Malwarebytes makes an uninstaller app that you can download from their website, however in order to run it, you need to interact with the app, making it difficult to deploy in bulk.&lt;/p&gt;
&lt;p&gt;If you pull apart the app package, inside the contents of the app, in the resources section, there is a script called &lt;code&gt;uninstall_reinstall.tool&lt;/code&gt; which is actually just a bash script in disguise.&lt;/p&gt;
&lt;p&gt;If you open the contents in a text editor, you can see the script. You can take this script and run it, and it will work directly, however it attempts to get you to reinstall it at the end, or switch to the &quot;home&quot; version. Still not ideal for bulk deployment.&lt;/p&gt;
&lt;p&gt;Here&apos;s what the original script looks like -&lt;/p&gt;
&lt;p&gt;At the end of the script there is a function for User Input called &lt;code&gt;run install function&lt;/code&gt; which runs several AppleScripts for the user input. You can simply remove this section and it will make the script completely silent.&lt;/p&gt;
&lt;p&gt;Final version with the removed Apple Scripts is here -&lt;/p&gt;</content:encoded></item><item><title>Mac - Adobe Creative Cloud Silent Uninstall</title><link>https://barnes.tech/blog/adobe-creative-cloud-uninstall</link><guid isPermaLink="true">https://barnes.tech/blog/adobe-creative-cloud-uninstall</guid><description>Learn to silently uninstall Adobe Creative Cloud using a bash script for MDM deployment.</description><pubDate>Wed, 06 Jul 2022 21:47:31 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/adobe_prompt.png&quot; alt=&quot;Adobe uninstaller prompt&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I had a situation yesterday where I had to create a script to silently uninstall the Adobe Creative Cloud. For what we were trying to do, the Creative Cloud app had been installed accidentally on some computers that did not need it, so we only needed to uninstall the creative cloud app itself. This will not uninstall any other Creative Cloud apps that may have been installed.&lt;/p&gt;
&lt;p&gt;Adobe’s documentation and forums were not terribly helpful in this regard, but after poking around a little bit, we were able to get it figured out.&lt;/p&gt;
&lt;p&gt;Adobe has an uninstaller app that you can use at -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/Applications/Utilities/Adobe Creative Cloud/Utils/Creative Cloud Uninstaller.app
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This works fine if you are uninstalling it on your own machine, and have admin privileges, but if you are trying to trigger this from an MDM, you can’t use this directly.&lt;/p&gt;
&lt;p&gt;In order to script the action, you need to go inside this app bundle and find the executable itself. To find this, right click on the .app file and then select “Show Package Contents”, then look for an executable inside the folders in the .app bundle. For this app, this is found at -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;/Applications/Utilities/Adobe Creative Cloud/Utils/Creative Cloud Uninstaller.app/Contents/MacOS/Creative Cloud Uninstaller
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Pro Tip&lt;/strong&gt; - If you hold down &lt;code&gt;Option&lt;/code&gt; on Mac while looking at the context view (right click on a file or folder), then the &lt;code&gt;Copy&lt;/code&gt; option of the file becomes &lt;code&gt;Copy “file” as pathname&lt;/code&gt; which makes it much easier to then paste in to a script or terminal session. For terminal you can also click and drag the file in to terminal and it will drop the path in there, but I personally usually use the context menu option, so I can paste it anywhere else.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h1&gt;Scripting the Uninstaller&lt;/h1&gt;
&lt;p&gt;Once we found the executable file, we knew that we could just call this in a script pretty easily, making it much easier to do this through MDM.&lt;/p&gt;
&lt;p&gt;To test this out, I just ran in terminal directly on my test machine -&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo &apos;/Applications/Utilities/Adobe Creative Cloud/Utils/Creative Cloud Uninstaller.app/Contents/MacOS/Creative Cloud Uninstaller&apos;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;But this popped up with a prompt asking if we want to uninstall or repair. For what we are doing we did not want it to prompt the user at all, and just run the uninstaller.&lt;/p&gt;
&lt;p&gt;After trying several of the most common flags to force it to silently do the uninstall (i.e. &lt;code&gt;--silent&lt;/code&gt; or &lt;code&gt;--no-gui&lt;/code&gt;, etc.) with no luck, I was able to find on some documentation that Adobe has that passing &lt;code&gt;-u&lt;/code&gt; in might do it, and it did the trick!&lt;/p&gt;
&lt;p&gt;So with that in mind we wrote a bash script to do what we needed to do.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt; -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;We use Kandji as our primary MDM, so this script is written so that it could be used as an audit script if we needed to in the future. In this case I just added it to Self Service, and it should work in any MDM that supports scripts, but the format is specifically with being an audit script in mind&lt;/p&gt;
&lt;/blockquote&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;#!/bin/bash

APPPATH=&quot;/Applications/Utilities/Adobe Creative Cloud/ACC/Creative Cloud.app&quot;
if [ -e &quot;$APPPATH&quot; ]; then
	sudo &quot;/Applications/Utilities/Adobe Creative Cloud/Utils/Creative Cloud Uninstaller.app/Contents/MacOS/Creative Cloud Uninstaller&quot; -u
	exit 1

else

	exit 0

fi
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;This script will first check to see if the app is there, then if it is, it will run the uninstaller mentioned above. If not, it will just exit the script with 0, so that it passes the audit.&lt;/p&gt;</content:encoded></item><item><title>1Password 2FA to iCloud Keychain</title><link>https://barnes.tech/blog/1password-icloud-keychain</link><guid isPermaLink="true">https://barnes.tech/blog/1password-icloud-keychain</guid><description>Learn how to manage passwords and 2FA codes using 1Password and iCloud Keychain for better security.</description><pubDate>Sun, 05 Jun 2022 00:11:47 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/safari_passwords.png&quot; alt=&quot;Safari Passwords page&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I am a huge fan of 1Password. It&apos;s an app / service that at this point I can&apos;t live without.&lt;/p&gt;
&lt;p&gt;If you aren&apos;t familiar with 1Password, you should check it out. It is a password manager that is really easy to use, syncs across all of your devices, and has a lot of advanced features. You can set up different &quot;vaults&quot; to keep things organized, and you can even share certain vaults with certain people. You can even use a work account and a personal account at the same time, and it helps keep things organized and secure for you. My wife and I share a home vault for passwords and accounts that we both use and both need access to, while at work I have different vaults shared with different teams based on what they need as well.&lt;/p&gt;
&lt;p&gt;I partially use 1Password because of all of these advanced features, but I specifically use it instead of iCloud Keychain because I do not use Safari on the Mac. I use Chrome for almost everything on a Mac, but Safari on iOS. 1Password works across all of this no problem so it makes things really easy.&lt;/p&gt;
&lt;p&gt;2 Factor Authentication support is awesome in 1Password. 1Password supports adding TOTP (Time-based One Time Password) 2FA codes, similar to how Google Authenticator or Authy work, and it can keep this information right next to your password. It will even auto-fill the 2FA code automatically for you when you have 1Password fill in the username and password.&lt;/p&gt;
&lt;p&gt;There are some specific cases where there&apos;s a password I use a lot on my phone, and therefore in Safari, and I like having iCloud keychain store the username and password for me, since it will actually fill out slightly faster (since it is built in to the OS and is not a 3rd party app), however I want ALL my passwords in 1Password. That&apos;s the vault where everything should be no matter what.&lt;/p&gt;
&lt;p&gt;So how do you have them in both places? Well for username and password this is easy, you just create an entry for username and password in both locations. But Apple recently introduced the ability to also support TOTP 2FA, so can you have a code like that in both places? Yes! You can! It&apos;s not super intuitive, but it&apos;s definitely possible.&lt;/p&gt;
&lt;p&gt;It&apos;s much easier to set this up on the Mac if you can, then let it sync to your iOS device, even if you aren&apos;t going to use Mac Safari. When you go in to the &quot;Passwords&quot; section in Safari&apos;s preferences, you can easily see how to add new passwords for different sites. Once you create one, you can &quot;Edit&quot; it, and you&apos;ll see the option for 2FA show up. The verbiage they use is not terribly standard, and can be a little confusing, but they call it &lt;code&gt;Verification Code&lt;/code&gt;, and you&apos;ll see the option to &lt;code&gt;Enter Setup Key&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Enter Setup Key&lt;/code&gt; is also a little bit confusing wording, unless you only use Safari and never save these things anywhere else. Safari tries to make this easy when you log in on a website for the first time, and will offer to set this all up for you automatically. It&apos;s pretty neat, but if you do it that way, you&apos;re going to have a very hard time copying that info back &lt;em&gt;out&lt;/em&gt; of Safari, so I&apos;d recommend starting by creating it in 1Password first.&lt;/p&gt;
&lt;p&gt;Many times, if a site supports 2FA, 1Password will automatically prompt you and tell you how to set up 2FA, however in some cases it doesn&apos;t know that specifically. In those cases you can just add a &quot;One Time Password&quot; field to your login item, and then it will let you scan the QR code directly.&lt;/p&gt;
&lt;p&gt;Once a TOTP is saved in 1Password, you can then &quot;Edit&quot; that login, and you can see more info about the TOTP itself. You will see a long string of text that is saved in there that is actually generating the time based code. It includes the issuer (or site that it&apos;s from) the username it is associated with, and most importantly a secret. The section that is &lt;code&gt;secret=SomeTextString &lt;/code&gt; is the important part we are trying to get to.&lt;/p&gt;
&lt;p&gt;Simply copy the text string after &lt;code&gt;secret=&lt;/code&gt;. In some cases there will be text after the secret, which will be separated by the &lt;code&gt;&amp;#x26;&lt;/code&gt; symbol. We want everything before the &lt;code&gt;&amp;#x26;&lt;/code&gt; and after &lt;code&gt;secret=&lt;/code&gt;. You can just double click on the first couple of characters and it will hilight the correct section for you.&lt;/p&gt;
&lt;p&gt;Now go back to Safari&apos;s password settings, and use the &lt;code&gt;secret&lt;/code&gt; you just copied and put that in to the &lt;code&gt;Setup Key&lt;/code&gt;. That&apos;s it! Now you will have the same TOTP code across both systems!&lt;/p&gt;</content:encoded></item><item><title>Cloudflare Dev Tools</title><link>https://barnes.tech/blog/cloudflare-dev-tools</link><guid isPermaLink="true">https://barnes.tech/blog/cloudflare-dev-tools</guid><description>Explore Cloudflare&apos;s innovative tools and how they compete with AWS, Azure, and Google Cloud in the cloud computing space.</description><pubDate>Wed, 11 May 2022 21:34:46 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/cloudflare-logo.svg&quot; alt=&quot;Cloudflare Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I&apos;ve been a big fan of what Cloudflare is doing for a long time. They
seem to have a great mission, and approach problem solving in a unique
way that has always resonated with me. I am working on writing an in
depth blog post about the Zero Trust tools that they offer (Collectively
called Cloudflare One), but Cloudflare has been building out a lot of other tools as well.&lt;/p&gt;
&lt;p&gt;I have not seen many people comparing Cloudflare to AWS, Azure, and Google Cloud, however with several tools they have recently released, I think they will be a bigger competitor than people give them credit for.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/r2-open-beta/&quot;&gt;Cloudflare R2 enters open beta&lt;/a&gt; - Cloudflare S3 like storage launching in beta soon. Compatible with S3 API&apos;s, which makes it immediately accessible to tons of applications out there. S3 is great, but super expensive for what it is, so the more competition in this place the better.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.cloudflare.com/introducing-d1/&quot;&gt;D1 - Cloud hosted SQL Database&lt;/a&gt; A small but important first step in to a lightweight cloud hosted database. This is another area where the more competition the better.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Really looking forward to see what else Cloudflare launches in these spaces.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/announcing-pubsub-programmable-mqtt-messaging/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/announcing-pubsub-programmable-mqtt-messaging/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/introducing-d1/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/introducing-d1/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://blog.cloudflare.com/r2-open-beta/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.cloudflare.com/r2-open-beta/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Atlassian Outage</title><link>https://barnes.tech/blog/atlassian-outage</link><guid isPermaLink="true">https://barnes.tech/blog/atlassian-outage</guid><description>Explore the ongoing Atlassian outage and its handling of the incident, highlighting lessons in incident management.</description><pubDate>Sat, 16 Apr 2022 00:41:21 GMT</pubDate><content:encoded>&lt;p&gt;If you follow tech on the internet, you&apos;ve likely heard about the unbelievable outage that Atlassian has had, which is still (as of this writing) going on. On April 4th, many of their services went offline for several customers, and it has been an absolutely wild ride since then.&lt;/p&gt;
&lt;p&gt;If you haven&apos;t read this yet, &lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/scoop-atlassian?s=r&quot;&gt;The Pragmatic Engineer&lt;/a&gt; has an excellent timeline and breakdown of everything that Atlassian has done, and it&apos;s honestly astounding.&lt;/p&gt;
&lt;p&gt;I understand as well as anyone that things happen and systems will go down, but it&apos;s hard to put in words how poorly they have handled this.&lt;/p&gt;
&lt;p&gt;As Gregely points out in the post, it&apos;s kind of insane that Atlassian literally wrote one of the most well known books on &lt;a href=&quot;https://www.atlassian.com/incident-management/handbook&quot;&gt;incident handling&lt;/a&gt; in the business, yet clearly just straight up do not follow it internally.&lt;/p&gt;
&lt;p&gt;Current Atlassian status - https://status.atlassian.com/&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://newsletter.pragmaticengineer.com/p/scoop-atlassian?s=r&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://newsletter.pragmaticengineer.com/p/scoop-atlassian?s=r&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://status.atlassian.com/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://status.atlassian.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.atlassian.com/incident-management/handbook&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.atlassian.com/incident-management/handbook&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Sync Downloads Folder</title><link>https://barnes.tech/blog/download-sym-link</link><guid isPermaLink="true">https://barnes.tech/blog/download-sym-link</guid><description>Learn how to sync your Mac Downloads folder with iCloud for seamless access across devices.</description><pubDate>Mon, 04 Apr 2022 20:14:17 GMT</pubDate><content:encoded>&lt;p&gt;Many people may not want to use this one but recently I have had several people make a comment when they see it and ask how it’s done so they can do it.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note - these instructions are only for Mac and assume that you have an iCloud account. You could very quickly run out of storage on a free account so I would highly recommend using a paid iCloud account with enough storage if you want to use this method.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;Sync your downloads drive to iCloud on all computers&lt;/h1&gt;
&lt;p&gt;If you are familiar with iCloud sync for documents and desktop, this just takes that one step further and does the same thing with the downloads folder.&lt;/p&gt;
&lt;p&gt;For me personally I really like having everything I download all synced across devices. This includes your phone and iPad (which automatically save to the iCloud &lt;code&gt;Downloads&lt;/code&gt; folder already)&lt;/p&gt;
&lt;p&gt;First, make sure that you do not need anything in your current downloads folder as this process will wipe anything in there. You can move them to another folder if you need to. Don’t worry, you can move them right back when this is done.&lt;/p&gt;
&lt;p&gt;We will be creating a sym link between the folder in the iClouds container for downloads (used by iOS etc) and placing the symlink on macOS where the downloads folder typically is.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Note - You have to be a little fast doing this. If you wait too long after deleting the folder, macOS will repair itself and put the folder back.&lt;/em&gt;&lt;/p&gt;
&lt;h1&gt;Step One&lt;/h1&gt;
&lt;p&gt;Delete the downloads folder for your user. Since this is a system made folder we will need to use Terminal to delete it. Open terminal to run the commands listed below.&lt;/p&gt;
&lt;p&gt;Replace the &lt;code&gt;{YourUser}&lt;/code&gt; with the user on your computer (don’t use the brackets either. Just your username between the &lt;code&gt;/&lt;/code&gt; symbols.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;sudo rm -R /Users/{YourUser}/Downloads
&lt;/code&gt;&lt;/pre&gt;
&lt;h1&gt;Step 2&lt;/h1&gt;
&lt;p&gt;Next we need to create the sym link (short for symbolic link) between the iCloud Downloads folder and your local user Downloads folder.&lt;/p&gt;
&lt;p&gt;The basic syntax of a sym link is like this -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s /path/to/original /path/to/link
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;So we will need to use both the file path for iCloud Downloads as well as the file path of where the old Downloads folder is. It will typically look something like this -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;ln -s /Users/{YourUser}/Library/Mobile\ Documents/com\~apple\~CloudDocs/Downloads /Users/{YourUser}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;Pro tip 1 - you can click and drag a folder in to terminal directly and it will drop the file path directly&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Pro tip 2 - Alternatively, if you hold down&lt;/em&gt; &lt;strong&gt;option&lt;/strong&gt; &lt;em&gt;while right clicking on a file, the&lt;/em&gt; &lt;code&gt;copy&lt;/code&gt; &lt;em&gt;option becomes&lt;/em&gt; &lt;code&gt;copy file path&lt;/code&gt; &lt;em&gt;which allows you to just paste the file path in to terminal. I use this option ALL the time.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;And that’s it! It should be all set now.&lt;/p&gt;
&lt;h1&gt;Conclusion and other notes&lt;/h1&gt;
&lt;p&gt;Now that the downloads are linked, downloads will sync with iCloud. You can repeat this process on any other Mac to keep more than one computer in sync. iOS devices will also download to the same folder, so that stays in sync too.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;A few things to note -&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;First, if you had a Downloads “stack” in your dock, that will have been linked to the old &lt;code&gt;~/Downloads&lt;/code&gt; folder, and will break when you initially do this. To fix this, manually find the iCloud downloads folder in finder and drag that down to the dock instead. The path should basically be at&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code&gt;/Users/{YourUser}/Library/Mobile\ Documents/com\~apple\~CloudDocs/Downloads
&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Likewise, if you want “Downloads” in your side bar in finder, you will have to navigate to the iCloud Downloads folder and click and drag that over to the favorites in Finder as well.&lt;/li&gt;
&lt;li&gt;One of the reasons I like doing it this way is that you don’t have to change your browsers for this to work properly. I have a &lt;strong&gt;ton&lt;/strong&gt; of different browser profiles that I’m constantly bouncing between, so if I just went in to each browser and changed their “Downloads” manually to the iCloud path, it would be extremely time consuming. It would also only do that for the browsers which you manually do this for. The sym link method works for everything immediately, and will include downloads from other sources too.&lt;/li&gt;
&lt;/ul&gt;</content:encoded></item><item><title>Security (and IT) Obstructionism</title><link>https://barnes.tech/blog/security-obstructionism</link><guid isPermaLink="true">https://barnes.tech/blog/security-obstructionism</guid><description>Explore how security automation can improve IT-user relationships and enhance organizational efficiency.</description><pubDate>Sun, 20 Feb 2022 18:21:24 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://www.kolide.com&quot;&gt;Kolide&lt;/a&gt; recently posted an article - &lt;a href=&quot;https://www.kolide.com/blog/end-security-obstructionism-with-security-automation-orchestration&quot;&gt;End Security Obstructionism with Security Automation Orchestration&lt;/a&gt;, where they discuss some of the common issues with legacy thinking with enforcing security in an onerous, monolithic way.&lt;/p&gt;
&lt;p&gt;I think it’s pretty common for organizations to feel like IT and the rest of the organization are adversarial, and that it is always a battle between what most of the company is trying to do, and what IT is trying to force you to do.&lt;/p&gt;
&lt;p&gt;For a long time I’ve thought that most of this was a combination of communication problems, and in many cases, IT teams just being lazy. They just want to get something done, and don’t want to put the effort in to making the experience for the organization better. There are, of course, exceptions but they seem to be pretty rare.&lt;/p&gt;
&lt;p&gt;Unfortunately, it doesn’t take much time looking on Reddit in IT or system administrator forums to realize that many IT people also feel like it’s an adversarial relationship, and that users are just there to battle the IT team. No, Reddit is definitely not representative of real life, but you do see the same sentiment to some degree in lots of organizations.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.kolide.com/blog/end-security-obstructionism-with-security-automation-orchestration&quot;&gt;Kolide&lt;/a&gt; offers several examples of what they are calling “Security Obstructionism” (I think it’s a good term, and a useful concept to really think about), which they are referencing another &lt;a href=&quot;https://swagitda.com/blog/posts/the-security-obstructionism-secobs-market&quot;&gt;blog&lt;/a&gt; by Kelly Shortridge, and I think it is worth reading both blogs in more detail, but some examples include forcing a user to restart their computer without warning, using phishing simulations to “trap” users in to clicking on links, then forcing them to go through training because they fell for some trick, or really anything that is purposely getting in the way with someone doing their job.&lt;/p&gt;
&lt;h1&gt;Why would we want to put in more effort, when we can force these things anyway?&lt;/h1&gt;
&lt;p&gt;I strongly believe that if you can put in the effort to align IT &lt;em&gt;with&lt;/em&gt; the business and the user, it will pay off in several really big ways.&lt;/p&gt;
&lt;p&gt;First, you get buy in from the users. Despite what some IT professionals may believe, it’s actually pretty uncommon for a user to actually &lt;em&gt;want&lt;/em&gt; to mess things up, or do something that is not secure. Typically when they do something they shouldn’t, it’s because it’s easier than doing the “right” thing. They also often don’t really understand why they need to do something a certain way, and the “legacy” way of forcing them to do trainings doesn’t always work.&lt;/p&gt;
&lt;p&gt;This is where automation and orchestration can come in. When you design your IT infrastructure and processes to be user first, and have automatic actions that &lt;em&gt;include&lt;/em&gt; the user, you can help them understand and do the right things without making them feel like they are being punished, or that they have done something wrong, or even making them feel stupid.&lt;/p&gt;
&lt;p&gt;When I design systems, I am trying to make it as seamless as possible. If there is something that can be done silently in the background with no interruptions, we’ll do that. If something needs to be disruptive for a bit (an update that needs a restart, or something like that), we try to prompt the user that it’s going to happen and give plenty of time for them to do it themselves. We strive for zero touch deployments, with screens that prompt the user with what exactly is happening on their system, to help them understand and feel included in the process, but also to keep friction to a minimum.&lt;/p&gt;
&lt;p&gt;Another huge benefit of this method is that if you can get the buy in from the users, and even put in the effort to &lt;em&gt;understand&lt;/em&gt; the business, and how IT can help, then IT starts to become part of the conversation about business goals and initiatives, instead of being an afterthought expected to “just make it work” after decisions have already been made.&lt;/p&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;I think it is critical to think about this concept in IT, and it is key modern IT management. Companies are starting to expect this level of service from IT, whether it’s internal IT or Managed Service Providers. Technology &lt;strong&gt;&lt;em&gt;has&lt;/em&gt;&lt;/strong&gt; to be a key part of business strategy any more, and if IT wants to be included in those conversations (and they do need to be!) then achieving these principles are going to be vital.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://www.kolide.com&quot;&gt;Kolide&lt;/a&gt; makes a wonderful product that can help with many of these areas. Their guide on &lt;a href=&quot;https://honest.security&quot;&gt;Honest Security&lt;/a&gt; outlines their company philosophy, and is well worth reading. We mix in the Honest Security principles with how we do things, and I think it’s great to see a different methodology on how to effectively manage users in an organization.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://honest.security&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://honest.security&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://swagitda.com/blog/posts/the-security-obstructionism-secobs-market&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://swagitda.com/blog/posts/the-security-obstructionism-secobs-market&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.kolide.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.kolide.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.kolide.com/blog/end-security-obstructionism-with-security-automation-orchestration&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.kolide.com/blog/end-security-obstructionism-with-security-automation-orchestration&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>BeyondCorp and Zero Trust</title><link>https://barnes.tech/blog/zero-trust</link><guid isPermaLink="true">https://barnes.tech/blog/zero-trust</guid><description>Explore the Zero Trust security model, its origins, and its evolution in modern cybersecurity practices.</description><pubDate>Mon, 14 Feb 2022 11:50:56 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Zero trust has been one of the most over used buzz words (or buzz terms, I suppose?) in cyber security for several years, however I think it’s important to understand what it actually is, and what it means, because it’s really important once you see through all of the marketing smoke and mirrors that are out there.&lt;/p&gt;
&lt;h2&gt;Where did Zero Trust come from?&lt;/h2&gt;
&lt;p&gt;For many years, Cyber Security primarily focused on perimeter defense. You would force all of your secure assets, applications, data, etc. on to one fairly monolithic network, and then have a firewall in place to act like a gatekeeper to that network. Only secure company resources should be allowed on this network, and when you’re on the network you can access the sensitive or secure data that you need.&lt;/p&gt;
&lt;p&gt;This methodology lasted a long time, and over time slowly matured to include things like network segmentation, where you could have sections of less secure devices but still keep the “crown jewels” locked down more tightly. People also started introducing several “layers” of security, so hopefully if someone were able to get past one layer of defense, there would be something else in place (i.e. extra authentication) to prevent you from being able to get all the way in to whatever you were trying to access.&lt;/p&gt;
&lt;p&gt;As threats evolved, however, this became somewhat outdated. Several things were changing. Attacks were becoming far more sophisticated, and our legitimate needs to use networks were rapidly expanding and evolving, and with more access requirements, we were opening more and more attack surfaces. Attackers could also just compromise a legitimate user, and then use that User’s access to move laterally through the network to get whatever they were looking for.&lt;/p&gt;
&lt;p&gt;In 2011, Lockheed Martin published a paper about a new kind of framework, with a similar methodology based on military strategy, and called it the &lt;a href=&quot;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html&quot;&gt;Cyber Kill Chain&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Cyber Kill Chain introduced ideas such as an advanced persistent threat, where someone could establish a foothold at one point, then just wait to execute a payload until later. It also defined several different types of threats. This methodology modernized the approach to cyber security in many ways, and informs how we look at many modern threats to this day. One of the key ideas is to try to assume that you are already compromised, and then design defenses to limit the material damage that can be done given that fact.&lt;/p&gt;
&lt;p&gt;The idea of the kill chain is that for a successful attack to take place, they often need to chain together several exploit methods to gain access or attack your infrastructure, and rather than a perimeter defense acting only as a gatekeeper, you would have multiple methods of defense looking for all types of exploits, lateral movement within a secure network, or evidence of advanced persistent threats, and you try to head off the chain of attack, rather than strictly preventing entry to your network.&lt;/p&gt;
&lt;p&gt;Cyber Kill Chain is primarily a new methodology to approach Cyber Security, but in 2014 Google published their now famous &lt;a href=&quot;https://cloud.google.com/BeyondCorp&quot;&gt;BeyondCorp papers&lt;/a&gt;, which laid out a new kind of architecture methodology. A way to design your network and applications in a far more resilient way. &lt;a href=&quot;https://cloud.google.com/BeyondCorp&quot;&gt;BeyondCorp&lt;/a&gt; really started the concept of Zero Trust.&lt;/p&gt;
&lt;h2&gt;What is Zero Trust really?&lt;/h2&gt;
&lt;p&gt;Zero Trust is difficult to define for a few reasons. First, I see it more as a philosophy of how to design architecture, rather than a specific thing that you can directly “implement”. There’s no such thing as a perfect Zero Trust deployment, but it’s a goal that continues to evolve as technology becomes available to help implement it, and as we evolve our systems to be made in ways that support Zero Trust.&lt;/p&gt;
&lt;p&gt;So again, what is Zero Trust really? Well the broad idea is first, the traditional perimeter based network is essentially completely gone. Access should be limited to only what you need, and verification that you are who you say you are, and that you are safe to access something is a continual process including several parts.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;User trust&lt;/strong&gt; - Determining that a user is who they say they are. This is where identity verification comes in. Realistically you need an identity provider to provide this part well. A good identity provider is looking at all sorts of data to determine that you are who you say you are. Username, password, multi-factor authentication, possibly biometric authentication, and several other factors go in to determining the likelihood of you being who you claim to be. Ideally, this is not just a one time verification, but something that is continuously checked during any session to help prevent session hijacking.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Device trust&lt;/strong&gt; - Next, it is important to learn about the device that you are using to connect from. Typically organizations will want to check the device to see if it is a corporate owned device, so verifying that it is in inventory would be one part of device posture. There are several other things that you can check, such as an up to date endpoint security tool (sometimes you may just want to check that they have &lt;em&gt;any&lt;/em&gt; endpoint security, other times you may want to only allow access with your corporate controlled endpoint security, allowing you to enforce other policies as well), or you may even want to check that a certificate is installed on that device. There are many things that can be checked on the device posture to ensure that the device is safe and authorized to access whatever resource is being accessed.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Application Policy&lt;/strong&gt; - Each Application itself (Application can be a little loose here, this could be an actual application or any other type of network resource really) can have a granular policy with a different fine-grained set of requirements in order to access the resource. Depending on what the application policy is set to, it can react differently based on the User and Device trust. For instance, an Application could even present more challenges to a User if the confidence isn’t high enough that a User is who they say they are. Or maybe in some cases, if they meet a more relaxed set of policies, maybe they can have read only access, but a more strict set of policies are required in order to actually write to the data. This can be extremely flexible based on the org and the Applications that they use.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A key part of the application policy that is not something companies have been very good at is that application access should &lt;em&gt;only&lt;/em&gt; be granted to people who actually need it. Do not give any access that is not needed.&lt;/p&gt;
&lt;h2&gt;Sounds great! I’ll have one of those!&lt;/h2&gt;
&lt;p&gt;Zero Trust as an idea is great, but like I said earlier, it is more of a philosophy. It all sounds great, but actually implementing it is extremely difficult, and arguably, you probably can never actually “achieve” it. Even Google, who has spent an enormous amount of time, effort, and boatloads of cash implementing this is definitely not 100% there. In fact, from the BeyondCorp papers themselves -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Despite all the best efforts to define, roll out, measure, and enforce controls, you may inevitably face the harsh reality that 100% uniform control deployment is a mythical state where unicorns frolic unconcerned about malware and state-sponsored attackers.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If Google, who custom builds their entire platform from the hardware that runs in their data centers (even the fiber running between them) to the cloud software and applications, to even the browser where almost all of their internal work takes place, can’t 100% implement BeyondCorp or Zero Trust implementations, what chance do we have?&lt;/p&gt;
&lt;p&gt;Well, it doesn’t take long on the internet to find a bunch of people on both sides of this argument. People love to write how it’s impossible to achieve and that everyone saying otherwise is lying. They aren’t completely wrong, because on the other side, there are thousands of companies out there claiming that if you “buy their product, they can just plug and play Zero Trust”, which is absolutely not true. I don’t think it’s hard to see that 100% compliance with this idea is possible, but I’m also pretty optimistic about Zero Trust the concept, and think it’s extremely worthy of pursuing.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;There are many pieces to Zero Trust, and each piece will require specific tools, and sometimes multiple tools. Some of these are far more mature than others. Identity management has come a long way in the last few years. Azure AD, Okta, Google Identity, and others are all tackling this problem, and more and more SaaS applications are fully supporting these authentication methods (although many charge more for it, which I think is a problem. You can help shame these companies by looking at https://sso.tax).&lt;/p&gt;
&lt;p&gt;Device posture is making a lot of progress more recently, but still has a long way to go. This is a very segmented part of the market and most tools do not talk to each other. Additionally, many legacy Applications are still in use out there, and for many of these, solutions to help plug those in to a Zero Trust environment are still being made, or are in the very early stages of even working.&lt;/p&gt;
&lt;p&gt;Another thing to be mindful of is that this is not entirely exclusive to “users” to “applications”, but also should apply when applications need to talk to each other, or if an application needs to talk to a database, etc.&lt;/p&gt;
&lt;p&gt;Still, I think the technology is further along than many people might think, and you can do some really great things in this space. In fact, I would argue that if you take the time to design these correctly, you not only have a more secure environment, but a more flexible one (more important now than ever with our changing work environments), and I think even a better user experience. I see a world where a correctly configured device just has access to everything it needs, keeps itself automatically up do date with device posture policies, and people are able to more easily access network resources without the need for clunky and unreliable VPN’s.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://cloud.google.com/BeyondCorp&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://cloud.google.com/BeyondCorp&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://sso.tax&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://sso.tax&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Open In</title><link>https://barnes.tech/blog/open-in</link><guid isPermaLink="true">https://barnes.tech/blog/open-in</guid><description>Discover how Open In for Mac enhances your workflow by managing link handling across different browsers and profiles.</description><pubDate>Sun, 30 Jan 2022 04:27:57 GMT</pubDate><content:encoded>&lt;p&gt;I wanted to quickly mention an app that has dramatically improved my workflow for the better.&lt;/p&gt;
&lt;p&gt;Open In is a Mac App that allows you to choose how different links are handled, such as only opening in a specific browser, or even which specific &lt;a href=&quot;https://support.google.com/chrome/answer/2364824&quot;&gt;Chrome Profile&lt;/a&gt;, which is the real game changer for me. Now I can set up a specific list of URL&apos;s to open only in my work profile, and other URL&apos;s to only open in my personal profile. You can also have it just ask you which browser to open in when you click on a link.&lt;/p&gt;
&lt;p&gt;Check out Open In from the Mac App Store.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://loshadki.app/openin-helper/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://loshadki.app/openin-helper/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://support.google.com/chrome/answer/2364824&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://support.google.com/chrome/answer/2364824&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Web3 Continued</title><link>https://barnes.tech/blog/web3-continued</link><guid isPermaLink="true">https://barnes.tech/blog/web3-continued</guid><description>Explore skepticism around Web 3, NFTs, and cryptocurrency in this insightful video analysis.</description><pubDate>Sun, 30 Jan 2022 04:18:31 GMT</pubDate><content:encoded>&lt;p&gt;Recently I posted a link to Moxie Marlinspikes article about his skepticism on all the Web 3 hype lately. Full post &lt;a href=&quot;https://barnes.tech/blog/web3/&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I wanted to add to the skepticism with this video on YouTube. Titled &quot;The Line Goes Up - The Problem With NFTs&quot;, this video really goes in to a lot of the problems with cryptocurrency and blockchains in general, and how they are basically just fuel for scams. It&apos;s a long watch, but extremely well done.&lt;/p&gt;
&lt;p&gt;External link to video on YouTube - &lt;a href=&quot;https://youtu.be/YQ_xWvX1n9g&quot;&gt;The Line Goes Up - The Problem With NFTs&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/web3/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/web3/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://youtu.be/YQ_xWvX1n9g&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://youtu.be/YQ_xWvX1n9g&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Determining Mac Hardware Manufacture Date Using OSQuery</title><link>https://barnes.tech/blog/os-query-hardware-date</link><guid isPermaLink="true">https://barnes.tech/blog/os-query-hardware-date</guid><description>Learn how to determine the manufacture date of Macs using OSQuery with this powerful guide.</description><pubDate>Sat, 22 Jan 2022 05:00:36 GMT</pubDate><content:encoded>&lt;p&gt;We use Kolide on our managed Mac fleet for our customers, which has proven to be an incredibly powerful tool. They recently wrote in a blog post how you can use &lt;a href=&quot;https://osquery.io/&quot;&gt;OSQuery&lt;/a&gt; to look up the hardware manufacture date of your Macs. It’s pretty cool, check out the article here -&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://blog.kolide.com/determining-mac-hardware-manufacture-date-using-osquery-54091a9cccbb&quot;&gt;Determining Mac Hardware Manufacture Date Using OSquery&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;UPDATE&lt;/h2&gt;
&lt;p&gt;Here is the actual query that the article ends up with, but I highly recommend reading the whole thing. I think it is extremely interesting.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;WITH
serial_partial AS (
  SELECT
    SUBSTR(hardware_serial,4,1) AS char_4,
    SUBSTR(hardware_serial,5,1) AS char_5
  FROM system_info
),
mac_manufacture_year(char_4,year,offset) AS (
VALUES
(&apos;C&apos;,&apos;2020&apos;,0),(&apos;D&apos;,&apos;2020&apos;,26),(&apos;F&apos;,&apos;2021&apos;,0),(&apos;G&apos;,&apos;2021&apos;,26),(&apos;H&apos;,&apos;2022&apos;,0),(&apos;J&apos;,&apos;2022&apos;,26),(&apos;K&apos;,&apos;2013&apos;,0),(&apos;L&apos;,&apos;2013&apos;,26),(&apos;M&apos;,&apos;2014&apos;,0),(&apos;N&apos;,&apos;2014&apos;,26),(&apos;P&apos;,&apos;2015&apos;,0),(&apos;Q&apos;,&apos;2015&apos;,26),(&apos;R&apos;,&apos;2016&apos;,0),(&apos;S&apos;,&apos;2016&apos;,26),(&apos;T&apos;,&apos;2017&apos;,0),(&apos;V&apos;,&apos;2017&apos;,26),(&apos;W&apos;,&apos;2018&apos;,0),(&apos;X&apos;,&apos;2018&apos;,26),(&apos;Y&apos;,&apos;2019&apos;,0),(&apos;Z&apos;,&apos;2019&apos;,26)
),
mac_manufacture_week(char_5,week) AS (
VALUES
(&apos;1&apos;,1),(&apos;2&apos;,2),(&apos;3&apos;,3),(&apos;4&apos;,4),(&apos;5&apos;,5),(&apos;6&apos;,6),(&apos;7&apos;,7),(&apos;8&apos;,8),(&apos;9&apos;,9),(&apos;C&apos;,10),(&apos;D&apos;,11),(&apos;F&apos;,12),(&apos;G&apos;,13),(&apos;H&apos;,14),(&apos;J&apos;,15),(&apos;K&apos;,16),(&apos;M&apos;,17),(&apos;N&apos;,18),(&apos;L&apos;,19),(&apos;P&apos;,20),(&apos;Q&apos;,21),(&apos;R&apos;,22),(&apos;T&apos;,23),(&apos;V&apos;,24),(&apos;W&apos;,25),(&apos;X&apos;,26),(&apos;Y&apos;,27)
),
merge_data AS (
  SELECT
    year,
    (week + offset) AS week
  FROM serial_partial
  JOIN mac_manufacture_year USING(char_4)
  JOIN mac_manufacture_week USING(char_5)
),
date_modified AS (
  SELECT
    year || &apos;-01-01&apos; AS year_start,
    (&apos;+&apos; || (week * 7) || &apos; days&apos;) AS offset_days
  FROM merge_data
)
SELECT *,
  date(year_start,offset_days) AS manufacture_date
FROM date_modified;
&lt;/code&gt;&lt;/pre&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://blog.kolide.com/determining-mac-hardware-manufacture-date-using-osquery-54091a9cccbb&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://blog.kolide.com/determining-mac-hardware-manufacture-date-using-osquery-54091a9cccbb&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://osquery.io/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://osquery.io/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Chrome Keywords Update</title><link>https://barnes.tech/blog/chrome-keywords-update</link><guid isPermaLink="true">https://barnes.tech/blog/chrome-keywords-update</guid><description>Update on Google Chrome&apos;s search engine keyword settings for improved user experience.</description><pubDate>Wed, 12 Jan 2022 12:18:26 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/chrome.svg&quot; alt=&quot;Google Chrome logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I wanted to provide a quick update to some previous posts about Chrome search engines in these 2 posts -&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/chrome-keywords-power-user/&quot;&gt;Chrome Keywords Power User&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/chrome-keywords-examples/&quot;&gt;Chrome Keywords Examples&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Previously when I posted those, Google would start the search as soon as you hit the space bar, which often made it a little difficult. Recently Google added the option to switch the keyword to either Space or only Tabs. I find it much easier to use Tab.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/chrome-keywords-examples/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/chrome-keywords-examples/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://barnes.tech/blog/chrome-keywords-power-user/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://barnes.tech/blog/chrome-keywords-power-user/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Web3</title><link>https://barnes.tech/blog/web3</link><guid isPermaLink="true">https://barnes.tech/blog/web3</guid><description>Exploring skepticism around web3 technologies and centralized internet concepts.</description><pubDate>Mon, 10 Jan 2022 03:29:20 GMT</pubDate><content:encoded>&lt;p&gt;I have been pretty skeptical of the whole web3 craze that has been going on lately (let alone ceding control to certain large social media company…). Regardless, I thought this was a very interesting take on it and some of the problems present in the current “web3” technologies out there.&lt;/p&gt;
&lt;p&gt;I have a lot of conflicting ideas on “centralized” internet and technologies but I think there are a lot of really good points about it in this article.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://moxie.org/2022/01/07/web3-first-impressions.html&quot;&gt;Moxie Marlinspike &gt;&gt; Blog &gt;&gt; My first impressions of web3&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://moxie.org/2022/01/07/web3-first-impressions.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://moxie.org/2022/01/07/web3-first-impressions.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Homescreen - 2022</title><link>https://barnes.tech/blog/homescreen</link><guid isPermaLink="true">https://barnes.tech/blog/homescreen</guid><description>Explore my favorite iOS apps and widgets for productivity, organization, and social media on my home screen.</description><pubDate>Sun, 09 Jan 2022 10:10:29 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/homescreen.png&quot; alt=&quot;Picture of an iOS homescreen&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;As we start 2022, I thought it might be interesting to document my main home screen on my phone and talk about some of my favorite apps.&lt;/p&gt;
&lt;h2&gt;Widgets&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Fantastical&lt;/strong&gt; - Fantastical is an amazing calendar application. The subscription is a little pricey, and there are some good free calendar solutions out there. I also have the Google Calendar app on my home screen, which I’ll explain in a bit. On the second page, I have another Fantastical widget that shows me what is coming up next on my calendar, but on the home page I just like being able to see the day and date really clearly. Tapping on it opens up the Fantastical app. The built in iOS calendar app is very nice looking, but lacks a lot of features. It might not be a problem, but when you use Google Workspace or Microsoft 365 calendars, it is not very good at picking up changes very quickly, which to me completely defeats the purpose of the calendar app.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Carrot Weather&lt;/strong&gt; - I started using the Carrot Weather app years ago, because of the snarky comments that are pretty funny, but over the last year the developer added a huge amount of customization options, allowing you to essentially create your own personal weather app with exactly the info you want, and how you want it to look. Unfortunately over the last couple of years, things like the Air Quality Index and Wet Bulb temperature have become more important to track, and it’s really nice to be able to make those front and center.&lt;/p&gt;
&lt;h2&gt;Apps&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Google Calendar&lt;/strong&gt; - There are some features that only the Google Calendar app or website offer, such as seeing other people’s availability, or setting your time to out of office. It’s a little bit of a weird workflow, but for me it works to use both Google Calendar and Fantastical.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bear&lt;/strong&gt; - Bear is a markdown based note taking app that I really love using. I started using this when Evernote started becoming super bloated, slow, and costing too much money for what it does.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1Password&lt;/strong&gt; - 1Password is an amazing password manager that I highly recommend. You absolutely should use a password manager and generate complex and unique passwords, and for me 1Password is the best of all of them. I use it for business and personal, and it does a great job handling both, while also keeping them separate.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tweetbot&lt;/strong&gt; - I really dislike algorithmically based timelines in social media apps. I won’t go down that rabbit hole in this post, but needless to say, I think it’s extremely toxic. I don’t enjoy using the main Twitter app, but luckily Twitter has allowed 3rd party apps to build off their API, and there are some pretty good ones. Twitter has actually been enhancing their API recently which allows these apps to be even better. Both Twitterific and Tweetbot are fantastic, but I prefer the features available in Tweetbot personally. Chronological timeline, being able to mute people for specific amounts of time or indefinitely, and more.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Overcast&lt;/strong&gt; - My favorite podcast app. Simple to use, and has really great voice boost and smart speed technology to make podcasts even better. I listen to a lot of podcasts and use this all the time.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Apollo&lt;/strong&gt; - Same reasons as Tweetbot, but for Reddit. 3rd party app that makes the experience much more enjoyable and much less toxic.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Reeder&lt;/strong&gt; - This is a new app for me. This is a pretty great RSS reader, which recently added iCloud sync for the RSS feeds, which is important to me. Lots of RSS readers are good, but most of them require that you pay for an additional RSS aggregation service, and I personally really don’t want to do that.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Superhuman&lt;/strong&gt; - Superhuman is expensive, particularly if you are already paying for Google Workspace, but if you get a large volume of email, and sorting it quickly and efficiently is important to you, I highly recommend it. It saves me a huge amount of time every week and helps me stay organized. Secondary to that, I use the Gmail app over any other mail app. It integrates with the Gmail API rather than SMTP like most other apps do, and the notifications will be on time, and it loads your inbox and folders extremely quickly.&lt;/p&gt;</content:encoded></item><item><title>Intel Problems</title><link>https://barnes.tech/blog/intel-problems</link><guid isPermaLink="true">https://barnes.tech/blog/intel-problems</guid><description>An analysis of Intel&apos;s struggles in the tech industry amid rising competition from Apple and cloud providers.</description><pubDate>Wed, 20 Jan 2021 07:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/Intel.png&quot; alt=&quot;Intel Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;I have been saying for a couple of years that Intel has been dropping the ball big time. They have had massive delays over several promised product launches and process shrinks and unfortunately for them, the rest of the world has caught up or even surpassed them. They clearly totally missed the mobile revolution, and with big moves from companies like Apple moving to their own silicon design, and even public cloud providers like Google and Amazon making their own server silicon based on ARM, Intel has gone from dominant giant to playing defense.&lt;/p&gt;
&lt;p&gt;Ben Thompson writes about this in detail at Stratechery, and does an excellent job of summarizing some of the biggest problems facing Intel, which I highly recommend.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://stratechery.com/2021/intel-problems/&quot;&gt;Intel Problems&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://stratechery.com/2021/intel-problems/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://stratechery.com/2021/intel-problems/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>5G Misconceptions</title><link>https://barnes.tech/blog/5g-misconceptions</link><guid isPermaLink="true">https://barnes.tech/blog/5g-misconceptions</guid><description>Explore the rollout and potential of 5G technology compared to previous generations like 3G and 4G.</description><pubDate>Mon, 04 Jan 2021 00:54:46 GMT</pubDate><content:encoded>&lt;p&gt;There are so many tech journalists who are writing about how 5G doesn’t seem like it’s that big of a deal, then compare it to when networks changed to 3G and then 4G. There are a few things that stand out to me about the commentary that is consistent almost all across the board.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt; - They complain about how it isn’t super widely rolled out yet. They just have really short memories. Compared to 3G and 4G, the 5G rollout is MUCH further along in the same timeframe. In fact, I was working at Apple when 3G first rolled out, and it was an utter disaster. The network completely died when the iPhone 3G launched, and had consistent problems for several months after. 4G was definitely not as messy, but the coverage was sparse for a VERY long time. Both technologies revolutionized how we do things, once they hit maturity, and I don’t think 5G will be any exception.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt; - Speed tests are sometimes the same speed or slower than 4G LTE. Anyone who has worked in IT long enough knows that speed tests are only a small part of the overall network story. The speed you get to a speed test server is important, but it’s not all that is required for you to be able to do things on the internet. Sub 6GHz 5G speed tests are going to be approximately the same as 4G right now, and in some cases might be a little slower than LTE (it’s a brand new network still being rolled out, I think we can cut it some slack at the moment…) but that’s not the point of the sub 6GHz network. I’ll talk about that more in a bit.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt; - Sure, mmWave speed tests are pretty insane, but why do I need that much speed? Well, I think there are two answers to that. Maybe you don’t and never will, but I think that’s short sighted. At almost any point in the internets history, you can point to people saying that they don’t need more speed than whatever they are getting at the moment, but they don’t seem to acknowledge the fact that new technologies become available when more speed is accessible. At one point, loading pictures on a web page seemed crazy, now we can stream 4K TV and movies no problem, back up our whole computer to a cloud based backup service, and even stream console quality games in 4K over the internet with unbelievably low latency (Like Stadia)&lt;/p&gt;
&lt;p&gt;I think part of the confusion is that 5G is really two different stories coming out at the same time. The mmWave technology with insane speed (I got 2.2 Gb/s download speeds when I tested it on my phone yesterday), and the sub-6GHz technology. mmWave is really about building for the future, but will be a much slower rollout. The advertisements for 5G love to focus on the mmWave part. With those speeds and incredibly low latency, you could perform surgery remotely over a wireless connection. You could load gigantic AutoCAD files or Final Cut Pro files in minutes if not seconds. As I said earlier, this will also likely lead to technologies that we aren’t considering right now. Just because it isn’t widely available though, doesn’t mean it isn’t awesome and won’t be revolutionary.&lt;/p&gt;
&lt;p&gt;Sub 6GHz is a less flashy technology, but it is important for a few reasons. First, it can use the same towers as 4G LTE, so it can (and has been) deployed much faster. Verizon has a very good coverage map already, and AT&amp;#x26;T is getting close to nation wide coverage as well. The speed difference won’t be immediately evident, and may never be hugely faster than 4G LTE, but the two major advantages are related to network capacity. Similar to WiFi 6, all 5G network connections are using MIMO (Massive MIMO in 5G’s case), as well as beam forming, which will give you a more consistent network experience, as well as dramatically increase the number of connections a cell tower can handle at a time.&lt;/p&gt;
&lt;p&gt;A lot of people talk about how this will help at sporting events, or concerts (remember when we could go to those?) but it will also become increasingly important as more things connect to the internet, and can do so via cellular. I think carriers have been reluctant to allow IoT devices to connect to their network without a substantial premium, simply because of overall network capacity issues. With 5G that can, and will change. Over the next few years, look for more things to connect to cellular networks, and keep an eye on what cutting edge tech like mmWave opens up. In a few years it will seem obvious in retrospect.&lt;/p&gt;</content:encoded></item><item><title>Flash</title><link>https://barnes.tech/blog/flash</link><guid isPermaLink="true">https://barnes.tech/blog/flash</guid><description>Learn how to uninstall Adobe Flash from your Mac with a helpful script and links to resources.</description><pubDate>Fri, 01 Jan 2021 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;On December 31, 2020, Adobe finally officially pronounced Flash end of life. You really should have removed Flash a while ago but if you haven’t yet, now is definitely the time.&lt;/p&gt;
&lt;p&gt;Over here at &lt;a href=&quot;https://derflounder.wordpress.com/2021/01/01/adobe-flash-is-dead-lets-get-it-removed/&quot;&gt;Der Flounder&lt;/a&gt;, there’s a script for Mac that will help you do just that.&lt;/p&gt;
&lt;p&gt;Here’s a direct link to the script on GitHub - &lt;a href=&quot;https://github.com/rtrouton/rtrouton_scripts/tree/master/rtrouton_scripts/uninstallers/adobe_flash_uninstall&quot;&gt;Link&lt;/a&gt;&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://derflounder.wordpress.com/2021/01/01/adobe-flash-is-dead-lets-get-it-removed/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://derflounder.wordpress.com/2021/01/01/adobe-flash-is-dead-lets-get-it-removed/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://github.com/rtrouton/rtrouton_scripts/tree/master/rtrouton_scripts/uninstallers/adobe_flash_uninstall&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://github.com/rtrouton/rtrouton_scripts/tree/master/rtrouton_scripts/uninstallers/adobe_flash_uninstall&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>macOS FileVault</title><link>https://barnes.tech/blog/macos-filevault</link><guid isPermaLink="true">https://barnes.tech/blog/macos-filevault</guid><description>Learn about the OSQuery update that distinguishes between disk encryption and FileVault on modern Macs. Enhance your security knowledge.</description><pubDate>Wed, 30 Dec 2020 18:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/filevault.png&quot; alt=&quot;Filevault Icon&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;In a recent blog post, &lt;a href=&quot;https://kolide.com&quot;&gt;Kolide&lt;/a&gt; speaks about a recent update to OSQuery that will now correctly determine the difference between a modern Mac being encrypted vs. having FileVault enabled. Historically, those meant essentially the same thing. If your Mac was encrypted, it meant that FileVault was turned on. Ever since Apple started introducing the Secure Enclave on their Macs, however, that is no longer the case. All disks are encrypted, and that is not necessarily the same thing as having FileVault enabled.&lt;/p&gt;
&lt;p&gt;Kolide briefly explains this in this section of their post -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Before the introduction of the T2 security chip, disk encryption was synonymous with FileVault configuration on macOS. However, with hardware encryption this distinction became multi-faceted. This nuance was particularly problematic for security agents that did not differentiate between a disk that was ‘encrypted’ and a device that had FileVault configured.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Luckily OSQuery is now updated to know the difference. Read their full blog post to find out more info.&lt;/p&gt;
&lt;p&gt;One thing I wanted to add is why Apple does this. There are a few reasons why the disk is encrypted regardless of whether FileVault is enabled or not. There are many specific edge case reasons I won’t get into, but one of the biggest reasons is that it makes it much easier to erase the disk with this method. It also makes the process much more secure, without sacrificing speed. In fact, it’s significantly faster than it was historically.&lt;/p&gt;
&lt;p&gt;With old systems, if you booted to a recovery mode, or an external disk, then erased the internal disk of a computer, you were essentially just telling the disk “this space is now available and can be written over”. The data wasn’t actually erased, and much if not all of it could be recovered if someone knows what they are doing and has the right tools. If you were selling a machine, for instance, this isn’t very good. You could tell Disk Utility to write zeros over the whole disk, but this was a very slow process since it literally has to write data to the whole disk before it’s complete.&lt;/p&gt;
&lt;p&gt;With Macs using the Secure Enclave, and the whole disk is encrypted (again, even if FileVault isn’t enabled. Even if you don’t have a password on the machine at all) then all the machine needs to do to erase the whole disk securely is to erase the keys that were used to encrypt the disk. This effectively wipes the whole drive in a very secure way where the files are no longer recoverable and happens MUCH faster than writing zeros to the whole disk.&lt;/p&gt;
&lt;p&gt;All of this is important to know, however, I would still strongly recommend just enabling FileVault on your machine. It adds a significant layer of security to your machine, and the overhead performance cost of doing so is completely gone on modern Macs. Additionally, you absolutely should never have your computer not have a password at all anymore.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://kolide.com&quot;&gt;Kolide&lt;/a&gt; provides a hosted OSQuery instance that provides fast and detailed insight into your endpoints and is built around user-focused security. Check out their product and other blog posts.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://kolide.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://kolide.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Godaddy Fake Bonus</title><link>https://barnes.tech/blog/godaddy-fake-bonus</link><guid isPermaLink="true">https://barnes.tech/blog/godaddy-fake-bonus</guid><description>GoDaddy&apos;s phishing test backfires, causing employee frustration over a fake holiday bonus email.</description><pubDate>Sat, 26 Dec 2020 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;As originally reported in the Copper Courier, GoDaddy sent an email to employees this last week, promising a $650 bonus. The email starts -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;2020 has been a record year for GoDaddy, thanks to you!&lt;/p&gt;
&lt;p&gt;Though we cannot celebrate together during our annual Holiday Party, we want to show our appreciation and share a $650 one-time Holiday bonus!&lt;/p&gt;
&lt;p&gt;To ensure that you receive your one-time bonus in time for the Holidays, please select your location and fill in the details by Friday, December 18th.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The email was sent from happyholiday@godaddy.com and promised a small bonus in a year where everyone could desperately use some relief. Turns out, it was just an internal phishing test, and a few days later, another email was sent to everyone who clicked on the email from GoDaddy’s Chief Security Officer saying that they had failed a recent phishing test and will need to retake the company Security Awareness Social Engineering training.&lt;/p&gt;
&lt;p&gt;There are many problems I have with all of this. I’ll start with the most obvious, that I hope everyone can agree on. While I am not going to argue that someone who was actually trying to be malicious might try to pull something like this, because we know they would, that doesn’t mean that GoDaddy should be so incredibly tone-deaf during such an awful year. It would be one thing if they did this, and it was a phishing email, but the bonuses were still handed out. I still think that’s an asshole thing to do, but at least they wouldn’t be dangling a small piece of financial security over people and then yanking it away just to make people take another training.&lt;/p&gt;
&lt;p&gt;Additionally, the effectiveness of these kinds of tests are dubious at best. I have been in IT for many years, including managing many very large email deployments, and I would argue that this type of phishing email tests are absolutely useless. End-users need to be involved in security, absolutely, but this is not the right way to do it. You need users to understand the importance of security, know what to look for in emails that may potentially be malicious, and most importantly, you need them to buy into the overall security of your company. You need them to be invested in what’s best for the company. Purposely laying traps for your employees is not how you do that. That’s how you make your employees resent working for you, resent the security and IT teams, and just not want to engage in the company in general.&lt;/p&gt;
&lt;p&gt;Additionally, it is definitely possible with the right tools in place to almost completely eliminate phishing and malicious emails for your domain, particularly people trying to spoof your domain. Spoofing your domain is when you impersonate a company domain, in this case potentially making your email look like it’s coming from godaddy.com when it would really be coming from somewhere else. Since it is possible (I’d even say not that difficult) to very effectively block these kinds of attacks, I think that it is safe for employees to assume a certain level of baseline security within their organization, and if they see an email that looks like it’s legitimately from godaddy.com, and it made it through any filters that are in place, I don’t think it’s inappropriate to assume that the Security team did their jobs and it’s safe to click on that link. This is a failure of the Chief Security Officer, not of the employees at GoDaddy.&lt;/p&gt;
&lt;p&gt;I won’t name the company, but at a previous job, we were a subsidiary of a larger company. We had about 9,000 employees at the time, and our parent company reached out to us and told us that they wanted to do a phishing test, similar to this. It was not anywhere near this tone-deaf in its message, but regardless I pushed back for all of the reasons I listed above. I was told we needed to do it anyway.&lt;/p&gt;
&lt;p&gt;There was a 3rd party security company that was actually sending the emails on our behalf, and (shocker!) our spam/phishing filters immediately blocked it 100%. I had been told that I can’t tell anyone else on the team about this email, because IT was being targeted for this test as well. So I was asked to specifically put this sender on the permanent “allowlist” so they could send it again. It went out and a few people manually marked it as spam, which triggered an internal IT ticket, and one of our IT employees reviewed it, determined that it was not legitimate, and triggered a script to remove it from all end-users emails again. Only one person had clicked on the link out of all 9,000 employees before this process was triggered. Naturally, the 3rd party company and our parent company weren’t happy about this (the parent company had done much worse in this test).&lt;/p&gt;
&lt;p&gt;Eventually, we had to manually place the email in everyone’s inboxes manually, and essentially disable all of our security measures in order to allow the email to stay there. I had to let the IT team in on it to prevent our fail-safe processes from being triggered as well. Naturally, after disabling all of our security measures, many more people “fell for” the phishing email and were required to take security training courses. In this particular case, it reflected poorly on our own IT department, not even on the parent company or the other 3rd party “security” company that was running this test. To this day, that whole experience does not sit well with me.&lt;/p&gt;
&lt;p&gt;As long as these kinds of “gotcha” security awareness, we aren’t going to solve anything. It’s demoralizing, and it does not encourage the kind of user buy-in that is needed to have effective security.&lt;/p&gt;</content:encoded></item><item><title>Chrome Keywords Examples</title><link>https://barnes.tech/blog/chrome-keywords-examples</link><guid isPermaLink="true">https://barnes.tech/blog/chrome-keywords-examples</guid><description>Explore useful Chrome keywords with example URLs to enhance your search efficiency and productivity.</description><pubDate>Fri, 15 Mar 2019 00:49:40 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/chrome.svg&quot; alt=&quot;Google Chrome logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Some follow-up specific examples regarding my last article about Chrome Keywords. In these examples, you can set the keyword to whatever you would like, and whatever makes sense to you, but I wanted to provide some example URL&apos;s with the &lt;code&gt;%s&lt;/code&gt; in the string. The Keywords I provide below are just what I have used and what I recommend.&lt;/p&gt;
&lt;h2&gt;Duck Duck Go -&lt;/h2&gt;
&lt;p&gt;Keyword - duck
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://duckduckgo.com/?q=%s
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Bing -&lt;/h2&gt;
&lt;p&gt;Keyword - bing
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://www.bing.com/search?q=%s&amp;#x26;PC=U316&amp;#x26;FORM=CHROMN
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Google Cloud Search -&lt;/h2&gt;
&lt;p&gt;Keyword - cloud
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://cloudsearch.google.com/cloudsearch/search?authuser=0&amp;#x26;q=%s
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Wolfram Alpha -&lt;/h2&gt;
&lt;p&gt;Keyword - wolf (also considered “wa”)
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;http://www.wolframalpha.com/input/?i=%s
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;GitHub -&lt;/h2&gt;
&lt;p&gt;Keyword - github
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://github.com/search?q=%s&amp;#x26;ref=opensearch
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Google Drive -&lt;/h2&gt;
&lt;p&gt;Keyword - drive
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://drive.google.com/drive/search?q=%s
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Google Maps -&lt;/h2&gt;
&lt;p&gt;Keyword - maps
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://www.google.com/maps/search/%s?hl=en&amp;#x26;source=opensearch
&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;YouTube -&lt;/h2&gt;
&lt;p&gt;Keyword - youtube
URL with query in place -&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://www.youtube.com/results?search_query=%s&amp;#x26;page={startPage?}&amp;#x26;utm_source=opensearch
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Hope these are helpful, and can get you started on thinking of your own keywords to use!&lt;/p&gt;</content:encoded></item><item><title>Chrome Keywords - Power User</title><link>https://barnes.tech/blog/chrome-keywords-power-user</link><guid isPermaLink="true">https://barnes.tech/blog/chrome-keywords-power-user</guid><description>Learn how to streamline your workflow in Chrome with custom keywords for Google Cloudsearch and other search engines.</description><pubDate>Wed, 06 Mar 2019 07:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/chrome.svg&quot; alt=&quot;Google Chrome logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;This week I learned about a powerful feature within Chrome that has honestly completely changed my workflow. After looking around on the internet I found out that this has existed for a while, but it is something new to me, so I thought I would share.&lt;/p&gt;
&lt;p&gt;I discovered this because I was trying to find a way to use Google Cloudsearch (&lt;a href=&quot;https://gsuite.google.com/products/cloud-search/&quot;&gt;Google Cloud Search: Search Gmail, Drive &amp;#x26; More | G Suite&lt;/a&gt;) more effectively. If you are a G Suite customer and haven’t used Cloudsearch before, I would highly recommend you give it a shot. Think of it like Google, but for your G Suite data. You can type a search in for just about anything, and it will find it in your G Suite docs, emails, calendar, etc. and is much better at understanding natural language than the Gmail, Docs, or calendar searches that are built in to each individual product. They also recently opened up the API to allow applications to use Cloudsearch with external applications as well. I will do a longer write up on Cloudsearch at some point, but it’s an amazing tool, and I rarely use it because you need to go to a specific URL (&lt;code&gt;https://cloudsearch.google.com&lt;/code&gt;) to use it. I wanted a chrome extension, or a keyboard shortcut that I could use so I could use Cloudsearch more easily.&lt;/p&gt;
&lt;p&gt;In searching for some solution on how to invoke Cloudsearch more easily, it was recommended to me to set up a “keyword” in chrome. Something like “Cloud” that I could type and it would know to use Cloudsearch to do whatever I was typing next.&lt;/p&gt;
&lt;p&gt;To edit keywords, open up your Chrome settings by going to &lt;code&gt;chrome://settings&lt;/code&gt; and then scroll down to Manage Search Engines. You can also go there directly by going to&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;chrome://settings/searchEngines
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Google will automatically create some keywords for you. I didn’t realize that this is what it was doing, but for instance if I typed in &lt;code&gt;youtube.com&lt;/code&gt; in my chrome and just did a space at the end of it, it would come up with a search field for YouTube, without even going to the site. The cool thing is, these are all customizable, and you can even go in and create your own!&lt;/p&gt;
&lt;p&gt;For me, the first thing I did was remove the .com from all of the ones that I actually use. I changed &lt;code&gt;youtube.com&lt;/code&gt; to just &lt;code&gt;youtube&lt;/code&gt;,&lt;code&gt;github.com&lt;/code&gt; to &lt;code&gt;github&lt;/code&gt;, and even made &lt;code&gt;maps.google.com&lt;/code&gt; to just &lt;code&gt;maps&lt;/code&gt;. If you want, you can make it really easy to use a different search engine, just by typing a keyword first. For instance I set up &lt;a href=&quot;https://duckduckgo.com/&quot;&gt;duck duck go&lt;/a&gt; with the keyword &lt;code&gt;duck&lt;/code&gt; to make it easy to switch, in case I want to do a more private search.&lt;/p&gt;
&lt;p&gt;In the case of Cloudsearch, they didn’t pre-populate one for me to edit, so I needed to add a new one on my own. I went in to Add under “Other search engines” and named it Cloud Search, with the keyword &lt;code&gt;cloud&lt;/code&gt; (you can use whatever you’d like, that’s just what I chose). In the URL section you need to replace the query section of the URL with &lt;code&gt;%s&lt;/code&gt;, so in this case my URL is&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;https://cloudsearch.google.com/cloudsearch/search?authuser=0&amp;#x26;q=%s
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;That’s it! Now I can just type &lt;code&gt;cloud&lt;/code&gt; in to the URL, followed by a space, and it will just search my Google Cloud search for whatever I type in. For me this was a HUGE time saver!&lt;/p&gt;</content:encoded></item><item><title>Steve Jobs - Seven Years Later</title><link>https://barnes.tech/blog/steve-jobs-seven-years-later</link><guid isPermaLink="true">https://barnes.tech/blog/steve-jobs-seven-years-later</guid><description>Reflecting on Steve Jobs&apos; impact and his memorable Stanford commencement speech.</description><pubDate>Sat, 06 Oct 2018 06:24:21 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/steve-jobs.png&quot; alt=&quot;Portrait of Steve Jobs&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Seven years ago today, Steve Jobs passed away. I wanted to briefly reflect on him, as he had a huge impact on my life and is someone I greatly admired.&lt;/p&gt;
&lt;p&gt;I had the fortune of working for Apple for several years, and after Steve&apos;s death, we closed every Apple Store in the company so that we could live stream the memorial service. It was one of the most meaningful memories that I have, and one of the actual attendees brought me a program from the memorial, which is one of my prized possessions.&lt;/p&gt;
&lt;p&gt;In the program, it contains all of the words from his Stanford commencement speech, which I can honestly say changed my life the first time I heard it, and is something I revisit at least once a year. Here is the full text of the speech -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I am honored to be with you today at your commencement from one of the finest universities in the world. I never graduated from college. Truth be told, this is the closest I’ve ever gotten to a college graduation. Today I want to tell you three stories from my life. That’s it. No big deal. Just three stories.&lt;/p&gt;
&lt;p&gt;The first story is about connecting the dots.&lt;/p&gt;
&lt;p&gt;I dropped out of Reed College after the first 6 months, but then stayed around as a drop-in for another 18 months or so before I really quit. So why did I drop out?&lt;/p&gt;
&lt;p&gt;It started before I was born. My biological mother was a young, unwed college graduate student, and she decided to put me up for adoption. She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted at birth by a lawyer and his wife. Except that when I popped out they decided at the last minute that they really wanted a girl. So my parents, who were on a waiting list, got a call in the middle of the night asking: “We have an unexpected baby boy; do you want him?” They said: “Of course.” My biological mother later found out that my mother had never graduated from college and that my father had never graduated from high school. She refused to sign the final adoption papers. She only relented a few months later when my parents promised that I would someday go to college.&lt;/p&gt;
&lt;p&gt;And 17 years later I did go to college. But I naively chose a college that was almost as expensive as Stanford, and all of my working-class parents’ savings were being spent on my college tuition. After six months, I couldn’t see the value in it. I had no idea what I wanted to do with my life and no idea how college was going to help me figure it out. And here I was spending all of the money my parents had saved their entire life. So I decided to drop out and trust that it would all work out OK. It was pretty scary at the time, but looking back it was one of the best decisions I ever made. The minute I dropped out I could stop taking the required classes that didn’t interest me, and begin dropping in on the ones that looked interesting.&lt;/p&gt;
&lt;p&gt;It wasn’t all romantic. I didn’t have a dorm room, so I slept on the floor in friends’ rooms, I returned Coke bottles for the 5¢ deposits to buy food with, and I would walk the 7 miles across town every Sunday night to get one good meal a week at the Hare Krishna temple. I loved it. And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on. Let me give you one example:&lt;/p&gt;
&lt;p&gt;Reed College at that time offered perhaps the best calligraphy instruction in the country. Throughout the campus every poster, every label on every drawer, was beautifully hand calligraphed. Because I had dropped out and didn’t have to take the normal classes, I decided to take a calligraphy class to learn how to do this. I learned about serif and sans serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great. It was beautiful, historical, artistically subtle in a way that science can’t capture, and I found it fascinating.&lt;/p&gt;
&lt;p&gt;None of this had even a hope of any practical application in my life. But 10 years later, when we were designing the first Macintosh computer, it all came back to me. And we designed it all into the Mac. It was the first computer with beautiful typography. If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts. And since Windows just copied the Mac, it’s likely that no personal computer would have them. If I had never dropped out, I would have never dropped in on this calligraphy class, and personal computers might not have the wonderful typography that they do. Of course it was impossible to connect the dots looking forward when I was in college. But it was very, very clear looking backward 10 years later.&lt;/p&gt;
&lt;p&gt;Again, you can’t connect the dots looking forward; you can only connect them looking backward. So you have to trust that the dots will somehow connect in your future. You have to trust in something — your gut, destiny, life, karma, whatever. This approach has never let me down, and it has made all the difference in my life.&lt;/p&gt;
&lt;p&gt;My second story is about love and loss.&lt;/p&gt;
&lt;p&gt;I was lucky — I found what I loved to do early in life. Woz and I started Apple in my parents’ garage when I was 20. We worked hard, and in 10 years Apple had grown from just the two of us in a garage into a $2 billion company with over 4,000 employees. We had just released our finest creation — the Macintosh — a year earlier, and I had just turned 30. And then I got fired. How can you get fired from a company you started? Well, as Apple grew we hired someone who I thought was very talented to run the company with me, and for the first year or so things went well. But then our visions of the future began to diverge and eventually we had a falling out. When we did, our Board of Directors sided with him. So at 30 I was out. And very publicly out. What had been the focus of my entire adult life was gone, and it was devastating.&lt;/p&gt;
&lt;p&gt;I really didn’t know what to do for a few months. I felt that I had let the previous generation of entrepreneurs down — that I had dropped the baton as it was being passed to me. I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly. I was a very public failure, and I even thought about running away from the valley. But something slowly began to dawn on me — I still loved what I did. The turn of events at Apple had not changed that one bit. I had been rejected, but I was still in love. And so I decided to start over.&lt;/p&gt;
&lt;p&gt;I didn’t see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me. The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything. It freed me to enter one of the most creative periods of my life.&lt;/p&gt;
&lt;p&gt;During the next five years, I started a company named NeXT, another company named Pixar, and fell in love with an amazing woman who would become my wife. Pixar went on to create the world’s first computer animated feature film, Toy Story, and is now the most successful animation studio in the world. In a remarkable turn of events, Apple bought NeXT, I returned to Apple, and the technology we developed at NeXT is at the heart of Apple’s current renaissance. And Laurene and I have a wonderful family together.&lt;/p&gt;
&lt;p&gt;I’m pretty sure none of this would have happened if I hadn’t been fired from Apple. It was awful tasting medicine, but I guess the patient needed it. Sometimes life hits you in the head with a brick. Don’t lose faith. I’m convinced that the only thing that kept me going was that I loved what I did. You’ve got to find what you love. And that is as true for your work as it is for your lovers. Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believe is great work. And the only way to do great work is to love what you do. If you haven’t found it yet, keep looking. Don’t settle. As with all matters of the heart, you’ll know when you find it. And, like any great relationship, it just gets better and better as the years roll on. So keep looking until you find it. Don’t settle.&lt;/p&gt;
&lt;p&gt;My third story is about death.&lt;/p&gt;
&lt;p&gt;When I was 17, I read a quote that went something like: “If you live each day as if it was your last, someday you’ll most certainly be right.” It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself: “If today were the last day of my life, would I want to do what I am about to do today?” And whenever the answer has been “No” for too many days in a row, I know I need to change something.&lt;/p&gt;
&lt;p&gt;Remembering that I’ll be dead soon is the most important tool I’ve ever encountered to help me make the big choices in life. Because almost everything — all external expectations, all pride, all fear of embarrassment or failure — these things just fall away in the face of death, leaving only what is truly important. Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose. You are already naked. There is no reason not to follow your heart.&lt;/p&gt;
&lt;p&gt;About a year ago I was diagnosed with cancer. I had a scan at 7:30 in the morning, and it clearly showed a tumor on my pancreas. I didn’t even know what a pancreas was. The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months. My doctor advised me to go home and get my affairs in order, which is doctor’s code for prepare to die. It means to try to tell your kids everything you thought you’d have the next 10 years to tell them in just a few months. It means to make sure everything is buttoned up so that it will be as easy as possible for your family. It means to say your goodbyes.&lt;/p&gt;
&lt;p&gt;I lived with that diagnosis all day. Later that evening I had a biopsy, where they stuck an endoscope down my throat, through my stomach and into my intestines, put a needle into my pancreas and got a few cells from the tumor. I was sedated, but my wife, who was there, told me that when they viewed the cells under a microscope the doctors started crying because it turned out to be a very rare form of pancreatic cancer that is curable with surgery. I had the surgery and I’m fine now.&lt;/p&gt;
&lt;p&gt;This was the closest I’ve been to facing death, and I hope it’s the closest I get for a few more decades. Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept:&lt;/p&gt;
&lt;p&gt;No one wants to die. Even people who want to go to heaven don’t want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life’s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.&lt;/p&gt;
&lt;p&gt;Your time is limited, so don’t waste it living someone else’s life. Don’t be trapped by dogma — which is living with the results of other people’s thinking. Don’t let the noise of others’ opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary.&lt;/p&gt;
&lt;p&gt;When I was young, there was an amazing publication called The Whole Earth Catalog, which was one of the bibles of my generation. It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with his poetic touch. This was in the late 1960s, before personal computers and desktop publishing, so it was all made with typewriters, scissors and Polaroid cameras. It was sort of like Google in paperback form, 35 years before Google came along: It was idealistic, and overflowing with neat tools and great notions.&lt;/p&gt;
&lt;p&gt;Stewart and his team put out several issues of The Whole Earth Catalog, and then when it had run its course, they put out a final issue. It was the mid-1970s, and I was your age. On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous. Beneath it were the words: “Stay Hungry. Stay Foolish.” It was their farewell message as they signed off. Stay Hungry. Stay Foolish. And I have always wished that for myself. And now, as you graduate to begin anew, I wish that for you.&lt;/p&gt;
&lt;p&gt;Stay Hungry. Stay Foolish.&lt;/p&gt;
&lt;p&gt;Thank you all very much.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;hr&gt;</content:encoded></item><item><title>1Password and iOS12 - Released!</title><link>https://barnes.tech/blog/1password-and-ios12-released</link><guid isPermaLink="true">https://barnes.tech/blog/1password-and-ios12-released</guid><description>Explore iOS 12&apos;s new password manager support and how it enhances your workflow on Apple devices.</description><pubDate>Tue, 18 Sep 2018 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/1password-ios12-tweet1.png&quot; alt=&quot;Tweet from 1Password announcing iOS 12 support&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Apple released &lt;a href=&quot;https://web.archive.org/web/20181225222547/https://www.apple.com/ios/ios-12/&quot;&gt;iOS 12&lt;/a&gt; yesterday, with a whole bunch of awesome new features.&lt;/p&gt;
&lt;p&gt;One of my favorite new features, however, has largely flown under the radar. At WWDC, it was announced in one of the developer sessions that they would be adding support for password managers to use the native API for password auto fill, meaning Dashlane, 1Password, LastPass, and others would be able to present you your managed passwords natively in iOS, without you needing to link it to the other app.&lt;/p&gt;
&lt;p&gt;This seems like it may be a small deal, but it honestly has already radically changed my workflow on iOS for the better.&lt;/p&gt;
&lt;p&gt;More information about how this works, as well as a few other features of iOS 12 that weren&apos;t directly talked about by Apple at their developer conference can be found &lt;a href=&quot;https://www.theverge.com/2018/6/4/17425594/best-ios-12-features-apple-wwdc-2018&quot;&gt;here, at The Verge&lt;/a&gt;, by Chris Welch.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://web.archive.org/web/20181225222547/https://www.apple.com/ios/ios-12/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://web.archive.org/web/20181225222547/https://www.apple.com/ios/ios-12/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.theverge.com/2018/6/4/17425594/best-ios-12-features-apple-wwdc-2018&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.theverge.com/2018/6/4/17425594/best-ios-12-features-apple-wwdc-2018&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Back to my Mac Removal</title><link>https://barnes.tech/blog/back-to-mac</link><guid isPermaLink="true">https://barnes.tech/blog/back-to-mac</guid><description>Apple removes &apos;Back to my Mac&apos; in macOS Mojave, suggesting alternatives like screen sharing and Apple Remote Desktop.</description><pubDate>Tue, 21 Aug 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;Apple has made the decision to remove &quot;Back to my Mac&quot; from the forthcoming macOS Mojave.&lt;/p&gt;
&lt;p&gt;I have had mixed luck with Back to my Mac. When it works, it works well, but it seems like a lot of the time it just doesn&apos;t connect, and doesn&apos;t give you a clear reason as to what happened, or how to fix it.&lt;/p&gt;
&lt;p&gt;From &lt;a href=&quot;https://support.apple.com/en-us/HT208922&quot;&gt;Apple&apos;s support site&lt;/a&gt; -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you have multiple Macs, screen sharing lets you use one Mac to view and control your other Mac remotely. This means you can open, move, and close files and windows, and use apps — even if you&apos;re in another location — so you can always get what you need. Learn how to set up and use screen sharing&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The part that is interesting to me is the &lt;strong&gt;even if you&apos;re in another location&lt;/strong&gt;. It&apos;s not very clear to me what that means. Apple also recommends &lt;a href=&quot;https://itunes.apple.com/us/app/apple-remote-desktop/id409907375?mt=12&quot;&gt;Apple Remote Desktop&lt;/a&gt; for remote Mac management, and again mentions the term &lt;strong&gt;another location&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If you have more than one Mac, Apple Remote Desktop also lets you run apps and work with files that are on your other Mac, even if you&apos;re in another location. So if you want to run an app that&apos;s only on your other Mac, you can. Learn more about how to use Apple Remote Desktop.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Maybe I&apos;m reading in to this, but that phrase makes me think that you&apos;ll basically be able to do the same thing that you can now, it&apos;s just a different mechanism than &quot;Back to my Mac&quot; has been. It&apos;s also interesting to me that Apple talks about using &lt;a href=&quot;https://itunes.apple.com/us/app/apple-remote-desktop/id409907375?mt=12&quot;&gt;Apple Remote Desktop&lt;/a&gt;, and I wonder if they&apos;ll finally give that some love after years of neglect.&lt;/p&gt;
&lt;p&gt;Apple has a very interesting feature in iMessage where you can request and grant screen share with other people, presumably for things like troubleshooting. I wonder if anything is going to happen to that feature in Mojave.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://itunes.apple.com/us/app/apple-remote-desktop/id409907375?mt=12&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://itunes.apple.com/us/app/apple-remote-desktop/id409907375?mt=12&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT208922&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://support.apple.com/en-us/HT208922&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Workspace Can Now Alert Admins of Government Based Attacks</title><link>https://barnes.tech/blog/google-alert-state-sponsored-attacks</link><guid isPermaLink="true">https://barnes.tech/blog/google-alert-state-sponsored-attacks</guid><description>Google Workspace now alerts admins of potential government-backed attacks on users, enhancing security for organizations.</description><pubDate>Wed, 01 Aug 2018 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Google today &lt;a href=&quot;https://gsuiteupdates.googleblog.com/2018/08/control-government-backed-attack-alerts.html&quot;&gt;announced&lt;/a&gt; that in their G Suite accounts, admins will be able to set up alerts based on if Google believes that a government based attack has been attempted on any users within the domain.&lt;/p&gt;
&lt;p&gt;Google writes -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;If an admin chooses to turn the feature on, an email alert (to admins) is triggered when we believe a government-backed attacker has likely attempted to access a user’s account or computer through phishing, malware, or another method. It does not necessarily mean that the account has been compromised or that there was a widespread attack on an organization.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I have been the G Suite administrator for a very large domain for some time now, and I have often wondered why political campaigns don&apos;t use something like G Suite for their email, considering the security tools that Google offers. Between security keys to log in, Google AI backed phishing and malware detection, spoofed email and domain detection, and several other security tools, I feel like it&apos;s definitely possible to protect something like a political campaign from email attacks.&lt;/p&gt;
&lt;p&gt;This new tool makes total sense given the current political climate, as well as the information companies like Google are able to gather at scale. I wasn&apos;t expecting any sort of announcement like this, but I think it&apos;s a really cool tool.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://gsuiteupdates.googleblog.com/2018/08/control-government-backed-attack-alerts.html&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://gsuiteupdates.googleblog.com/2018/08/control-government-backed-attack-alerts.html&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Google Employee Phishing</title><link>https://barnes.tech/blog/google-employee-phishing</link><guid isPermaLink="true">https://barnes.tech/blog/google-employee-phishing</guid><description>Explore how Google effectively eliminated employee phishing with security keys and advanced G Suite protections.</description><pubDate>Tue, 24 Jul 2018 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/google-logo.svg&quot; alt=&quot;Google Logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;The timing of &lt;a href=&quot;https://krebsonsecurity.com/2018/07/google-security-keys-neutralized-employee-phishing/&quot;&gt;this report&lt;/a&gt; form Brian Krebs on his security blog &lt;a href=&quot;https://krebsonsecurity.com&quot;&gt;Krebs on Security&lt;/a&gt;, was perfect. This morning I was getting on a flight to the bay area, and right as I was getting on the plane, I received a chat message from someone wanting me to look in to an email they had received and weren&apos;t sure if it was legitimate or not.&lt;/p&gt;
&lt;p&gt;For me it was relatively easy to see that it was a phishing scheme, and since the user forwarded it to me for further inspection, clearly the user felt so too.&lt;/p&gt;
&lt;p&gt;My next thought was &quot;That&apos;s strange, I can&apos;t remember the last time we actually had a phishing attack even show up in a users inbox. We have 10,000 licenses in our G Suite account, and it has genuinely been months since we&apos;ve had a single phishing attack. It wasn&apos;t that long ago, that there were dozens to hundreds per day.&lt;/p&gt;
&lt;p&gt;An interesting thought, but this week I am down at Google&apos;s Cloud Next conference, learning about all sorts of things, and it was interesting timing with everything. I went to dinner with a couple of Googlers, and they were mentioning some of the very strict security guidelines that they have to follow, then I get back to my hotel and read Krebs article about how Google has 100% effectively eliminated phishing entirely since early 2017. From Krebs -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Google has not had any of its 85,000+ employees successfully phished on their work-related accounts since early 2017, when it began requiring all employees to use physical Security Keys in place of passwords and one-time codes&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;85,000 employees is a lot of people that can make mistakes, and on top of that, I would wager Google is a huge target for this kind of stuff. I&apos;ll bet before any filtering, each employee at Google, regardless of role would bet bombarded with toxic email.&lt;/p&gt;
&lt;p&gt;Again, I&apos;m super impressed by that number. We do well with our 10,000 accounts, but not perfect.&lt;/p&gt;
&lt;p&gt;It&apos;s hard to mention all of this without singing praises of G Suite and Google Cloud. This sounds like a sales-pitch but I can assure you I&apos;m not getting paid for this. G Suite&apos;s set of anti-phishing, anti-malware, and frankly whole security suite have made it very easy to effectively manage all of this kind of mess. Google Cloud&apos;s tooling runs G Suite, which gives powerful analytics and searching capability, as well as how it allows G Suite to use AI to help with things like Phishing and malware detection, and much more.&lt;/p&gt;
&lt;p&gt;Google, according to this article has taken it up even further on their own computers.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://krebsonsecurity.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://krebsonsecurity.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://krebsonsecurity.com/2018/07/google-security-keys-neutralized-employee-phishing/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://krebsonsecurity.com/2018/07/google-security-keys-neutralized-employee-phishing/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple Combines AI/ML Team With Siri Team</title><link>https://barnes.tech/blog/apple-combines-aiml-team-with-siri-team</link><guid isPermaLink="true">https://barnes.tech/blog/apple-combines-aiml-team-with-siri-team</guid><description>Apple merges its AI/ML and Siri teams under John Giannandrea, aiming to enhance Siri&apos;s functionality and integration.</description><pubDate>Tue, 10 Jul 2018 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/siri.png&quot; alt=&quot;Siri icon&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Matthew Panzarino, at Tech Crunch -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple is creating a new AI/ML team that brings together its Core ML and Siri teams under one leader in John Giannandrea.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;Apple confirmed this morning that the combined Artificial Intelligence and Machine Learning team, which houses Siri, will be led by the recent hire, who came to Apple this year after an eight-year stint at Google, where he led the Machine Intelligence, Research and Search teams. Before that he founded Metaweb Technologies and Tellme.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;The internal structures of the Siri and Core ML teams will remain the same, but they will now answer to Giannandrea. Apple’s internal structure means that the teams will likely remain integrated across the org as they’re wedded to various projects, including developer tools, mapping, Core OS and more. ML is everywhere, basically.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;I&apos;m very excited for what this can mean for Siri and AI/ML at Apple. Although Apple is pretty far behind in this realm, the article brings up a good point about how Apple has by far the largest edge compute network in the world. Edge computing is a term associated with cloud computing, that refers to computing happening on users devices instead of in a datacenter somewhere. Both datacenter cloud computing and edge computing have their own unique advantages. It will be interesting to see where this all goes.&lt;/p&gt;
&lt;p&gt;Siri is clearly way behind Google Assistant, or Amazon Echo in terms of functionality, however it has advantages in how it&apos;s so tightly integrated in to the Apple ecosystem, that if &lt;a href=&quot;https://www.apple.com/leadership/john-giannandrea/&quot;&gt;John&lt;/a&gt; and his new team can iron out some of the basic functionality, I think Siri becomes a serious player again.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://www.apple.com/leadership/john-giannandrea/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.apple.com/leadership/john-giannandrea/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Health Data</title><link>https://barnes.tech/blog/health-data</link><guid isPermaLink="true">https://barnes.tech/blog/health-data</guid><description>Explore Apple&apos;s Health app feature for securely storing and visualizing health records from multiple providers.</description><pubDate>Wed, 04 Jul 2018 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple-health.png&quot; alt=&quot;Apple Health icon&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;When Apple released iOS 11.3, they quietly announced the beta of a new feature within the Health app.&lt;/p&gt;
&lt;p&gt;From Apple -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;With the Health app in iOS 11.3, a new beta feature makes it easier than ever for users to visualize and securely store their health records. Now your patients can aggregate their health records from multiple institutions alongside their patient-generated data, creating a more holistic view of their health.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;To me this is fascinating. One of the big problems with health records is that they are almost always isolated to whatever healthcare system you use. With rare exceptions, if you see a doctor in one system, and for whatever reason need to see another doctor in a different system (different state, or sometimes your work may change medical plans), the second doctor can’t directly see any information about your first visit. Sometimes they can request those records, but it’s often a surprisingly manual task for all that are involved.&lt;/p&gt;
&lt;p&gt;Apple isn’t solving all of the problem, at least yet, but another big problem is how difficult it can be to view your own medical records. Sure, you have the “right” to, but that doesn’t mean anyone is going to make it easy for you. At least until now.&lt;/p&gt;
&lt;p&gt;If your medical provider (or multiple providers) support Apple’s new Health feature, it will import and organize all the data for you. It presents it in a clean, easy to understand manner, and if it’s importing from multiple sources, it will even combine the data for you.&lt;/p&gt;
&lt;p&gt;Nation wide, many providers don’t support this feature yet, but they are being added at a surprisingly good clip. I noticed this evening that my provider, Intermountain Healthcare, was on the list, so I gave it a shot. One quick login to my online account and everything populated in a matter of minutes. It’s remarkably simple. Within a few more minutes of looking at my data, I could quickly see all my doctors appointments, medication, lab results, etc, and it all made sense to me.&lt;/p&gt;
&lt;p&gt;This by no means solves the whole problem with medical records, but I think it’s a huge step in the right direction. It may seem like a weird thing to get excited about, but I’m excited about it. Now that my medical records are stored on my phone, I’m even more glad Apple takes an obsessive approach to individual privacy. I’m hopeful this is just the first step in Apple trying to revolutionize even a small part of the medical system.&lt;/p&gt;
&lt;p&gt;Check &lt;a href=&quot;https://support.apple.com/en-us/HT208647&quot;&gt;here&lt;/a&gt; to see the list of supported providers.&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://support.apple.com/en-us/HT208647&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://support.apple.com/en-us/HT208647&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Apple Maps</title><link>https://barnes.tech/blog/apple-maps</link><guid isPermaLink="true">https://barnes.tech/blog/apple-maps</guid><description>Apple Maps is getting a complete redesign in iOS 12, focusing on improved accuracy, searchability, and user privacy.</description><pubDate>Sun, 01 Jul 2018 06:00:00 GMT</pubDate><content:encoded>&lt;div style=&quot;text-align: center; margin: 1rem 0;&quot;&gt;
      &lt;img src=&quot;https://barnes.tech/apple-maps.svg&quot; alt=&quot;Apple Maps logo&quot; style=&quot;max-width: 480px; width: 100%; height: auto; border-radius: 8px;&quot; /&gt;
    &lt;/div&gt;
&lt;p&gt;Matthew Panzarino, writing for &lt;a href=&quot;https://techcrunch.com&quot;&gt;Tech Crunch&lt;/a&gt; this last week broke the news that Apple would be redesigning their maps from the ground up in iOS 12.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;This is nothing less than a full re-set of Maps and it’s been four years in the making, which is when Apple began to develop its new data-gathering systems. Eventually, Apple will no longer rely on third-party data to provide the basis for its maps, which has been one of its major pitfalls from the beginning.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This was interesting to me, because although I knew Apple was working with 3rd party companies to augment their map data, I was under the impression that they still created the majority of the data already.&lt;/p&gt;
&lt;p&gt;I have mixed feelings on this whole story. On the one hand, Apple Maps definitely needs some love, as it has not worked very well since it was introduced six years ago. Although the maps has noticeably improved since it&apos;s initial launch, I have found that I still fairly frequently have it search for an address that is nowhere near what I&apos;m actually searching for. Sometimes, maddeningly, searching for the exact same thing more than once yields different results.&lt;/p&gt;
&lt;p&gt;Matthew interviewed &lt;a href=&quot;https://www.apple.com/leadership/eddy-cue/&quot;&gt;Eddie Cue&lt;/a&gt;, SVP Internet Software and Services, who has taken over the maps project at Apple for this article, who to his credit did not seem to shy away from the fact that Apple messed up with Maps, and that they need to do better. They seem to acknowledge and understand what the problems are, but I wonder if they really know how to fix it.&lt;/p&gt;
&lt;p&gt;To me, one of the worst parts of Maps is the searchability. Matthew briefly discusses this in one paragraph -&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Search is also being revamped to make sure that you get more relevant results (on the correct continents) than ever before. Navigation, especially pedestrian guidance, also gets a big boost. Parking areas and building details to get you the last few feet to your destination are included, as well.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That &lt;strong&gt;sounds&lt;/strong&gt; like the right things to say, but it doesn&apos;t exactly have the same substance as the rest of the article does. To me, things like that worry me that this won&apos;t be enough, or more accurately that they won&apos;t be focusing on the right things.&lt;/p&gt;
&lt;p&gt;Emphasized several times in this article is how importantly Apple is taking privacy. I think this is becoming more and more important in today&apos;s world, and I truly appreciate the effort that Apple puts in to each product to protect the users privacy. I&apos;m not sure if this is making a tangible difference in who wants Apple products versus any other product, but in a way that makes it all the more impressive that Apple puts the time and money in to doing it correctly. It&apos;s the right thing to do, and I&apos;m glad they are willing to do it.&lt;/p&gt;
&lt;p&gt;I do look forward to the improved accuracy and visual upgrades that are coming to Apple Maps. Apple&apos;s attention to detail, and tight system integration allow them to make a truly beautiful and easy to use map system in to iOS. I genuinely hope that they are building a system that is enough of an improvement that people can, and will, rely on it for their mapping and give other companies a run for their money.&lt;/p&gt;
&lt;p&gt;I think the timing of this new map data is interesting, given iOS 12 will allow 3rd party map apps to integrate with CarPlay. To be completely honest, the only times I ever used Apple Maps instead of Google Maps was if I am plugged in to my car, so I can see it on the dashboard. If I ever needed to actually look for something, I would switch to Google Maps.&lt;/p&gt;
&lt;p&gt;I&apos;m willing to give it another shot, whenever this becomes available outside of Northern California. I wonder how many other people will.&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;https://techcrunch.com/2018/06/29/questions-about-apples-new-maps-answered/&quot;&gt;Follow up article with Q&amp;#x26;A&lt;/a&gt;, also by Matthew Panzarino&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://techcrunch.com/2018/06/29/questions-about-apples-new-maps-answered/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://techcrunch.com/2018/06/29/questions-about-apples-new-maps-answered/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;https://www.apple.com/leadership/eddy-cue/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://www.apple.com/leadership/eddy-cue/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item><item><title>Every Default Mac OS Wallpaper in Glorious 6K Resolution</title><link>https://barnes.tech/blog/every-default-macos-wallpaper-in-glorious-5k-resolution</link><guid isPermaLink="true">https://barnes.tech/blog/every-default-macos-wallpaper-in-glorious-5k-resolution</guid><description>Explore every default macOS wallpaper in stunning 6K resolution, perfect for Apple enthusiasts and nostalgia lovers.</description><pubDate>Sun, 01 Jul 2018 00:00:00 GMT</pubDate><content:encoded>&lt;p&gt;&lt;a href=&quot;https://512pixels.net/projects/default-mac-wallpapers-in-5k/&quot;&gt;Every Default macOS Wallpaper – in Glorious 6K Resolution&lt;/a&gt;
512 Pixels frequently has great nerdy Apple articles, but this one really stuck out to me. There is a lot of nostalgia in these wallpapers. Check it out!&lt;/p&gt;
&lt;div style=&quot;margin: 1.5rem 0; padding: 1rem; border-left: 4px solid #ccc; background: #f6f8fa; border-radius: 12px;&quot;&gt;
          &lt;div style=&quot;margin-bottom: .25rem; color: #333;&quot;&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/div&gt;
          &lt;ul style=&quot;margin: .25rem 0 0 1rem;&quot;&gt;&lt;li&gt;&lt;a href=&quot;https://512pixels.net/projects/default-mac-wallpapers-in-5k/&quot; target=&quot;_blank&quot; rel=&quot;nofollow noopener noreferrer&quot;&gt;https://512pixels.net/projects/default-mac-wallpapers-in-5k/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
        &lt;/div&gt;</content:encoded></item></channel></rss>