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
ā ļø 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
Ahh crap, I didnāt take any š
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!
Oh, crap! Itās only Thursday! I thought we had Friday already ⦠nnnnooooooo, not another day. š
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/
@movq@www.uninformativ.de are you sure itās the browser is getting slow or is it website developers adding more more crap to their sites?
This is an example of the kind of garbage release notes from this conventional commit autogenerated crap š¤£

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.
@prologic@twtxt.net woohoo! Take that, micro.crap! :-D
@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.)
@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.
Oh, holy crap, it just did it now! š¤Æ
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.)
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?!
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.
I added 07 to 11: https://lyse.isobeef.org/tmp/hobelbankschubladen/
ā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
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.
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.
@movq@www.uninformativ.de Holy crap, thatās really crazy!
Hahaha, you got me. When I read your first sentence I thought you were going to tell about your Wayland experience in comparison to X11. :-D
@bender@twtxt.net @eapl.me@eapl.me @xuu@txt.sour.is @movq@www.uninformativ.de Glad you all agree. :-D My SOAP knowledge is extremely rusty, I luckily had not to deal with that crap anymore for quite some years now. I even couldnāt remember the XML declaration and had to look it up. ;-)
ah crap. chapters 2, 4 and 5 are being cropped by yarn on upload. they should be more like 2-3 hours long
ah crap. chapters 2, 4 and 5 are being cropped by yarn on upload. they should be more like 2-3 hours long
@jost@jost.sdfeu.org Yeah, this AI crap is a big reason not to blog.
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
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
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
@prologic@twtxt.net this is so fucking real iām so sick of AI/LLM crap
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.
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:
Well crap. I think I just realized that if my profile photo was a person it could vote in this yearās election. Probably time for a new default one.
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..
hoooly crap the tino rangatiratanga is a good flag
Oh, crap, the weekend is goneāand it was a three days weekend for me! Tomorrow back to the hammer, while wife enjoys her Columbus Day off. š¤
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.
Ninety percent of everything is crap. Sturgeonās law 90% of everything is crap ā Mike Crittenden
Weāre the skate witches and we donāt take NO crap from NO one. Skate Witches: The true story | Dangerous Minds
when composing, it can be hard to know what is good or crap, so you just have to power through it
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
Folks who donāt use medium ā do they have misleading popups or something? I have an account so I never see any of this crap, but people have indicated to me that they think they need to pay for (non-paywalled) posts.