Searching yarn

Twts matching #3
Sort by: Newest, Oldest, Most Relevant
In-reply-to » And a trip to my backyard mountain again. It was very windy, so the 16°C felt even cooler than that. But it will be back in the twenties tomorrow when I visit a mate for a hike, oof.

I completely forgot, I saw my very first badger in the wild the day before yesterday. :-) That was absolutely cool! <3

I heard something comparatively large rustling in the bush right next to me and thought that it must be dear. Naturally, I stopped and tried to see what’s in there. The rustling went up the bank and it suddenly came down again towards the road I was on. That’s when I first layed eyes on it and identified it as a badger. For a split second I thought that it’s going to get after me and was ready to get running. But it just hadn’t noticed me yet. When it eventually spotted me, it froze for a few seconds and ran off uphill. My camera took too long to boot, so it was already gone by the time the photo machine was good to go.

⤋ Read More
In-reply-to » Fuck me dead, our sky burned down once again! https://lyse.isobeef.org/abendhimmel-2026-04-28/

@prologic@twtxt.net @movq@www.uninformativ.de @bender@twtxt.net Thank you very much! <3

I only filtered out the noise floor of the camera itself. I selected one second of ā€œsilenceā€ in Audacity and used the ā€œEffectā€ → ā€œNoise reductionā€ (Rausch-Verminderung in German) dialog with its default settings. I repeated that two or three times in total with different sections of ā€œsilenceā€. It’s very hard to find something where there is really no other bird singing in the background. But in contrast to the original audio, the edited version is noticeably more squeaky I find.

Oh, and I increased the volume. Especially after the noise reduction, everything is a bit quieter.

I got rather lucky, only a few cars went by and my microphone is too shitty, to really pick it up. :-D It’s kinda drowned out by the background noise. 45 seconds into the video, a car passes. Also at 1:10 without a doubt. I’m sure there were actually many were. Most of them passed behind me, the mic is facing away from that sound source. Of course, the densely built-up area still reflects a lot.

It also helped that Azabache is a loud singer himself. Fortunately, no idiots screaming either.

If you want to compare yourself or play around to see what other improvements you are able to achieve, I uploaded the original from the camera in the same directory under the lovely name DSCN5687.MOV. It’s 236.1 MiB in size.

⤋ Read More

I won our only game of Magic for this week with my (yet-to-be published) ā€œBolas Triumphantā€ deck: 5 players over 3 hours, including 4 board wipes (one of which came from my Nicol Bolas, God-Pharaoh), and I even got to cast Omniscience via a Fae of Wishes. I can’t speak for everyone, but I know I had a good time. 😁

⤋ Read More

As an enjoyer of delightfully bad graphic design, found on most Czech village center cork boards, I’m sad to see the stolen clipart and badly cropped watermarked stock images, gradually replaced with AI slop.

This is far from a serious rant, but generating images of my kind being telepathically hit with sharp rocks, surely gives me a right to complain.

So far these seem the most prominent slop categories, seem to be…

Architecture slop:

  1. find a sketch of what an old building looked like

  2. generate an AI version, without correcting any of the perspective errors - this one is diagonally levitating

  3. generate a recreation of the buildings demise - after going through the AI, for the second time, it is now a completely different building

Moralizing slop:

History slop:

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

@prologic@twtxt.net Awwwwwwww! I love these stripes, very cool!

Oh, I bet these inclines are no joke. I also know one about 200 meters long terribly steep dirt path up a hill around here. Climbing that is super exhausting. I just looked it up on a map. And it’s just ~17° or ~30% incline. Okay, that’s absolutely nothing compared to your adventure. :-D

But you got your exercises for the day then. Which will make for an even greater sleep tonight. ;-)

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

Thank you, @prologic@twtxt.net, that looks really stunning! Seeing forests reaching beyond the horizon always amazes me. This does not exist around here. I also like those balancing rocks.

Keep ā€˜em coming. Looking forward to see more. But most importantly, enjoy your trip, mate! :-)

⤋ Read More

Went 2/3 at Magic today: Prosper dominated game 1, Ash and his Knights came within a single planar die roll of winning game 2, and then Atraxa came up with the win in a fairly tight game 3. All in all, not a bad afternoon of Magic.

⤋ Read More

This year for some reason or another, I decided to purchase an Ocarina, I’ve been practising a fair bit every now and again, basically during work breaks and sometimes in the afternoon / evenings (not enough to annoy the family 🤣) Anyhoo, that was 3 months ago, since then I’ve built up a bit of a Repertoire:

  • Silent Night
  • My Bonnie Lies Over the Ocean
  • Amazing Grace
  • O Holy Night
  • Happy Birthday
  • Greensleeves
  • Scarborough Fair
  • She’ll Be Coming ’Round the Mountain

I’ve now decided to purchase a slightly better quality Ocarina, the one I originally bought was a cheap $28 one, I’m now upgrading to a more professional instrument worth about $80 – Wish my luck šŸ€

⤋ Read More
In-reply-to » @lyse oh wow! That 10, with ice stuck in it. Those flowers rock! They remind me of "Stardust" (movie).

@bender@twtxt.net Holy cow, I didn’t notice the ice! :-O Thanks for pointing that out! I was just after the bee. :-)

33°C down to 3°C, wow. O_o What a drop. But it raises again dramatically during day, right?

⤋ Read More
In-reply-to » šŸ‘‹ Looking for other interested folks to continue to evolve the development of Salty.im šŸ™ I've been hardā„¢ at work on the v2 branch and @doesnm.p.psf.lt has been incredibly helpful so far. Be great ot have a few more folks to join us, some of the v2 highlights include:

@bender@twtxt.net Here is a properly formatted version of your message:

Not yet — but that’s probably a good idea.

Instructions:

  1. Clone the repository
git clone https://git.mills.io/saltyim/saltyim.git
cd saltyim
  1. Check out the v2 branch
git checkout v2
  1. Build and install the CLI/TUI
make DESTDIR=$HOME/bin install

After installation, run:

salty-chat

⤋ Read More

@movq@www.uninformativ.de Oh, so just half a millimeter then! :-D That’s plenty these days for everything to shut down, I’m afraid. If only the same Ć©lan was still in action as back then:

https://3.bp.blogspot.com/_5wOW9jdbdvM/TEVVi8ZsMWI/AAAAAAAAALU/vVqvnZ1mzGQ/s1600/Bahn+Werbung+-+alle+reden+vom+Wetter.JPG

And here I am watching Mattias Bjƶrnstrƶm’s gas pedal freezing at full throttle around -40°C. Well, falls apart and gets stuck.

https://www.youtube.com/watch?v=MLgmV15XeSY

I’m not an expert on this subject at all, but I reckon an automatic in addition with all its sensors is much worse than a manual one. All wheel drive, studded tires and diff locked is what one wants in icy situations. :-D

⤋ Read More

I’m trying to implement configurable key bindings in tt. Boy, is parsing the key names into tcell.EventKeys a horrible thing. This type consists of three information:

  1. maybe a predefined compound key sequence, like Ctrl+A
  2. maybe some modifiers, such as Shift, Ctrl, etc.
  3. maybe a rune if neither modifiers are present nor a predefined compound key exists

It’s hardcoded usage results in code like this:

func (t *TreeView[T]) InputHandler() func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
    return t.WrapInputHandler(func(event *tcell.EventKey, setFocus func(p tview.Primitive)) {
        switch event.Key() {
        case tcell.KeyUp:
            t.moveUp()
        case tcell.KeyDown:
            t.moveDown()
        case tcell.KeyHome:
            t.moveTop()
        case tcell.KeyEnd:
            t.moveBottom()
        case tcell.KeyCtrlE:
            t.moveScrollOffsetDown()
        case tcell.KeyCtrlY:
            t.moveScrollOffsetUp()
        case tcell.KeyTab, tcell.KeyBacktab:
            if t.finished != nil {
                t.finished(event.Key())
            }
        case tcell.KeyRune:
            if event.Modifiers() == tcell.ModNone {
                switch event.Rune() {
                case 'k':
                    t.moveUp()
                case 'j':
                    t.moveDown()
                case 'g':
                    t.moveTop()
                case 'G':
                    t.moveBottom()
                }
            }
        }
    })
}

This data structure is just awful to handle and especially initialize in my opinion. Some compound tcell.Keys are mapped to human-readable names in tcell.KeyNames. However, these names always use - to join modifiers, e.g. resulting in Ctrl-A, whereas tcell.EventKey.Name() produces +-delimited strings, e.g. Ctrl+A. Gnaarf, why this asymmetry!? O_o

I just checked k9s and they’re extending tcell.KeyNames with their own tcell.Key definitions like crazy: https://github.com/derailed/k9s/blob/master/internal/ui/key.go Then, they convert an original tcell.EventKey to tcell.Key: https://github.com/derailed/k9s/blob/b53f3091ca2d9ab963913b0d5e59376aea3f3e51/internal/ui/app.go#L287 This must be used when actually handling keyboard input: https://github.com/derailed/k9s/blob/e55083ba271eed6fc4014674890f70c5ed6c70e0/internal/ui/tree.go#L101

This seems to be much nicer to use. However, I fear this will break eventually. And it’s more fragile in general, because it’s rather easy to forget the conversion or one can get confused whether a certain key at hand is now an original tcell.Key coming from the library or an ā€œextendedā€ one.

I will see if I can find some other programs that provide configurable tcell key bindings.

⤋ Read More

implemented curl, grep, jq, head & tail in javascript for my website, zsh now knows the difference between hi;hi and "hi;hi", and a bunch of documentation has been written for all that, too! i do normal people things for fun :3


⤋ Read More
In-reply-to » More widget system progress:

And now the event loop is not a simple loop around curses’ getch() anymore but it can wait for events on any file descriptor. Here’s a simple test program that waits for connections on a TCP socket, accepts it, reads a line, sends back a line:

https://movq.de/v/93fa46a030/vid-1767547942.mp4

And the scrollbar indicators are working now.

I’ll probably implement timer callbacks using timerfd (even though that’s Linux-only). šŸ¤”

⤋ Read More

@eldersnake@we.loveprivacy.club

Steps to world domination:

  1. ā€œInventā€ ā€œAIā€ (by using other people’s data).
  2. Get people hyped about it and ideally hooked on it.
  3. Only provide it as a cloud service. But hey, if you want to, you can run it locally!
  4. Buy all hardware available on the market, so that nobody but you can build more systems.
  5. All PCs of consumers and competitors are too weak now and can’t be upgraded anymore.
  6. Everybody depends on your cloud service! Win!

All of that is possible because corporations don’t have a ā€œconscienceā€ in capitalism. Nobody forces the RAM manufacturers to sell all their stuff to just one or two buyers, but since the only goal of that manufacturer is to make money, they do it.

⤋ Read More
In-reply-to » @lyse You actually have a Markdown parser/renderer in there? Oh dear. I would have been (well, I am) way too lazy for that. šŸ˜…

@movq@www.uninformativ.de Well, just a very limited subset thereof:

  1. inline and multiline code blocks using single/double/triple backticks (but no code blocks with just indentation)
  2. markdown links using using [text](url)
  3. markdown media links using ![alt](url)

And that’s it. No bold, italics, lists, quotes, headlines, etc.

Just like mentions, plain URLs, markdown links and markdown media URLs are highlighted and available in the URLs View. They’re also colored differently, similarly to code segments.

I definitely should write some documentation and provide screenshots.

⤋ Read More
In-reply-to » @movq That's cool! I also like the name of your library. :-) I assume you made the thing load quickly, didn't you?

@movq@www.uninformativ.de Yeah, I see. Just crudely checked on my computer, with around 0.013 seconds, Python 2.7 seems a tad faster than Python 3.14’s 0.023 seconds in this little program.

The lazy imports sound not too bad, but I just skimmed over them. There are surprisingly many exceptions, but yeah, no way around them. :-)

⤋ Read More
In-reply-to » @movq That's cool! I also like the name of your library. :-) I assume you made the thing load quickly, didn't you?

@lyse@lyse.isobeef.org

I assume you made the thing load quickly, didn’t you?

That’s the problem with Python. If you have a couple of files to import, it will take time.

I want this to be reasonably fast on my old Intel NUC from 2016 (Celeron N3050 @ 1.60GHz) and I already notice that the program startup takes about 95 ms (or 125 ms when there are no .pyc files yet). That’s still fine, but it shows that I’ll have to be careful and keep this thing very small …

Python 3.14 will bring lazy imports, maybe that can help in some cases.

⤋ Read More

The tt URLs View now automatically selects the first URL that I probably are going to open. In decreasing order, the URL types are:

  1. markdown media URLs (images, videos, etc.)
  2. markdown or plaintext URLs
  3. subjects
  4. mentions

I might differentiate between mentions of subscribed and unsubscribed feeds in the future. The odds of opening a new feed over an already existing one are higher.

⤋ Read More

2025 end the year rewind:

Compared to only 3 new artworks in 2024 and next to no work, on other projects, this year I not only met the self-imposed goal of monthly pixelart, but exceeded it by 50%, with 18 additions in total.

Relicensed the majority of canine faction owned art and projects, under two less restrictive Creative Commons licensees*. This also applies retroactively, to everyone who used/archived our art and projects, back when the old license didn’t allow it.

Disappointed by the current state of the Internet and continued lack of competition among browsers, completely reworked the main website* and made Smol Drive** (a new image gallery project), both made to be compatible with as many web and Gemini browsers, as possible.

*see https://thecanine.smol.pub
**see https://thecanine.smol.pub/smolbox

⤋ Read More
In-reply-to » Hey EU friends šŸ‘‹ wtf happened to the EU Internet today for about 40 minutes or so?

@movq@www.uninformativ.de From 2:50 PM to 3:23 PM AEST (+10 UTC) there was an outage. Everything went ā€œupā€ on Down Detector, my EU region went offline, numerous sites were unavailable, and so on. Basically everything to/from the EU appeared to basically go kaput.

⤋ Read More
In-reply-to » i've learned a lot of lessons from writing my notes app, gonna apply this to bbycll and refactor the code to make it way more legible cause my custom templating system is only kind of a giant mess

really love this design language i borrowed from firefish/misskey v12, you can even select a bbycll theme in zinnia to make things even more confusing :3 though i myself somehow see past the similarities just knowing how different the codebases are

⤋ Read More

Fuck me, soooooooo beautiful! Awwww! :ā€˜-) https://www.youtube.com/watch?v=oYfKgi133qo

This focuses more on the landscape part, other episodes also have amazing interactions with the locals. I cannot recommend the Itchy Boots channel enough. It’s in my top three channels of all time I believe. I hardly get the travel bug, but this has now changed. Watching Noraly’s videos brings me great joy. It also shows humanity is not lost, contrary to what one might think in this crazy world. :-)

Caution, this channel gets very addictive!

⤋ Read More
In-reply-to » @lyse what’s on the one on the left, back? Looks… enticing! 🤤

@lyse@lyse.isobeef.org no wonder I picked that cake (albeit coincidentally), I adore almonds, and hazelnuts! Your teammates are absolutely amazing, dude! A very nice project farewell! On leaving places I have a small anecdote.

I know someone who on 3 February 2004 left his job to go elsewhere. At the time his teammates threw a party, and gave him a very nice portable storage. Twenty days later, he returned, and jokingly they asked him for the storage, and money spent on farewell party back. I heard, from a close source, that he gave them his middle finger, but don’t quote me on that. šŸ˜‚šŸ˜‚šŸ˜‚

⤋ Read More

@bender@twtxt.net Mate, I don’t know how you do it, but the frequency of words I haven’t come across before is actually quite high in your work. I noticed it in your twtxt messages in the past, but your notes are also full of them. I love it, always learning something new. Thank you for teaching me without knowing. In case you’re wondering, ā€œyesternightā€ and ā€œsqualidā€ are the ones I stumbled across today. :-)

⤋ Read More
In-reply-to » @lyse what’s on the one on the left, back? Looks… enticing! 🤤

@bender@twtxt.net That’s the best one of them. An almonds cake with hazelnut chocolate glaze. The one in front is similar, but with chocolate only. Gingerbread on the right. But it develops the best flavor and consistency only in a few weeks, right now it’s quite hard like a rock, but it will soften up.

All those years I always said that my teammates are THE VERY BEST I ever had. Fuck me, look at that, I didn’t leave the company, just changed projects and this is my farewell present: https://lyse.isobeef.org/tmp/abschiedsgeschenk-2025-12-03.jpg How absolutely beautiful is that, I’m in awe! Now I feel even worse deserting. :ā€˜-(

This emblem is the fleur-de-lis of the world scout movement: https://en.wikipedia.org/wiki/World_Organization_of_the_Scout_Movement#WOSM_emblem I reckon I must have mentioned casually that I’m a scout. ;-)

⤋ Read More
In-reply-to » I'm gonna ask here again because I'm really frustrated and literally no one else is responding anywhere can u guys please help me find a good video camera the biggest think I want is long battery life but I also want it to be cheap like under $200, if you yourself don't know please ask a friend because I am not a tech nerd and looking for stuff like this is very hard for me

@prologic@twtxt.net yes that’s enough! thank u for the recommendation <3

⤋ Read More

Thinking about doing Advent of Code in my own tiny language mu this year.

mu is:

  • Dynamically typed
  • Lexically scoped with closures
  • Has a Go-like curly-brace syntax
  • Built around lists, maps, and first-class functions

Key syntax:

  • Functions use fn and braces:
fn add(a, b) {
    return a + b
}
  • Variables use := for declaration and = for assignment:
x := 10
x = x + 1
  • Control flow includes if / else and while:
if x > 5 {
    println("big")
} else {
    println("small")
}
while x < 10 {
    x = x + 1
}
  • Lists and maps:
nums := [1, 2, 3]
nums[1] = 42
ages := {"alice": 30, "bob": 25}
ages["bob"] = ages["bob"] + 1

Supported types:

  • int
  • bool
  • string
  • list
  • map
  • fn
  • nil

mu feels like a tiny little Go-ish, Python-ish language — curious to see how far I can get with it for Advent of Code this year. šŸŽ„

⤋ Read More
In-reply-to » Which actively maintained Yarn/twtxt clients are there at the moment? Client authors raise your hands! šŸ™‹

@lyse@lyse.isobeef.org Damn. That was stupid of me. I should have posted examples using 2026-03-01 as cutoff date. šŸ˜‚

In my actual test suite, everything uses 2027-01-01 and then I have this, hoping that that’s good enough. 🄓

def test_rollover():
    d = jenny.HASHV2_CUTOFF_DATE
    assert len(jenny.make_twt_hash(URL, d - timedelta(days=7), TEXT)) == 7
    assert len(jenny.make_twt_hash(URL, d - timedelta(seconds=3), TEXT)) == 7
    assert len(jenny.make_twt_hash(URL, d - timedelta(seconds=2), TEXT)) == 7
    assert len(jenny.make_twt_hash(URL, d - timedelta(seconds=1), TEXT)) == 7
    assert len(jenny.make_twt_hash(URL, d, TEXT)) == 12
    assert len(jenny.make_twt_hash(URL, d + timedelta(seconds=1), TEXT)) == 12
    assert len(jenny.make_twt_hash(URL, d + timedelta(seconds=2), TEXT)) == 12
    assert len(jenny.make_twt_hash(URL, d + timedelta(seconds=3), TEXT)) == 12
    assert len(jenny.make_twt_hash(URL, d + timedelta(days=7), TEXT)) == 12

(In other words, I don’t care as long as it’s before 2027-01-01. šŸ˜šŸ˜…)

⤋ Read More
In-reply-to » And regarding those broken URLs: I once speculated that these bots operate on an old dataset, because I thought that my redirect rules actually were broken once and produced loops. But a) I cannot reproduce this today, and b) I cannot find anything related to that in my Git history, either. But it’s hard to tell, because I switched operating systems and webservers since then …

@lyse@lyse.isobeef.org Probably wouldn’t help, since almost every request comes from a different IP address. These are the hits on those weird /projects URLs since Sunday:

    1 IP  has  5 hits
    1 IP  has  4 hits
   13 IPs have 3 hits
  280 IPs have 2 hits
25543 IPs have 1 hit

The total number of hits has decreased now. Maybe the botnet has moved on …

⤋ Read More
In-reply-to » There are no really good GUI toolkits for Linux, are there?

FTR, I see one (two) issues with PyQt6, sadly:

  1. The PyQt6 docs appear to be mostly auto-generated from the C++ docs. And they contain many errors or broken examples (due to the auto-conversion). I found this relatively unpleasent to work with.
  2. (Until Python finally gets rid of the Global Interpreter Lock properly, it’s not really suited for GUI programs anyway – in my opinion. You can’t offload anything to a second thread, because the whole program is still single-threaded. This would have made my fractal rendering program impossible, for example.)

⤋ Read More

I wound up running 2 out of 3 of the one-shots, both Halloween games based on Ravenloft / Curse of Strahd, and both rousing successes (for the players, not so much for Strahd).

Since I’m on something of a gaming kick, I think I’m going to try and finish plotting out the rest of the fae adventure I’m running for my kids, while also (hopefully) finishing my super secret astral gaming project.

Can I do it? Stay tuned and find out!

⤋ Read More