One of the nicest things about Go is the language itself, comparing Go to other popular languages in terms of the complexity to learn to be proficient in:
- Go:
25keywords (Stack Overflow); CSP-style concurrency (goroutines & channels)
- Python 2:
30keywords (TutorialsPoint); GIL-bound threads & multiprocessing (Wikipedia)
- Python 3:
35keywords (Initial Commit); GIL-bound threads,asyncio& multiprocessing (Wikipedia, DEV Community)
- Java:
50keywords (Stack Overflow); threads +java.util.concurrent(Wikipedia)
- C++:
82keywords (Stack Overflow);std::thread, atomics & futures (en.cppreference.com)
- JavaScript:
38keywords (Stack Overflow); single-threaded event loop &async/await, Web Workers (Wikipedia)
- Ruby:
42keywords (Stack Overflow); GIL-bound threads (MRI), fibers & processes (Wikipedia)
Banana Pi BPI-Forge1 Is a Low-Cost RK3506J-Based SBC Compatible with RT-Thread
Banana Pi’s BPI-Forge1 is a compact single-board computer based on the Rockchip RK3506J SoC, designed for digital multimedia processing, intelligent voice interaction, and real-time audio applications. The board supports a range of embedded use cases through its integrated audio and display subsystems, peripheral connectivity, and small form factor. The RK3506J features a triple-core Arm … ⌘ Read more
(Updated) ESP32-C5-DevKitC-1 with 240MHz RISC-V Processor, Zigbee, and Thread Connectivity
The ESP32-C5-DevKitC-1 is another upcoming entry-level development board designed for IoT applications, featuring the ESP32-C5-WROOM-1 module. This board supports key wireless protocols, including Wi-Fi 6 (2.4 GHz and 5 GHz), Bluetooth LE 5, Zigbee, and Thread. The ESP32-C5-WROOM-1 module is equipped with a 32-bit RISC-V single-core processor running at 240 MHz along … ⌘ Read more
@andros@twtxt.andros.dev @eapl.me@eapl.me Still lots of bugs in my client. 🥴 I’ll try to fix it next week.
And yes, using the same timestamp twice will very likely break threads.
@andros@twtxt.andros.dev I set up a test feed here:
https://www.uninformativ.de/texudus.txt
I made some preliminary adjustments to my client so that it can work with the different threading model. (And I totally get the concerns, this can be quite a bit of work. Especially in a large code base like Yarn.)
up -d, but then I took a look at a couple of #Snac instances at the last second and they looked pretty dope! Now I'm stuck in my own head 😅
@bender@twtxt.net Mainly the bsd.cafe ones. I like how the minimalist single column profiles look. Image embeds are full width and reading through threads feels nice (as in it doesn’t feel like pealing layers upon layers of a fresh onion).
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://we.loveprivacy.club/search?q=%23123467">#123467</a>) hello foo bar
you would have
(<a href="https://we.loveprivacy.club/search?q=%23123467">#123467</a> http://foo.com/tw.txt) hello foo bar
or maybe even:
(<a href="https://we.loveprivacy.club/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
@eapl.me@eapl.me I honestly believe you are overreacting here a little bit 🤣 I completely emphasize with you, it can be pretty tough to feel part of a community at times and run a project with a kind of “democracy” or “vote by committee”. But one thing that life has taught me about open source projects and especially decentralised ecosystems is that this doesn’t really work.
It isn’t that I’ve not considered all the other options on the table (which can still be), it’s just that I’ve made a decision as the project lead that largely helped trigger a rebirth of the use of Twtxt back in July 1 2020. There are good reasons not to change the threading model right now, as the changes being proposed are quite disruptive and don’t consider all the possible things that could go wrong.
@bmallred@staystrong.run Hehe, @bender@twtxt.net is gonna be upset with you for “making up a thread/subject” 🤣
@bender@twtxt.net Nah it’s there but it’s a reply to a thread that isn’t found here hmmm 🤔
NUCLEO-WBA65RI Brings Bluetooth LE, Thread, and Zephyr RTOS to STM32 Nucleo-64 Platform
The NUCLEO-WBA65RI is a wireless STM32 Nucleo-64 development board built around the STM32WBA65RIV7 microcontroller. It combines the MB2130 MCU RF board with the MB1801 mezzanine board to support Bluetooth LE and IEEE 802.15.4-based protocols such as Thread, Matter, and Zigbee. The STM32WBA65RIV7 microcontroller is a 32-bit Arm Cortex-M33 device featuring 2 MB of flash and … ⌘ Read more
@abucci@anthony.buc.ci Haha you’ll have to forgive me, this thread is over a week old now and I’m a bit lost now 🤣 even though I can now see the entire thread, what are we saying was messed up and is garbled? 🤔
http:// only and to keep hashes from breaking i added # url = http://... and now we are stock with it due to the curret specs.
@bender@twtxt.net Hehe, thanks for fixing this (was) broken thread 🧵 Haha 🤣
Am I the only one that’s confused by the discussions, and then the voting we had on the whole threading model? 🤔 I’m not even sure what I voted for, but I know it wasn’t the one that won haha 🤣 (which I’m still very much against for based on an intuition, experience and lots of code writing lately).
@prologic@twtxt.net Shit like what? References/threads? 😅
Timeline of Evolution of Twtxt/Yarn.social:
- 2016 – Twtxt created by John Downey: plain text + HTTP = minimalist microblogging
- 2017–2019 – Community builds CLI tools, but adoption remains niche
- 2020 – Yarn.social launched by @prologic@twtxt.net with federation, threading, UI
- 2021–2023 – Pods sync, user mentions, blocking, search, and media support added
- 2024+ – Yarn.social becomes the reference Twtxt platform, with active federated pods
I asked ChatGPT what it knows about Twtxt 😂 And surprisingly it’s rather accurate:
Twtxt is a minimalist, decentralized microblogging format introduced by John Downey in 2016. It uses plain text files served over HTTP—no accounts, databases, or APIs.
In 2020, James Mills (@prologic@twtxt.net) launched Yarn.social, an extended, federated implementation with user discovery, threads, mentions, and a full web UI.
Both share the same .twtxt.txt format but differ in complexity and social features.
@kat@yarn.girlonthemoon.xyz It’s more like a cache, it stores things like “timestamp of the most recent twt we’ve seen per feed” or “last modification date” (to be used with HTTP’s if-modified-since header). You can nuke these files at any time, it might just result in more traffic (e.g., always getting a full response instead of just “HTTP 304 nope, didn’t change”).
@quark@ferengi.one Yes, I often write a couple of twts, don’t publish them, then sometimes notice a mistake and want to edit it. You’re right, as soon as stuff is published, threads are going to break/fork by edits.
@quark@ferengi.one No editing old Twts that are the root of a thread with replies in the ecosystem. Just results in a fork. Unless the client has an implementation that does not store Twts keyed by Hash.
Vim Golf test thread ⌘ Read more
@david@collantes.us Yeah, we’ve been debugging that a bit yesterday. Looks like the wrong input (sometimes) gets fed to the hash function → broken threads.
@david@collantes.us Ah, yes, the hardware might not. As I just said in the other thread: No problem, you can keep the same installation. I did so many times on my PC/laptop at work.
@prologic@twtxt.net The threads’ broken for me, I can’t find znf6csa. 🤔
@bender@twtxt.net i had to go to your instance to see the root post because I ACCIDENTALLY MUTED THE THREAD LMFAOOOOO but interesting re: unfollowing!
@kat@yarn.girlonthemoon.xyz I MUTED MY OWN THREAD this is what happens when i post at 7am
Tell HN: Announcing tomhow as a public moderator
Hi all,
Tom Howard is going public as HN moderator today. He has been doing HN moderation work for years already and knows the site and its practices inside-out, so the only new thing you’ll see is mod comments from Tom showing up in the threads the way mine do. I’m not going anywhere, so you’ll have two of us to put up with going forward :)
I’ve known Tom since he was sctb’s and my batchmate back in YC W09. Many of you know him as the kind and thoughtful community member … ⌘ Read more
@bender@twtxt.net Yeah, as you mentioned in the other thread, @andros@twtxt.andros.dev’s hashes appear to be not quite right. 🤔
Google makes Vulkan the official graphics API for Android
Google’s biggest announcement today, at least as it pertains to Android, is that the Vulkan graphics API is now the official graphics API for Android. Vulkan is a modern, low-overhead, cross-platform 3D graphics and compute API that provides developers with more direct control over the GPU than older APIs like OpenGL. This increased control allows for significantly improved performance, especially in multi-threaded a … ⌘ Read more
@lyse@lyse.isobeef.org Gotcha. That makes sense. Doesn’t hurt the systems but definitely can break the thread.
@andros@twtxt.andros.dev hmmm… pretty strange, isn’t it? replaying to threads worked perfectly, I’ve only had that problem trying to replay to a twt that was part of a thread.
As an example, this one is a Fork-Replay from Jenny. My next twt will be a replay to this exact twt but from twtxt-el as a test.
Then I’will file an issue if it doesn’t behave the way it’s supposed to. Cheers!
@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.
ESP32-H2 Thread/Zigbee Gateway Module for Low-Power Wireless Communication
The ESP32-H2 Thread/Zigbee Gateway Module is a stackable development module designed for the M5 series hosts. It is based on the ESP32-H2-MINI-1 and supports Zigbee, Thread, and Matter. The module includes IEEE 802.15.4 wireless connectivity, making it capable of building Matter over Thread endpoint devices and supporting communication between different ecosystems. The module features […] ⌘ Read more
@lyse@lyse.isobeef.org The one in question is more like the javascript version for unwrapping errors when accessing methods.
const value = some?.deeply?.nested?.object?.value
but for handling errors returned by methods. So if you wanted to chain a bunch of function calls together and if any error return immediately. It would be something like this:
b:= SomeAPIWithErrorsInAllCalls()
b.DoThing1() ?
b.DoThing2() ?
// Though its not in the threads I assume one could do like this to chain.
b.Chain1()?.Chain2()?.End()?
I am however infavor of having a sort of ternary ? in go.
PS. @prologic@twtxt.net for some reason this is eating my response without throwing an error :( I assume it has something to do with the CSRF. Can i not have multiple tabs open with yarn?
@movq, @prologic@twtxt.net when navigating to a Yarn. If the head twt is missing then the whole thread is not accessible. It only returns an error. so i have no way to view any of the replies within the thread other than the end twt.
good morning yarn friends. we need a funny name for yarn posters. what’s something that fits the yarn theme…. i mean we quite literally have threads here. yarn threads. how epic is that. now us posters need a funny name too.
Social media is in a worrying state. TikTok in the hands of autocratic China, X (formerly Twitter) in the hands of Elon Musk, who gets crazier every day and hangs out too much with Donald Trump (and recommends a fascist party in Germany), and now Mark Zuckerberg with Meta (Facebook, Instagram, Threads) is also joining the group of friends around Trump and removing fact checks in the name of “free speech”. What could possibly go wrong? ⌘ Read more
@prologic@twtxt.net this is epic… you’ve made a great platform!!! screw big tech we got literal threads here. X, The Everything App, wishes it had literal yarn threads smh my head. also twtxt is so cool like i love that yarn is a frontend for it but also its own thing. all plaintext… coolest shit ever