@kat@yarn.girlonthemoon.xyz Cool! I just got an idea for work tomorrow: Use dmenu to quickly start different SSH tunnels I routinely need.
@kat@yarn.girlonthemoon.xyz I have absolutely no idea, but I wouldnβt be surprised if it uses the closest full image after your cut point and not the one before. Hence, the deltas between the two full images have nothing to really refer to. So, the video player just shows the first full image it finds and βfreezesβ the image until the video stream actually hits it.
Let me try to visualize it, |
represent full images, .
just subsequent deltas:
Original start of video
β
|......|.....|........|......|..
β β
Cut point Cut point
Resulting video:
....|.....|........|....
ββββ
This is where it freezes
Could be complete bullshit, though. Wouldnβt be the first time that Iβm wrong. :-)
Iβm just curious, what exact command line do you use to cut the video?
@lyse@lyse.isobeef.org yesss itβs not my idea but itβs sooo fun here ngl like i should use it more!!
@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.
@lyse@lyse.isobeef.org Hm, I donβt think so, the requested page was a Linux-specific post. π€ I sometimes wonder if privacy-oriented browsers might do this on purpose, to create garbage data? π€ No idea.
Something happened with the frame rate of terminal emulators lately. It looks like thereβs a trend to run at a high framerate now? Iβm not sure exactly. This can be seen in VTE-based terminals like my xiate or XTerm on Wayland. foot and st, on the other hand, are fine.
My shell prompt and cursor look like this:
$ β
When I keep Enter pressed, I expect to see several lines like so:
$
$
$
$
$
$
$ β
With the affected terminal emulators, the lines actually show up in the following sequence. First, we have the original line:
$ β
Pressing Enter yields this as the next frame:
$
β
And then eventually this:
$
$ β
In other words, you can see the cursor jumping around very quickly, all the time.
Another example: Vim actually shows which key you just pressed in the bottom right corner. Keeping j
pressed to scroll through a file means I get to see a j
flashing rapidly now.
(I have no idea yet, why exactly XTerm in X11 is fine but flickering in Wayland.)
@prologic@twtxt.net @bender@twtxt.net Thatβs what I thought as well, sounds way too expensive to me. But I have no idea what the prices are over here. Probably also astronomical. Campers sit around most of the time, one really would need to use them a lot to justify spending so much money on them.
But yeah, each to their own (expensive) hobbies. :-) I, for example, burn my money on tools that I donβt reallyβ’ need. :-P
@prologic@twtxt.net Yeah, this really could use a proper definition or a βmanifestβ. π Many of these ideas are not very wide spread. And I havenβt come across similar projects in all these years.
Letβs take the farbfeld image format as an example again. I think this captures the βspiritβ quite well, because this isnβt even about code.
This is the entire farbfeld spec:
farbfeld is a lossless image format which is easy to parse, pipe and compress. It has the following format:
ββββββββββ€ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Bytes β Description β
β βββββββββͺββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β 8 β "farbfeld" magic value β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β 4 β 32-Bit BE unsigned integer (width) β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β 4 β 32-Bit BE unsigned integer (height) β
ββββββββββΌββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ’
β [2222] β 4x16-Bit BE unsigned integers [RGBA] / pixel, row-major β
ββββββββββ§ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
The RGB-data should be sRGB for best interoperability and not alpha-premultiplied.
(Now, I donβt know if your screen reader can work with this. Let me know if it doesnβt.)
I think these are some of the properties worth mentioning:
- The spec is extremely short. You can read this in under a minute and fully understand it. That alone is gold.
- There are no βknobsβ: Itβs just a single version, itβs not like thereβs also an 8-bit color depth version and one for 16-bit and one for extra large images and one that supports layers and so on. This makes it much easier to implement a fully compliant program.
- Despite being so simple, itβs useful. Iβve used it in various programs, like my window manager, my status bars, some toy programs like βtuxeyesβ (an Xeyes variant), or Advent of Code.
- The format does not include compression because it doesnβt need to. Just use something like bzip2 to get file sizes similar to PNG.
- It doesnβt cover every use case under the sun, but it does cover the most important ones (imho). They have discussed using something other than RGBA and decided itβs not worth the trouble.
- They refrained from adding extra baggage like metadata. It would have needlessly complicated things.
@movq@www.uninformativ.de Yeah thatβs why Iβm striking this conversation with you π Not only do I respect your opinion quite highly π€£ But like you say (and Iβve read their philipshpy) it can be a bit βelitismβ for sure. Iβm genuinely interested in what we think of as software that βdoesnβt suckβ. Tb be honest I havenβt really put thought to paper myself, but I reckon if I did, Iβd have some opinions/ideasβ¦
Iβm watching #TheOrville. Some ideas are interesting but the sense of humor isnβt really to my taste. Maybe a bit on the nose, could I phrase it that way? And the clumsy stuff makes me feel nervous instead of making me laugh.
In all fairness, GOG says that Forsaken is only supported on Ubuntu 16.04 β not current Arch Linux. If you ask me, this just goes to show that Linux is not a good platform for proprietary binary software.
Is it free software, do you have the source code? Then youβre good to go, things can be patched/updated (that can still be a lot of work). But proprietary binary blobs? Very bad idea.
I was wondering: What the heck is the light on my boot!? Turns out between sock and shoe tongue was a firefly, unbelievable! ;-D Iβve no idea how that happened. After untying, it took me five attempts to finally get it off. How crazy!
Watching several hundred glowworms tonight did not get boring. Itβs just so damn cool. :-)
@movq@www.uninformativ.de I also donβt think that Iβm a particularly good speaker. :-) The workshop model is a good idea, I like that.
Yeah, itβs really good fun. I can highly recommend it. This is also a good way to train (new) developers to think like attackers, how to break in, destroy something or raise awareness of some classes of bugs. Then you can avoid them next time. Itβs surprising to me what vulnerabilities come up during this event every time. So, absolutely worth it, win, win.
Okay, hereβs a thing I like about Rust: Returning things as Option
and error handling. (Or the more complex Result
, but itβs easier to explain with Option
.)
fn mydiv(num: f64, denom: f64) -> Option<f64> {
// (Letβs ignore precision issues for a second.)
if denom == 0.0 {
return None;
} else {
return Some(num / denom);
}
}
fn main() {
// Explicit, verbose version:
let num: f64 = 123.0;
let denom: f64 = 456.0;
let wrapped_res = mydiv(num, denom);
if wrapped_res.is_some() {
println!("Unwrapped result: {}", wrapped_res.unwrap());
}
// Shorter version using "if let":
if let Some(res) = mydiv(123.0, 456.0) {
println!("Hereβs a result: {}", res);
}
if let Some(res) = mydiv(123.0, 0.0) {
println!("Huh, we divided by zero? This never happens. {}", res);
}
}
You canβt divide by zero, so the function returns an βerrorβ in that case. (Option
isnβt really used for errors, IIUC, but the basic idea is the same for Result
.)
Option
is an enum. It can have the value Some
or None
. In the case of Some
, you can attach additional data to the enum. In this case, we are attaching a floating point value.
The caller then has to decide: Is the value None
or Some
? Did the function succeed or not? If it is Some
, the caller can do .unwrap()
on this enum to get the inner value (the floating point value). If you do .unwrap()
on a None
value, the program will panic and die.
The if let
version using destructuring is much shorter and, once you got used to it, actually quite nice.
Now the trick is that you must somehow handle these two cases. You must either call something like .unwrap()
or do destructuring or something, otherwise you canβt access the attached value at all. As I understand it, it is impossible to just completely ignore error cases. And the compiler enforces it.
(In case of Result
, the compiler would warn you if you ignore the return value entirely. So something like doing write()
and then ignoring the return value would be caught as well.)
@kat@yarn.girlonthemoon.xyz I might give it a shot. π
Skimming through the manual: I had no idea that keeping the βupβ cursor pressed actually slows you down at some point. π€¦
pledge()
and unveil()
syscalls:
@movq@www.uninformativ.de I like this idea π Very neat!
@prologic@twtxt.net will do. No worries, not a show stopper. I will suggest that the muted numbered list not be sorted, but latest muted first. That way we have a better idea. Maybe adding timestamps to those too? Just a thought.
@movq@www.uninformativ.de you have no idea what a soul sucking, heartbreaking SOB 2025 turned out to be. I wish you the best of luck with whatever annoyances life might have thrown your way. Power to you, my friend.
@movq@www.uninformativ.de Iβve absolutely no idea how theyβre poured in. I bet it must be some automatic thing. At least I cannot imagine that any sane person would ever add such junk to a list.
fit 1 $ spin (saw 0.1 * sign fxy) $ rect 0 1 - rect 0 0.99 >> add;
#punctual #livecoding #creativecoding #videoart
@sorenpeter@darch.dk Also not very readable. Quite cryptic really π I have no idea how this works π€¦ββοΈ
My vision with this newsletter is to have a slower medium for communicating about my art as well as ideas and projects Iβm working on regarding how we can use digital technology to our own benefits instead of being exploited by big tech.
Twtxt not sloe enough for you? π€£
@kat@yarn.girlonthemoon.xyz Ta! The dead end wasnβt all that bad in my opinion. Personally, I really do like dirt paths and exploring. It was all dried up, so no muddy mess we had to walk through. More like climbing over thick branches that have been worked into the ground by harvesters or forwarders in the muddy winter. Rough terrain. My mate, on the other hand β whose idea it was to check out the real summit in the first place ;-) β wasnβt all that pleased about the detour. Oh well. :-D
To follow up what I said minutes ago, they donβt even want you to think of the initial idea, they want you to be a mindless organism, the AI algorithm analyses and tells what you should make, down to the script, so that you get the highest number of people possible to click it and see some AI generated advertisement, blended seemly into whatβs no lonher even your work.
https://arstechnica.com/gadgets/2025/05/netflix-will-show-generative-ai-ads-midway-through-streams-in-2026/
https://youtu.be/dGA6sVaGveU
sooo many ideas for my site now that itβs SSG powered, not enough energyβ¦.. i wanna make little content collections but no energy T__T also i only half know what content i wanna put in them lol!
@kat@yarn.girlonthemoon.xyz come on! Stop giving me ideas when Iβm bored, specially when thereβs a sewing machine in a room next to mine xD
Thanks to @kat@yarn.girlonthemoon.xyz and her shelf I finally spent several hours in the woodshop. I wanted to build two drawers for the workbench and thought that I will complete this project in no time. Iβve been so wrong again. ;-)
I didnβt draw any plans, just measured a few times and then went to cutting a bunch of particle board leftovers at the table saw. I routed rebates on the sides, fronts and backs to lap the boxes and sink in the bottom. It turned out that having no plans was a stupid idea. I cut exactly on the lines as I calculated and measured, however, the math in my head fell apart when it eventually met reality. The bottoms are too short, so I gotta glue on some strips. Also, with the longer fronts, the sides wonβt work either, I have to fix them as well. :-D
Finally, the lid of my cyclone bucket broke when the negative pressure got too large. Oh well. It was just an old wood glue bucket, Iβve got another empty one, so I can use that lid but strengthen it first with some plywood. Something for future Lyse to deal with.
All in all, it was still good fun. Wood (haha) do it again, but at least with some sketches on paper. ;-)
@kat@yarn.girlonthemoon.xyz Any idea why?
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.
@bender@twtxt.net I think this would be a good idea as @movq@www.uninformativ.de and @andros@twtxt.andros.dev have done β
I may even join the experiments if I have any spare time to hack a custom yrand
branch and run it up on say something like a yarnexp.mills.io
or something π€
@sorenpeter@darch.dk Yes, there are interesting things that can be incorporated to see how they work.
The issue of allowing the use of Z for UTC is interesting. I think I should add a brief explanation.
The url issue is for a debate :D . Maybe an issue could be opened. My opinion is that it is necessary to leave it as it is right now because otherwise the thread system, or replies, may have problems (404s). Itβs all a matter of discussion.
I like your idea of contact. I will add it.
Thanks to you for your feedback!!!
@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.
@kat@yarn.girlonthemoon.xyz Off-topic areas are always a good idea. :-) Web forums often had those. And web forums are actually what I had in mind, @bender@twtxt.net. π (While I do have a certain nostalgia for it now, Usenet has always been a bit weird to me. Canβt really explain why.)
So, the βAIβ bots have reached my website. Looks like theyβre just slowly crawling everything at the moment β no DDoS-like attack yet. I wonder if that has something to do with my website being 100% static HTML. There are no GET parameters they can tweak and, at the end of the day, thereβs not that much data on my server anyway β¦ And maybe they have no idea what stagit is, so it doesnβt trigger βstandard behaviorβ, like βthis is a Gitea instance, letβs crawl this like crazy!β?
@lyse@lyse.isobeef.org Kind of, but on the other hand: This twt right here refers to 3rvya6q
and your feed, but your feed certainly does not include that particular twt (it comes from my feed).
But my proposal probably isnβt very helpful, either. We have this flat conversation model, so β¦ this twt right here, what should it refer to? Your twt? My root twt? I donβt know.
@prologic@twtxt.net Donβt include this just yet. I need to think about this some more (or drop the idea).
If we must stick to hashes for threading, can we maybe make it mandatory to always include a reference to the original twt URL when writing replies?
Instead of
(<a href="https://txt.sour.is/search?q=%23123467">#123467</a>) hello foo bar
you would have
(<a href="https://txt.sour.is/search?q=%23123467">#123467</a> http://foo.com/tw.txt) hello foo bar
or maybe even:
(<a href="https://txt.sour.is/search?q=%23123467">#123467</a> 2025-04-30T12:30:31Z http://foo.com/tw.txt) hello foo bar
This would greatly help in reconstructing broken threads, since hashes are obviously unfortunately one-way tickets. The URL/timestamp would not be used for threading, just for discovery of feeds that you donβt already follow.
I donβt insist on including the timestamp, but having some idea which feed weβre talking about would help a lot.
7
to 12
and use the first 12
characters of the base32 encoded blake2b hash. This will solve two problems, the fact that all hashes today either end in q
or a
(oops) π
And increasing the Twt Hash size will ensure that we never run into the chance of collision for ions to come. Chances of a 50% collision with 64 bits / 12 characters is roughly ~12.44B Twts. That ought to be enough! -- I also propose that we modify all our clients and make this change from the 1st July 2025, which will be Yarn.social's 5th birthday and 5 years since I started this whole project and endeavour! π± #Twtxt #Update
July 1st. 63 days from now to implement a backward-incompatible change, apparently not open to other ideas like replacing blake with SHA, or discussing implementation challenges for other languages and platforms.
Finally just closing #18, #19 and #20 without starting a proper discussion and ignoring a βmicro consensusβ feelsβ¦ not right.
I donβt know what to think rather than letting it rest (May will be busy here) and focus on other stuff in the future.
@movq@www.uninformativ.de Agreed, finding the right motivation can be tricky. You sometimes have to torture yourself in order to later then realize, yeah, that was actually totally worth it. Itβs often hard.
I think if you find a project or goal in general that these kids want to achieve, that is the best and maybe only choice with a good chance of positive outcome. I donβt know, like building a price scraper, a weather station or whatever. Yeah, these are already too advanced if they never programmed, but you get the idea. If they have something they want to build for themselves for their private life, that can be a great motivator Iβve experienced. Or you could assign βem the task to build their own twtxt client if they donβt have any own suitable ideas. :-)
Showing them that you do a lot of your daily work in the shell can maybe also help to get them interested in text-based boring stuff. Or at least break the ice. Lead by example. The more I think about it, the more I believe this to be very important. Thatβs how I still learn and improve from my favorite workmate today in general. Which Iβm very thankful of.
Weβre all old farts. When we started, there werenβt a lot of options. But today? Iβd be completely overwhelmed, I think.
Hence, Iβd recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice
Thatβs what I usually do (when we have young people at work who never really programmed before), but it doesnβt really βhitβ them. Theyβve seen so much, crazy graphics, web pages, itβs all fancy. Just some text output is utterly boring these days. βΉοΈ And thatβs my problem: I have no idea how I could possibly spark some interest in things like pointers or something βlow-levelβ like that. And I truly believe that you need to understand things like pointers in order to program, in general.
@movq@www.uninformativ.de I started with Delphi in school, the book (that we never ever used even once and I also never looked at) taught Pascal. The UI part felt easy at first but prevented me from understanding fundamental stuff like procedures or functions or even begin
and end
blocks for if
s or loops. For example I always thought that I needed to have a button somewhere, even if hidden. That gave me a handler procedure where I could put code and somehow call it. Two or three years later, a new mate from the parallel class finally told me that this wasnβt necessary and how to do thing better.
You know all too well that back in the day there was not a whole lot of information out there. And the bits that did exist were well hidden. At least from me. Eventually discovering planet-quellcodes.de (I donβt remember if that was the original forum or if that got split off from some other board) via my best schoolmate was like finding the Amber Room. Yeah, reading the ITG book would have been a very good idea for sure. :-)
In hindsight, a console program without the UI overhead might have been better. At least for the very start. Much less things to worry about or get lost.
Hence, Iβd recommend to start programming with a console program. As for the language, not sure. But Python is probably a good choice, it doesnβt require a lot of surrounding boilerplate like, say Java or Go. It also does exceptionally well in the principle of least surprise.
I have a great idea for fixing the US economy. Get rid of all the nuclear weapons π€£
@quark@ferengi.one I do have an idea for syncing this π€
These ideas are dr the two books:
- Drift into Failure: From Hunting Broken Components to Understanding Complex Systems by Sidney Dekker (2011)
- Engineering a Safer World by Nancy Leveson (2011)
The former I havenβt read. The later I havenβt finished reading π
And the idea of asynchronous evolutions comes from system accidents where control failures emerge when system structure, constraints, and evolution are poorly managed.
The idea of drift into failure is small normal adaptations erode safety over time without people noticing.
@prologic@twtxt.net I donβt understand the diagram, nor have any idea of whatβs about. ππ»
@andros@twtxt.andros.dev Haha π€£ Weβve explored this idea in the past and we decided that itβs actually a good idea to have an βappend-onlyβ feed for various reasons. Weβve also explored the idea of using Range
requests, but opted instead to just archive/rotate our feeds periodically π
There really isnβt much point in having a feed in reverse chronological order, except (maybe?) so a human read view the new twts at the top of the file?! π€£
dm-only.txt
feeds. π
After reading you, @eapl.me@eapl.me, Iβll tell you my point of view.
In my opinion, a feed does not have to be equivalent to a timeline. A timeline is a representation of the feed adapted to a user. You may not be interested in seeing other peopleβs threads or DMs. But perhaps they are interested in seeing mentions or DMs directed at them. It is important not to fall into the trap. With that clarificationβ¦
I insist, this is my point of view, it is not an absolute truth: I donβt think extensions should be respectful of customers who are no longer maintained.
We cannot have a system that is simple, backwards compatible and extensible all at the same time. We have to give up some of the 3 points. I would not like to give up simplicity because it will then make it harder to maintain the customers who do stay. Therefore, I think it is better to give up backwards compatibility and play with new formulas in the extensions. I donβt think itβs a good idea to make a hash keep so much load: a hashtag, a thread and also a DM.
π‘ I had this crazy idea (or is it?) last night while thinking about Twtxt and Yarn.social π
There are two things I think that could be really useful additions to the yarnd
UI/UX experience (for those that use it) and as βclientβ features (not spec changes). The two ideas are quite simple:
- Voting β a way to cast, collect a vote on a decision, topic or opinion.
- RSVP β a way to βrsvpβ to a virtual (pr physical) event.
Both would use βplain textβ on top of the way we already use Twtxt today and clients would render an appropriate UI/UX.
@bender@twtxt.net I noticed that although the Discover view (and your own Timeline) is much improved with a MaxAgeDays
configuration at the pod level, that now some profiles are rather empty. This is only because well, theyβre a bit βinactiveβ so to speak π£οΈ Not sure what to do about this at the momentβ¦ Open to ideas? π‘
@prologic@twtxt.net Since you have to check and double check everything it spits out (without providing sources), I donβt find any of this helpful. Itβs like someoneβs in the room with you and that person is saying random stuff that might or might not be correct. At best, it might spark some new idea in your head and then you follow that idea the traditional way.
Information published on the internet (or anywhere, for that matter) was never guaranteed to be correct. But at least you had a βframe of referenceβ: βAh, I read this information about Linux on a blog that usually posts about Windows, so this one single Linux post might not necessarily be correct.β That is completely lost with LLMs. Itβs literally all mushed together. π€·
@kat@yarn.girlonthemoon.xyz I skimmed through the gamja docs and they say you need an βIRC WebSocket serverβ β no idea what that is. Does gamja not speak IRC directly but essentially βIRC over HTTPβ? Curious. π€
so i had the idea of adding a page to my otherwise single page girl on the moon personal site that featured my more notable projects, but itβs been hours and i CANβT THINK OF ANYTHING TO ADD THAT I HAVENβT ALREADY MENTIONED. i just host other peopleβs stuff!!!
I do think integrating things like Salty.im might actually be a good idea. I can also see a future where we integrate other things like todo.txt
and calendar.txt
. Iβd even love to see decentralised forms of βplain textβ voting too.
@prologic@twtxt.net @bender@twtxt.net @eapl.me@eapl.me I think opening another file is a bad idea because it adds complexity to the clients, breaks the single feed and I think keeping legacy clients will be more complex to add new features in the future. A modern approach is important.
Iβll be honest, Iβm a bit tired of the fight around the direct message. Perhaps, we can remove it as an extension and use the alternative @prologic@twtxt.net . My suggestion apparently doesnβt like to the community. I have no problem with remove it.
well, I suggested that in https://eapl.me/timeline/conv/k2ob6bq
The idea was to help those following the spec in https://twtxt.dev/exts/directmessage.Html, to replicate the steps and validate whether your implementation gives the same result.
BTW, you could add a link to the spec in the echo web.
@andros@twtxt.andros.dev Kind of a cool idea actually! π Iβll follow and see what itβs like, thanks! π
@prologic@twtxt.net, is it my idea, or the size of avatars have gotten smaller?
@javivf@adn.org.es Oh, yes, looking at SMART is always a good idea. π My SSD isnβt that old, though. It got replaced recently, tbh. But no need to reinstall, I just copy the files to a new disk. (Works just as fine when switching to an entire new machine.)
Sometimes, we spend months stuck in inertia, distracted by screens and routine. So Iβd like to give you a simple reminder: creating-in whatever form-is what makes you feel alive.
The beauty of working on projects is not in their βsuccessβ, but in the simple act of working on them. Whether itβs writing, cooking, programming or redecorating the house: play with ideas without pressure, engage in an activity to test, fail and discover without judgement.
In the end, what remains is not a perfect product, but the satisfaction of completion and valuable lessons.
Find a project, no matter how small, and let it take you without expectations.
thatβs certainty an interesting idea.
Building on top of that, Iβm thinking of https://eapl.me/yatwt.yaml
somehow I forgot that existed.
Perhaps it was its mention of being a demo implementation here:
https://twtxt.readthedocs.io/en/latest/user/registry.html#registry
So I though it wasnβt really active.
Anyway, I think thatβs a good idea.
Is there something similar available on Yarn? Sorry for for asking if that was mentioned recently.
I think that the clients may help you to submit your URL to these directories, and also to get a view of the twts in them.
twtxt
, the voting period has started and will be open for a week.
https://eapl.me/rfc0001/
thanks @prologic!
@bender the idea of the RFC was to reach an agreement on a difficult problem, receiving proposals, and the voting is a simple count to gauge the sentiment of βis this a problem worth to be fixed?, are we committed to implement a change in our clients?β
But thatβs a fair point. What do the community expect? What do yβall expect?
Twtxt was made for nerds, by nerds.
Iβd like to change that. Itβs by nerds/hackers, for nerds/hackers and friends of these. It doesnβt have to be hacky all the time, as you donβt need to be a nerd to have a blog.
But, for that to happen, someone has to build the tools to improve UX.by design there really is no way to easily discovers others
Yeah, I agree, and although there are directories of email addresses, usually you donβt want that, unless you are a βpublic figureβ.
I couldnβt say that a microblogging is a βsocial networkβ by default, as a blog is not either. At the same time, people would expect to find new people and conversations, as youβd do in a forum.
I think of two features on top of the current spec:
- Clients showing a few posts of what your following are watching but you donβt, so perhaps you find something interesting to follow next. Or that feature of βYour βfollowingsβ are following these accounts/peopleβ. (Hard to explain in english, but I hope you get the idea)
- Sharing your .txt into some directory, saying βHey, I have this twtxt URL, I want to be discoveredβ. Iβm thinking of something like the Federated tab on Mastodon.
@bender@twtxt.net I taught the whole ecosystem π
@prologic@twtxt.net @eapl.me@eapl.me The question I was asked the most was: How do I discover people?
Someone came up with a fantastic idea, instead of adding the new twt at the end of the feed, do it at the beginning. So you can paginate by cutting the request every few lines.
2 is a great idea, you should suggest it in that blog post.
About 1, well, I think anyone has an email address and only about 5% use a Feed, so it makes sense to offer what most people use π€
@lyse@lyse.isobeef.org I had no idea. However, I think weβre losing our sense of anonymity. I even started using my real name!
also Iβve made a draft of a voting page to receive preferences on each proposal
https://eapl.me/rfc0001/
Help me to play with it a bit and report any vulnerability or bug. Also any idea is welcome.
Thatβs a great idea. I am running GoToSocial in a local server (like Raspberry Pi) and itβs working fine.
The other day, after a discussion online, we came to the conclusion that using awk+sed+tr could replace much of the development that requires a database. However, using SQLite to have a SQL syntax isnβt a bad idea either. What do you think?
@aelaraji@aelaraji.com not sure but i will check when i can! git status is a good idea yeah
@prologic@twtxt.net oops, Iβm sorry to see disagreement leading to draining emotions.
It remind me a bit of the Conclave movie where every part wanted to defend their vision and there is only a winner. If one wins the other loses. Like the political side of many leaders and volunteers representing a broad community. I donβt think thatβs the case here. Most of us (in not all) should βwinβ.
I can only add that isnβt nice to listen that βmy idea and effortβ is not what the rest of the people expect. I personally have a kind of issue with public rejection, but I also like to argue, discuss and even fight a bit. βA gem cannot be polished without friction, nor a man perfected without trials,β they say.
This exercise and belonging to this community also brings me good feelings of smart people trying to solve a human and technical problem, which is insanely difficult to get βrightβ.
I genuinely hope we can understand each other, and even with our different and respectful thoughts on the same thing, we might reach an agreement on whatβs the best for most people.
Good vibes to everyone!
@prologic@twtxt.net We canβt agree on this idea because that makes things even more complicated than it already is today. The beauty of twtxt is, you put one file on your server, done. One. Not five million. Granted, there might be archive feeds, so it might be already a bit more, but still faaaaaaar less than one file per message.
Also, you would need to host not your own hash files, but everybody elseβs as well you follow. Otherwise, what is that supposed to achieve? If people are already following my feed, they know what hashes I have, so this is to no use of them (unless they want to look up a message from an archive feed and donβt process them). But the far more common scenario is that an unknown hash originates from a feed that they have not subscribed to.
Additionally, yarndβs URL schema would then also break, because https://twtxt.net/twt/<hash>
now becomes https://twtxt.net/user/prologic/<hash>
, https://twtxt.net/user/bender/<hash>
and so on. To me, that looks like you would only get hashes if they belonged to this particular user. Of course, you could define rules that if there is a /user/
part in the path, then use a different URL, but this complicates things even more.
Sorry, I donβt like that idea.
@eapl.me@eapl.me Sounds like a great idea! π
a few async ideas for later
The editing process needs a lot of consideration and compromises.
From one side, editing and deleting itβs necessary IMO. People will do it anyway, and personally I like to edit my texts, so Iβd put some effort on make it work.
Should we keep a history of edits? Should we hash every edit to avoid abuse? Should we mark internally a twt as deleted, but keeping the replies?
I think thatβs part of a more complete βthreadβ extension, although Iβd say itβs worth to agree on something reflecting the real usage in the wild, along with what people usually do on other platforms.
looks good to me!
About aliceβs hash, using SHA256, I get 96473b4f
or 96473B4F
for the last 8 characters. Iβll add it as an implementation example.
The idea of including it besides the follow URL is to avoid calculating it every time we load the file (assuming the client did that correctly), and helps to track replies across the file with a simple search.
Also, watching your example Iβm thinking now that instead of {url=96473B4F,id=1}
which is ambiguous of which URL we are referring to, it could be something like:
{reply_to=[URL_HASH]_[TWT_ID]}
/ {reply_to=96473B4F_1}
That way, the βfull twt IDβ could be 96473B4F_1
.
@eapl.me@eapl.me There are several points that I like, but I want to highlight number 7. https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version #twtxt
I really like the proposal and your ideas. I have been reading your articles and several points seem very interesting to me.
True. Though if the idea turns out to be better.. then community will adopt it.
if you look at the subject for that twt you will see that it uses the extended hash format to include a URL address.
Hey everyone!
About the idea of improving the βthreadβ extension, what if we set aside March 2025 to gather proposals and thoughts from everyone? We could then vote on them at the end of the month to see if the change and migration are worth it.
The voting could include client maintainers (and maybe even users too). That way, we get a good mix of perspectives before taking a decision in a decent timelapse.
What do you think? If this sounds good, we can start agreeing on this. Let me know your thoughts!
I like this syntax, you have my vote, although Iβd change it a bit like
#<Alice https://example.com/twtxt.com#2024-12-18T14:18:26+01:00>
Hashes are not a problem on PHP, I dont know why itβs slow to calculate them from your side, but I agree with your points.
BTW, did you have the chance to read my proposal on twtxt 2.0? I shared a few ideas about possible improvements to discuss:
https://text.eapl.mx/a-few-ideas-for-a-next-twtxt-version
https://text.eapl.mx/reply-to-lyse-about-twtxt
@falsifian@www.falsifian.org Phew, okay. So, it took a few months to grow that big. I feared that it could have been just a week or so. Yeah, insulation always is a good idea.
@eapl_en@eapl.me Good idea
4, but I like the idea of @eapl_en@eapl.me
Yesterday I was doing a lot of research on how #hyperdrive and the #holepunch project work. Would it be possible to use it to make #twtxt an easier gateway for new users? Could we stop using web servers?
My conclusion: We would end up being a #nostr. On the one hand it would become more complex to use, it would force the user to have software installed, and on the other hand the community would need a central proxy to make the routes accessible via HTTP. In other words, itβs not a good idea.
However, itβs an AMAZING technology. I want to start playing with it.
@eapl.me@eapl.me I like this idea. Another option would be to show a limited number of posts, with an option to see the omitted ones by user. Either way, I wonder how well that works with threading.
@andros@twtxt.andros.dev The article is a good reminder of the true blogging mindset. But letβs try to think beyond. 2 ideas: (1) writing βforces clarity, structures your thoughts, sharpens your perspectiveβ. But it also generates thoughts in the sense of Heinrich von Kleist (1805). (2) Youβre writing for βthe future you, one right person, one dayβ but you are also writing for the AI. The idea of AI as an audience.
@movq@www.uninformativ.de Whether in the office or at home, I get nothing done. ;-) Well, while this is almost true, I actually tried to respond to the other thread I started myself, but starting the editor it switched immediately to this one. Any idea why this happens?
@lyse@lyse.isobeef.org @prologic@twtxt.net π There was something weird going on with my #Timeline instance, the text input box was visible even though I was logged out and I was able to twt from it β¦ It has to do with cache because it wouldnβt disappear unless I whip my websiteβs cache from the browser.
Poke @sorenpeter@darch.dk and @eapl.me@eapl.me I have no Idea how to reproduce this.
here are a few ideas you might take into consideration when designing a secure IM https://developer.virgilsecurity.com/docs/e3kit/fundamentals/secure-instant-messaging/
Obviously if youβve worked on something similar, you already know it, he
interesting idea. Iβm not personally interested on having DM conversations on twtxt
(for now), although I see the community could be interested in.
Iβd suggest to enable the Discussion section in your Github repo to receive comments, as we did for timeline
https://github.com/sorenpeter/timeline/discussions
I want to share a little idea for a new extension with the goal of adding direct messages in #twtxt https://github.com/tanrax/twtxt-direct-message-extension
@prologic@twtxt.net this is a great idea!
I have no idea what happened in/around instagram but, Holly Shi_ !! People have been pouring out of it and into #Pixelfed for hours now. π way to go #Fedi
@doesnmppsflt@doesnm.p.psf.lt It looks like itβ¦ Although they shouldnβt be empty since Timeline took care of sending those. I believe I have an idea as to why that happened, but will have to test before filing an issue.
curl: (3) URL rejected: Malformed input to a URL function. Writing sender in bash was BAD idea
@prologic@twtxt.net wait thats so cute re: the yarn name! i had no idea! weβre all just keeping the yarn ball rollingβ¦
Any idea Whatβs this "twtxtfeevalidator/0.0.1"
UA about? I thought I could ask before throwing a 1000GB file at it πͺ€ could it be the same βxtβ thing @lyse@lyse.isobeef.org was talking about the other day?
need to come up with ideas for camcorder videosβ¦ i have one but itβs just βtalk in front of camera about fave songs i listened to in 2024β and i wanna do more fun things even though rambling in front of cam is already fun af
i like this little ideas utility iβve been using like i keep pulling up the idea table to see what iβve added and it makes me wanna start one of them like the CLI app i wanna write in golang with charmbraceletβs bubbletea even though i only have a vague idea of what i want in a CLI app
i had ideas for my fancy new idea table list (https://github.com/IonicaBizau/idea) that iβve fallen in love with but i forgot what they wereβ¦
really wanna make an ssh zine app inspired by a telnet zine cms i found on github. iβm gonna probably go ahead with the telnet zine idea i have if i can get people for it but if i could build my own ssh mirror for it with golang and the charmbracelet wish library thatβd be epic