Hi! My name is David, I love to build software. Here I share my ideas, side projects and the things I found out along the way. Learn more about who I am.

You can find me on Github as dvdsk, send mail to hello@<this domain> or contact me on LinkedIn.

Books

How to become a great software developer? While a Computer Science degree can help, it’s not the answer though. I won’t pretend I have it either, I do however tend to give out the same list of books whenever the subject comes up. I would suggest starting at the top, but start wherever you like. It’s better to read anything then never start right? If you get tired of reading I added some related talks. [Read More]

Vim recipes

My list of intermediate Neovim recipes, sequences of user actions and lua functions that make repetative tasks easier and safer. This is a living document and growing as I find more good patterns. Quick fix list fun Find a text pattern and execute vim grammar on all lines that match. This one is especially useful wile refactoring, for example removing an argument from a function. By using telescope we can quickly find the pattern that matches only the lines we want to change [Read More]

Compile zfs on mainline kernel

Recently I got a newly released GPU. To use it on Linux however I needed the latest kernel and mesa driver. The latter was straightforward however the kernel proved tricky as I use ZFS. While there are a number of text how to compile a kernel a guide on how to do that and fold in ZFS was missing. This guide takes you through the process of building both ZFS and a mainline kernel from source from my perspective, that of an intermediate Linux user. [Read More]

Projects

Over the past years I have worked on a lot of side projects, using software to solve some perceived problem. This is a list of my side work, the motivations behind it and issues a ran into. Most recent projects first. Book-safe I kept “forgetting” the time reading the novels by Robin Hobb. I spend the better part of 3 weekends writing a service for my eink-tablet which locks me out of her books past bed time. [Read More]

Linux A/V sync

In my opinion having a good video conference setup is essential in a remote job. The consensus on the net is that webcams are terrible as … webcams. Instead, you get better quality using a compact camera with a capture card for the video and a separate microphone for audio. I use a Sony α5000 with an Audio-Technica at2020. Using separate devices for audio and video has as disadvantage they are no longer in sync. [Read More]

Crates to build on

Rust has a slim standard library. It provides many core types such as vectors and strings, abstractions the ecosystem builds on. You will not, however find random numbers or time and date in the standard library. Luckily anything you might miss has long been filled in by the community. Innovative new crates (third party libraries) also pop up for problems usually solved in the standard library. The slimness removes the standard library as competitor for these crates, lowering the bar to the spotlight. [Read More]

Project Ideas

A list of projects that I would like to do but don’t have the time for right now. Motd dashboard I really like the look and modularity of yboetz/motd however it is not fast enough to run on minimal hardware like a pi3. There is rust-motd which solves the performance issues by updating a string via a cron job however that misses some features and some modularity. It would be nice to have the best of both worlds. [Read More]

objdump –syms target/thumbv7em-none-eabi/release/break-spy | grep EXTI1 COLUMN ONE: the symbol’s value COLUMN TWO: a set of characters and spaces indicating the flag bits that are set on the symbol. There are seven groupings which are listed below: group one: (l,g,,!) local, global, neither, both. group two: (w,) weak or strong symbol. group three: (C,) symbol denotes a constructor or an ordinary symbol. group four: (W,) symbol is warning or normal symbol. [Read More]