Keenan Tims's Avatar

Keenan Tims

@ktims.nonexistent.ca.ap.brid.gy

I enjoy long coding sessions in #rust, LED-lit #electronics projects, #linux systems integration, and learning about any interesting technology. AMA about the 737MAX [โ€ฆ] ๐ŸŒ‰ bridged from โ‚ https://nonexistent.ca/@ktims, follow @ap.brid.gy to interact

2
Followers
0
Following
84
Posts
20.08.2024
Joined
Posts Following

Latest posts by Keenan Tims @ktims.nonexistent.ca.ap.brid.gy

Preview
Services: Kea DHCP: Add DDNS feature for subnet4 and subnet6 by Monviech ยท Pull Request #9923 ยท opnsense/core The configuration model is inspired by what the original ISC DHCP server offered, the config generation translates this to what Kea requires. Only forward zones are supported, it's the minimal ...

@hugo Good things come to those that wait? https://github.com/opnsense/core/pull/9923

12.03.2026 15:56 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Video thumbnail

Prototype of my next project - a PTP clock with a 1,000,000fps, 1us display, with a true displayed accuracy of better than 500ns with respect to PTP time. No, I don't know why this is useful. Maybe some high speed photography setup with a need for absolute [โ€ฆ]

[Original post on nonexistent.ca]

09.03.2026 04:41 ๐Ÿ‘ 2 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

The hypocrisy of a bank insisting I give my password for my account at another bank to 3rd party Flinks/Plaid, while insisting in the ToS that if I did so with their account, they're no longer liable for fraud.

07.03.2026 19:55 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

A while back I noticed that my hosted-at-home services (media library etc.) sometimes felt very slow from outside. But never thought much of it.

Needed to do a large file transfer from home and seeing 200KB/s, finally had enough.

Only affects IPv6. Only affects traffic to the OpnSense router [โ€ฆ]

04.03.2026 17:57 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

Since I recently moved my primary DNS to PowerDNS, I realized I can expose its API to my OpnSense and _finally_ get support for dynamic DNS for IPv6 with host-part replacement. Now I can choose if I want to expose things natively on IPv6 PD addresses and proxied on IPv4, or proxied on both AFs [โ€ฆ]

04.03.2026 04:56 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Preview
Woodpecker CI Woodpecker is a simple, yet powerful CI/CD engine with great extensibility.

Maybe https://woodpecker-ci.org/ is worth a look? Been quite happy with it, but it might not be a good fit for ngscopeclient.

26.02.2026 17:57 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
A scope shot with infinite persistence on, showing a stable yellow trace and a blue trace with approximately -5/+60ns of jitter.

A scope shot with infinite persistence on, showing a stable yellow trace and a blue trace with approximately -5/+60ns of jitter.

This is the situation after an hour or so of data collection, with the PLL tuning back to defaults (65536s). Trigger on channel 1 (yellow), the PPS out from PRS10, cyan is PPS out from the GPS. The PRS10 seems to be working totally fine.

We should expect the [โ€ฆ]

[Original post on nonexistent.ca]

18.01.2026 02:33 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

It seems like this unit might have been a cold spare, given its excellent condition. It didn't arrive to me in original packaging, but was clean and didn't bear the typical scratches of rackmounted gear.

The PRS10 reports less than a year of total runtime so it is practically new.

Still need [โ€ฆ]

18.01.2026 00:29 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
A Symmetricom TimeSource 2700 on the kitchen table, with its original binder-bound paper manual sitting atop.

A Symmetricom TimeSource 2700 on the kitchen table, with its original binder-bound paper manual sitting atop.

A Stanford Research Systems PRS10 Rubidium Frequency Standard on the messy bench. In the distance an oscilloscope can be seen measuring time offset between two PPS signals.

A Stanford Research Systems PRS10 Rubidium Frequency Standard on the messy bench. In the distance an oscilloscope can be seen measuring time offset between two PPS signals.

Picked up a very obsolete Symmetricom TimeSource 2700 on eBay, solely to harvest the PRS10 Rubidium Frequency Standard inside (which go for more than double what I paid for the donor). Now I can proudly report that I have an atomic clock!

Preliminary tests [โ€ฆ]

[Original post on nonexistent.ca]

17.01.2026 23:31 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 2 ๐Ÿ“Œ 0
Original post on nonexistent.ca

I've been banging on this general "allowing strong technical locks which lock out the ostensible owner are a serious problem" drum for a long time now. As usual @pluralistic offers a poignant analysis [โ€ฆ]

15.01.2026 01:40 ๐Ÿ‘ 0 ๐Ÿ” 3 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Another offset plot comparing local offset to the sync source (GPSDO PPS) and PTP source.

Another offset plot comparing local offset to the sync source (GPSDO PPS) and PTP source.

Replaced the cheap Netgear switch with a Cisco C2960CX. This increased the static offset from ~1.2ฮผs to ~2ฮผs. Interesting, and seems to corroborate asymmetric delay based on the network switch. I'd need to think a bit more on it and how it interacts with PTP's [โ€ฆ]

[Original post on nonexistent.ca]

15.01.2026 01:35 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
A Grafana plot showing time offset between the local clock and two of chrony's sources

A Grafana plot showing time offset between the local clock and two of chrony's sources

How chrony interprets the performance of local PPS vs. PTP. Green trace is the offset of the local clock and GPSDO PPS, captured locally using the BeagleBone timer capture hardware (see my previous posts on that platform). Yellow is the offset between the [โ€ฆ]

[Original post on nonexistent.ca]

13.01.2026 19:46 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Preview
home - media.ccc.de Video Streaming Portal des Chaos Computer Clubs

Been binge watching #39c3 talks (https://media.ccc.de) the last couple days. This con is amazing, it's got it all. I hope to go some day. Thank you for generously providing the high quality online versions.

04.01.2026 05:05 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

Anyone aware of an affordable 5-12 port switch with proper management & PTP transparent and/or boundary clock support? Primary or secondary market is fine. < $300 CAD, GigE+, PoE would be nice.

My survey so far:

* Arista - 710P series seems to have good support, but not remotely affordable [โ€ฆ]

30.12.2025 23:19 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

@fasterthanlime Learned this one last week when it put multiple k8s nodes into disk pressure and broke everything. Fun times.

29.12.2025 21:15 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
A photo of a PCB bristling with SMA ports in the omnivise. A port on the left and a port on the bottom are connected to the NanoVNA, which is showing an S11 plot. The plot shows a bandpass response.

A photo of a PCB bristling with SMA ports in the omnivise. A port on the left and a port on the bottom are connected to the NanoVNA, which is showing an S11 plot. The plot shows a bandpass response.

Finally back to #timenuts stuff! GNSS distribution amplifier seems to be working as designed. S11 seems much higher than expected at only around -5 to -10dB. The filter is meant to be internally matched, as is the amplifier stage so not sure what is going on [โ€ฆ]

[Original post on nonexistent.ca]

22.12.2025 05:45 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

#adventofcode day 5 report

Why is Rust's `Bound` and `RangeBounds` API the way it is?!

Tried to build a templated `RangeSet` based on `RangeBounds`, but determining overlap and merging ranges was so ugly due to having to handle the 3 types of `Bound` everywhere. It was impossible to sort out [โ€ฆ]

05.12.2025 10:44 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

#adventofcode day 4 report

Today was an exercise in remembering how my custom Grid helper class works. And thinking it already had the necessary methods to solve today's problem, but ending up adding them.

04.12.2025 05:40 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

[AoC Solution Discussion]

#adventofcode day 3 report.

Solved in under 30 min, but my solutions are slow. Just using a totally dumb recursive DFS with memoization.

This problem would probably be better solved with BFS, then it is simple to cull the obviously worse paths (e.g. if we have [โ€ฆ]

03.12.2025 06:25 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

[AoC Solution Discussion]

Hitting my self-imposed time limit for #adventofcode day 2.

Performance progression:

First attempt, string-based brute force:
Part1 - 24ms
Part2 - 239ms

Second attempt, arithmetic based brute force:
Part1 - 4.5ms
Part2 - 13ms

Third attempt, arithmetic based on [โ€ฆ]

02.12.2025 06:59 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

Redeemed myself a bit today, remembered to solve first and optimize later!

Reasonably good solution in about 15 minutes, but there is plenty of room for obvious optimizations and style points.

#adventofcode

02.12.2025 05:18 ๐Ÿ‘ 1 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

[AoC Solution Discussion]

Not a great start to #adventofcode this year, I completely forgot how my build setup was working last year, and the boilerplate I copied to start from did not work at all.

Then, I could not quite work out the edge cases for the modular arithmetic after 90 minutes of [โ€ฆ]

01.12.2025 06:47 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Original post on infosec.exchange

New (very minimal) Internet-Draft submitted: ASN Prefix-based Addressing for IPv6

"This document describes a method and policy for ASN prefix-based addressing for IPv6."

If this goes anywhere I expect it will change, and grow, markedly [โ€ฆ]

27.11.2025 03:02 ๐Ÿ‘ 0 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 0
Original post on mathstodon.xyz

A Brief, Incomplete, and Mostly Wrong History of Programming Languages
James Iry; Thursday, May 7, 2009

1801 - Joseph Marie Jacquard uses punch cards to instruct a loom to weave "hello, world" into a tapestry. Redditers of the time are not impressed due to the lack of tail call recursion [โ€ฆ]

23.11.2025 02:42 ๐Ÿ‘ 5 ๐Ÿ” 1 ๐Ÿ’ฌ 1 ๐Ÿ“Œ 1
Original post on nonexistent.ca

After a couple of evenings I think I've mostly rebuilt all my compose manifests and lost volumes. Pretty painful error in time wasted setting things up again, but didn't really _lose_ anything. At least now I have Overseer up and running for all that effort.

Learned my lesson. Now taking hourly [โ€ฆ]

23.11.2025 09:32 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0

In more minor issues with Trixie migration, the `restic` package maintainer apparently decided to just silently remove Azure support because of packaging difficulties.

22.11.2025 20:21 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

So that sucks, I upgraded my storage server to Debian Trixie. Sloppily, apparently, since I seem to have lost all my docker containers and volumes somehow. I guess some interaction between the Debian Docker package and the Docker CE package during the upgrade.

Without backups since I never got [โ€ฆ]

21.11.2025 22:03 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
wakko (@wakko@mastodon.cloud) Looks like #Qualcomm just killed #Arduino with an #enshittified TOS https://bsky.app/profile/ptorrone.bsky.social/post/3m5wcakoip22u

I am Jack's complete lack of surprise.

RE: https://mastodon.cloud/@wakko/115572609162243537

18.11.2025 21:01 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0
Original post on nonexistent.ca

So far we've only synchronized the PHC on the NIC - the system can observe this clock, and it can be used to precisely timestamp network packets - but it is not coupled to the system's timekeeping yet.

In order to do that, we need a second control loop. In my current setup, that role is taken [โ€ฆ]

18.11.2025 08:58 ๐Ÿ‘ 0 ๐Ÿ” 0 ๐Ÿ’ฌ 0 ๐Ÿ“Œ 0