A Anthropic acabou de matar o Markdown.
Um engenheiro do Claude Code publicou um artigo ontem que pode decretar o início de uma nova era.
A tese é brutal: Markdown nunca foi o formato certo para comunicação entre humanos e IA. Era só o que tínhamos.
O próprio autor admite que nunca leu um arquivo Markdown gerado por IA com mais de 100 linhas até o fim.
Você também não lê. Eu também não.
A sacada:
Markdown assume que você vai ler do início ao fim.
HTML assume que você quer ver o que importa e mexer com as mãos.
Na prática:
→ 30 tickets de projeto viram kanban arrastável com colunas Now / Next / Later / Cut e botão de exportar
→ Lógica de rate limiting vira flowchart SVG com código inline, no lugar de 200 linhas de texto
→ Code review vira diff colorizado com grafos de dependência entre módulos
→ Parâmetros de animação, cores, regex, cron jobs ganham sliders com preview ao vivo
→ Specs de projeto viram 6 opções lado a lado com mockups interativos
Todos exemplos reais do artigo. Todos substituem um muro de texto por algo que você de fato abre e usa.
O trade-off existe: HTML é 2-4x mais lento para gerar. Mas com contexto de 1 milhão de tokens, esse custo sumiu.
E a parte que ninguém está discutindo: o HTML gerado não é só para humanos. O agente de verificação também lê. O spec deixou de ser documento e virou memória compartilhada entre agentes.
Markdown é relatório.
HTML é interface.
Relatórios são para ler.
Interfaces são para continuar o trabalho.
Se você usa IA em 2026 e ainda pede Markdown para tudo, você pode estar usando um smartphone como lanterna.
Chrome DevTools is, by far, my favorite mcp server.
By running these 2 commands in your terminal, you get to have Claude Code come into your browser with full power:
Launch a chrome browser:
> google-chrome --remote-debugging-port=9222 --user-data-dir="$HOME/.config/google-chrome"
Install the MCP that connect to the browser:
> claude mcp add chrome-devtools -- npx -y chrome-devtools-mcp@latest -u http://localhost:9222
Quickly turn a GitHub repository into text for LLMs with Gitingest ⚡️ Replace "hub" with "ingest" in any GitHub URL for a text version of the codebase.
Introducing the AI Engineer Pack.
Get $50+ in credits from each of the leading AI developer tools.
Whether you’re building a new AI product at work or launching a side project, the AI Engineer Pack has everything you need to build with AI.
There are hundreds of machine learning algorithms out there.
But you only need a few.
Here are 9 of the most useful choices:
1. Transformers
2. LSTMs
3. CNNs
4. GBT
5. K-Means
6. Naive Bayes
7. Logistic Regression
8. Reinforcement Learning
9. KNN
Introducing TinyLlama🦙
Undoubtedly one of the most impressive LLM projects I've seen recently!
-- 🌟 Introduction --
The ambitious TinyLlama project aims to pretrain a 1.1B Llama model on 3 trillion tokens – yes, 3 trillion! 🚀
The idea is to achieve this goal within "just" 90 days using 16 A100-40G GPUs 🚀🚀 with proper optimization.
The training commenced on 2023-09-01, and you can witness its convergence live (find the link below).
-- 🏛️ Architecture --
They've adopted the exact architecture and tokenizer as Llama 2. This means TinyLlama can seamlessly integrate into numerous open-source projects built upon Llama.
Furthermore, TinyLlama is compact, with only 1.1B parameters. This compact design enables it to cater to various applications that require limited computational and memory resources.
-- 📚 Dataset --
The dataset consists of 3 trillion tokens sampled from a mix of 70% Slimpajama and 30% Starcoderdata, with the GitHub subset of Slimpajama excluded.
-- ⚙️ Optimizations --
They're utilizing a variety of fancy optimization techniques such as flash attention 2, fused layernorm, fused swiglu, fused cross-entropy loss and fused rotary positional embedding.
These optimizations result in a throughput of 24k tokens per second per A100-40G GPU, achieving 56% model FLOPs utilization (an incredible feat! 💯).
This has the potential to be a game-changer for end devices, as the 4-bit-quantized TinyLlama-1.1B's weight only occupies 550MB of RAM! 💥
-- 📊 Status --
They'll release intermediate checkpoints according to the schedule provided below. The first released checkpoint is already in competition with StableLM-Alpha-3B & Pythia-1B.
-- 🔗 Links --
In the meantime, you can track the live cross-entropy loss via this link: https://t.co/KTpJoYRsze
Find the repository here: https://t.co/2Q1GV7ozAN
Sempre tive a seguinte dúvida:
- Se o JavaScript é single threaded, quem espera a requisição http terminar?
Então... Ninguém.
O Node/JavaScript funciona na base dos CallBacks.
Quando realizamos uma requisição HTTP no Node, como com o fetch, por exemplo, o Node delega essa tarefa à biblioteca libuv.
A libuv é escrita em C++ e faz integração com o Sistema Operacional.
Essa integração é feita através das famosas syscalls.
Syscalls, ou chamadas de sistema, são funções do kernel do Sistema Operacional que servem como ponte para executar operações de baixo nível.
Como, por exemplo, se comunicar à sua placa de rede (hardware) para solicitar informações de um determinado endereço, utilizando o protocolo HTTP.
Recapitulando:
Sempre que o seguinte código é executado no node:
const response = fetch('htttps://x.com')
A thread principal do node invoca uma função "externa" da biblioteca libuv (escrita em C++), que assume a responsabilidade de comunicar-se com a placa de redecatravés de syscalls.
Beleza, mas e o callback?
Algumas dessas syscalls oferecem operações de I/O (entrada/saída) não bloqueantes.
O que isso quer dizer?
Elas permitem que você adicione um callback para ser notificado no final da operação. Dessa forma, ninguém precisa ficar esperando a requisição ser finalizada.
O SO é encarregado de:
- Comunicar-se com a placa de rede.
- Avisar o observador (definido pelo callback) de que a operação terminou.
Então, ele retorna o resultado da requisição para a libuv, que adiciona essa resposta + o callback na fila de microTasks (porque o fetch retorna uma promise).
Esta tarefa, será transportada para a call stack (assim que a call stack ficar vazia), e então, será executada na thread principal.
Todo código node é executado na thread principal.
Porém, entretanto, contudo, toda vida, a libuv do C++ utiliza-se de uma pool de threads, que por padrão, consiste em 4 threads.
É por isso que o Node consegue ser tão eficiente, apesar de ser "single-threaded".
Dicas para ir bem numa entrevista de live coding:
- Não comece pelo código
Analise bem o problema, veja se tem alguma informação faltando ou mal explicada, tire dúvidas com o recrutador, vc não vai perder pontos por isso.
- Seja comunicativo, pense em voz alta.
Converse com o entrevistador, ele é/já foi dev, assim como você.
Explique o que você entendeu do problema e qual a estratégia você pretende usar para resolvê-lo.
IMPORTANTE: Você não precisa escolher a estratégia certa e mais otimizada de primeira, tente não se preocupar com isso.
Tudo bem mudar de caminho durante o percurso, ninguém sabe tudo de primeira, mas garanta que o(a) entrevistador(a) entenda sua linha de raciocínio.
- Observe as reações, mas não encane muito
Você será entrevistado por um ser humano. Se ele entendeu sua linha de raciocínio, as expressões/reações dele podem te dar algumas dicas, na dúvida: pergunte!
Perguntar é diferente de pedir a resposta.
O máximo que ele vai dizer é: Não posso responder.
- Tente não se importar.
Essa é difícil, mas a verdade é que das duas uma:
Ou você vai bem, ou você vai mal.
Aceite esses dois cenários antes de entrar na entrevista. Quanto mais relaxado você estiver, melhor.
O pior que pode acontecer é você não passar.
Se esse for o caso, ao menos você vai saber quais os pontos fracos que precisam ser melhorados.
Ninguém nasce sabendo de tudo e saber o que precisa ser melhorado é mil vezes melhor do que não saber.
Diminua seus "não-sei-que-não-sei" e aumente seus "sei-que-não-sei".
- Anote o que você sabe que respondeu mal
Ao sair da entrevista, crie um doc, planilha ou folha de papel para anotar as perguntas/problemas/códigos que você acha que poderia ter respondido melhor.
Antes da próxima entrevista, estude esses assuntos e melhore.
Se você fizer isso iterativamente, vai melhorar exponencialmente com o tempo, é uma questão matemática.
Com o tempo, você vai perceber que entrevistas tendem a repetir perguntas e já vai ter treinado o suficiente para responder bem.
Espero que isso te ajude, qualquer coisa minha DM tá aberta se quiser trocar uma ideia, grande abraço!
@ocodista - Não sei filha... uns 4GB?
- Ah, pai... é... 12GB, só isso.
- 12GB? 12GB é um Sistema Operacional inteiro.
- Pai, é Java, pai... é Java! Próximo item! Chrome...
I discovered a cool thing about React Server components.
Why does this work? 🤯
🔸Create NextJS 13 async component.
🔸Add "use server" to the top of the file
🔸Import into client component
🔸Resolve it using react-query by @TkDodo
🔸Render it in client component
I know we probably should not do this, but its amazing that it works
#buildinpublic
I “jailbroke” a Google Nest Mini so that you can run your own LLM’s, agents and voice models.
Here’s a demo using it to manage all my messages (with help from @onbeeper)
🔊 on, and wait for surprise guest!
I thought hard about how to best tackle this and why, see 🧵