Searching yarn

Twts matching #FUN
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.

@movq@www.uninformativ.de There are some other interesting facts about this funnel shaped tower. Now that this message is long enough that jenny has cut off the first few words for the subject, I can be sure that it’s not spoiled right away. This wall of text for the introduction also helps with any other clients.

Please excuse me, I hope you had some fun reading my fictional explanation. It’s just a water tower: https://de.wikipedia.org/wiki/Wasserturm_Eichert

Interesting, I didn’t know that water towers are basically obsolete these days.

⤋ Read More
↳ In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@jecxjo@sh0.xyz Always using UTC in logs helps a ton.

The worst are logs were timestamps miss any timezone information at all. Makes me furious.

Dealing with time is always great fun…

⤋ Read More
↳ In-reply-to » I'm off for a week on a week-long trip up north (Australia), to a place called Yeppoon. I'll be sporactily around on Yarn/Twtxt, but probably having too much relaxing fun with my family 😅 Cya's in a week or so 🏝️

@prologic@twtxt.net I expected Yeppoon to be way more north. :-D But it’s indeed north of you. Have fun! The weather forecast doesn’t sound too bad.

⤋ Read More

I’m off for a week on a week-long trip up north (Australia), to a place called Yeppoon. I’ll be sporactily around on Yarn/Twtxt, but probably having too much relaxing fun with my family 😅 Cya’s in a week or so 🏝️

⤋ Read More
↳ In-reply-to » I've been away with the scouts in our district summer camp. The nearly two weeks were absolutely amazing, mentally a great vacation. On the other hand, physically not so much. But I've still got Monday to recover from my holiday. :-)

And here some photos of the crazy kitchen we had at our glamping trip. Of course, it was waaaaaaaaaaaaay oversize. It’s typically used to feed several hundred people, not just only 70ish. Although it was really fun to work in, cleaning the whole thing took an entire day. We completely underestimated this.

https://lyse.isobeef.org/2026-09-07-willy-brandt-zeltlagerplatz-kueche1/

⤋ Read More

Awful 33°C today. But I had to move, no matter what. So, I went outside. At first, the sun was out a bit. It was brutal. Later it vanished behind the clouds. But the humidity was still through the roof.

I watched the corn harvest I came across. Dusty as hell, but it was great fun observe the machineries work.

Going up my backyard mountain, there weren’t many people around. I was pleasantly surprised. However, the smaller hill below was rather crowded. Many people with picnic mats, enjoying their dinner, painting A3 love letters, claiming all available benches, taking wedding photos, walking their dogs, etc.

The public barbecue site at the summit is still closed due to the ongoing fire hazard. I found it rather funny to see a fire extinguisher ready to go next to it. The bread and cake smell disclosed that the Mountain Baking Boys were active. The large oven right next to the BBQ was still going strong.

https://lyse.isobeef.org/waldspaziergang-2026-08-27/

⤋ Read More
↳ In-reply-to » @lyse Huh, didn’t expect that. :-D

@movq@www.uninformativ.de @itsericwoodward@itsericwoodward.com Hahaha, a festival, indeed! :-D There was also “Raupenkrieg” (caterpillar war): jumping against each other in sleeping bags. I reckon that counts as pogo or mosh pit.

And back in the days, we had wonderful deep mud all around us, too! In extreme years we even needed to leave the camp ground for a day and walk to a gym with all the kids. There was just too much rain and the creek dangerously high.

We once had an actual creek running through the dining tent before the kids arrived. Luckily, it didn’t originate from the official creek, but the water came down the hillside. Unimaginable today with all these droughts in summer. Many creeks around here are dried up for several weeks, if not months now.

There you go, enjoy my favorite selection of yummy chocolate on the ground!

It was a question of the mindset. Once we supervisors just made the best out of it and tried to had fun, the kids typically didn’t mind the mess either. Besides building huts, one of the most favorite things ever was actually “Matschschöpfen” (scooping mud). The kids scooped puddles into wheel barrows using giant soup ladles from the kitchen. “Sorry kids, time is up for today. Whoever sits in the closing circle first gets to go first tomorrow.” Unfortunatly, I don’t find any photos from that.

⤋ Read More

In #Magic last night, I debuted my new #Dune deck with an underwhelming performance - perhaps unsurprisingly for a desert-focused deck, I faced a real drought, starting the game with only 1 land in hand (even after a mulligan) and not pulling another land until turn 4(!). Because of our house starting mana, I wasn’t totally sunk, but everything I got out was just luck. I did die last thanks to my big wurms (so I guess I was 2nd place?), but still… underwhelming.

For game 2, I wanted to bring the thunder (especially after my pitiful performance last week), so I dusted off my Night of 1000 Squirrels deck (headed by the infamous Chatterfang, Squirrel General). By turn 3, the #squirrel army was forming, and thanks to well-timed casts of Fog and Make a Stand, the squirrels managed to overrun everyone just a few turns later.

Another fun night overall. I won’t be able to play for the next few weeks, so I’m glad this one ended with a win. 😁 #mtg

⤋ Read More
↳ In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@david@daiwei.me It’s like Rummy but with more freedom which makes it a hell lot more interesting. You’re allowed to manipulate everything that’s on the table, trigger jokers, recombine the cards as long as there are at least three in a row after your move, not just simply add cards to existing rows (or whatever the correct terminology is). It’s good fun and mental exercise.

⤋ Read More

Although I was initially concerned that adding modern Marvel superheroes to the high-fantasy worlds of “Magic: the Gathering”” would be too aesthetically dissonant, instead it’s gotten me back into deck building in a big way.

Since the set was released last month, I’ve built: a 5-color Super Villains deck, two 5-color Superheroes decks, plus a 5-color tribal Mutant Ninja Turtles deck (built from the best cheap singles from the TMNT set from earlier this year, a set that was a bit more dissonant, but still weird enough to be fun).

And then there’s the proxies…

⤋ Read More

Hurray, I can now press gg instead of g to go to the top in tt. Much better! :-) Other multi-key combinations are also easily possible now.

I should probably write a real article about this at some point, but here we go. The only downside with my new key binding system is that it breaks tview’s established pattern. You’ve got an InputHandler(), that is implemented using WrapInputHandler(…). It typically then directly implements the switching logic depending on the key press. Something like this:

func (w *Widget) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    // WrapInputHandler allows for intercepting key events with SetInputCapture(…)
    // from the outside for customization. This handles the default key bindings.
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        switch event.Key() {
        case tcell.KeyRune:
            if event.Modifiers() == tcell.ModNone {
                switch event.Rune() {
                case 'k':
                    w.scrollUp()
                    return // we already handled the event, stop processing

                case 'j':
                    w.scrollDown()
                    return
                }
            }
        }

        // We didn't handle the key event. Maybe the parent
        // widget knows what to do with it.
        if handler := w.parent.InputHandler(); handler != nil {
            handler(event, setFocus)
        }
    })
}

From the outside, you can intercept and either stop or continue the widget’s original key handling with a potentially rewritten key event using SetInputCapture(…):

w := NewWidget()
// customized or additional key bindings
w.SetInputCapture(func(event *tcell.EventKey) *tcell.EventKey {
    switch event.Key() {
    case tcell.KeyUp:
        // Rewrite the event, so the "cursor up" key is an alias
        // for the vim key binding "k", that is handled by the
        // wrapped input handler above. (I know, I know, this is a
        // completely unrealistic example, why would anyone use
        // cursor keys when there are vim key bindings available?!)
        return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)

    case tcell.KeyRune:
        if event.Modifiers() == tcell.ModNone {
            switch event.Rune() {
                case 'q':
                    app.Stop()
                    // we already handled the event, do not pass it
                    // to the wrapped input handler above
                    return nil

                case 'r':
                    toggleMessageReadStatus()
                    return nil
            }
        }
    }

    // we didn't handle the event, pass it to the wrapped
    // input handler above
    return event
}

Since they all expect a single key, I’ve noticed that using multiple dedicated KeyBindings of mine on these different levels kinda breaks multi-key handling with common prefixes. The outer-most KeyBinding captures the prefix, but it can’t transfer it to the inner one if not handled by the outer one. At least not without some more (potentially ugly) changes. So, I now have to work with just a single KeyBindings object for the entire widget chain (if it consists of multiple other widgets or the regular input handler and input capture are in the game). The outside needs to register all its key bind customizations or extensions at the same level that the original widget handles its default ones. Doable by exposing the widget’s KeyBindings instance, but not pretty. You always have to keep this in mind.

With the KeyBindings, it will look like that:

type Widget struct {
    parent tview.Primitive

    // make it available to children or the outside either by
    // direct field access or by providing a getter method
    KeyBindings *bind.KeyBindings
}

func NewWidget() *Widget {
    w := &Widget{KeyBindings: &bind.KeyBindings{}}
    w.KeyBindings. // default key bindings
        Bind0(bind.KeySequence('k', w.scrollUp).
        Bind0(bind.KeySequence('j', w.scrollDown)
    return w
}

func (w *Widget) InputHandler() InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        // also note the missing support for focus transfer at the moment
        event = w.KeyBindings.Capture(event)
        if event == nil {
            return
        }

        if handler := w.parent.InputHandler(); handler != nil {
            handler(event, setFocus)
        }
    }
}

And then from the outside, or in a child widget:

w := NewWidget()
w.KeyBindings. // additional or customized key bindings
    Bind1(bind.KeySequence(tcell.KeyUp), func(*tcell.EventKey) *tcell.EventKey {
        return tcell.NewEventKey(tcell.KeyRune, 'k', tcell.ModNone)
    }).
    Bind0(bind.KeySequence('q'), app.Stop).
    Bind0(bind.KeySequence('r'), toggleMessageReadStatus)

When directly working with tview primitives that are not part of custom widget implementations, the following works well so far:

textView := tview.NewTextView().
    SetWordWrap(true).
    SetText("…")
    SetScrollable(true)
textView.SetInputCapture((&bind.KeyBindings{}).
    Bind0(bind.KeySequence('q'), app.Stop).
    Bind1(bind.KeySequence('g', 'g'), func(*tcell.EventKey) *tcell.EventKey {
        return tcell.NewEventKey(tcell.KeyHome, 0, tcell.ModNone)
    }).
    Capture)

I need to sleep on this some more.

Also, writing very long messages like this one is really not all that fun in tt’s editor. I should absolutely provide a way to shell out to vim.

(Took me about one and a half hours to compose, holy crap. But not only because of not using vim. Although, that might have saved me a quarter hour or so for sure. Proof-reading this message also uncovered quite a few bugs in my real documentation. So, that’s a big win!) Good night!

⤋ Read More
↳ In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@david@daiwei.me Ta, I continued my fun with studying the tcell and cbind code bases for key bindings. My plan is to eventually not only support custom key bindings in the tt configuration file, but also to enable multi-key sequences, such as gg to jump to the top of a list/tree. Or use other vim-like navigation movements like 7j or 25gg etc.

And it turns out there are only a hand full oft tcell/cbind version combinations that work together. Only if all stars align, there’s chance of success. I will probably end up pulling cbind in to simplify my life. There are situations where tcell.EventKey’s triple of key, modifiers and rune are not all that intuitive to me. Let’s see.

⤋ Read More
↳ In-reply-to » @lyse Awww, that sounds like a typical experience at school. 😅 They meant well but somehow it was still shitty …

@movq@www.uninformativ.de Hahaha. It could have been worse, though. I’ve heard stories from others that were many levels crazier than what I experienced. And I’m glad that I was very, very lucky with almost all of my teachers throughout all of school. One of my maths teacher, who was also my computer science teacher then, is the reason I do what I do for a living. It’s all his fault! ;-)

Ja, possibly a BaWü thing. The ministry of education and cultural affairs changes the rules, curriculums and details every one or two years, anyway.

Said teacher had to fight real hard that he was allowed to teach CS in class 12 and 13. As a real subject, that is, not just an extracurricular activity („AG“). At first, the ministry refused, because we’re just am „allgemeinbildendes Gmyi“, not an „informationstechnisches Gymi“. It’s insane, you’ve got super motivated (and technically as well as humanly excellent) teachers and then forbid them to offer a class. What the hell!? (Fun fact on top, he had a doctor in CS and was also teaching at the university of applied sciences.)

Eventually, they granted permission to only have a two hours a week class („zweistündig, wie Nebenfach“). One or two years later – too late for me, unfortunately – they allowed four hours a week („vierstündig, wie Hauptfach“). But each pupil had to sign upfont that they will not take CS class in the Abi. That was still exclusive to ITGs only. Completely ridiculous.

I reckon, you can talk to any random teacher and they will endlessly tell you about very dubious decicions from the ministry. :-/

⤋ Read More
↳ In-reply-to » @lyse By the way, which site generator are you using? I kind of miss having code blocks with syntax highlighting and that generic yellow highlighting thing is pretty cool, too.

@movq@www.uninformativ.de It’s the “Lyse types the entire HTML by hand” generator. Yes, no kidding. I write articles so rarely, that I can do that once in a while. It’s fun to some degree, but also not.

After some time, I finally recorded some Vim macros to insert <b>…</b>, <var>…</var>, <span class=s>…</span> etc. around the tokens. This helped a little bit. But I was still questioning my mental state doing it like that. I also had to fix a bunch of the end tags by hand, because the word movement wasn’t enough or the end movement went too far. Quite the annoying process for sure.

But I think the HTML looks a wee bit nicer and is maybe even semantically a little bit better than having only <span>s everywhere. I find the <span class="whatever"> just soo awfully long. Of course, I never look at the code again, but knowing, that e.g. there is a <b> and it saves so many bytes in comparison, makes me happy. It is a more elegant solution in my opinion. Not by much, but better nonetheless. It’s a matter of simplicity. Admittedly, even I can’t avoid the <span>s alltogether. Oh well. On the other hand, I’m sure that this does not make any difference whatsoever. I bet, nobody and nothing, like a screenreader, analyzes the HTML for that, where this would be truly useful.

Oh! Maybe text browsers, though. It just occurred to me while composing this reply. :-) Haha, I lost my bet quickly. w3m picks up at least the <b> for keywords and builtin types, <u> for filenames and <i> for comments. Yey. No different styles for <var> and <mark>, unfortunately. elinks only renders the bold. It’s cool that I had the right intuition right from the beginning, despite being unable to pinpoint it. :-)

All the <span> hell with common syntax highlighters is a downer for me that keeps me from looking more into them. If I wrote more articles, I might rig something up with Pygments. At least that’s somehow positively connotated in my brain. Not sure if it actually deserves it, but I dealt with that in some loose form (can’t even remember) years and years ago. Apparently, it wasn’t too terrible.

To prepare the table of contents, I used grep and sed with some manual intervention in the end. The entire process can be improved. Absolutely.

You wrote your own site generator, didn’t you?

⤋ Read More
↳ In-reply-to » @prologic @bender Thanks! Yeah, it already supports Twt Hash via twtxt-lib (both v1 and v2, when the time is right), plus most of the other features (multiline, user-agent, and metadata), and I'm working on (re-)implementing threading, mentions, and hash filtering (to make conversations easier to follow).

Nice work! Threading + mentions is where it gets fun 😅 Ping me if anything in the spec is unclear 👌

⤋ Read More
↳ In-reply-to » @movq Thanks. I noticed the <updated> of the feed, too. But for some reason, some articles were suddenly marked as new.

Aha, yesterday’s newly added support for LC_TIME to render localized timestamps also broke the feed parsing with my LANG=de_DE.UTF-8 and LC_CTYPE=de_DE.UTF-8 environment. :-)

Atom feeds make use of RFC 3339 timestamps. They are first converted into RFC 882 timestamp representation, which is the one that RSS feeds use. However, this conversion now results in localized RFC 882 timestamps, which cannot be parsed into Unix timestamp numbers via curl_getdate(…). I bet that it doesn’t know about the localization at all and expects English month and weekday names. Looking at its docs, I reckon that function was selected because of its myriad of supported timestamp formats: https://curl.se/libcurl/c/curl_getdate.html RFC 3339 is not included, though, hence the transformation up front.

The intermediate Item objects in the parser domain use std::string for the timestamp representation. This isn’t all that silly, because Newsboat supports all sorts of different feed formats with different timestamp formats. These RFC 883 timestamps are centrally parsed into time_t.

Speaking of time: It’s time to go to bed after this late bug hunting fun. :-)

⤋ Read More
↳ In-reply-to » @lyse (Do you want to be linked on that page? Do you want your name to be there at all? 🤔)

@movq@www.uninformativ.de I really like your style of writing, btw. It’s much calmer and less aggressive then mine. :-) When I turned my bullet points into paragraphs, I got a bit mad in the process.

Sure, feel free to include anything you want. Regarding citing, this is where twtxt falls short in my opinion. Especially with feed rotation, classic links die quickly. Message hashes only help so much. Nobody outside the twtxt universe knows how to deal with them. So, not perfect for inclusion on a web page. Linking to a thread or message on some yarnd instance might be the more user-friendly option. But the disadvantage is that it’s “just” a mirror, not the primary or original source. In all reality, this could be considered splitting hairs, though.

I should have probably written a proper article. That would have given me time to review the result more carefully, too. ;-) Perhaps that’s something for the future. But honestly, I’m not sure if I really want to waste my time and energy on that subject. So many other fun or useless things come to mind right away that I could do instead. 8-)

So, yeah, do whatever feels best to you. I don’t mind being cited or linked, but I also don’t mind not to be cited or not to be linked to. :-D Not a helpful answer, I know. Sorry. ;-) But anyway, thanks for asking, mate! I do appreciate it.

To finish my thought, linking to my frontpage is probably also useless, since I deliberatly do not have a table of contents there. In fact, my entire frontpage is rather silly.

⤋ Read More
↳ In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@tftp@tilde.town you say that like it is a bad thing. It is not! 😅 Once you have learned your way around, all works together quite lovely. Of course, experimenting with new clients is fun too!

⤋ Read More

I’m pleased to announce that express-twtkpr (my ExpressJS library for hosting, editing, and posting to a twtxt.txt file) continues to crawl towards a full release with another (pre-alpha) update published to NPM. This update includes a whole new plugin system, and even a (little) more documentation. Check it out, if you dare (and use it at your own risk): https://www.npmjs.com/package/express-twtkpr

And speaking of plugins, here’s where the fun’s at: announcing express-twtkpr-core-plugins, a set of 3 plugins for your TwtKpr install: emojiButton, uploadButton, and postToMastodon. Like express-twtkpr, this set of plugins is still in pre-alpha, and lacks documentation, examples, tests, installation flexibility, or polish (so also use them at your own risk). Other than that, they work great: https://www.npmjs.com/package/express-twtkpr-core-plugins



Stay tuned for more! 🤘

⤋ Read More
↳ In-reply-to » @lyse your wildlife photography is getting much better! Got to name them, what do you think? Too early? :-)

@bender@twtxt.net I misread that sentence and thought that your first crush was called Gisela, and was like “wait, he’s not that old”.

Turns out, Gisela is a much younger name than I thought:

https://namecensus.com/first-names/gisela-meaning-and-history/

A peak in the late 1970is and late 1990ies? What?

But then it turned out that, in Germany, the popularity dropped rapidly in the late 1950ies, which actually matches my expectations:

https://www.beliebte-vornamen.de/5203-gisela.htm

In other words, some other countries picked up the name Gisela after it had already faded away in Germany.

What a fun rabbit hole. 😅

⤋ Read More
↳ In-reply-to » @lyse Turns out, this actually was a little machine once (small netbook): https://movq.de/blog/postings/2011-04-28/0/POSTING-de.html And then I moved the whole installation to a different laptop later. I love that you can easily do that on Linux.

@movq@www.uninformativ.de Oh, nice! I never was brave enough to try to move the OS to a different machine, always reinstalled from scratch. :-S

A mate also had this or a very similar white Samsung netbook. I remember typing on that thing was no fun at all for me, never hit the single right key. :-D

I’m not a fan of netbooks, there’s not remotely enough screen space for my taste. I always had 15 inch notebook. Sure, they are way heavier, but I can actually get work with them done. And yes, glared screens are an invention right from the devil himself. Completely stupid.

⤋ Read More
↳ In-reply-to » how is everyone's week going?

@kiwu@twtxt.net I returned home from an on-site week at work. Commute was an adventure every day. It started off with a canceled train on Monday morning. Luckily, some very good mates granted my asylum. But even with shorter rides, I faced delays due to fuckwits on the tracks, then the train was terminated early due to the large delay, so we had to change trains. On the bright side, they then sent an entirely empty one, but I don’t get why they just didn’t continue with the first one instead. Due to another delayed train I didn’t catch my connection and the next one was canceled, so I had to wait for the following one. Super great fun. I’m very exhausted now and am very glad that I had already filed in flex time for tomorrow before the on-site event was scheduled.

Meeting my workmates in person was actually nice. It’s okay to do that once a quarter, I don’t need to do that more often. We should have had more meetings, though, trying to work in the office was expectedly incredibly inefficient. We certainly would have had more topics to actually discuss and think about. And most of them would have really benefited from nearly everybody being in the same room. Anyway.

Today, I even met my workmates from past projects in the office, too. So, the socializing was great.

⤋ Read More

We cleaned up the forest today with the scouts at absolute dream weather. Blue sky, no clouds, 19°C sunshine. In the morning it was still quite chilly and windy, though. We didn’t find anything spectacular, maybe a rubber dinghy, three car tires and a broken ratchet strap are the most outstanding things to me apart from all the general rubbish, cigarettes, glass, wet wipes, etc. Still, a very fun activity. In the end we had bockwurst, grilled cheese and lye buns on the camp fire.

I then went for a quick stroll with my mate. It’s crazy how quickly the clouds moved in, 30-45 minutes tops. There will be rain in an hour. And the coming days only reach half the temps. I’m glad I took advantage of the great spring day. Haven’t seen Azabache yet and with the rain on deck, the odds are against him and me.

https://lyse.isobeef.org/waldspaziergang-2026-04-11/

⤋ Read More
↳ In-reply-to » Eehhh, what the hell is going on here!?

@movq@www.uninformativ.de Yup, I’ve also seen the floating point conversion happening with (1 << 63) - 1 yesterday night. But instead of pausing to think about it for a second, somehow all I had in mind was “give me a better representation, ain’t gonna have time for this shit”, so I turned it to hex. Beyond my comprehension what I was thinking there. O_o That’s embarrassing, unbelievable. Well, I blame late o’clock where my brain had already quit on me and went to bed.

Very interesting data point you raise there. The fun part didn’t cross my mind yet or at least I couldn’t pinpoint it. In hindsight it’s totally obvious, though. Past experience also tells me the exact same. Dealing with a problem and researching something myself is a so much more better teacher. The longer I faced up with a topic, the higher the chance to really manifest in long- or at least mid-term memory. If I just get told something, the odds are that it’s completely erased from memory in a matter of days if not hours.

⤋ Read More
↳ In-reply-to » Eehhh, what the hell is going on here!?

@lyse@lyse.isobeef.org AI result ahead, feel free to ignore.

I “asked” the AI at work the same question out of morbid curiousity. It “said” that SQLite converts that integer to floating point internally on overflows and then, when converting back, the x86 instruction cvttsd2si will turn it into 0x8000000000000000, even if the actual floating point value is outside of that range. So, yes, it allegedly actually saturates, as a side effect of the type conversion.

I couldn’t find anything about that automatic conversion in SQLite’s manual, yet, but an experiment looks like it might be true:

sqlite> select typeof(1 << 63);
╭─────────────────╮
│ typeof(1 << 63) │
╞═════════════════╡
│ integer         │
╰─────────────────╯

sqlite> select typeof((1 << 63) - 1);
╭──────────────────────╮
│ typeof((1 << 63) ... │
╞══════════════════════╡
│ real                 │
╰──────────────────────╯

As for cvttsd2si, this source confirms the handling of 0x8000000000000000 on range errors: https://www.felixcloutier.com/x86/cvttsd2si

The following C program also confirms it (run through gdb to see cvttsd2si in action):

<a href="https://yarn.girlonthemoon.xyz/search?q=%23include">#include</a> <stdint.h>
<a href="https://yarn.girlonthemoon.xyz/search?q=%23include">#include</a> <stdio.h>

int
main()
{
    int64_t i;
    double d;

    /* -3000 instead of -1, because `double` can’t represent a
     * difference of -1 at this scale. */
    d = -9223372036854775808.0 - 3000;

    i = d;
    printf("%lf, 0x%lx, %ld\n", d, i, i);

    return 0;
}

(Remark about AI usage: Fine, I got an answer and maybe it’s even correct. But doing this completely ruined it for me. It would have been much more satisfying to figure this out myself. I actually suspected some floating point stuff going on here, but instead of verifying this myself I reached for the unethical tool and denied myself a little bit of fun at the weekend. Won’t do that again.)

⤋ Read More
↳ In-reply-to » Just a couple of shots from our trip to Bald Rock—finally got reception so I can share them!

Lovely pics, mate! Looks like the weather cooperated nicely too! 😍 Take more, share, but, most importantly, continue having fun! 🙏🏻

⤋ Read More

Finished reading Just for Fun, by Linus Torvalds. As a Linux/Unix geek, it’s an interesting story, also fun. Would like an update ★★★★ 📗

⤋ Read More

I thought that YouTube finally destroyed all the feeds, because I didn’t get any new entries in my newsreader for days. Now I realized that Newsboat somehow just froze. No idea what happened. This is the very first time ever in all those years. Haven’t updated the version for literally years. I reckon I will compile the upcoming version then. This will require a new Rust toolchain, that’s going to be great fun, I’m sure. Already looking forward to that…

⤋ Read More

Finished reading Project Hail Mary, by Andy Weir, this afternoon, just in time for catching the movie tomorrow. A really fun read ★★★★★ 📗

⤋ Read More
↳ In-reply-to » @lyse he will tell you, like in "The Princess and the Pea", it was horrendous, but I made it to dawn!

@bender@twtxt.net Just for fun, I made it through the entire Wikipedia article and I find it interesting, how deeply one can analyze a fairytale. :-D This also made me realize that, as a kid, I never questioned why the princess was traveling alone without any servants etc.

Finally, the Danish language lacks the subjunctive. Wow! I didn’t know that.

⤋ Read More
↳ In-reply-to » hi yarn! what is everyone working on today?

@kiwu@twtxt.net I am trying to read our Information Security Office “mind” to grasp what they want. So far they seem to want to get logs from our BIG-IP F5 load balancers into Azure Sentinel, but the Telemetry Streaming plugin normally used for it is on maintenance mode, with deprecations happening on the F5 and Microsoft side soonish. So, yeah… “fun”. Oh, and they want it on production by tomorrow. LOLz!

⤋ Read More
↳ In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@movq@www.uninformativ.de I don’t have any statistics, just observe what is around me, so it’s very subjective. I know a bunch of kids with names I’ve never heard before. Sometimes, I first thought other kids were making fun of their friends by calling them by made-up nonsense. But no. Without question, I live under a rock. I just looked up some of them that came to mind immediately and they seem to be of Greek, Swedish and Latin origin, etc.

⤋ Read More

What a beautiful, beautiful 0°C Sunday arvo and evening! The weather forecast delayed the snow by the minute. An hour or so after it finally started very, very lightly, I headed off for the woods to check out the lake again. Unfortunately, with the fresh snow layer, the crazy wild surface texture of the ice sheet wasn’t visible anymore. But it brought some other nice views and photo opportunities.

I initially thought that I just go for a quick turn. However, with the snowfall a wee bit increasing I was hooked and kept going. Visibility was poor, but the snow blankets just looked too stunning. The road surfaces were quite slippery, so I often just walked alongside the pathways. On downhill slopes I had some good fun sliding down the road on my feet. With varying success. Luckily, I managed not to fall.

On the summit of the mountain the twigs had those absolutely magnificently looking windblown crystal coverings. Awwwwwww! They never get old. It was already getting dark, so the camera was tired and wanted to sleep. The snow program then made use of the flash and I’m quite pleased with how these shots turned out.

Two deer crossed the road in front of me and ran into the woods, that was sight for sore eyes. Although I felt bad that they had to flee from me in this white terrain. By the time I got home, the snow had accumulated around eight centimeters in height, even in town down in the valley. Walking on this fresh snow is just amazing. And I love the sound it makes. Today, the snow consistency must have been just right, because the crushing sound was really loud.

I cannot recall that I had frozen hair and beard before, but today, there was a thick ice buildup. In case I had, it was definitely never this much. Felt really cool.

Enough of this preliminary skirmishing, there ya go: https://lyse.isobeef.org/waldspaziergang-2026-01-25/

⤋ Read More
↳ In-reply-to » The original twt is unavailable. It may have been edited or deleted, or is from an unknown or muted feed.

@movq@www.uninformativ.de my mum, who hand washed clothes for many, many years, would stare at you, incredulously, and tell you, “have fun with that!”. Hand washing a ton of clothes, including sheets, etc., is a royal, glorious, pain! Now drying it, when you live on the land of eternal sunshine, is a different matter.

⤋ Read More