Needed a way to open a bunch of text links in browser tabs, so I generated a script. #projects
Sander van Dragt's Notes
-
-
It seems sometimes I'm researching and want the previous tab to become active after closing a deep dive, and other times I'm reviewing the tabs and want the tab to the right of the active one to become active. Is there any way to codify this I keep changing my browser's settings. #technology
-
Cut a sharp end to a plastic straw. It makes for a good phone charging port cleaner! Actually, it worked better than a tooth pick for me. #technology
-
OK I figured out a very useful #Godot debugging trick: conditional breakpoints are not supported natively but can be added to your code.
- Set an if statement for the condition or expression you want to break on.
- As the code block for the condition being true add
passand set a breakpoint on this line. - After hitting it, all the debugging tools are available.
-
PHP can sometimes be unintutive:

-
Lamb 0.5.2
Lamb is Literally Another Micro Blog -- Barrier free super simple blogging, self-hosted.
This is a tidy up release, with minor functional changes:
- Menu items are no longer showing in timeline
- More secure sessions
- Deferring scripts for improved performance
- Lowercase tag pages for canonical SEO
- Add 'published' date to Atom feed entries for better aggregation
Originally written on lamb-releases. #lamb #projects
Via lamb-releases -
#til In #Godot when you attach a node with a scale as a child of one that doesn't support scale (
NodevsNode2Dfor example), there is a flicker as the card is rescaled. Convert the node to a scale supporting type to fix this. -
#til In Godot, if a scene is instantiated at design time and a child is added to it, does the child belongs to the scene whose tree is currently open, or the scene it's attached to?
When duplicating a node (including a scene) at runtime it is the node tree where the node sits that is duplicated, so it includes the child. But if the scene is marked as a
InstancePlaceholder, andcreate_instance()is called at runtime, it creates a instance of the scene, and any attached children have to be duplicated and attached to the instance with code. #Godot -
#til In Godot, when you have a project containing a node
MyNodethat is a scene itself, andMyNodecontains two child nodes within the scene and one is added as a child ofMyNodein the project, the number ofget_children()that a script belonging to the root node of theMyNodescene returns is 3. #godot

-
Additional housekeeping routine prior to upgrading Ubuntu server
I upgraded one of my personal Ubuntu servers yesterday and with the knowledge of a good daily backup I knew I didn't have to prepare and see what I would encounter. This particular server has upgraded twice before, so has some custom and legacy configuration. After the third try I was successful and I wanted to share the following tips that helped me smooth out the upgrade process.
Clean up apt sources
The upgrade process will disable all third-party sources from your system to avoid complications updating system software, so it is helpful to be able to list all disabled sources. To aid in this I found it helpful to clear out the apt sources files before the upgrade my self.
In particular, in preparation of the upgrade, I removed .distUpgrade and .save files created by previous upgrades. I then removed all commented lines from the remaining source files starting with
# deb, then deleted any 0 byte files which have no content:find . -type f -size 0c -delete.This made it obvious what files had changed and what those changes are, that I needed to review. Typically by running
find . -name "*.list" -exec sed -i 's/jammy/noble/g' {} \;after the upgrade was complete.Update custom apt sources / PPAs before upgrading
It turns out I had Nginx and MariaDB installed pinned to a particular version that was no longer supported on the target Ubuntu Server version, this caused one upgrade to install the system versions which were incompatible with my configuration. On a second go, I first upgraded the software to the latest supported version for my legacy Ubuntu version, which updated the apt sources to something that was better supported.
Set DNS servers
Somewhere Ubuntu switched to systemd DNS management and I hadn't run
sudo nano /etc/systemd/resolved.confand set a DNS server, resulting in not being able to resolve any domains after the upgrade. I was able to set and verify theResolveDconfiguration before the upgrade as the system service was already installed. After this, I encountered no issues.