Searching txt.sour.is

Twts matching #Crap
Sort by: Newest, Oldest, Most Relevant

iPhone Duo - Apple Sorry Appleā„¢, I’m really finding it quite hard to justify spending thousands of dollar on your products!

From $1999 or $83.29/mo. for 24 mo.*

Fark me šŸ¤¦ā€ā™‚ļø When it was just me and my wife, maybe, fine, okay. But now I have two young children that also want the same shitā„¢ as we do. This starts becoming a nearly ~$8k expensve just for some fucking whoop-ti-do-da foldable iPhone with a bigger screen.

Who cares? šŸ¤” I want my ~A$800 iPhone back that fits in my hand. #Apple #Rants #Expensive #Crap

⤋ Read More

āš ļø For anyone that signs up on Yarn.social’s multi-user twtd multi-tenant platform I’m runnign on twtpub.com – Be warned. I will delete your account if you create it for the soles purposes of link squatting, spam, link harvesting, seo marketing, or any other useless fucktarrd crap.

To the spammers and would-be assholes of the world: You have been wanred. Don’t abuse my generosity.

it’s all I ask

⤋ 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

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/

⤋ Read More
In-reply-to » I kind of hate conventional commit messages: https://www.conventionalcommits.org/en/v1.0.0/#summary

This is an example of the kind of garbage release notes from this conventional commit autogenerated crap 🤣

⤋ Read More

When I try to login to PayPal I now see:

Please enable JS and disable any ad blocker

Here’s the thing. PayPal takes fees from transactions and payments received and sent.

I have very right not have ads shoved in my face for something that isn’t actually free in the first place and costs money to use. If PayPal would like to continue to piss off folks me like, then I’ll happily close my PayPal account and go somewhere else that doesn’t shove ads in my face and consume 30-40% of my Internet bandwidth on useless garbage/crap.

#PayPal #Ads

⤋ Read More
In-reply-to » @lyse I'm looking for an OS that runs better than Windows (🤮) and through which I can do basic stuff like read RSS feeds and browse geminispace; but which I can also learn from.

@dce@hashnix.club Apart from the crap produced in Redmond two decades ago, I only ever used and still happily use Linux, mainly Debian and Ubuntu. I’ve no idea, but maybe something in there catches your eye: https://en.wikipedia.org/wiki/List_of_operating_systems (I know, what a silly recommendation.)

⤋ Read More
In-reply-to » Sooooooooo, things happened, and I now have a dot matrix printer again. šŸ˜šŸ˜‚

@lyse@lyse.isobeef.org When/if I can pull it off, there will be videos! šŸ˜…

I never used hardcopy terminals, either. We did have a dotmatrix printer, but that was just used as a regular printer.

Inkjets, I don’t know. They were pretty fascinating and cool when they came out. A lot faster than dotmatrix and obviously quiter. They never gave me much trouble, actually. But I switched to a laser printer long before crap like DRM’ed ink cartridges became a thing.

⤋ Read More

I bought the ā€œremasteredā€ versions of Grim Fandango and Forsaken on GOG, because they’re super cheap at the moment. Both have native Linux versions.

And both these Linux version crap their pants. 🫤 The bundled SDL2 of Forsaken says it ā€œcan’t find a matching GLX visualā€ and I couldn’t figure out how to fix that. I didn’t spend a lot of time on Grim Fandango.

Both work great in Wine. 🤦

(I do have the original version of Grim Fandango from the 1990ies, but that one does not work so well in Wine. I figured, if it’s so cheap, why not. And I now get to play the english version. 😃 The german dub is pretty damn good, actually, but I always prefer the original these days.)

⤋ Read More
In-reply-to » This aggressive auto-logout on my bank’s website …

I hear you, @movq@www.uninformativ.de! :ā€˜-(

At work, too. For a few weeks now when I try to log into this horrible Outlook web intershit (Because why would they fix the Evolution integration?! It’s cactus for well over a year now. Probably more like two.), it forwards me to the corporate weblogin, I enter my credentials, even do the bloody MFA crap and get redirected back to Outlook. ā€œLoading mailboxā€¦ā€ ā€œPlease wait for us to log you out, do not close this window while this process is underway.ā€ Fuck you! I have to delete the cookies for this damn domain each and every fucking time. Otherwise, this goes in circles forever. I tried the game for 15 minutes, no joke.

But wait, there’s more! Why just fuck it up only a little bit? This week I get logged out at the middle of the day. Every. Single. Day. Not even close to eight hours since I started, no. What the hell!? I reckon I just don’t even bother reauthenticating anymore in the arvo. No more e-mails for Lyse after lunch. Fuck it. It’s just distraction, anyway, right?!

⤋ Read More
In-reply-to » Finally, the two drawers are mounted on the workbench. Some kind of a lid board on top to keep the dust out is still missing. I also gotta build the drawer inserts for the saws.

The lid is on and the first saw brackets are done. Let’s see how impractical they are. I might have to add heavy chamfers to better guide them in.

Image

Image

I added 07 to 11: https://lyse.isobeef.org/tmp/hobelbankschubladen/

⤋ Read More

ā€˜A load of crap’: Broncos stars launch fierce defence of Maguire’s training methods
Suggestions the Broncos’ vigorous training methods are behind the team’s poor form this season have been rubbished by Adam Reynolds and Kotoni Staggs. ⌘ Read more

⤋ Read More
In-reply-to » One thing about my design here is that it would no longer incorporate "regex"-based rules like OWASP, mostly because my experience thus far has taught me that these rules are kind of overly sensitive, produce false positives and I'm not sure they are really very effective. For example, why is the point of performing SQL injection detection at the Edge using a WAF if you already handle SQL properly in the first place? (seriously does anyone still construct SQL queries by hand with effectively printf?!)

@prologic@twtxt.net There have always been and there will always be people who have absolutely no clue what they’re doing. I’ve been 100% one of them when I started. Guaranteed, heaps of new SQL injections are born every single day, numbers rising.

That doesn’t justify all the WAF crap in the first place, though. In my opinion it’s just a filthy plaster applied to an injected wound. The software itself must be secure. Otherwise, don’t put that shit on the internet. Probably not even operate it at all. Nowhere. Fix it or throw it in the bin.

⤋ Read More

AI problems, top to bottom:

1: Open AI nerds, believe fine tuning a language model algorithm, will eventually produce an AGI god.

2: Subpar artists and techbros who can’t code, convinced AI image bashing and vibe coding, will help convince the dumber parts of Internet, they are a real deal.

3: Parasites, using AI to scam people, because they just want passive income, selling crap, made by an automated process.

Side: Adobe&co, killing Flash/old web, pricing new artists and developers out, to face learning curves of free tools, or use AI, peddled as solution.

⤋ Read More
In-reply-to » @prologic I created a script for your book. i have only done the first two chapters. have to do some adjustments to the text so it sounds ok and that takes time..

ah crap. chapters 2, 4 and 5 are being cropped by yarn on upload. they should be more like 2-3 hours long

⤋ Read More
In-reply-to » @prologic I created a script for your book. i have only done the first two chapters. have to do some adjustments to the text so it sounds ok and that takes time..

ah crap. chapters 2, 4 and 5 are being cropped by yarn on upload. they should be more like 2-3 hours long

⤋ Read More
In-reply-to » @andros The article is a good reminder of the true blogging mindset. But let's try to think beyond. 2 ideas: (1) writing "forces clarity, structures your thoughts, sharpens your perspective". But it also generates thoughts in the sense of Heinrich von Kleist (1805). (2) You're writing for "the future you, one right person, one day" but you are also writing for the AI. The idea of AI as an audience.

@jost@jost.sdfeu.org Yeah, this AI crap is a big reason not to blog.

⤋ Read More

This could be the beginning of the end for fire insurance in California
Blanca Begert, Camille von Kaenel, Thomas Frank and Zack Colman, Ā Staff WritersĀ  - Ā Poliitico

_Stephan:Ā Putting aside the disinformation crap that felon Trump endlessly spews – a revealing sign as to what his administration is going to be like – what is standing out for me is the insurance issue. In large parts of Florida, it is already impossible to get home insurance, and it loo … ⌘ Read more

⤋ Read More

Analyst hits MAGA falsehoods with brutal fact check over LA wildfires
Erik De La Garza, Ā News WriterĀ  - Ā Raw Story

_Stephan:Ā If you get your news about the L.A. fires from social media, much of what you are reading is crap. The lies about what caused the fires; and misinformation about how the local and state governments have failed to perform properly in dealing with the fires fill the social media sewer. From convicted felon Trump, and billionaire puppe … ⌘ Read more

⤋ Read More

my camcorder battery & mini dvds came in the mail so i did a test recording! it’s so cool i love the crap quality. i do hope the memory stick arrives soon though because for the discs i can’t get them on my computer (not even a rom drive filesystem mount) without ā€œfinalizingā€ the disc which is like an old camcorder thing. i still think i’ll prefer disc recording though even if a limit of 30 minutes (or longer for lower quality) is strict. i like limitations like that

⤋ Read More
In-reply-to » Because I saw the nick on movq (@prologic, can't mention anyone outside this pod, by the way), I looked the user up: https://tilde.pt/~marado/twtxt.txt. I wonder if the "hashes" they are using will work out of the box with jenny.

@bender@twtxt.net hmm, I wonder if these are simply twtxts auto created from an ActivityPub feed. Ah, crap, they are. LOL.

⤋ Read More

The 26°C humidity was through the roof and we just barely escaped the thunderstorm on our stroll. Only the adjacent rain hit us hard. Black clouds caught up on us and we decided to take cover at a barn. Not even a minute later it started to rain cats and dogs for ten minutes straight. Holy crap, that was cool to watch. :-) Also, the smell of rain was just beautiful.

We then decided to continue our return in the light drizzle. But it then got much heavier again and we got completely soaked. With the wet t-shirt and the wind it actually felt rather cold. I anticipated to get rained on, so I left my camera at home. Plenty of paths turned into brook landscapes, several centimeter deep creeks ran down the hilly trails. Quite fascinating. :-)

The sunset a few minutes ago wasn’t too bad:

Image

⤋ Read More

Got contacted on instagram from someone who wanted to buy some of my images (NFT), I have been putting the images I liked the most into a collection (and add new ones when I take Images I think is good enough) into the collection. Just letting it sit there to see if I can make a sale one day.
Not sure yet if the person is serious or not - but If I could make a sale - then I’m all for it.
It’s much easier to put things up for sale as NFT then other ways.
I sell them as a 1 item thing. And put a price that I think is fair (Fixed price on all, but based on the amount of time I actually spend getting to all these locations).
One thing I have not liked about NFT is all the crap art stuff that there that takes 0 effort, but I do at least spend time picking out where we go. And each image has a memory attached to it, a trip with my family to that exact place..

⤋ Read More
In-reply-to » A calm, reasoned take on the Stallman situation (some language warning as the creator doesn't mind dropping an F-bomb now and then): https://www.youtube.com/watch?v=FLHxY-QsQkQ

Nobody’s saying he can’t write code any more (I mean, I think his code is crap and wish he’d stop, but that’s another issue). But he should not be on any board, should not be in any leadership position, should not be held up as a role model or even vaguely okay.

⤋ Read More

I work in IT, which is the reason our house has: mechanical locks, mechanical windows, routers using OpenWRT, no smart home crap, no Alexa/Google Assistant/…, no internet connected thermostats

⤋ Read More