For me, the two most “magical” things about np.arrays are:
- Vectorized/broadcast operations, like multiplying a matrix and a scalar value & adding or subtracting two vectors or two matrices - but also any vectorized function;
- Masking & array indexing, being able to use arrays to select positions on other arrays;
- Bonus-third-thing: multi-dimensional arrays in general are quite magical too, if you add slicing to it, good lord, it can be quite daunting.
It’s the little things that make me happy these days. Like adding a function to search for text with various encodings to my hex editor. All neatly organized in the menu and with accelerators.
Finally, I added some tests and fixed this. After updating the feed metadata, I now just return early and do not attempt to build an SQL multi-value INSERT statement. Easy-peasy.
@lyse@lyse.isobeef.org Bingo!
Oh, yeah, newsboat is good. For this particular use case, I explicitly needed a graphical feed reader, though. 😅 I ended up using Thunderbird, which has its own interesting way of configuring/adding feeds:
https://movq.de/v/a3557e3dc9/vid-1784952576.mp4
Why are feeds categorized as “Mail”? What’s going on with that “Add” button on the left of the dialog? Why does the dialog indicate that there’s a folder called “list-files Recent Commits” which doesn’t really exist in the end? (Why does it take about 1-2 seconds to load 25 feed items?) And so on.
Dang it, @david@daiwei.me, you blew my cover!
I was raised without a TV, so I don’t miss it one bit. My parents just didn’t by a new one after their super old black and white device died. Looking after a baby was maybe spare time activity enough for them. :-P
When there was some super cool program I wanted to watch, like a James Bond movie, I visited my grandma. Sure, it sometimes was a pity that I could not join yesterday’s TV series discussions with my classmates, but oh well. I survived that. Building stuff with Lego or playing outside was all I really wanted.
Apart from a few really good programs, there’s sooooo much trash, non-stop ads and the like. Even as a kid, I was very disgusted by all that. But I have to admit that visting somebody with a TV and watching a good show was usually a highlight. These days, I can easily waste all my time and more on YouTube. :-/
@prologic@twtxt.net Our company is paying a shitload of money for all these (different) AI tools … I’m probably not allowed to tell you the exact number, but it is a lot. The only other way would be to lay off employees, so we can pay even more for AI. (Needless to say, that would be the worst possible move.)
For a private person, $20 a month is also pretty expensive, isn’t it? And then assume that you maybe need more than one AI tool. You’re quickly up to $50 a month or much more. This isn’t something that I, as a private person, will ever be willing to spend for this kind of stuff.
“AI” is just expensive as fuck. On every level. They will have to (ab)use every possible way to squeeze more money out of it, and that includes ads and what not.
Hmm …
My project pages have this “Downloads” section and I offer tarballs for each release:
https://movq.de/git/jenny/#downloads
I added this many years ago because an OpenBSD dev asked for it (but the project in question didn’t end up in their ports after all).
What are your thoughts on this? Is it necessary to offer tarballs?
I noticed that some distributions have already moved away from using tarballs and instead always clone from Git. 🤔
Deleted some old no longer used pixelart from my galley and added this as an alternative version, of the sprite one.

tt has a "draft" mode right? You didn't publish, then edit over and over did you? 😅
@prologic@twtxt.net Not sure if this really counts as a draft mode or this is what you had in mind. I just was in the editor for ages and didn’t close it. tt provides an integrated preview for the rendered message in there. It automatically updates every second.
Here’s a screenshot of the compose view with the conversation context on the top to which to reply to, the editor in the middle and the almost-live preview at the bottom, I hope it’s big enough:
But it’s not like I hit the “Add message” button in the compose view (the one currently selected on the screenshot), see the message in the conversation tree and then come back into the compose view to continue editing. There’s no edit functionality in tt. Once the message is appended to my twtxt.txt file on disk, all I can do is edit it with vim. The U+2028 line breaks are really annoying to deal with (I’m sure I could do something about that if I spent the time), so I try to avoid that at all costs.
Once new messages have been added to my local file, I then manually upload the file to my server in a separate terminal. There’s no upload command integrated into tt. Right from my very first message in the beginning, I’ve always done it exactly like that. I’m used to this and it really doesn’t bother me. But I can see that others might not be fans of that at all. I might add an upload mechanism to tt at some point in the future.
I really think I should go back to Java.
Writing programs in Python is so exhausting. I want a compiler and I want static typing. No, linters and type checkers and IDEs are not good enough. Compilers catch way more errors in advance.
Rust is also exhausting. They’re constantly adding language features and, at the same time, the runtime library remains tiny and you need 3rd party libraries for everything. Many of those are still at version 0.x (SemVer!) and you can’t rely on anything. Often times, you need the latest Rust nightly compiler.
Go is … I don’t like it. And huge binaries.
I like C as a language, but it’s too fragile. I want to have a proper HashMap every now and then.
None of the above have good GUI libraries, at least not on Linux.
And then there’s Java. This is my fractal renderer that I wrote over 17 years ago:
https://movq.de/v/fcd3c4e557/vid-1784121825.mp4
It’s fast. It has a GUI with custom widgets and those weren’t even hard to make. It still works without changing a single line of code. The source code files have timestamps from 2009 and I just noticed that the JAR file I’m using in the video was compiled in 2010.
Java as a language is relatively easy to learn and to master. There are few surprises. The source code organization with packages is good. Java API docs are clear and well written.
The JVM ramp-up times have improved considerably:
https://movq.de/v/e7314e521e/vid-1784121998.mp4
This isn’t like the Dark Ages anymore. Might even be usable for some CLI tools.
The only thing where Java really sucks is anything close-ish to the kernel. Try issuing an ioctl() … I couldn’t have made my TUI framework in Java, but then again, I wouldn’t have needed to because Swing already exists and it just works.
@david@daiwei.me That’s a good thing. I still use it heavily, but I also realize that it is addictive. This whole idea of getting likes and boosts is horrible. Seeing “number goes up” is inherently addictive design, if you ask me. This should never have been added to a Free Platform like Mastodon, and I’m glad that twtxt doesn’t have anything like it.
@movq@www.uninformativ.de Yes, this is absolutely a no-go!
A long time ago when the first telemetry shitstorm happened, I added export GOTELEMETRY=off in my ~/.zshrc. But it doesn’t seem to be picked up at all (I actually call this sabotage!):
$ go env GOTELEMETRY
local
$ go env -w GOTELEMETRY=off
go: GOTELEMETRY cannot be modified
$ go telemetry off
$ go env GOTELEMETRY
off
you should see the new search engine stats page where I’ve added, spark lines, and time series graphs 👌
Adding support for forking, forked conversations and navigating back to the root of a thread for the Twtxt App 🤞
SpaceX, Adding It Up – The $235B Cash Gap
Article URL: https://capefearadvisors.substack.com/p/spacex-adding-it-up-the-235-billion
Comments URL: https://news.ycombinator.com/item?id=48527392
Points: 9
# Comments: 1 ⌘ Read more
tt. But then, in the message tree, I spot another missed typo. My process is then to go to my twtxt.txt and fix it by hand. However, I still have to clean up tt's cache. This is rather tidious:
Fuck me! I tried to upgrade tview and the first thing I notice is a shitload of added dependency versions:
go.mod | 18 ++++-----
go.sum | 97 ++++++++++++++++++++++++++++++++++++++-----------
My code does not compile anymore as the view.FormItem interface was extended. Get/SetDisabled(…) are quickly implemented, no worries.
But the tview.Primitive (what makes a widget) interface has now a bunch of PRIVATE methods. For focus handling. Would you believe that!? Thanks, I cannot satisfy this interface in my very custom widgets anymore. Okay then, I just embed *tview.Box. tt now successfully compiles, but does not react anymore on key presses and the message tree is not focused either.
I’m not in the mood to debug this shit. :-( Lunch time.
@lyse@lyse.isobeef.org … I am literally writing a blog post about changelogs at this very moment … 😂 I am certainly adding the “‘add X’ and then later ‘remove X’” to my list of DON’Ts. 😅
Signal Alums Reveal ‘Encrypted Spaces,’ a System for Making Private Collaboration Apps
The new open-source project could serve as the basis for a future of apps with features as complex as Slack, Discord, or Google Docs—but with added protection against surveillance. ⌘ Read more
Protests Threaten to Disrupt Mexico City’s World Cup Opening Ceremony
Unions and other groups plan to demonstrate at the capital’s World Cup stadium, adding tension as the much-watched event begins. ⌘ Read more
Watch Duty Is Adding Flood Alerts to Its Wildfire App
The popular wildfire tracking app is adding flood monitoring to its platform. It’s the first new disaster alert on the service, with many more to come. ⌘ Read more
Actually, I’m stupid: I’m using the normal rsync on OpenBSD as well.
And regarding OpenRsync’s general usability:
https://marc.info/?l=openbsd-misc&m=178090751524547&w=2
Right now openrsync is limited in functionality and is primarily present
for rpki-client. The limited functionality makes it unusable for generic
use and so any diff or change like the above will not be considered since it
is simply not ready.First problem to solve is to remove the mmap usage in openrsync. After
that modern protocol versions need to be added. Once that is in place one
can start a discussion about using openrsync as a default on OpenBSD.
Show HN: ABC Classic 100 Rankings visualised
This weekend is the ABC Classic FM countdown, which prompted me to dust off an old un-published data visualisation of rankings from previous years.
I’ve considered adding a search function, but I also kind of like that it requires a bit of exploration in the current form.
Some of the code is a bit clunky and I wouldn’t mind refactoring it. I’m also not sure about browser compatibility - I’ve only got access to a couple of devices to test it on.
Comments URL: [https://news.yc … ⌘ Read more
Ask HN: Is the web for machines (/llm.txt) the one we wished we had as humans?
I got really tired, as a human, of parsing the standard marketing heavy web we have today.
I’ve always loved the simplicity of gopher and gemini web.
Recently I found myself manually adding `/llm.txt` to most websites I visit because I find the content for LLMs strait to the point and clear.
The only annoyance is web browsers like chrome do not render the markdown.
So could the AI revolution actually fix the web for humans as a side effect? … ⌘ Read more
Meta Silently Added Face-Recognition Code for Its Smart Glasses to Millions of Phones
Code reviewed by WIRED uncovered an unreleased face-recognition system embedded in Meta’s smart glasses platform. It’s designed to identify people via biometric data stored on users’ phones. ⌘ Read more
Weak productivity growth revealed in economy
The sluggishness of the Australian economy has been confirmed, with weak productivity growth adding to the government’s challenges. ⌘ Read more
How to Avoid Scams and Bad Gadgets on Amazon (2026)
Amazon is a murky mess of ads, unknown sellers, misleading sales, and specious information. Stay safe while shopping on Prime Day and beyond with these tips and tricks. ⌘ Read more
<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. :-)
Of course, @movq@www.uninformativ.de! Most of my points are also included in your list.
First of all, programming is what I really do enjoy the most. So, it doesn’t make any sense at all to not do this anymore. “But you could use your now free time to do something much cooler and more valuable!”, others might reply. Fuck no, I don’t want to waste my time with other shit that doesn’t fulfill me, why on earth would I want to do that?
All this hallucination reduces quality badly. In my experience, it’s also happening much more rapidly than I expected. Even though developers are still supposed to own and understand whatever has been generated under their name and even be responsible for that, the sad reality is that teammates often blindly trust the AI output. “But I asked the AI and it told me that $this was impossible”, “I’ve no idea either, but the AI just generated it” are responses I get more often. What really makes my angry is when I point out a flaw and suggest an alternative and this is the reaction. It happened several times that just trying it out and seeing it clearly work to proof my point only took me half a minute, but people still did something handwavy else instead.
The learning effect is drastically reduced. The more time I spend on a topic, the better the odds that whatever I learned actually makes it over into long-term memory. It’s like if a collegue just says “do it like that” or “this solves your problem”, but neither explains the why or how. Somehow, people are still convinced that it’s a completely different story when you replace the human counterpart with a computer program in this equation.
Skills are unlearned. It’s like with automation in general, just much worse. You end up in a state where you’ve no clue how anything works under the hood or how to actually find out important information that are needed to solve your problem. You’re screwed when a process breaks out of the blue. Even though it can become also rather terrible, with classical automation you’re typically still be able to decipher how exactly the thing was supposed to do something.
The energy consumption is sooo high, I absolutely do not want to be a part in burning down our planet. I’m sure I find (and probably have long found without knowing) other ways to contribute to worsen our climate crisis.
The scraper part is already covered in detail in your list. :-)
I’m convinced that license and copyright violations are only played down or even refused entirely because companies want to make big money quickly. With the work of others of course. Their double standards are obvious, they still try to actively keep their own stuff secret and out of any training sets. At most for internal use only. Virtually noone in charge is interested in good long-term solutions. Short-term for the win, when disaster eventually strikes, the causers are long gone, the responsibilities in other hands.
Vendor lock-in is something that lots of folks are only realizing very slowly. It’s completely crazy to me. This drug dealer routine should be well-known by now. It’s fucking everywhere. Yet, people are always surprised when they found themselves caught in it.
Adding new AI stuff only increases complexity. But complexity is the enemy that everybody should fear and reduce as much as possible. Of course, this is not limited to AI at all. And everywhere I look around, people in charge looooove to make things way more complicated than they ever need to be. Yet, simplicity is the real art and much harder to achieve.
I don’t understand why we have to go back full force to the ambiguity of natural languages. This alone should be more than enough to realize what a stupid idea all that is. Linked to that is that the “instruction set” is interpreted differently with newer model versions. I mean, is has to be. Why else would somebody want to upgrade in the first place than to get more Powerful™ Features™?
Some people argue that with AI the democratization is empowered. However, in my view, the exact opposite is the case. Models are getting so large that you can basically not run them locally or even train them. So, you have to rely on whatever the vendor offers you and runs for you. In the end, this only gives the owners more power, the multi billionaires. Not exactly what I understand by democratization.
Finally, technology assessments are missing completely. Or they are faked such that mostly only the (questionable) benefits are listed. But all the negative impact is just ignored.
Let’s keep some popcorn around for when this all explodes. :-)
@itsericwoodward@itsericwoodward.com ahh, I missed this one! I have now added it to my calendar, so come 25 May 2027 I shall not forget. To the hoopy froods!
‘Creepy’ Listening Tool for Targeted Ads Didn’t Actually Work, FTC Says
Three firms will pay nearly $1 million for selling “Active Listening” technology that they claimed tapped people’s phones for advertising. The FTC alleges the “tech” was just pricey email lists. ⌘ Read more
The Best Home Security System Is Modular (2026)
I’ve had SimpliSafe’s modular, no-contract setup for nearly a decade, and adding on to it has been a cinch. ⌘ Read more
@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?
These Instagram Ads Sure Seem to Be Selling Cocaine Accessories
From designer straws to magnet-sealed leather pouches, the platform is awash in products seemingly built for coke—despite Meta’s policies on drug paraphernalia. ⌘ Read more
I’m still having some fundamental design issues with my TUI widget system, so I’m still not comfortable making this code public.
But after a day of work (and discussing AI ad nauseam at work), I just don’t have any energy left. 😑
The Person Behind Those Viral Polycule Ads Says It’s Just a Joke
No, the flyers weren’t part of a secret scheme to promote anything. ⌘ Read more
Taylor Swift Wants to Trademark Her Likeness. These TikTok Deepfake Ads Show Why
Researchers show scammers are using AI-manipulated footage of celebrity interviews to trick users into sharing their personal data. ⌘ Read more
When the PR has more lines of code removed than added ⌘ Read more
@itsericwoodward@itsericwoodward.com Thanks! To be clear, my contribution was literally adding that sentence to the documentation, after other people did the work.
PEP 829: Structured Startup Configuration via .site.toml Files
This PEP proposes a TOML-based configuration file format to replace the .pth file mechanism used by site.py during interpreter startup. The new format, using files named .site.toml, provides structured configuration for extending sys.path and executing package initialization code, replacing the current ad-hoc .pth format that conflates path configuration with arbitrary code execution. ⌘ Read more
@kiwu@twtxt.net Sorry, I have two functional brain cells left in my brain, and I’m not sure if you’re asking What am I putting in it, as in a) when making some? Or as in b) when consuming/serving it?
a) 1L milk (0.5L cold + 0.5L warm @ ~45 °C), a bit of store bought yogourt for the bacteria, sugar and vanilla extract.
b) Most of the time, as is. But I’ve tried once: adding in a couple of diced strawberries that have been sitting in granulated sugar for a couple of minutes, until they’d released enough syrup, and I think I might’ve caught a new addiction on top of the original one.
What do you put in yours?
Today I have a day off but I’m adding this to the list of things I want to read:
Love, Learning, and Computing Education by Amy Ko
@movq@www.uninformativ.de Our ads are one of these rubbish ones, unfortunately. They just speak about “an attractive salary”. I reckon I will tell my boss about this talk tomorrow (even though I doubt that any of them are from our department).
I’ve got the impression that salary is amongst the most top secret topics in Germany in general. My conspiracy theory is that companies don’t put any numbers in job ads because that would just reveal that most employees are underpaid.
@lyse@lyse.isobeef.org Nice talk indeed.
Interesting to see that his ideal job ad talks more about the company than the required qualifications of the candidates. That alone is what 99% of companies get wrong. They just have a long list of “you must know these 500 things”, yeah, great, goodbye then. 🤷♀️
Just checked our job ads, some of them actually do list the salary. I’m surprised. 🤔
@lyse@lyse.isobeef.org Found some numbers now, they’re saying it was around 10cm in 3-4 hours. I don’t know, felt like more. 😂 The forecast wasn’t really good either, now that I think about it. They said there’s going to be some snow, okay, fine, but then, boom.
Haha, that old ad is lovely. Those days are over. 🤣
@movq@www.uninformativ.de Hehe. :-) This steep footpath connects a hiking parking lot outside the village and the edge of the village in a fairly straight line. Garden owners are allowed to drive their vehicles down from the village to their lots on this pathway and up again. These two poles are placed about a third up from the botton on a short, comparatively flat section to stop people from taking this shortcut to get down to the country road. Said road goes through the village but there are hairpins getting up and down. The road markings have been added recentlyish. I suspect to warn shooting down cyclists of the danger ahead. I haven’t seen something like this anywhere else either. :-)
When I’ve added a ternary operator in my code ⌘ Read more
Lychee growers’ creative desserts and drinks offset a dismal harvest
Freeze-dried desserts, lychee ice cream, sorbets, and frozen juice are keeping family owned farms open to the public longer, despite a dramatic drop in the Sunshine Coast lychee harvest. ⌘ Read more
@shinyoukai@neko.laidback.moe Do we now need ad filters in twtxt clients, too? O_o I hope not! Personally, I cannot stand the “Sent with my crappy $phone/$app” e-mail footers.
But congrats on your client. :-)
«Our online catalogue comprises the largest media art collection in the Netherlands. Search through more than 3,500 works of art, from video-art pioneers from the 1960s to up-and-coming talents and well-known contemporary artists working with the latest technologies. New works are continuously added. The works are available for screenings, exhibitions and research.»
Via @ranoya@ranoya
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.
The last few days I’ve been converting some charts to grayscale and adding letters to them in order to improve accessibility. Inskscape’s “Replace Colour” extension made things much easier.
I wonder if I could one day try my hand at making an improved variation of that extension that could save and reload a dictionary of replacements to help apply them to multiple files…
Another idea would be to allow replacement color fills with patterns and vice versa!
Let me save this on vault of ideas for the future :)
I enjoyed this one :)
I just added a few tweaks and turns (pun intended) to an example that @py5coding@py5coding made for out tutorial at #PythonBrasil2025, but it’s so much fun playing with it :D
I enjoyed this one :)
I just added a few tweaks and turns (wink) to an example that @py5coding@py5coding made for out tutorial at #PythonBrasil2025, but it’s so much fun playing with it :D
All my newly added test cases failed, that movq thankfully provided in https://git.mills.io/yarnsocial/twtxt.dev/pulls/28#issuecomment-20801 for the draft of the twt hash v2 extension. The first error was easy to see in the diff. The hashes were way too long. You’ve already guessed it, I had cut the hash from the twelfth character towards the end instead of taking the first twelve characters: hash[12:] instead of hash[:12].
After fixing this rookie mistake, the tests still all failed. Hmmm. Did I still cut the wrong twelve characters? :-? I even checked the Go reference implementation in the document itself. But it read basically the same as mine. Strange, what the heck is going on here?
Turns out that my vim replacements to transform the Python code into Go code butchered all the URLs. ;-) The order of operations matters. I first replaced the equals with colons for the subtest struct fields and then wanted to transform the RFC 3339 timestamp strings to time.Date(…) calls. So, I replaced the colons in the time with commas and spaces. Hence, my URLs then also all read https, //example.com/twtxt.txt.
But that was it. All test green. \o/
PEP 814: Add frozendict built-in type
A new public immutable type frozendict is added to the builtins module. ⌘ Read more
I should work on my client again and add some new features. Like adding a new feed directly in the client and not having to go to the config first. And showing a preview of a feed before actually adding it. Also, a search would be something to add. And finally combining my User-Agent analyzer with my subscription list to spot new feeds automatically.
Caelus Fucking Castorice (Aiki’@接搞中) [Honkai: Star Rail] ⌘ Read more
Debian Adding “Hard Dependency” on Rust, May Abandon Some PC Architectures
APT, Debian’s package manager also used by Ubuntu, to have a hard Rust requirement. ⌘ Read more
It is always awesome to have a few minutes to converse, at least once I month. I will not miss one, adding it to my calendar. I mean, if we were neighbours you (or wife) would probably have to kick me out of your house, so it’s good I am really far, and a once a month call suffices. 🤣
SUSE Bets The Farm on AI-Powered Linux Administration
SUSE, in a race with Red Hat to add Al features nobody wants, has added “Al-powered administration” to Linux servers. ⌘ Read more
I had a looksie (just to be sure) at the database, and they were thankfully legit test events. But this did spark/trigger me to make sure I have some form of anti-spam measures in place. So I added some per-event / per-rsvp rate-limiting and honeypot(s).
Cool. I think I’ve improved this abit. Update going out shortly… Also added optional support for displaying gravatar(s) if you supply your email address (optional of course).
ProcessOne: 🚀 ejabberd 25.10
Release Highlights:
If you are upgrading from a previous version, there are no mandatory changes in SQL schemas, configuration, API commands or hooks.
Other contents:
- **[New option
archive_muc_as_mucsubinmod_mam]( … ⌘ Read more
Dominated by Shimiko Blue Archive ⌘ Read more
B.C. to launch anti-tariff ads as Ontario pauses controversial campaign ⌘ Read more
Trump punishing Canada with 10% extra tariffs for not pulling down anti-tariff ad sooner ⌘ Read more
‘They played dirty, I can play dirtier’: Trump blasts Canada, won’t meet Carney over Reagan ad ⌘ Read more
Ontario to pause Reagan tariffs ad after Trump terminated Canada trade talks ⌘ Read more
Trump says he’s terminating trade negotiations with Canada over Ontario anti-tariff ad ⌘ Read more
Trump says he’s ending trade talks with Canada over TV ad ⌘ Read more
Triad Prague, is perhaps the only mainstream “Contemporary advertising” company, who fucking AI generates “pixelart” and everyone there is either too blind, dumb, or lazy, to at the very least, align the pixels, to a grid (or even check they’re square, the same size,…anything really).

I guess they must have some remains of shame and self preservation instinct, that made them sweep these off their portfolio website and set the video ads with them, to “Private” on YouTube.
https://youtu.be/s7GZK8FGRvA
But sadly not enough shame, to stop putting these on billboards, I have to see on daily basis and making new versions of them, with different inconsistent styles, of badly AI generated “pixelart”!

I checked their website, this is their footer, with the text that always overlaps - maybe they also never heard about CSS, can’t blame them, it’s only been a thing, since 1996.

Microsoft Adding AI Facial Recognition, “You can only turn off 3 times a year.”
Al Notepad, Al Paint, Al Excel, Al Word, Al GitHub… ⌘ Read more
D Killer Wife (ねじろ) [Nikke] ⌘ Read more
Red Tractor ad banned for misleading environmental claims
The Advertising Standards Authority upheld a complaint by environment charity River Action. ⌘ Read more
Bypass 403 Response Code by Adding Creative String | IRSYADSEC
HTTP 403 is a response code indicating that access to the requested resource is forbidden. This can happen due to various reasons, such as…
[Continue reading on Inf … ⌘ Read more
Adding Support for BlueSky to IndieLogin.com
Today I just launched support for BlueSky as a new authentication option in IndieLogin.com! ⌘ Read more
[$] Enhancing FineIBT
At the Linux\
Security Summit Europe (LSS EU), Scott Constable and Sebastian
Österlund gave a talk on an enhancement to a control-flow integrity (CFI)
protection that was added to the kernel several years ago. The “ FineIBT: Fine-grain Control-flow\
Enforcement with Indirect Branch Tracking” mechanism was merged for
Linux 6.2 in early 2023 to harden the kernel against CFI attacks of various
sorts, but needed [ … ⌘ Read more
Honest Government Ad | Visit New Zealand! ⌘ Read more
Getting Hands-On with Kerbrute: Practical AD Enumeration & Attack Tactics ⌘ Read more
My open letter, to the European Commission digital markets act team:
Hello,
I am joining other developers, concerned about Googles new plan, to approve every app and effectively destroy most of the competing 3rd party stores this way. The biggest one of these alternative stores, most known for their focus on user and developer privacy, already states, this would make it impossible for them to operate: https://f-droid.org/cs/2025/09/29/google-developer-registration-decree.html
Even communities like the XDA forum, where new developers are often introduced to the world of Android development, would likely be strongly impacted, as making, publishing and installing Android apps is made less accessible.
I am not just writing on their behalf, I run a small website myself (https://thecanine.ueuo.com/), that both provides legal modifications, for some android apps - for example adding an amoled dark theme, to the most popular XMPP chat client for Android, or increasing one of Androids keyboard apps height. This all comes after Googles previous changes to the Android operating system, that prevent users from installing old apps (old to Google, can mean only a couple of months, without an update - https://developer.android.com/google/play/requirements/target-sdk and the target version gets increased every year). I rely on apps developed by a single developer, even for things like making the pixel art presented on my website and sideloading as a way to make these apps work, before developers can catch up to Google’s new requirements - if Google is allowed to slowly kill these options, us digital artists will soon lose the tools we need to create digital art.
Not shown here but, this Shape class used on the linked sketch helps eliminate (by adding them to a set) not only Polygons that are visually the same but also shape rotations using a custom .hash() method :)
(A caveat to the reader: The code can be is messy because it sometimes retains remnants of abandoned ideas and lateral explorations. This is creative coding not software engineering)
Not shown here but, this Shape class used on the linked sketch helps eliminate (by adding them to a set) not only Polygons that are visually the same but also shape rotations using a custom .__hash__() method :)
(A caveat to the reader: The code is messy because it sometimes retains remnants of abandoned ideas and lateral explorations, also, this is creative coding not software engineering)
More Apple Apps Get Liquid Glass Redesign
Apple today updated its TestFlight and Apple Support apps, adding Liquid Glass designs to match the rest of iOS 26.
Both apps now feature Liquid Glass interface elements, such as more rounded buttons, floatin … ⌘ Read more
The wealth of the top 1% reaches a record $52 trillion
Robert Frank, Wealth Editor - CNBC
Stephan: When I tell you the United States has become a neo-medieval authoritarian oligarchy society, this is what I mean.
Robert Frank, CNBC Wealth Editor. Credit: CNBC- The top 10% of Americans added $5 trillion to their wealth in the second quarter as the stock market ra … ⌘ Read more
Die Wahrheit: Ade, Sommerloch, es wird kalt und kälter
Die Wahrheit-Sommerserie „Wahre Originale“ (Ende): Das legendäre taz-Sommerloch-Team (TST), dechiffriert vom Aushilfshausmeister. mehr… ⌘ Read more
AirPods Pro 3 vs. AirPods Max Buyer’s Guide: 30+ Differences Compared
The AirPods Pro 3 and AirPods Max are Apple’s highest-end headphone options, so which should you choose?
Apple just debuted the AirPods Pro 3, adding new features like improved active noise cancellation, the U2 chip, and heart rate monitoring. The … ⌘ Read more
Hello again everyone! A little update on my twtxt client.
I think it’s finally shaping a bit better now, but… ☝️
As I’m trying to put all the parts together, I decided to build multiple parallel UIs, to ensure I don’t accidentally create a structure that is more rigid than planned.
I already decided on a UI that I would want to use for myself, it would be inspired by moshidon, misskey and some other “social feeds” mock-ups I found on dribbble.
I also plan on building a raw HTML version (for anyone wanting to do a full DIY client).
I would love to get any suggestions of what you would like to see (and possibly use) as a client, by sharing a link, app/website name or even a sketch made by you on paper.
I think I’ll pick a third and maybe a fourth design to build together with the two already mentioned.
For reference, the screens I think of providing are (some might be optional or conditionally/manually hidable):
- Global / personal timeline screen
- Profile screen (with timeline)
- Thread screen
- Notifications screen or popup (both valid)
- DM list & chat screens (still planning, might come later)
- Settings screen (it’ll probably be a hard coded form, but better mention it)
- Publish / edit post screen or popup (still analysing some use cases, as some “engines” might not have direct publishing support)
I also plan on adding two optional metadata fields:
display_name: To show a human readable alternative for a nick, it fallback tonickif not defined
banner: Using the same format asavatarbut the image expected is wider, inspired by other socials around
I also plan on supporting any metadata provided, including a dynamically parsable regex rule format for those extra fields, this should allow anyone to build new clients that don’t limit themselves to just the social aspect of twtxt, hoping to see unique ways of using twtxt! 🤞
@prologic@twtxt.net considering other alternatives we have seeing (of which I have lost track already), yes. Why don’t you guys (client makers) take a step at a time and, for now, increase the hash length to deal with the collisions. Then location-based addressing can be added… or not, you know. 😅
Raspberry Pi Updates Keyboard PC with New 500+ Model
Raspberry Pi 500+ is the newest all-in-one personal computer in the Raspberry Pi family. It combines the Raspberry Pi 5 platform with a mechanical keyboard, upgraded memory, and integrated storage. The design builds on the earlier Raspberry Pi 400 and 500 models while adding higher specifications and new input features. The Raspberry Pi 500+ is […] ⌘ Read more
@movq@www.uninformativ.de better than in the US. Our lasts only 10 years, and you need to go through the vision test, and, of course, pay). Recently they added a little gold star denoting “real ID” compliance, and we had to pay $10 to get the old one replaced—out of the regular renew “schedule”.
In here it is all about control, and money.
@kat@yarn.girlonthemoon.xyz, this one, regarding “Anubis” (which I believe you use, right?): https://github.com/eternal-flame-AD/pow-buster
@kat@yarn.girlonthemoon.xyz, see this one, regarding “Anubis” (which I believe you use, right?): https://github.com/eternal-flame-AD/pow-buster
@lyse@lyse.isobeef.org i dont mind if the hash is not backward compatible but im not sure if this is the right way to proceed because the added complexity dealing with two hash versions isnt justified
regular end users wont care to understand how twt hashes are formed, they just want to use twtxt! so i guess i could work in protecting users from themselves by disallowing post edits on old posts or posts with replies, but i’m not fond of this either really. if they want to break a thread, they can just delete the post (though i’ve noticed yarn handling post deletes dubiously…)
on activitypub i do genuinely find myself looking through several month or even year old posts sometimes and deciding to edit/reword them a little to be slightly less confusing, this should be trivial to handle on twtxt which is an infinitely simpler specification
[2025/09/11 12:56:01.816] ⇒ please set config.host when trying to run "bbycll". How to bypass that tiny hurdle?
Adding too this. The configuration example at the repository reads:
{
"nick": "Example",
"description": "alice's twtxt instance!",
"host": "twtxt.example.com",
"admin": "alice"
}
Would it make more sense changing nick to instance_name or similar? Usually nick is reserved for users, like here, quark. Right? Also, is host the same FQDN to be used while proxying traffic to the application? That is, using the above configuration, it’s Caddy configuration would be:
twtxt.example.com {
encode
reverse_proxy :31212
}
Is that correct?
XMPP Interop Testing: Lots More Options
Since the last update, we’ve added a lot more options on how to run your tests. We’ve added a slew of new CI systems, this time focussing on freedom-respecting, open source CI systems for your open source projects.
Recent additions include Jenkins, Drone, Harness and Woodpecker.
This brings our total number of CI systems in which you can run XMPP interop tests up to a whopping ELEVEN, plus anywhere else you can run containers!
Whether you’re building … ⌘ Read more