Sign in

Ada Lündhé

@adalundhe.dev
3.4K followers 1.6K following 2.9K posts

Author of Hedra performance testing framework. Software unengineer. Walking SEV0. 🏳️‍⚧️ Trans (they/them) and general music production nerd. Neurodivergent.

PostsRepliesMedia
Ada Lündhé @adalundhe.dev · 25/04/2026
Belt to fucking ass.
Democratic Party Senate candidate disaster Mary Peltola absolutely fucking wrecking Republican Senate candidate Dan Sullivan by seven points in another poll.
061
Ada Lündhé @adalundhe.dev · 31/12/2025
I MISS YOU SO MUCH. I don’t know if I shared here but we got a second pup start of this year - say hello to Teddy!
This is Teddy! Our Goldendoodle!
120
Ada Lündhé @adalundhe.dev · 27/12/2025
Christmas? I think you mean COMPRESSOR-mas!!!
A Sebatron VMP4000e quad preamp, WesAudio ng78 stere FET compressor, WesAudio ngBusComp compressor, Dangerous Music Compressor, Craneborne Audio HE2 Legacy Edition Harmonic EQ, and Erica Synths x HexInverter HexDrums drum machine I got for Christmas.
250
Ada Lündhé @adalundhe.dev · 01/09/2025
Congrats MyPy - you earned my first rage comment committed in code ever you absolutely fucking rancid shit sandwich.
I can’t even summarize this. It’s a three paragraph essay in code comments I wrote that summarizes to “fuck MyPy”.
2261
Ada Lündhé @adalundhe.dev · 28/07/2025
I haven’t updated on Hyperscale in a while - but 0.6.1 is out and adds an FTP client!
The FTP client added to the Hyperscale performance testing framework! Included by default, no additional dependencies required!
000
Ada Lündhé @adalundhe.dev · 14/06/2025
HAVE YOU NOT SEEN?
The VERY ODDLY ATTRACTIVE HORSE MAYOR in Zootopia 2. Seriously. This is Fabio but as a horse dude. PIXAR WHAT WERE YOU THINKING.
360
Ada Lündhé @adalundhe.dev · 11/04/2025
After years of saying things like: - “Distressors are for audio engineers who think fucking missionary is kinky” - “I need a pair of hardware Distressors like I need three dicks” and: - “I’m not mixing 90s rock for divorced Gen X dads” I finally caved and bought a pair of Distressors.
A pair of Empirical Labs RL8X Distressor compressors which I FINALLY bought after years of making excuses. They’re wildly flexible and sound great, and I’m more than game to admit I was wrong.
380
Ada Lündhé @adalundhe.dev · 05/04/2025
I’ve become moderately obsessed with little lunchbox preamps and DI boxes. Here’s a Universal Audio 610 Solo tube preamp and two Avalon Designs V5 solid state class A/B preamps!
A Universal Audio 610 Solo tube preamp and two Avalon Designs V5 solid state class A/B preamps! They’re small little “lunchbox” preamp/DI units that are much easier to lug around between rooms compared to large rackmount studio preamps!
040
Ada Lündhé @adalundhe.dev · 31/03/2025
If anyone’s curious, this is how you win someone’s business forever. Shout out to Grace Design for a record turnaround of one week and charging only $100+ shipping to fix my $4k m905 monitor controller’s first issue ever.
Grace Design in an email to me explaining they did more than just fix the issue with m905, they upgrade key components to the power supply:

“I did get your unit fixed up and just ran it through performance testing, passed 100%. I'll be getting it buttoned up and ready to go today, will send the invoice soon. There was a bad amp in the DAC and also one of the cue input amps was bad. Replaced the bad parts and upgraded the power supply caps. Should be good!”

They’re awesome!
090
Ada Lündhé @adalundhe.dev · 24/02/2025
Hyperscale’s new SMTP client! Complete with an optimized Email type, support for TLS and SSL, and plain/login/CRAM-MD5 auth!
Hyperscale’s new SMTP client running a “ping” one-off command that is sending a “ping” test email to a Gmail address, complete with TLS secure socket and auth!
030
Ada Lündhé @adalundhe.dev · 17/02/2025
Half the reason I ended up writing a performance framework was because existing options made extensibility abject pain. Hyperscale aims to make implementing your own reporting or client easy. 🥰
An example Client plugin for Python performance testing framework Hyperscale! Three classes are defined. The first inherits from CustomResponse (required for Hyperscale to know it’s a custom Client) and implementing the context and success method overrides. 

The second the actual custom client which returns an instance of the CustomResponse type when its “go” method is called, and the third the workflow which contains a method called “login” which calls the custom client class’s “go” method. 

Note that the workflow “login” method must have a return type annotation of the CustomResult type we defined for Hyperscale to know the method returns a call to a custom client!  A custom Reporter for the Hyperscale performance testing framework, which inherits from the CustomReporter class and implement the required connect, submit_workflow_results, submit_step_results, and close methods.

This method is then passed to the Test Workflow’s “reporting” class attribute, which is used by the Hyperscale framework to pass either a provided ReporterConfig type object to an existing reporter type supported by Hyperscale (there are thirty one), or an instance of a class inheriting from the CustomReporter base abstract class.
030
Ada Lündhé @adalundhe.dev · 15/02/2025
Oh hey Hyperscale has a Docker image. ❤️
The Hyperscale performance testing framework Docker image on Docker Hub.
010
Ada Lündhé @adalundhe.dev · 15/02/2025
Hear me out. No.
Kendrick Lamar grinning a hole into Drake’s soul performing Not Like Us during the SuperBowl.
1190
Ada Lündhé @adalundhe.dev · 11/02/2025
The world is scary so I set up a small studio rig entirely consisting of gear from pre-2010 (excluding a Dell m6700 laptop). - Arturia Origin - VSynth XT - Access Virus TI - x2 Focusrite Liquid Channel - Focusrite Liquid Mix - Akai S6000 - E-MU E4XT - Cakewalk VStudio 700 - Focal Solo BE
A small studio rig consisting of:

- Arturia Origin
- VSynth XT
- Access Virus TI
- x2 Focusrite Liquid Channel
- Focusrite Liquid Mix
- Akai S6000
- E-MU E4XT
- Cakewalk VStudio 700
- Focal Solo 6 BE
- Dell M6700 Precision laptop

I made this studio as a small rig to have fun making music using older kit.
0140
Ada Lündhé @adalundhe.dev · 05/02/2025
Without downloading any new pictures, where are you at mentally
Maria from Castlevania Nocturne saying “Most of what’s bad in the world is because of stupid old men”.
250
Ada Lündhé @adalundhe.dev · 02/02/2025
I HAVE NOT PICTURES OF THE SKY BUT I HAVE PICTURES OF NEW DOG (on right)! Toby and Teddy say hello!
Our two dogs, Toby (a black shepherd) and Teddy (a golden doodle).
0100
Ada Lündhé @adalundhe.dev · 02/02/2025
THE MONTAGE M8X IS HERE AND IT A CHONK
A FREAKIN YAMAHA MONTAGE M8X KEYBOARD SITTIN THERE GLOWIN BRIGHT LIKE COME PLAY ME YOU FUCKER
1140
Ada Lündhé @adalundhe.dev · 01/02/2025
Verifying your requests work prior to launching millions of them during a run is usually a good idea! I’m adding a “ping” command to Hyperscale that lets you run one-off HTTP1/2/3, GraphQL/GQLH2, UDP, and Websocket requests to help check before you tests! 🥰
Terminal output from Hyperscale’s new “ping” command for an HTTP 1.1 GET request to https://httpbin.org/get. The output shows the number of redirects taken, time the request took, status/error message, the full url, request method, HTTP status code, a table of request/query parameters, a table of response headers, and a table of response cookies.
020
Ada Lündhé @adalundhe.dev · 30/01/2025
Assert statements and assert-driven development are powerful tools. Hyperscale happily facilitates this, allowing you to write your tests without any additional API components.
An example Hyperscale performance test written in Python, showing a single Workflow class called Test with two “step” actions, login and new_user (with new_user dependent upon login).

Each step is a method on the Workflow class. The login step makes an HTTP 1.1 GET request to https://httpbin.org/get and then uses Python assert statements to check that the response status is in the 200 range. The new_user step makes a  POST request to https://httpbin.org/post with simple JSON data and then checks that the response status is in the 200 range using similar Python assert statements.The Hyperscale performance testing framework UI output of running the test of the previous image.
030
Ada Lündhé @adalundhe.dev · 25/01/2025
And fin.
Me continuing to tell Zuck to choke on dick.
71722
Ada Lündhé @adalundhe.dev · 25/01/2025
I’ll help. ❤️
Me chewing out zuck on his own platform in his direct mentions like the bitch he is
81437
Ada Lündhé @adalundhe.dev · 21/01/2025
In practice you’ll likely want to create a suite of a handful of models and just reference them, passing different messages. This facilitates that. Tools should bring joy. Excessively repeating oneself doesn’t contribute to that.
Python code showing the async logger’s ability to specify a set of message types, with each type having a default, and then make calls referencing that message, passing a varying message as required as opposed to creating a new Entry object with the same general values (only the message varying) each time.
020
Ada Lündhé @adalundhe.dev · 21/01/2025
I think my setup reflects that I’m a gremlin (and 1000% okay with it).
My home studio!
360
Ada Lündhé @adalundhe.dev · 21/01/2025
The ears want you to know you’re loved. ❤️
Our two dogs, Teddy (a golden doodle) and Toby (a shepherd) being cuddle monsters.
2100
Ada Lündhé @adalundhe.dev · 20/01/2025
Let’s hope attempt two works out. 🙄
My second attempt at buying a Yamaha Montage M8X after Sam Ash cancelled my order due to it being out of stock.
040
Ada Lündhé @adalundhe.dev · 20/01/2025
Oh fuck you, Sam Ash.
Sam Ash cancelling my order because they were actually out of stock.
110
Ada Lündhé @adalundhe.dev · 20/01/2025
Making async logging that sucks less. 🥰
The Python async logging library I’m working on!
2130
Ada Lündhé @adalundhe.dev · 20/01/2025
Hyperscale offers a unique twist on Hedra’a reporting functionality that allows for lazy evaluation of reporter configuration, meaning you can perform additional authorization and programmatic configuration of your reporting options for a workflow.
A Hyperscale performance test (written in Python) demonstrating lazy evaluation of reporting configuration. In this case, the JSON and CSV configuration objects will only be generated when the asynchronous static function wrapping then is called.
151
Ada Lündhé @adalundhe.dev · 18/01/2025
@bennjordan.bsky.social I DID A THING.
A Yamaha Montage M8X workstation I bought on Reverb.
2260
Ada Lündhé @adalundhe.dev · 17/01/2025
Toby officially has a big brother. Meet Teddy!
Toby, a black Shepard mix on the left with Teddy, a golden-doodle mix, on the right. Both laying on the couch.
0130
Ada Lündhé @adalundhe.dev · 14/01/2025
“We’ll extend your warranty only if you let us have all your PII” is really fucking weird for an audio company Bang and Olaufsen.
Bang & Olaufsen being weird pieces of shit and requiring you accept their marketing agreement to extend your warranty.
120
Ada Lündhé @adalundhe.dev · 14/01/2025
Creating safe CLIs should be as simple as this.
Python code for a CLI program to set log level. The code uses Python type annotations - in particular an object called an AssertSet that takes a single type parameter argument containing a set of values represent the valid values and asserts that the value passed to the CLI option is a member of the said set.The output from running the CLI code in the previous image, which shows a helpful error message stating the value passed is not valid and indicating valid values to be passed. In this case stating “debusg” is not a supported value for for the log_level option and that debug, info, warn, and error are the supported values.
080
Ada Lündhé @adalundhe.dev · 11/01/2025
I have three! An Ernie Ball MusicMan five-string, a four-string Suhr P-Bass, and a five-string Mayones Viking!
A Ernie Ball MusicMan 5-string in Candyman RedA Suhr P-bassA Mayones Viking five-string bass
470
Ada Lündhé @adalundhe.dev · 11/01/2025
Investing in writing tools means getting to cut down the code required for the performance framework’s “run” command from almost 300 lines for Hedra to 33 lines for Hyperscale.
Hedra’s (the old version of the performance testing framework) code for the “run” command, clocking in at almost 300 lines of Python.Hyperscale’s run command, accomplishing exactly the same and clocking in at 33 lines of Python.
050
Ada Lündhé @adalundhe.dev · 10/01/2025
Abusing type inference in Python for fun and profit. You can introspect literal types and use the derived values to do everything from declaring type conversions to REGEX patterns to search.
A ripgrep-like example program called emailgrep writing using a custom Python CLI library I wrote. The program uses introspection upon Python. Type hints to facilitate type conversion, regex patterns used in matching, and more. It is also entirely in asyncio.The help message from the emailgrep program, which shows a missing required option (flag) error, the program name and all available options, the program description, and per-option long/short flag with data type and description text. It is also styled entirely using ANSI codes.The output from running the program, which finds 24 emails across all files ending in .txt.
160
Ada Lündhé @adalundhe.dev · 10/01/2025
Building a CLI library! 🥰
An example help message of a Python, asyncio based CLI library like Click, which allows you to build command line applications in a typesafe way and with sophisticated styling options. The help message shows a helpful message for a missing option (flag) that is required, the command name with all options listed, and the command description. The help message also shows each option’s short and long flag (POSIX style), associated data type, and description. The command had sub commands, these would be shown and listed as well.
070
Ada Lündhé @adalundhe.dev · 04/01/2025
Oh hey. I think it’s starting to work.
Terminal output from the new Hyperscale performance testing framework - including realtime running stats.
2100
Ada Lündhé @adalundhe.dev · 02/01/2025
I am going to have a fucking aneurysm
A Datadog error saying change is not one of change, name, present, past…WHEN IT ABSOLUTELY IS.
140
Ada Lündhé @adalundhe.dev · 31/12/2024
HOLY SHIT THAT’S BADASS!!! I’ve been working on an asyncio Python library that lets me render animated terminal graphics in pure ASCII. 🥰
An example of the terminal graphics lib I’ve been building used to create an example dashboard, including a progress bar, text, counter, total rate, windowed rate, live-scaling and updating scatter plot, and a table with auto scrolling headers/rows and conditional data coloring.
131
Ada Lündhé @adalundhe.dev · 23/12/2024
I did pretty well! git-wrapped.com/profiles/ada...
A gitwrapped for 2024 showing 2802 commits, 110 stars earned, and a top language of Python!
220
Ada Lündhé @adalundhe.dev · 15/12/2024
This is the Mood Guitars Moodbender, and it is *lovely*. ❤️
A Mood Guitar’s Moodbender - a six string rustic-styled parlor acoustic-electric with the nylon Tune-O-Matic bridge, standard running settings.
1130
Ada Lündhé @adalundhe.dev · 13/12/2024
Anyway, AMS absolutely fumbled this. Congrats on loosing a $4k sale.
A Sweetwater receipt for a $4000 USD Taylor 724CE acoustic guitar.
120
Ada Lündhé @adalundhe.dev · 13/12/2024
This guy has gone from weird 80s synth dude to making not-so-subtle death threats against boutique synth manufacturers and SWERF shit in like…two months.
An Espen Kraft YouTube thumbnail showing a noose and saying “To: Espen Kraft, From: Sequential”
470
Ada Lündhé @adalundhe.dev · 13/12/2024
(For reference!)
A Mayones Viking 5 Ash/Alder bass with blue.
010
Ada Lündhé @adalundhe.dev · 12/12/2024
I continue to be a menace.
Me asking my lovely Doordasher “how’s the weather?” in response to their message stating they’ll answer any questions.
140
Ada Lündhé @adalundhe.dev · 04/12/2024
Josephson microphones are absolutely secret weapons. These C42s deliver balanced and detailed sound, superb self-noise, and are small enough to fit in my pocket. ❤️
A matched pair of Josephson C42 small diaphragm condenser microphones.
010
Ada Lündhé @adalundhe.dev · 04/12/2024
I don’t have Spotify, but similarly! DnB remains undefeated as my music of choice for runs!
Top artists listened to this year - Mark Knopfler, Noisia, The Upbeats, Calyx, and The ProdigyTop songs listened to this year include - House Breaker by Calyx, Bagleys VHS by Spor, Dead Limit by Noisia & The Upbeats, and Smack My Bitch Up by The ProdigyTop albums listened to this year include - The Human Resource by Dieselboy, Substance D by Dieselboy, Pull Up/Feel the Sway by Calyx, Music for the Jilted Generation by The Prodigy, and Welcome to Violence by Hive, Keaton, Echo, & Gridlok
2100
Ada Lündhé @adalundhe.dev · 02/12/2024
I WILL COUNTERACT THIS BY POSTING 1000% MORE BEST DOGGO.
Toby (our dog) lying on the new rug, happy as can be.
120
Ada Lündhé @adalundhe.dev · 30/11/2024
AND THEY SAID IT COULDN’T BE DONE. The HUM Audio LAAL (Look Ahead Analog Limiter) has arrived!
A HUM Audio LAAL (Look Ahead Analog Limiter).
040
Ada Lündhé @adalundhe.dev · 28/11/2024
For desert we’re having famous mastering engineer Bob Katz’s Whitestone P331A Tube Loading Amplifier. 🥰
Famous mastering engineer Bob Katz’s Whitestone P331A Tube Loading Amplifier
170