January 14, 2025
November 15, 2024
In search of the perfect pin necklace
<p>Last year, on the <a class="reference external" href="/post/collecting-pins.html">"Collecting pins" post</a>, I mentioned that I usually wear my pins on a beanie, but was still looking for a good alternative for the warmer months.</p> <p>After thinking more about it, I realized a necklace would be the way to go. It doesn't depend on any …</p>
September 25, 2024
September 23, 2024
Using EmbedJS for AI RAG systems in Node.js
Making a React based math game with Anthropic's Claude 3.5 Sonnet LLM
September 9, 2024
Zero to Deploy with Claude.ai and Val Town
Today I streamed my first video on Twitch, showing how to use Anthropic's Claude.ai and Val Town to ship a small frontend web app.
July 30, 2024
CardOS: Now compiling without Arduino!
<p>In the <a class="reference external" href="/post/cardos-writing-an-os-for-the-cardputer.html">"CardOS: Writing an OS for the Cardputer" post</a> I shared about the OS that I'm writing for the Cardputer and that the next step was to move away from the Arduino toolchain. It took me two months but I finally did it. The end product was <a class="reference external" href="https://codeberg.org/nfraprado/cardOS/commit/85553f797cf0877e4c88a8e549052a445d00e7d1">this commit …</a></p>
July 13, 2024
Batch loading resources in EmbedJS for RAG
A look at dynamically batch loading RAG resources with EmbedJS.
July 8, 2024
AI-powered fun in p5.js
Using AI in p5.js by wiring up a sketch to a serverless proxy function on Val Town.
June 25, 2024
You're going to Val Town
Val Town's runnable vals (their word for "gists") can be triggered manually, via email, or as an HTTP endpoint or cron job.
June 23, 2024
RAG in Node.js with EmbedJS
A look at a Node.js library called EmbedJS for RAG AI applications along with a repo to help you get started.
June 6, 2024
NYU ITP Camp 2024 sessions
NYU ITP Camp 2024 is underway. Here's Info on sessions I'm leading during the first week—one around vinyl, the other on AI.
June 3, 2024
The 3 Cs of Developer Advocacy
The 3 Cs of Developer Advocacy state that, all things being equal, when hiring for Developer Advocates, we must look for 3 competencies: coding ability, community stewardship, and content creation.
May 24, 2024
CardOS: Writing an OS for the Cardputer
<p>I recently got the <a class="reference external" href="https://docs.m5stack.com/en/core/Cardputer">M5Stack's Cardputer</a>. I was motivated to get it because I knew other people personally that had it too, so we would be able to share our progress, but I was worried it might end up being just another board that sits in my closet forever untouched …</p>
March 21, 2024
vCard + RSS as an alternative to social media
<p>Last year after talking for a while with someone during a conference they asked me for my LinkedIn to be able to connect with me, to which I answered I didn't have one.</p> <p>It was many years ago when I decided to leave social media. I don't miss it. Instant …</p>
February 10, 2024
DevRel and AI: a department lead’s self-evaluation one year in
Reflecting on the past year's journey of integrating AI into our Developer Relations initiatives at Nylas, I'm taking a moment for self-assessment.
November 22, 2023
Collecting pins
<p>It started innocently about one year ago as I was looking for a gift for a friend. We played a lot of League of Legends and Ragnarok Online back in the day, so I wanted to give him something to remember that. Eventually I came across these pins:</p> <ul class="simple"> <li><a class="reference external" href="https://www.etsy.com/listing/587004849/poring-poporing-slime-monter-fanart-hard">Poring/Poporing …</a></li></ul>
April 18, 2023
Using Nylas and OpenAI to triage email
Solving email inbox triage with Nylas APIs and OpenAI GPT APIs.
April 12, 2023
Experimenting with AI in DevRel
Using AI tools like ChatGPT and GitHub Copilot to enhance DevRel work, build inspiring code samples, and enhance developer experience.
November 7, 2022
Create an entity resource file for OAS Tools with Prisma
Make an entity resource file with Prisma that can be used with OAS Tools to generate an Open API document and a Node.js/Express server.
September 28, 2022
Meeting the Linux community at my first ELC
<p>This month I attended the Embedded Linux Conference Europe, which was co-located with the Open Source Summit Europe, and took place in Dublin, Ireland. This was my first time attending a Linux conference in-person as a contributor and it was a very special experience.</p> <p>This wasn't my first ever in-person …</p>
August 28, 2022
Moving the blog to Codeberg
<p>As someone who cares about FOSS, I'm always happy to move to a FOSS alternative when one shows up, provided there aren't any big drawbacks.</p> <p>Back when I was in University and starting to learn the ways of Git, I only knew about two Git hosting options: GitHub, the mainstream …</p>
July 19, 2022
Using emojis in matplotlib
<p>Last month, as I was writing the blog post with all the statistics for the blog's two year anniversary, the <a class="reference external" href="/post/blog-statistics-after-two-years.html">"Blog statistics after two years" post</a>, I decided that I really wanted to have a plot with emojis. From the moment I thought of this I knew it couldn't simply …</p>
June 19, 2022
Blog statistics after two years
<p>Wow, it's been two years since I've started this blog! I'm really happy that I've still managed to keep up the one post per month. Hopefully I'll be able to keep it up for the third one!</p> <p>For this post I thought it would be fun to look through some …</p>
May 26, 2022
Discovering the comfort of loudspeakers
<p>In 2014, while on a school trip to Germany, I bought a Razer Tiamat headset. The sound was great and for the most part it was comfortable. Its only issue was the clamping force, which was a bit too much, and gave me headaches after long hours of use.</p> <p>I …</p>
April 28, 2022
Learning from SerenityOS
<p>One day I was scrolling through Reddit as usual, when I saw a post linking to this blog post: <a class="reference external" href="https://awesomekling.github.io/I-quit-my-job-to-focus-on-SerenityOS-full-time/">I quit my job to focus on SerenityOS full time</a>. I was intrigued by the backstory, the premise of this OS, and also by the fact that its development was <a class="reference external" href="https://www.youtube.com/c/AndreasKling/videos">being …</a></p>
March 29, 2022
Running LineageOS on my Nexus 5X
<p>This month marks one year since I bought a Nexus 5X and started using LineageOS, so I thought I'd share my experience.</p> <div class="section" id="setting-up"> <h2>Setting up</h2> <p>About one year ago, <a class="reference external" href="https://andrealmeid.com/">a friend</a> told me he found a really good deal for a Nexus 5X online. The Nexus 5X is an old phone …</p></div>
February 24, 2022
Learning x86-64 assembly basics
<p>Recently I decided to learn assembly. I already had a reasonable understanding of how it worked due to some classes that touched the subject in university, however I never had the opportunity to really write assembly code.</p> <p>Since my everyday computer is an x86-64 machine, it made most sense to …</p>
January 19, 2022
Making internal linking in pelican effortless
<p>One interesting feature of <a class="reference external" href="https://github.com/getpelican/pelican">Pelican</a>, the static site generator I use for this blog, is the internal link expansion syntax with <code class="docutils literal">{}</code>. It is documented <a class="reference external" href="https://docs.getpelican.com/en/latest/content.html?highlight=static#linking-to-internal-content">here</a>. Some examples are <code class="docutils literal">{filename}</code>, <code class="docutils literal">{static}</code> and <code class="docutils literal">{author}</code>. The purpose of the syntax is to have shorter and easier aliases to link to internal content in …</p>
December 27, 2021
The menus in my system
<p>Another post going through stuff I set up for my desktop environment a couple years ago and that have used ever since 🙂. This time I'll show the menus I've created using <a class="reference external" href="https://github.com/davatorium/rofi">rofi</a>.</p> <p>So, what is <a class="reference external" href="https://github.com/davatorium/rofi">rofi</a>? It's basically a program where you feed a list of options to it, and …</p>
November 25, 2021
The blocks in my status bar
<p>Five years ago when I moved to the i3 window manager, I started using its status bar, the i3bar. It is text based, and it's up to you what gets shown there. However it is not very modular: it's weird to combine different information to be shown since everything has …</p>
October 22, 2021
Resurrecting a computer on the go
<p>Earlier this month I was spending a few weeks in another country. It was late at night and I was once again looking over my personal files and thinking if there was a better way to organize them in folders.</p> <p>After thinking for a bit I decided on a new …</p>
September 26, 2021
My journey to a good backup system
<p>I'm a bit of a data hoarder. I still have some of the first programs I've ever written, photos I've taken on trips and drawings I did many years ago, to name a few. And since I don't trust some company to store all of this data for me, it …</p>
August 28, 2021
Owning my Kindle
<p>Several years ago my mother gave me a Kindle Paperwhite 2. I have read a few books on it since, but it never felt like it was really mine. Locking the screen showed some annoying ad, all books bought from Amazon were protected by DRM, books transferred through USB only …</p>
July 23, 2021
Blog customizations
<p>I've been using <a class="reference external" href="https://github.com/getpelican/pelican/">pelican</a> as my static blog generator since I started this blog about one year ago. It only took a bit of configuration to get the blog up and running, and a bit of searching through <a class="reference external" href="http://pelicanthemes.com/">pelicanthemes</a> to find <a class="reference external" href="https://github.com/gunchu/nikhil-theme">nikhil-theme</a> which is the theme I'm still using.</p> <p>While …</p>
June 21, 2021
One year of blog
<p>It's been a full year since I started this blog! So I thought I'd take this chance to talk a bit about the blog itself: How it started and my thoughts on it.</p> <div class="section" id="origins"> <h2>Origins</h2> <p>I had already thought a bit about having my own blog. Having a little corner of …</p></div>
June 16, 2021
gRPC: The front door for Node.js developers
As I've been learning more about gRPC over the last couple of months, I've worked with a few resources that have been quite helpful. I'd like to share those here.
May 19, 2021
Keeping track of my packages
<p>As I previously mentioned in the <a class="reference external" href="/post/moving-to-wayland.html">"Moving to Wayland" post</a>, I recently moved to a new computer. Moving can be very annoying if you use a heavily configured system and don't have all the configurations easily available to just move over. Since I do regular backups of my files, which …</p>
April 19, 2021
Learning music theory by writing melodies
<p>Hey, first non-technical blog post 🙂.</p> <p>Anyway, I haven't talked about this before here, but I'm really interested in playing the piano. When I was younger I took some guitar classes, but I always wanted to play the piano, and a couple years ago I finally got one! I've been playing …</p>
March 20, 2021
Moving to Wayland
<p>In the middle of January, my computer decided to surprise me, and not in a good way. Differently from all the quirks I've come to expect from it after all these 6 years of use — faulty keyboard, flashing screen, bad audio jack — this time it was worse, and it wasn't …</p>
February 19, 2021
Ledsticker: My first holistic SW + HW project
<p>It was in the middle of 2019. I was taking classes in Embedded Systems Laboratory and had to make the final project of my choice. I had the idea to do some sort of a Guitar Hero using a keyboard for the input, an 8x8 LED matrix to display the …</p>
January 19, 2021
Organization beyond Taskwarrior
<p>In the previous article of this series, I went into all my Taskwarrior and VIT customizations, and my workflow with them, that enables me to organize my tasks and get them done. Tasks, however, aren't the whole story when getting organized.</p> <p>Another crucial component of organization is having a calendar …</p>
December 21, 2020
Managing my tasks using VIT
<p>Two years ago I decided to get more organized about my life. During that time I read the <a class="reference external" href="https://en.wikipedia.org/wiki/Getting_Things_Done">Getting Things Done</a> book and discovered <a class="reference external" href="https://taskwarrior.org/">Taskwarrior</a>, a task manager for the terminal which doesn't get in the way.</p> <p>I greatly appreciated Taskwarrior's simplicity and customizability, but after some time, the need …</p>
November 23, 2020
Astoria Tech Meetup #22: Containerizing a Node.js app... LIVE!
Our next virtual event is this week. We’ll be containerizing the Astoria Digital MuckRock project.
November 22, 2020
Number sorting gotcha with JavaScript
Problem: Sorted arrays are coming back in an unexpected order... sometimes. Safari is behaving differently than Chrome and Node.js. Let’s look at what to do.
November 19, 2020
Porting a flash LED driver upstream
<p>Now that I had a working serial cable for my Nexus 5, as described in the <a class="reference external" href="/post/making-an-uart-cable-for-the-nexus-5.html">"Making an UART cable for the Nexus 5" post</a>, I was ready to face some action and help in upstreaming.</p> <p>Looking through <a class="reference external" href="https://masneyb.github.io/nexus-5-upstream/TODO.html">Brian Masney's TODO page</a> there were a couple options, but the one …</p>
November 15, 2020
I'd Rather Be Scripting, episode 1
Kerri Shotts and I started a little podcast called I'd Rather Be Scripting.
October 19, 2020
Bulk file editing with ranger
<p>My file manager of choice is <a class="reference external" href="https://ranger.github.io/">ranger</a>. It's terminal-based, provides keybind mapping for everything making me more efficient in navigating my files, and it's incredibly extensible by enabling the creation of custom commands in <strong>python</strong>. If that wasn't enough, it also has a ton of other great features (extensible file …</p>
September 19, 2020
Playlist generation with MPD
<p>Music is life. I really love listening to music, although not the same kind of music all the time. Most of the time though, anything goes: I like to listen to any of the songs I have at random. But when I'm doing something that needs concentrating (like writing this …</p>
August 23, 2020
Automatic context detection for Taskwarrior
<p>One of the main ideas of <a class="reference external" href="https://en.wikipedia.org/wiki/Getting_Things_Done">GTD</a> is to have a context associated with each task, so that it is very easy to see which tasks can be done in your current context. I organize my tasks with <a class="reference external" href="https://taskwarrior.org/">Taskwarrior</a>, so to make it work with contexts, when adding a new …</p>
July 29, 2020
Setting up mbsync to work with XOAUTH2
<p>For a long time I used <a class="reference external" href="https://www.offlineimap.org/">offlineimap</a> to synchronize my emails between the email providers and my computer. Having access to all my emails offline on my computer is pretty handy. But after seeing the <a class="reference external" href="https://people.kernel.org/mcgrof/replacing-offlineimap-with-mbsync">brutal efficiency advantage of mbsync over offlineimap</a>, and having had delay issues with offlineimap myself …</p>
June 29, 2020
Making an UART cable for the Nexus 5
<p>Recently, me and <a class="reference external" href="https://andrealmeid.com/">a friend</a> started digging into making the Nexus 5 run the mainline Linux kernel. The purpose of this is, apart from a great learning experience, to make the Nexus 5 run a Linux distro, like <a class="reference external" href="https://postmarketos.org/">PostmarketOS</a>, instead of Android, while also having lifetime updates delivered from the …</p>
May 24, 2020
Creating movie and game lists using Taskwarrior
<p>I like watching movies and playing games, but I also like to keep track of which movies I've watched and which games I've beaten. I also got into the habit of rating each movie I watch. For the longest time, though, I have kept track of these collections informally in …</p>