In an operating system, the filesystems are responsible for organizing and storing files and directories. They provide a way to access and manage the data stored on the storage devices. Such storage devices can be hard drives, SSDs, USB drives, magnetic tapes, optical discs, RAM disks, etc. They can be shared over the network and they can be even virtual (like procfs
or sysfs
).
Short introduction to filesystems
Jujutsu VCS - short introduction
Jujutsu (jj
) is a VCS unlike most other, its user interface is separated from it storage system(s). This allows it to serve as a VCS with many possible physical backends, that may have different data/networking models.
Currently it uses git
by default as storage layer, making it compatible with all the existing git ecosystem.
Martin started it as a hobby project in 2019, and now it’s his full-time project at Google.
Garmin RepaField
A few weeks ago there was a rainy weekend and I was not able to do the planned work in the garden, also the Vadlan Ultra Terep trail running competition was near, so I decided to create my own Garmin watch datafield.
My main plan was to display both the stamina and the remaining distance from the track in a comparible way (among other metrics I’m interested in, like heart rate, pace and such), but that failed since many metrics are not available through the SDK - stamina among them. But anyway, I’ve created my datafield, I really like it, and at the moment of writing 178 other runners have installed it, too.
You can download it from the Garmin Connect IQ store.
DIY energy gel
Energy gels are expensive as hell, so I decided to cook my own.
Here’s the recipe I used:
HTMX
HTMX is a small (~14k), dependency-free, extendable frontend framework, with a very straightforward approach. It extends the Hypertext capabilities of HTML, without the need of using JavaScript.
Basic concepts:
- Any DOM element can trigger HTTP requests
- Any HTTP methods can be used (not just
GET
andPOST
) - The response from the server is HTML or HTML fragment
- State management is is server-side, frontend is simple and dummy
Web Security Basics
The security of websites was always an important topic, and in my opinion it’s still a bit neglected by some developers. We have plenty of new tools, browsers try to protect their users more and more, but still, it’s important for a developer to be clear with some basic concepts.
Basics
Hash
Hashing algorithms are basically one way functions, where (typically) the hash(x)
call is quick and easy, but its inverse is very slow and expensive - even impossible. In most cases they map arbitrary strings to fixed length, ones with very low probability of collision.
REST
REpresentational State Transfer is a software architectural style for creating stateless web APIs. These APIs are typically based on HTTP methods to access resources specified by URIs that are transmitted in JSON or XML encoded form. They are called RESTful APIs.
Linux Basics
a.k.a don’t fear the terminal
As a (mainly) web developer, I develop software that is mostly running on Linux - whether it’s a virtual machine in the cloud, a docker container, or my NAS under the staircase. So - for me - using any other operating system for development would be an extra hindrance.
To be honest, I like the customisability and freedom that only a Linux distribution can provide, I’m on Linux for more than 20 years, and happy with it. But if you are new, I try to give you a quick overview, why the terminal could be a useful tool.
Web Basics - HTTP
Now that we are aware of the basic networking concepts, let’s take a deeper look at the main protocol of the web - HTTP.
Web Basics - Networking
So, what happens if you enter a URL into the browser’s location bar and press ENTER
? A very many things, and eventually a website is loaded and rendered.
Let’s check the networking part!