In gonix: unix from userspace and gonix: the sixth element, I introduced the full user space Unix scripting system implemented in Go.
However, shell scripting is not only about running compiled binaries. It is also about writing new functions that can be called from the scripts. …
Unix is not just pipes and text streams. This is why I introduced a kernel like element into gonix: unix from userspace. To allow the system become close to the real Unix shell.
Beyond running cat | wc -l user will naturally ask
How many processes are running? What are their name …
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 …