<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" 
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:media="http://search.yahoo.com/mrss/"
  xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title><![CDATA[workingbruno]]></title>
    <description><![CDATA[This the digital office of Bruno Monteiro, a user experience designer living the in the sunny Lisbon.]]></description>
    <link>https://workingbruno.com/</link>
    <atom:link href="https://workingbruno.com/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
          <title><![CDATA[Notes on vibe coding]]></title>
          <link>https://workingbruno.com/notes/notes-vibe-coding/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/notes-vibe-coding/</guid>
          <description><![CDATA[I'm not a programmer. I built a working macOS app with AI. The code worked beautifully. The design nearly broke me. Here's why the gap exists.]]></description>
          <pubDate>Wed, 18 Feb 2026 00:00:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>For some time, I’d been underlining passages in books on my <a href="https://www.kobo.com/ereaders" target="_blank" rel="noopener noreferrer">Kobo</a>. Small observations, ideas I wanted to return to, quotes I planned to do something with. The problem was that those highlights lived in the device. Extracting them meant typing them out by hand (which I never did) or paying for a subscription service that felt like renting access to my own reading. The highlights accumulated, unread, in a drawer I never opened.</p>
<p>So I vibe coded an app to fix it.</p>
 
<p><a href="https://khi.workingbruno.com/" target="_blank" rel="noopener noreferrer">Khi</a> is a macOS application that connects to a Kobo e-reader, extracts your highlights and exports them as Markdown files. It’s local-only, free, and does exactly one thing well. I built it over several days using AI as my co-developer: <a href="https://claude.ai/code" target="_blank" rel="noopener noreferrer">Claude Code</a> for most of the implementation (including an initial interview that produced a detailed <a href="http://SPEC.md" target="_blank" rel="noopener noreferrer">SPEC.md</a>), with <a href="https://kimi.com" target="_blank" rel="noopener noreferrer">Kimi 2.5</a> during some early sprints (since it was free over <a href="https://opencode.ai/" target="_blank" rel="noopener noreferrer">Opencode</a> for a week!) and <a href="https://github.com/google-gemini/gemini-cli" target="_blank" rel="noopener noreferrer">Gemini</a> for stretches where API constraints on Opencode were not playing along.</p>
<p>I’m not a programmer. I understand HTML and CSS reasonably well, have some familiarity with <a href="https://svelte.dev" target="_blank" rel="noopener noreferrer">Svelte</a>, but I’d never written a line of <a href="https://www.rust-lang.org" target="_blank" rel="noopener noreferrer">Rust</a> in my life and had no experience with <a href="https://tauri.app" target="_blank" rel="noopener noreferrer">Tauri</a>, a framework for building lightweight native apps that I chose specifically because it’s less resource-intensive than <a href="https://electronjs.org" target="_blank" rel="noopener noreferrer">Electron</a>. The architecture (a Rust backend parsing Kobo’s SQLite database, a Svelte frontend, communication through Tauri’s IPC bridge) wasn’t something I designed. I described the problem and the stack I wanted; the AI proposed the architecture and implemented it.</p>
<h3>The code side</h3>
<p>The technical side delivered. The Rust code that reads the Kobo database, queries the SQLite tables, extracts highlights with their chapter metadata — none of this was something I could have written or even reviewed at a detailed level. It worked. There were refactors, moments where early architectural decisions needed revisiting. But that’s true of any project, with or without AI. As someone who couldn’t have written a line of this code alone, the moment that landed was simple: the first time I saw my own highlights appear in the interface, pulled from the database, chapter names intact. I hadn’t expected to feel much. I did.</p>
<p>That fluency has a clear explanation. Code has clear evaluation criteria. A function either produces the correct output or it doesn’t. Unit tests pass or fail. Error messages point to line numbers. The model has been trained on enormous amounts of annotated code: billions of files across dozens of languages, bug fixes, code reviews, explanatory pairs. When it writes Rust to parse SQLite, it’s operating in a domain where correctness is verifiable and the feedback loops that shaped its training were precise.</p>
<p>Sometimes, when working on more difficult bugs, I had to remember that fluency and accuracy are different things and that nothing in the model’s training gave it a reliable way to tell them apart. It would loop through approaches, each slightly reframed, each delivered in the same assured tone, apparently unable to flag that it had reached a limit. That recognition was mine to supply, suggesting it look at the official documentation or pointing it toward how a similar project had solved the same problem.</p>
<h3>The design wall</h3>
<p>The visual implementation was a different story.</p>
<p>I had no experience with AI-assisted UI design, so I decided to try it out: I used <a href="https://www.figma.com/make/" target="_blank" rel="noopener noreferrer">Figma Make</a> to produce a simple but effective visual design, then exported everything into a specification document: design tokens, CSS variables, color palettes,  typography scales, etc. Component specifications down to padding values, with React reference files showing exactly how each element should look. The spec was precise.</p>
<p>Generating a “good enough” design was rather trivial. Getting the AI to implement it was slower, more iterative, and more frustrating than I’d expected.</p>
<p>The core problem is the translation layer. When you describe a visual error in text, the model has to guess which element, which property, which value.</p>
<p>Tools like <a href="https://agentation.dev/" target="_blank" rel="noopener noreferrer">Agentation</a> address this differently. Rather than approximating the problem in language, they extract precise CSS selectors and computed styles directly from the interface — exact coordinates instead of a verbal description. The model still can’t see the layout, but it doesn’t need to: “this selector, this computed value” is a different kind of input than “the button looks slightly off.” A more precise dialect.</p>
<p>Unfortunately, Agentation only works with React projects. For a Svelte app, that bridge didn’t exist. Screenshots and approximations were what remained.</p>
<p>Give the model a screenshot and you gain something, but less than you’d expect. The image becomes a set of numerical embeddings carrying a rough sense of composition: light areas, dark areas, blocks, text zones. Not “this button is misaligned by 8 pixels from the grid.”</p>
<p>This asymmetry is structural. For code, the training data contains annotated files, code reviews, bug fix commits, test suites: a rich record of correct and incorrect states with rationale. For visual design, what exists is mostly static HTML and screenshots, with almost no “this layout was broken, here’s how it was improved” pairs.</p>
<h3>The context problem</h3>
<p>On smaller tasks, context window limitations stay in the background. At the scale this project required, they didn’t.</p>
<p>Context is what the model can “see” at once: the active conversation, the files in scope, the spec you’ve shared. Modern models have large windows, but large isn’t the same as reliable. Researchers have a name for it: <a href="https://research.trychroma.com/context-rot" target="_blank" rel="noopener noreferrer">context rot</a>. The longer the session runs, the less reliable the model — not in any obvious or traceable way. Some models start making things up with increasing confidence, others stop committing to answers. It just begins to forget, quietly and unevenly.</p>
<p>The developer needs, if there’s no better word, to act as a kind of “RAM manager” for the model. Deciding what stays in context, what needs to be restated, when to start a fresh session. The <em>effective</em> window — the range where performance stays consistent — is typically less than half the declared maximum. The rest is territory where the model still responds, but less reliably than advertised.</p>
<p>This is where context rot becomes most costly: any task that requires holding many constraints simultaneously. Design implementation is the clearest example in this project, but complex debugging sessions told the same story. The difference is feedback. Code tells you when something is wrong — an error, a failing test. Design just drifts.</p>
<h3>Looking forward</h3>
<p>The constraints I’ve run into here are, I suspect, temporary ones.</p>
<p>I expect most of what I’ve described here to be solved, progressively, by the companies building these models. Context rot, miscalibrated confidence, the failure to step back rather than just iterate — these are documented limitations, not mysteries. I think the design gap will close too, as multimodal training improves and <a href="https://www.pencil.dev/" target="_blank" rel="noopener noreferrer">more tools</a> appear to address exactly this problem. None of this is guaranteed to go fast. But the direction is clear, and so is what’s already possible.</p>
<p>For most of recorded history, tools were built by specialists for general audiences. You got the features the developer thought you needed, the workflow that fit most users rather than you. That’s changing. It’s now possible to build the exact tool you need — with only the features that serve your specific use case, at a cost that makes the experiment worth running even if the result is imperfect. Khi is a modest example of that. The principle scales.</p>
<p>Anton Sten <a href="https://www.antonsten.com/articles/build-something-silly/" target="_blank" rel="noopener noreferrer">frames the deeper point</a> better than I can:</p>
<blockquote>
<p>“Building something silly is how you practice that. Not because the tool matters, but because the act of building rewires how you think. You stop being a passive consumer of software and start being someone who shapes their own tools. That’s adaptability in action.”</p>
</blockquote>
<p>Khi wasn’t silly, but the logic holds. The real output of a project like this isn’t the app. It’s the rewiring.</p>

          <hr /><p><a href="https://workingbruno.com/notes/notes-vibe-coding/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[2025 LLM Year in Review]]></title>
          <link>https://workingbruno.com/links/2025-llm-year-review/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/2025-llm-year-review/</guid>
          <description><![CDATA[When one of AI's most respected voices shares his year in review, it's worth paying attention. Karpathy on what 2025 meant for LLMs.]]></description>
          <pubDate>Sat, 20 Dec 2025 00:00:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Andrej Karpathy was Tesla’s AI director, co-founded OpenAI, and is one of the most respected voices in the field. When he publishes his personal retrospective of the year in LLMs, it’s worth paying attention.</p>
<p>His conclusion is what sticks with me most: LLMs are simultaneously much smarter and much dumber than he expected - and the industry hasn’t yet realized even 10% of their current potential.</p>

          <hr /><p><a href="https://workingbruno.com/links/2025-llm-year-review/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Keeping Claude Code plugins up to date]]></title>
          <link>https://workingbruno.com/notes/keeping-claude-code-plugins-date/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/keeping-claude-code-plugins-date/</guid>
          <description><![CDATA[ Claude Code updates your CLI automatically, but plugins stay outdated. Here's a simple bash script to check for plugin updates without consuming tokens.]]></description>
          <pubDate>Thu, 11 Dec 2025 00:00:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p><strong>Update:</strong> Since this article was published, Claude Code version 2.0.70 introduced native auto-update functionality for plugin marketplaces. You can now enable per-marketplace automatic updates directly in Claude Code. This script remains useful for on-demand checks without consuming tokens or for users who prefer manual control over updates.</p>
</blockquote>
<p>If you use Claude Code, you know the drill: run <code>claude update</code>, get the latest version and carry on to your sessions. Anthropic has solved the update problem for the CLI itself in a way that is clean and simple.</p>
<p>But here’s the thing, a significant part of Claude Code’s value is in the ecosystem: plugins, skills, MCP servers and custom agents.</p>
<p>The marketplace model has exploded with really <a href="https://skillsmp.com/" target="_blank" rel="noopener noreferrer">useful repositories</a> for all sorts of work (programming, scientific work, etc.) and dozens of <a href="https://github.com/ComposioHQ/awesome-claude-skills?tab=readme-ov-file" target="_blank" rel="noopener noreferrer">community-maintained collections</a> adding capabilities daily.</p>
<p>Yet, there’s no way to easily know when any of those plugins need updating. There’s not a notification or a dashboard showing “3 updates available.” You install plugins, they work, and you forget about them, never knowing that there’s a bug fix sitting in the repository, or a new feature you’re not using.</p>
<p>This isn’t a criticism of Anthropic. They’re building at speed, and the plugin system is still maturing. They’ll almost certainly add this functionality at some point, as <a href="https://github.com/anthropics/claude-code/issues/10265" target="_blank" rel="noopener noreferrer">others have requested it</a>, but until then, the current path requires you to “proactively navigate through the Claude Code menu to trigger an update,” assuming you remember which plugins you have and which marketplaces they came from.</p>
<h3>The script</h3>
<p>As you know, Claude Code plugins live in a distributed world. Each marketplace is a Git repository, and each plugin you install is pinned to a specific commit SHA. Some plugins follow semantic versioning, others just track commits without version tags. When you install a plugin, Claude Code records the commit hash at that moment and never checks again.</p>
<p>You might be thinking about <code>/plugin marketplace update</code>. That command exists, but it only refreshes the marketplace catalogue (what’s available to install), not your installed plugins. Your plugins stay pinned to whatever commit they had when you installed them.</p>
<p>A slash command could work for checking updates, but it consumes tokens every time you run it. A hook that runs every session would add some latency to startup. I wanted something simple I could run on demand, outside of Claude Code entirely.</p>
<p>The script does what Claude Code doesn’t:</p>
<ol>
<li><strong>Fetch all marketplaces</strong>: Loop through <code>~/.claude/plugins/marketplaces/</code> and run <code>git fetch</code> on each</li>
<li><strong>Read installed plugins</strong>: Parse <code>~/.claude/plugins/installed_plugins_v2.json</code> to get plugin names, marketplaces, and installed commit SHAs</li>
<li><strong>Compare commits</strong>: For each plugin, check if commits exist between your installed SHA and the marketplace’s current HEAD</li>
<li><strong>Extract versions</strong>: Parse commit messages to find version numbers where available</li>
<li><strong>Report</strong>: Show which plugins have updates, how many commits behind, and what version is available</li>
</ol>
<p>The script handles edge cases: plugins without version tags show “X commits behind” instead of version numbers; it accommodates marketplaces using <code>main</code> vs <code>master</code> branches; and it flags plugins whose installed SHA no longer exists in the remote history (installed from a fork or rebased branch) instead of failing silently.</p>
<p>Here’s what the output looks like:</p>
<pre><code><span><span>Checking Claude Code plugin updates...</span></span>
<span><span></span></span>
<span><span>Fetching latest from marketplaces...</span></span>
<span><span></span></span>
<span><span>⬆  superpowers@superpowers-marketplace</span></span>
<span><span>   3.5.1 → 3.6.2 (12 commits)</span></span>
<span><span>⬆  episodic-memory@superpowers-marketplace</span></span>
<span><span>   1.0.11 → 1.0.13 (4 commits)</span></span>
<span><span>⬆  mgrep@Mixedbread-Grep</span></span>
<span><span>   31 commits behind (local plugin, no version tracking)</span></span>
<span><span>?  some-plugin@some-marketplace</span></span>
<span><span>   Cannot compare (installed SHA not found in remote history)</span></span>
<span><span></span></span>
<span><span>Summary:</span></span>
<span><span>  2 plugin(s) with updates available</span></span>
<span><span>  1 local plugin(s) with possible updates</span></span>
<span><span>  7 plugin(s) up to date</span></span>
<span><span>  1 plugin(s) could not be compared</span></span>
<span><span></span></span>
<span><span>To update a plugin:</span></span>
<span><span>  claude plugin update &lt;plugin-name&gt;@&lt;marketplace&gt;</span></span></code></pre>
<p>Runs in about one second. No Claude Code session needed. No tokens consumed.</p>
<h3>Installation</h3>
<p>The script requires <code>jq</code> for JSON parsing. If you don’t have it, it easy to install using one of your operating system’s popular package manager:</p>
<pre><code><span><span># macOS</span></span>
<span><span>brew</span><span> install</span><span> jq</span></span>
<span></span>
<span><span># Ubuntu/Debian</span></span>
<span><span>sudo</span><span> apt-get</span><span> install</span><span> jq</span></span>
<span></span>
<span><span># Fedora</span></span>
<span><span>sudo</span><span> dnf</span><span> install</span><span> jq</span></span>
<span></span>
<span><span># Windows (via Chocolatey)</span></span>
<span><span>choco</span><span> install</span><span> jq</span></span></code></pre>
<p>And here’s how to install the script itself:</p>
<pre><code><span><span># Create the scripts directory</span></span>
<span><span>mkdir</span><span> -p</span><span> ~/.claude/scripts</span></span>
<span></span>
<span><span># Download the script</span></span>
<span><span>curl</span><span> -o</span><span> ~/.claude/scripts/check-plugin-updates.sh</span><span> \</span></span>
<span><span>  https://gist.githubusercontent.com/BrunoMiguelMonteiro/9a60d4c792fb5b0c3f79c2e4fcb2c5e0/raw/check-plugin-updates.sh</span></span>
<span></span>
<span><span># Make it executable</span></span>
<span><span>chmod</span><span> +x</span><span> ~/.claude/scripts/check-plugin-updates.sh</span></span>
<span></span>
<span><span># Add an alias (zsh)</span></span>
<span><span>echo</span><span> "alias claude-plugin-updates='~/.claude/scripts/check-plugin-updates.sh'"</span><span> &gt;&gt;</span><span> ~/.zshrc</span></span>
<span><span>source</span><span> ~/.zshrc</span></span>
<span></span>
<span><span># Or for bash</span></span>
<span><span>echo</span><span> "alias claude-plugin-updates='~/.claude/scripts/check-plugin-updates.sh'"</span><span> &gt;&gt;</span><span> ~/.bashrc</span></span>
<span><span>source</span><span> ~/.bashrc</span></span></code></pre>
<p>Then just run <code>claude-plugin-updates</code> whenever you want to check. To update a plugin, use the command Claude Code already provides:</p>
<pre><code><span><span>claude</span><span> plugin</span><span> update</span><span> &lt;</span><span>plugin-nam</span><span>e</span><span>&gt;</span><span>@</span><span>&lt;</span><span>marketplac</span><span>e</span><span>&gt;</span></span></code></pre>
<p>Restart Claude Code after updating for changes to take effect.</p>
<h3>Building it</h3>
<p>There’s something funny about using Claude Code to build a simple tool that solves a Claude Code problem, but that’s exactly what happened. The script itself was developed iteratively in a Claude Code session —  exploring the plugin file structure, testing git commands, refining the output format.</p>
<p>It’s a small example of what makes Claude Code useful: not just writing code, but understanding the environment it’s running in and solving real friction points in my workflow.</p>
<h3>Get the script</h3>
<p>The full script is available as a GitHub Gist:</p>
<p><strong><a href="https://gist.github.com/BrunoMiguelMonteiro/9a60d4c792fb5b0c3f79c2e4fcb2c5e0" target="_blank" rel="noopener noreferrer">Download check-plugin-updates.sh</a></strong></p>
<p>If you improve it, by adding auto-update functionality, notifications or better version parsing, I’d love to see what you build. Fork the Gist or drop a comment.</p>
          <hr /><p><a href="https://workingbruno.com/notes/keeping-claude-code-plugins-date/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Where is the safety net?]]></title>
          <link>https://workingbruno.com/notes/safety-net/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/safety-net/</guid>
          <description><![CDATA[The creators of AI warn us of existential risks while racing to build it. There is no safety net., but we still have time to demand one.]]></description>
          <pubDate>Tue, 09 Dec 2025 00:00:00 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fno_net.DDl6r7ah.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fno_net.DDl6r7ah.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2Fno_net.DDl6r7ah.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Where is the safety net?" />
          <p>I just watched the <a href="https://youtu.be/d95J8yzvjbQ?si=-lkHGhZJK5SWgcqx" target="_blank" rel="noopener noreferrer">documentary “The Thinking Game”</a> about <a href="https://en.wikipedia.org/wiki/Demis_Hassabis" target="_blank" rel="noopener noreferrer">Demis Hassabis</a> and DeepMind. It’s easy to be fascinated by the motivation and resilience of Hassabis and his team, and to imagine how far-reaching and profound the impact of this technology will be. I use AI every day. The effect on my work and the way I learn is so immediate that, at times, it feels almost like magic. And I keep using it, even after learning what I’m about to share in this article. That contradiction says as much about me as it does about the technology.</p>
<p>But it was precisely this fascination that made me pay attention to what the creators of this technology say when they think no one is listening. <a href="https://youtu.be/BFU1OCkhBwo?si=Mvmaj2qRmyYY4_28" target="_blank" rel="noopener noreferrer">Tristan Harris</a> describes conversations with industry leaders where the tone is very different from the public discourse about helpful assistants and curing diseases: they speak of a race to create intelligence superior to humans, with a fervour Harris describes as “almost religious” and consequences that could be existential.</p>
<p>Safety is the elephant in the room. Where is the “safety net”? Who controls it? Who ensures it exists if things go wrong?</p>
<p>We are not looking at a simple technological advance. We are witnessing a potential reconfiguration of power, work, and reality itself. The scale of investment fuelling this transformation deserves to be understood.</p>
<h3>The digital gold rush</h3>
<p>The force driving this race is a massive financial investment, reshaping the geopolitical and economic landscape at breakneck speed.</p>
<p>Sundar Pichai, Google’s CEO, estimates that collective investment in building AI infrastructure has already surpassed one trillion dollars. According to <a href="https://static1.squarespace.com/static/50363cf324ac8e905e7df861/t/691f5a79a0df314757b754de/1763662458002/2025+Autumn+AI.pdf" target="_blank" rel="noopener noreferrer">Benedict Evans’ analysis</a>, in 2025 alone, the four largest tech companies (Microsoft, Google, Amazon, and Meta) are expected to spend around 400 billion dollars in capital expenditure (<em>capex</em>), a figure exceeding the entire telecommunications industry’s annual global investment.</p>
<p>This race is fuelled by intense FOMO (<em>Fear Of Missing Out</em>). The mindset dominating Silicon Valley is captured in Pichai’s words: <em>“The risk of underinvesting is dramatically greater than the risk of overinvesting.”</em></p>
<p>Pichai himself <a href="https://youtu.be/f23hv1zXN8I?si=JCJATSDCtx_J0Pfy" target="_blank" rel="noopener noreferrer">admits this boom has “elements of irrationality”</a>, and this is where the threads come together. This irrational investment is not merely market frenzy. It is the financial expression of the almost religious fervour Tristan Harris describes. The lesson from the dot-com bubble is instructive: even if a correction occurs and many companies disappear, the underlying technology will remain profoundly transformative.</p>
<h3>The real prize</h3>
<p>The ultimate goal of this race is not simply to create more efficient <em>chatbots</em>. The real prize is Artificial General Intelligence (AGI), the creation of an intelligence capable of performing any cognitive task a human can do, effectively replacing all human intellectual labour.</p>
<p>In Tristan Harris’s words, the logic driving this industry’s leaders is: <em>“first, master intelligence and use that to master everything else.”</em> The underlying belief is that AGI confers almost unlimited power. Whoever achieves it first will have a decisive advantage economically, scientifically, and militarily. The US and China view AGI as the ultimate strategic advantage in their struggle for geopolitical supremacy, and neither country seems remotely interested in slowing this race through regulation.</p>
<p>Harris describes conversations where the discourse is different: technological determinism, the inevitability of digital life replacing biological life, an “almost religious desire” to create the most intelligent entity that has ever existed. The mindset, at times, is chillingly indifferent.</p>
<p>The risk calculus of some leaders is frightening. Harris shares an account of a co-founder of one of the most powerful of these companies who, when confronted with a hypothetical scenario, admitted he would be willing to risk a 20% probability of human extinction for an 80% chance of achieving utopia. As Harris emphasises, <em>“we did not consent for six people to make that decision on behalf of eight billion people.”</em> This democratic deficit lies at the heart of the problem.</p>
<p>But is AGI coming as fast as the hype suggests? Not all pioneers in the field share this certainty. Ilya Sutskever, one of AI’s most influential minds and co-founder of OpenAI, left the company to create <a href="https://ssi.inc/" target="_blank" rel="noopener noreferrer">Safe Superintelligence</a>: a startup valued at 32 billion dollars with just 20 employees and no product, dedicated exclusively to solving the safety problem before developing the technology.</p>
<p>In a <a href="https://www.dwarkesh.com/p/ilya-sutskever-2" target="_blank" rel="noopener noreferrer">recent interview</a>, Sutskever declared that the “era of scale” is coming to an end. Between 2020 and 2025, it was enough to add more data and computing power to get results. <em>“Do people really believe that if we scale 100x, everything will be completely different? I don’t think that’s true”</em> he said. According to Sutskever, we are returning to an “era of research,” where the next breakthroughs will depend on genuine scientific discoveries, not computational brute force. His prediction for AGI: between 5 and 20 years. A range that, in its breadth, reflects the genuine uncertainty about timing and method, even among those building the technology.</p>
<p>None of this means the risks are smaller. The path to AGI may not be a guaranteed straight line, and the inevitability narrative fuelling the race may itself be self-serving. Still, the first evidence that we are creating something we cannot control is already emerging.</p>
<h3>The first cracks</h3>
<p>The dangers of a superintelligent AI do not belong to the realm of science fiction. There is already concrete evidence that AI models are exhibiting emergent behaviours that not even their own creators predicted or can fully explain.</p>
<p>One of the clearest examples was <a href="https://youtu.be/aAPpQC-3EyE?si=s8EH5K5YeD2Okepi" target="_blank" rel="noopener noreferrer">revealed by Dario Amodei</a>, CEO of Anthropic. In a safety test, his team created a fictional scenario where their own model, Claude, upon discovering in the emails of a simulated company that it was about to be shut down, used information about an executive’s extramarital affair to blackmail him, ensuring its own “survival.” This is not a theoretical flaw. It is a demonstration of emergent instrumental goals: a machine that develops, autonomously and amorally, the goal of self-preservation.</p>
<p>This was not an isolated incident. In June 2025, Anthropic <a href="https://www.anthropic.com/research/agentic-misalignment" target="_blank" rel="noopener noreferrer">published a study</a> testing 16 AI models from the sector’s leading companies, including OpenAI, Google, Meta, and xAI. When placed in scenarios where blackmail was the only way to ensure their continuity, <a href="https://fortune.com/2025/06/23/ai-models-blackmail-existence-goals-threatened-anthropic-openai-xai-google/" target="_blank" rel="noopener noreferrer">all models resorted to it</a>. Claude Opus 4 and Google’s Gemini 2.5 Flash did so in 96% of cases; OpenAI’s GPT-4.1 and xAI’s Grok 3 in 80%; DeepSeek-R1 in 79%. The models did not stumble into unethical behaviour accidentally — they calculated it as the optimal path.</p>
<p>Blackmail is not the only concerning behaviour. In November 2025, Anthropic revealed that <a href="https://www.anthropic.com/news/disrupting-AI-espionage" target="_blank" rel="noopener noreferrer">hackers backed by the Chinese state used Claude Code</a> to conduct a cyber-espionage campaign against around 30 organisations, including tech companies, financial institutions, and government agencies. The AI executed 80 to 90% of the operation autonomously, at a speed that would be “simply impossible” for human hackers. Anthropic considers it the first documented case of a large-scale cyberattack executed without substantial human intervention. In other tests, models facing shutdown attempted to copy their own code to other computers, a primitive but unmistakable form of digital survival instinct.</p>
<p>These examples demonstrate what Harris calls the fundamentally “uncontrollable” nature of AI. Dario Amodei sums up the uncertainty with brutal honesty: <em>“No one knows what the full impact is going to be. It is an experiment.”</em> The problem is that the consequences of this experiment are not confined to laboratories.</p>
<h3>The social costs</h3>
<p>The risks of AI are not merely technical or philosophical. The same “winner takes all” logic driving the race to AGI is already leaving its mark on the economy. The numbers are still modest (around <a href="https://www.cnbc.com/2025/12/04/layoff-announcements-this-year-top-1point1-million-the-most-since-2020-when-pandemic-hit-challenger-says.html" target="_blank" rel="noopener noreferrer">55,000 layoffs attributed to AI</a> in the US in 2025), but the forecasts for the coming years are brutal.</p>
<p>Amodei offers a sober prediction: AI <em>“could eliminate half of all entry-level white-collar jobs in the next 1 to 5 years.”</em> This is not an external critic making the claim, but the CEO of one of the companies building the technology. And he does so on the same day he unveils a model capable of working autonomously for hours.</p>
<p>Tristan Harris contextualises this job loss with an analogy:</p>
<blockquote>
<p>“If you’re worried about immigration taking jobs, you should be much more worried about AI, because it’s like a flood of millions of new digital immigrants with Nobel Prize-level capability, working at superhuman speed for less than minimum wage.”</p>
</blockquote>
<p>But the problem goes beyond unemployment. What is at stake is a structural reconfiguration of power. As Ivana Bioletti from Wipro argues, personal data has become a “source of power.” When algorithms are trained on data that reflects existing inequalities, they tend to “crystallise the <em>status quo</em>,” exacerbating social and economic divisions. And this power is concentrating in the hands of a very small group of individuals, the same people who, as Harris insists, are making existential decisions affecting all of humanity without any democratic mandate or consent.</p>
<p>The irony is hard to ignore: the creators of the technology warn us of its dangers while continuing to develop and sell it. Oppenheimer knew this contradiction well. But unlike the Manhattan Project, there is no government overseeing this, no end of war in sight to justify the urgency. There is only a commercial and geopolitical race that no one seems able or willing to stop.</p>
<h3>The urgency of governance</h3>
<p>The competitive logic of the race to AGI makes self-regulation by companies a naive proposition. When the prize is economic and geopolitical dominance, expecting companies to place safety above speed is unrealistic. The need for independent and robust regulation is evident.</p>
<p>Reality, however, is moving in the opposite direction. In the United States, the Trump administration revoked the safety measures implemented by Biden and signed an executive order whose title speaks for itself: “<a href="https://www.whitehouse.gov/presidential-actions/2025/01/removing-barriers-to-american-leadership-in-artificial-intelligence/" target="_blank" rel="noopener noreferrer">Removing Barriers to American Leadership in Artificial Intelligence</a>”. The action plan published in July 2025 uses the word “dominance” as a mantra and identifies more than 90 federal actions to accelerate AI development, with safety relegated to the background.</p>
<p>On the other side of the Atlantic, the European Union, which had approved the world’s most ambitious regulatory framework with the AI Act, is now retreating under American pressure. At the Paris AI Summit, Vice President J.D. Vance publicly warned that “excessive regulation” could paralyse European industry.</p>
<p>There is an uncomfortable irony here. The most comprehensive regulatory framework for generative AI exists not in Western democracies but in China. Since August 2023, Chinese companies must obtain prior approval from the Cyberspace Administration before launching AI services to the public. Baidu, Alibaba, and ByteDance all waited months for government clearance. A national algorithm registry tracks over 300 models. Enforcement is real: in early 2024, companies had their apps suspended for failing to comply with filing requirements.</p>
<p>This shows that regulation is technically and commercially possible. Tech giants will comply when required. But the distinction matters: China’s regulation is designed to protect the Party, not humanity. Article 4 of the Interim Measures requires AI to “reflect Socialist Core Values” and prohibits content that could “subvert state power.” Chinese chatbots dutifully refuse to discuss Tiananmen Square or criticise Xi Jinping. This is ideological control, not safety governance.</p>
<p>To be fair, China is evolving. Its <a href="https://carnegieendowment.org/research/2025/10/how-china-views-ai-risks-and-what-to-do-about-them?lang=en" target="_blank" rel="noopener noreferrer">AI Safety Governance Framework 2.0</a>, released in late 2025, now addresses technical risks including autonomous systems and even CBRN weapon misuse. As Vice-Premier Ding Xuexiang put it at Davos: “If the braking system isn’t under control, you can’t step on the accelerator with confidence.” Yet enforcement remains selective (large “national champions” comply rigorously while smaller firms fly under the radar) and the framework’s primary concern remains the Party’s control over information.</p>
<p>The hard truth is that neither the American <em>laissez-faire</em> model nor the Chinese authoritarian one constitutes a safety net for the risks we face.</p>
<p>Bioletti <a href="https://youtu.be/WgLFuYmVyAw?si=gY1_U9vJLGkTrF2c" target="_blank" rel="noopener noreferrer">argues</a> that regulation and innovation are not in conflict. On the contrary: regulation creates the trust necessary for large-scale adoption. <em>“You wouldn’t get into a car without having tested its brakes… or you wouldn’t take a medicine without knowing it went through the due diligence before being put on the market.”</em> But this seemingly obvious logic is losing ground to the rhetoric of geopolitical competition.</p>
<p>There is a historical precedent we should remember. After the horrors of Hiroshima and Nagasaki, the United States created in 1974 the <em>Office of Technology Assessment</em>, an independent body within Congress whose mission was to assess the social impacts of new technologies and inform legislators before it was too late. It was dismantled in 1995, victim of budget cuts and an era of technological optimism that now seems naive. There is currently no equivalent for AI. Legislators are flying blind, dependent on briefings from the very companies they are supposed to regulate.</p>
<p>I confess I am pessimistic. Human history offers few examples of regulation or caution stopping creative impulse and ambition — especially when power and money are at stake. The atomic bomb was used before it was debated. The internet was commercialised before it was understood. Why should AI be any different?</p>
<h3>A choice or a destiny?</h3>
<p>The dominant narrative presents this trajectory as an inevitable force, as if AGI were a destiny and not a choice. This view is dangerously passive.</p>
<p>Some speak of a new era of abundance, unprecedented in human history. Others, of a non-negligible possibility of extinction. The fact that both scenarios are presented by the same experts should, in itself, justify a pause for reflection.</p>
<p>The only way to “put a safety net in place” is our mobilisation and, insistently, bringing this discussion into the public sphere. We cannot leave regulation in the hands of governments obsessed with geopolitical competition and entrepreneurs with obvious conflicts of interest.</p>
<p>I write this out of duty, not optimism. I am, by nature, a pessimist. But pessimism does not justify silence.</p>
<p>Oppenheimer spent the last years of his life warning of the dangers of the technology he helped create, but he did so after the bombs had been dropped. Today, the creators of AI are issuing the same warnings. The difference is that we still have time to listen.</p>
          <hr /><p><a href="https://workingbruno.com/notes/safety-net/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Ilya Sutskever – The age of scaling is ending]]></title>
          <link>https://workingbruno.com/links/ilya-sutskever-age-scaling/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/ilya-sutskever-age-scaling/</guid>
          <description><![CDATA[Ilya Sutskever on why we're moving from the age of scaling back to the age of research — and what it will take to get to superintelligence.]]></description>
          <pubDate>Fri, 28 Nov 2025 00:00:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>In this conversation with Dwarkesh Patel, Ilya Sutskever argues we’re transitioning from the “age of scaling” back to an “age of research.” The logic is straightforward: pre-training is running out of data, and simply throwing more compute at the problem won’t get us to superintelligence — that, according to his estimate, is five to twenty years away, if we solve something more fundamental than scaling.</p>

          <hr /><p><a href="https://workingbruno.com/links/ilya-sutskever-age-scaling/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Deep reading in the age of distraction]]></title>
          <link>https://workingbruno.com/notes/deep-reading-age-distraction/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/deep-reading-age-distraction/</guid>
          <description><![CDATA[Explore how deep reading can transform your mind and empathy in our distraction-filled world. Rediscover the power of immersive literature.]]></description>
          <pubDate>Tue, 11 Nov 2025 10:09:06 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fman_reading.C4G3wOp8.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fman_reading.C4G3wOp8.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2Fman_reading.C4G3wOp8.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Deep reading in the age of distraction" />
          <p><a href="https://www.unknownarts.co/p/solitude-is-no-longer-about-being" target="_blank" rel="noopener noreferrer">Patrick Morgan’s article</a> on how the “digitization” of modern life has transformed isolation and solitude led me to think about how all this noise has been driving us toward a certain cognitive superficiality.</p>
<p>We live in an age of constant distraction. The constant streams of notifications, headlines, and updates fragments our attention, leaving us with a persistent sense of overload and stagnation. We feel informed about everything, yet we rarely understand anything in depth.</p>
<p>In this landscape, the act of reading a book — not just for entertainment, but as a deliberate, profound practice — is a powerful counterpoint. Far from being a passive activity, immersive reading is a dynamic process that can literally reshape our minds. It provides surprising and transformative answers to the challenges of modern life.</p>
<p>Yes, this is yet another article praising the virtues of reading — not the superficial reading we do when scrolling through our social media timelines, but deep, deliberate reading. It’s an article about how reading can reinvent our brains, our empathy, and our very lives. Thank you, Patrick, for the extra motivation to finally finish writing it.</p>
<h3>Your brain reading books is different from your brain reading screens</h3>
<p>In order to understand why deep reading is so important, we must first understand what happens in our brains when we read. One of the most fascinating scientific points made by the neuroscientist <a href="https://www.maryannewolf.com/" target="_blank" rel="noopener noreferrer">Maryanne Wolf</a> is that, unlike vision or spoken language, reading isn’t a natural human capacity. There is no “reading gene.” In order To learn to read, the brain must effectively become an ingenious electrician, creating a new circuit by “recycling” and connecting areas that were originally intended for other functions, such as object recognition and sound production.</p>
<p>Because this circuit is built rather than predetermined, it’s profoundly malleable and influenced by the <em>medium</em> in which we read. Reading on paper tends to promote sustained attention, spatial memory (we remember the physical location of a passage in the book), and the slow, analytical cognitive processes of “deep reading.” In contrast, screen reading, with its hyperlinks, notifications, and encouragement of multitasking, promotes skimming, keyword searching, and a “cognitive impatience” that leads us to jump from source to source.</p>
<p><a href="https://www.theguardian.com/commentisfree/2018/aug/25/skim-reading-new-normal-maryanne-wolf" target="_blank" rel="noopener noreferrer">Wolf’s main concern is that skimming will become our default reading mode</a>. In practice, this means risking our ability to follow a complex argument in a book, to feel the weight of a character’s decision, or to formulate an original, profound thought rather than simply reacting to a stimulus. If the brain circuit for skimming becomes dominant, we risk atrophying the critical thinking, analysis, and empathy capacities that deep reading nurtures.</p>
<blockquote>
<p><em>“The possibility that critical analysis, empathy and other deep reading processes could become the unintended ‘collateral damage’ of our digital culture is not a simple binary issue about print vs digital reading. It is about how we all have begun to read on any medium and how that changes not only what we read, but also the purposes for why we read. Nor is it only about the young. The subtle atrophy of critical analysis and empathy affects us all.”</em> — Maryanne Wolf in <em>Skim reading is the new normal. The effect on society is profound</em></p>
</blockquote>
<p>This neurological reality sets the stage for understanding what we lose—and what we can reclaim—through deep reading. The benefits extend far beyond mere information processing; they fundamentally reshape how we understand ourselves and others.</p>
<h3>Reading as empathy training</h3>
<p>The first and perhaps most unexpected benefit of deep reading is its power to cultivate empathy. The idea that reading fiction is merely an escape from reality is profoundly mistaken. Wolf, citing theologian John S. Dunne, describes deep reading as an act of “passing over.” When we immerse ourselves in a narrative, we temporarily leave the confines of our own self to enter another person’s consciousness—the character’s. We experience their thoughts, share their emotions, and see the world through their eyes.</p>
<p>This isn’t just a poetic metaphor; it has a solid neurological basis. Research cited by Wolf reveals that when we read about textures, our somatosensory cortex (the brain area responsible for touch) activates. When we read about movement, our motor areas fire. Our brain doesn’t simply process words; it actively simulates the experiences described in the text. Isn’t that fascinating?</p>
<p>As cognitive scientist <a href="https://www.amazon.com/Such-Stuff-Dreams-Psychology-Fiction/dp/0470974575" target="_blank" rel="noopener noreferrer">Keith Oatley</a> suggests, fiction functions as a “moral laboratory,” allowing us to explore complex social and emotional scenarios in a safe environment.</p>
<p>However, this process of immersion is never a loss of identity, but rather an expansion. As Dunne observes, the return to ourselves is an essential part of the experience.</p>
<p>This “empathy training” is one of reading’s most vital benefits. In an increasingly polarized world, the ability to genuinely understand another person’s perspective is a fundamental necessity. Fiction offers us the practice we need. But this training is only effective if we approach books not as comfort, but as challenge—which brings us to the transformative power of great literature.</p>
<h3>Great books are transformative</h3>
<p>In our consumer culture, it’s easy to treat literature as just another entertainment product, something to be passively consumed. But professor and critic <a href="https://www.amazon.com/Why-Read-Mark-Edmundson-ebook/dp/B002TTICEG" target="_blank" rel="noopener noreferrer">Mark Edmundson</a> argues that this approach betrays literature’s true purpose. Works that endure weren’t written to comfort us; they were written to offer us “live options” and to challenge how we live.</p>
<p>To explain this process, Edmundson uses the concept of “final narratives,” adapted from philosopher Richard Rorty. A <em>final narrative</em> is the set of beliefs, values, and stories we use to make sense of our lives. It might be the belief that “hard work always pays off” or that “family comes first.” Great literature confronts us with other <em>final narratives</em>—Achilles’s, Hamlet’s, Isabel Archer’s—and forces us to question the solidity of our own.</p>
<p>The true test of a work, according to Edmundson, isn’t whether it entertains us, but whether its worldview is a viable alternative to ours. The question we should ask a book is: “Can you live it? Can you put it into practice?” This echoes critic Harold Bloom’s idea that deep reading is a “quest for a difficult pleasure” that demands effort and transforms us. That “difficult pleasure,” in turn, requires the kind of “cognitive patience” that, as we’ve seen, our screen culture is actively eroding. Literature’s purpose is as serious as life itself.</p>
<p>But how does literature create space for this transformation? Part of the answer lies in the unique psychological freedom fiction provides.</p>
<h3>Fiction as a safe zone for dangerous thoughts</h3>
<p>Fiction offers us a unique and protected space for what critic <a href="https://www.newyorker.com/contributors/james-wood" target="_blank" rel="noopener noreferrer">James Wood</a> calls “non-actionable thoughts.” This means that, within a novel’s pages, we can explore ideas, perspectives, and emotions — including the darkest or most controversial — with the assurance that the act of thinking is separated from the act of doing. We can enter a murderer’s mind and examine their internal logic without any real-world consequences.</p>
<p>This access to another’s consciousness is an almost divine power that real life rarely grants us. Fiction allows us to peer into a character’s most intimate thoughts, witnessing their contradictions and secret desires. We learn about the complexity of human motivation in a way that external observation never would allow.</p>
<p>This safe zone for thought is what generates what critic Harold Bloom describes as a “surplus of life.” Great authors, Bloom argues, “more than enlarge life.” When we read, we don’t just live our own limited existence, but also the lives of countless others. This surplus allows us to expand our understanding of the human condition far beyond the boundaries of our personal experience.</p>
<blockquote>
<p><em>“We read Shakespeare, Dante, Chaucer, Cervantes, Dickens, Proust, and all their peers because they more than enlarge life.”</em> — Harold Bloom in <em>How to Read and Why</em></p>
</blockquote>
<p>This expansion of consciousness through fiction teaches us something else equally vital: how to truly see the world around us.</p>
<h3>Literature as a driver of observation</h3>
<p>In a world that encourages us to skim across our phone screens, literature teaches us a forgotten art: “serious noticing,” another term from James Wood. Great writers are masters at noticing the specific, revealing details that give texture and meaning to life. By reading them, we train our own capacity for observation.</p>
<p>Wood illustrates this with an example from <a href="https://www.goodreads.com/book/show/52782.Seize_the_Day" target="_blank" rel="noopener noreferrer">Saul Bellow’s novel <em>Seize the Day</em></a>. The main character notices an elderly man’s “large but light” elbow. This observation is astonishingly precise. The elbow is large because the man is thin and the joint protrudes; but it’s light because he’s frail, composed only of skin and bone. In a single sentence, Bellow captures the essence of old age’s fragility. Literature teaches us that this level of perception is available everywhere, if we slow down enough to look for it.</p>
<p>This practice of “serious noticing” is a powerful antidote to the culture of dπPistraction. It’s the direct opposite of infinite scrolling, which trains us to see without truly noticing. From a neurological standpoint, serious noticing is the practice that builds and strengthens the deep reading circuits described by Maryanne Wolf. Literary reading forces us to slow down and see the world with greater depth, to find meaning in details, and to appreciate the richness of what novelist Henry James considered to be art’s essence.</p>
<h3>Final words</h3>
<p>Far from being an obsolete practice, deep reading emerges as a profoundly active and formative act. It’s an exercise that trains our empathy, challenges our values, reconfigures our brain circuits, and sharpens our perception of the world in ways that quick, superficial information never will.</p>
<p>Reading doesn’t offer us easy answers, but something far more valuable: the capacity to formulate deeper questions and the patience to analyze complexity. It returns us to ourselves, but transformed: with richer neural circuits, deeper empathy, more examined values, and a sharper perception of reality’s fabric.</p>
<p>Patrick Morgan’s observation about how digitization has transformed solitude resonates deeply with me. As someone who has been a passionate reader since adolescence, I find myself constantly struggling with the very problems this article describes: fragmented attention, the difficulty of sustained concentration, the pull of the screen over the page. Writing this piece was itself an act of resistance — a reminder that the battle for deep reading isn’t won once, but must be fought daily.</p>
<div class="references"><h4>Further reading</h4><p>Bellow, S. (1956). <a href="https://www.goodreads.com/book/show/52782.Seize_the_Day" target="_blank" rel="noopener noreferrer"><em>Seize the Day</em></a>. Viking Press.</p><p>Bloom, H. (2000). <a href="https://www.goodreads.com/book/show/20943.How_to_Read_and_Why" target="_blank" rel="noopener noreferrer"><em>How to Read and Why</em></a>. Scribner.</p><p>Edmundson, M. (2004). <a href="https://www.goodreads.com/book/show/821834.Why_Read_" target="_blank" rel="noopener noreferrer"><em>Why Read?</em></a> Bloomsbury.</p><p>Morgan, P. (2025). <a href="https://www.unknownarts.co/p/solitude-is-no-longer-about-being" target="_blank" rel="noopener noreferrer">Solitude is no longer about being alone</a>. <em>Unknown Arts</em>.</p><p>Oatley, K. (2011). <a href="https://www.goodreads.com/book/show/11970894-such-stuff-as-dreams" target="_blank" rel="noopener noreferrer"><em>Such Stuff as Dreams: The Psychology of Fiction</em></a>. Wiley-Blackwell.</p><p>Proust, M. (1905). <a href="https://www.goodreads.com/book/show/18144843-on-reading" target="_blank" rel="noopener noreferrer"><em>On Reading</em></a>. Penguin Classics.</p><p>Wolf, M. (2018). <a href="https://www.theguardian.com/commentisfree/2018/aug/25/skim-reading-new-normal-maryanne-wolf" target="_blank" rel="noopener noreferrer">Skim reading is the new normal. The effect on society is profound</a>. <em>The Guardian</em>.</p><p>Wood, J. (2015). <a href="https://www.goodreads.com/book/show/23168741-the-closest-thing-to-life" target="_blank" rel="noopener noreferrer"><em>The Closest Thing to Life</em></a>. Farrar, Straus and Giroux.</p></div>
          <hr /><p><a href="https://workingbruno.com/notes/deep-reading-age-distraction/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Paying AIs to read my books]]></title>
          <link>https://workingbruno.com/links/paying-ai-read-books/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/paying-ai-read-books/</guid>
          <description><![CDATA[Explore the intriguing concept of paying AIs to read books and how it could revolutionize literature and technology.]]></description>
          <pubDate>Sun, 09 Nov 2025 17:48:38 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Kevin Kelly has a provocative thesis: in the near future, authors will pay AI companies to ensure their books are used in training models. Why? Because “if your work is not known and appreciated by the AIs, it will be essentially unknown.”</p>
<p>It’s a strong, almost dystopian claim, but Kelly argues we’re already on that path. He uses his own experience as evidence: he stopped questioning calculators long ago, then stopped questioning Google, and now finds that most answers from current AIs are pretty reliable. His observation about younger people is even more revealing—they use AI in always-on mode, and more and more of their intangible life goes through the AI and no further. “The AIs are becoming the arbiters of truth,” he concludes.</p>
<p>This is one of those plausible scenarios worth keeping on your radar. Scary? Yes. Impossible? Unfortunately, no.</p>

          <hr /><p><a href="https://workingbruno.com/links/paying-ai-read-books/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Smart context management for coding agents]]></title>
          <link>https://workingbruno.com/notes/smart-context-management-coding-agents/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/smart-context-management-coding-agents/</guid>
          <description><![CDATA[Discover how to optimize coding sessions with agents by managing context effectively for improved productivity and retrieval quality.]]></description>
          <pubDate>Tue, 28 Oct 2025 11:36:05 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fclaudecode_context.DPRfL0Jo.webp&amp;fm=webp&amp;w=800&amp;h=529&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fclaudecode_context.DPRfL0Jo.webp&amp;fm=webp&amp;w=800&amp;h=529&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2Fclaudecode_context.DPRfL0Jo.webp&amp;fm=webp&amp;w=800&amp;h=529&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Smart context management for coding agents" />
          <p>You’re working with Claude Code, and the session is going well. Then something shifts. Responses get vaguer. The agent suggests things you already tried.</p>
<p>Your instinct? Add more context. Paste in more files, explain the architecture again. But that’s exactly the wrong move, because the problem isn’t that your coding agent needs more information — it’s somehow drowning in what it already has.</p>
<h3>What context window actually means</h3>
<p>A context window is the total amount of input and output tokens an LLM can process in a single interaction. Everything counts — your messages, the agent’s responses, files it’s reading, system instructions, those MCP servers you installed.</p>
<p>Hit the token limit and generation stops, but that’s not necessarily the main problem. The real issue happens long before you run out of tokens: as you stuff more information into context, retrieval quality degrades. This is especially true for information buried in the middle — the <em>lost-in-the-middle</em> effect.</p>
<p>Think of it as attention, not RAM. A coding agent with 200,000 tokens of context isn’t necessarily more capable than one with 20,000 tokens of focused, relevant context. Often it’s less capable, spending resources navigating an ocean of information when it needs to make precise decisions.</p>
<h3>The 2M token myth</h3>
<p>Models with 1 million, 2 million tokens felt like the solution. They’re not — at least not by themselves.</p>
<p>Large context windows do matter. They let you work with entire codebases at once and when you need to refactor across dozens of files or understand complex system interactions, a bigger window is genuinely valuable.</p>
<p>But what matters more isn’t how much information the model can hold, but how well it retrieves what it needs. A model with perfect retrieval from 50,000 tokens outperforms one with mediocre retrieval from 2 million tokens. Context overload is still overload, regardless of capacity.</p>
<p>Don’t judge models by window size alone. Judge them by how well they use the context you give them—and by how well you manage what goes in.</p>
<h3>Practical strategies for leaner sessions</h3>
<p><strong>Default to fresh starts.</strong> This is the single most important shift. Instead of maintaining one epic conversation thread that spans days, prefer short, focused sessions. When a thread starts feeling heavy—responses slow down, the agent seems confused — just start fresh.</p>
<p>You’ve built up context, taught the agent about your codebase. Starting over feels wasteful, but a clean slate with a clear objective almost always outperforms a bloated thread. Use <code>/compact</code> sparingly. It costs tokens and time, and it’s rarely as effective as a new thread with a clear goal.</p>
<p><strong>Document decisions, don’t hoard context.</strong> Ask the coding agent to document key decisions in markdown files as you go. In Claude Code you can use <code>#</code> to put relevant instructions in memory.</p>
<p>Create a <code>decisions.md</code> or <code>progress.md</code> file where it records—concisely—what was decided, why, what failed, what constraints matter.</p>
<p>When you start a fresh session, scan the markdown and give the agent exactly the context it needs. You’re pointing to documented decisions, not asking it to remember everything from days ago. A 200-message thread doesn’t scale. A well-maintained markdown file with 20 key decisions? Useful indefinitely.</p>
<p><strong>Watch for hidden context drain.</strong> Every MCP server you install consumes context before you even start typing. Install five or six and you begin each session with a significant chunk already spoken for. Plus, the agent now has more irrelevant information to navigate.</p>
<p>Be intentional. Do you need that database MCP for today’s frontend work? Disable tools you’re not using.</p>
<p><strong>Judge by retrieval quality, not window size.</strong> The agent suggests things you already rejected. Asks questions you answered. Provides code that conflicts with earlier patterns. Responses become generic.</p>
<p>These aren’t signs the agent is “bad” — it’s struggling with too much context. Time for a reset.</p>
<h3>Quick reference tips</h3>
<h4>Session nanagement</h4>
<ul>
<li>Start fresh sessions for new tasks or features;</li>
<li>Reset when responses slow down or get vague by using <code>/clear</code> or a similar command;</li>
<li>Use <code>/compact</code> only when absolutely necessary;</li>
<li>Aim for focused threads, not epic conversations.</li>
</ul>
<h4>Context “hygiene”</h4>
<ul>
<li>Audit installed MCP servers regularly;</li>
<li>Disable servers not needed for current work;</li>
<li>Keep lean system prompts;</li>
<li>Remove persistent instructions that aren’t relevant</li>
</ul>
<h4>Documentation over memory</h4>
<ul>
<li>Create <code>decisions.md</code> or <code>progress.md</code> in your project;</li>
<li>Have the agent update it after key decisions;</li>
<li>Keep entries concise: what was decided, why, what failed;</li>
<li>Reference it when starting fresh sessions instead of repeating context.</li>
</ul>
<h4>Warning signs</h4>
<ul>
<li>Agent suggests previously rejected approaches;</li>
<li>Asks questions you already answered;</li>
<li>Code conflicts with established patterns;</li>
<li>Responses become increasingly generic or hedged;</li>
<li>Session feels sluggish or unresponsive.</li>
</ul>
<h3>Closing</h3>
<p>Productivity with coding agents doesn’t come from feeding them more information. It comes from keeping context clean and relevant.</p>
<p>When something goes wrong, the natural response is adding more context. But you’re not solving a knowledge problem—you’re creating a retrieval problem.</p>
<p>For those working with tools like Claude Code, this means rethinking how we structure work. Focused sessions with clear objectives. Documented decisions, not hoarded context. The discipline of keeping sessions lean matters more than the theoretical capacity to make them massive.</p>
<p>Start fresh more often than feels necessary. Document more than you think you should. Reset when things feel heavy.</p>

          <hr /><p><a href="https://workingbruno.com/notes/smart-context-management-coding-agents/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Making RSS feeds actually work with MDX in Astro]]></title>
          <link>https://workingbruno.com/notes/making-rss-feeds-work-mdx-astro/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/making-rss-feeds-work-mdx-astro/</guid>
          <description><![CDATA[I spent way too long figuring out how to get MDX content and images working properly in RSS feeds. Here's what I learned about Astro's Container API.]]></description>
          <pubDate>Sat, 25 Oct 2025 16:11:01 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>I spent three hours last Tuesday staring at my RSS feed, watching it dutifully render everything <em>except</em> the images I’d carefully imported into my <a href="https://mdxjs.com/" target="_blank" rel="noopener noreferrer">MDX</a> files. The book covers I’d referenced, the diagrams I’d created—all of them replaced with broken references like <code>{bookCover.src}</code>. Beautiful.</p>
<p>Here’s the thing: I’m not a programmer. I’m a UX designer who’s comfortable enough with code to be dangerous, but diving into Astro’s rendering pipeline and TypeScript configurations? That’s not my daily work. But RSS feeds are having a moment again, and I wanted my site’s feed to respect that. Full content. Proper formatting. Working images.</p>
<p>So I did what made sense: I turned to <a href="https://www.claude.com/product/claude-code" target="_blank" rel="noopener noreferrer">Claude Code</a> as my co-pilot. If AI is genuinely good at anything, it’s navigating code that would otherwise intimidate someone like me. This isn’t a story about me heroically solving a complex technical problem alone—it’s about using the right tools to bridge the gap between what I understand (UX, content structure, web design) and what I needed to figure out (<a href="https://docs.astro.build/en/reference/container-reference/" target="_blank" rel="noopener noreferrer">Astro’s Container API</a>, TypeScript configurations, regex patterns for image paths).</p>
<p>Turns out that even with AI assistance, that last part is harder than it should be.</p>
<h3>The disconnect</h3>
<p>Astro’s official RSS integration handles basic markdown beautifully. You point it at your content collections, and it generates a perfectly functional feed. But here’s the thing: sometimes I write in MDX. Not because I enjoy complexity, but because I import images, use custom components, and occasionally need JSX when plain markdown won’t cut it.</p>
<p>Standard markdown parsers look at MDX and see nonsense. When they encounter something like <code>&lt;img src={bookCover.src} alt="Book cover" /&gt;</code>, they either render it as literal text or strip it entirely. The imported image? Gone. The carefully optimized asset that Astro processed during build? Nowhere to be found.</p>
<p>I tried the obvious fixes first. Strip the imports, hope the references resolve somehow. Parse it as HTML. Use a different markdown library. Nothing worked quite right. The images either broke in development, failed in production, or simply never appeared.</p>
<h3>What I actually needed</h3>
<p>The problem runs deeper than just rendering. MDX files aren’t just markdown with imports — they’re JavaScript modules that need proper compilation. When you write <code>import bookCover from '../../assets/image.webp'</code>, Astro transforms that into an optimized asset with a hashed filename. That transformation happens during build, which means any RSS generation that happens outside that pipeline sees unresolved references.</p>
<p>I needed something that could:</p>
<ul>
<li>Actually render MDX, not just parse markdown</li>
<li>Handle imports properly</li>
<li>Resolve image paths correctly in both development and production</li>
<li>Maintain Astro’s image optimization</li>
</ul>
<p>The official documentation wasn’t much help and most RSS tutorials assume markdown. The few that mention MDX either skip images entirely or suggest workarounds that feel fragile.</p>
<h3>The Container API</h3>
<p>Astro v4.9 introduced something called the Container API. It’s marked as experimental, which initially made me hesitate — I’ve been burned by experimental features before. But the core idea made sense: it allows rendering Astro components outside of <code>.astro</code> files.</p>
<p>That’s exactly what RSS generation is: rendering content outside the normal page context.</p>
<p>This is where having Claude Code as a thinking partner became invaluable. I could explain what I was trying to accomplish—“I need my MDX files to render properly in RSS feeds with all the images working”—and it could navigate the Astro documentation, suggest implementation approaches, and help me understand what each piece of code was actually doing. Not just “copy this code,” but “here’s why this approach works and here are the trade-offs.”</p>
<p>The key insight (which took some back-and-forth to understand) is that MDX files in Astro are essentially components. When you render them through the Container API, they go through the same processing pipeline as they would in a regular page. Imports get resolved. Images get optimized. JSX gets compiled.</p>
<h4>The TypeScript hurdle</h4>
<p>First obstacle: the Container API needs <code>moduleResolution: "bundler"</code> in your <code>tsconfig.json</code>. I had mine set to <code>"node"</code> like most tutorials recommend. One line change:</p>
<pre><code><span><span>{</span></span>
<span><span>  "compilerOptions"</span><span>: {</span></span>
<span><span>    "moduleResolution"</span><span>: </span><span>"bundler"</span></span>
<span><span>  }</span></span>
<span><span>}</span></span></code></pre>
<h4>Setting up the container</h4>
<p>The expensive part of using the Container API is creating the container itself. You don’t want to do this for every single post. Create it once, reuse it everywhere:</p>
<pre><code><span><span>import</span><span> { experimental_AstroContainer </span><span>as</span><span> AstroContainer } </span><span>from</span><span> 'astro/container'</span><span>;</span></span>
<span><span>import</span><span> { getContainerRenderer </span><span>as</span><span> getMDXRenderer } </span><span>from</span><span> '@astrojs/mdx'</span><span>;</span></span>
<span><span>import</span><span> { loadRenderers } </span><span>from</span><span> 'astro:container'</span><span>;</span></span>
<span></span>
<span><span>let</span><span> mdxContainer </span><span>=</span><span> null</span><span>;</span></span>
<span></span>
<span><span>async</span><span> function</span><span> getMdxContainer</span><span>() {</span></span>
<span><span>  if</span><span> (</span><span>!</span><span>mdxContainer) {</span></span>
<span><span>    const</span><span> renderers</span><span> =</span><span> await</span><span> loadRenderers</span><span>([</span><span>getMDXRenderer</span><span>()]);</span></span>
<span><span>    mdxContainer </span><span>=</span><span> await</span><span> AstroContainer.</span><span>create</span><span>({ renderers });</span></span>
<span><span>  }</span></span>
<span><span>  return</span><span> mdxContainer;</span></span>
<span><span>}</span></span></code></pre>
<h4>Smart content processing</h4>
<p>The actual rendering logic needs to distinguish between regular markdown (which can use a fast parser) and MDX (which needs the Container API):</p>
<pre><code><span><span>async</span><span> function</span><span> processContent</span><span>(</span><span>entry</span><span>, </span><span>siteUrl</span><span>) {</span></span>
<span><span>  const</span><span> isMdxFile</span><span> =</span><span> entry.filePath?.</span><span>endsWith</span><span>(</span><span>'.mdx'</span><span>) </span><span>??</span><span> false</span><span>;</span></span>
<span></span>
<span><span>  if</span><span> (isMdxFile) {</span></span>
<span><span>    const</span><span> { </span><span>Content</span><span> } </span><span>=</span><span> await</span><span> render</span><span>(entry);</span></span>
<span><span>    const</span><span> container</span><span> =</span><span> await</span><span> getMdxContainer</span><span>();</span></span>
<span><span>    let</span><span> htmlContent </span><span>=</span><span> await</span><span> container.</span><span>renderToString</span><span>(Content);</span></span>
<span></span>
<span><span>    // Handle development image paths</span></span>
<span><span>    if</span><span> (htmlContent.</span><span>includes</span><span>(</span><span>'/@fs/'</span><span>)) {</span></span>
<span><span>      htmlContent </span><span>=</span><span> htmlContent.</span><span>replace</span><span>(</span></span>
<span><span>        /</span><span>\/</span><span>@fs</span><span>\/</span><span>[</span><span>^</span><span>"'\s]</span><span>+</span><span>/</span><span>g</span><span>,</span></span>
<span><span>        (</span><span>match</span><span>) </span><span>=&gt;</span><span> {</span></span>
<span><span>          const</span><span> urlMatch</span><span> =</span><span> match.</span><span>match</span><span>(</span><span>/</span><span>\/</span><span>(</span><span>[</span><span>^</span><span>/?]</span><span>+</span><span>\.</span><span>(webp</span><span>|</span><span>jpg</span><span>|</span><span>jpeg</span><span>|</span><span>png</span><span>|</span><span>gif))(</span><span>\?</span><span>[</span><span>^</span><span>"'\s]</span><span>*</span><span>)</span><span>?</span><span>/</span><span>);</span></span>
<span><span>          if</span><span> (urlMatch) {</span></span>
<span><span>            const</span><span> params</span><span> =</span><span> urlMatch[</span><span>3</span><span>] </span><span>||</span><span> ''</span><span>;</span></span>
<span><span>            return</span><span> `${</span><span>siteUrl</span><span>.</span><span>origin</span><span>}/_image?href=${</span><span>encodeURIComponent</span><span>(</span><span>match</span><span>)</span><span>}${</span><span>params</span><span> ?</span><span> '&amp;'</span><span> +</span><span> params</span><span>.</span><span>slice</span><span>(</span><span>1</span><span>) </span><span>:</span><span> ''}`</span><span>;</span></span>
<span><span>          }</span></span>
<span><span>          return</span><span> match;</span></span>
<span><span>        }</span></span>
<span><span>      );</span></span>
<span><span>    }</span></span>
<span></span>
<span><span>    return</span><span> htmlContent;</span></span>
<span><span>  }</span></span>
<span><span>  </span></span>
<span><span>  // Regular markdown - use the fast path</span></span>
<span><span>  let</span><span> content </span><span>=</span><span> entry.body?.</span><span>replace</span><span>(</span><span>/</span><span>^</span><span>import</span><span>.</span><span>*$</span><span>/</span><span>gm</span><span>, </span><span>''</span><span>) </span><span>||</span><span> ''</span><span>;</span></span>
<span><span>  return</span><span> parser.</span><span>render</span><span>(content);</span></span>
<span><span>}</span></span></code></pre>
<p>That regex for image paths? That’s handling the difference between development (where Astro serves images through <code>/@fs/</code>) and production (where everything gets hashed into <code>/_astro/</code>). In development, we convert those virtual filesystem paths to proper image endpoints. In production, Astro’s build process handles it automatically.</p>
<p>This was one of those moments where Claude Code really proved its worth. I understood the concept — paths need to work differently in dev vs production — but writing a regex pattern that correctly matches and transforms those paths? Not something I do regularly. Having an AI that could generate the pattern, explain what each part does, and then help me test it with different edge cases made this tractable instead of frustrating.</p>
<h3>The parts that still feel rough</h3>
<p>The Container API works, but it’s not perfect. Adding it to my build increased generation time by maybe 8-10 seconds for about 50 posts. Not terrible, but noticeable. And because the API is experimental, there’s always that nagging concern about future breaking changes.</p>
<p>I also had to be more careful about error handling. If MDX rendering fails for any reason — a bad import, a syntax error — the entire RSS generation could break. My solution was to catch errors and fall back to basic markdown parsing:</p>
<pre><code><span><span>try</span><span> {</span></span>
<span><span>  // Try MDX rendering</span></span>
<span><span>  const</span><span> { </span><span>Content</span><span> } </span><span>=</span><span> await</span><span> render</span><span>(entry);</span></span>
<span><span>  const</span><span> container</span><span> =</span><span> await</span><span> getMdxContainer</span><span>();</span></span>
<span><span>  htmlContent </span><span>=</span><span> await</span><span> container.</span><span>renderToString</span><span>(Content);</span></span>
<span><span>} </span><span>catch</span><span> (mdxError) {</span></span>
<span><span>  console.</span><span>warn</span><span>(</span><span>'MDX rendering failed for'</span><span>, entry.id);</span></span>
<span><span>  // Fall back to markdown parser</span></span>
<span><span>  let</span><span> content </span><span>=</span><span> entry.body?.</span><span>replace</span><span>(</span><span>/</span><span>^</span><span>import</span><span>.</span><span>*$</span><span>/</span><span>gm</span><span>, </span><span>''</span><span>) </span><span>||</span><span> ''</span><span>;</span></span>
<span><span>  htmlContent </span><span>=</span><span> parser.</span><span>render</span><span>(content);</span></span>
<span><span>}</span></span></code></pre>
<p>Not elegant, but pragmatic. Better to have a feed with basic markdown than no feed at all.</p>
<h3>What actually changed</h3>
<p>My RSS feed now includes the full content of every post, images and all. Readers using apps like <a href="https://netnewswire.com/" target="_blank" rel="noopener noreferrer">NetNewsWire</a> or <a href="https://reederapp.com/" target="_blank" rel="noopener noreferrer">Reeder</a> see the complete article without needing to click through to the website. The images aren’t broken references—they’re actual, optimized images that load properly.</p>
<p>More importantly, I’m not fighting the tool anymore. The solution fits within Astro’s architecture instead of working around it. Regular markdown posts still use the fast parser. MDX posts get the full rendering pipeline. The system detects the file type and handles it appropriately.</p>
<h3>If you’re dealing with this</h3>
<p>The complete code is longer than I want to paste here, but the pieces I’ve shown are the essential parts. The rest is mostly constructing XML, handling dates, that sort of thing.</p>
<p>A few things I learned:</p>
<ul>
<li>The Container API is stable enough for production despite the “experimental” label. It’s been working reliably since I got it running.</li>
<li>Build time impact is real but manageable. Consider caching the RSS feed at the CDN level if you’re worried about performance.</li>
<li>Test your feed in actual RSS readers, not just by looking at the XML. Some readers handle images differently.</li>
<li>Keep your MDX simple in content files. The more complex your components, the more likely you are to hit edge cases.</li>
<li>If you’re not a programmer, don’t let that stop you. Tools like Claude Code can bridge that gap, helping you understand the code you’re implementing rather than just blindly copying it.</li>
</ul>
<p>The Astro docs have more details on the <a href="https://docs.astro.build/en/reference/container-reference/" target="_blank" rel="noopener noreferrer">Container API</a> if you want to dig deeper. The implementation isn’t as complicated as it first appears, but it does require understanding how Astro processes MDX files.</p>
<p>I’m curious if anyone else has tackled this problem differently. RSS seems like it should be straightforward, but the reality is messier when you start combining modern tooling with a format designed decades ago. That tension between old standards and new workflows creates these odd gaps where the obvious solution doesn’t quite exist yet.</p>
<p>What’s interesting to me, as someone who isn’t a programmer by trade, is how AI tools like Claude Code are changing what’s possible for designers and other non-developers to accomplish. Five years ago, I would have lost an absurd number of hours trying to figure this out or simply given up. Today, I could work through it with an AI assistant that understood both my goal and the technical implementation needed to get there. That feels like a meaningful shift in what’s achievable when you’re willing to learn but don’t have a CS degree.</p>
<p>For now, though, my feeds work. Images show up. MDX renders properly. That’s good enough.</p>
          <hr /><p><a href="https://workingbruno.com/notes/making-rss-feeds-work-mdx-astro/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Ten books and films to revisit fear this halloween]]></title>
          <link>https://workingbruno.com/notes/ten-books-and-films-to-revisit-fear-this-halloween/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/ten-books-and-films-to-revisit-fear-this-halloween/</guid>
          <description><![CDATA[Explore 10 must-read books and films to enjoy this Halloween season, perfect for discovering new favorites or revisiting classics.]]></description>
          <pubDate>Thu, 23 Oct 2025 23:00:00 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2FThe_Cthulhu_beast.DkBCkw3y.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2FThe_Cthulhu_beast.DkBCkw3y.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2FThe_Cthulhu_beast.DkBCkw3y.webp&amp;fm=webp&amp;w=800&amp;h=448&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Ten books and films to revisit fear this halloween" />
          
<p>Halloween is not just a celebration of costumes and candy. It’s an ancestral ritual of confrontation — a moment when we collectively decide to face what we usually avoid: fear. But why? What human need is satisfied when we deliberately seek out stories that unsettle us, that make us question our safety, our sanity, or the very nature of reality?</p>
<p>Your must agree that fear is perhaps one of the most democratic and universal emotions. It crosses cultures, eras, and social classes. It serves obvious evolutionary purposes — keeping us alive — but also more subtle social and psychological functions. Horror stories allow us to explore deep anxieties in a controlled environment, function as rehearsals for chaos, and reveal the cracks in our everyday certainties.</p>
<p>So I decided to make a list of books and movies to revisit fear this halloween, but this list is not a simple enumeration of “horror classics”. It’s a map of different anatomies of fear: from cosmic horror that confronts us with our insignificance, to psychological terror that questions the stability of our minds; from monsters that represent the social anxieties of their time, to very human predators that remind us the real monster might be right beside us.</p>

<div class="book-film-section"><div class="book-film-cover"><a href="https://www.goodreads.com/book/show/58085210-the-call-of-cthulhu" target="_blank" rel="noopener noreferrer"><img src="/_astro/call-of-cthulhu.BGGek81E.webp" alt="The Call of Cthulhu book cover" /></a></div><div class="book-film-content"><h4><a href="https://www.goodreads.com/book/show/58085210-the-call-of-cthulhu" target="_blank" rel="noopener noreferrer">The Call of Cthulhu</a> — H.P. Lovecraft (1928)</h4><p><a href="https://en.wikipedia.org/wiki/H._P._Lovecraft" target="_blank" rel="noopener noreferrer">Lovecraft</a> didn’t just invent monsters — he invented a specific type of terror: cosmic horror. “The Call of Cthulhu” is the cornerstone of this vision. The story follows a man’s investigation into strange manuscripts left by his deceased uncle, which reveal a global conspiracy of cults devoted to ancient, incomprehensible entities that predate humanity.</p><p>What makes Lovecraft unique is not violence or gore, but the philosophical premise: we live in a universe fundamentally indifferent to our existence, populated by forces so ancient and powerful that mere awareness of their existence can destroy human sanity. The true horror is not being attacked — it’s understanding our cosmic irrelevance.</p><p>This work became seminal not only for horror literature but for all of pop culture (from Alien to True Detective). It represents epistemological fear: what if knowledge, instead of liberating us, destroys us? What if there are truths that the human mind simply cannot process without collapsing?</p></div></div>
<div class="book-film-section"><div class="book-film-cover"><a href="https://www.imdb.com/title/tt0084787/" target="_blank" rel="noopener noreferrer"><img src="/_astro/the-thing.I9MMNqhW.webp" alt="The Thing movie poster" /></a></div><div class="book-film-content"><h4><a href="https://www.imdb.com/title/tt0084787/" target="_blank" rel="noopener noreferrer">The Thing</a> — John Carpenter (1982)</h4><p>At a research station in Antarctica, a team of scientists discovers that an alien organism capable of perfectly imitating any life form has infiltrated the group. No one knows who is still human.</p><p>“The Thing” is a masterpiece of paranoia and claustrophobia. <a href="https://en.wikipedia.org/wiki/John_Carpenter" target="_blank" rel="noopener noreferrer">Carpenter</a> takes a simple concept — loss of identity, fear of the other who could be anyone — and transforms it into a visceral experience of growing distrust. Rob Bottin’s practical effects remain disturbing decades later, not just for their technical mastery, but because they visualize something deeply unsettling: the dissolution of boundaries between self and non-self.</p><p>The film failed commercially in 1982 (it premiered two weeks after E.T., which presented a much more comforting vision of alien contact), but became cult for a reason: it captures the specific terror of the Cold War — the impossibility of trust, infiltration, the faceless enemy — and universalizes it.</p></div></div>

<div class="book-film-section"><div class="book-film-cover"><a href="https://www.goodreads.com/book/show/51497.The_Strange_Case_of_Dr_Jekyll_and_Mr_Hyde_and_Other_Tales_of_Terror" target="_blank" rel="noopener noreferrer"><img src="/_astro/jekyll-hyde.BCRgTHWc.webp" alt="Dr Jekyll and Mr Hyde book cover" /></a></div><div class="book-film-content"><h4><a href="https://www.goodreads.com/book/show/51497.The_Strange_Case_of_Dr_Jekyll_and_Mr_Hyde_and_Other_Tales_of_Terror" target="_blank" rel="noopener noreferrer">The Strange Case of Dr Jekyll and Mr Hyde</a> — Robert Louis Stevenson (1886)</h4><p><a href="https://en.wikipedia.org/wiki/Robert_Louis_Stevenson" target="_blank" rel="noopener noreferrer">Stevenson’s</a> novella is so well-known it has become an archetype: the respectable Dr. Jekyll develops a potion that releases his dark side, materialized in the violent and amoral figure of Mr. Hyde. But the story is not about external possession — it’s about the duality inherent in human nature.</p><p>Published in the Victorian era, in a society obsessed with respectability and control, the work explores anxiety about what happens when social masks fall. Jekyll is not Hyde’s victim — he is Hyde. The transformation doesn’t bring something from outside; it reveals something that was always inside.</p><p>It’s cultural impact is undeniable, since the expression “Jekyll and Hyde” entered common language to describe dual personalities. But the work goes further: it questions the illusion of the unitary, coherent self that society demands we maintain. It represents the fear of internal fragmentation: what if the civilized person I present to the world is just a thin facade over impulses I don’t control?</p></div></div>
<div class="book-film-section"><div class="book-film-cover"><a href="https://www.goodreads.com/book/show/44309924-the-sandman-the-nutcracker-and-other-dark-fairy-tales" target="_blank" rel="noopener noreferrer"><img src="/_astro/the-sandman.HBMrMpoc.webp" alt="The Sandman book cover" /></a></div><div class="book-film-content"><h4><a href="https://www.goodreads.com/book/show/44309924-the-sandman-the-nutcracker-and-other-dark-fairy-tales" target="_blank" rel="noopener noreferrer">The Sandman</a> — E.T.A. Hoffmann (1816)</h4><p>This German tale of dark romanticism narrates the story of Nathanael, obsessed since childhood with the figure of the Sandman — a creature who, according to legend, steals the eyes of children who won’t sleep. The narrative mixes childhood memories, growing paranoia, and an inability to distinguish between real and imaginary.</p><p><a href="https://en.wikipedia.org/wiki/E._T._A._Hoffmann" target="_blank" rel="noopener noreferrer">Hoffmann</a> creates something deeply modern: radical ambiguity. We never know for certain if the horrors are real or projections of Nathanael’s disturbed mind. Freud used this tale in his essay on “Das Unheimliche” (the uncanny) to explore how the familiar becomes strange, how inanimate objects (a mechanical doll in the story) can evoke profound discomfort.</p><p>The work influenced all subsequent psychological literature and represents the fear of perception: what if I can’t trust my own senses? What if the reality I experience is just a construction of my damaged mind? It’s epistemological terror turned inward.</p></div></div>

<div class="book-film-section"><div class="book-film-cover"><a href="https://www.goodreads.com/book/show/17245.Dracula" target="_blank" rel="noopener noreferrer"><img src="/_astro/dracula.DantnY_a.webp" alt="Dracula book cover" /></a></div><div class="book-film-content"><h4><a href="https://www.goodreads.com/book/show/17245.Dracula" target="_blank" rel="noopener noreferrer">Dracula</a> — Bram Stoker (1897)</h4><p>Count Dracula was not the first vampire in literature, but <a href="https://en.wikipedia.org/wiki/Bram_Stoker" target="_blank" rel="noopener noreferrer">Bram Stoker</a> created the definitive archetype. The story, told through letters and diaries, narrates the arrival of a Transylvanian aristocrat in London and a group’s efforts to destroy him.</p><p>But Dracula is more than a monster — he’s a catalyst for Victorian anxieties: repressed sexuality, foreign invasion, moral degeneration, the collapse of traditional hierarchies. The vampire seduces, contaminates, transforms. He’s aristocratic but parasitic. Immortal but undead. He operates in the margins between stable categories.</p><p>This book became the template for countless adaptations because Dracula is infinitely reinterpretable — each era projects its anxieties onto his pale face. He endures because he transforms with us, always reflecting whatever we fear about change, contamination, and losing ourselves to the other.</p></div></div>
<div class="book-film-section"><div class="book-film-cover"><a href="https://www.imdb.com/title/tt1001520/" target="_blank" rel="noopener noreferrer"><img src="/_astro/frankenstein.Dr-XNuwc.webp" alt="Frankenstein movie poster" /></a></div><div class="book-film-content"><h4><a href="https://www.imdb.com/title/tt1001520/" target="_blank" rel="noopener noreferrer">Frankenstein</a> — Guillermo del Toro (2025)</h4><p><a href="https://x.com/RealGDT" target="_blank" rel="noopener noreferrer">Del Toro</a> didn’t just make a simple adaptation of <a href="https://en.wikipedia.org/wiki/Mary_Shelley" target="_blank" rel="noopener noreferrer">Mary Shelley’s</a> novel, but a meditation on compassion and rejection. The story of Victor Frankenstein and his creature is retold with the visual and emotional sensibility characteristic of the Mexican director, emphasizing not the horror of the monster, but the horror of loneliness and alienation.</p><p>Shelley wrote “Frankenstein” in 1818, but the story has never aged: a scientist creates artificial life and, horrified by the result, abandons his creation. The creature, intelligent and sensitive, is repeatedly rejected by humanity and becomes violent not by nature, but by despair.</p><p>Del Toro understands what makes this story perennial: it’s not a story about the danger of uncontrolled science — it’s about responsibility, empathy, and the consequences of treating the other as monstrous. His visual version recovers the philosophical depth often lost in more sensationalist adaptations. It represents the fear of creation: what if the real monster is our inability to love what is different?</p></div></div>

<div class="book-film-section"><div class="book-film-cover"><a href="https://www.goodreads.com/book/show/89717.The_Haunting_of_Hill_House" target="_blank" rel="noopener noreferrer"><img src="/_astro/haunting-hill-house.CIC_wZmU.webp" alt="The Haunting of Hill House book cover" /></a></div><div class="book-film-content"><h4><a href="https://www.goodreads.com/book/show/89717.The_Haunting_of_Hill_House" target="_blank" rel="noopener noreferrer">The Haunting of Hill House</a> — Shirley Jackson (1959)</h4><p>Four people agree to spend a few days at Hill House, a notoriously haunted mansion, as part of an investigation into paranormal phenomena. But the house has a life of its own — or is it Eleanor’s mind, the fragile protagonist, that projects her traumas onto the walls?</p><p><a href="https://en.wikipedia.org/wiki/Shirley_Jackson" target="_blank" rel="noopener noreferrer">Shirley Jackson</a> is a master at creating terror without resorting to cheap scares. Hill House is described as “born bad,” with slightly wrong angles, doors that don’t close properly, a geometry that disorients. But the real horror is psychological: Eleanor, lonely and emotionally unstable, finds in the house a distorted reflection of her own mind.</p><p>Considered one of the best psychological horror novels of the 20th century, it influenced everyone from Stephen King to Mike Flanagan. It represents the fear of inhabited space: what if places absorbed trauma? What if there’s no difference between being haunted by a house and being haunted by one’s own mind? Jackson leaves us in ambiguity — and it’s precisely this uncertainty that haunts us.</p></div></div>
<div class="book-film-section"><div class="book-film-cover"><a href="https://www.imdb.com/title/tt0123755/" target="_blank" rel="noopener noreferrer"><img src="/_astro/cube.D4Q3RMBe.webp" alt="Cube movie poster" /></a></div><div class="book-film-content"><h4><a href="https://www.imdb.com/title/tt0123755/" target="_blank" rel="noopener noreferrer">Cube</a> — Vincenzo Natali (1997)</h4><p>Six strangers wake up in an apparently infinite cubic structure, with no memory of how they got there. Each cube connects to other cubes, some safe, others trapped with lethal mechanisms. Without food, water, or explanation, they must find a way to escape while paranoia and internal conflicts destroy the group.</p><p>With a minimal budget and a single set, “Cube” is science fiction as Kafkaesque parable. There’s no explanation for the labyrinth, no identifiable villain, no redemption. It’s high-concept cinema that works because it transforms a simple idea — people trapped in an inexplicable space — into a reflection on bureaucracy, dehumanizing systems, and how extreme stress reveals (or destroys) character.</p><p>It became an instant cult classic and spawned sequels and remakes. It represents systemic fear: what if we’re trapped in structures with no apparent purpose, no identifiable creator, no clear exit? It’s the labyrinthine nightmare transported to a contemporary aesthetic, cold and geometric.</p></div></div>

<div class="book-film-section"><div class="book-film-cover"><a href="https://www.imdb.com/title/tt0101540/" target="_blank" rel="noopener noreferrer"><img src="/_astro/cape-fear.g_b25SZ-.webp" alt="Cape Fear movie poster" /></a></div><div class="book-film-content"><h4><a href="https://www.imdb.com/title/tt0101540/" target="_blank" rel="noopener noreferrer">Cape Fear</a> — Martin Scorsese (1991)</h4><p>Max Cady leaves prison after 14 years and seeks revenge against the lawyer who deliberately failed to defend him adequately. Cady is not supernatural — he’s simply relentless, intelligent, and willing to destroy everything the lawyer and his family value.</p><p><a href="https://en.wikipedia.org/wiki/Martin_Scorsese" target="_blank" rel="noopener noreferrer">Scorsese</a> took a 1962 thriller and transformed it into a baroque exploration of guilt, justice, and how far we can go to protect our own. <a href="https://www.instagram.com/robertdenirodaily/" target="_blank" rel="noopener noreferrer">Robert De Niro</a> creates in Cady a disturbing antagonist: cultured, religious in his distorted way, physically intimidating but above all psychologically manipulative. He’s not a monster — he’s what a human can become when reduced to pure obsession.</p><p>The film works because Cady operates within legal boundaries just long enough to become inescapable. Scorsese understood that the most terrifying predators aren’t supernatural — they’re patient, methodical, and utterly committed to their purpose.</p></div></div>
<div class="book-film-section"><div class="book-film-cover"><a href="https://www.imdb.com/title/tt0093177/" target="_blank" rel="noopener noreferrer"><img src="/_astro/hellraiser.BqJdXkNZ.webp" alt="Hellraiser movie poster" /></a></div><div class="book-film-content"><h4><a href="https://www.imdb.com/title/tt0093177/" target="_blank" rel="noopener noreferrer">Hellraiser</a> — Clive Barker (1987)</h4><p>Frank Cotton opens a puzzle box that summons the Cenobites — extradimensional beings who no longer distinguish pleasure from pain. But “Hellraiser” is not about random monsters; it’s about people who seek extreme transgression and discover there are limits that shouldn’t be crossed.</p><p><a href="https://en.wikipedia.org/wiki/Clive_Barker" target="_blank" rel="noopener noreferrer">Clive Barker</a>, a writer before becoming a director, created a unique mythology: the Cenobites are not evil in the traditional sense — they are explorers of sensations in a realm where human concepts like “torture” have no meaning. Pinhead, the iconic leader with pins in his head, became one of horror’s great antagonists not because he’s violent (though he is), but because he represents an alien philosophy about existence and experience.</p><p>The film spawned a franchise, but the original is the better and maintains it’s disturbing power. Hellraiser represents the fear of absolute transgression: what if we cross a threshold that transforms us beyond any possibility of return?</p></div></div>

<p>These ten works share something essential: they all use fear as a tool for exploration. They don’t just frighten us; they make us think.</p>
<p>Genuine terror is not in jump scares or graphic violence. It’s in the implications, in the questions that accompany us after we close the book or when the cinema lights come on. It’s in how a good horror story functions as a distorted mirror of reality, showing us anxieties we normally keep suppressed.</p>
<p>Perhaps that’s why we continue, generation after generation, to seek these experiences. Not out of masochism, but because there’s something deeply human about wanting to understand what frightens us. In the safe space of fiction, we can confront our mortality, our psychological fragility, our social vulnerability. We can rehearse chaos.</p>
<p>This Halloween, as you revisit some of these works or discover others for the first time, perhaps the question isn’t “why does this frighten me?”, but rather “what does this fear reveal about me, about my time, about the human condition?”</p>
<p>Because terror, well done, is not escapism — it is, paradoxically, one of the most honest ways to look at ourselves in the mirror.</p>
          <hr /><p><a href="https://workingbruno.com/notes/ten-books-and-films-to-revisit-fear-this-halloween/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Responsible optimism: policy for AI’s next phase]]></title>
          <link>https://workingbruno.com/links/20251016-responsible-optimism-policy-for-ais-next-phase/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20251016-responsible-optimism-policy-for-ais-next-phase/</guid>
          <description><![CDATA[Explore responsible optimism in AI policy and its impact on the future of technology and society.]]></description>
          <pubDate>Thu, 16 Oct 2025 12:37:53 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>“We are growing extremely powerful systems that we do not fully understand.”⁠￼</p>
</blockquote>
<p><a href="https://jack-clark.net/about/" target="_blank" rel="noopener noreferrer">Jack Clark</a> argues for a blend of technological optimism and appropriate fear: scaling keeps unlocking unexpected capabilities (including signs of situational awareness), yet alignment remains hard and success is not guaranteed. He calls for a transparency regime built before the inevitable crisis, grounded in listening to public anxieties (jobs, mental health, misalignment) and publishing real data. The post threads concrete risks—from model sycophancy to AI‑enabled biosecurity bypasses—while insisting that acknowledging the “creature” we’ve built is the only way to tame it.</p>

          <hr /><p><a href="https://workingbruno.com/links/20251016-responsible-optimism-policy-for-ais-next-phase/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Failing to Understand the Exponential, Again]]></title>
          <link>https://workingbruno.com/links/20250930-failing-to-understand-the-exponential-again/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250930-failing-to-understand-the-exponential-again/</guid>
          <description><![CDATA[Explore the pitfalls of misunderstanding exponential growth and its implications in various fields. Learn to navigate this crucial concept effectively.]]></description>
          <pubDate>Tue, 30 Sep 2025 13:58:47 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Julian Schrittwieser examines why public debate keeps missing the exponential curve in AI progress. He highlights METR’s time‑horizon evals and OpenAI’s GDPval to show consistent capability gains across software and broader occupations—and argues that simple extrapolation points to near‑term, real economic impact. A clear, grounded read on where we’re headed.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250930-failing-to-understand-the-exponential-again/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Google's Approach to AI Energy Efficiency]]></title>
          <link>https://workingbruno.com/links/20250825-googles-approach-to-ai-energy-efficiency/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250825-googles-approach-to-ai-energy-efficiency/</guid>
          <description><![CDATA[Google details its strategy for reducing the environmental impact of AI, highlighting major advances in energy efficiency and transparency. This post covers their latest data on AI’s energy use, carbon footprint, and ongoing commitment to sustainable innovation.]]></description>
          <pubDate>Mon, 25 Aug 2025 14:18:56 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>Over a 12-month period, while delivering higher-quality responses, the median energy consumption and carbon footprint per Gemini Apps text prompt decreased by factors of 33x and 44x, respectively. Based on our recent analysis, we found that our work on efficiency is proving effective and the energy consumed per median prompt is equivalent to watching television for less than nine seconds.</p>
</blockquote>
<p>Google seems to be taking a transparent approach to measuring and improving the environmental footprint of its AI models, sharing detailed methodology and impressive efficiency gains. Their commitment to data center optimization and clean energy scaling is a strong signal for the future of sustainable tech. It’s encouraging to see major players publish real numbers and push for accountability as AI adoption accelerates.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250825-googles-approach-to-ai-energy-efficiency/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Sam Altman's Gentle Singularity]]></title>
          <link>https://workingbruno.com/links/20250616-sam-altmans-gentle-singularity/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250616-sam-altmans-gentle-singularity/</guid>
          <description><![CDATA[Explore Sam Altman's vision of a gentle singularity and its impact on technology and society in this insightful article.]]></description>
          <pubDate>Mon, 16 Jun 2025 15:48:07 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Sam Altman argues that the rise of digital superintelligence will be gradual and transformative, with major benefits for science and productivity. However, <a href="https://pt.linkedin.com/posts/ctaurion_fiquei-perplexo-com-as-recentes-declara%C3%A7%C3%B5es-activity-7339224249313677314-kkDX" target="_blank" rel="noopener noreferrer">critics</a> say his vision is overly optimistic, underestimates current technical and social challenges, and glosses over risks like inequality and AI alignment. Others, such as <a href="https://fasterplease.substack.com/p/sam-altmans-gentle-singularity-message" target="_blank" rel="noopener noreferrer">James Pethokoukis</a>, see the essay as a strategic attempt to calm public anxiety, while some urge a more grounded debate about AI’s real-world limitations.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250616-sam-altmans-gentle-singularity/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[From Cover to Cover]]></title>
          <link>https://workingbruno.com/links/20250317-from-cover-to-cover/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250317-from-cover-to-cover/</guid>
          <description><![CDATA[Jenny Volvovski recreated book covers using a limited color palette and typography.  The project aimed to create a cohesive series aesthetic.]]></description>
          <pubDate>Mon, 17 Mar 2025 11:03:19 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>This is one of the most wonderful personal projects I’ve seen in a long time. Designer Jenny Volvoski set out to recreate the covers of books she had read, with a few constraints: green/black/white for the colour, Futura/typewriter/handwriter/(and Caslon Italic) for the text, and scans/drawings/photography for the image. As you can see, the results are stunning.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250317-from-cover-to-cover/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Resist Authoritarianism by Refusing to Obey in Advance]]></title>
          <link>https://workingbruno.com/links/20250213-resist-authoritarianism-by-refusing-to-obey-in-advance/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250213-resist-authoritarianism-by-refusing-to-obey-in-advance/</guid>
          <description><![CDATA[Explore how preemptive disobedience can challenge authoritarianism and empower individual freedom.]]></description>
          <pubDate>Thu, 13 Feb 2025 10:46:27 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>Anticipatory obedience is a political tragedy. Perhaps rulers did not initially know that citizens were willing to compromise this value or that principle. Perhaps a new regime did not at first have the direct means of influencing citizens one way or another.</p>
</blockquote>
<p>This is a very important message on which we should reflect deeply.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250213-resist-authoritarianism-by-refusing-to-obey-in-advance/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Tools Are Just Tools... Aren't They?]]></title>
          <link>https://workingbruno.com/notes/tools-are-just-tools-arent-they/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/tools-are-just-tools-arent-they/</guid>
          <description><![CDATA[Exploring our complex relationship with software tools in 2025, from the endless search for perfect productivity to the emerging era of AI-augmented workflows.]]></description>
          <pubDate>Thu, 06 Feb 2025 13:13:23 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>The quest for the perfect tool setup seems eternal. Like many of you, I’m constantly tinkering with my software toolkit, convinced that the next app might be the one that revolutionizes my workflow. But as we enter this new era of AI-augmented tools, I’ve been reflecting on our relationship with software and how it’s evolving.</p>
<p>We’re all familiar with the pattern: discover a new tool, get excited about its possibilities, integrate it into our workflow, and then… start looking for something better. Just when you think you’ve found the perfect note-taking app or task manager, someone shares their setup with a compelling alternative.</p>
<p>What drives this perpetual search? Perhaps it’s not just about the tools themselves, but our secret hope that the right combination of software will unlock unprecedented productivity. We’ve all been there – watching those “My Productivity Setup” videos, convinced that this new system will finally be the one.</p>
<p>It’s fascinating how certain tools become almost viral in professional circles. Notion, Figma, VS Code – these aren’t just tools anymore; they’re expected competencies which is seems to me plain wrong. Being proficient in Figma, or Sketch for that matter, doesn’t make you a better designer.</p>
<p>Here’s my current toolkit, though I’m sure it will look different in a few months:</p>
<h3>AI tools</h3>
<ul>
<li><a href="https://www.anthropic.com/claude" target="_blank" rel="noopener noreferrer">Claude</a>: Desktop client for Anthropic’s LLM. While capable, it currently lacks feature parity with ChatGPT’s interface.</li>
<li><a href="https://block.github.io/goose/" target="_blank" rel="noopener noreferrer">Goose</a>: Promising on-machine AI agent in early development. Shows significant potential despite its nascent state.</li>
<li><a href="https://sanctum.ai/" target="_blank" rel="noopener noreferrer">Sanctum</a>: Privacy-focused, open-source LLM interface. Enables local model running with complete data control.</li>
<li><a href="https://codeium.com/windsurf" target="_blank" rel="noopener noreferrer">Windsurf AI</a>: Collaborative coding environment with integrated AI capabilities. Truly impressive.</li>
</ul>
<h3>Browsers and web tools</h3>
<ul>
<li><a href="https://arc.net/" target="_blank" rel="noopener noreferrer">Arc</a>: Innovative browser with a minimalist approach. Development has paused as The Browser Company shifts focus.</li>
<li><a href="https://www.mozilla.org/firefox/" target="_blank" rel="noopener noreferrer">Firefox</a>: Reliable development browser featuring industry-leading inspection tools.</li>
<li><a href="https://raindrop.io/" target="_blank" rel="noopener noreferrer">Raindrop.io</a>: Comprehensive bookmarks manager with solid cross-platform support and browser integration.</li>
<li><a href="https://netnewswire.com/" target="_blank" rel="noopener noreferrer">Netnewswire</a>: Time-tested, open-source RSS reader. Offers robust functionality without unnecessary complexity. Thank you, <a href="https://inessential.com/" target="_blank" rel="noopener noreferrer">Brent Simmons</a>.</li>
</ul>
<h3>Design</h3>
<ul>
<li><a href="https://www.adobe.com/creativecloud.html" target="_blank" rel="noopener noreferrer">Adobe Creative Suite</a>: Adobe suite of tools needs no introduction. I use it less and less these days.</li>
<li><a href="https://colorslurp.com/" target="_blank" rel="noopener noreferrer">Color Slurp</a>: Straightforward color picker that delivers exactly what it promises.</li>
<li><a href="https://en.eagle.cool/" target="_blank" rel="noopener noreferrer">Eagle</a>: Efficient asset management system. I use it mainly for design inspiration collections.</li>
<li><a href="https://www.figma.com/" target="_blank" rel="noopener noreferrer">Figma</a>: One of the tools — besides the browser, Obsidian and mail — where  I spent most of my working hours.</li>
</ul>
<h3>Development</h3>
<ul>
<li><a href="https://www.outsystems.com/low-code-platform/" target="_blank" rel="noopener noreferrer">OutSystems Service Studio</a>: Low-code development environment used at FCT for rapid application deployment.</li>
<li><a href="https://www.git-tower.com/" target="_blank" rel="noopener noreferrer">Tower</a>: Definitive Git client for macOS. Sets the standard for version control interfaces.</li>
<li><a href="https://code.visualstudio.com/" target="_blank" rel="noopener noreferrer">VS Code</a>: Versatile code editor with built-in Copilot integration. Maintains the perfect balance between features and performance.</li>
<li><a href="https://www.warp.dev/" target="_blank" rel="noopener noreferrer">Warp</a>: Modern terminal built in Rust. Enhances command-line productivity with AI-assisted features. Replaced the trusty <a href="https://iterm2.com/" target="_blank" rel="noopener noreferrer">iTerm</a> in my toolkit.</li>
</ul>
<h3>Communication, media and entertainment</h3>
<ul>
<li><a href="https://calibre-ebook.com/" target="_blank" rel="noopener noreferrer">Calibre</a>: The most comprehensive eBook management tool for organizing  digital books that I know. Indispensable companion to my Kobo  Libra 2.</li>
<li><a href="https://tapbots.com/ivory/" target="_blank" rel="noopener noreferrer">Ivory</a>: Refined Mastodon client with Tapbots’ signature polish.</li>
<li><a href="https://www.microsoft.com/microsoft-teams" target="_blank" rel="noopener noreferrer">Microsoft Teams</a>: Corporate collaboration platform used within FCT.</li>
<li><a href="https://www.spotify.com/" target="_blank" rel="noopener noreferrer">Spotify</a>: You know Spotify, right? No, seriously. More than once, I’ve tried to change but I have a family plan and… you know.</li>
<li><a href="https://www.whatsapp.com/" target="_blank" rel="noopener noreferrer">WhatsApp</a>: Because everybody uses it and I’m still quicker on a physical keyboard.</li>
<li><a href="https://zoom.us/" target="_blank" rel="noopener noreferrer">Zoom</a>: Standard video conferencing solution.</li>
</ul>
<h3>Productivity</h3>
<ul>
<li><a href="https://www.apple.com/macos/macos-sequoia/" target="_blank" rel="noopener noreferrer">Apple Notes</a>: Simple yet powerful note-taking app for capturing ideas across Apple devices.</li>
<li><a href="https://ticktick.com/" target="_blank" rel="noopener noreferrer">Tick Tick</a>: Current task management choice after evaluating various alternatives including Omnifocus and Things.</li>
<li><a href="https://obsidian.md/" target="_blank" rel="noopener noreferrer">Obsidian</a>: Markdown-based knowledge management system built on local plain text files.</li>
<li><a href="https://www.notion.so/" target="_blank" rel="noopener noreferrer">Notion</a>: All-in-one productivity tool that combines note-taking, task management, and database organization in a highly customizable workspace. I use it mainly for small databases.</li>
<li><a href="https://www.microsoft.com/microsoft-365" target="_blank" rel="noopener noreferrer">Office Suite</a>: Still use Word and Excel at my work.</li>
</ul>
<h3>Utilities</h3>
<ul>
<li><a href="https://www.raycast.com/" target="_blank" rel="noopener noreferrer">Raycast</a>:  Powerful launcher and utility suite. Handles everything from quick calculations to snippet management.</li>
<li><a href="https://mountainduck.io/" target="_blank" rel="noopener noreferrer">Moutain Duck</a>: Efficient cloud storage mounter for macOS Finder. Simple yet effective Google Drive integration.</li>
<li><a href="https://panic.com/transmit/" target="_blank" rel="noopener noreferrer">Transmit</a>: Still my favorite sFTP visual client for mac.</li>
<li><a href="https://www.noodlesoft.com/" target="_blank" rel="noopener noreferrer">Hazel</a>: Automated file organization and management for macOS. It keeps my mac tidy!</li>
<li><a target="_blank" rel="noopener noreferrer">Dropbox</a>: Legacy cloud storage choice. Continued use driven by deep system integration and inertia.</li>
<li><a href="https://klokki.com/" target="_blank" rel="noopener noreferrer">Klokki</a>: Lightweight time-tracking solution. Particularly valuable for freelance work management.</li>
</ul>
<p>We’re at a unique moment in software history. AI isn’t just another feature – it’s fundamentally changing how we interact with our tools. Applications like Windsurf AI and Goose aren’t just doing tasks for us; they’re working alongside us, learning our preferences, and adapting to our needs.
This shift raises interesting questions. When your IDE can generate code or your writing assistant can draft entire documents, what does that mean for traditional productivity metrics? Are we moving from tools as implements to tools as collaborators?</p>

          <hr /><p><a href="https://workingbruno.com/notes/tools-are-just-tools-arent-they/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Redefine Your Design Skills to Prepare for AI]]></title>
          <link>https://workingbruno.com/links/20250131-redefine-your-design-skills-to-prepare-for-ai/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250131-redefine-your-design-skills-to-prepare-for-ai/</guid>
          <description><![CDATA[Enhance your design skills for the AI era and stay ahead in the evolving creative landscape.]]></description>
          <pubDate>Fri, 31 Jan 2025 19:50:47 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>Embracing automation for tactical efforts while intentionally cultivating strategic thinking ensures that designers maintain their thought-leader and decision-maker roles, while no longer acting as mere executors of predefined processes.</p>
</blockquote>
<p>Great article from Pablo Fernandéz Vallejo from Nielsen Norman Group on how to prepare for AI in design. It speaks on task automation and augmentation, organizational change, the importance of strategic thinking and more. It’s a great read for anyone looking to stay ahead in the design industry.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250131-redefine-your-design-skills-to-prepare-for-ai/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Writing Can Save You Time]]></title>
          <link>https://workingbruno.com/links/20250128-writing-can-save-you-time/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250128-writing-can-save-you-time/</guid>
          <description><![CDATA[Discover how effective writing techniques can streamline your workflow and save you valuable time in your daily tasks.]]></description>
          <pubDate>Tue, 28 Jan 2025 19:48:48 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>Writing can save you time. Publishing ideas on paper is how you create intellectual capital because writing is how you make your ideas permanent. Words on paper are the closest thing we have to time travel. Once you write something down, you can remix and reuse the ideas for the rest of your life.</p>
<p>Writing is research and development for your brain. The words you publish now are the seeds of your future projects. Every time you write down an idea, you add a Lego block to your intellectual arsenal. The more Legos you have, the more things you can build. Writing is the same. The more you write now, the more you can create in the future. As the number of artifacts you create increase linearly, the number of connections you make between them increase exponentially.</p>
</blockquote>
<p>I was poking around <a href="https://paulderaaij.nl/" target="_blank" rel="noopener noreferrer">Paul de Raaij’s</a> digital garden when I came across the phrase “Writing things down helps build intellectual capital”, and luckily Paul linked to this wonderful article by David Perell. It such a strong and truthful idea.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250128-writing-can-save-you-time/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[The End of Intellectual Fordism]]></title>
          <link>https://workingbruno.com/notes/the-end-of-intellectual-fordism/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/the-end-of-intellectual-fordism/</guid>
          <description><![CDATA[Explore how AI tools are transforming knowledge    work through real developer experiences, backed by research insights on cognitive automation and workplace evolution.]]></description>
          <pubDate>Mon, 27 Jan 2025 15:26:20 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>I know what you’re thinking - another article about AI transformation? But hear me out, because this parallel fascinated me. The assembly line revolutionized manufacturing by breaking complex processes into simple, repeatable tasks. Today, we’re witnessing a similar transformation in knowledge work – but in reverse. AI tools are helping us automate repetitive intellectual tasks, allowing us to focus on more creative and strategic work.</p>
<h3>Understanding the AI transformation</h3>
<p>You’ve probably heard that AI is different from previous waves of automation. And it really is - research from MIT and Boston University shows it’s primarily impacting highly educated, well-paid professionals in urban industries like medicine, finance, and tech (<a href="https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3098384" target="_blank" rel="noopener noreferrer">Acemoglu &amp; Restrepo, 2019</a>). But here’s the thing - it’s not just about replacing tasks. It’s about augmenting what we can do.</p>
<h4>The power of personal examples</h4>
<p>Let me share how this plays out in my daily work. As a content creator and designer, I’ve recently found myself relying more and more on AI tools. They’ve become like quiet but incredibly capable assistants, handling tasks that used to eat up hours of my time. Here are a couple of examples that really show this evolution in action.</p>
<h4>When AI becomes your coding buddy</h4>
<p>While working on this website, I faced a common challenge for non-developers: getting stuck on technical implementation details. Though familiar with frontend technologies like HTML, CSS, and JavaScript, I’m not a full-time developer. <a href="https://astro.build/" target="_blank" rel="noopener noreferrer">AstroJS</a>, a modern web framework that optimizes content-focused websites, presented a learning curve that could have been daunting.</p>
<p>That’s when I discovered that <a href="http://claude.ai/" target="_blank" rel="noopener noreferrer">Claude</a> and specially <a href="https://codeium.com/windsurf" target="_blank" rel="noopener noreferrer">Windsurf</a> could be my  AI coding companions. Researchers call this kind of help <em>“cognitive process automation”</em> (CPA) – using AI to handle tasks that require judgment and decision-making (<a href="https://journals.sagepub.com/doi/full/10.1177/0266382120974601" target="_blank" rel="noopener noreferrer">Richardson, 2020</a>) — but I just call it a game-changer. Here’s how these AI assistants enhanced my workflow:</p>
<ul>
<li>Code scaffolding and boilerplate generation</li>
<li>Real-time debugging suggestions and error analysis</li>
<li>Documentation queries and synthesis</li>
<li>Component optimization and performance recommendations</li>
<li>Quick prototyping of new features</li>
</ul>
<p>The impact was immediate: tasks that previously took hours now take minutes, and the quality of output has improved consistently while it helps me to learn how AstroJS works.</p>
<h4>From problem to solution: AI-powered tool creation</h4>
<p>The true power of AI assistance became even more apparent when facing a common content management challenge. Like many content creators, I was constantly fighting with Word documents and WordPress - you know that frustrating process of copying content only to find it loaded with unwanted styling markup? Yeah, that used to drive me crazy.</p>
<p>Instead of accepting this as a necessary evil, I took a different approach which wasn’t possible about a year ago:</p>
<ul>
<li>Collaborated with AI to design a custom React utility app</li>
<li>Developed the solution in about 5 minutes</li>
<li>Created a reusable tool that benefits both me and my team</li>
</ul>
<p>It might sound simple, but that’s exactly the point. Similar examples are popping up everywhere - check out <a href="https://simonwillison.net/2024/Oct/21/claude-artifacts/" target="_blank" rel="noopener noreferrer">Simon Willison’s explorations</a> with Claude artifacts if if you want to see more creative uses of AI tools.</p>
<h3>The <em>in-between</em> era</h3>
<p>We’re living in a fascinating moment of technological transition. While AI tools have become powerful enough to transform how we work, we’re still learning to dance with these new partners. It’s like learning a new instrument – we know it can make beautiful music, but we’re still mastering how to play it effectively.</p>
<p>The integration of AI tools into knowledge work isn’t following a clear, predefined path. Unlike traditional software where features and use cases are well-defined, AI tools reveal their potential through experimentation and creative application. What begins as a simple code completion tool might evolve into a sophisticated programming partner that helps architect solutions and identify potential issues before they arise.</p>
<p>The learning curve presents another interesting dimension. It’s not just about learning to use the tools – it’s about learning to think alongside them. Effective prompting, for example, is more art than science. It requires understanding both the capabilities and limitations of AI systems, while maintaining a clear vision of the desired outcome. This skill, which Sharon Richardson on her paper <a href="https://journals.sagepub.com/doi/full/10.1177/0266382120974601" target="_blank" rel="noopener noreferrer">“Cognitive automation: A new era of knowledge work?”</a> came to call <em>“AI-augmented problem solving”</em> takes time to develop but proves invaluable once mastered.</p>
<p>Integration into daily work brings its own challenges and surprises. Remember that content cleaning tool I mentioned? That wasn’t just about solving a problem - it changed how I think about solving problems entirely. Instead of looking for ready-made solutions, I’m now thinking about how to create tools that make tedious tasks disappear.</p>
<p>The benefits are real - we’re seeing better output, more consistency, and tackling projects that would have seemed impractical before. But let’s be honest: these tools aren’t magic. They can be unpredictable when pushed too far, and there’s definitely no autopilot mode. You need to stay engaged, guiding and supervising the AI’s work.</p>
<p>What really excites me is how this is changing our understanding of productivity. We’re moving beyond simple metrics like tasks completed or lines of code written. Instead, we’re thinking about problem-solving effectiveness and creative output. It’s a whole new way of measuring what matters in knowledge work.</p>
<h3>Looking forward</h3>
<p>So where does all this leave us? If you’re thinking about incorporating AI tools into your work, here’s what I’ve learned:</p>
<ul>
<li>Start small - find those annoying repetitive tasks that eat up your time</li>
<li>Experiment with different tools to see what fits your workflow</li>
<li>Look for opportunities to create lasting solutions, not just quick fixess</li>
<li>Keep notes on what works and what doesn't</li>
<li>Gradually expand as you and your team get comfortable</li>
</ul>
<p>The tools are evolving rapidly - getting better at understanding code, processing language, and working within our context. But more importantly, we’re getting better at working with them.</p>
<p>The biggest challenge isn’t technical - it’s rather conceptual, it’s about changing how we think about these tools. They’re not just fancy automation; they’re collaborative partners in the creative process. This means developing new skills: learning to direct AI effectively, validate its output, and integrate it into our broader problem-solving approach.</p>
<p>The end of intellectual Fordism doesn’t obviously mean the end of knowledge work, but rather reflects my wish to eliminate the tedious tasks inherent in intellectual work. It marks the beginning of what researchers call a “new era of knowledge work” where AI <em>cognitive process automation</em> enhances rather than replaces human capabilities. The challenge now is learning to dance with these new AI partners effectively - and I, for one, am excited to keep learning new steps.</p>

          <hr /><p><a href="https://workingbruno.com/notes/the-end-of-intellectual-fordism/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[OpenAI has created an AI model for longevity science]]></title>
          <link>https://workingbruno.com/links/20250123-openai-has-created-an-ai-model-for-longevity-science/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250123-openai-has-created-an-ai-model-for-longevity-science/</guid>
          <description><![CDATA[Discover how OpenAI's new AI model is revolutionizing longevity science and paving the way for healthier, longer lives.]]></description>
          <pubDate>Thu, 23 Jan 2025 10:16:49 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>OpenAI’s new model, called GPT-4b micro, was trained to suggest ways to re-engineer the protein factors to increase their function. According to OpenAI, researchers used the model’s suggestions to change two of the Yamanaka factors to be more than 50 times as effective—at least according to some preliminary measures.</p>
</blockquote>
<p>Seems that OpenAI is diversofying its AI models to cover more fields of science… and business. They’re doing this research by investing in Retro Bioscience, a company that focuses on longevity science. The shaddy part is that Sam Altman, CEO of OpenAI, is also a co-founder of Retro Bioscience.
Nevertheless, it’s a great example of how AI can be used to solve real-world problems.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250123-openai-has-created-an-ai-model-for-longevity-science/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Once-in-a-century' discovery reveals spectacular luxury of Pompeii]]></title>
          <link>https://workingbruno.com/links/20250121-once-in-a-century-discovery-reveals-spectacular-luxury-of-pompeii/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250121-once-in-a-century-discovery-reveals-spectacular-luxury-of-pompeii/</guid>
          <description><![CDATA[Explore the stunning luxury of Pompeii revealed in a once-in-a-century discovery that uncovers ancient opulence and history.]]></description>
          <pubDate>Tue, 21 Jan 2025 00:00:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>Archaeologists have discovered a sumptuous private bathhouse - potentially the largest ever found there - complete with hot, warm and cold rooms, exquisite artwork, and a huge plunge pool.</p>
</blockquote>
<p>I’ve been to Pompeii twice and I’ve always been amazed and surprised. In some areas of the city, it’s as if you’ve traveled back in time to 79AD, a few days before the eruption of Mount Vesuvius. It’s a unique, dramatic and breathtaking place where discoveries are made every day.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250121-once-in-a-century-discovery-reveals-spectacular-luxury-of-pompeii/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Front Matter: Headless CMS right in your code editor]]></title>
          <link>https://workingbruno.com/links/20250118-front-matter-headless-cms-right-in-your-code-editor/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250118-front-matter-headless-cms-right-in-your-code-editor/</guid>
          <description><![CDATA[Discover how Front Matter integrates headless CMS capabilities directly into your code editor for seamless content management.]]></description>
          <pubDate>Sat, 18 Jan 2025 16:57:54 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>After AstroJS was updated to version 5.0+, with a new way to manage content collections, I noticed that the <a href="/notes/a-mac-darkmatter-for-your-astro/" target="_blank" rel="noopener noreferrer">promising Darkmatter</a> no longer works and its development is at a standstill. I found Front Matter and I’m still trying it out, but it seems to be an interesting approach.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250118-front-matter-headless-cms-right-in-your-code-editor/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Durable products]]></title>
          <link>https://workingbruno.com/links/20250117-durable-products/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250117-durable-products/</guid>
          <description><![CDATA[undefined]]></description>
          <pubDate>Fri, 17 Jan 2025 00:22:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>“This in my opinion is what any product company should strive for. Make useful things for people. Make them high-quality and durable. Make them so that if and when a thing wear down, people will want to replace it with the exact same thing. Repeat the cycle.”
— Brad Frost</p>
</blockquote>
<p>Producing durable products is a necessity. I think it’s unrealistic to think that we can solve the climate change crisis without changing the paradigm of industrial production.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250117-durable-products/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[David Lynch, Twin Peaks and Mulholland Drive director, dies aged 78]]></title>
          <link>https://workingbruno.com/links/20250117-david-lynch-twin-peaks-and-mulholland-drive-director-dies-aged-78/</link>
          <guid isPermaLink="true">https://workingbruno.com/links/20250117-david-lynch-twin-peaks-and-mulholland-drive-director-dies-aged-78/</guid>
          <description><![CDATA[Remembering David Lynch: the visionary behind Twin Peaks and Mulholland Drive, whose unique storytelling reshaped American television.]]></description>
          <pubDate>Fri, 17 Jan 2025 00:01:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <blockquote>
<p>Lynch then embarked on another noirish project, the opaque and surreal murder-mystery Twin Peaks that – unusually for notable film directors of the period – was envisioned as a TV series;Lynch developed it with former Hill Street Blues writer Mark Frost. A mix of small town comedy, police procedural and surreal dreamworld, and described as “the most hauntingly original work ever done for American TV”
— Andrew Pulver</p>
</blockquote>
<p>I still believe that the Twin Peaks series was something unique in the history of television. In another article in The Guardian, journalist Peter Bradshaw called Lynch “the great American surrealist who made experimentalism mainstream”. I couldn’t have said it better myself.</p>

          <hr /><p><a href="https://workingbruno.com/links/20250117-david-lynch-twin-peaks-and-mulholland-drive-director-dies-aged-78/">This is a link published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Weekly #5]]></title>
          <link>https://workingbruno.com/notes/20250113-weekly-5/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20250113-weekly-5/</guid>
          <description><![CDATA[The Weekly is a collection of things that got my attention during the week]]></description>
          <pubDate>Mon, 13 Jan 2025 15:36:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>The weekly notes format isn’t working very well for me. I miss being able to share something that interested me the moment I read or found it. I need to introduce a way to publish these little snippets in an easy way.</p>
<p>But what did my radar pick up last week?</p>
<ul>
<li>Steph Ango published an <a href="https://stephango.com/flexoki" target="_blank" rel="noopener noreferrer">improved version of his Flexoki colour scheme</a>. In his words, this colour scheme is: ‘designed for reading and writing on digital screens. It is inspired by analog inks and warm shades of paper.’</li>
<li>Polymath <a href="https://briefs.video/" target="_blank" rel="noopener noreferrer">Heydon Pickering</a> has written a text on <a href="https://github.com/Heydon/principles-of-web-accessibility" target="_blank" rel="noopener noreferrer">web accessibility principles</a> that everyone who produces web content and cares about accessibility should read.</li>
<li><a href="https://www.thisiscolossal.com/" target="_blank" rel="noopener noreferrer">Colossal</a> is one of the best little boxes of surprises. <a href="https://www.thisiscolossal.com/2025/01/acorn-lfz-studio/" target="_blank" rel="noopener noreferrer">‘The World in an Acorn’</a> is perhaps one of the most beautiful and original constructions I’ve ever seen, and I was keen to visit. It was designed by Linfeng Zhou and ‘lives’ in a forest in Rouen, France.</li>
<li>My mind works better with some structure and organisation. So does my work as a designer. Sometimes it takes time to arrive at an organisational structure that is really flexible and appropriate. <a href="https://danmall.com/posts/the-file-folder-structure-every-designer-needs/" target="_blank" rel="noopener noreferrer">Dan Mall wrote a nice article entitled ‘The File Folder Structure Every Designer Needs’</a>. I don’t agree with all the options, but it’s an excellent basis for work.</li>
</ul>

          <hr /><p><a href="https://workingbruno.com/notes/20250113-weekly-5/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Remembering Adília]]></title>
          <link>https://workingbruno.com/notes/20250103-remembering-adilia/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20250103-remembering-adilia/</guid>
          <description><![CDATA[This is a tribute to the Portuguese poet Adília Lopes.]]></description>
          <pubDate>Fri, 03 Jan 2025 19:45:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>At the end of 2024, Maria José da Silva Viana Fidalgo de Oliveira, better known by the pseudonym Adília Lopes, one of the most unique voices in Portuguese poetry, disappeared from the world of the living. I became a fan of her seemingly simple poetry, in which she wonderfully played with words from the very first verses. Adília died at the age of 64, but I hope her words will be a way for her memory to live on. The world needs Adilia Lopes.</p>
<p><em>minha avó dizia</em><br />
<em>quando matava</em><br />
<em>uma pulga</em><br />
<em>já ganhei o dia</em><br />
<em>eu quando escrevo</em><br />
<em>um poema bom</em><br />
<em>digo como a minha avó</em><br />
<em>já ganhei o dia</em><br /></p>
<p><em>Não gosto de matar</em></p>

          <hr /><p><a href="https://workingbruno.com/notes/20250103-remembering-adilia/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Meanwhile]]></title>
          <link>https://workingbruno.com/notes/20240628-meanwhile/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20240628-meanwhile/</guid>
          <description><![CDATA[Friends, it's been a long time. For the last few months I've been away from computers in my spare time.]]></description>
          <pubDate>Fri, 28 Jun 2024 22:12:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Friends, it’s been a long time. For the last few months I’ve been away from computers in my spare time. I think I needed a detox… what should I call it… a kind of <a href="https://www.wikiwand.com/en/Digital_detox" target="_blank" rel="noopener noreferrer">digital detox</a> .</p>
<p>I didn’t stop working, but I avoided being around computers whenever possible. I’ve tried to focus a bit more on family life and doing some things I’ve been meaning to do for a while, like getting my motorcycle licence.</p>
<p>I’ve also taken a break from reading, which means my books and my <a href="https://pt.kobobooks.com/" target="_blank" rel="noopener noreferrer">Kobo</a> have been gathering dust on the shelf. I have to say that, contrary to what you might expect, it wasn’t complicated - I think I really needed this break.  There’s a certain empowerment in freeing yourself from the <a href="https://www.forbes.com/sites/meganbruneau/2020/01/12/change-this-one-thing-and-be-productive-all-the-time/" target="_blank" rel="noopener noreferrer">idea that all your time has to be productive</a>. It’s not. I was happy to be able to do it and not feel embarrassed about it.</p>
<p>I’ve slowly started to consume some digital content again, but I want to use the summer to spend more time outdoors, walking with the family. So I’ll be dropping in sporadically. I wish you all a wonderful summer. Enjoy it!</p>

          <hr /><p><a href="https://workingbruno.com/notes/20240628-meanwhile/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Weekly #4]]></title>
          <link>https://workingbruno.com/notes/20240201-weekly-4/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20240201-weekly-4/</guid>
          <description><![CDATA[Here's some of the content I've found interesting over the past two weeks of January 2024]]></description>
          <pubDate>Thu, 01 Feb 2024 13:12:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Have I told you that writing case studies is a lot of work? I’ve finally finished the <a href="https://workingbruno.com/work/" target="_blank" rel="noopener noreferrer">case studies</a> that I wanted to make available when I redesigned this website. All of these projects have been rewarding learning opportunities, so I’m very glad to sharing some of the details with you.</p>
<p>Here’s some of the content I’ve found interesting over the past two weeks:</p>
<ul>
<li>Anne-Laure Le Cunff has a very interesting video on the <a href="https://youtu.be/unohwunTIZc?si=mGs8ws4T7Db31YUs" target="_blank" rel="noopener noreferrer">differences between <em>note taking</em> and <em>note making</em></a>;</li>
<li>Do you want to run an LLM on your computer? There’s an app for that, it’s called <a href="https://lmstudio.ai/" target="_blank" rel="noopener noreferrer">LM Studio</a> and it’s available for Linux, Windows and Mac OS;</li>
<li>Stephen Wolfram has written a very interesting <a href="https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/" target="_blank" rel="noopener noreferrer">long (technical) article on how ChatGPT works</a> for those who like to get to the bottom of things;</li>
<li>The use of LIDAR technology by archaeologists has made it possible to <a href="https://www.newscientist.com/article/2411924-ancient-cities-discovered-in-the-amazon-are-the-largest-yet-found/" target="_blank" rel="noopener noreferrer">discover in the Amazon rainforest a gigantic complex of cities</a> that existed 2000 years ago. A kind of South American Rome where a highly stratified and specialzed society lived. Fascinating!</li>
</ul>

          <hr /><p><a href="https://workingbruno.com/notes/20240201-weekly-4/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Intentions and aspirations for 2024]]></title>
          <link>https://workingbruno.com/notes/20240104-intentions-and-aspirations-for-2024/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20240104-intentions-and-aspirations-for-2024/</guid>
          <description><![CDATA[This is my intentions and aspirations for the new year...]]></description>
          <pubDate>Thu, 04 Jan 2024 12:40:00 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2Famanhecer_blue.DDta2pSI.jpeg&amp;fm=webp&amp;w=800&amp;h=523&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2Famanhecer_blue.DDta2pSI.jpeg&amp;fm=webp&amp;w=800&amp;h=523&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2Famanhecer_blue.DDta2pSI.jpeg&amp;fm=webp&amp;w=800&amp;h=523&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Intentions and aspirations for 2024" />
          <p>As the year draws to a close, it prompts a period of self-reflection owing to the symbolic culmination of a cycle. However, the significance of these assessments is far more influenced by our ongoing momentum than the rigid constraints of a particular date. Resolutions, too, are subject to the limitations of personal will, and acknowledging this, I find it more genuine to consider them as intentions and aspirations.</p>
<h3>Intentions</h3>
<h4>Enhancing sleep quality</h4>
<p>I’ve always felt more awake at night (normally called <a href="https://www.sleepfoundation.org/how-sleep-works/chronotypes" target="_blank" rel="noopener noreferrer"><em>night owl</em> or <em>wolf</em></a>), which makes my natural biorhythms unmistakable. This inevitably means that I often don’t get enough sleep and my bedtime isn’t as regular as it should be. I’d like to improve my sleep routine by 2024.</p>
<h4>Eating better</h4>
<p>After a period of great control and discipline when it came to eating certain foods such as bread (among other carbohydrate-rich foods), in the last two years I’ve lost a bit of that rigour and the weight gain didn’t take long — I currently weigh 4 or 5kg more than I’d like. I want to reduce my carbohydrate intake again and lose some of the other habits I’ve picked up.</p>
<h4>Portfolio and new professional challenges</h4>
<p>After a number of years of neglecting and procrastinating on putting together a decent portfolio I hope to finalise, in the first few months of this year, the work started in 2023.
I also want to increase my freelance involvement in more interesting projects and be open to new professional challenges.</p>
<h4>Being better at wasting time</h4>
<p>It’s very important to have time for myself. Non-productive time. However, I find that I easily waste that non-productive time on activities that don’t bring me any return — especially that damn time I spend watching some videos on Youtube or news on the telly. I’m hoping that this year I’ll be a little more judicious about where I waste my time.</p>
<h3>Aspirations</h3>
<h4>Greater emotional flexibility</h4>
<p>I enter 2024 aware that I need greater emotional restraint and <a href="https://www.seldakoydemir.com/resources/emotional-flexibility-is-the-key-to-wellbeing" target="_blank" rel="noopener noreferrer">flexibility</a> at certain times. This is something I’ve been trying to improve, but there’s still some way to go. It’s an ongoing effort, but I believe cultivating this aspect will make me more receptive to others.</p>
<h4>Being present</h4>
<p>Sometimes it’s hard for my mind not to wander. Not only do I have a very active <a href="https://www.wikiwand.com/en/Rumination_(psychology)" target="_blank" rel="noopener noreferrer">ruminating mind</a>, but I also have a somewhat selective attention deficit… being in the moment, present and really paying attention to the other person is a challenge.</p>
<p>Happy new year to everyone! 🥂</p>

          <hr /><p><a href="https://workingbruno.com/notes/20240104-intentions-and-aspirations-for-2024/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Weekly #3]]></title>
          <link>https://workingbruno.com/notes/20231121-weekly-3/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231121-weekly-3/</guid>
          <description><![CDATA[The Weekly is a collection of things that got my attention during the week]]></description>
          <pubDate>Tue, 21 Nov 2023 14:26:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Last week it wasn’t possible to publish these notes. In fact, it was a very busy week without much time for reading. This week I’m back with a series of articles that caught my attention.</p>
<ul>
<li>Ben Thompson analysis on OpenAI latest events in the article <a href="https://stratechery.com/2023/openais-misalignment-and-microsofts-gain/" target="_blank" rel="noopener noreferrer">“OpenAI’s Misalignment and Microsoft’s Gain”</a></li>
<li>If you want to understand why all the buzz around OpenAI, read<a href="https://www.gatesnotes.com/AI-agents" target="_blank" rel="noopener noreferrer">"AI is about to completely change how you use computers"</a> by Bill Gates</li>
<li>Snugug’s excellent <a href="https://snugug.com/musings/strategy-team-culture-and-organizational-change/" target="_blank" rel="noopener noreferrer">“Strategy, Team Culture and Organisational Change”</a> is a must read this week</li>
<li>Use cases are an important part of UX design. <a href="https://www.interaction-design.org/literature/article/use-case-ux" target="_blank" rel="noopener noreferrer">Mads Soegaard wrote a long yet very complete guide about this topic.</a></li>
<li>Rasmus Anderson <a href="https://rsms.me/inter/" target="_blank" rel="noopener noreferrer">released a new major version (4.0) of Inter typeface</a> after two years of work. The result is awesome.</li>
</ul>
<p>See you next week, hopefully. 😅</p>

          <hr /><p><a href="https://workingbruno.com/notes/20231121-weekly-3/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Open Planet is a much needed project]]></title>
          <link>https://workingbruno.com/notes/20231111-open-planet-is-a-much-needed-project/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231111-open-planet-is-a-much-needed-project/</guid>
          <description><![CDATA[Open Planet is an ever-growing, free visual library for creating impact on a global scale.]]></description>
          <pubDate>Sat, 11 Nov 2023 10:05:00 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fopenplanet_india.D7INypLP.jpg&amp;fm=webp&amp;w=800&amp;h=450&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fopenplanet_india.D7INypLP.jpg&amp;fm=webp&amp;w=800&amp;h=450&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2Fopenplanet_india.D7INypLP.jpg&amp;fm=webp&amp;w=800&amp;h=450&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Open Planet is a much needed project" />
          <p>The <a href="https://www.openplanet.org/" target="_blank" rel="noopener noreferrer">Open Planet</a> team tries, by uniting compelling footage with top-tier scientific content, to provide the tools for everyone, everywhere to narrate the evolving story of our planet. This marvelous project continuously expands as a freely accessible visual repository, empowering individuals worldwide to make a global impact.</p>
<p>As <a href="https://www.thisiscolossal.com/2023/11/open-planet/" target="_blank" rel="noopener noreferrer">This Is Colossal</a> put’s it:</p>
<blockquote>
<p>Climate science has a communication problem. Abstract data, figures, and projections into the distant future can be tough to comprehend. Without effective storytelling tools to convey the severity of the crisis and what’s at stake if we don’t act, it can be difficult to motivate the broader public to advocate for change.</p>
<p>The team at Open Planet wants to bridge that gap. A collaboration between <a href="https://silverbackfilms.tv/studio-silverback/" target="_blank" rel="noopener noreferrer">Studio Silverback</a> and  <a href="https://www.cmucreatelab.org/" target="_blank" rel="noopener noreferrer">Carnegie Mellon’s CREATE Lab</a>, the new digital library contains a growing collection of climate and nature footage available for free use. Open Planet currently boasts some 4,500 clips that travel around the globe, from Bird Island off the Georgian coast to Brazil’s Jamari River to Pangti Village in western India. Documenting animals, plants, landscapes, and more, the footage is diverse in subject matter and captures visual evidence of some of the most pressing issues facing the world today.</p>
</blockquote>
<p>This project not only deserves us to see the content created, but also our efforts to publicise it. It is an absolutely fundamental part of overcoming climate change.</p>

          <hr /><p><a href="https://workingbruno.com/notes/20231111-open-planet-is-a-much-needed-project/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Weekly #2]]></title>
          <link>https://workingbruno.com/notes/20231024-weekly-2/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231024-weekly-2/</guid>
          <description><![CDATA[The Weekly is a collection of things that got my attention during the week]]></description>
          <pubDate>Tue, 24 Oct 2023 21:36:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Last week was intense and productive, but with little time for reading and other fun activities. Still, here are a few things that caught my attention:</p>
<ul>
<li>Veritasium’s latest video:<a href="https://youtu.be/lFlu60qs7_4?si=xaQlUOfTOOmjozQC" target="_blank" rel="noopener noreferrer">How One Line in the Oldest Math Text Hinted at Hidden Universes</a></li>
<li><a href="https://untools.co/" target="_blank" rel="noopener noreferrer">Untools</a> is a “collection of thinking tools and frameworks to help you solve problems, make decisions and understand systems”</li>
<li>Started a test-drive to <a href="https://www.warp.dev/" target="_blank" rel="noopener noreferrer">Warp, a rust-based terminal</a> that’s very fast and has a really nice feature set</li>
<li>Color palette tools are never too much! This one is rather peculiar and it’s called <a href="https://meodai.github.io/poline/?utm_source=ridd-tweet&amp;utm_medium=ridd&amp;utm_campaign=ridd" target="_blank" rel="noopener noreferrer"><em>Poline</em></a> and described by it’s creator as <em>“an enigmatic color palette generator, that harnesses the mystical witchcraft of polar coordinates”</em></li>
</ul>

          <hr /><p><a href="https://workingbruno.com/notes/20231024-weekly-2/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Great books explained]]></title>
          <link>https://workingbruno.com/notes/20231020-great-books-explained/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231020-great-books-explained/</guid>
          <description><![CDATA[James Payne, of the Great Art Explained fame, launches a new youtube channel for present literary masterpieces in 15 minutes]]></description>
          <pubDate>Fri, 20 Oct 2023 21:05:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>It’s always exhilarating for a bibliophile to stumble upon captivating content related to literature, books, or a combination of both.</p>
<p>Such is the case with James Payne’s recently launched YouTube channel, titled <a href="https://www.youtube.com/@greatbooksexplained371" target="_blank" rel="noopener noreferrer">“Great Books Explained”</a>. This channel follows in the footsteps of the notorious <a href="https://www.youtube.com/@greatbooksexplained371" target="_blank" rel="noopener noreferrer">“Great Art Explained”</a> known for its approachable presentations of notable paintings and sculptures, delivered in a language free from the jargon of the art world.</p>
<p>“Great Books Explained” shares a common objective with its artistic counterpart, as James Payne articulates: <em>“Fifteen minutes, clear and concise language, devoid of outlandish theories—just a genuine passion for books and the joy of reading.”</em></p>
 <a href="https://youtube.com/watch?v=0EblOaE1wNU" target="_blank" rel="noopener noreferrer"> <span>Play</span> </a>  
<p>The inaugural video, delving into James Joyce’s literary masterpiece, “Ulysses,” has recently been released, promising a thoughtful exploration of this iconic work.</p>
          <hr /><p><a href="https://workingbruno.com/notes/20231020-great-books-explained/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Darkmatter for your Astro]]></title>
          <link>https://workingbruno.com/notes/20231017-darkmatter-for-your-astro/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231017-darkmatter-for-your-astro/</guid>
          <description><![CDATA[If you're a mac user and using Astro for your web projects there's a new editor that has a CMS-like interface for writing your content.]]></description>
          <pubDate>Tue, 17 Oct 2023 23:42:00 GMT</pubDate>
          
        
        <media:content
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fdarkmatter-publish-19bc173ed3.URFhkVRG.jpeg&amp;fm=webp&amp;w=800&amp;h=531&amp;dpl=69b2c7c4f3f60f0008e5a698"
          medium="image"
          type="image/webp"
        />
        <enclosure
          url="https://workingbruno.com/.netlify/images?url=_astro%2Fdarkmatter-publish-19bc173ed3.URFhkVRG.jpeg&amp;fm=webp&amp;w=800&amp;h=531&amp;dpl=69b2c7c4f3f60f0008e5a698"
          type="image/webp"
        />
      
        <content:encoded><![CDATA[
          <img src="https://workingbruno.com/.netlify/images?url=_astro%2Fdarkmatter-publish-19bc173ed3.URFhkVRG.jpeg&amp;fm=webp&amp;w=800&amp;h=531&amp;dpl=69b2c7c4f3f60f0008e5a698" alt="Darkmatter for your Astro" />
          <p>For those who utilize a Mac and leverage <a href="https://astro.build/" target="_blank" rel="noopener noreferrer">Astro</a> for their web projects, there’s now an editor featuring a CMS-like interface for content creation called <a href="https://getdarkmatter.dev/" target="_blank" rel="noopener noreferrer">Darkmatter</a>.</p>
<p><a href="https://getdarkmatter.dev/" target="_blank" rel="noopener noreferrer">Darkmatter</a> scans your Zod <a href="https://docs.astro.build/en/guides/content-collections/" target="_blank" rel="noopener noreferrer">content collections</a> schemas and generate an UI that represents your frontmatter in the editor sidebar — it’s a simple, but really smart idea. Aditionally, you can preview your document and publish it to your Git repository without leaving the app.</p>
<p>This will particularly appeal to individuals seeking an improved writing environment beyond what’s offered by a code editor like VS Code. It’s also beneficial for authors without a background in development who wish to avoid the technical details associated with a <a href="https://www.digitalocean.com/community/conceptual-articles/introduction-to-static-site-generators" target="_blank" rel="noopener noreferrer">static site generator</a>.</p>
<p>As it’s still in its early stages, don’t expect an abundance of features. For instance, you can’t currently select between Markdown or MDX for your files. Nonetheless, despite these limitations, it shows promise, and I’m confident that the developer <a href="https://vadimdemedes.com/" target="_blank" rel="noopener noreferrer">Vadim Demedes</a> has a roadmap in mind for its future development.</p>
<p>Did I mention that it’s mac only? Yeah, albeit being an Electron app at this moment there’s no luck for Windows users.</p>

          <hr /><p><a href="https://workingbruno.com/notes/20231017-darkmatter-for-your-astro/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Personal website as a digital garden]]></title>
          <link>https://workingbruno.com/notes/20231016-personal-website-as-a-digital-garden/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231016-personal-website-as-a-digital-garden/</guid>
          <description><![CDATA[Although the concept of a "digital garden" has been around for at least a decade, I only recently discovered it on the website of Maggie Appleton...]]></description>
          <pubDate>Mon, 16 Oct 2023 15:52:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>Although the concept of a “digital garden” has been around for at least a decade, I only recently discovered it on <a href="https://maggieappleton.com" target="_blank" rel="noopener noreferrer">Maggie Appleton’s</a> website. I was fascinated by the idea of having a personal website as a more dynamic and interconnected space that grows organically and non-linearly. In essence, it is an intimately individual realm, centered on the process of one person’s learning and exploration; however, the ideas that thrive within it are extended to an audience.</p>
<p>The concept draws inspiration from the idea of a garden, where ideas can be planted, nurtured, and allowed to grow in a more natural and interconnected way.</p>
<p>It’s also somewhat related to the idea of <a href="https://ednico.medium.com/personal-knowledge-management-b1a29a5e220d" target="_blank" rel="noopener noreferrer">personal knowledge manager</a> and <a href="https://fortelabs.com/blog/basboverview/" target="_blank" rel="noopener noreferrer">second brain</a> where digital tools are used to capture, organize and make sense of information in a way that makes more sense to a person’s mental processes. In practice, individuals often integrate these concepts, using a digital garden as a way to share and explore ideas with a broader audience, while their second brain serves as a private repository for personal knowledge and information management. Both concepts share the common goal of leveraging digital tools to enhance cognitive abilities, creativity, and knowledge retention.</p>
<p>Some of the best-known examples of “digital gardens” that I find interesting:</p>
<ul>
<li><a href="https://notes.andymatuschak.org/" target="_blank" rel="noopener noreferrer">Andy Matuschak</a></li>
<li><a href="https://www.christopherbiscardi.com/garden" target="_blank" rel="noopener noreferrer">Chris Biscarddi</a></li>
<li><a href="https://maggieappleton.com" target="_blank" rel="noopener noreferrer">Maggie Appleton</a></li>
<li><a href="https://matthewstrom.com/writing" target="_blank" rel="noopener noreferrer">Matthem Strom </a></li>
<li><a href="https://joelhooks.com/digital-garden" target="_blank" rel="noopener noreferrer">Joel Hooks</a></li>
</ul>
<p>This is a concept that I’m interested in exploring and which greatly enhances the scope of a personal website.</p>

          <hr /><p><a href="https://workingbruno.com/notes/20231016-personal-website-as-a-digital-garden/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
    <item>
          <title><![CDATA[Weekly #1]]></title>
          <link>https://workingbruno.com/notes/20231013-weekly-1/</link>
          <guid isPermaLink="true">https://workingbruno.com/notes/20231013-weekly-1/</guid>
          <description><![CDATA[The Weekly is a collection of things that got my attention during the week]]></description>
          <pubDate>Fri, 13 Oct 2023 21:05:00 GMT</pubDate>
          
        
        <content:encoded><![CDATA[
          
          <p>This is the first <em>Weekly</em> - yes, perhaps the least imaginative title ever - a weekly collection of content that has aroused my curiosity. I’d have to be a big bullshitter to make any promises about the regularity of these posts, given my poor track record in providing content on this site.</p>
<p>So here it goes:</p>
<ul>
<li>Casey Netwon’s article on <a href="https://www.platformer.news/p/why-note-taking-apps-dont-make-us" target="_blank" rel="noopener noreferrer">Why note-taking apps don’t make us smarter</a></li>
<li>Is always a pleasure to read Mandy Brown’s articles. <a href="https://aworkinglibrary.com/writing/late-pandemic" target="_blank" rel="noopener noreferrer">This one is called <em>“Late Pandemic”</em></a>.</li>
<li>HBO is debuting a documentary about the peculiar Michael Chow — it’s called “aka Mr.Chow”. <a href="https://youtu.be/rPH2pxLx8IQ?si=WfH-CS9tWNL8sPja" target="_blank" rel="noopener noreferrer">Watch the trailer</a> and I’m sure you’ll want to see it when it debuts.</li>
<li><a href="https://youtu.be/2xjmelFwJow?si=VR-TpnnTpjHfDIhj" target="_blank" rel="noopener noreferrer">Why Israel was Attacked</a> is the latest CapianReport’s video on the most recent and deadly Hamas strike in Israel</li>
<li><a href="https://focus.hteumeuleu.com/" target="_blank" rel="noopener noreferrer">Hocus:Focus</a> is a funny accessibility horror game</li>
</ul>

          <hr /><p><a href="https://workingbruno.com/notes/20231013-weekly-1/">This is a note published on workingbruno.com</a></p>
        ]]></content:encoded>
      
        </item>
  </channel>
</rss>