2025-12-23 23:20:48
just found out that e621 is (a) open source and (b) runs on ruby on rails apparently?? https://github.com/e621ng/e621ng/blob/master/docker-compose.yml
just found out that e621 is (a) open source and (b) runs on ruby on rails apparently?? https://github.com/e621ng/e621ng/blob/master/docker-compose.yml
I do love that if you format it correctly github will give you a searchable table on the website
#music
Microsoft: “Managers are lame, we need emperors.”
github.com/microsoft/terminal/blob/main/src/cascadia/WindowsTerminal/WindowEmperor.h
The other picolibc project this week is to (finally) put together a coding standard and reformat all of the code. I'm wondering if others have experience with this particular transition and if you all have advice and guidance about how to make this less disruptive. Of course, bike-shedding about the actual format is highly encouraged.
The whole app is a blob
... character driven UI as a path to language learning, a different kind of "gamification"
#software
RE: https://mastodon.art/@FlashMobOfOne/115763568171382450
Hey, if you know any penis-owners, they'll probably be up for dangling their actual wobbly bits out yer window if you bribe them with festive comestibles. :pensive_party_blob:
JUST AD…
2023 gab es aufgeregte Berichte über eine rätselhafte Erwärmung des #Atlantik.
Nun erlebt der #Nordpazifik eine ungewöhnlich starke #MeeresHitzewelle.
Zwischen Juli und Septemb…
"Data is code!!!" I chant as I give wedgies to people who don’t think this is a work of art compared to JSON. :P
https://github.com/jevinskie/clang-unformat-ng/blob/main/python/src/clang_unformat_ng/styleopts_data.py
Topical Toot: There’s a bunch of versions of this talk I gave over the years, here’s one of the shorter ones as a video: Failing Over without Falling Over https://youtu.be/R3_ccsuPoD8 and a similar slide deck pdf
If you use Swift Macros in a library, use this script to remove 50 megs of junk that Xcode forces into your binaries:
https://github.com/migueldeicaza/GodotApplePlugins/blob/main/relink_without_swiftsyntax.sh
This has been a public …
A rarely seen seven-arm octopus was captured on camera 2,300 feet below the surface in remarkable deep-sea footage.
The species
— formally known as the seven-arm octopus (Haliphron atlanticus)
— was recorded by the remotely operated vehicle Ventana, operated by the team at the Monterey Bay Aquarium Research Institute (MBARI).
According to MBARI, the encounter occurred during a recent expedition in Monterey Bay and marks only the fourth time the organisation has observed…
It's this time of the year again, this weekend is #ZHF in Rapperswil.
After having participated in a few of those I was very happy when I discovered this RFC a few days ago.
https://gith…
https://github.com/matterbridge-org/matterbridge/blob/master/.golangci.yaml
The new matterbridge fork has a lint configuration that hides lint errors in old code.
Senior
Dude. What the...? 😜
#Azure
From: @…
https://infosec.exchange/@alevsk/11549
#provider shice, wenn ich otelo.de pinge(ping -c3), über vodafone Kabelanschluss:
33% packet loss
avg 1474.214 ms
Eigentlich gibt's in unserem Haushalt gleich zwei Provider Probleme:
¹) unser Internetzugang ist via vodafone (eigentlich eine feindliche Übernahme von #Kabeldeutschland
from my link log —
Löb and möb: strange loops in Haskell.
https://github.com/quchen/articles/blob/master/loeb-moeb.md
saved 2025-11-06 htt…
Compliance of Implementations with Specification
https://github.com/open-telemetry/opentelemetry-specification/blob/main/spec-compliance-matrix.md
🎞️ High-performance 2D graphics rendering on the CPU using sparse strips
#graphics
psst! you! do you write Go?
check this out: https://github.com/ncruces/go-sqlite3/blob/aad2224095c5a956d0d46334699c489e37412d7a/ext/seq/push_coro.go
Reverse engineered another image file format, which was used in True Love (#pc98) and a handful of other games. Made an encoder too, so you can insert modified graphics in the game. Hopefully this power will be used responsibly.
Documentation:
STM32MP2 update: I have the MMU up and running on both cores (no caching yet) with a two-level page table.
I'm pretty happy with how my template class for aarch64 page tables turned out.
https://github.com/azonenberg/stm32m…
Organising my :nixos: #nix code and splitting out sharable things into a separate repo. Here for example is my package for #forgejoAneksajo (:forgejo: #forgejo :gitannex:
ANDRITZ: Renewable energy from tidal currents
https://www.andritz.com/resource/blob/31444/cf15d27bc23fd59db125229506ec87c7/hy-hammerfest-data.pdf
TIL kickstart got a mini.nvim support https://github.com/nvim-lua/kickstart.nvim/blob/3338d3920620861f8313a2745fd5d2be39f39534/init.lua#L905
I felt overwhelmed all the time I was looking on how to add it, so glad that its ther…
"From closed rooms to open dialogue: how to participate in #CRA vertical #standards "
Today, 17:00 CET
https://
@… if you haven't already seen it:
<https://github.com/FreeBSDFoundation/proj-laptop/blob/main/supported/deskto…
I might have spent a little too much time last night on making my #kde plasma config declarative with #nix plasma-manager - pretty happy with the emoji desktop icons and the cheat sheet tho
https://github.com/marcusramberg/nix-config/blob/main/home/plasma/default.nix
Wow, @…' #uringmachine looks very promising:
https://g…
So this file holds the source code for enemy behavior in DOOM (1993).
Or AI doomerism, as I call it.
https://github.com/id-Software/DOOM/blob/master/linuxdoom-1.10/p_enemy.c
For day 3 of #AdventOfCode I outsmarted myself by using `each` on an array to get the index and the value, but forgot that #Perl does not reset the counter when you exit the loop early. (It worked for part 1, though..). After switching to a stupid c-style for loop it was easy (because I agai…
Paraphrase of my #IOT hardware rant on slack (unsurprising, since I maintain https://github.com/unixorn/internet-of-trash/)
In a perfect world IOT hardware companies should:
- Have to escrow the firmware. And escrow the source code, not just the binary blob
- The firmware isn't allowed to use binary blobs as device drivers. Chip manufacturers will have to suck it up and document their chips or hardware companies won't be able to use them
- Have to escrow any keys required to update the firmware
- To be sold, have to have a local API, with at a minimum, functionality to update the firmware once the hardware company stops support. No "You have to use our crapware that only works on a phone/computer OS two major versions old, and it has to download firmware from our servers that got turned off when we went out of business / dropped the product's support
- Eighteen months with no updates causes release of the escrowed firmware and update keys. There are bound to be at least some security updates required in that time
- Have to have clearly labeled pads on the board for updating firmware and running diagnostics.
- Not be allowed to lock consumers out of reflashing the firmware. If someone flashes custom firmware before the escrowed firmware is released, and the custom firmware bricks the device, that's on the person who reflashed it, not the company.
@…
Relevant code in kubectl doing the completions: #kubernetes #zsh #shell #completion
One of my favorite emojis is the "hugs" emoji 🫂. Or an "okay_blob" custom reacji that my favorite Slack uses. I use it all the time to indicate "I hear you and I know what you're saying is emotional. I support you".
Another very progressive Slack I'm on has a "hugs OK?" emoji you are supposed to use first. Only if the other person responds with the "hugs OK!" emoji are you then allowed to respond with an actual "hug" emoji.
I think I'm a pro-explicit-consent person. But it strikes me that this careful three-way handshake, all for 16x16 pixels in a virtual environment, may be a little much.
I was amused that on a recent episode of Gen V that a lab-test animal (that gets turned into a blob of blood and gore) is named "Elon Musk" in order to reduce sympathy for its fate.
from my link log —
Conversions in Ruby are a mess.
https://github.com/sampersand/blog/blob/master/conversions.md
saved 2025-10-30 https:…
Just discovering #looptober and wanted to share this old Forth experiment (from already 9-10 years ago 😱) with my https://thi.ng/synstack VM and its DSP/Synth vocab, all running on STM32 dev boards. This Forth-based sta…
I spent some more time on AI coding evaluation tooling using the new #AWS open source Standard Operating Procedure system, and now I have an automated leader board. It rates the #Claude-flow hive mind version as better than the Claude-flow swarm version from a month before. Next step is to run some more …
"The blob is back in the Northern Pacific Ocean"
Be forewarned!
inline void whack() https://github.com/zerotier/ZeroTierOne/blob/dev/osdep/Phy.hpp#L258
https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/blob/main/plugins/housekeeping/gsd-donation-reminder.c?ref_type=heads#L83
Donation notifications are not worth setting as critical:
@… I don't know what Palantir is, but the vague white blob beneath Land Operations looks appealing. I imagine Sean Connery there, in a deckchair, having a Martini before casually stopping the whole lot. In a helicopter that converts into a speedboat.
hey wanna see some completely normal systemverilog? https://github.com/lowRISC/opentitan/blob/e383c23ab5d44940a07652ccd31406166286073d/hw/dv/sv/dv_utils/dv_utils_pkg.sv#L210-L355
For the last day of #AdventOfCode, I took a very simple and naive approach of: depth-first search.
Basically try all combinations until one fits. The trick to avoid a VERY long runtime is to filter out all cases where we already know from the start that the pieces (gifts) won't fit in the region, because their summed area exceeds the area of the region. Went for recursion this time around, because why not.
#AoC #AoC205 #AdventOfCode2025 #RustLang #rust
@… support is not ready yet.
https://github.com/UniversalScalableFi…
I have believed for a long time now that humanity has proven incapable of a 'gradual decline' of anything that it is truly dependent on even if alternatives are available.
We seem pre-programmed to use something to the max... hit rock bottom in terms of impacts on our own health and general well being… and then go pretty much cold turkey. (either through replacement or outright abstinence).
I believe it will be the same with fossil fuels.
We are possibly seeing a slight reduction now globally in overall use of oil. But it is still far and away too too much.
Maybe we’ll cut this by 10% or 20% in the next 10 or 20 years... but zero by 2050? Not a chance.
I believe we will go and go and go, until one day we can go no more, the pressure is too great, the casualties too high, the effects too devastating, and the impact of complete shutdown of the fossil fuel industry in less than 5 years will seem less bad than the damage we have already done and are sure to suffer in future.
I hope I live to see that day, not out of morbidity, but out of hope. I want to die knowing we finally did it. I don't know if that's going to happen.
Not an uplifting prediction, I know, but seriously, tell me I'm wrong.
#CanPoli #Cdnpoli #ClimateCatastrophe #Oil #Gas #EndFossilFuels
chart from the 2025 IEA report: https://iea.blob.core.windows.net/assets/018c3361-bc01-4482-a386-a5b2747ae82a/Oil2025.pdf
Day 11 of #AdventOfCode is a classical graph problem like we're used to from previous years.
Unlike previously, I immediately thought of checking what the graph looked like with a visualization tool. Luckily, `petgraph` allows to export a graphviz file which can be then used to visualize the nodes and edges.
From that, it was clear that a few nodes were acting as "bridges" between largers subnets of nodes with no particular arrangement besides being directed towards the next "bridge" layer. Those bridge layers comprised 4 to 5 nodes in my input, and were the only ones with more than 6 incoming edges, so I used that as my filter criterion.
To gather them, I sorted the graph in topological order and chunked them by their position offset compared to the previous node. When doing this, all the nodes from a bridge layer end up being at most 20 positions away from the previous node in the sorted list.
Finally, I progressed through each subnet, collecting information about how many paths lead to each one of the end layer's nodes. By multiplying with all the paths leading to each start layer's node, we get the overall total number of paths.
#AoC #AoC2025 #AdventOfCode2025 #RustLang #rust
Yes! Today's puzzle in #AdventOfCode was quite hard (especially part 2) but so rewarding and I learned a lot!
For part 1, I implemented A* from scratch, my favorite little pathfinding algo that I use pretty much every year for #AoC (sometimes I use a lib instead of implementing it but it's been a while so a refresher was in order).
For part 2, after trying A* again and noticing it was running for way too long, I went back to the drawing board and solved the first machine by hand. I noticed the constraints were a system of linear equations.
I then researched algorithms to solve such integer programming problems and didn't feel like learning AND implementing the algorithms in one day (ain't nobody got time fo that). But this lead me to discover the `good_lp` #rust crate which is really good and that I will keep in my back pocket from now on!
So I used the library to define a system of variables and constraints which could be solved magically for me.
#AoC2025 #AdventOfCode2025 #RustLang
A nice bump in difficulty for today's #AdventOfCode problem!
Although the first part came to me very easily, I spent way too much time trying to implement a flooding algorithm for part 2, only to find out that it would take too much time and there should be a better way.
The worst part is that I had the intuition for my final solution super early on, but couldn't materialize it in a simple way until tonight.
I also must admit I realized quite late that the points were sorted in the input :D I should RTFM better sometimes.
My final #rust solution runs very quickly and is reasonably clean.
#AoC #AoC2025 #AdventOfCode2025 #RustLang
A cool graph problem today in #AdventOfCode
Nothing special here, I leveraged the `petgraph` #rust crate which I love! Calculating all pairs' distances (squared) and joining the pairs that are closest with an edge.
Only thing I wish I had more time to implement would be the graph traversal algo during sub-net aggregation, but swamped with work at the moment.
#AoC #AoC2025 #AdventOfCode2025 #RustLang
Today's puzzle in #AdventOfCode was another grid puzzle, where I again represented the entities as a sparse set.
Part 1 was relatively straightforward, a simplified BFS-like process allowed to construct the beams going through the system.
For part 2, additionally to gathering where a beam was present, I added metadata about how many paths were going through each position, adding them up and splitting them as required. Summing the paths for the last row gave the required result.
#AoC #AoC2025 #AdventOfCode2025 #RustLang #rust
Today's #AdventOfCode problem was more about parsing than about complex logic, but it was fun!
I opted to keep the parsing with winnow simple and do most of it by hand from the raw characters, to exercise my #rust iterators a bit.
#AoC #AoC2025 #AdventOfCode2025 #RustLang
Another easy challenge in today's #AdventOfCode puzzle.
Part 1 is straightforward, and for part 2, the trick was to sort the list of ID ranges first, which made the merging pretty easy.
#AoC #AoC2025 #AdventOfCode2025 #rust #RustLang
Didn't feel like thinking too much for today's problem of #AdventOfCode, so my solution is quite naive and runs in a few tens of milliseconds for part 2 (thanks, #RustLang!).
I went for a HashSet for the grid just because it made looking up neighbours simpler at the edges, probably also not the most performant solution, but gets better as the grid becomes sparser.
#AoC #AoC2025 #AdventOfCode2025 #rust
Super happy with my solution for today's #AdventOfCode problem!
It initially took me a little bit of time to find a suitable strategy, but it all clicked when I noticed that the left-most selected digit had the most significance in the final value. Thus, I maximized the value of that left-most digit, leaving enough digits on the right side to be able to pick the required total number of batteries in the bank.
The solution is relatively short and sweet:
#AdventOfCode2025 #AoC #AoC2025 #RustLang #rust
Today's #AdventOfCode problem was fun! I kept a different implementation for part 1 vs part 2 as they both run relatively fast.
For part 1, I iterated over all IDs (the ranges are quite small) and split them in half mathematically (no string representation) to compare both halves.
For part 2, I instead generated all interestings IDs (mathematically again) up to a length of 10 digits (the max in my input) and checked if any of the ranges contained them.
#AoC #AoC2025 #AdventOfCode2025 #RustLang #rust