RSSAmplifier

Blog

About on João Freitas

Recent content in About on João Freitas

joaomagfreitas.linkRSS feed ↗398 posts

Latest posts

Login with PDF

In this blog post I teardown my thought process on how I discovered how to integrate an OAuth connector that authenticates with a pdf.

For years I’ve always wanted to be an open-source maintainer

In this blog post I reflect on my first really experience on maintaining an open-source project on GitHub.

I vibe coded for two weeks

In this blog post I reflect on the positives and negatives on vibe coding, after taking on it for two weeks. Instead of following a traditional migration workflow (setup new project, use parts of existing codebase), my CTO wanted to conduct an experiment and test if LLMs can help us…

Abandoned Projects

A blog post about projects/ideas I tried bringing to life but didn’t exactly work out

Zero Monitor

Monitoring agents report live system information so machines can be easily supervisioned from a single dashboard view I self-host custom software under multiple machines (old laptops, raspberry pis) and needed a tool to supervision these machines state remotely. I couldn’t find a tool that allowed me to drop a binary and silently connect the machine to a dashboard where I could monitor it.…

Instagram Archiver

Instagram Archiver is a tool that automates archiving Instagram user stories, allowing to rewatch them after they expire. It’s a really neat tool if you want to build a timeline of your favorite creator activity. Upon entering the tool, users are prompted with an input to search for their creators username @handle Any time, users can view the user archived stories If users have any question…

Dotfiles

The dotfiles movement aims developers to share the configuration files that customize their working space. I’ve also joined the movement when migrating from a Desktop Environment (GNOME) to using a Window Manager (AwesomeWM). Along my rice (theme), local programs (scripts) and configuration files, I also track down all the packages that I’ve installed (PACKAGES), and provide a script…

Scripts should be written using the project main language

In this blog post I explain the rationale for why I think that projects should be written using the project main language.

Why you should use a terminal editor to write a commit message

In this blog post I describe seven reasons why you should use a terminal editor to write a commit message instead of passing the -m flag.

I read a technical article everyday this year

In this blog post I cover what I’ve learned as well as the difficulties I felt, by reading an article for an whole year.

Deleting 50,000 Lines of Code in 3 Days

The following is a write-up of how a developer (author) deleted 80% of the codebase he started working on in just three days.

Tracking Java Native Memory With JDK Flight Recorder

The following is an introduction to Flight Recorder, a profiling tool builtin the JVM to measure performance of a Java application. The author also uses JDK Mission control to import the recorded profiling sessions and further deeply analyse memory usage.

Costs of running a macOS app studio business

The following is a summary of 2023 earnings for a dual developer indie company creating macOS apps and selling them in different app stores. It includes pre and post tax sales earnings.

Explaining SSH to my Uber Driver

After the success of “Explaining Kubernetes to my Uber driver”, the author is back to story tell how she would explain how SSH works to his Uber driver.

Explaining Kubernetes To My Uber Driver

A week ago, I attended Kubecon 2023 in Chicago. I read a few blogs and attended some 101 tutorials at the conference, but still didn’t have a good understanding of the technology. The worst part was the last day of the conference - I ordered an Uber to bring me back to my hotel…

Paying Netflix $0.53/h, etc.

The following is a summary on how much people spend per hour in streaming services.

Discovery is the original sin of the modern age

The following is a review of today’s massive source of information and how the hard part is to now find the right information to learn.

Writing Documentation for Your House

The following article discusses the innovative idea of documenting housing chores, material bought, how to replace things, etc…

Populating the page: how browsers work

The following article provides an overview of how browsers render a webpage.

How I test a website for accessibility

The following article explains how to test accessibility of a website in an automated and manual manner, how to identify and fix issues.

Javascript Proxy Magic: How I built a 2kB state manager with zero dependencies (and how it got me two different job offers)

The following is the story of how the author created his own state manager using JavaScript Proxy API.

All of the writing I did in a week as a software engineer

The following is a review on the amount of writing a Netflix Software Engineer puts in a on-call week.

Evaluating new software forges

Today’s read is all about GitHub alternatives and the main features you can find in these, that you don’t find in GitHub, as expected from the author.

Why SQLite Does Not Use Git

The following is an explanation of missing features in Git that SQLite needed, and how Fossil, the version control system conceived for SQLite, addresses them.

Check if Your Wireless Adapter Supports Monitor Mode & Packet Injection

The following is a small guide on how to check if your Linux environment supports packet injection & capturing (via monitor mode)

Navigating around in your shell

The following blog post reveals some tips ’n’ tricks you can use to boost your efficiency in a bash/zsh terminal.

Undefined behavior, and the Sledgehammer Principle

The following article covers vulnerabilities created by compilers when optimizing C/C++ code, as these can skip checks that may lead to vulnerabilities like buffer overflows. This kind of vulnerabilities are identified as Undefined Behaviour (UB).

Learning from the real world: A hardware hobby project

The following article talks about transitioning from software-only projects, to projects that involve hardware and their hurdles.

How to Clean Up Your Local Repository with Git Commands

The following are some useful Git commands to cleanup the state of a repository.

Get Rid of Your Old Database Migrations

The following is a blog post about database migrations, how developers usually treat them, and how Git commits can be used to keep track of them instead of keeping them as files in the project repository.

How Google takes the pain out of code reviews, with 97% dev satisfaction

The following article covers Google code review process and their in-house code review tool, Critique , and why software engineers at Google love Critique features so much.

Donkey code

The following read talks about the importance of defining and using correct terminologies and nomenclatures when designing and implementing software, based on the domain the product is built for.

Exploring a 3D city with just HTML and CSS

The following article is just mind-blowing. It covers how to create a 3D city building game using only HTML + CSS, by manually transpiling 3D .obj files in CSS styles which are then applied to HTML elements.

The Cost of Index Everything

The following post discusses why AI loves to index all data and why indexing too much data may hurt the trained Large Language Model (LLM). https://matt-rickard.ghost.io/the-implications-of-more-developers Many AI products today are focused on indexing as much as possible. Every meeting, every document, every moment of your day. Every modality — images, audio, and text. Devices that are meant to…

Virtual Machine as a core Android Primitive

The following is a blog post about Android Virtualization Framework (AVF), explaining some of its details and internals, as well as how developers can benefit from it.

How did I get here

The following article explains how computers connect to each other via DNS and many other network protocols

Most AI startups are doomed

The following read is a review on AI startups and how most of them live under an hype bubble. The author makes a really good argument in regards to what most AI startups are building: an application build over the weekend, that competitors can also do it too.

Kotlin Unknotting — From Realizing Anti-Patterns to Becoming a Better Developer

The following article describes some mistakes often seen in Kotlin codebases and examples on how to improve them.

Demystifying Web Push Notifications

The following article is an introduction and explanation of web push notifications: what are they, how they work and their internals.

One Day Build: Expense Tracking

The following blog post is a summary on how to build a simple expense tracking application in one day, using HTML, Node.js and Google Sheets.

S3 Express is All You Need

The following is an overview on the new cloud service available in AWS - S3 Express - and how big data companies can profit from it.

Why do companies hire people to be idle a lot of the time?

In the following article the author reasons about possible theories for why companies hire a ton of tech people, although not having projects for them to work.

Google Maps Redesign

The following is a Twitter thread about the redesign of Google Maps, and how its user experience is fading away, as explained by one of the original UX designers.

LLM Visualization

The following is not a read or an article, it’s just a mind blowing 3D representation of a Large Language Model (LLM).

Webmention

The following is an explanation to WebMention: an old protocol that connects users between different websites, allowing for one party (website) to receive notifications, comments, feedback from another party (website).

Why Nue?

The following is the Nue.js manifesto, a JavaScript framework for building website with only Nue markup that is very optimized for Web standards, both in terms of client side rendering, as well as bundling.

Law of Demeter

The following article covers the Law of Demeter which implies that clients can only communicate with their direct dependencies (let’s say friends) and never with transitive dependencies (dependency of my dependency).

Why I Tend Not To Use Content Negotiation

The following article explains why the Accept HTTP header should not be used to choose between an hyper-driven response or a plain JSON response.

Structured Logging - Reference

The following is the reference for structured logging messages as well as how they should be rendered.

Kotlin Multiplatform Development Roadmap for 2024

The following is the roadmap of Kotlin Multiplatform for 2024.