kokada
https://kokada.capivaras.dev/ (RSS)
One of things that I hate the most about the fact that we are all using wireless earbuds instead of wired earphones is the latency: it is bad, getting up to seconds(!) depending on your particular combination of OS/earbuds/device. There is a solution though: Bluetooth LE Audio, that is supposed to fix multiple issues with the original design for...
Have you ever run a nix build command and had this prompt? $ nix run .#darwinActivations/Sekai-MacBook-Pro do you want to allow configuration setting 'extra-substituters' to be set to 'https://nix-community.cachix.org https://thiagokokada-nix-configs.cachix.org' (y/N)? y do you want to permanently mark this value as trusted (y/N)? y And realise...
I don't want to talk about AI. AI fatigue is real, with (garbage) AI content everywhere you go. However, I like to talk about tools, and AIs, or more specifically, Large Language Models (LLM), can be really useful tools. Maybe someday we will have our AI overlords dominating everything (including my job), but right now I don't feel particularly...
So one thing that I realise after starting writing this blog is that I care more about it than some of my other projects. For some reason or another I want to make sure that this blog will continue with me for a long time. This is one of the reasons why I use GitHub as mirror blog and why I created a bunch of automation to make sure I never...
After using NixOS for the last 5+ years as my main OS, I end up with a configuration with many things that are interesting for one reason or another, but it is not listed anywhere (well, except if you are the kind of person that reads man 5 configuration.nix or the release notes in every release). So kind in the same spirit as my list of things...
After using NixOS for the last 5+ years as my main OS, I end up with a configuration with many things that are interesting for one reason or another, but it is not listed anywhere (well, except if you are the kind of person that reads man 5 configuration.nix or the release notes in every release). So kind in the same spirit as my list of things...
There are 2 types of blog posts: the ones you write for others, and the ones that you write for yourself. This blog post is the latter kind. What I am going to talk here is probably something most people know, but I didn't, and the documentation is all scattered in the internet. So I am writing mostly to remember myself, in future, if I have the...
There are 2 types of blog posts: the ones you write for others, and the ones that you write for yourself. This blog post is the latter kind. What I am going to talk here is probably something most people know, but I didn't, and the documentation is all scattered in the internet. So I am writing mostly to remember myself, in future, if I have the...
I am using elliotchance/orderedmap as my choice of ordered maps (since Go doesn't have one in standard library yet). I recently did a PR to implement Go 1.23 iterators, because I find them neat, however I was avoiding to use it in the code that generates this blog since Go 1.23 was just released and is still not the default Go in nixpkgs. I...
I am using elliotchance/orderedmap as my choice of ordered maps (since Go doesn't have one in standard library yet). I recently did a PR to implement Go 1.23 iterators, because I find them neat, however I was avoiding to use it in the code that generates this blog since Go 1.23 was just released and is still not the default Go in nixpkgs. I...
I like Go. I think it is a reasonable good language, and has some good qualities that makes up for its flaws. However, this doesn't mean I think the language couldn't be better, far from it. This blog post is a list of things that I miss from Go from other languages. Some of the things here could probably be implemented soon, some other would...
I like Go. I think it is a reasonable good language, and has some good qualities that makes up for its flaws. However, this doesn't mean I think the language couldn't be better, far from it. This blog post is a list of things that I miss from Go from other languages. Some of the things here could probably be implemented soon, some other would...
I don't know if this is just something that got me by surprise or not, but boot.kernelPackages option does not receive a derivation like most other packages, but instead receives a function and returns an attribute set with all packages. Here is the documentation: This option allows you to override the Linux kernel used by NixOS. Since things...
I don't know if this is just something that got me by surprise or not, but boot.kernelPackages option does not receive a derivation like most other packages, but instead receives a function and returns an attribute set with all packages. Here is the documentation: This option allows you to override the Linux kernel used by NixOS. Since things...
If you are following this blog for a while, it should be no surprise that most of the workflow in this blog is automated using Go. I basically write Markdown files with some special rules inside the repository, commit and push it. In seconds, the CI (currently GitHub Actions) will take the latest commit, generate some files (since I use the...
If you are following this blog for a while, it should be no surprise that most of the workflow in this blog is automated using Go. I basically write Markdown files with some special rules inside the repository, commit and push it. In seconds, the CI (currently GitHub Actions) will take the latest commit, generate some files (since I use the...
So this is kind of a continuation from my previous post talking why my favorite device is a Chromebook. In this post I want to talk about what makes me this device unhappy, and comment about things that if changed would make it a much better device. But before talking about the negative aspects, let me talk about a positive aspect that I just...
So this is kind of a continuation from my previous post talking why my favorite device is a Chromebook. In this post I want to talk about what makes me this device unhappy, and comment about things that if changed would make it a much better device. But before talking about the negative aspects, let me talk about a positive aspect that I just...
I recently had laser eye surgery for my near-sightedness, and while evaluating if I could have the surgery I discovered that I was suffering from dry eyes. Thanks to this, my ophthalmologist recommended that every 20 minutes while using screens, I look somewhere 20 feet away for 20 seconds, a technique known as 20-20-20 rule. I had issues...
I recently had laser eye surgery for my near-sightedness, and while evaluating if I could have the surgery I discovered that I was suffering from dry eyes. Thanks to this, my ophthalmologist recommended that every 20 minutes while using screens, I look somewhere 20 feet away for 20 seconds, a technique known as 20-20-20 rule. I had issues...
When I wrote my first quick bits post in this blog, I gave that title prefix without much thought: I knew it was supposed to be a quicker post than my previous one, but I never thought too deeply about it. But after: $ ls -lah **/*quick-bits*.md | wc -l 4 Well, 4 blog posts starting with the same prefix, I was curious: are those quick bits really...
Disclaimer: I am not a Virtual Machine specialist, this post is mainly the conclusion I got after some searching. Someone asked me in my previous post about my Chromebook if Crostini could be considered a micro VM. This was a interesting question, so I decided to do another post. To start, it is really difficult to get a good definition of what a...
When I wrote my first quick bits post in this blog, I gave that title prefix without much thought: I knew it was supposed to be a quicker post than my previous one, but I never thought too deeply about it. But after: $ ls -lah **/*quick-bits*.md | wc -l 4 Well, 4 blog posts starting with the same prefix, I was curious: are those quick bits really...
Disclaimer: I am not a Virtual Machine specialist, this post is mainly the conclusion I got after some searching. Someone asked me in my previous post about my Chromebook if Crostini could be considered a micro VM. This was a interesting question, so I decided to do another post. To start, it is really difficult to get a good definition of what a...
Most of the posts in this blog (including this one) and most of I would call "personal computing" that I do nowadays is mostly done in one of the most unremarkable devices that I own: a cheap Chromebook Duet 3, that I bought for around EUR300. I was thinking why, because it is woefully underpowered: a Snapdragon 7c Gen 2, a CPU that was already...
Most of the posts in this blog (including this one) and most of I would call "personal computing" that I do nowadays is mostly done in one of the most unremarkable devices that I own: a cheap Chromebook Duet 3, that I bought for around EUR300. I was thinking why, because it is woefully underpowered: a Snapdragon 7c Gen 2, a CPU that was already...
If you want the TL;DR, go to the bottom of the post (search for "final result"). I recently switched from nil to nixd as my LSP of choice for Nix. I was curious in nixd for a long time since the fact that it can eval Nix code means it can offer much more powerful completion than the nil's static analysis, however it used to be difficult to setup....
If you want the TL;DR, go to the bottom of the post (search for "final result"). I recently switched from nil to nixd as my LSP of choice for Nix. I was curious in nixd for a long time since the fact that it can eval Nix code means it can offer much more powerful completion than the nil's static analysis, however it used to be difficult to setup....
Inspired by this blog post from Tavis, I decided to document my own recent journey of reducing terminal (ZSH) lag startup. This post is way less interesting than the one from Tavis that uses a debugger to patch applications on the fly, but should still be interesting for some. And it also shows how powerful Nix can be for some things. For...
When you are using Nix, especially with Home-Manager, there are times when you want to test something or maybe debug some issue in your configuration. Those times it would be really convenient if you could avoid a rebuild of your Home-Manager configuration, since this takes time until evaluation and activation. For those times I have this small...
Inspired by this blog post from Tavis, I decided to document my own recent journey of reducing terminal (ZSH) lag startup. This post is way less interesting than the one from Tavis that uses a debugger to patch applications on the fly, but should still be interesting for some. And it also shows how powerful Nix can be for some things. For...
When you are using Nix, especially with Home-Manager, there are times when you want to test something or maybe debug some issue in your configuration. Those times it would be really convenient if you could avoid a rebuild of your Home-Manager configuration, since this takes time until evaluation and activation. For those times I have this small...
I hate YAML. Instead of writing an essay on why I hate YAML, I can just link to noyaml.com. In my personal projects I will never use it, preferring either JSON, TOML or even plain old INI files depending on the use case. However the ship has sailed already, there are tons of projects everywhere that uses YAML: from most CI systems (GitHub...
I hate YAML. Instead of writing an essay on why I hate YAML, I can just link to noyaml.com. In my personal projects I will never use it, preferring either JSON, TOML or even plain old INI files depending on the use case. However the ship has sailed already, there are tons of projects everywhere that uses YAML: from most CI systems (GitHub...
Here is something for nostalgia: I just put together a Game Boy Color made of completely new parts for a friend: here is the FPGBC. The FP part of the name comes from FPGA, because instead of software emulation this device use FPGA to reproduce the device. While I am not convinced that FPGA is necessary more accurate than a good software...
Here is something for nostalgia: I just put together a Game Boy Color made of completely new parts for a friend: here is the FPGBC. The FP part of the name comes from FPGA, because instead of software emulation this device use FPGA to reproduce the device. While I am not convinced that FPGA is necessary more accurate than a good software...
If everything works as expected this blog post should appear in in my blog without I ever touching the capivaras.dev website. I rewrote my previous Python script to Go (permalink) since my attempt to generate proper description to the RSS feed resulted in slow startup times (not because of Python, but because of my usage of nix-shell since I...
Go was one of the languages that I always was interested to learn, but never got the hang of it. I first got interested in the language when I was in my first job, between 2016-2018. At the time the language was a completely different beast: no modules, no generics, no easy way to error wrap yet, etc. Go forward 2023 (no pun indented), I wrote my...
If everything works as expected this blog post should appear in in my blog without I ever touching the capivaras.dev website. I rewrote my previous Python script to Go (permalink) since my attempt to generate proper description to the RSS feed resulted in slow startup times (not because of Python, but because of my usage of nix-shell since I...
Go was one of the languages that I always was interested to learn, but never got the hang of it. I first got interested in the language when I was in my first job, between 2016-2018. At the time the language was a completely different beast: no modules, no generics, no easy way to error wrap yet, etc. Go forward 2023 (no pun indented), I wrote my...
The other day I had to run a PHP project in my machine. I have no idea how PHP ecosystem work, I just wanted to get it to run. The easiest way to get a script to run if you use Nix is to use nix-shell. As many of you probably know, you can add nix-shell as a shebang in your scripts to run them as ./script. This was a PHP script so I wanted to do...
The other day I had to run a PHP project in my machine. I have no idea how PHP ecosystem work, I just wanted to get it to run. The easiest way to get a script to run if you use Nix is to use nix-shell. As many of you probably know, you can add nix-shell as a shebang in your scripts to run them as ./script. This was a PHP script so I wanted to do...
I finally started a new blog, thanks to the offer of @ratsclub to give me free access to capivaras.dev. But considering how small this blog platform is supposed to be, I want to have at least somewhere to have a backup of my posts. I know Mataroa, the blog platform that capivaras.dev runs, has automatic e-mail backups, but I want something more...
I recently started a new side project writing an IPC library in Go for Hyprland, a Window Manager for Wayland. Once I got past the Work-in-Progress phase, I realise I had an issue: I wrote some tests, but I was running then inside my system running Hyprland. And the tests themselves were annoying: since they send commands to the current running...
I finally started a new blog, thanks to the offer of @ratsclub to give me free access to capivaras.dev. But considering how small this blog platform is supposed to be, I want to have at least somewhere to have a backup of my posts. I know Mataroa, the blog platform that capivaras.dev runs, has automatic e-mail backups, but I want something more...
I recently started a new side project writing an IPC library in Go for Hyprland, a Window Manager for Wayland. Once I got past the Work-in-Progress phase, I realise I had an issue: I wrote some tests, but I was running then inside my system running Hyprland. And the tests themselves were annoying: since they send commands to the current running...