press any key to skip

Nav

1
2
3
4
5
6
7

Jump

Select

~

Prompt

M

Theme

adam@looney:~$ whoami

looney.eu

INFRASTRUCTURE / AUTOMATION / DEVELOPMENT

adam@looney:~$ cat tagline.txt

Fixing things that don't need fixing and breaking things that didn't need breaking.

I script workflows, deploy infrastructure, preach vim over nano, get unreasonably excited about open source tools and appreciate topping all that off with well-spent game time among friends.

adam@looney:~$ ls sections/
adam@looney:~$

Use keyboard to navigate → · press ~ for the prompt, try "help"

adam@looney:~$ ls ~/contact/

GET IN TOUCH

email [email protected] Get in touch via email
linkedin linkedin.com/in/a-loon Connect on LinkedIn
github github.com/NocFA Check out my projects on GitHub
codeberg codeberg.org/noc Check out my projects on Codeberg
forgejo git.nocfa.net/NocFA Browse my self-hosted Forgejo instance
last.fm last.fm/user/alooneylad See what I'm listening to
adam@looney:~$ neofetch

INFO

──────────────
location Ireland sector IT focus L3 support, system administration (mostly Linux-based), networking, automation, scripting, frontend development interests gaming, music, automation, hardware os Windows, Linux & macOS editor vim (headless unix systems) · jetbrains fleet & phpstorm
Tech done to a looney's standard — still figuring out exactly what that means. Keeping things running, or perish trying.
adam@looney:~$ now-playing --user alooneylad
now playing
adam@looney:~$ watch -n0.5 homelab-status

Infrastructure

connecting...
adam@looney:~$ ls ~/projects/

Projects

MDSF Crew pre-launch

Crew-for-hire platform for Star Citizen. Recruiters post operations and assemble crews. Crew members list availability and build reputation through review-based rankings. Organisations manage squads, ranks, and fleets -- all tied to RSI-verified identities.

MDSF Crew landing page
frontend SvelteKit 2Svelte 5GSAP
backend Fastify 5TypeScriptNode.js 22
data PostgreSQL 16Drizzle ORMRedisPgBouncer
infra Cloudflare TunnelStreaming ReplicationDocker
auth Argon2idTOTP 2FADiscord OAuth2CSRF
payments StripeMulti-currencyWebhooks
integrations Discord BotBrevo SMTPRSI Scraping

features

Operations board with role-based crew assembly, squad management, and ship assignment
Review system with per-role experience tiers (Rookie through Elite)
Organisation system with RSI verification, persistent squads, ranks, alliances
Ship library (247 ships) with fleet management and org fleet pooling
Real-time notifications via WebSocket, Discord bot with slash commands
Subscription tiers, donation system with Hall of Fame, multi-currency pricing
Admin panel with moderation, audit logs, policy management, automated backups
Support ticket system, GDPR data export, account deletion
foo_gifart open source

A foobar2000 component that renders animated GIF files as album art. Drop it in, point the artwork panel at a .gif, and your covers come alive — static art is so last decade.

GIF
Track Title
Artist Name
language C++
platform foobar2000Windows
sdk foobar2000 SDKWIC
gindexer open source

C++ library that indexes a local music collection and resolves cover art by track metadata. Scans directories on startup, watches for changes, and returns matching cover art fast enough for real-time use in discord-music-presence.

language C++17
storage In-memoryLMDB
libraries TagLibefswlmdbxx
Segments open source

Single-binary task and project manager built as a faster replacement for Beads. It combines an LMDB-backed CLI, live web UI, and MCP tools for agent-friendly planning across projects.

Segments task list interface
language Go
storage LMDBJSONL export
surfaces CLIWeb UIMCP
shellwhy open source

CLI that answers "why is my shell doing this?" — inspects a shell session, applies per-shell startup-file rules, safely parses source statements, detects tooling hooks (starship, direnv, nvm, ...), and labels every file with a confidence level instead of pretending static analysis can prove runtime behavior.

shellwhy icon — a terminal with a question mark
language Rust
shells bashzshfishsh/dashkshtcshnu
output humanplainJSONstrace trace mode
noc-homelab open source

Five service hosts spanning macOS and Linux, connected over Tailscale, with a Windows gaming and generation machine alongside them and shared Kopia storage on noc-wardrobe. Runs media, communications, game servers, a knowledge archive, local models, and monitoring.

noc-homelab dashboard
infra TailscaleDockersystemdlaunchd
services Matrix/SynapseEmbyNextcloudGatus
language PythonBash
$ less blog/ad-and-dhcp.md
My experience with DHCP within Active Directory

What the fuck is a DHCP, Adam?


If you have to ask this question, I both pity you and envy you equally. DNS is the root of all problems in IT, if you think something is broken, it is not “something”, it is DNS. DHCP is its slightly less evil cousin, and the one this post is actually about, because sometimes I confuse the two as within intranet, they’re not all too far separated.

There is only one other thing hated as much, that being IPv6, thankfully I haven’t gone through enough hell with that yet to make a post about it, but it’s certainly lurking in the darkness to absolutely obliterate my joy in life.

Just so we’re on the same page, DNS is what gets you from google.com in your URL to a webpage with a search box. It translates a domain name to an IP so your browser can render a page or your terminal can get a ping reply, it stands for Domain Name System and is one of the most ancient relics the internet relies on. If global DNS stopped working tomorrow, everything as you know it on the internet would also stop working, bar a handful of applications that have prepared for doomsday.

DHCP is the thing that hands your device an IP address in the first place, so it has somewhere to be found at. Dynamic Host Configuration Protocol, it’s the reason you don’t have to type an IP into every laptop, printer and audio mixer you plug into the wall.

What are they like to work with?


Generally speaking, they just work, these are standards that are almost older than most people reading this article I’m sure, so they’ve had time to mature and become mostly reasonable.

However, even in a best case scenario, it is simply a leap of trust that the old bones of industry will carry on and work as intended. Even more so when we delve into the AD and legacy system support.

You just need to expect it to work in fundamental ways, if it doesn’t, confusion ensues.

Where does AD (Active Directory) play a role?


Just like with the global internet, most intranets (private networks) rely on some form of local DNS to operate key functions or to allow sysadmins like myself to access key resources without having to remember IP addresses.

We take a piece of hardware, say an audio mixer, and we tell the AD DHCP server that whenever it sees this device, always hand it 10.0.0.4, that’s a reservation. Then we tell DNS that mixer-001 points at 10.0.0.4. I can then access this audio mixer from anywhere with network access to that IP by typing in the easy to remember name instead.

This is also very important for mission critical servers, certificates are issued for hostnames rather than IPs, so if DNS stops resolving the name, clients can no longer reach the service by the name the cert is valid for, and the application falls over.

All in all, DNS and DHCP play just as important a role in intranets as they do on the world wide web.

Are there any gimmicks with Windows and DHCP one should know?


Oh god yes, yes there are… The whole reason for me writing this blog is purely because of my utter rage when I found out Windows is still using legacy MAC address formatting. Here was me, trying to create a reservation, it asking for the MAC address to point the reservation at, I type it in within the standard used by nearly everything on the planet, this being 12 hex characters, 6 octets, each a pair separated by a colon, e.g 12:34:56:78:91:01, but to my dismay, Windows has decided that they should use a separate standard compared to just about every other operating system and application out there.

Microsoft fucking Windows has decided that rather, you should just drop the colons, either use dashes or just raw dog your MAC address straight into the field, so instead of nice orderly octets you get 123456789101 And just you wait, you think that’s where the bullshittery stops? OH NO, mind you, when you then do an arp lookup within Windows to check IPs and their subsequent MAC addresses, you would think they’d respond in the same format they just made you type, right?

NOPE, FUCK YOU! Instead, you get a DASHED variant of a MAC address like this 12-34-56-78-91-01 This is where I almost rolled over from laughter upon seeing this absolute nightmare.

In fairness to Microsoft, and I hate saying that, Cisco does 1234.5678.9101 which is somehow worse I found, so the “everyone else agreed on colons” argument has one very large hole in it. Doesn’t make it any less archaic though, I understand not wanting to change underlying systems from the Windows NT era, but not even accepting the format everything else adopted 20 years ago is beyond believable, even for Microsoft.

My overall thoughts managing DHCP within AD.


It’s alright, if you completely ignore the absolute bastardisation of MAC address formatting, the actual MMC snap-in and GUI management of DHCP is pretty good and you can reliably find devices on specific VLANs that are un-reserved and get them a reservation very easily when it’s all set up nicely.

If you have the job of sculpting a network from scratch, please ensure to do yourself a favour and make separate DHCP scopes for separate major networks, e.g AV, Staff, etc, this makes your life a lot easier down the line.

I appreciate it, but I am disgusted by it.

Warmly, Adam.

adam@looney:~$ tree ~/wiki/

WIKI

wiki /5 projects · 14 pages
Per-application docs

Documentation for each project, fed from Obsidian as markdown. Pick a page from the tree — or jump straight in:

segmentssingle-binary task & project manager · 6 pagesshellwhyexplains which startup files control a shell session · 2 pagesnoc-homelabfive service hosts, a gaming workstation and shared monitoring · 3 pagesgindexerC++ music indexer that resolves cover art from track metadata · 2 pagesfoo_gifartanimated GIF album art for foobar2000 · 1 page

From anywhere on the site: man segments in the prompt lands here.

blog/ad-and-dhcp.md