@shinyoukai@neko.laidback.moe @prologic@twtxt.net Maybe that is helpful to you: https://git.mills.io/yarnsocial/twtxt2html/issues/12#issuecomment-20792
Iām gonna ask here again because Iām really frustrated and literally no one else is responding anywhere can u guys please help me find a good video camera the biggest think I want is long battery life but I also want it to be cheap like under $200, if you yourself donāt know please ask a friend because I am not a tech nerd and looking for stuff like this is very hard for me
@prologic@twtxt.net How do I test? You can try to mention my Mastodon account https://tilde.zone/@movq, if that helps. š¤
Maybe someone else can help with more testing? š§
@prologic@twtxt.net Your gitea thinks the LICENSE file in the yarn repository is SSPL-1.0 instead of GNU AGPL 3.0,
and I canāt help but giggle at that
@prologic@twtxt.net The main thing that I tought of is that whomever is abusing your services must be a well known actor (by range/set of IPs) that got reported by other Crowdsec users. So to my simpletonās understanding, your reverse-proxy/web server passes the requests by crowdsec for processing, they get banned for $N hours if the source has already been blacklisted by the community or violates any of a set of behavior base rules (and even more hours for repeat offenders); otherwise the requests/responses go as per usual. Not sure if I got things right but this might help paint a better picture of the process.
So blackholing my Gitea instanceās DNS for the day seemed to have worked 𤣠(if only I had a real target I could have made their fucking crawlers DDoS themselves š) ā Letās also see if enabling DDoS proection on the Edge via Vultrās DDoS capability also helps? š¤
@lyse@lyse.isobeef.org Probably wouldnāt help, since almost every request comes from a different IP address. These are the hits on those weird /projects URLs since Sunday:
1 IP has 5 hits
1 IP has 4 hits
13 IPs have 3 hits
280 IPs have 2 hits
25543 IPs have 1 hit
The total number of hits has decreased now. Maybe the botnet has moved on ā¦
Fark me š¤¦āāļø I woke up quite late today (after a long night helping/assisting with a Mainframe migration last night fork work) to abusive traffic and my alerts going off. The impact? My pod (twtxt.net) was being hammered by something at a request rate of 30 req/s (there are global rate limits in place, but stillā¦). The culprit? Turned out to be a particular IP 43.134.51.191 and after looking into who own s that IP I discovered it was yet-another-bad-customer-or-whatever from Tencent, so that entire network (ASN) is now blocked from my Edge:
+# Who: Tentcent
+# Why: Bad Bots
+132203
Total damage?
$ caddy-log-formatter twtxt.net.log | cut -f 1 -d ' ' | sort | uniq -c | sort -r -n -k 1 | head -n 5
61371 43.134.51.191
402 159.196.9.199
121 45.77.238.240
8 106.200.1.116
6 104.250.53.138
61k reqs over an hour or so (before I noticed), bunch of CPU time burned, and useless waste of my fucking time.
Anyone run a Mastodon serve rI can have an account on to help test the Twtxt <-> Activity Pub bridge? š
access.log files. Hence theyāll never see followers, unless we notify them out of band. š«¤
@prologic@twtxt.net that would certainly help a lot. I canāt think of a solution, though.
access.log files. Hence theyāll never see followers, unless we notify them out of band. š«¤
Is it worth me reaching out to the operator and helping build some solution for their userbase to detect followers? š§
Thank you for the encouragement and love and kind words, @lyse@lyse.isobeef.org @movq@www.uninformativ.de @bender@twtxt.net @doesnm@doesnm.p.psf.lt and others along the way Iām not sure of their feed uris š Iāll keep at it, but for the time being I will keep my distance, mostly off IRC, because I donāt have the energy to spare in that kind of engagement (what//if the worst happens, itās so draining). I need to remember what I ever did any of this for, it was back in ~2020 and I wanted really to build small interconnected communities that any non ātech savvyā person (more or less) could also benefit from ane enjoy. Even if there are aspects of the specs weāve built/extended over time that arenāt āperfectāā¢, theyāre āgood enoughā⢠that theyāve last 5+ years (I believe this is 6 years running now). I want to spend a bit of time going back to why I did any of this in the the first place, and get a little micro-SaaS offering going (barely covering running costs) so encourage more folks to run pods, and thus twtxt feeds and grow the community ever so slightly. Other than that, I plan to get the specs āin orderā to a point (with @movq@www.uninformativ.de and @lyse@lyse.isobeef.orgās help) where I hope theyāll stand the test of time ā like SMTP.
Thank you all ! š
@lafe@tilde.club Hahaha! :-D That surely helps. What kind of plant are we talking about here?
@prologic@twtxt.net @movq@www.uninformativ.de Same here, I give each service a dedicated e-mail address. Itās very interesting to see how e-mail addresses are transferred to other actors. Luckily, this only happens rarely. But it does happen. In surprising ways.
Aliases not only help to fight spam, but are also a great way to specify filter rules to sort e-mails.
Repair Video
ā Read more
@bender@twtxt.net Ohhh! Well, this Sunday is even more unlikely as Iām probably helping a mate in the woods. But maybe weāre quicker than I think.
@prologic@twtxt.net Ah, I see. Yeah, you might be right. (Still a fragile process due to the general AI wonkiness, but it can help to some degree, yes.)
@movq@www.uninformativ.de I guess I wasnāt talking about the speed of interesting text/context, but more the āslownessā of these tools. I think I can build/ solutions and fix bugs faster most of the time? Hmmm š¤ I think the only thing itās able to do better than me is grasp large codebases and do pattern machines a bit better, mostly because weāre limited by the interfaces we have to use and in my ase being vision impaired doesnāt help :/
@movq@www.uninformativ.de Ah! Maybe, but just maybe, this weight helps to keep the device from wandering around if a CD is spinning inside. CDs should be pretty well balanced, though.
Good luck with the replacement of the capacitors and reviving this player! :-)
jenny.vim?
@bender@twtxt.net I think youāve asked for that a while ago. š
Does that diff actually help? Donāt you have to use A (instead of i) anyway? š¤
Planetary Rings
ā Read more
It happened.
āCan you help me debug this program? I vibe coded it and I have no idea whatās going on. I had no choice ā learning this new language and frameworks would have taken ages, and I have severe time constraints.ā
Did I say ānoā? Of course not, Iām a ānice guyā. So Iām at fault as well, because I endorsed this whole thing. The other guy is also guilty, because he didnāt communicate clearly to his boss what can be done and how much time it takes. And the boss and his bosses are guilty a lot, because theyāre all pushing for āAIā.
The end result is garbage software.
This particular project is still relatively small, so it might be okay at the moment. But normalizing this will yield nothing but garbage. And actually, especially if this small project works out fine, this contributes to the shittiness because management will interpret this as āhey, AI worksā, so they will keep asking for it in future projects.
How utterly frustrating. This is not what I want to do every day from now on.
is the first url metadata field unequivocally treated as the canon feed url when calculating hashes, or are they ignored if theyāre not at least proper urls? do you just tolerate it if theyāre impersonating someone elseās feed, or pointing to something that isnāt even a feed at all?
and if the first url metadata field changes, should it be logged with a time so we can still calculate hashes for old posts? or should it never be updated? (in the case of a pod, where the end user has no choice in how such events are treated) or do we redirect all the old hashes to the new ones (probably this, since it would be helpful for edits too)
Hi everyone, hereās a little introduction of my twtxt client (still WIP).
The client Iām developing is a single tenant project that runs entirely in the browser (it might use an optional backend).
Itās entirely based on native web-components and vanilla JS, it is designed to act closer to a toolkit than a full-fledged client, allowing users to āDIYā their own interface with pure html or plain javascript functions.
Users can also build their own engines by including a global javascript object that implement the defined internal API (TBD).
Iām planning to build a system that is easy enough to build and use with any skill level, using only pure html (with a homebrew minimal template engine) or via plain JS (Iāll be also providing some pre-made templates too).
Everything can be self-hosted on any static hosting provider, this allows to spread twtxt within communities like Neocities and similarly hosted websites (basically any Indieweb/Smallweb/Digital garden website and any of the common GitHub/Lab/Berg/lify Pages).
It will be probably named something like TxtCraft or craf.txt but Iām not really sure yet⦠š¤ (Maybe some suggestions could help)
Iām still in the experimental phase, so thereās no decent source-code to share yet, but it will soon enough!
Pretty happy with my zs-blog-template starter kit for creating and maintaining your own blog using zs š Demo of what the starter kit looks like here ā Basic features include:
- Clean layout & typography
- Chroma code highlighting (aligned to your site palette)
- Accessible copy-code button
- āOn this pageā collapsible TOC
- RSS, sitemap, robots
- Archives, tags, tag cloud
- Draft support (hidden from lists/feeds)
- Open Graph (OG) & Twitter card meta (default image + per-post overrides)
- Ready-to-use 404 page
As well as custom routes (redirects, rewrites, etc) to support canonical URLs or redirecting old URLs as well as new zs external command capability itself that now lets you do things like:
$ zs newpost
to help kick-start the creation of a new post with all the right āstuffā⢠ready to go and then pop open your $EEDITOR š¤
@prologic@twtxt.net the simplest thing to do is to completely forgo hashing anything because we are communicating using plain text files right now :3 while i agree hashes are incredibly helpful in the backend im not sure it has a place outside of it, it basically eliminates two core design principals of twtxt (human readability and integrating well with unix command line utilities) and makes new clients more difficult to build than it should be
@prologic@twtxt.net That is really great to hear!
If there are opposing opinions we either build a bridge or provide a new parallel road.
Also, I wouldnāt call my opinion a āstanceā, I just wish for a better twtxt thanks to everyoneās effort.
The last thing we need to do is decide a proper format for the location-based version.
My proposal is to keep the āSubject extensionā unchanged and include the reference to the mention like this:
// Current hash format: starts with a '#'
(#hash) here's text
(#hash) @<nick url> here's text
// New location format: valid URL-like + '#' + TIMESTAMP (verbatim format of feed source)
(url#timestamp) here's text
(url#timestamp) @<nick url> here's text
I think the timestamp should be referenced verbatim to prevent broken references with multiple variations (especially with the many timezones out there) which would also make it even easier to implement for everyone.
Iām sure we can get @zvava@twtxt.net, @lyse@lyse.isobeef.org and everyone else to help on this one.
I personally think we should also consider allowing a generic format to build on custom references, this would allow for creating threads using any custom source (manual, computed or external generated), maybe using a new āTopic extensionā, hereās some examples.
// New format for custom references: starts with a '!' maybe?
(!custom) here's text
(!custom) @<nick url> here's text
// A possible "Topic" parse as a thread root:
[!custom] start here
[custom] simpler format
This one is just an idea of mine, but I feel it can unleash new ways of using twtxt.
Apologies if Iāve been spamming anyone out there in twtxt-land today.
Iāve been working on a couple of twtxt-related projects, and one of them is a reader (tentatively called twtstrm) written in JS. I used dummy data for the first few stages of development, but now Iām at the point where I need some real data, and that meant hitting up my actual following list.
Of course, it didnāt help that I had a typo in my If-Modified-Since headers, but all that has since been resolved.
Anyways, if I accidentally spammed you with requests today, I am sorry, and it shouldnāt happen anymore.
We thank you for your patience, and apologize for the inconvenience.
Apologies if Iāve been spamming anyone out there in twtxt-land today.
Iāve been working on a couple of twtxt-related projects, and one of them is a reader (tentatively called twtstrm) written in JS. I used dummy data for the first few stages of development, but now Iām at the point where I need some real data, and that meant hitting up my actual following list.
Of course, it didnāt help that I had a typo in my If-Modified-Since headers, but all that has since been resolved.
Anyways, if I accidentally spammed you with requests today, I am sorry, and it shouldnāt happen anymore.
We thank you for your patience, and apologize for the inconvenience.
@lyse@lyse.isobeef.org retwts are a discovery feature! on federated platforms with no algorithm where you only ever see posts from accounts you explicitly follow, the element of āhey look at this!ā helps users to find other accounts they might like organically
i agree quoting and replying forum-style is generally a much better way of doing things even though im a heathen and i revel in the dark patterns inspired by quote posts but when you have nothing to add and you just want to share a twt with your followers itād be good to have a standardized way of linking to twt
@zvava@twtxt.net Thatās a double-sided sword, Iād day. This also helps the bad guy kick out the rightful owner. Anyway. Happy hacking!
@lyse@lyse.isobeef.org Yeah, removing the cover will probably help. Iāll have to try. š And, yes, the scrolling is pretty annoying (and kind of ruins the experience a little bit).
The printer isnāt that loud ā at least not for a dot matrix printer. š Itās been ~30 years since Iāve last seen them in person, but I remembered these things to be louder. Iām typing on my Model M, maybe that contributes to the perceived noise on this video. Hereās an isolated recording of that keyboard: https://movq.de/v/ddc98b03d8/2022-02-21āmodel-m-goes-brrr.ogg 𤣠It really sounds like that when youāre typing fast. Brrrrt.
This is why I love tech from that era.
Write bytes to a parallel port and stuff happens. If itās just ASCII bytes, then it will print ASCII text. Even the simplest programs can use a printer this way.
With a little bit of ESC/P, you can print images and other fancy stuff. Thatās what I did this morning ā never worked with ESC/P before, now I can print images. Itās not that hard.
Hayes-compatible modems are similar: Write some AT commands to the serial port and the modem does things. This isnāt even arcane knowledge, itās explained in the printed manual.
Maybe Iām wearing rose-tinted glasses here, but I think with all this old stuff, you get useful results very quickly and the manuals are usually actually helpful. Itās so much easier to get started and to use this hardware to the full extent. Much less complexity than what we have today, not a ton of libraries and dependencies and SDKs and cloud services and what not.
iām helping someone get a reverse proxy going on windows and my god this operating system is dogshit
@kat@yarn.girlonthemoon.xyz I BELIEVE IN U!!! Making it fun helps! Maybe like put images in the docs so itās cuter to look at! I did that, but with physical journaling. Except instead of pics it was receipts & leaves & dried flowers lol
linodeās having a major outage (ongoing as of writing, over 24 hours in) and my friend runs a site i help out with on one of their servers. we didnāt have recent backups so i got really anxious about possible severe data loss considering the situation with linode doesnāt look great (it seems like a really bad incident).
ā¦anyway the server magically came back online and i got backups of the whole application and database, iām so relieved :ā)
@important_dev_news@n8n.andros.dev Oh gawd, is the EU doing this āage verificationā bullshit too!? Not just Australia?! š¦šŗ Farrrrk!!!!! Help!!!!
@movq@www.uninformativ.de wait this is SO fucking cursed help lmfao
@movq@www.uninformativ.de Thatās an interesting idea. For privacy, Iād just omit the Referer altogether. But maybe this helps talking to misconfigured HTTP servers that reject requests without such a header. No clue.
Heck yeah, Iāve been a firefly taxi again! \o/ One landed on my hiking boot and rode along a few meters. It then took off on its own without me having to help it. I saw easily a thousand glowing individuals tonight, bloody cool. :-)

Saw this on Mastodon:
https://racingbunny.com/@mookie/114718466149264471
18 rules of Software Engineering
- You will regret complexity when on-call
- Stop falling in love with your own code
- Everything is a trade-off. Thereās no ābestā 3. Every line of code you write is a liability 4. Document your decisions and designs
- Everyone hates code they didnāt write
- Donāt use unnecessary dependencies
- Coding standards prevent arguments
- Write meaningful commit messages
- Donāt ever stop learning new things
- Code reviews spread knowledge
- Always build for maintainability
- Ask for help when youāre stuck
- Fix root causes, not symptoms
- Software is never completed
- Estimates are not promises
- Ship early, iterate often
- Keep. It. Simple.
Solid list, even though 14 is up for debate in my opinion: Software can be completed. You have a use case / problem, you solve that problem, done. Your software is completed now. There might still be bugs and they should be fixed ā but this doesnāt āaddā to the program. Donāt use āsoftware is never doneā as an excuse to keep adding and adding stuff to your code.
@bender@twtxt.net Letās start a counter penguin feed! Or something along those whiskers. Should also at least mentally help with the heat.
@kat@yarn.girlonthemoon.xyz awwww, wish I could help you with that! Is there anything people could do to help you manage it?
When I chose the MIT license for all of my software, I thought:
āShould I use GPL, which I donāt really understand? Is that worth it? Yeah, there is a theoretical possibility that some company might use my code in their proprietary product ⦠and then what? Should I sue them to enforce the GPL? Iām not going to do that anyway, so Iāll just use the MIT license.ā
And now we have those LLM scrapers and now itās suddenly a reality that these companies (ab)use my code. I can see it in my logs. I didnāt expect that back then.
GPL wouldnāt help, either, of course. (Regardless, I now think that GPL would have been the better choice anyway.)
Iām honestly considering taking my code and website offline. Maybe make it accessible through some obscure protocol like Gopher or Gemini, but no more HTTP.
(Yes, Anubis might help. Temporarily.)
Iām just tired.
@movq@www.uninformativ.de help yeah i struggle so hard with this stuff! itās why wordier languages like ruby come easier to me
@kat@yarn.girlonthemoon.xyz Hmmm Please if this happens again, help me reproduce it. Any clues in the logs? Hmm? š§ My own pod has been running flawlessly for weeks now š
Anyone want to help me alpha/beta test the new WAF Iām building? Itās a Caddy module. š¤
@andros@twtxt.andros.dev Thanks for consolidating a lot of good ideas. Especially how you have deiced to just extend the mention syntax for location-based treads. This might even be backward compatible with older (pre-yarn) clients.
What about using Z for UTC +00:00- is that allowed in your specs?
Regarding url = I would suggest to only allow one and the maybe add url_old = or url_alt = !?
Iām still not a fan of a DM feature, even thou it helps that i have now been split out into a separate feed file. Instead if would suggest a contact = field for where people can put an email or other id/link for an established chat protocol like signal or matrix.