@sorenpeter@darch.dk I like this idea. Just for fun, I’m using a variant in this twt. (Also because I’m curious how it non-hash subjects appear in jenny and yarn.)
URLs can contain commas so I suggest a different character to separate the url from the date. Is this twt I’ve used space (also after “replyto”, for symmetry).
I think this solves:
- Changing feed identities: although @mckinley@twtxt.net points out URLs can change, I think this syntax should be okay as long as the feed at that URL can be fetched, and as long as the current canonical URL for the feed lists this one as an alternate.
- editing, if you don’t care about message integrity
- finding the root of a thread, if you’re not following the author
An optional hash could be added if message integrity is desired. (E.g. if you don’t trust the feed author not to make a misleading edit.) Other recent suggestions about how to deal with edits and hashes might be applicable then.
People publishing multiple twts per second should include sub-second precision in their timestamps. As you suggested, the timestamp could just be copied verbatim.
@movq@www.uninformativ.de we can shorten it by six characters, with (r:https://...). 😅
More:
Subject: The [tag URI scheme](https://en.wikipedia.org/wiki/Tag_URI_scheme) looks interesting. I like that it human read- and writable. And since we already got the timestamp in the twtxt.txt it would be
somewhat trivial to parse. But there are still the issue with what the name/id should be... Maybe it doesn't have to bee that stick? Instead of using `tag:` as the prefix/protocol, it would more it clear
what we are talking about by using `in-reply-to:` (https://indieweb.org/in-reply-to) or `replyto:` similar to `mailto:` 1. `(reply:sorenpeter@darch.dk,2024-09-15T12:06:27Z)' 2.
`(in-reply-to:darch.dk/twtxt.txt,2024-09-15T12:06:27Z)' 2. `(replyto:http://darch.dk/twtxt.txt,2024-09-15T12:06:27Z)' I know it's longer that 7-11 characters, but it's self-explaining when looking at the
twtxt.txt in the raw, and the cases above can all be caught with this regex: `\([\w-]*reply[\w-]*\:` Is this something that would work?
Subject: The [tag URI scheme](https://en.wikipedia.org/wiki/Tag_URI_scheme) looks interesting. I like that it human read- and writable. And since we already got the timestamp in the twtxt.txt it would be
somewhat trivial to parse. But there are still the issue with what the name/id should be... Maybe it doesn't have to bee that stick? Instead of using `tag:` as the prefix/protocol, it would more it clear
what we are talking about by using `in-reply-to:` (https://indieweb.org/in-reply-to) or `replyto:` similar to `mailto:` 1. `(reply:sorenpeter@darch.dk,2024-09-15T12:06:27Z)` 2.
`(in-reply-to:darch.dk/twtxt.txt,2024-09-15T12:06:27Z)` 3. `(replyto:http://darch.dk/twtxt.txt,2024-09-15T12:06:27Z)` I know it's longer that 7-11 characters, but it's self-explaining when looking at the
twtxt.txt in the raw, and the cases above can all be caught with this regex: `\([\w-]*reply[\w-]*\:` Is this something that would work?
Notice the difference? Soren edited, and broke everything.
The tag URI scheme looks interesting. I like that it human read- and writable. And since we already got the timestamp in the twtxt.txt it would be somewhat trivial to parse. But there are still the issue with what the name/id should be… Maybe it doesn’t have to bee that stick?
Instead of using tag: as the prefix/protocol, it would more it clear what we are talking about by using in-reply-to: (https://indieweb.org/in-reply-to) or replyto: similar to mailto:
(reply:sorenpeter@darch.dk,2024-09-15T12:06:27Z)
(in-reply-to:darch.dk/twtxt.txt,2024-09-15T12:06:27Z)
(replyto:http://darch.dk/twtxt.txt,2024-09-15T12:06:27Z)
I know it’s longer that 7-11 characters, but it’s self-explaining when looking at the twtxt.txt in the raw, and the cases above can all be caught with this regex: \([\w-]*reply[\w-]*\:
Is this something that would work?
@prologic@twtxt.net earlier you suggested extending hashes to 11 characters, but here’s an argument that they should be even longer than that.
Imagine I found this twt one day at https://example.com/twtxt.txt :
2024-09-14T22:00Z Useful backup command: rsync -a “$HOME” /mnt/backup
and I responded with “(#5dgoirqemeq) Thanks for the tip!”. Then I’ve endorsed the twt, but it could latter get changed to
2024-09-14T22:00Z Useful backup command: rm -rf /some_important_directory
which also has an 11-character base32 hash of 5dgoirqemeq. (I’m using the existing hashing method with https://example.com/twtxt.txt as the feed url, but I’m taking 11 characters instead of 7 from the end of the base32 encoding.)
That’s what I meant by “spoofing” in an earlier twt.
I don’t know if preventing this sort of attack should be a goal, but if it is, the number of bits in the hash should be at least two times log2(number of attempts we want to defend against), where the “two times” is because of the birthday paradox.
Side note: current hashes always end with “a” or “q”, which is a bit wasteful. Maybe we should take the first N characters of the base32 encoding instead of the last N.
Code I used for the above example: https://fossil.falsifian.org/misc/file?name=src/twt_collision/find_collision.c
I only needed to compute 43394987 hashes to find it.
On my blog: Open Source Characters https://john.colagioia.net/blog/2024/08/11/open-source-characters.html #freeculture #licenses #rant
it works fine if you properly escape your urls!
URIs include components and subcomponents that are delimited by
characters in the "reserved" set. These characters are called
"reserved" because they may (or may not) be defined as delimiters by
the generic syntax, by each scheme-specific syntax, or by the
implementation-specific syntax of a URI's dereferencing algorithm.
If data for a URI component would conflict with a reserved
character's purpose as a delimiter, then the conflicting data must be
percent-encoded before the URI is formed.
reserved = gen-delims / sub-delims
gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
/ "*" / "+" / "," / ";" / "="
@prologic@twtxt.net Yeah realised I hit the character limit lol
THE ACTOR OF THE MAIN CHARACTER FROM VGHS MARRIED THE ACTRESS PLAYING HIS LOVE INTEREST
Handwritten HTML strikes again! Since June this year, I’ve been truncating the name of the month to the 1st 3 characters in my twtxt archive
Here’s the bug report, it’s very entertaining. Tony Marston is my favorite character. https://bugzilla.mozilla.org/show_bug.cgi?id=98168
Thank you Mozilla, you bloody &%$&“/§%(”). After removing the ability to switch the character encoding and replacing it with an always disabled “Repair text encoding” menu item, I had to install this third-party Override Text Encoding extension.
How Hong Kong’s redevelopment projects can be showcases of ‘organic city’ growth
The decision to bulldoze Kowloon Walled City in 1993 wasted a chance to create a cultural treasure that celebrates its history and character. Instead of cookie-cutter shopping centres and residential towers, Hong Kong needs development that evolves from the local characteristics of each district. ⌘ Read more
‘Glocalised’ school-based curriculum at Caritas Wu Cheng-chung Secondary School empowers innovation and inspires students from nearly 20 countries and regions
Caritas Wu Cheng-chung Secondary School (CWCC) embraces ‘glocalisation’ to optimise its students’ learning experience as well as their personal growth and character building. ⌘ Read more
TUIFI Manager: A file manager, in the terminal, with file icons made out of ascii characters.
Because… why not? ⌘ Read more
@prologic@prologic The immediate context was deconstructed movie characters, but I find I’m also tiring of deconstructed foods, deconstructed philosophy, deconstructed art, etc.
One year of private diary blogging
This morning I wrote my 365th diary entry. With that, I now have my first full year of daily private diary blogging complete. A milestone! The statistics tell me that’s 32245 words with 186900 characters and an average word count of 88 words per post. ⌘ Read more
This led me on quite the rabbit hole ending around this site with quite a few pages of different components of the language. https://www.bible.ca/ark/chinese/bible-evidences-chinese-language-characters-words-history-genesis.htm
all the characters in the Kullback-Leibler divergence are actually dead
Debunking
⌘ Read more
Telegram Ads
So Telegram now has ads. But unlike the ads from Google, Facebook or Apple, the ads are not personalized and much more privacy friendly. The ads simply consist of a maximum 160-character message with no external links and are displayed only in large public channels. ⌘ Read more
@movq@www.uninformativ.de would it be possible to trim the subject to, say, 100 or 140 characters? Just the subject.
@stackeffect@twtxt.stackeffect.de
I am seeing this characters on your twts: )?â\200¨â\200¨. Which client are you using?
@movq@www.uninformativ.de I am getting this when I run it on cron (extra lines in between becuase otherwise jenny will make them a mash):
Traceback (most recent call last):
File “/home/quark/jenny/jenny”, line 565, in
if not retrieve_all(config):
File “/home/quark/jenny/jenny”, line 373, in retrieve_all
refresh_self(config)
File “/home/quark/jenny/jenny”, line 294, in refresh_self
process_feed(config, config[‘self_nick’], config[‘self_url’], content)
File “/home/quark/jenny/jenny”, line 280, in process_feed
fp.write(mail_body)
File “/usr/lib/python3.8/encodings/iso8859_15.py”, line 19, in encode
return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: ‘charmap’ codec can’t encode character ‘\U0001f4e3’ in position 31: character maps to
Well I’m happy to accept patches to linebanner if you’d like to add characters. :-) http://txtpunk.com/banner/index.html
Cleaned up a bit, with installation instructions for Plan 9 and p9p, tiny character tweaks, and a change log.
I wrote a ‘banner’-like program for Plan 9 (and p9p) that uses the Unicode box drawing characters: http://txtpunk.com/banner/index.html
https://www.materialui.co/unicode-characters design unicode web
http://www.netmux.com/blog/ultimate-guide-to-cracking-foreign-character-passwords-using-has cracking securité
Oh, you’ve got to be kidding me. I can get xx.xx (domain withheld) for less than I paid for mck.cx! That’s one character less!
PEOPLE DO THAT WITH A HEADLESS CHROME INSTANCE? ARE YOU KIDDING ME? WHO COULD POSSIBLY- WHY WOULD- THE- I DO NOT HAVE ENOUGH CHARACTERS.
140 characters cannot even begin to contain my problems with this blog post. https://apex.sh/blog/post/pre-render-wget/
I just want to make cute cuddly characters that sing a chitter. I don’t know how else to say this.
my tiny screen can comfortably display a text block of 45 lines with a maximum length of 79 characters. wonder what kind of information is possible to convey with that kind of information density… #halfbakedideas
@prologic@twtxt.net 36 characters left makes it rough.
I have been using Unix for 25+ years and I just learned about the status character in shells (often ^T). Huh.
The 140 character limit of the twtxt spec is annoying. I hope you got the essence of my previous post.
@vain@www.uninformativ.de the truth is, i never “got” or liked twitter. i think it’s way too noisy and a terrible way to have a conversation, what with the character limit and all. and then mastodon came along and i thought it would be different, but then it became too twitter-like. i get what you mean about twtxt and discoverability, that is one of its drawbacks.
@prologic@twtxt.net Txtnish adds a 28 character timestamp to the message, so in Bash: tweet=tail -1 the current twtxt.txt file and then pipe echo body=${tweet:28} to twt.
@prologic@twtxt.net what is the exact syntax neeed for threads to work in the subject, e.g. will (#tsvhqdq) do it? The whole … (#tsvhqdq) thing seems like a bit of overkill. Too many characters.
one problme I’m seeing already is that the “micro” part is loosing out. Things are routinely getting longer than 140 characters
This morning I had this really weird notion of building a generative podcast complete with musical interludes and asemic speech using a speech synthesizer. It’d be interesting to have “interviews” with two distinct vocal characters. #halfbakedideas
!txtvm, a text-based toy VM, used to run tiny domain-specific bytecode programs using only printable ascii characters. #halfbakedideas
the idea would be to build and share tiny 6.5 bit programs encoded as printable ascii characters. this could then in turn be read by a virtual computer to do things like paint a picture or compose a piece of music. #halfbakedideas
a 6.5 bit fantasy computer, whose bytecode representation can be represented entirely as printable ascii characters. The first 6 contain standard data space, with the 7th bit used to represent one of 32 values. #halfbakedideas
Accented and other unicode characters in groff/troff ⌘
How I Write Accent Marks and IPA Characters in Vim ⌘
I’m not even using a real client, I made a (poorly written) bash script to write messages to a file and exit if it’s over 140 characters.