bram@cbbg.nl~$ hexdump cbbg.bin 00 | CA BB A9 E0 00 42 72 61 6D 27 73 Ê»©à.Bram's 0B | 72 65 73 69 64 65 6E 63 65 00 00 residence.. 16 | 6F 6E 20 74 68 65 20 77 65 62 2E on the web.

Posts

2025

Feb

Bike rear wheel weight breakdown

Detailed weight break down of a bicycle rear wheel. Be surprised!

2024

Oct

FreeBSD TiddlyWiki rc.d script

TiddlyWiki is awesome, FreeBSD is awesome. Let’s combine these awesomenesses using an rc.d script !

May

OpenIKED based IPsec VPN tunnel on FreeBSD

This post will show how to set up an IPsec based VPN tunnel using OpenIKED. Road warrior clients will be placed within their own subnet of 10.0.5.0/24. Authentication between road warriors and the VPN server will be based on certificates. A word of advice for those attempting this journey; IPsec based VPNs with certificate based authentication is a messy endeavour. The first messy part is the Internet Key Exchange (IKE), both client and server have their own set of supported algorithms. During key negotiation a common ground needs to be found between client and server regarding cipher suites. Second messy part are the certificates, as a random guy on the internet, has so nicely phrased: public key infrastructure (PKI) and X.509 certificates are a wild, wild, west.

2023

Aug

Assign T-mobile public IP to own server (FreeBSD)

Assign your Odido public IP address to your own server.

2022

Jun

GraphicsMagick batch convert png to jpg

For a recent project I needed to batch convert a large set of png files to jpeg. The trouble was, that some png files had transparency. After conversion the transparent regions showed up as black regions in the jpeg files. It took an embarrassingly long time to solve the issue, hence I’ll post the solution here.

gm mogrify -resize 25\% -background white -extent 0+0 \\
-output-directory ~/out_dir/ -format jpg *.png

The regular convert mode of GraphicsMagick has the flatten option. The mogrify mode does not have this option, hence the extent option is used. This extent option together with the geometry specifier (0+0 in this case) will composite the input image on a new background.

2021

Dec

Boosting PointNet++ performance

PointNet++ has been a major milestone in the area of applying deep learning to point clouds. Though impressive results can be obtained, the computational load, especially on the CPU side is high. Luckily, after a quick internet search an elegant solution was found which can speed things up by a factor two. Credits for this solution go to the blog post by Open3D. During the interpolation stage PointNet++ uses a nearest neighbout search, the original implementation uses a brute force approach to finding nearest neighbours. The solution put forward by Open3D is by using a k-d tree to speed up the nearest neighbour search. This post will show how this can be implemented using the nanoflann library. This library is a C++ header only library for building k-d trees.

2020

Dec

Embedding public gpg key in HTML comment

Cool idea from Travis. This will enable to import my public key simply by running curl https://cbbg.nl | gpg --import. Pretty cool huh? Worth the few extra bytes at each page load? Hell yeah!

In config/_default/params.toml

key='''
<!--
-----BEGIN PGP PUBLIC KEY BLOCK-----

xsFNBFRABlQBEADpJnaPhAWHkAw7kiRq5xdvh51BC86O2aQMALKlmNesSNR/aIIk
...................... more key data ...........................
GBNnmKCglTQSqNnWFyq6lKqus01dG4c+f4BUnQaqllUwcnCqBGjxkCLx8JTXaEoa
v68=
=T92X
-----END PGP PUBLIC KEY BLOCK-----
-->
'''

Somehere in the footer partial of my theme I added this:

{{ if .IsHome }}
  {{ site.Params.key | safeHTML }}
{{ end }}

This will only include the raw HTML code including the key on the homepage.

2019

Feb

Unbound as DNS Sinkhole

A barebones approach to mimicing a pi-hole using the unbound DNS resolver.

Feb

Monitoring my deGiro Portfolio

I was interested in monitoring the growth of my stock portfolio at DeGiro. After googling a bit I learned it was possible to get the data I was interested in using a few simple HTTP GET/POST requests. I got inspired by the Node.JS unofficial API and decided to make my own API using Python. After peering at the network monitor output of the web developer tools for some time I was able to quickly cook up a Pyton based API.