@karolherbst I've heard that typically more energy is used producing the CPU and rest of the computer than the computer will consume over its lifetime. Idk how accurate that is or what the ratio is, but so far I've had good results from buying used computers and sightly upgrading them for cheap. (Ssd and maybe ram too)
My process was:
1. Consult the power performance xy scatter plot on cpubenchmark.net:
https://www.cpubenchmark.net/power_performance.html#scatter-cpu
2. Search engine search for each CPU in the area you are targeting to figure out what kind of computers it was put in and how much they cost used
3. Finally, shop on your local used market for good deals on one of those models. For me, this was EBay.
Personally I was looking for something quite different, I just wanted the cheapest fanless option that would make a reasonably good web server. I ended up buying 10 of these for $300 total, and then spent another ~$600 on ssd and ram upgrades for them. https://git.sequentialread.com/forest/dell-wyse-5070-server
For $100 each they work great!! I've given them to friends and sold some of them for use as a proxmox cluster. Without the ram upgrade they use 2 watts at idle, with the extra 16gb of ram, they use about 6watts at idle.
Obviously this specific model doesn't fit what you want if you care about CPU performance, but I just thought I'd share my process.
@thufie I think I used this 2pass encoding with ffmpeg. The camera being perfectly still (makeshift tripod) really helps cut down on bit rate without losing quality
```
ffmpeg -y -i 'VID_20230723_180912453.mp4' -c:v libx264 -preset slow -b:v 700k -c:a aac -b:a 96k -pass 1 -f null /dev/null && \
ffmpeg -y -i 'VID_20230723_180912453.mp4' -c:v libx264 -preset slow -b:v 700k -c:a aac -b:a 96k -pass 2 rain.mp4
```
@technomancy @SpindleyQ idk if its even pedantic, I think its just toxic 🙃
@technomancy @SpindleyQ this was actually "shell variables" vs "environment variables" on the openrc docs, but yes, I wonder how many times this pattern shows up, search terms banned from docs. I was thinking about starting a list
Lol, yeah... I wonder if this is similar to a different doc I found, where my "add the word permissions to make it searchable" PR was rejected because "they aren't called permissions, they are called file mode"
Or something
@SpindleyQ that would explain why I couldn't find any information about permissions, because on the page that explains the way permissions are represented, they never once use the word "permissions"
@genevieve I had covid before paxlovid existed so I can't comment on that.
I had had the J&J vaccine but it was still kinda rough, like a bad flu. I just had a lot of soup, can't recommend soup enough
"If you stick a knife in my back nine inches and pull it out six inches, there's no progress. If you pull it all the way out that's not progress. Progress is healing the wound that the blow made. And they haven't even pulled the knife out much less heal the wound.
"They won't even admit the knife is there."
Happy birthday to El-Hajj Malik El-Shabazz, called Malcom X. In his honour, at least admit the knife is there.
@karolherbst yeah that works. If its stateless, then rollback should be fine.
@karolherbst most docker-based ci systems (woodpecker, etc) won't allow you to start a whole docker compose out of the box. You would need to set up docker-in-docker or else do some hack like allowing the ci container access to the parent docker machine.
If you want a minimal solution to this, a scheduled task that pulls the repo and runs the build script if there is a new commit sounds good.
In terms of a proper ci system that has VM build agents, I'm not sure what to recommend. All the "modern" or "minimal" ones seem to use docker... So.... Jenkins ? Lol
@akavel I was mostly coming from a usability angle w/ "because". Yes you are right the colon that golang puts in by default takes its place.
To give a more concrete example, instead of the error being "can't display user page" or "file '/opt/myapp/templates/user.tmpl' not found", ideally it would be
"can't display user page because file ''/opt/myapp/templates/user.tmpl' not found"
I suppose
"can't display user page: file ''/opt/myapp/templates/user.tmpl' not found"
is fine too but I prefer the former, I think in some situations it makes it more clear / easier to read. Especially for users who might not be experienced with golang and stuff
@akavel great post and beautiful blog!
I just wanted to add that personally, I've explained this as:
> Error messages should contain the word 'because'.
> Like 'can't do x because y happened'
IMO the important part you are commenting on your blog is that we need both the x and y information," because" is just an intuitive heuristic to remind about that
@AgathaSorceress we run one ( https://cyberia.club/matrix )
But reg is by request and policy has been we only create accounts for folks interested in our community. If you wanna hang out w/ us DM me or hit the email on that page
I really hope so but I'm not holding my breath
I am a web technologist who is interested in supporting and building enjoyable ways for individuals, organizations, and communities to set up and maintain their own server infrastructure, including the hardware part.
I am currently working full time as an SRE 😫, but I am also heavily involved with Cyberia Computer Club and Layer Zero