When you want to create an exception to a add_header directive in nginx that is declared in an include, just declare it before it, as successive declarations of the same header are ignored. #til
Sander van Dragt's Notes
-
-
On personal goals
Today, I've realised my overarching goal as a software engineer: create digital experiences that help improve mental health for the people using them.
Unwittingly I myself have trended towards community software where capitalism, media manipulation and corporate influence is minimised (open-source, privacy first, self-hosting), and writing software with these values in mind.
In my experience, capitalism and corporate software distort the incentives of software for the financial benefit of it's backers. Media manipulation uses information overload and content agendas to influence the news cycle and change the common values we live by. This ultimately is more important to them than the wellbeing of the person experiencing the artifact, but not to me.
How have I been unwittingly trying to create positive user experiences:
- Having ownership over your content through blogging software that does not demand your attention.
- Creating a safe space for content consumption of trusted resources.
- Reducing friction in everyday tasks also benefits mental health and reduces frustration.
- Having peace of mind working on technologies that avoid complexity,
- Building foundational projects to help understand how to think about replacement products that contain these values.
- Helping people make time for oneself.
-
Made a Linux shell script called BreakAware that calculates the time since your last break as I couldn't find an alternative to Pandan (macOs).
BreakAware is a lightweight and user-friendly Fish shell script designed to help you maintain a healthy work-life balance. It tracks the time since your last break, whether it's due to PC sleep, hibernation, logout, or session locking. BreakAware empowers you to be more aware of how you spend your time and encourages you to take regular breaks, enhancing your productivity and well-being.
-
If you want an example of why we need a viable open source phone ecosystem, try and share some assorted music files from your non-Apple pc to another person’s iPhone. #technology
-
Updated my Notetaker tool rundown, with a new current pick. https://brain.vandragt.com/books/workflows/page/notetaking-tools
-
RAM Usage Nerdery
I've been wondering how much RAM I used on my 32GB Ubuntu derivative workstation, mainly used for web development using docker containers and light vm experimentation. Yes when I spotcheck with
htopI have enough RAM free, but do I actually need 32GB, when I'm in the market for a new device or an upgrade?It turns out, yes I do ideally.
The setup
On startup I've been running this script to save the memory stats into a csv file:
#!/usr/bin/env bash while true do free | grep Mem | tr --squeeze-repeats ' ' ',' | tee --append ~/memory.csv sleep 10 doneToday (after 15 days) I pulled the stats into a database and browsed it:
sqlite-utils insert /tmp/mem.db memory-stats memory.csv --csv datasette /tmp/mem.dbSorting by the available column shows that the lowest value I get is 11.9GB available to be freed.
The available column is the sum of the Free column plus the portions of the Buffers and Cache columns (or the Buff/cache column) that can be relinquished immediately. The Available column is an estimate, not an exact figure. https://www.howtogeek.com/456943/how-to-use-the-free-command-on-linux/#the-available-column
I think it's a reasonable measure. This system does not have zram memory compression enabled, that would help probably.
It has 4GB swap, I did not measure it's usage.
Hopefully this review helps for people who want to measure their own usage.
#linux
-
You can search GitHub wikis by using the search bar and then filtering by wiki. That's almost as nice as keeping your notes in a Lamb instance ;-) #TIL
-
We really now need a norobots.txt / terms of use for a persons identity to centrally state how a persons information can be not used by big tech. Something linked to indieauth perhaps?
-
Anchor bugs in Blink engine browsers
I've been looking into an issue for work where Google Chrome loads a URL ending in an anchor and scrolls to the incorrect position on the page. Imagine linking to the third heading on a page and Chrome scrolling to a indeterminable position above that. Firefox is not affected.
After ruling out all JavaScript and the particular HTML source code, it turns out that disabling the
html { scroll-behavior: smooth; }CSS style fixes the issue. My theory so I suspect there is a race condition between determining the length of a page and position of the element while scrolling? This results in bugreports such as "Anchorlink going to the wrong place"Regular behaviour is also partially broken
What's more interesting is that blink based browsers are unable to scroll to the anchor even after the page is already loaded!
Testcase:
- load https://downloads.vandragt.com/test-long.html#test This page has an id attribute test set on the header but is otherwise plain text. Any other page will also work though.
- The page loads and the scrollposition is correctly set at the test header.
- Scroll up a paragraph or more than a screen, and refresh the page. Notice the scrollposition isn't set.
- Optionally refresh many times, or press the Enter key in the address bar to attempt to reload the page. However the scroll-position is now permanently broken until you navigate away from the page.
This results in bug-reports such as "It only goes to a place when you first enter the URL to the browser, it doesn’t go to the same place when you re-fresh the page". Together this erodes the trust in the application and honestly it's hard to believe this has not been more widely reported.
There's probably an elaborate JavaScript solution but in my opinion a browser's bugs should be fixed by the browser, because in the future when the browser fixes itself a workaround might result in incorrect behaviour. #technology
-
Lamb 0.3.0
Introducing Lamb 0.3.0 - Literally Another Micro Blog. This release brings new features, improvements, and bug fixes, making blogging even easier. The update includes Docker support, an optional
config.iniwith support for menu items to customize your installation, improved documentation, and more.Lamb offers a simple, self-hosted single-author blog with a Twitter-like interface, friction-free Markdown entry, discoverable Atom feed, hashtags support, and a 404 fallback URL feature.
Download the latest release from GitHub and provide your valuable feedback. #lamb #projects