Apple Wants to Charge Developers Up to 15 Percent for Linking Outside the App Store
Apple is proposing to charge U.S. developers up to 15% when users leave an app through an external purchase link, with lower rates of 10% or 5% for certain programs and smaller developers. The proposal follows years of litigation with Epic Games and a contempt ruling that temporarily barred Apple from collect … ⌘ Read more
Freenet Creator Ian Clarke Shares Progress on Its New Decentralized Network
Ian Clarke (aka ancient Slashdot reader Sanity), designer of the peer-to-peer communication platform Freenet, is back with an update on the project’s progress following the launch of its P2P network in March. He writes: Earlier this year, Slashdot covered the launch of the completely redesigned Freenet. I recently gave a tal … ⌘ Read more
Spotify Will Label ‘AI Persona’ Profiles, Exclude Their Music From Recommendations
Spotify will begin labeling AI-generated artist identities with “AI Persona” badges and exclude their music from editorial, algorithmic, and personalized recommendations unless users explicitly follow them. The company says the designation applies to whether an artist profile represents a real person, not … ⌘ Read more
Analyzing Fedora’s Slow Performance On The Framework Laptop 13 Pro With Intel Panther Lake
As part of my recent Linux testing of the Framework Laptop 13 Pro I had recently benchmarked six Linux distributions on the Framework Laptop 13 Pro. CachyOS was the fastest to not much surprise but arguably the most surprising aspect was finding Fedora Workstation 44 typically running slower than the five other modern Linux distributions benchmarked. Here’s a follow-up to that with more Fedora Linux benchmarks an … ⌘ Read more
Up To 12.8x Improvement Observed For gup_test With New Linux MM Patches
Linux developer Rik van Riel has pulled off some nice Linux kernel optimizations over the years and the Meta engineer has been working on another one around batching of look-ups with Linux’s follow_page_mask() that is used for translating virtual addresses to the corresponding struct page… ⌘ Read more
Toxic Underground Fires Are Spreading at California Landfills
Three years ago environmental regulators discovered garbage burning deep inside California’s Chiquita Canyon Landfill, reports the Los Angeles Times. [Alternate URL here.] “Few imagined the calamity that would follow.
“Somehow the landfill’s pollution control system introduced oxygen below, causing decades-old waste to rapidly decompose, generating … ⌘ Read more
Linux 7.2-rc7 Released Following Another Exhausting AI-Driven Week
Linux 7.2-rc7 is now available for testing as we close in on the official Linux 7.2 release hopefully next weekend… ⌘ Read more
More Police Officers Fired, Investigated, or Arrested for Misusing Flock Camera Systems
In Georgia the Savannah Police Department “terminated four sworn officers and two civilian employees following an internal investigation into misuse of the department’s Flock Safety License Plate Reader system,” according to a local news report:
All six cases are also under independent criminal investig … ⌘ Read more
Intel Makes Progress On HDMI 2.1 FRL With Their Linux Driver For Meteor Lake & Newer
Following AMD making progress with HDMI Fixed Rate Link (FRL) and other HDMI 2.1 functionality for their open-source Linux kernel graphics driver, Intel is out today with a big set of 44 patches working on HDMI 2.1 FRL support for their kernel graphics driver with Meteor Lake hardware and newer… ⌘ Read more
GCC 16.2 Released With More Than 100 Fixes
Following the GCC 16.1 compiler release from the end of April as the first stable version of GCC 16, GCC 16.2 is now available with dozens of bug fixes collected since then for further stabilizing this year’s GNU compiler feature release… ⌘ Read more
I really do find it difficult to follow anyone that basically posts to a wall, or doesn’t follow back. It’s utterly pointless not being able to have a conversation, like basically, at all. Maybe it’s not even anyone’s fault? Maybe just a sucky client that doesn’t understand how User-Agent works in Twtxt Discovery? 💡
Linux Foundation Announces Tokenomics Foundation For “Economics & ROI Of AI Value”
Last month the Linux Foundation launched the x402 Foundation to standardize Internet-native payments for AI agents as their latest AI play. That followed other “AI” initiatives from dealing with AI exploits to AI asset and data exchange. Today they have another AI foray being announced with the creation of the Tokenomics Foundation… ⌘ Read more
Improved GPU Reset Recovery For AMD Kaveri, Hawaii & Other GFX7 GPUs With Linux 7.3
In addition to the AMDGPU feature pull request to DRM-Next last week that landed DRM format modifiers for old AMD GPUs and a variety of other improvements, a secondary set of AMDGPU feature work followed that last week in preparation for the upcoming Linux 7.3 merge window… ⌘ Read more
Microsoft CEO Touts His Own DIY AI Project To Wall Street and His 20 Million Followers
theodp writes: During Microsoft’s 2026Q4 earnings call, CEO Microsoft Satya Nadella took time to tout a dashboard he personally created using AI from a Morgan Stanley analyst’s PDF research report, which suggested a rosy payback for the so-called MAG7’s (‘Magnificent 7’ companies) massive capital expenditure … ⌘ Read more
Company Offering Printed Books To Train AI Stops After 404 Media Coverage
An anonymous reader quotes a report from 404 Media: Following 404 Media’s reporting that book database company ISBNdb claimed to source printed books to then sell to AI companies for AI training, the company deleted the part of its website offering the service and walked back claims that it would train AI models, and instead cal … ⌘ Read more
GNOME Mutter 51 Beta Released With Wayland Background Blur, Improved Frame Scheduling
Released overnight on Sunday were the beta versions of Mutter 51 and GNOME Shell 51. This follows GNOME 51 embarking on itsAPI/ABI freeze, feature freeze, and UI freeze a day earlier… ⌘ Read more
Ubuntu Touch Making Progress Toward Ubuntu 26.04, Vulkan & App Updates
Following last week’s release of Ubuntu Touch 24.04-2.0 for this community-maintained, mobile flavor of Ubuntu Linux, more details are now available on their upcoming development efforts and eventual transition to an Ubuntu 26.04 base… ⌘ Read more
MPEG-4 Patent Expiration, RADV On Windows, Open-Source AI & Other July Highlights
Last month on Phoronix there were 257 original Linux/open-source related news articles and another 20 featured Linux hardware reviews / multi-page benchmark articles. Following the recent 22nd birthday of Phoronix.com, this puts the overall tally at nearly 51k original news articles and more than 5,600 Linux hardware reviews. Here is a look back at what readers found most exciting during the course of July… ⌘ Read more
AMD Publishes CDNA5 ISA Documentation For Instinct MI455X
Following last week’s launch of the AMD Instinct MI455X, AMD has now kept with tradition and provided ISA documentation concerning this latest CDNA5 architecture… ⌘ Read more
Microsoft’s $450 Billion Jump Is Biggest In Stock Market History
Microsoft shares surged as much as 17% after reporting 43% growth in Azure revenue, putting the company on track to add a record $490 billion in market value in a single day. Bloomberg notes that it “would eclipse Nvidia’s $440 billion addition, following President Donald Trump’s announcement of a 90-day tariff pause last year, as the biggest ever. … ⌘ Read more
AMD Posts Linux Patches For HDMI 2.1 Auto Low-Latency Mode “ALLM” & VRR
Following AMD posting AMDGPU patches for HDMI 2.1 FRL support after the HDMI 2.1 open-source support was long blocked by the HDMI Forum, as part of working toward a complete HDMI 2.1 implementation in this AMD Linux driver it was followed by HDMI 2.1 Display Stream Compression (DSC) support. Now the latest on the AMDGPU HDMI 2.1 enabling path is enabling Auto Low-Latency Mode (ALLM) as well as HDMI Variable Rate Refresh!.. ⌘ Read more
Bwahahaha, these security folks have a great sense of humor! :-D Got a phishing test e-mail disguised as an overdue anti-phishing training e-mail: 
We receive these test phishing e-mails every now and then at work. When you follow the links and log in at the fake login, you probably get assigned another (real) training.
When I got this e-mail, I immediately thought of such a test. Since I actually do have some stupid training deadlines coming up soon, I wasn’t 100% sure, but still doubted that this was one of them. To make the timing even better, in the team meeting last week, our bosses reminded us to complete outstanding trainings before the deadlines. Ideally well in advance. Notifications about deadlines coming closer are sometimes not only sent to the individuals but also to the bosses and their bosses. And then things can get out of hands when somebody doesn’t read the e-mails properly and mistakes them for deadline exceeded reports.
Anyway, the URL also looked kinda legit. It really doesn’t help a single bit that domain names change all the fucking time. So, still with the test program in mind, I thought, I just give it a quick shot out of curiosity. Since I just had logged in before, the empty SSO username field was totally obvious then. Looking at the e-mail headers confirmed that this was indeed one of security’s field checks. :-)
Arizona State Launches Influencer Degree Where Students Must Gain Real Followers
Arizona State University has launched a 120-credit bachelor’s degree in content creation that teaches video, podcasting, branding, analytics, media law, and social strategy. For their capstone, students are “expected to build a real social media account and demonstrate audience growth during the program,” reports De … ⌘ Read more
Codeberg Bans Cryptocurrency and LLM-Generated Code Projects
Longtime Slashdot reader AmiMoJo shares a report from Hackaday: Community-led open source project hosting site Codeberg has formally announced that projects whose code is largely or fully machine-generated through LLMs and other ‘AI’ tools will no longer be welcome. This follows on the heels of a similar ban on cryptocurrency-related projects. The … ⌘ Read more
Apple’s Smart Glasses Delayed, As Engineers Consider Privacy Concerns
Digital Trends reports:
Apple could unveil its first smart glasses at WWDC in June 2027, followed by a consumer release toward the end of the year, according to Bloomberg… Part of the delay reportedly stems from Apple’s engineering and marketing teams spending more time refining the product and deciding how to address the privacy conc … ⌘ Read more
@GabesArcade@gabesarcade.com twtd landed too 🥳 Hosted feeds (twtpub.com) and self-hosted twtd can publish # follow = now — the operator offers it with --allow-follows, then it’s the same toggle in Settings. Off by default at both ends 👌
Also a “Publish who I follow” toggle: writes # follow = + # following = N into your feed like yarnd does. Off by default (it is your social graph 🤔), and only on the GitHub/Gitea backends for now where the app owns the feed file. twtd next 🤞
@GabesArcade@gabesarcade.com Both 😅 Just shipped: Settings → Backup & restore. Export everything (or follows only) as a JSON file and import it back — or feed it any twtxt.txt and it’ll harvest the # follow = lines. There’s a copy-paste # follow = block in there too if you’d rather hand-edit 👌
@GabesArcade@gabesarcade.com So we going with an Import/Export feature? Or would you also like optionally to write # follow = into the feed too? 🤔 Can do either/or or both.
Ubuntu Touch 24.04-2.0 Released With Support For Notches & Rounded Corners
Following last month’s beta release, Ubuntu Touch 24.04-2.0 is now available as the latest feature release for this Ubuntu 24.04 LTS derived mobile operating system for select smartphones and tablets… ⌘ Read more
Fedora 45 Looks To Begin Phasing Out In-Kernel Crypto Userspace API
Going along with the upstream Linux 7.2 kernel deprecation of AF_ALG and Linux 7.3 to further restrict this interface for letting user-space programs interact directly with the Linux kernel crypto API, Fedora 45 is looking to follow and help support this transition… ⌘ Read more
LLVM 23.1-rc1 Released With AMD Zen 6 & AVX-512 BMM Support, Other Compiler Enhancements
Following the recent code branching for the LLVM 23 series, LLVM 23.1-rc1 was released today in working toward the next stable release of this open-source compiler stack… ⌘ Read more
Raspberry Pi Touch Display 2 10-Inch Model Launches
Following the launch of the 7-inch Raspberry Pi Touch Display 2 and the 5-inch display variant, Raspberry Pi announced today the addition of a 10-inch model… ⌘ Read more
Qualcomm Posts Linux Patches For X2 Elite Extreme Powered ASUS Zenbook A16
Following recent Linux kernel patches enabling the Snapdragon X2 Elite powered Lenovo Yoga Slim 7x Gen11 and HP EliteBook X G2q X2 Elite laptops to boot outside of Windows 11 on ARM, Qualcomm engineers have now posted a new patch series for getting the X2 Elite Extreme powered ASUS Zenbook A16 working on Linux… ⌘ Read more
Harebrained Schemes’ new survival horror RPG ‘GRAFT’ gets a story trailer
Harebrained Schemes are working towards release on their next game following their split from Paradox Interactive, with the survival horror RPG ‘GRAFT’.
Read the full article on [GamingOnLinux](https://www.gamingonlinux.com/2026/07/harebrained-schemes-new-survival-horror-rpg-graft-gets-a-story … ⌘ Read more
📣 ACTION REQUIRED: Hey folks 👋 For those of you whom are using the Twtxt App either via the Hosted option or on your own twtd instnace or via Github/Gitea or any other publishing backend (doesn’t amtter). Please read.
Please open the app and you should be prompted to save your recovery code for your device. This basically is all of your settings, follows, etc in the app itself. This is synced to the Origin everytime you make a change, and also stored on-device. This is what makes it possible to sync your setting across services, move to another device, etc.
Please save a copy of the recovery code somewhere. This is only your only way to recover your settings.
Thank you 🙏
the only reason twtd has and records a followers.json is because that’s where your feed is hosted from and where the UA discover occurs
You may have noticed I am not as active as I used to be here. Old @bender@twtxt.net isn’t going anywhere, though! But… I am Hyde, and my Jekyll resides at @david@daiwei.me. Jekyll is having his turn more often now, so if you follow my pure, unrestrained evil, you may as well follow my dark desires, hypocrite counterpart. 😈🤣
Follow @david@daiwei.me, or I will bend you!
@david@daiwei.me agreed on those. I have also noticed that the buttons are the top (Timeline, Mentions, Follows, Settings) shift a bit when clicked. I am not sure what’s causing that.
@prologic@twtxt.net @david@daiwei.me I just want to bring up the following: From a data protection point of view, edits and deletions are important. But that’s about it, I will not join discussions on that topic. :-)
@itsericwoodward@itsericwoodward.com Wrote it up 👌 Single-user twtd API is now documented (plain JSON, one bearer token) — posting, uploads, profile, followers + WebFinger: https://git.mills.io/yarnsocial/twtd/src/branch/main/API.md 🎉 Shout if anything’s unclear for TwtKpr 🙏
Some further ideas/enhancements for Twtxt App …
- On the “Followers” tab, new followers should appear at the top I thnik.
- On the Following/Followers, each feed should be clickable/tappable.
- Maybe also tidy it up a bit, displaying the full raw Feed URI is messy.
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!
Shipped a bunch of Twtxt App fixes & polish today 🥳 One-tap Refresh that actually refreshes, duplicate follows fixed, Reply/Fork buttons (with proper @-mentions), unread dots, Back keeps your spot, and it’ll now guide you to install it as a proper app 📱 Reload https://twtxt.app and have a play! Thanks @quark@ferengi.one and @balloon-fu-sen@tw.fus.f5.si for all the reports 🙏
<tab> (white space) between the timestamps and posts look a bit shorter than the ones from jenny? just noticed that and thought maybe it's someting you'd want to know.
@aelaraji@aelaraji.com @david@daiwei.me @prologic@twtxt.net It depends on the tab size, but often, a tab aligns the following character to next column that is a multiple of eight.
1 8 |16 |24 |32
2026-07-12T08:11:34+02:00 Here goes the text
2026-07-12T06:11:34Z Here goes the text
@movq@www.uninformativ.de this one:
2026-07-11T17:28:31Z () No yet. Let’s keep it rolling a little bit longer. I am reply to “[..] I don’t see any broken threads here. 🤔“. I can’t tag followings while on mobile. <-- THIS BROKE
Was a reply to:
2026-07-11T16:39:22+00:00 (#iqqsqst5vokf) @<david https://daiwei.me/twtxt.txt> Well, I don’t see any broken threads here. 🤔
Fixed! Had to unfollow, follow back.
I think Yarn has Gabes nick cached, and mentioning is broken because of that. Let me check my followings, to be sure.
Also, if bots/spsiders hit your feed, they are showing as followers. Certainly not true. Right now I am blocking all bots, but that’s not the proper approach, I think.
@david@daiwei.me as you alter ego, I seriously recommend you stop creating feeds left and right. But whom am I kidding, right?! 😅
I wonder how long will it take to show a follower on twtd. It only shows the feed’s owner, so far.