<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Gemini on Melabit</title>
    <link>https://melabit.com/en/tags/gemini/</link>
    <description>Recent content in Gemini on Melabit</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 11 May 2026 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://melabit.com/en/tags/gemini/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Apfel, an apple for Apple Intelligence</title>
      <link>https://melabit.com/en/2026/05/11/apfel-an-apple-for-apple-intelligence/</link>
      <pubDate>Mon, 11 May 2026 06:00:00 +0000</pubDate>
      <guid>https://melabit.com/en/2026/05/11/apfel-an-apple-for-apple-intelligence/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/photo-1763288755349-41ace219fd3d.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Source: &lt;a href=&#34;https://unsplash.com/@juzwe&#34;&gt;Julian Zwengel&lt;/a&gt; on &lt;a href=&#34;https://unsplash.com&#34;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;One of the (few) reasons to switch to macOS 26 Tahoe is the opportunity to use the language model that powers Apple Intelligence.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.apple.com/it/apple-intelligence/&#34;&gt;Apple Intelligence&lt;/a&gt; is the final product, natively integrated into the Apple ecosystem, with which we can process text (but also images) directly on our device. For example, by selecting a section of text and right-clicking with the mouse to choose &lt;code&gt;Show Writing Tools&lt;/code&gt;, we have at our fingertips a useful tool for summarising those mile-long documents or for rewriting hastily jotted-down sentences.&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;As shown in the figure below, these tools are not limited to Apple applications alone, but can also be used in third-party applications like Firefox.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence-writing-tools-it.png&#34;&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence-writing-tools-it.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://developer.apple.com/documentation/foundationmodels&#34;&gt;language model (LLM)&lt;/a&gt; behind Apple Intelligence is accessible through the &lt;a href=&#34;https://developer.apple.com/documentation/foundationmodels&#34;&gt;Foundation Models framework&lt;/a&gt;. And it is precisely this &lt;code&gt;framework&lt;/code&gt; that allows developers to integrate artificial intelligence functions into applications running on macOS 26 as well as on iOS and iPadOS.&lt;/p&gt;&#xA;&lt;p&gt;A  few months ago, Apple added a new &lt;code&gt;action&lt;/code&gt; to &lt;code&gt;Shortcuts&lt;/code&gt; that also allowed end users to &lt;a href=&#34;https://www.macstories.net/notes/i-have-many-questions-about-apples-updated-foundation-models-and-the-great-use-model-action-in-shortcuts/&#34;&gt;use the Foundation Models framework&lt;/a&gt;, but it wasn&amp;rsquo;t something that was really within everyone&amp;rsquo;s reach.&lt;/p&gt;&#xA;&lt;p&gt;A few weeks ago a new tool called &lt;a href=&#34;https://apfel.franzai.com/&#34;&gt;apfel&lt;/a&gt; (&amp;ldquo;apple&amp;rdquo; in German), became available, with which anyone can use the LLM integrated in macOS Tahoe via the command line and also through a simple GUI.&lt;/p&gt;&#xA;&lt;h4 id=&#34;installation&#34;&gt;Installation&lt;/h4&gt;&#xA;&lt;p&gt;Installing &lt;a href=&#34;https://apfel.franzai.com/&#34;&gt;apfel&lt;/a&gt; is a breeze for those who already use &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt;. From the Terminal you must first run&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% brew update&#xA;% brew upgrade&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;to update &lt;code&gt;homebrew&lt;/code&gt;, followed by&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% brew install apfel&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;to install the application itself. Those who don&amp;rsquo;t use Homebrew (but they should!), can install it following &lt;a href=&#34;https://melabit.com/en/pages/how-to-install-homebrew/&#34;&gt;these instructions&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;As already mentioned, apfel only works on Macs with macOS 26 Tahoe and Apple Silicon. If you try to install it on Sequoia you get this error message.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% brew install apfel&#xA;==&amp;gt; Fetching downloads for: apfel&#xA;✔︎ API Source apfel.rb                                                                        Verified      1.1KB/  1.1KB&#xA;apfel: A full installation of Xcode.app 26.4 is required to compile&#xA;this software. Installing just the Command Line Tools is not sufficient.&#xA;&#xA;Xcode 26.4 cannot be installed on macOS 15.&#xA;You must upgrade your version of macOS.&#xA;apfel: This software does not run on macOS versions older than Tahoe.&#xA;Error: apfel: Unsatisfied requirements failed this build.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;configuration&#34;&gt;Configuration&lt;/h4&gt;&#xA;&lt;p&gt;Before using apfel you must either close and reopen the Terminal or open a new tab.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; But that&amp;rsquo;s not enough, you also need to activate Apple Intelligence on your Mac by running&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% apfel --model-info&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;and following its instructions, visible in the image below.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-model-info.png&#34;&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-model-info.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Basically, you need to go to &lt;code&gt;System Settings &amp;gt; Apple Intelligence &amp;amp; Siri&lt;/code&gt;, configure Siri to use the same language as the Mac (I had to do this because I always use the Mac in English with Siri in Italian) and then activate the switch related to Apple Intelligence.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/system-settings-siri.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/system-settings-apple-intelligence.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Don&amp;rsquo;t trust the &lt;code&gt;100% complete&lt;/code&gt; text that appears immediately after activating Apple Intelligence. This is probably a bug, because shortly afterwards, macOS starts downloading the model and this takes a while.&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/system-settings-apple-intelligence-download.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Once the model has finished downloading, apfel confirms that we are ready to use the model, so we can begin.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-model-info-OK.png&#34;&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-model-info-OK.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;many-different-ways-to-use-apfel&#34;&gt;Many different ways to use apfel&lt;/h4&gt;&#xA;&lt;p&gt;The simplest way to use apfel, which is also suitable for integration into a program, is to run the &lt;code&gt;apfel&lt;/code&gt; command from the Terminal followed by the prompt within quotation marks. For example:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% apfel &amp;#34;What is the capital of Italy?&amp;#34;&#xA;The capital of Italy is Rome.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The &lt;code&gt;apfel&lt;/code&gt; command has several useful options, well &lt;a href=&#34;https://github.com/Arthur-Ficial/apfel#unix-tool&#34;&gt;described in the README&lt;/a&gt; of the program. The most interesting options are listed below, where the symbol &lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt; represents the numerical value associated with the option:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;--temperature &amp;lt;n&amp;gt;&lt;/code&gt;, sets the temperature of the response. A lower temperature (&lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt; close to 0) makes the response more repetitive, a higher temperature (&lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt; around 1 or more) makes it more random and unpredictable.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--seed &amp;lt;n&amp;gt;&lt;/code&gt;, sets the initial value of the random number generator used by the LLM. Fixing the &lt;code&gt;seed&lt;/code&gt; value means that the same question will always produce an identical response.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--max-tokens &amp;lt;n&amp;gt;&lt;/code&gt;, sets the maximum number of tokens in the response. A low value of &lt;code&gt;&amp;lt;n&amp;gt;&lt;/code&gt; makes the response more concise, a high value allows the LLM to generate a longer response.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;--permissive&lt;/code&gt;, allows generating responses with &lt;a href=&#34;https://github.com/Arthur-Ficial/apfel/blob/main/docs/PERMISSIVE.md&#34;&gt;less strict security filters&lt;/a&gt;. Frankly, I didn&amp;rsquo;t quite understand what it means in practice, but maybe I didn&amp;rsquo;t ask the right questions. In any case, it seems that the responses acquire a lighter and friendlier tone.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;It is also possible to &lt;a href=&#34;https://github.com/Arthur-Ficial/apfel#openai-compatible-server&#34;&gt;activate a server&lt;/a&gt; based on apfel, which can be queried via the &lt;code&gt;curl&lt;/code&gt; command. The advantage in this case is that the response is a &lt;code&gt;JSON&lt;/code&gt; file that can be easily processed automatically.&lt;/p&gt;&#xA;&lt;p&gt;Alternatively, you can open a &lt;a href=&#34;https://github.com/Arthur-Ficial/apfel#quick-testing-chat&#34;&gt;chat session&lt;/a&gt; in the Terminal via the &lt;code&gt;apfel --chat&lt;/code&gt; command. This allows you to communicate directly with the LLM without putting questions in quotes. Here, you can use the arrow keys to scroll through the history of the current session and edit the previous questions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-chat.png&#34;&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-chat.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Lastly, a &lt;a href=&#34;https://apfel-chat.franzai.com/&#34;&gt;GUI for apfel&lt;/a&gt; is also available. It&amp;rsquo;s a very basic GUI, so don&amp;rsquo;t expect the same level of sophistication as with Claude, Gemini, ChatGPT and the like.&lt;/p&gt;&#xA;&lt;h4 id=&#34;putting-apfel-through-its-paces&#34;&gt;Putting apfel through its paces&lt;/h4&gt;&#xA;&lt;p&gt;Before starting, it is worth noting that Apple&amp;rsquo;s language model, unique among those produced by the major companies in the field (OpenAI, Anthropic, Google, Microsoft, Meta, you know the names), does not require an internet connection to work, but runs exclusively on the machine where it is installed (with &lt;a href=&#34;https://www.apple.com/it/apple-intelligence/&#34;&gt;some caveats&lt;/a&gt;). A guarantee for the privacy of our data that only Apple can offer.&lt;/p&gt;&#xA;&lt;p&gt;However, as it has to run on iPhones, iPads and Macs, the Apple model has strong limitations in terms of size and, consequently, processing capacity. This is a detail to keep in mind when evaluating &lt;a href=&#34;https://developer.apple.com/documentation/foundationmodels/generating-content-and-performing-tasks-with-foundation-models#Understand-model-capabilities&#34;&gt;what it is capable of doing&lt;/a&gt; (and not doing). But this is a problem common to all &lt;a href=&#34;https://realpython.com/ollama/&#34;&gt;local models&lt;/a&gt;, i.e., those that can be run on our personal machines. Ultimately, it&amp;rsquo;s a choice between power and privacy, and it&amp;rsquo;s never an easy one.&lt;/p&gt;&#xA;&lt;p&gt;But, aside from answering trivial questions like the ones above, what is apfel really capable of doing (and consequently the Apple language model that apfel relies on)?&lt;/p&gt;&#xA;&lt;p&gt;Forget about using it for math, logical reasoning or writing code. Apple isn&amp;rsquo;t exaggerating when it writes that all these activities are &lt;a href=&#34;https://developer.apple.com/documentation/foundationmodels/generating-content-and-performing-tasks-with-foundation-models#Understand-model-capabilities&#34;&gt;beyond the scope of its model&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In italian, the usual test on the &lt;a href=&#34;https://melabit.com/en/2025/06/18/phi-4-strikes-back/&#34;&gt;death of Marie Antoinette&lt;/a&gt; produces very &lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-marie-antoniette-it.png&#34;&gt;variable answers&lt;/a&gt;, sometimes correct and sometimes completely made up. When &lt;a href=&#34;%28img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-marie-antoniette-en.png%29&#34;&gt;using English&lt;/a&gt; it performs slightly better, but that is normal because English is the &lt;em&gt;native&lt;/em&gt; language of all LLMs. Math is not its strong point, either. It&amp;rsquo;s not so much because the answers are wrong, but because they are &lt;em&gt;sometimes&lt;/em&gt; wrong. Would you ever use a calculator &lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-maths.png&#34;&gt;that usually gives the correct result, but every now and then makes mistakes&lt;/a&gt;? Needless to say, writing code is not an option, too.&lt;/p&gt;&#xA;&lt;p&gt;When staying within the capabilities declared by Apple, things go much better.&lt;/p&gt;&#xA;&lt;p&gt;I  tried having apfel summarize a long note I dictated on my iPhone while I was out walking and, despite the presence of many transcription errors, repetitions and uncertainties, it did an excellent job. The note in question contains material that is still confidential, so having the security that the text fed to the LLM will remain only on my computer is an added value that far exceeds the model&amp;rsquo;s limitations.&lt;/p&gt;&#xA;&lt;p&gt;No problem also asking it to be more or less concise, which in many cases can be really useful. It is also very easy to change the tone of the response, converting in a few seconds what we wrote into a press release or into a text understandable even by grandma.&lt;/p&gt;&#xA;&lt;p&gt;It also does well with translations, I tried English and German but there&amp;rsquo;s no reason to think it wouldn&amp;rsquo;t do the same with other supported languages.&lt;/p&gt;&#xA;&lt;p&gt;The responses are a bit slow, but I only tested apfel on a MacBook Air M1 (the only Mac I upgraded to Tahoe) and I guess newer Macs could give better results in terms of speed.&lt;/p&gt;&#xA;&lt;h4 id=&#34;why-apfel-and-not-apple-intelligence&#34;&gt;Why apfel and not Apple Intelligence?&lt;/h4&gt;&#xA;&lt;p&gt;It is simple: because the &lt;code&gt;Writing Tools&lt;/code&gt; integrated in Apple Intelligence have default settings that work well in most cases. However, only apfel allows you to define in detail what you want to achieve.&lt;/p&gt;&#xA;&lt;p&gt;Indeed, if I ask the &lt;code&gt;Writing Tools&lt;/code&gt; to summarize the same note as before in a way that even grandma can understand, it replies that it cannot do it, without any further explanation.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence-grandma.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence-unable.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If I ask the same thing to &lt;code&gt;apfel&lt;/code&gt;, not only does it summarize the text without hesitation, but since I asked the question in English, it also translates it into this language (part of the text in the image below is blurred because, as I said before, it contains information that is still confidential).&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apfel-grandma.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;In short, Apple Intelligence is a tool that anyone can use immediately. However, if you need flexibility, apfel is without doubt the best choice.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusions&#34;&gt;Conclusions&lt;/h4&gt;&#xA;&lt;p&gt;Apple is right: its language model isn’t a general-purpose model capable of competing with ChatGPT, Gemini, or Claude. But it does well what it is supposed to do, and the fact that it runs on a Mac (or an iPhone or iPad) is an added value that more than compensates for its limitations.&lt;/p&gt;&#xA;&lt;p&gt;According to Apple, only the &lt;a href=&#34;https://www.apple.com/it/apple-intelligence/&#34;&gt;most complex requests&lt;/a&gt; need to rely on larger models in the cloud. This seems to be true when using apfel: whenever I disabled the network connection, apfel continued to work without any issue.&#xA;However, with the &lt;code&gt;Writing Tools&lt;/code&gt;, it&amp;rsquo;s a different story because some functions are deactivated as soon as the internet connection is lost.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence-no-internet.png&#34;&gt;&lt;img src=&#34;https://melabit.com/img/2026-05-11-apfel-una-mela-per-apple-intelligence/apple-intelligence-no-internet.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;A difference in behavior that deserves further exploration.&lt;/p&gt;&#xA;&lt;p&gt;When using apfel you have to deal with a certain slowness in responses. I used a MacBook Air M1, on a newer Mac the processing would certainly be faster. However, I doubt it will be &lt;em&gt;much&lt;/em&gt; faster because, after all, we&amp;rsquo;re still using a personal computer and not a server farm that costs billions of dollars.&lt;/p&gt;&#xA;&lt;p&gt;From my point of view, the most serious flaw of Apple Intelligence and consequently of apfel, is that you have to configure your Mac and Siri to use the same language. As this change is global, it affects all Apple devices connected to the account. I noticed this when Siri on CarPlay suddenly started to speak in English instead of my home language. Luckily I was alone, otherwise I would have looked like a stupid presumptuous nerd.&lt;/p&gt;&#xA;&lt;p&gt;If I want to go back to using Siri in Italian (and I do), I will be forced to deactivate Apple Intelligence, at least until Apple decides to remove this constraint. A constraint that technically makes little sense and seems only a retaliation against the &lt;a href=&#34;https://techcrunch.com/2024/10/28/apple-intelligence-is-coming-to-the-eu-in-april-2025/&#34;&gt;rules imposed by the European Union&lt;/a&gt; on Apple and its competitors.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;If you don&amp;rsquo;t like the screenshot (I don&amp;rsquo;t like it either), blame the designers of Liquid Glass.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;The &lt;code&gt;%&lt;/code&gt; symbol in &lt;code&gt;zsh&lt;/code&gt; (or the &lt;code&gt;$&lt;/code&gt; in &lt;code&gt;bash&lt;/code&gt;) represents the &lt;a href=&#34;https://en.wikibooks.org/wiki/Guide_to_Unix/Explanations/Shell_Prompt&#34;&gt;shell prompt&lt;/a&gt; and is not part of the actual command. I use it to visually distinguish commands executed in the Terminal. which are preceded by &lt;code&gt;%&lt;/code&gt;, from their responses, which do not include it.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;It&amp;rsquo;s a small annoyance that applies to any application installed via Homebrew.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Antigravity: a driver written by AI</title>
      <link>https://melabit.com/en/2026/03/04/antigravity-a-driver-written-by-ai/</link>
      <pubDate>Wed, 04 Mar 2026 18:00:00 +0000</pubDate>
      <guid>https://melabit.com/en/2026/03/04/antigravity-a-driver-written-by-ai/</guid>
      <description>&lt;p&gt;Among all the Raspberry Pi and Arduino boards I am spending my days with, my favorite is the &lt;a href=&#34;https://www.raspberrypi.com/products/raspberry-pi-pico/&#34;&gt;Raspberry Pi Pico&lt;/a&gt;, a small yet powerful &lt;a href=&#34;https://en.wikipedia.org/wiki/Microcontroller&#34;&gt;microcontroller&lt;/a&gt; that can be programmed not only in C/C++ via the Arduino IDE, but also in &lt;a href=&#34;https://www.raspberrypi.com/documentation/microcontrollers/micropython.html&#34;&gt;MicroPython&lt;/a&gt; and &lt;a href=&#34;https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython/&#34;&gt;CircuitPython&lt;/a&gt;, two competing Python variants for microcontrollers.&lt;/p&gt;&#xA;&lt;p&gt;Unlike the other Raspberry Pi models, the Pico does not have a &lt;a href=&#34;https://en.wikipedia.org/wiki/Camera_Serial_Interface&#34;&gt;dedicated camera interface&lt;/a&gt;, but it can use cameras that communicate over an &lt;a href=&#34;https://en.wikipedia.org/wiki/Serial_Peripheral_Interface&#34;&gt;SPI interface&lt;/a&gt;,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; such as the &lt;a href=&#34;https://www.arducam.com/arducam-5mp-plus-spi-cam-arduino-ov5642.html&#34;&gt;Arducam Mini 5MP Plus&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In theory, this shouldn&amp;rsquo;t be a hard job. After glancing at the &lt;a href=&#34;https://docs.arducam.com/Arduino-SPI-camera/Legacy-SPI-camera/Pico/Camera-Module/SPI-Camera/#1introduction&#34;&gt;official documentation&lt;/a&gt;, it should just be a matter of wiring the camera to the Pico, pulling the driver and test programs from the manufacturer&amp;rsquo;s &lt;a href=&#34;https://github.com/ArduCAM/PICO_SPI_CAM&#34;&gt;GitHub repository&lt;/a&gt;, copying them onto the Pico after installing the supported Python version, and finally trying to snap a few pictures.&lt;/p&gt;&#xA;&lt;p&gt;I couldn&amp;rsquo;t have been more wrong.&lt;/p&gt;&#xA;&lt;h4 id=&#34;we-need-a-driver&#34;&gt;We need a driver&lt;/h4&gt;&#xA;&lt;p&gt;The only two test programs available, one for Arduino and one for CircuitPython, assume you&amp;rsquo;ll view the video output on Windows, which is odd because most people working with these devices use Linux or macOS. Moreover, CircuitPython is less common than MicroPython, and I&amp;rsquo;d have preferred the latter for compatibility with the other components already connected to the Pico.&lt;/p&gt;&#xA;&lt;p&gt;With patience, and armed with a reference program that shows the main functions for handling the device, you could try translating the CircuitPython code to MicroPython (or vice‑versa),&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; but there was nothing like that available.&lt;/p&gt;&#xA;&lt;p&gt;Other guides I found online looked promising, yet they didn&amp;rsquo;t work in practice. The only option left was to bypass the official tools and write a driver for the camera.&lt;/p&gt;&#xA;&lt;p&gt;Easier said than done!&lt;/p&gt;&#xA;&lt;p&gt;I know how to write code to solve differential equations or analyse measurement data. I&amp;rsquo;m comfortable with micro‑controller programming and sensor data acquisition. But this is a completely different beast. It requires digging into the low‑level communication between the Pico and the camera, a job for specialist engineers who write the drivers that let us &lt;em&gt;humans&lt;/em&gt; perform complex operations (like taking a photo) with just a few lines of Python code.&lt;/p&gt;&#xA;&lt;p&gt;So why not let one of the agents built into Antigravity do what I&amp;rsquo;m not able to do?&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;&lt;p&gt;I didn&amp;rsquo;t have to stick with Antigravity, Claude Code, Google Gemini, DeepSeek, or any of the countless other LLMs at our disposal could have easily handled the task. However, as I&amp;rsquo;ve &lt;a href=&#34;https://melabit.com/en/2026/01/21/an-unexpected-antigravity/&#34;&gt;already written&lt;/a&gt;, using an Antigravity-integrated agent lets you work directly in the editor and access the underlying OS, a huge advantage when you need to keep iterating on the generated code.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/br&gt;&#xA;&lt;h4 id=&#34;ai-at-work&#34;&gt;AI at work&lt;/h4&gt;&#xA;&lt;p&gt;When you read countless enthusiastic posts about &lt;em&gt;vibe coding&lt;/em&gt; &amp;ndash; the notion that AI can develop software with little to no human programmer intervention &amp;ndash; it looks very easy (read for example, this &lt;a href=&#34;https://shumer.dev/something-big-is-happening&#34;&gt;post&lt;/a&gt; that amassed millions of reads, or &lt;a href=&#34;https://www.oneusefulthing.org/p/claude-code-and-what-comes-next&#34;&gt;this one&lt;/a&gt;; not to mention the tweet that &lt;a href=&#34;https://x.com/karpathy/status/1886192184808149383&#34;&gt;started it all&lt;/a&gt;).&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt; In summary, you write a couple of sentences asking the LLM or the current &lt;em&gt;agent&lt;/em&gt; to do something, you go have lunch or take a walk, and when you come back everything is ready.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Let&amp;rsquo;s try doing the same with &lt;code&gt;Gemini&lt;/code&gt;, giving it only the essential information and checking what it can actually do. In this case, this information boils down to the link to the camera&amp;rsquo;s web page and a table describing how the camera pins are connected to the Pico (it&amp;rsquo;s more than three lines, I know, but I&amp;rsquo;m a bit verbose).&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;    &#xA;    &lt;p&gt;I have a Rasperry Pi Pico 2W connected to a Arducam 5MP Plus OV5642 Mini Module Camera Shield (&lt;a href=&#34;https://www.arducam.com/arducam-5mp-plus-spi-cam-arduino-ov5642.html%29&#34;&gt;https://www.arducam.com/arducam-5mp-plus-spi-cam-arduino-ov5642.html)&lt;/a&gt;. I have connected the camera to the Pico using the standard layout found in the documentation:&lt;/p&gt;&#xA;    &lt;table&gt;&#xA;    &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;        &lt;td&gt;Camera&lt;/th&gt;&#xA;        &lt;td&gt;CS&lt;/th&gt;&#xA;        &lt;td&gt;MOSI&lt;/th&gt;&#xA;        &lt;td&gt;MISO&lt;/th&gt;&#xA;        &lt;td&gt;SCK&lt;/th&gt;&#xA;        &lt;td&gt;GND&lt;/th&gt;&#xA;        &lt;td&gt;VCC&lt;/th&gt;&#xA;        &lt;td&gt;SDA&lt;/th&gt;&#xA;        &lt;td&gt;SCL&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;        &lt;td&gt;Pico&lt;/td&gt;&#xA;        &lt;td&gt;GP5&lt;/td&gt;&#xA;        &lt;td&gt;GP3&lt;/td&gt;&#xA;        &lt;td&gt;GP4&lt;/td&gt;&#xA;        &lt;td&gt;GP2&lt;/td&gt;&#xA;        &lt;td&gt;GND&lt;/td&gt;&#xA;        &lt;td&gt;3V3&lt;/td&gt;&#xA;        &lt;td&gt;GP8&lt;/td&gt;&#xA;        &lt;td&gt;GP9&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;    &lt;/tbody&gt;&#xA;    &lt;/table&gt;&#xA;    &lt;p&gt;Please write a basic Micropython code to test that everything is right and that the camera can take photos&lt;/p&gt;&#xA;    &#xA;&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini attacks the problem furiously, spits out MicroPython code that doesn&amp;rsquo;t run, tries to fix it based on my hints, and inevitably introduces new errors (I keep saying &lt;code&gt;Gemini&lt;/code&gt; for brevity, but I&amp;rsquo;ve also tried &lt;code&gt;Gemini 3.1 Pro&lt;/code&gt;, &lt;code&gt;Claude Opus 4.6&lt;/code&gt;, and &lt;code&gt;Claude Sonnet 4.6&lt;/code&gt;, as my tokens ran out).&lt;/p&gt;&#xA;&lt;p&gt;At some point, completely stumped, Gemini starts suspecting a hardware issue, such as a bad connection or a defective camera (but probing the individual pins quickly finds that everything is wired correctly).&lt;/p&gt;&#xA;&lt;p&gt;After hours and hours of work, and because it can&amp;rsquo;t produce anything decent with MicroPython, I ask it to switch to Arduino, a more mature software platform. More hours later, stubbornly, it succeeds, and the image below is the very first picture ever taken with the Arduino code generated by Gemini (the original image was upside-down; I simply rotated it 180°).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://melabit.com/img/2026-03-04-antigravity-un-driver-scritto-dall-ia/capture.jpeg&#34;&gt;&lt;img src=&#34;https://melabit.com/img/2026-03-04-antigravity-un-driver-scritto-dall-ia/capture_small.jpeg&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Soon after, I make a serious mistake that forced me, or better &lt;em&gt;it&lt;/em&gt;, to start from scratch. But that&amp;rsquo;s a story for another post.&lt;/p&gt;&#xA;&lt;h4 id=&#34;epilogue&#34;&gt;Epilogue&lt;/h4&gt;&#xA;&lt;p&gt;Once I had a working Arduino program, I asked Gemini to redo everything for CircuitPython. This port also takes several hours of work, interspersed with a couple of forced restarts of the Mac which, after some nasty CircuitPython bug, was forced to disable communication between the USB ports and the Pico.&lt;/p&gt;&#xA;&lt;p&gt;In theory I should repeat the cycle a third time for MicroPython. But the thought of wasting even more time watching Gemini work makes me shiver, so I shelved that idea, at least for now.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusions&#34;&gt;Conclusions&lt;/h4&gt;&#xA;&lt;p&gt;I don&amp;rsquo;t know what those who write countless articles proclaiming that anyone can have AI write a perfectly functioning program in no time, even if they don&amp;rsquo;t know a thing about programming, are using.&lt;/p&gt;&#xA;&lt;p&gt;Even though I know something about programming, I&amp;rsquo;ve only succeeded with the simplest experiments described in the two &lt;a href=&#34;https://melabit.com/en/2026/01/21/an-unexpected-antigravity/&#34;&gt;previous&lt;/a&gt; &lt;a href=&#34;https://melabit.com/en/2026/02/16/antigravity-from-surprise-to-doubt/&#34;&gt;articles&lt;/a&gt;. And it certainly didn&amp;rsquo;t happen here. It is worth noting, however, that I&amp;rsquo;m in &lt;a href=&#34;https://vladimir.varank.in/notes/2026/02/freebsd-brcmfmac/&#34;&gt;good company&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://melabit.com/img/2026-03-04-antigravity-un-driver-scritto-dall-ia/Gemini_Generated_Image_attiipattiipatti.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Immagine generata da &lt;a href=&#34;https://gemini.google.com&#34;&gt;Google Gemini&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;True, following the &lt;em&gt;vibe coding&lt;/em&gt; mantra to the letter, I didn&amp;rsquo;t write a single line of code. I even let Gemini execute terminal commands that I could type blindfolded. But it&amp;rsquo;s equally true that without my constant dialogue, without guiding the agent step-by-step, without correcting its countless, and often trivial, mistakes, Gemini would have gone nowhere.&lt;/p&gt;&#xA;&lt;p&gt;And it took many hours of uninterrupted work, too many hours in my humble opinion, to achieve something usable.&lt;/p&gt;&#xA;&lt;p&gt;Forget speedy, intuitive programming. Forget coding based on &lt;a href=&#34;https://www.youtube.com/watch?v=apBWI6xrbLY&#34;&gt;good vibrations&lt;/a&gt; from the 1960s. Forget programming &lt;em&gt;for dummies&lt;/em&gt;!&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you don&amp;rsquo;t roll up your sleeves and get your hands dirty with the code, even code produced by a more or less intelligent agent, you won&amp;rsquo;t get you anywhere. I&amp;rsquo;d love to be proven wrong.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;The SPI (Serial Peripheral Interface) is a fast and reliable serial communication protocol widely used to connect a microcontroller (&lt;em&gt;master&lt;/em&gt;) to one or more peripheral devices (&lt;em&gt;slave&lt;/em&gt;).&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;While writing the article I found &lt;a href=&#34;https://www.youtube.com/watch?v=l254lxm78I4&#34;&gt;this video&lt;/a&gt; that explains how to mix MicroPython and CircuitPython code in the same script. If it works for more complex tasks than toggling an LED, it would be a real breakthrough.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Is it a coincidence that they are always very long posts but never contain a shred of evidence, a prompt, a few lines of code, or links to support the many unverified (and unverifiable) claims?&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;Being true nerds, no one ever says they&amp;rsquo;re going to have sex.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:5&#34;&gt;&#xA;&lt;p&gt;From the title of the famous &lt;a href=&#34;https://en.wikipedia.org/wiki/For_Dummies&#34;&gt;For Dummies&lt;/a&gt; book series, covering everything from using DOS to playing chess.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
  </channel>
</rss>
