Added 1 account (boxofjoe) https://balloon.oldcities.org/twtxt-active-users.txt
Added 1 account (aelaraji) https://balloon.oldcities.org/twtxt-active-users.txt
Added 1 account (javivf) https://balloon.oldcities.org/twtxt-active-users.txt
Adding support for forking, forked conversations and navigating back to the root of a thread for the Twtxt App 🤞
I added 1 account (Gabe-sArcade): https://balloon.oldcities.org/twtxt-active-users.txt
I added 1 account (GabesArcade): https://balloon.oldcities.org/twtxt-active-users.txt
@Gabe-sArcade@gabesarcade.com Welcome! I added you to my twtxt Active List: https://balloon.oldcities.org/twtxt-active-users.txt It might be good to improve your “nick”.
I don‘t know when this happend, but Jetbrains added an autocomplete to the terminal input of Webstorm. So when you start typing a common command, some sort of select box opens and it catches your keyboard focus, so you cannot keep typing. You also cannot type in the select, you have to use the arrow keys or the mouse–or hit ESC to close it. And then you type the next letter AND IT OPENS AGAIN. WHY?! I am typing faster than selecting some entries in a dropdownish thing. I really hate this.
Been digging Susam Pal’s Wander Console: https://susam.net/wander/
I like the way it combines human curation with algorithmic randomness, allowing you to visit other #smolweb sites without leaving “home”.
Like this one - The Oldschool PC Font Resource: https://int10h.org/oldschool-pc-fonts/fontlist/
I plan on adding one to my own site as part of its next update.
Added 1 account https://balloon.oldcities.org/twtxt-active-users.txt
balloon added a twtxt central page, including a timeline.
Nightfall Shore resident balloon has been doing a lot of work improving the district! balloon added a twtxt central page, including a timeline.
I just started a new #getkirby collection here on Mastodon, please let me know if you want to be added:https://mastodon.online/collections/116769879481433457
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. 😅
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.
Added a Listening box to show currently playing, and last played from my self-hosted Navidrome Music Server!
Apologies to anyone who’s seen an uptick in twtxt pings from me today… I’ve been working on shoe-horning my twtxt reader (TwtStrm) into my editor (TwtKpr, aka the express-twtkpr npm library), and it kind ran amok a few times. So again, sorry - I’ve added a minimum 10-minute cool-down period between pulls which should help (I hope 🙂).
<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!
I wonder how they added this feature with only html…
@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?
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. 😑
Added a few more folks to my twtxt feed. Found them at https://tilde.club/~deepend/twtxttimeline/
i am trying to escape from big tech, as much as i can. spotify is just bad for artists, pays miserably plus they show ads for ICE recruitment in the US, netflix is just not interesting anymore and i don’t really wathch movies that much. the next one is paypal i think
Thanks, @movq@www.uninformativ.de! Oh no, get well, mate!
Yes, our singer is a male I’m pretty sure. Of course, it’s hard to tell after sunset whether our blackbird wears a black or brown feather coat, but during daylight I’ve always only seen black ones sit on this roof ridge. It appears that Wikipedia is backing this up a little bit: https://de.wikipedia.org/wiki/Amsel#Reviergesang
I just added a video. Hmm, filtering the background camera noise also makes the audio rather squeaky. :-(
@lyse@lyse.isobeef.org For reasons I can’t fully explain, we have a bunch of courses in the area, most in public parks (they integrate nicely since they can be built with the existing landscape, only adding some yellow baskets, concrete starting pads, and maybe signs).
In my experience, the main difference between a disc golfer and a frisbee thrower is that the disc golfer will often have a bag full of different shapes of discs (including drivers of varying ranges and/or putters). Even in my small bag, I’ve got some long range drivers (a Beast, a Cheetah, a Valkyrie, and a Wraith), my aforementioned MRV (Mid-Range Vector), an ultralight Aero (which feels similar to a “standard” frisbee), and 2 “rubber” putters (softer plastic, less “bouncy”).
@itsericwoodward@itsericwoodward.com Thanks! To be clear, my contribution was literally adding that sentence to the documentation, after other people did the work.
@lyse@lyse.isobeef.org Thanks (again) for the heads-up!. I’m not sure why you were seeing black text, but I just pushed a new version of the library (v0.10.1) with some updated colors in the demo’s themes (which should hopefully address the contrast issues).
The dark mode was an aesthetic choice by a designer with a strong preference for dark mode (and who thought the maroon looked better as a background color), but in the interest of being supportive of my audience, I added a localstorage-backed memory to the theme toggle (so when you turn it to light mode, it should remember for future visits).
sqlparse is also unsuitable for me: https://github.com/andialbrecht/sqlparse/issues/688
I’m supporting incremental SQLite schema changes to just upgrade from an older database version to whatever the current software version supports. In the past, I already noticed that this is quite expensive in unit tests when each test case runs through the entire schema patches and applies them one by one.
To speed up test execution I now decided that I finally go through the troubles of maintaining both a set of incremental patches and a full schema setup in one go. A unit test verifies that both ways end up with the same structure. This gives me a set of SQLs to check the structures:
SELECT type, name, tbl_name, sql
FROM sqlite_schema
ORDER BY type, name, tbl_name
Unfortunately, the resulting CREATE TABLE SQL queries are formatted differently, depending on whether the full schema was set up in one big step or the structure had been modified with ALTER TABLE. Mainly, added columns are not on their own lines but appended in one physical line. That’s why I wanted an SQL formatting tool. Since I didn’t find one that works decently, I’m now doing some simple string manipulation. Joining consecutive whitespace into a single space character, removing spaces before commas and closing parentheses and spaces after opening parentheses. This works surpringly good enough. Of course, if it fails, the “diff” is absolutely horrendous.
Now for the cool part, my test execution dropped from around 5:05 minutes to just 1:32 minutes! I call that a win.
I just stumbled across PRAGMA table_info('tablename') https://sqlite.org/pragma.html#pragma_table_info, PRAGMA foreign_key_list('tablename') and friends. I guess, I have to play with that, now. It’s probably much better to use than the SQL text approach.
@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?
Reorganised the site navigation, and added a colophon page with technical website details (h/t: susam.net) 🤓
Added my photo blog with recent updates. Backfilling older stuff… 📷
@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.
Adding noai.duckduckgo.com as Custom Search Engine ?~L~X https://thenewleafjournal.com/b/Drp
@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. :-)
@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. :-)
Adding a trust.txt File ?~L~X https://thenewleafjournal.com/b/Dpn
Adding Ads.txt to Website Without Ads ?~L~X https://thenewleafjournal.com/b/DpK
Adding a carbon.txt File ?~L~X https://thenewleafjournal.com/b/DoF
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.
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/
Beam Dump
⌘ 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.
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. 🤣
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).
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.
