<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Void *Pablogs</title><link>https://pablogs.dev/es/</link><description>Recent content on Void *Pablogs</description><generator>Hugo</generator><language>es</language><lastBuildDate>Sun, 24 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://pablogs.dev/es/index.xml" rel="self" type="application/rss+xml"/><item><title>Lo que malloc() no quiere que sepas</title><link>https://pablogs.dev/es/posts/post-01-no-malloc/</link><pubDate>Sun, 24 May 2026 00:00:00 +0000</pubDate><guid>https://pablogs.dev/es/posts/post-01-no-malloc/</guid><description>&lt;p&gt;&lt;em&gt;Post 1 de 13 — Serie: Memory Allocation y Garbage Collection desde cero&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Cada vez que escribes &lt;code&gt;malloc(128)&lt;/code&gt;, ocurre algo aparentemente mágico: el runtime te devuelve un puntero a 128 bytes de memoria que nadie más está usando. No pediste permiso al sistema operativo. No especificaste &lt;em&gt;dónde&lt;/em&gt; querían vivir esos bytes. Simplemente aparecieron. Y cuando llamas &lt;code&gt;free()&lt;/code&gt;, desaparecen de vuelta al vacío.&lt;/p&gt;
&lt;p&gt;La magia es mentira.&lt;/p&gt;
&lt;p&gt;Debajo de &lt;code&gt;malloc()&lt;/code&gt; no hay nada sofisticado. Hay una syscall que mueve un número hacia arriba. Hay un puntero que avanza. Hay una estructura de datos que lleva la cuenta. Tu programa, cualquier programa en C, está corriendo código muy parecido al que vamos a escribir hoy.&lt;/p&gt;</description></item><item><title>Hola Mundo: Punteros, Memoria y C a Bajo Nivel</title><link>https://pablogs.dev/es/posts/hello-world/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://pablogs.dev/es/posts/hello-world/</guid><description>&lt;p&gt;Todo proyecto en C empieza con un &lt;code&gt;printf(&amp;quot;Hello, World!\n&amp;quot;);&lt;/code&gt;, y este blog no iba a ser diferente. Bienvenidos a &lt;strong&gt;pablogs.dev&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Llevo un tiempo queriendo crear un espacio propio para documentar mis proyectos, organizar mis ideas y, sobre todo, compartir lo que voy aprendiendo sobre programación de sistemas y C a bajo nivel. A menudo, cuando programamos en lenguajes de alto nivel, damos por sentada la magia que ocurre por debajo: cómo se asigna la memoria, cómo se limpian los recursos o cómo crecen las estructuras de datos.&lt;/p&gt;</description></item><item><title>Sobre mí</title><link>https://pablogs.dev/es/about/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://pablogs.dev/es/about/</guid><description>&lt;p&gt;Soy Pablo, ingeniero de telecomunicaciones con doctorado en simulación electromagnética
(filtros de guía de onda, multiplexores, CST/FEST3D). Mi trabajo del día a día vive
entre ecuaciones de Maxwell y parámetros S. Este blog es lo que pasa cuando dirijo esa
misma energía obsesiva hacia C.&lt;/p&gt;
&lt;h2 id="de-qué-va-este-blog"&gt;De qué va este blog&lt;/h2&gt;
&lt;p&gt;Programación en C de bajo nivel: el tipo donde piensas en layouts de memoria, escribes
tus propios allocators y usas &lt;code&gt;void *&lt;/code&gt; sin disculpas. Temas recurrentes:&lt;/p&gt;</description></item><item><title>Projects</title><link>https://pablogs.dev/es/projects/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://pablogs.dev/es/projects/</guid><description>&lt;p&gt;Active projects I&amp;rsquo;m building or maintaining, mostly in C.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="zinc"&gt;Zinc&lt;/h2&gt;
&lt;p&gt;A minimal, statically-typed language targeting a safe subset of C semantics.&lt;/p&gt;
&lt;p&gt;Current state: interpreter + bytecode VM. Compiler in progress.&lt;/p&gt;
&lt;p&gt;Goals:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;No undefined behavior by construction&lt;/li&gt;
&lt;li&gt;Explicit ownership without a runtime GC&lt;/li&gt;
&lt;li&gt;Readable output C as a compilation target (initially)&lt;/li&gt;
&lt;li&gt;Written entirely in C99, no dependencies&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Status:&lt;/strong&gt; Active — posts on this blog track the development.&lt;br&gt;
&lt;strong&gt;Repo:&lt;/strong&gt; &lt;a href="https://github.com/ansuzgs/zinc"&gt;github.com/ansuzgs/zinc&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;!----&gt;
&lt;!-- ## liblog --&gt;
&lt;!----&gt;
&lt;!-- A structured logging library for C, designed as a vehicle for exploring every major --&gt;
&lt;!-- C design pattern: vtable-based polymorphism, arena allocators, tagged unions, and --&gt;
&lt;!-- compile-time configuration via macros. --&gt;
&lt;!----&gt;
&lt;!-- Features: --&gt;
&lt;!-- - Multiple backends (stderr, file, ring buffer) --&gt;
&lt;!-- - Log levels, filters, and per-module configuration --&gt;
&lt;!-- - Zero dynamic allocation in the hot path (arena-backed) --&gt;
&lt;!-- - Single-header option (`liblog.h`) --&gt;
&lt;!----&gt;
&lt;!-- **Status:** Active --&gt;
&lt;!-- **Repo:** [github.com/YOUR_HANDLE/liblog](https://github.com/YOUR_HANDLE/liblog) --&gt;
&lt;!----&gt;
&lt;!-- --- --&gt;
&lt;h2 id="bitstreamh"&gt;bitstream.h&lt;/h2&gt;
&lt;p&gt;A single-header C library for reading and writing packed bitstreams. Useful for
protocol parsers, compression codecs, and anything that deals with sub-byte data.&lt;/p&gt;</description></item></channel></rss>