A while back, I watched the video where Dennis Ritchie was showing Unix command line. And I though to myself.
How hard would it be to replicate the unix pipe in Go?
Given the fact I began experimenting 4 years ago, it might be tempting to say yes. It is hard! However, …
While writing about the responsive design of ByteKit,I wanted to demonstrate the fact it has both light and a dark themes. At this exact moment I realised that this blog itself has no dark theme. When I setup to setup Hugo for it I simply used an existing theme named hestia-pure. …
Bytekit: jq, awk and a responsive design I released version 0.3.0 of a bytekit.app, which is a privacy oriented AGPLv3 Web application for developers that I had been working on.
There are a few new features to highlight:
AWK, which is based on the impressive goawk package from …
In my recent post introducing bytekit, I described a tiny little PWA designed to help me and other developers. Here I am going to introduce a new feature: generating passwords and secrets.
It may sound odd to use an online tool for something as sensitive as password. The good …
I got recently switched to working on a Java codebase. This is a tutorial on how to setup neovim as a proper Java IDE, including a lombok support.
Introduction After working with computers for almost two decades, vim’s modal editing is wired into my brain and a muscle …
I recently deployed my tiny Web application bytekit.app. This is tool for developers doing stuff like JWT, base64, hashes and so on. I wanted something easy to use, privacy-oriented, and fast.
Bytekit is written in Go. That might sound an odd choice for a browser app, but Go …
I must admit that I tend to overlook the interfaces in the encoding package. Since I typically work with JSON or Yaml, so I tend to care more about methods like UnmarshalJSON. However, today I learned the trick of using TextUnmarshaler when I needed to use a custom type inside …
In an earlier post about giving up Kubernetes, I wrote that my server is a plain old virtual machine pet. While this works pretty well for a static web server use case, I wanted to explore ways how to automate this blog.
This is a story about how I failed. I am writing this …
In an earlier post about sumlint I wrote about a linter that helps with exhaustive checks of type switches for interfaces with a particular naming pattern.
After some time, I realized that this is essentially how protobuf’s oneof is implemented by protoc and protoc-gen-go. …
A sum type (also known as enum / tagged union / one of / disjoint union) allows a type to be exactly one of several fixed alternatives. Functional languages treat this as a first-class concept with pattern matching and exhaustive checking. Go offers almost everything, but does …
This is my personal log detailing how I updated the blog to support the latest version of Hugo.
I rarely write content here. Perhaps I should work on making writing a habit. The blog itself does uses hugo to generate the HTML from Markdown input. This works well. However. Hugo is …
In the Lazy Neovim Configuration I wrote a bit about the neovim configuration I use. While most of my configuration has not changed, I learned about a new completion plugin blink.cmp. It got recommended by kulala-ls and got recently introduced in a kickstart.nvim.
The …