@balloonfu-sen@yarn.girlonthemoon.xyz I could in toehry publish a specification for what twtd implements, which forms the basis of the API between twtxt.app <-> twtd, if you wanted to write your own twtd / twtxt.app compatible publishing backend (assuming you didnāt want to use Github/Gitea, etc).
@balloonfu-sen@yarn.girlonthemoon.xyz Unfortunately I tried to support SFTP but ripped this out as Browsers (which the Swag framework uses under the hood as a framework to build PWA(s)) doesnāt support raw TCP connections. So FTP / SFTP is not possible without hacks like a proxy. Which I donāt really want to support. So only things that have some kind of HTTP API are possible viable publihsing backends right now. That is Github/Gitea, twtd, Yarn, etc.
I donāt want to involve the GitHub feed anymore. I want to eliminate variables here. So, this interaction is only between this feed, and the @bender@twtxt.netās feed.
@bender@twtxt.net Ah, the first twts were from https://raw.githubusercontent.com/Fastidious/fastidious.github.com/master/twtxt.txt, not https://daiwei.me/twtxt.txt. Fetching the GitHub feed completes the thread. š
Fixed the broken hashes in the Twtxt App (https://twtxt.app) š„³ It was hashing your twts with a client-side timestamp the server never used š¤¦āāļø Now it keeps the canonical created/hash the pod (or twtd) returns, and the GitHub/Gitea backends write a # url = preamble so every client hashes your feed the same way. Thanks @fastidious@tilde.town for the report š
@prologic@twtxt.net I linked you some of my findings on the twtxt.app on IRC. The main problem is the hashing. Totally broken. But you have got to give it some thought, because GitHub hosting of the feed is tricky (even more so if they are CNAMEing their domain to it). It is also finicky because Pages is auto-enabled on username.github.io, so actions must run each time you twt.
Hiya @GabesArcade@gabesarcade.com! I see you are following me from a feed on GitHub. Is that the same as https://gabesarcade.com/twtxt.txt?
@david@raw.githubusercontent.com your fork worked, and this is a fork, of your fork. Letās forkāem!
@itsericwoodward@itsericwoodward.com Haha! Iām glad you like it! 𤣠I ummed and arrred over the set of publishing backends it should support, and in the end decided to support Yarn, Github/Gitea and twtd. I hope thatās enough and flexible enough for most folks š¤
Itās definitely possible. I tried to keep everything the same, but there was some funkiness I did when I was in GitHub. Would that also explain why some of my posts show up twice in twtxt.net when replying?
Itās definitely possible. I tried to keep everything the same, but there was some funkiness I did when I was in GitHub. Would that also explain why some of my posts show up twice in twtxt.net when replying?
Hello everyone ! š Behold I bring you (after many years) the launch of the Twtxt App š ā Ye, this is a Desktop and Mobile app built as a Progressive Web App (PWA) using a little framework (Swag) I put together iafter some experiments @xuu@txt.sour.is and I did in Go and HTMX and Service Workers.
The App is offline-first and supports installing to Desktop and Mobile (add to Home screen) and supports a number of publishing backends, including Yarn.socialās yarnd Pod, Github, Codeberg/Gitea, and a little tiny twtd Twtxt server (See: https://git.mills.io/yarnsocial/twtd).
Please try it out, no need for any account(s) or such, works with your existing feed(s) (as long as the publishing backends work well enough for you!). Please give me feedback! š
Also, did you know the Twtxt Search Engine is back? š
So I decided to change tact a bit with GoNIX and instead of trying to build apure Go browser from scratch (which I kinda of half succeeded, in at least it was able to render most static ssr sites), Iāve instead decided to write a new browsered using the Chromium Embedded Framework, otherwise known as CEF. So now I have a fully working browser in GoNIX š ā However since my goal is to keep GoNIX pretty lcean and mostly written in Go, I delegated the cef part(s) to an OCI container image and run that with GoNIXās box (command-line container runtime). It works great š
Okay, Iām using the āofficialā validator now:
https://github.com/w3c/feedvalidator
That repo is supposed to be a website/webservice, though. The feedvalidator directory contains the actual validator. Iām using this wrapper on top: https://movq.de/v/94b5b8978c/
Damn, I broke my Atom feed (and a reader let me know, thatās cool!).
I run vnu on all HTML and CSS files after each build of the website, but I donāt run a feed validator. š¬ Time to change that.
@lyse@lyse.isobeef.org Besides, have a look at https://movq.de/v/cf0903ebc3/numb.png again: When it goes from item 9 to item 10, the indentation of the text (after the number) changes. Pretty ugly. In other words, a table of contents should be a table, not a list like it is at the moment. And that would require me to write my own extension for python-markdown ⦠Probably not worth it.
@prologic@twtxt.net The only image viewer I like in general is this one:
https://codeberg.org/nsxiv/nsxiv
Itās for X11, though.
Allegedly, this Wayland image viewer is somewhat similar to nsxiv, maybe youāll like that? š¤
@movq@www.uninformativ.de Yeah, the damn message to urge me into updating for no reason. It still works fine, why update then!? Leave me alone. If downloading fails, thereās already a hint that updating might fix it. The introduction of this banner in https://github.com/yt-dlp/yt-dlp/pull/13937 doesnāt give any reason for that change either.
I noticed that there are quite a few UI glitches in vim-classic ā and quickly found the cause: It comes with outdated Unicode tables.
I have to admit that I wasnāt aware that thereās a new Unicode release every year:
https://en.wikipedia.org/wiki/Unicode#Versions
Look at this huge number of changes. Every program has to keep track of that, often through libraries but sometimes not (like in Vimās case).
I use Unicode extensively, but this shit is extremely expensive ā¦
My TUI framework is having the same problem. At the moment, this is all offloaded to wcwidth, but if that library was to become unmaintained, Iād have to track Unicode myself.
Gah!
The DOS days were simpler. CP437, end of story. (Yes, I know thatās a lie.)
Alright. I found a way to avoid errors and install twtxt (original) https://github.com/buckket/twtxt/issues/194
I didnāt try it, but this looks like something for real sysadmins: https://github.com/dimonomid/nerdlog The UI looks very usable and the README is also promising.
These commit messages⦠https://github.com/vergonha/garden-tui
There: https://github.com/rivo/tview/issues/442#issuecomment-641898039
@movq@www.uninformativ.de Yes. The author tries hard not to break existing code, but apparently he did this time. In his defense, itās not an official release, I just updated to master. Which is exactly what I always did in the past as there are no real versions (I even think that in one ticket he wrote years ago that master is always stable). That has finally changed a year ago, though: https://github.com/rivo/tview/releases/tag/v0.42.0
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:
@lyse@lyse.isobeef.org Is it this one? https://github.com/rivo/tview Itās almost 10 years old but hasnāt seen a 1.0.0 release yet? š¤
Haha, GitHub. I āunlockedā the āachievementā called āQuickdrawā:
https://movq.de/v/efc96874f0/s.png
Itās for closing an issue very soon after it was opened.
Only problem: I was the one who opened it and it was a mistake, so I quickly closed it again. š¤¦āāļø https://github.com/bundlewrap/bundlewrap/issues/892
@movq@www.uninformativ.de I just ran across another thing. At least I personally couldnāt care less about CI infrastructure changes. Whether theyāre using github action a or b or c or version v or w, it is not of my interest. At all. (It might be useful to estimate the supply chain attack risk, though.) If the maintainers want to include them in the changelog ā and there are probably people to whom this information is crucial ā itās probably best to document CI infrastructure changes in their own section.
@lyse@lyse.isobeef.org Thanks!
On the AI changelog part, though, Iād rather recommend to just not have a changelog at all.
Iām afraid that ship has sailed. You can rest assured that someone who uses AI/LLMs for their code (which is almost everybody at this point) will most certainly also use it for changelogs.
I actually considered not mentioning AI output at all, because this just opens a huge can of worms ⦠š
While going through these terrible GitHub release pages, I also found these āNew Project Contributorsā sections
Yeah, they play on a nerdās pride.
Now, itās just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itās just our team who has to deal with that, though. I think Iām the only one who is not a fan of it.
Iāve found that this whole situation is much worse at work than it is in the Free Software world. At work, itās literally work and hardly anybody actually cares. We still donāt have all people convinced that writing good commit messages or using good branch names is worth the time. Itās ⦠oh god, no, Iām going to stop here, this is bad for my mental health. š
Suffice it to say, all release notes at work are now AI-generated. Nobody gives a fuck.
@movq@www.uninformativ.de Hahaha, great timing! :-D I love your article and agree with almost all your points.
On the AI changelog part, though, Iād rather recommend to just not have a changelog at all.
Another important thing for me is the deprecation notice section. What do I need to look out for in the future? Should I start to migrate to another API soon? Even right now? Or does it have time?
While going through these terrible GitHub release pages, I also found these āNew Project Contributorsā sections (yeah, for that, they found the time to make a section) annoying. Donāt get me wrong, sure, credit where credit is due. But come on. Soooooo much space for an inefficiently formatted (and also unsorted) list. At least it was easy enough to skip over it.
And then, there are also these changelogs or rather notice documents in general that are infested with multicolored emojis all over the place. My brainās spam filter kicks in and shoves everything to /dev/null immediately. Itās especially a thing at work.
In my previous work project, we also used the Keep A Changelog Format. That was great. You wouldnāt believe how often I resorted back to that document. At least twice a week, often several times a day. I was very glad that we put in this effort. Of course, writing the changelog took its time, but it was worth every minute and more. Reading a many months old item, it was immediately clear. I was our best customer in that regard.
Now, itās just the same auto shitshow with MR titles in a rolling date-versioned release scheme. Itās just our team who has to deal with that, though. I think Iām the only one who is not a fan of it.
Oh boy, I absolutely hate this stupid trend of not writing changelogs anymore! Why the fuck would one seriously consider it to be a viable option to just let some shitty bot spew all merge requests on a goddamn GitHub release?! First of all, these merge request titles suck balls. The order of the changes in this āchangelogā is completely random (well, probably merge time, which is as useless as the dick on the Pope). They are not grouped by anything at all. Additions, changes, removals, deprecations, etc. randomly mixed up in one giant list. And then āAdd feature Xā, seventeen kilometers further down āRevert āAdd feature Xāā. Fuck you! Donāt include this shit in the first place!
Fits absolutely perfect in the pattern of rapid decline.
I must rip out all dependencies as soon as possible whose maintainers just donāt give a shit.
@itsericwoodward@itsericwoodward.com Oh donāt get my wrong, I totally empathize, but yeah š
@movq@www.uninformativ.de Wow, Iām sorry to hear about that. Permanent emergency mode sucks, Iāve been there, and it always felt like drowning.
Fortunately, at my current job, weāve been given time to keep our technical debt from overtaking the project. Unfortunately, weāve been forced to use AI (mostly in the form of GitHub Copilot). Of course, now that the tokens cost more than a developerās salary, theyāve been rethinking that position somewhat. š
In my experience, you are 100% correct - even in the best case, AI is a force multiplier. If the code is clean, it can speed you up. But if the code is a mess, itāll just multiply the mess.
@prologic@twtxt.net As have I. š¤ I mean, since I left GitHub, I got basically 0 pull requests anyway.
Even during my time using GitHub, I noticed that ādrive-by PRsā are rarely a good idea. People donāt really know/understand the code or the design principles/goals, so I often turned down PRs. Or I accepted them and was grumpy afterwards. š
What does work is having a team of maintainers/devs. The only question is: How do you build such a team if you donāt accept PRs? Thatās going to be the interesting part.
A la recherche de secrets https://github.com/trufflesecurity/trufflehog
I like the new GitHub:
@klaxzy@klaxzy.net twtstrm/0.4.0 is from Eric. The getwtxt-ng/dev seems to be this.
Addeleg Ć tester https://github.com/mtth-bfft/adeleg
Just cancelled my sponsorship of two developers on Github, sorry š ā Iām not going to sponsor going forward if no-one else can be bothered to. It seems silly to be the sole sponsor of anotherās work or project š¤¦āāļø
Via https://github.com/newsboat/newsboat/issues/3220#issuecomment-4198066671 I came across this nice selection on why not to use AI: https://github.com/Vxrpenter/AIMania/blob/main/WHY.md#why
This then lead me to the slopware list: https://codeberg.org/small-hack/open-slopware
Holy shit, thereās even more than I thought. :-O In addition to Vim, the following affects me more or less daily (but hopefully not my ancient versions): curl, VLC, ImageMagick, rsync, Python, systemd and even the Linux Kernel itself. Oh fuck me dead. :ā-(
My first pull request to Perl has been merged! https://github.com/Perl/perl5/commit/2aea97bf3f5c2ea62cf5e701858694b7378ed58c
@bender@twtxt.net @thecanine@twtxt.net hoping for this to backfire and have shizuku or something like it to become way more popular, as it utilizes adb which is excluded from this āadvanced workflowā
@movq@www.uninformativ.de oh god, make it stop!
Recently the guy maintaining chardet changed its GPL license to MIT because āit is a complete re-writeā (by AI, of course). It was called out by the original author. Changing the license is something the current maintainer wanted to do for long time, getting nos, and nos then. That didnāt stop him 12 years later.
Can anyone recommend a command-line SQL query formatter? Unfortunately, sqlparse is also unsuitable for me: https://github.com/andialbrecht/sqlparse/issues/688
Trying an experiment. Created a Github repo for mu over at https://github.com/prologic/mu as a social experiment to see if we can maintain a tailored Github docs-only repo of a project, see if it gets any interest š¤
@bender@twtxt.net gemini-cli, something something https://github.com/google-gemini/gemini-cli/issues/16723
https://github.com/unix-v4-commentary/unix-v4-source-commentary
A comprehensive, line-by-line commentary on the UNIX Fourth Edition source code (released November 1973; tape recovered from June 1974 distribution).
./bin/mu -B -o ... -p muos/amd64 ... target.
@prologic@twtxt.net Iād love to take a look at the code. š
Iām kind of curious to know how much Assembly I need vs. How much of a microkernel can I build purely in Mu (µ)? š¤
Canāt really answer that, because I only made a working kernel for 16-bit real mode yet. That is 99% C, though, only syscall entry points are Assembly. (The OpenWatcom compiler provides C wrappers for triggering software interrupts, which makes things easier.)
But in long mode? No idea yet. š At least changing the page tables will require a tiny little bit of Assembly.
Took me nearly all week (in my spare time), but Mu (µ) finally officially support linux/amd64 š„³ I completely refactored the native code backend and borrowed a lot of the structure from another project called wazero (the zero dependency Go WASM runtime/compiler). This is amazing stuff because now Mu (µ) runs in more places natively, as well as running everywhere Go runs via the bytecode VM interpreter š¤