How to mitigate attacks on WordPress when running under a full CDN like CloudflareThe most effective way to prevent bots from spamming your server is to drop them at the firewall. This is generally achieved using tools…Sep 19Sep 19
Premature optimization, where software thrives unless you kill it first — a tale of Java GCWill a LinkedList be faster? Should I swap the `for each` with an `iterator`? Should this `ArrayList` be an `Array`? This article came to…Mar 30Mar 30
How to calculate P&LCalculating profits and losses from a mathematical perspective is trivial, just subtract all things sold to all things bought. The…Mar 7Mar 7
Interactive Brokers TWS API — and yet it works!If you glance over the forums, it looks like this software was forged in the fires of hell. Follow me in a journey to the depths.Feb 231Feb 231
SSH, Mosh and tmuxIf you’re using secure shell to remote, Mosh and tmux should be part of your arsenal.Oct 30, 2023Oct 30, 2023
Pepsi broke the contractSome APIs change because the world evolves, some because they are fundamentally broken from the start; looking at you Thread.stop!Mar 20, 2023Mar 20, 2023
Run bash commands from JavaAs one of Java paradigms is “write once, run anywhere”, and calling external software makes that much more complicated, you’ll want to…Mar 1, 2023Mar 1, 2023
Sony WF-1000XM4 vs Apple AirPods ProI’ve been lucky enough to be gifted both these earphones, as disappointed previous owners, disposed them my way.Feb 2, 2023Feb 2, 2023
Java: How to get all implementations of an InterfaceHow to list all known implementations of an interface is something that I’m asked a lot. I’m biased towards two ways of doing it.Dec 28, 2022Dec 28, 2022
AutoHotKey, the magic keyboardOriginally published at https://wasteofserver.com on December 2, 2022.Dec 2, 2022Dec 2, 2022