15 lines
No EOL
9.8 KiB
HTML
15 lines
No EOL
9.8 KiB
HTML
<!DOCTYPE html><html lang="pt"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="icon" href="/favicon.svg" type="image/svg+xml"><link rel="alternate icon" href="/favicon.ico"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="canonical" href="https://gabeefran.co/pt/"><link rel="alternate" hreflang="en" href="https://gabeefran.co/"><link rel="alternate" hreflang="pt-BR" href="https://gabeefran.co/pt/"><meta name="generator" content="Astro v7.2.10"><title>gabeefranco — Anotações do Gabriel Franco</title><meta name="description" content="Notas sobre ciência da computação, sistemas e os projetos open source que moldaram a forma como penso sobre software."><meta property="og:type" content="website"><meta property="og:title" content="gabeefranco — Anotações do Gabriel Franco"><meta property="og:description" content="Notas sobre ciência da computação, sistemas e os projetos open source que moldaram a forma como penso sobre software."><meta property="og:url" content="https://gabeefran.co/pt/"><meta property="og:image" content="https://gabeefran.co/logo.png"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="gabeefranco — Anotações do Gabriel Franco"><meta name="twitter:description" content="Notas sobre ciência da computação, sistemas e os projetos open source que moldaram a forma como penso sobre software."><meta name="twitter:image" content="https://gabeefran.co/logo.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link href="https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400..700;1,400..700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet"><script>
|
|
// Runs before paint to avoid a flash of the wrong theme.
|
|
(function () {
|
|
const stored = localStorage.getItem('theme');
|
|
const prefersDark = window.matchMedia('(prefers-color-scheme: dark)').matches;
|
|
const dark = stored ? stored === 'dark' : prefersDark;
|
|
document.documentElement.classList.toggle('dark', dark);
|
|
})();
|
|
</script><link rel="stylesheet" href="/_astro/BaseLayout.z2Ysa6px.css"><script>window.va = window.va || function () { (window.vaq = window.vaq || []).push(arguments); };
|
|
var script = document.createElement('script');
|
|
script.defer = true;
|
|
script.src = '/_vercel/insights/script.js';
|
|
var head = document.querySelector('head');
|
|
head.appendChild(script);
|
|
</script></head><body class="flex min-h-screen flex-col bg-bg font-sans text-text antialiased selection:bg-primary selection:text-white"><header class="sticky top-0 z-40 border-b border-border/80 bg-bg/85 backdrop-blur"><div class="flex flex-col justify-center gap-4 px-4 py-3 sm:px-6"><div class="flex flex-row justify-between items-end"><a href="/pt" class="flex hover:underline shrink-0 items-center gap-2.5" aria-label="gabeefranco"><img src="/logo.png" class="h-4"><span class="font-mono text-[15px] font-semibold tracking-tight text-text">gabeefranco</span></a><div class="ml-10 flex sm:hidden justify-end gap-3"><a href="/" hreflang="en" title="Mudar idioma" aria-label="Mudar idioma: English" class="text-accent max-w-fit font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep">Mudar idioma: English</a><button type="button" class="theme-toggle text-accent sm:ml-2 font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep" aria-label="Alternar tema" title="Alternar tema">Alternar tema</button><script type="module">function e(){document.querySelectorAll(`.theme-toggle`).forEach(e=>{e.addEventListener(`click`,function(){let e=document.documentElement.classList.toggle(`dark`);localStorage.setItem(`theme`,e?`dark`:`light`)})})}e(),document.addEventListener(`astro:after-swap`,e);</script></div><div class="hidden sm:flex items-center gap-2"><nav class="flex items-center gap-1 justify-right" aria-label="Menu"><a href="/pt" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Início</a><a href="/pt/posts" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Posts</a><a href="/pt/about" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Sobre</a></nav><a href="/" hreflang="en" title="Mudar idioma" aria-label="Mudar idioma: English" class="text-accent max-w-fit py-1 font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep ">Mudar idioma: English</a><button type="button" class="theme-toggle text-accent sm:ml-2 font-mono text-xs sm:text-sm underline hover:cursor-pointer hover:text-accent-deep" aria-label="Alternar tema" title="Alternar tema">Alternar tema</button></div></div><div class="flex justify-end sm:hidden items-center gap-2"><nav class="flex items-center gap-1 justify-right" aria-label="Menu"><a href="/pt" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Início</a><a href="/pt/posts" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Posts</a><a href="/pt/about" class="px-2 py-1 text-sm font-medium font-mono underline text-text-muted hover:text-text">Sobre</a></nav></div></div></header><main class="flex-1"><section class="mx-10 my-10 flex flex-col gap-5 font-mono"><div class="flex flex-col gap-2"><h1 class="text-text text-2xl">Construindo coisas e entendendo como elas funcionam.</h1><h2 class="text-text text-lg">Notas sobre ciência da computação, sistemas e os projetos open source que moldaram a forma como penso sobre software. Eu sou o Gabriel Franco — seja bem-vindo.</h2></div></section><!-- <section class="mx-auto max-w-3xl px-4 pb-4 pt-14 sm:px-6 sm:pt-20 font-mono"> --><!-- <div class="flex flex-col items-start gap-8 sm:flex-row sm:items-center"> --><!-- <img --><!-- src="/logo.png" --><!-- alt="" --><!-- width="867" --><!-- height="458" --><!-- class="w-40 shrink-0 drop-shadow-sm sm:w-52" --><!-- /> --><!-- <div> --><!-- <p class="text-sm font-semibold uppercase tracking-wide text-primary">{t('hero.kicker')}</p> --><!-- <h1 class="mt-2 text-3xl font-bold tracking-tight text-text sm:text-4xl">{t('hero.title')}</h1> --><!-- <p class="mt-4 max-w-xl text-lg leading-relaxed text-text-muted">{t('hero.subtitle')}</p> --><!-- <div class="mt-6 flex flex-wrap gap-5"> --><!-- <a --><!-- href={postsHref} --><!-- class="text-primary hover:underline font-bold px-2 py-1 bg-primary/10" --><!-- > --><!-- {t('hero.cta.posts')} --><!-- </a> --><!-- <a --><!-- href={aboutHref} --><!-- class="text-text hover:underline font-bold px-2 py-1 bg-text/5" --><!-- > --><!-- {t('hero.cta.about')} --><!-- </a> --><!-- </div> --><!-- </div> --><!-- </div> --><!-- </section> --><section class="mx-10 font-mono"><div class="flex items-baseline justify-between gap-4"><div><h2 class="text-xl font-semibold text-text">Posts recentes</h2><p class="mt-1 text-sm text-text-muted mb-2">As últimas coisas que escrevi.</p><a href="/pt/posts" class="shrink-0 text-sm font-medium text-primary hover:underline">Ver todos os posts →</a></div></div><div class="mt-6"><article class="group border-b border-border py-6 first:pt-0 last:border-b-0 font-mono"><a href="/pt/posts/hello-world" class="block"><time datetime="2026-09-22T00:00:00.000Z" class="text-xs font-medium uppercase tracking-wide text-text-muted">21 de setembro de 2026</time><h3 class="mt-1.5 text-xl font-semibold text-text group-hover:text-primary group-hover:underline">O Hello World desse blog (ou seja lá como você queira chamar esse site)</h3><p class="mt-1.5 text-[15px] leading-relaxed text-text-muted">Uma nota curta sobre por que isso existe e sobre o que pretendo escrever aqui.</p></a><div class="mt-3 flex flex-wrap gap-2"><a href="/pt/tags/meta" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#meta</a><a href="/pt/tags/blogging" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#blogging</a></div></article><article class="group border-b border-border py-6 first:pt-0 last:border-b-0 font-mono"><a href="/pt/posts/spotify-complaining" class="block"><time datetime="2026-09-02T03:00:00.000Z" class="text-xs font-medium uppercase tracking-wide text-text-muted">2 de setembro de 2026</time><h3 class="mt-1.5 text-xl font-semibold text-text group-hover:text-primary group-hover:underline">A mudança na cápsula do tempo do Spotify e a bostificação do software</h3><p class="mt-1.5 text-[15px] leading-relaxed text-text-muted">Spotify simplesmente removeu uma das suas melhores funcionalidades. Além de reclamar um pouco, quero abrir um debate sobre o que os softwares estão se tornando.</p></a><div class="mt-3 flex flex-wrap gap-2"><a href="/pt/tags/software" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#software</a><a href="/pt/tags/life" class="text-text-muted px-1 py-0.5 text-sm hover:text-accent underline">#life</a></div></article></div></section></main><footer class="border-t border-border/80 font-mono"><div class="mx-auto flex max-w-3xl flex-col gap-2 px-4 py-8 text-sm text-text-muted sm:flex-row sm:items-center sm:justify-between sm:px-6"><p>© 2026 <span class="font-mono text-text">gabeefranco</span> · Todos os direitos reservados.</p><div class="flex items-center gap-4"><span class="hidden sm:inline">Escrito à mão em Porto Alegre.</span><a href="https://github.com/gabeefranco" target="_blank" rel="noopener noreferrer me" class="transition-colors hover:text-primary">GitHub</a><a href="https://github.com/gabeefranco/gabeefran.co-blog" target="_blank" rel="noopener noreferrer" class="transition-colors hover:text-primary">Código-fonte</a></div></div></footer></body></html> |