<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Posts on Brainstorm</title><link>https://nelson.pub/posts/</link><description>Recent content in Posts on Brainstorm</description><generator>Hugo</generator><language>en-us</language><copyright>© Nelson Rodrigues</copyright><lastBuildDate>Fri, 08 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://nelson.pub/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>How to add WebAssembly to a web app</title><link>https://nelson.pub/posts/how-to-add-webassembly-to-a-webapp/</link><pubDate>Fri, 08 May 2026 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/how-to-add-webassembly-to-a-webapp/</guid><description>&lt;p>&lt;a href="https://webassembly.org" target="_blank" rel="noopener noreferrer">WebAssembly&lt;/a> is the new, hot thing! Just kidding. It has been around since 2017. It&amp;rsquo;s (almost) a 10-year-old technology, ancient, by the JavaScript &lt;a href="https://dayssincelastjsframework.com" target="_blank" rel="noopener noreferrer">framework standards&lt;/a>. Nonetheless, if you have been doing regular web stuff in the last decade, you probably have heard of it but, never or very rarely touched it, let&amp;rsquo;s change that.&lt;/p>
&lt;p>In this guide we&amp;rsquo;re going to explore how simple it is to integrate WebAssembly into a web app using the Rust programming language and tools.&lt;/p></description></item><item><title>Do not skip to the end</title><link>https://nelson.pub/posts/do-not-skip-to-the-end/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/do-not-skip-to-the-end/</guid><description>&lt;p>In this new age of AI assisted development, it&amp;rsquo;s incredibly easy and simple to go from an idea to the end result. Long gone are those days spent thinking and navigating our way to a solution.&lt;/p>
&lt;p>It&amp;rsquo;s a marvelous power at the end of our fingertips, that makes our work so much easier than before. But what&amp;rsquo;s the cost? And is it worth paying for?&lt;/p></description></item><item><title>Implementing macOS Finder text shortening</title><link>https://nelson.pub/posts/implementing-macos-finder-text-shortening/</link><pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/implementing-macos-finder-text-shortening/</guid><description>&lt;p>I recently watched a video from a talk about the &lt;a href="https://www.youtube.com/watch?v=1fZTOjd_bOQ" target="_blank" rel="noopener noreferrer">future of the Desktop UX&lt;/a> from Scott Jenson, a designer who has worked on a lot of stuff that we all probably use in our daily lives, without giving it much thought.&lt;/p>
&lt;p>Right at the beginning of the talk, he mentions some of his work while at Apple, including a cool detail about how &lt;strong>Finder&lt;/strong> handles the display of filenames. Instead of placing the ellipsis at the end, Finder places it in the middle — which, according to him, preserves important information about the file.&lt;/p>
&lt;p>It&amp;rsquo;s a neat detail, and while I didn&amp;rsquo;t pay it much attention back then, it recently came back to me and it&amp;rsquo;s just the sort of UI challenge that I love to tackle, so here we are.&lt;/p></description></item><item><title>CSS transitions with clip-path</title><link>https://nelson.pub/posts/css-transitions-with-clip-path/</link><pubDate>Sun, 08 Jun 2025 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/css-transitions-with-clip-path/</guid><description>&lt;p>One of the more &amp;ldquo;recent&amp;rdquo; additions to CSS is &lt;a href="https://developer.mozilla.org/en-US/docs/Web/CSS/clip-path" target="_blank">clip-path&lt;/a>
 property. It essentially allows you to add a mask to any content. Anything inside the mask region is shown, while anything outside of it becomes hidden.&lt;/p>
&lt;p>There&amp;rsquo;s a lot that can be said about to clip-path, but today I want to focus on using it in CSS transitions.&lt;/p></description></item><item><title>Thoughts on clarity</title><link>https://nelson.pub/posts/thoughts-on-clarity/</link><pubDate>Fri, 09 May 2025 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/thoughts-on-clarity/</guid><description>&lt;p>Writing code for a living is a tricky business. There’s a lot that happens even before a line of code is put on the screen: meetings, gathering requirements, asking questions, discussions on which technology stack to use, and so on.&lt;/p>
&lt;p>All of this is done with one purpose: figuring out the shape of the solution to the problem. We do this because, humans aren’t yet able to read each other&amp;rsquo;s minds. And because we need a proper understanding of the task at hand before we can start working on it.&lt;/p></description></item><item><title>Learning Go: Sequential Channels</title><link>https://nelson.pub/posts/sequential-go-channels/</link><pubDate>Mon, 05 May 2025 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/sequential-go-channels/</guid><description>&lt;p>Go uses channels as a means of communication between threads (goroutines).&lt;/p>
&lt;p>Today I want to look how can we use channels sequentially, to pass information from one goroutine to another in a sequence, creating a sort of pipeline.&lt;/p>
&lt;p>And for that we&amp;rsquo;re going to need some sugar.&lt;/p></description></item><item><title>Learning Go: Channels</title><link>https://nelson.pub/posts/go-channels/</link><pubDate>Fri, 02 May 2025 00:00:00 +0000</pubDate><guid>https://nelson.pub/posts/go-channels/</guid><description>&lt;p>Recently, I&amp;rsquo;ve been on a journey to learn &lt;a href="https://go.dev" target="_blank">Go&lt;/a>.&lt;/p>
&lt;p>One of its defining features, is the concept of &lt;a href="https://go.dev/doc/effective_go#channels" target="_blank">Channels&lt;/a>.&lt;/p>
&lt;p>Channels are the way Go enables communication between asynchronous code, which in Go takes the name of &lt;a href="https://go.dev/doc/effective_go#goroutines" target="_blank">goroutines&lt;/a>.&lt;/p></description></item></channel></rss>