Searching yarn

Twts matching #Go
Sort by: Newest, Oldest, Most Relevant
In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

And I meant ā€œits simplicityā€. Autocorrect is going to get me in troubles one of these days. LOL.

⤋ Read More

Hello everyone ! šŸ‘‹ Behold I bring you (after many years) the launch of the Twtxt App šŸ˜… – Ye, this is a Desktop and Mobile app built as a Progressive Web App (PWA) using a little framework (Swag) I put together iafter some experiments @xuu@txt.sour.is and I did in Go and HTMX and Service Workers.

The App is offline-first and supports installing to Desktop and Mobile (add to Home screen) and supports a number of publishing backends, including Yarn.social’s yarnd Pod, Github, Codeberg/Gitea, and a little tiny twtd Twtxt server (See: https://git.mills.io/yarnsocial/twtd).

Please try it out, no need for any account(s) or such, works with your existing feed(s) (as long as the publishing backends work well enough for you!). Please give me feedback! šŸ™

Also, did you know the Twtxt Search Engine is back? šŸŽ‰

⤋ Read More
In-reply-to » 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)...

@movq@www.uninformativ.de It varies… We tend to prefer bowtie collars for all of our little boys, but they like to wrestle sometimes, and since they’re indoor-only, they can go for months without collars at all.

⤋ Read More
In-reply-to » Fuck me! I tried to upgrade tview and the first thing I notice is a shitload of added dependency versions:

The mentioned go.{mod,sum} change is already part of tview 0.42.0. After implementing Set/GetDisabled(…) and PasteHandler(), tt starts up fine and seems to work without issues.

⤋ Read More
In-reply-to » I went to check on the fireflies this season. But I didn't see any. Instead lots of moths. At first, I thought it might have been still too light, but it was already dark enough for me to miss and destroy a snail shell. Bummer. Maybe it was too wet tonight. Although, it's probably just another or two weeks until my glowing friends will finally show up.

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.

⤋ Read More
In-reply-to » So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), I've instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX šŸŽ‰ -- However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIX's box (command-line container runtime). It works great šŸ‘

@movq@www.uninformativ.de CEF turns out to be pretty easy. I had to write a bit of C and Go to bridge, but once that got going I was able to write it into my pure Go go-wayland wlui library for final rendering. The delegating the entire CEF part was a good idea though because it keeps all the complexity in a container Image, leaving me with just the Go + C stubs/interface and SHM/IPC parts.

⤋ Read More

So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), I’ve instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX šŸŽ‰ – However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIX’s box (command-line container runtime). It works great šŸ‘

⤋ Read More
In-reply-to » @lyse Mhm, yeah, I also think I like date := time.Date(2026, time.June, 19, /**/ 17, 0, 0, 0, time.UTC) the most. šŸ¤” (My only gripe with this is that it isn’t obvious whether the third 0 is milli-, micro- or nanoseconds. These days it’s probably nanoseconds, but you never know.)

@movq@www.uninformativ.de Right. A Go programmer eventually knows that its nanoseconds precision. Keyword arguments like in Python are just sooo superior to unnamed positional arguments. I wish that Go had them, too.

⤋ Read More
In-reply-to » I went to check on the fireflies this season. But I didn't see any. Instead lots of moths. At first, I thought it might have been still too light, but it was already dark enough for me to miss and destroy a snail shell. Bummer. Maybe it was too wet tonight. Although, it's probably just another or two weeks until my glowing friends will finally show up.

A deer, multiple frogs, several thousand fireflies and something else. It was already very dark when I was silently drifting along on a nice soft mossy path, enjoying the firefly show left and right and in front of me. I then heard some rustling about 30 meters in the distance in the shrubs. I thought that I must have scared up a deer. But it kept on rustling without any worries. And I closed in without seeing anything.

Only when I heard the quick oink from just 10 meters away, I froze. Shit, no deer, but a boar! Suddenly, I was the one who was scared. It probably hadn’t noticed me before. But did it notice me now? Was that grunt a warning or just completely unrelated? The rustling appeared to slowly come closer. What if there were also piglets around? I couldn’t figure out how many boars there were. Maybe just one, possibly more. A wild boar easily rips a hunting dog apart, so I didn’t want to take any chances and decided I will not wait for them to eventually pass me behind the brush in just a hand full of meters, so I can keep on going. While I was just turning around, I heard another oink and was frighened to death. I ran 20 meters, before calming down a little bit. I listened for half a second and nobody was following me. Phew. I then walked back the path.

What an adventure, I tell you. That was my second (or maybe third?) wild boar encounter in the woods ever. A hell lot more scary at night than during daylight when you can actually see something.

⤋ Read More

[copy-pasted from elsewhere]

Exciting news! D: HEAVY WATER, the second installment in #NealStephenson’s Bomb Light series, publishes October 13th.

Europe, 1934. A British journalist arrives in Moscow on a routine cultural assignment. What follows pulls him across a continent on the brink: through Barcelona in the grip of civil war, across Soviet aerodromes, into the frozen landscapes of occupied Norway. At the center of it all is a substance so rare and so consequential that nations are quietly willing to go to war over it.

Heavy water. Two atoms of hydrogen. One oxygen. The difference between a world that holds and one that doesn’t.

For more information and to pre-order your copy, visit this link: https://www.harpercollins.com/products/d-neal-stephenson

Tour info will be shared later this week. So, stay tuned!

#bookstodon The cover of the 2nd book of thr Bomb Light Series, called

⤋ Read More
In-reply-to » Hmmm are there really no decent Wayland (desktop) compatible image viewers that don't drag in Mesa and all it's hundreds of dependences or GCC and libgcc and it's multi-hour long build time or Rust? geez

@movq@www.uninformativ.de I looked into swagimg. That’s the thing, The latest version pulls in fark’n C++ (geez fuck) and luajit. Anything else I’ve round for Wayland depdns on Rust (wtf?!) – So I built my own in Pure Go. It’s wonderful, so simple, only ~170 lines of Go 🤣

⤋ Read More
In-reply-to » It’s ten thousand million degree celsius outside and I have to go to a birthday party today because wElL iTs My BiRtHdAy ToDaY, I think I’m going to die, send help.

@movq@www.uninformativ.de It is horribly hot and humid here, and is not even 08:00. AC ran overnight for 3+ hours. It is going to be hellish, not going to lie.

Your birthday, or someone else’s? Either way, happy birthday! šŸ„³šŸŽ‚ May many more years come, with good health… and less heat! ā˜ŗļø

⤋ Read More

So I’ve been working on GoNIX the last few days… Which is derived from µLinux – At least it’s entire build process. GoNIX however has a 100% Go userland, including the init process, package and service management.

Now… As an experiment, because I was able to make much process on enhancing the build tools and package management, I decided to see if I could build a ā€œDesktopā€ Gui of sorts…

I still wanted it to be fairly minimal and lightweight. So I went with wayland (of course) and labwc and yambar. So far I’m liking the result šŸ‘Œ 42 packages in the wayland-desktop meta port. Not too bad. Not sure if I can slim that down anymore… But trying to avoid Mesa/GL as that drags in far too much ā€œcruftā€.

⤋ Read More
In-reply-to » I went to check on the fireflies this season. But I didn't see any. Instead lots of moths. At first, I thought it might have been still too light, but it was already dark enough for me to miss and destroy a snail shell. Bummer. Maybe it was too wet tonight. Although, it's probably just another or two weeks until my glowing friends will finally show up.

I found my tripod and headed into the woods. There was a ton of glow. \o/ The fireflies were everywhere, super cool. It looked so amazing, especially with all the flying boys. There was one amazing spot in particular, I had 80-100 individuals in my view at once. Absolutely breathtaking. Unfortunately, the mozzies were also delighted about my visit.

I tried my best, but it’s impossible to capture anything on film with my equipment. The fireflies are just way too dim. In the end, I managed to get some very bright girls in the bush. That’s the best I could do, but still really bad. Sorry @bender@twtxt.net. :-(

https://lyse.isobeef.org/gluehwuermchen-2026-06-19/

And no idea what the heck is going on with the CSS there. Anyway. Garbage to trash, seems fitting. ;-)

⤋ Read More
In-reply-to » Every now and then, I think that I have carefully proof-read my message enough times and hit the "Add message" button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:

Fuck me! I tried to upgrade tview and the first thing I notice is a shitload of added dependency versions:

go.mod | 18 ++++-----
go.sum | 97 ++++++++++++++++++++++++++++++++++++++-----------

My code does not compile anymore as the view.FormItem interface was extended. Get/SetDisabled(…) are quickly implemented, no worries.

But the tview.Primitive (what makes a widget) interface has now a bunch of PRIVATE methods. For focus handling. Would you believe that!? Thanks, I cannot satisfy this interface in my very custom widgets anymore. Okay then, I just embed *tview.Box. tt now successfully compiles, but does not react anymore on key presses and the message tree is not focused either.

I’m not in the mood to debug this shit. :-( Lunch time.

⤋ Read More
In-reply-to » Every now and then, I think that I have carefully proof-read my message enough times and hit the "Add message" button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:

Getting the vim key bindings to work for focus switching in this modal dialog took me forever. Only cursors and (Shift+)Tab are supported out of the box. I absolutely understand that, it’s fine. I installed an input handler on the dialog, but the focus always stayed the same.

After two wasted hours, I was in despair to copy the tview.Modal into my own code base. Of course, I had to fix all the private tview field accesses first. But even installing the input handler directly on the buttons themselves did not work. Even though, the handler was definitely executed, the focus did not shift. Forcing redraws as a last resort also did not work.

Looking through all the messy chained input handling, I eventually stumbled across another place in the tview.Form, which is internally used by tview.Modal. This messed around with app focus receptions and input handlers. This gave me the idea to make the tview.Application refocus my modal dialog after I told the modal dialog which button to select. And would you look at that, this did the trick! I haven’t completely figured out what is going on exactly, but I could get rid of my Modal clone again.

I always go through hell with focus handling in tview. Each and every time. It just does not feel natural to me. Complete brainfuck to wrap my head around. The Urwid API felt sooo much more refined, it never was an issue. It just works. In fact, I cannot think of any other TUI library that has remotely the same pain level when it comes to focusing widgets as tview.

Now I’m curious how movwin deals with that. ;-)

⤋ Read More

Every now and then, I think that I have carefully proof-read my message enough times and hit the ā€œAdd messageā€ button in tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt’s cache. This is rather tidious:

  1. Recall the sqlitebrowser ~/.local/share/twtxt/tt2.sqlite from my shell history.
  2. Switch to the ā€œBrowse dataā€ tab.
  3. Go to the messages table and wait a second or two until it’s loaded.
  4. Sort by the created_at column twice, so that I get descending order.
  5. Select the first message, which is typically the one in question.
  6. Find the ā€œRemove currently selected rowā€ button in the tool bar.
  7. Commit the changes.
  8. Close sqlitebrowser.

So, I finally implemented the removal of messages from the cache in tt. I can now hit d and confirm the removal. Bam! Should have done that ages ago!

Next up is the search, I think.

⤋ Read More
In-reply-to » Oh boy, I absolutely hate this stupid trend of not writing changelogs anymore! Why the fuck would one seriously consider it to be a viable option to just let some shitty bot spew all merge requests on a goddamn GitHub release?! First of all, these merge request titles suck balls. The order of the changes in this "changelog" is completely random (well, probably merge time, which is as useless as the dick on the Pope). They are not grouped by anything at all. Additions, changes, removals, deprecations, etc. randomly mixed up in one giant list. And then "Add feature X", seventeen kilometers further down "Revert 'Add feature X'". Fuck you! Don't include this shit in the first place!

@lyse@lyse.isobeef.org Thanks!

On the AI changelog part, though, I’d rather recommend to just not have a changelog at all.

I’m afraid that ship has sailed. You can rest assured that someone who uses AI/LLMs for their code (which is almost everybody at this point) will most certainly also use it for changelogs.

I actually considered not mentioning AI output at all, because this just opens a huge can of worms … šŸ˜ž

While going through these terrible GitHub release pages, I also found these ā€œNew Project Contributorsā€ sections

Yeah, they play on a nerd’s pride.

Now, it’s just the same auto shitshow with MR titles in a rolling date-versioned release scheme. It’s just our team who has to deal with that, though. I think I’m the only one who is not a fan of it.

I’ve found that this whole situation is much worse at work than it is in the Free Software world. At work, it’s literally work and hardly anybody actually cares. We still don’t have all people convinced that writing good commit messages or using good branch names is worth the time. It’s … oh god, no, I’m going to stop here, this is bad for my mental health. šŸ˜…

Suffice it to say, all release notes at work are now AI-generated. Nobody gives a fuck.

⤋ Read More
In-reply-to » Oh boy, I absolutely hate this stupid trend of not writing changelogs anymore! Why the fuck would one seriously consider it to be a viable option to just let some shitty bot spew all merge requests on a goddamn GitHub release?! First of all, these merge request titles suck balls. The order of the changes in this "changelog" is completely random (well, probably merge time, which is as useless as the dick on the Pope). They are not grouped by anything at all. Additions, changes, removals, deprecations, etc. randomly mixed up in one giant list. And then "Add feature X", seventeen kilometers further down "Revert 'Add feature X'". Fuck you! Don't include this shit in the first place!

@movq@www.uninformativ.de Hahaha, great timing! :-D I love your article and agree with almost all your points.

On the AI changelog part, though, I’d rather recommend to just not have a changelog at all.

Another important thing for me is the deprecation notice section. What do I need to look out for in the future? Should I start to migrate to another API soon? Even right now? Or does it have time?

While going through these terrible GitHub release pages, I also found these ā€œNew Project Contributorsā€ sections (yeah, for that, they found the time to make a section) annoying. Don’t get me wrong, sure, credit where credit is due. But come on. Soooooo much space for an inefficiently formatted (and also unsorted) list. At least it was easy enough to skip over it.

And then, there are also these changelogs or rather notice documents in general that are infested with multicolored emojis all over the place. My brain’s spam filter kicks in and shoves everything to /dev/null immediately. It’s especially a thing at work.

In my previous work project, we also used the Keep A Changelog Format. That was great. You wouldn’t believe how often I resorted back to that document. At least twice a week, often several times a day. I was very glad that we put in this effort. Of course, writing the changelog took its time, but it was worth every minute and more. Reading a many months old item, it was immediately clear. I was our best customer in that regard.

Now, it’s just the same auto shitshow with MR titles in a rolling date-versioned release scheme. It’s just our team who has to deal with that, though. I think I’m the only one who is not a fan of it.

⤋ Read More

Got absolutely jack and sick of all the fucking useless bots, C&C and shitā„¢ hitting my Git server tonight 🤬 So I sat down and built a lightweight version of Anubis, called caddy-pow. So now going forward, you’ll have to (sorry) have a HS-enabled browser to hit git.mills.io which will hopefully make most (if not all) bots just go the fuck away šŸ¤¦ā€ā™‚ļø #Hostile #Web

⤋ Read More
In-reply-to » Well, that might work... https://codeberg.org/awful-systems/AAA-NO-SLOP.md 🤣

@itsericwoodward@itsericwoodward.com Yes, but is how we want to be behaving. We don’t like something so we go out of our way to be malicious and poison things? I get it though, the hypocrisy is very real here, with burning trees, eating up water supplies, and the massive amounts of energy going into this, but still, this is petulant behaviour and I don’t think it services any useful purpose other than rage and anger.

⤋ Read More
In-reply-to » Now that is an interesting move:

@prologic@twtxt.net As have I. šŸ¤” I mean, since I left GitHub, I got basically 0 pull requests anyway.

Even during my time using GitHub, I noticed that ā€œdrive-by PRsā€ are rarely a good idea. People don’t really know/understand the code or the design principles/goals, so I often turned down PRs. Or I accepted them and was grumpy afterwards. šŸ˜…

What does work is having a team of maintainers/devs. The only question is: How do you build such a team if you don’t accept PRs? That’s going to be the interesting part.

⤋ Read More

Okay. I have lost the ā€œbattleā€ against ā€œAIā€ at work and I will no longer try to ā€œfightā€ any of it.

It is simply what people want. They want to use it. And that’s the end of it.

And why do they want it? Because it makes their job easier. And why is that? In very large parts, it’s because we have accumulated a metric fuckton of technical debt due to decades long mismanagement. We were (and are) operating in ā€œemergency modeā€ all the time. There simply was no time to clean things up or to rethink designs. We always have to go with the cheapest and quickest solution. We are never ahead of things: Earlier this year, I started an initiative and wanted to tackle some issue that I could see coming. I was shut down because this wasn’t ā€œurgentā€. Very soon after, this exact thing became that exact problem – but now, there was no time anymore to do it properly because NOW it’s urgent, so, once again, we had to go with a quick and dirty solution.

It’s always like that and I had brought it up again and again. And now we have a huge spaghetti mess that hardly anyone understands anymore.

Nobody – except AI. It can still make some sense of this and, obviously, this is useful to people.

So, any argument I make against AI is completely pointless to begin with. I’m such a fool for not having seen this earlier.

The last argument I made today was: ā€œLook, we already have so much technical debt and spaghetti systems, we really, really must clean this up. If we throw AI on top of this now, it’ll only get so much worse.ā€ And once more, I was shut down. My intentions were ā€œadmirableā€, but ā€œthere’s no time for thatā€.

Okay. Good luck with that. They’ll keep doing it this way. At some point, it’ll either explode entirely and some poor soul has to clean it up, or it’ll explode and they’ll have no other choice but to throw everything away and start from scratch – assuming they can still afford that.

In other words, none of this about AI, really, nor caused by it. Our department’s massive spike in AI usage is just a symptom of the underlying management issues. And since those aren’t being addressed, nothing will change and this whole mess will only get worse.

(I blame all this on management, because, well, that’s who’s to blame. I do not have a solution for it, though – and assigning blame without constructive criticism always sucks big time. I don’t like doing this. If you had put me into that particular management position, I wouldn’t have been able to solve any of this. The thing is, though, I’m not an expert on management and it isn’t my job – I’m just the ā€œprincessā€ who solves your technical issues.)

⤋ Read More
In-reply-to » how r y'all doing?

I join the tired masses. So tired, I slept through my alarm this morning (something that hasn’t happened for over 20 years, easily), and wife woke me up asking ā€œAren’t you going to work today?ā€ So yeah, I could have slept for a while more this morning, for sure.

⤋ Read More
In-reply-to » @lyse Oh, nice. That was quite the ride. :-) And all that because of locales. 😳

@movq@www.uninformativ.de Hahaha, a ride indeed. Exactly, this affected each and every Atom feed and only Atom feeds. All RSS feeds worked like nothing ever happened. This std::string to time_t to std::string to time_t dance only happens for Atom feeds. RSS feeds, on the other hand, go right from std::string to time_t and be done. That’s precisely what the second option is aiming to propose for Atom feeds, too.

I will clarify that tomorrow in the article.

It’s very interesting what kind of quirks accumulate in software over the years. Especially quirks, the basically noone knows of anymore. Until something explodes and gets rediscovered. Luckily, that doesn’t happen all that often.

⤋ Read More
In-reply-to » Over there, on the othernet, I just stumbled upon the question:

@arne@uplegger.eu I’m similar… I use ā€œIā€ most of the time (mostly in planning or trying to focus, ex: ā€œI’m going to do X, then Yā€), but I also use ā€œyouā€ when fussing at myself for my perceived faults or mistakes (that’s my ā€œlizard brainā€, we don’t get along so well because he’s kind of a jerk).

⤋ Read More
In-reply-to » @movq I'm very curious...

It’s one of the reasons in fact I’ve been working on bob so I have a very concrete and strong foundation for how these things work, how they behave and how bad or good they can be. I am on-purpose building bob to be not only a decent coding tool and general task completion tool, but with serious security boundaries, sanitation, auditing and compliance. If I’m going to succeed at building autoonmous agents that can cope with a wider array of varying inputs (mostly natural language, some structural language) then it needs to be both a) Safe and b) Robust

⤋ Read More