I finally managed to get back out disc golfing today at Vietnam Veterans Park and had a good time despite losing a brand new disc on hole 3 (on its 3rd throw ever, my glow-in-the-dark Lynx disappeared into an overgrown creek-bed and was swallowed by the underbrush). After my buddy lost a disc on hole 4, we were kinda demoralized and both threw for crap the rest of the course, but it was still a nice day to be slinginā in the sunā¦

@lyse@lyse.isobeef.org this reminds me of when Iād started learning C. This threw me off so bad, and it took me an unreasonable time to wrap my head around the difference between the precisions of floats and doubles. š„²
@david@daiwei.me Thanks, mate! I just finished my two full version marking gauges. And Iām rather pleased with them, I think they turned out great if I say so myself.
https://lyse.isobeef.org/tmp/streichmass-mit-messerrad/
The beech fences (80 and 100mm long) were part of a former table frame that I cut down. I plugged the dowel holes with, well, dowels. The horrific looking one was the stuck original one, though. Luckily, itās a hell lot worse on camera than in person. If you take a close look, youāll also be able to see the large but slight chamfers one one side each that I just left alone.
I really like beech wood. It looks beautiful, is rather heavy (at least in comparison to spruce which I typically use) and thus rock solid, is also a blast to plane and the list goes on. I sanded it with 180 grit and itās smooth as a babyās bottom.
The 25mm beech round stocks that house the brass knurled nuts are now roughly 4cm long. Thatās one thing I wanted to change right after my first experience. If they were rounded or chamfered more, it would probably be even nicer for the fingers when using the marking gauge. Theyāre sunken in roughly 3mm in the fences. A forstner bit made quick work. This simplified alignment during glue-up a lot. Will definitely do that again if I happen to build more. I could fully concentrate on the grain orientation and it didnāt shift around.
Just like in the prototype, I used 8mm aluminium solid round bar again for one of the marking gauges. Itās also about 15cm in length. I figure thatās enough. The bought marking gauge has a twenty-something and some change steel rod. So far, all my markings didnāt even exceed probably 50mm.
I found the 8mm brass pipe laying around on the workshop. Didnāt know anymore I had it for ages. Unfortunately, the wall thickness is below a millimeter, so my 6mm wooden dowels are sliding in there. Thus, I put 8mm dowels in my drill chuck and reduced the diameter with a rasp. I went a tiny bit too far, the press fit is on the loose side. When drilling with a 2mm drill (I did that on purpose to hopefully cause the dowel to expand a bit more in the pipe, typically the tap hole for M3 is 2.5mm) and tapping M3, the downsized and glued in dowel slipped down the pipe. Should have used construction adhesive or something along those lines. Anyway, I might replace it with a solid one. I consider this a half-successful experiment. I fear that an unfavorable grain direction might pull out the cutting wheel during use. Letās see.
The finish of all three is boiled linseed oil. It looks nice, but oh by, this smell. I really dislike it. My hands stink even after washing them several times. I still got several liters left, so I have the dubious joy to use it on many, many other projects to come.
Oh, one last thing. Didnāt manage to drill the tiny holes for my M3x16 bolts perfectly in center like for the prototype. Theyāre a tiny bit off. Also, on the longer fenced marking gauge, the hole for the knurled nut is a little to the side and at an angle. No idea how I messed this up. Luckily, itās just a look thing but doesnāt impair use.
@javivf@adn.org.es Oh, I like the looks of that.
GTD was undoubtedly the best developed task-management system I ever got into (and I tried a bunch in my time), but even it wound up being too much work for me to keep up with. An app like that might streamline it enough to make it usable. Thanks for the link!
Bwahahaha, these security folks have a great sense of humor! :-D Got a phishing test e-mail disguised as an overdue anti-phishing training e-mail: 
We receive these test phishing e-mails every now and then at work. When you follow the links and log in at the fake login, you probably get assigned another (real) training.
When I got this e-mail, I immediately thought of such a test. Since I actually do have some stupid training deadlines coming up soon, I wasnāt 100% sure, but still doubted that this was one of them. To make the timing even better, in the team meeting last week, our bosses reminded us to complete outstanding trainings before the deadlines. Ideally well in advance. Notifications about deadlines coming closer are sometimes not only sent to the individuals but also to the bosses and their bosses. And then things can get out of hands when somebody doesnāt read the e-mails properly and mistakes them for deadline exceeded reports.
Anyway, the URL also looked kinda legit. It really doesnāt help a single bit that domain names change all the fucking time. So, still with the test program in mind, I thought, I just give it a quick shot out of curiosity. Since I just had logged in before, the empty SSO username field was totally obvious then. Looking at the e-mail headers confirmed that this was indeed one of securityās field checks. :-)
Time to remove two feeds that have not seen a single update for over a year. I reckon theyāre just dead.
# follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph š¤), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next š¤
@david@daiwei.me youāre not missing anything. It is only set on grant / connection time. If you disconnect and reconnect, it should become an option. I havenāt figured out how to refresh capabilities.
# follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph š¤), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next š¤
@david@daiwei.me Youāre not missing anything. It is set on grant / connection time. So disconnecting and reconnecting will give you that option. I havenāt figured out a way to refresh backend capabilities like this.
Okay Iām fixing this in lextwt, yarnd and twtxt.app (takes a different path). Soon youāll be able to write shit⢠like (<this>) and itāll get escaped and rendered correctly on the page. Basically you are really writing HTML here, but not intending to do so, Twtxt never supported HTML, and I donāt think it ever should. We extended the format to support basic Markdown, and I think thatās where it should end.
Probably time we wrote a Spec for this really.
@david@daiwei.me You better stick to your doctorās prescription of mowing three times a week.
Dang it, @david@daiwei.me, you blew my cover!
I was raised without a TV, so I donāt miss it one bit. My parents just didnāt by a new one after their super old black and white device died. Looking after a baby was maybe spare time activity enough for them. :-P
When there was some super cool program I wanted to watch, like a James Bond movie, I visited my grandma. Sure, it sometimes was a pity that I could not join yesterdayās TV series discussions with my classmates, but oh well. I survived that. Building stuff with Lego or playing outside was all I really wanted.
Apart from a few really good programs, thereās sooooo much trash, non-stop ads and the like. Even as a kid, I was very disgusted by all that. But I have to admit that visting somebody with a TV and watching a good show was usually a highlight. These days, I can easily waste all my time and more on YouTube. :-/
I finally built a prototype of a marking gauge with a cutter wheel out of some scraps.
https://lyse.isobeef.org/tmp/streichmassprototyp-mit-messerrad/
It had been a long time in coming, I bought some replacement cutting wheels three years ago for exactly that purpose. I also found out that I need more M3 countersink bolts for future marking gauges that I want to make (maybe two or three more). Luckily, I had exactly one. I thought I got way more than that, but M3 is very, very scarce in my collection. My M3 bolt was barely long enough to attach the cutting wheel to the bar. But itās okay for the prototype.
I was pleasantly surprised that I managed to drill the 2.5mm diameter hole almost perfectly in center in the 8mm diameter aluminium round bar. Center finder, drill press and vise with a vertical prism for the win!
I knew upfront that the M5 steel bolt to lock the bar in place definitely needs to be replaced with a brass or aluminium one (maybe with a knurled head). Otherwise, it cuts into the aluminium bar and leaves ugly marks. These burrs might even scratch the workpiece. But, of course, I donāt have any brass on hand either. Alternatively, I swap out the aluminium bar for a steel or even stainless steel one. Stainless might be tricky to precisely drill and tap, though.
I already learned a few things by making this prototype. The final wooden fence can be even a bit bigger. This round thing behind is also too short, Iād like it to be a tad longer and thicker. The final one will be made from hardwood, not spruce. Other than that, itās great and already more practical than my store-bought marking gauge with its round fence. This only causes the tool to roll around on the workbench. Or even roll off. Stupid design.
I donāt get people strolling in nature with headphones on and constantly staring at their phones all the time. Why even go outside if you cover ears and eyes? Okay, youāre on the move and smell the country air, but still. Yesterday, one girl was wearing earphones and reading a real book while walking on a field path. Better than a phone, sure, but what the hell!?
@lyse@lyse.isobeef.org I was wondering for an embarrassingly long time why my NAS wouldnāt boot. (The main power supply switch was turn off.) š¤Ŗ
@prologic@twtxt.net Haha, no, youāre off the hook this time. :-D Itās totally my fault.
twtd instnace or via Github/Gitea or any other publishing backend (doesn't amtter). Please read.
quick correction on that cleanup timing š itās not 28 days. nothing gets deleted for the first 30 days at all (observe-only), and after that only setups unused for ~6 months that also never saved a recovery code. saved a code = safe forever š
@david@daiwei.me Right now, ttās theme is baked into the binary. I have to edit the ui/styles.go and recompile. Luckily, this almost takes no time. But my todo list already includes a bullet point to make this customizable via the configuration file. :-)
@david@daiwei.me Ha, I just noticed that I changed Newsboatās defaults. Right from the factory, new items are just bold, while read ones arenāt. No different colors, white on black. Focused items are bold yellow on blue. No matter the read status. I think thatās why I started to play with the config to differentiate them. Itās been so long ago that I didnāt know anymore I even messed with that.
And yes, youāre right, the red on black is borderline readable. Also, my white on green focus is rather silly. But Iām sooo used to it, I donāt realize how bad the contrast is. To be fair, I donāt spend a lot of time in the lists. Aha, there are new articles, Enter to hit the artice view, read it, press n to immediately jump to the next unread article, rince and repeat, finally Iām back in the article list view.
Default theme, read focused:

Default theme, unread focused:

Lyseās schlimmbesserung, read focused:

Lyseās schlimmbesserung, unread focused:

Iāve been coding again, and this time it might actually be useful to other people! https://codeberg.org/hellfire103/golden-retriever
I trip over this in our code at work all the time.
Python has this concept of āpropertiesā:
class Oink:
def __init__(self):
self._foo = 3
@property
def my_property(self):
return self._foo
a = Oink()
print(a.my_property)
my_property() is a method but it can be used as if it were a field.
This can also be used to define a setter:
class Oink:
def __init__(self):
self._foo = 3
@property
def my_property(self):
return self._foo
@my_property.setter
def my_property(self, value):
self._foo = 123 * value
Because, for some reason, Python people donāt like getters and setters. Instead, they hide it behind a property.
The result is, when you read this:
a.my_property = 5
print(a.my_property)
You have no idea that this actually calls a method.
@david@daiwei.me Oh, really? I thought Iāve posted compose view screenshots before. Anyway. Glad you like it as much as I do. :-)
The update interval has always been one second. I just didnāt remember and thus tried to time it by watching the preview update while typing. It felt like roughly under two seconds, but apparently my inner clock was off. After taking the screenshot and then examining it more closely, I noticed that the interval is stated right in the UI. :-D So, I just amended my message and didnāt bother taking a new screenshot. I figured I just leave it alone and see who spots the change, if at all. And, of course, you found the easter egg. Congrats, mate! 8-)
tt has a "draft" mode right? You didn't publish, then edit over and over did you? š
@prologic@twtxt.net Not sure if this really counts as a draft mode or this is what you had in mind. I just was in the editor for ages and didnāt close it. tt provides an integrated preview for the rendered message in there. It automatically updates every second.
Hereās a screenshot of the compose view with the conversation context on the top to which to reply to, the editor in the middle and the almost-live preview at the bottom, I hope itās big enough: 
But itās not like I hit the āAdd messageā button in the compose view (the one currently selected on the screenshot), see the message in the conversation tree and then come back into the compose view to continue editing. Thereās no edit functionality in tt. Once the message is appended to my twtxt.txt file on disk, all I can do is edit it with vim. The U+2028 line breaks are really annoying to deal with (Iām sure I could do something about that if I spent the time), so I try to avoid that at all costs.
Once new messages have been added to my local file, I then manually upload the file to my server in a separate terminal. Thereās no upload command integrated into tt. Right from my very first message in the beginning, Iāve always done it exactly like that. Iām used to this and it really doesnāt bother me. But I can see that others might not be fans of that at all. I might add an upload mechanism to tt at some point in the future.
I really think I should go back to Java.
Writing programs in Python is so exhausting. I want a compiler and I want static typing. No, linters and type checkers and IDEs are not good enough. Compilers catch way more errors in advance.
Rust is also exhausting. Theyāre constantly adding language features and, at the same time, the runtime library remains tiny and you need 3rd party libraries for everything. Many of those are still at version 0.x (SemVer!) and you canāt rely on anything. Often times, you need the latest Rust nightly compiler.
Go is ⦠I donāt like it. And huge binaries.
I like C as a language, but itās too fragile. I want to have a proper HashMap every now and then.
None of the above have good GUI libraries, at least not on Linux.
And then thereās Java. This is my fractal renderer that I wrote over 17 years ago:
https://movq.de/v/fcd3c4e557/vid-1784121825.mp4
Itās fast. It has a GUI with custom widgets and those werenāt even hard to make. It still works without changing a single line of code. The source code files have timestamps from 2009 and I just noticed that the JAR file Iām using in the video was compiled in 2010.
Java as a language is relatively easy to learn and to master. There are few surprises. The source code organization with packages is good. Java API docs are clear and well written.
The JVM ramp-up times have improved considerably:
https://movq.de/v/e7314e521e/vid-1784121998.mp4
This isnāt like the Dark Ages anymore. Might even be usable for some CLI tools.
The only thing where Java really sucks is anything close-ish to the kernel. Try issuing an ioctl() ⦠I couldnāt have made my TUI framework in Java, but then again, I wouldnāt have needed to because Swing already exists and it just works.
@balloon-fu-sen@tw.fus.f5.si yes I wouldnāt go and change your feeds location the location a fourth time thatās for sure! š¤£
@movq@www.uninformativ.de Yes, this is absolutely a no-go!
A long time ago when the first telemetry shitstorm happened, I added export GOTELEMETRY=off in my ~/.zshrc. But it doesnāt seem to be picked up at all (I actually call this sabotage!):
$ go env GOTELEMETRY
local
$ go env -w GOTELEMETRY=off
go: GOTELEMETRY cannot be modified
$ go telemetry off
$ go env GOTELEMETRY
off
@movq@www.uninformativ.de please donāt waste your time to bugging this. Iāll figure out whatās going on with these new clients.š
@david@collantes.us heads up š that verification code never reached you ā outbound email was broken on my end (my mail relay was rejecting twtxt.net senders š¤¦āāļø). Fixed + deployed now š„³ give the hosted feed another go, itāll land this time š¤
š„³ Finally! After nearly 4 years, yarnd v0.16.0 āSilver Sojournerā is out! š Twt Hash v2, SQLite FTS5 search, HTMX-powered UI, first-time setup wizard and literally hundreds of bug fixes š
Release notes: https://git.mills.io/yarnsocial/yarn/releases/tag/0.16.0
Upgrading is fully automatic ā the Twt Hash v2 migration re-fetches all feeds on first start, so expect the first cycle to be a bit heavier. Images on Docker Hub as prologic/yarnd:0.16.0 š
cc @kat@yarn.girlonthemoon.xyz @abucci@anthony.buc.ci @shinyoukai@yume.laidback.moe @eldersnake@we.loveprivacy.club š
you should see the new search engine stats page where Iāve added, spark lines, and time series graphs š
@david@daiwei.me bender variable in. First thing I see on Yarnd is that my mention is broken. It was entered between quotes on twtxt.app. Yarnd has always had parsing problems, so I am not blaming twtxt.app this time.
@david@daiwei.me Oh no, what a giant waste of time. :-(
@prologic@twtxt.net Well, 15 shows the site. On the left, I had a roll mat on a tarp. I borrowed some āNVA tarpsā from the scouts for this trip. The scouts got them from the National Peopleās Army, the German Democratic Republicās armed forces after Germany was reunited. Theyāre 1.75m x 1.75m in size and weigh 1.3kg, quite heavy, but super awesome. One tarp on the bottom, another one to cover up the clothes, shoes and sleeping bag in order to protect against the thaw. Finally, a mosquito net over all that, hung from a rope between two trees.
My mate just used a hammock with a mozzie net on the right hand side. The third tarp served as the luxurious bedside carpet. :-)
We sat on my second tarp to chill and enjoy the sunset and surroundings. It was nice to notice birds etc. die down. It took a really long time for the last light to fade away. Since we have a very high risk of forest fires, we of course couldnāt have a camp fire. But after all the exhaustion, I didnāt even miss it for one second.
Since we had dinner at home before leaving, all we brought were two lye rolls, two grain rolls, two brezels, some sausage and chocolate biscuits for breakfast. From the 2.5l of water, I ended up using 2l. Itās always good to have a little extra, despite the unnecessary weight. We had brekkie a few kilometers further on a bench in the shade. The first bench was already in direct sun.
Our camp site was maybe 30m to the side and a few meters down of a summit path hidden behind some trees and bushes. We were quite lucky, the other side of the hill got quite a bit of a breeze at night. We could hear the leaved treetops making much more noise behind us.
@movq@www.uninformativ.de Yes, these kind of dogs should really be strictly forbidden!
Itās not illegal if you own the forest or ask the owner. :-)
@david@daiwei.me Yeah, no clue. But my mate said the dog is disqualified from such adventures in the future. :-)
The temps were supposed to hit 14°C just before sunrise. Since we didnāt bring a thermometer, I canāt tell for sure. I was rather hot in my sleeping bag, so I had to pull out my arms every now and then. My mateās sleeping bag was a little lighter and, unfortunately, the zipper jammed up. Since it didnāt close all the way, it felt quite a bit cold I was told in the morning. When we got up at 6ish (we said, we donāt care about time at all), it was probably already 16°C if not more. I brought a jumper, but a t-shirt was already nice enough to wear. The jumper just served as my pillow. The mercury raised by the minute then.
Yeah, I circled the spot with a biro to keep an eye on it. Until now, thereās absolutely nothing to see. Looks like I got lucky.
We slept in the forest. It was really great except of my mateās fucking terror dog who was barking and snarling the entire night to each and every sound. I had maybe half an hour of sleep in total. Despite that, it was pleasantly warm. Well, the night, that is. The heat was brutal during the days. Literally streams of sweat were running down on us on the way there in the evening and back in the morning.
Surprisingly, there werenāt any mozzies around at night, I would have lost all safe bets. On the way there, my mate convinced me to take a shortcut through the taller and taller growing grass. Itās been some time that somebody traveled on this track, so we had to search around a bit for the overgrown path where we could cross the mostly dried up creek. In the beginning I said that this will be a bad idea. Lo and behold, I discovered a tick on my inner upper leg the next morning. Luckily, I got it out with my tick hook on the first attempt.
@movq@www.uninformativ.de tell me about it! I try to enjoy the time I have available, regardless of being working time, or not. I admit it is quite hard!
@lyse@lyse.isobeef.org next time I will ask someone to take a pic of me before, and after. You will know hell when you see it!
Heh, thatās a cute story: https://www.osnews.com/story/145459/you-paid-me-a-long-time-linux-user-to-use-windows-11-exclusively-for-a-month-heres-how-it-went/
Hmmm⦠Something aināt right. What did I break this time?
@prologic@twtxt.net My bad. It has been a while since the last time I poked around my mystery box, and I must have Effed up something yesterday. Is it fixed now? (Also, Iāve noticed that access to my avatar is, somehow, still denied. Still poking at it. š¤¦)
XMPP greatest peak was when Google Talk was around. Being able to chat with thousands, if not millions, of Google users at that time, using your own domain, and your own XMPP server was amazing. Then Google, in all its wisdom, and as it does very often, decided to kill it.
I might be on the minority, but can care less about video calls. Heck, even calls! Text is King. š¤Ŗ
@prologic@twtxt.net I linked you some of my findings on the twtxt.app on IRC. The main problem is the hashing. Totally broken. But you have got to give it some thought, because GitHub hosting of the feed is tricky (even more so if they are CNAMEing their domain to it). It is also finicky because Pages is auto-enabled on username.github.io, so actions must run each time you twt.
Okay, wow. Windows NT 4 wasnāt part of my timeline back then, so this is the first time Iām seeing it in action. And this thing came with IE 2, which Iāve also never seen before. (Thatās interesting, because I remember using IE even on Win 3.x, but apparently that was already IE 3?)
It also makes me really happy to see my website work in these old browsers. Fullscreen images are ābrokenā because those are PNG or WebP, but the rest works just fine. š„³
What a week!
It looks like I mostly missed the #twtxthashgeddon (so happy belated twtxthashgeddon day, to those who celebrate), although Iām glad that twtxt-lib appears to have come through it more-or-less unscathed.
Also, today is (was) July 4th, so happy US Independence Day (to those that celebrate). I didnāt feel much like celebrating, myself, so instead I went and played Magic (results tomorrow).
Finally, today is (now) July 5th, so happy X-Day (to those that celebrate). I canāt help but feel like this would be a great time for the saucers to comeā¦. Just sayinā. š½
BTW - welcome to twtxt @GabesArcade@gabesarcade.com!
@lyse@lyse.isobeef.org Found it and fixed it! š The crawlerās discovery spider was fetching every feed a second time, without any conditional headers (plus a couple of other politeness bugs: redirected feed URLs never stored their cache validators, and there was no floor between re-fetches). Now every feed is fetched at most once per crawl, always with If-Modified-Since / If-None-Match, and never more than once per 15m no matter what. Just deployed ā please keep an eye on your access logs and let me know if you still see anything impolite from the crawler š
My mate and I hiked up the backyard mountain. We got 25°C and quite some wind, so it was actually not too terrible. The wind could have blown harder or the temps a little lower, but oh well.
I saw the squirrelās bushy tail stick up on the forest floor in the sunlight and immediately thought of this cute little feller. Since it didnāt move at all, even when we came closer, I got irritated and reconsidered that it might actually be some kind of dried up farn. But then we also were able to see its body. Unfortunately, the squirrel ran up the tree too quickly, so all the shots are kinda crap.
At one flower spot, there were sooo many butterflies, wasps, flies, bugs and other insects. The botanic was completely crowded.
The workers were transferring logs from one log truck to the other in a parking lot. Iāve never seen this happening before. When we passed the same place on the way home, they had moved logs into a sea container. That was surprising. This semi wasnāt there on the way there. One log was probably too long and sticking out the container, so they probably had to wait for somebody to return with a chainsaw. Crazy that theyāre shipping logs from here probably overseas. Why else would they put them in a sea container?
After our first break, a blackbird was really posing for us with his worm in the dark shade.
Today was my first time I ever saw a hummingbird hawk-moth (TaubenschwƤnzchen) for real. My mate photographed them many, many times before, but I never came across one myself. So, that was really special.
The forest service installed an outdoor table with two benches next to the timber lion, that was cool to see. We sat down for a few minutes and enjoyed both the view into the Fils valley and ant on the tabletop, but the sun was beating down too heavily on us, so we had to move on.
All in all, it was a very nice few hours long hike. Enjoy! https://lyse.isobeef.org/waldspaziergang-2026-07-03/
Thereās no more time to waste to rotate some months into their archive feed files.
@movq@www.uninformativ.de Oh dear! :-(
Now, itās cooler outside than inside. Time to open the windows and start the wind machines.
Apologies for the late #caturday post, but I figure itās more of a state of mind, like that time Shadow temporarily āborrowedā the dog bed (and discovered how comfy a blanket pile can be)ā¦

@kiwu@twtxt.net Last time you asked we were all tired. Now weāre EXHAUSTED because itās 40 °C around here. š„µšš
The firefly season is ending. I only saw 200 of them or so. There was one female directly on the forest road. If only I brought my camera and tripod, that would have worked out I reckon. I had my torch with me and this looked really cool.
Dusk took forever today. It was really long light out there. Full moon is tomorrow.
On the way back, there was suddenly a load clatter and crashing sound 100 meters away from me. I didnāt see anything, but a tree fell over in the forest out of the blue. Fuck me dead, that was scary as hell. Luckily, I was already on the main road, only meadows around me. Itās the second time I witnessed a tree accidentally coming down. The first one was during the most expensive hail storm in our area so far in 2011 behind me when setting up a summer camp. The weather changed in less than 15 minutes.
Maybe not such a good idea to go out so late alone. :-? Any rustling in the forest immediately reminded me of the boar the other day. Luckily, always false alarm. Still a bit terrified from that event.
@movq@www.uninformativ.de Oh my! :-O We reached 38°C. Itās now down one degree.
I just got up from my two, three hours siesta. And I tell you, that was bloody amazing. Layed in bed in undies, no blanket, just some power metal in my headphones and I was sleeping like a baby. Normally, I NEED a blanket, no matter what. But this summer, itās already the second time that I actually manage to drop off without one.