Sua CLI tem um novo usuário e não é humano

Você pede ao seu copiloto de IA para capturar uma janela. O copiloto digita peek app "Xcode". A ferramenta procura uma janela cujo nome do proprietário seja exatamente Xcode. Não encontra, porque o processo se chama Xcode-16.3. A ferramenta imprime Erro: aplicativo não encontrado. O copiloto, que é um LLM e tem a memória emocional de um peixe dourado, tenta peek app "Xcode-16.3". Funciona. Mas custou uma interação, tokens de entrada, tokens de saída e a paciência de quem paga a conta. ...

7 de abril de 2026 · Fernando

O modelo on-device da Apple é terrível para chat, mas surpreendentemente bom em structured output e tool calling

Passo semanas fazendo stress-test do modelo on-device da Apple — o de ~3B parâmetros que roda no Neural Engine de qualquer Mac com Apple Silicon. Para testá-lo a fundo, construí o Think Local, um app macOS que exercita cada capacidade do modelo: chat, geração de imagens, structured output, tool calling e comparação de parâmetros. Minha conclusão: como chatbot, o modelo é terrível. Mas como motor de structured output e tool calling, é surpreendentemente bom. ...

7 de abril de 2026 · Fernando

A análise de sentimento da Apple acha que 'apaga o arquivo temporário' é uma ameaça de morte

NLTagger é a API da Apple para análise de sentimento. Está integrada no iOS e macOS, roda on-device, não precisa de servidor, e está a três linhas de código de distância. É a primeira coisa que você encontra quando busca “sentiment analysis Swift”. Isso é o que ela retorna para texto que qualquer desenvolvedor escreveria num dia normal: Mensagem NLTagger Realidade “delete the temp file” -0.8 Instrução neutra “ok” -0.8 Confirmação neutra “run make test” -0.6 Instrução neutra “commit and push” -0.4 Instrução neutra “great job, thanks!” +1.0 Positivo (correto) “this is fucking broken” -1.0 Negativo (correto) A escala vai de -1.0 (muito negativo) a +1.0 (muito positivo). Segundo a Apple, “delete the temp file” tem quase a mesma carga emocional que “this is fucking broken”. E “ok” – a resposta mais neutra da língua inglesa – pontua -0.8. ...

5 de abril de 2026 · Fernando

Bridgeando async Swift para sync C: quatro funções para usar o LLM da Apple a partir de qualquer linguagem

O framework Foundation Models da Apple (macOS 26) expõe um LLM de ~3B parâmetros que roda on-device, de graça, sem necessidade de API key. Mas tem um problema: ele só trabalha com Swift. E não qualquer Swift — Swift async. Seu tooling está em Python? Não tem binding. Em Rust? Também não. Um script de shell? Sem chance. O LLM mais barato do mundo (literalmente gratuito) está preso atrás de duas barreiras: o idioma e o modelo de concorrência. ...

5 de abril de 2026 · Fernando

Estou pagando $15 por milhão de tokens para escrever 'fix: typo'

Ontem, escrevi uma mensagem de commit com o Claude Code. O diff era uma alteração de uma linha: um erro de digitação em um comentário. Claude Opus leu o diff, pensou por dois segundos e gerou fix: correct typo in auth comment. Para isso, consumiu cerca de 800 tokens de entrada e 30 de saída, a $15 e $75 por milhão, respectivamente. Custo: uma fração de centavo. Mas multiplique isso por 40 commits por dia, 250 dias por ano, em uma empresa com 200 desenvolvedores usando agentes de codificação, e a fração de centavo se transforma em milhares de dólares gastos em uma tarefa intelectual equivalente a colocar band-aids. ...

5 de abril de 2026 · Fernando

Seu Mac tem um LLM gratuito e você não está usando

Você está pagando entre 20 e 200 dólares por mês para acessar LLMs. Claude, GPT, Gemini, o que seja. E a maioria das consultas feitas a partir de seus scripts e ferramentas de desenvolvimento é uma variação disto: “Classifique este erro em uma dessas cinco categorias.” “Dê um nome para essa variável.” “Diga se este commit é um fix, feat ou refactor.” “Resuma este bloco de texto em duas frases.” Enquanto isso, seu Mac com Apple Silicon tem um modelo de linguagem com 3 bilhões de parâmetros, integrado ao sistema operacional, sem custo, sem necessidade de conexão à internet, sem chave de API e sem latência de rede. E provavelmente você não está aproveitando isso. ...

4 de abril de 2026 · Fernando

NLTagger e análise de sentimento: por que a Apple acha que seu código é deprimente

Imagine que você está construindo um app que analisa conversas de uma equipe de desenvolvimento. A ideia é detectar se o tom da equipe é saudável ou se há sinais de estresse. Você utiliza o NLTagger da Apple porque ele está disponível, é gratuito, funciona on-device e não precisa de servidor. Três linhas de código e tudo parece resolvido. Primeira surpresa: a frase “kill the process and restart the daemon” recebe uma pontuação de -0.6. Negativa. Quase hostil. “Fatal error in memory allocation” ganha um -0.8. E “crash report uploaded successfully” — que literalmente é uma boa notícia — gera um -0.4. ...

28 de março de 2026 · Fernando

Sua IA escreve código que compila, mas não significa nada (e um linter pode pegá-la)

Imagine que você pede a alguém para construir uma estante. A pessoa entrega algo bonito, com prateleiras, parafusos, tudo no lugar. Você encosta na parede e ela desaba. Os parafusos são cenográficos. Parecem parafusos, mas são de plástico. É isso que um LLM faz quando abusa do sistema de tipos. Ele te entrega código que compila, passa os testes, e parece correto. Porém, por dentro, onde deveriam haver tipos com significado, há strings. Onde deveria haver um estado explícito, há um nil que pode ter três significados diferentes, dependendo de quem lê. E onde deveria haver um enum com dois casos, há um == "claude" que alguém eventualmente escreverá errado, sem ninguém perceber até chegar em produção. ...

23 de março de 2026 · Fernando

Um filtro de Kalman para não incomodar o servidor (ou o prazer culposo da sobreengenharia)

Eu tenho um app de barra de menu que precisa saber de um número. Uma porcentagem de 0 a 100. Para obter isso, ele consulta um servidor a cada 30 segundos. Faça as contas: 30 segundos são 2 chamadas por minuto, 120 por hora, 960 em um dia de 8 horas. Quase mil requisições HTTP por dia para obter um número que às vezes não muda por 20 minutos. Isso não é monitoramento. É perseguição ao servidor. ...

12 de março de 2026 · Fernando

Minha IA leu um JSON do disco 900 vezes dentro de um for (e por que nenhum linter pode te salvar)

Na semana passada, minha IA gerou um código onde ela lia um arquivo JSON do disco, fazia o parse, fazia uma busca e repetia isso 900 vezes dentro de um for. Cada iteração: abrir o arquivo, decodificar o JSON, buscar um valor e descartar tudo. Depois, fazia tudo de novo. É um erro que eu ensino meus alunos a evitar no primeiro mês de programação. O que aconteceu (sem enrolação) Estou desenvolvendo o Tokamak, um aplicativo para barra de menus no macOS que monitora a cota do Claude Max. Parte da funcionalidade escaneia ~900 arquivos JSONL de sessões de Claude Code. Para cada arquivo, o Tokamak precisa saber o byte offset de onde parou na última vez (leitura incremental — só ler o que é novo). ...

24 de fevereiro de 2026 · Fernando