I’m not super a fan of using json. I feel we could still use text as the medium. Maybe a modified version to fix any weakness.
What if instead of signing each twt individually we generated a merkle tree using the twt hashes? Then a signature of the root hash. This would ensure the full stream of twts are intact with a minimal overhead. With the added bonus of helping clients identify missing twts when syncing/gossiping.
Have two endpoints. One as the webfinger to link profile details and avatar like you posted. And the signature for the merkleroot twt. And the other a pageable stream of twts. Or individual twts/merkle branch to incrementally access twt feeds.
💡 Quick ‘n Dirty prototype Yarn.social protocol/spec:
If we were to decide to write a new spec/protocol, what would it look like?
Here’s my rough draft (back of paper napkin idea):
- Feeds are JSON file(s) fetchable by standard HTTP clients over TLS
- WebFinger is used at the root of a user’s domain (or multi-user) lookup. e.g:
prologic@mills.io->https://yarn.mills.io/~prologic.json
- Feeds contain similar metadata that we’re familiar with: Nick, Avatar, Description, etc
- Feed items are signed with a ED25519 private key. That is all “posts” are cryptographically signed.
- Feed items continue to use content-addressing, but use the full Blake2b Base64 encoded hash.
- Edited feed items produce an “Edited” item so that clients can easily follow Edits.
- Deleted feed items produced a “Deleted” item so that clients can easily delete cached items.
Huh? Not sure what you are referring to here to be honest.
Sam Whited: Concord and Spring Road Linear Parks
In my earlier review of Rose Garden and Jonquil public parks I mentioned
the Mountain-to-River Trail
(M2R), a mixed-use bicycle
and walking trail that connects the two parks.
The two parks I’m going to review today are also connected by the M2R trail in
addition to the [Concord Road Trail](https://blog.samwhited.com/cate … ⌘ Read more
Given the continued hostility of jam6 and buckket over Yarn’a use of Twtxt (even after several years! 😱) I am continuing to face hard decisions.
I am not sure what to do about this. 🤔 I am quite confident that the hostility and sentiment is not held by all Twtxt users past and present 😢
This is a case of a few upset purists who prefer to mock, shame and behave passive aggressively instead of contributing to a healthy discussion and ecosystem.
I am uncertain what Yarn should do here 😢
@prologic@twtxt.net yes I will test it :) cloudflare is something I do not have on my end, so I never thought of that, so glad you mention that as a potential issue to solve. Ill check on it.
@lyse@lyse.isobeef.org Also - I agree with the rest of what you say. I just have a habit of making stuff work, then improve, but what you mention is somethig I need to be better at doing from the start, so I’m glad you mention these things. Also - the TLS check - it refused to connect if I have it enabled, and from what I saw online you need a copy of the servers cert locally to have that enabled, that’s at least what I found when I looked into it, but it’s worth a second look for sure. Pizza was great today, i’m stuffed! :)
@abucci@anthony.buc.ci that is an ironic example. Since the inventor of the seatbelt gave rights to use the technology freely.
@abucci@anthony.buc.ci that is an ironic example. Since the inventor of the seatbelt gave rights to use the technology freely.
@lyse@lyse.isobeef.org valid points and noted. 😀
It will improve shortly. I had not thought about quotes in password, so that was a nice catch that needs to be fixed.
💭 While some people like to jump between blogging software all the time, or go back to Hugo from a custom one, I don’t really miss Hugo after switching to GoBlog in 2020, but enjoy having my own system quite a bit. Not that Hugo, WordPress, etc. are bad blogging systems, but I really enjoy being able to quickly code a fix without having to research docs, StackOverflow, or the source on GitHub. And when I have an idea for a new feature, it would often not be easy to implement in the existing systems. ⌘ Read more
The code for the desktop client is now public here: https://github.com/stig-atle/YarnDesktopClient , I will create tickets for the known things I need to fix and such later today.
@prologic@twtxt.net I will give it a shot today, that and to show attached images in the status would be great to have. I just need to figure out the curl for posting image, then the rest would be easy to implement :) I would use that a lot since I often post photos and such.
@prologic@twtxt.net hehe, yeah! That’s the way to get things done - use it daily, fix everything that needs to be fixed :)
@prologic@twtxt.net By the way - can I call my application ‘Yarn desktop client’? Is that OK with you? Or do you want it to have another name - but then have ‘a desktop client for yarn’ as information in readme etc?
I will release the sourcecode for the desktop client tonight. I will put it on github (sorry to anyone who prefer other places), but the reason is that I do not want my own git to be open for public. So I’ll put it on github where I have all my other public projects. I have to write the readme, then add some info on the login page (link to source etc), then it’s ready to release with the current features. I then hope others will give it a try and use it if they want :) I also have many other features I need to implement, but all the main features that makes it usable has been implemented, so I’m very pleased with it (And I use it all the time now).
@prologic@twtxt.net That sounds great! I’m looking forward to doing that too here! We also go to the local lakes and such when it gets warm enough! Always nice to spend time in the water :)
Good morning to you all! Started my day by walking about 5km around a lake that’s next to the ocean, a really nice place to walk. It rains today, so not many people out (which I like). So now the dog is sleeping on the sofa. My daughter went to a friend for a visit today, and my son is just chilling and watching youtube. So it’s a nice chill start to this Saturday :) Hope you all have a great day!
[47°09′33″S, 126°43′25″W] Bad satellite signal – switching to analog communication
On my blog: Toots 🐘 from 04/10 to 04/14 https://john.colagioia.net/blog/2023/04/14/week.html #linkdump #mastodon #socialmedia #week
Got up before 7 this morning, now it’s 14,5 hours later - and I finally got to sit down for the first time today. Been a busy day, but a good one. Now it’s time to relax a bit (code on the desktop client) and then relax for a bit. Tomorrow the weather is going to suck, but I’ll still go for the usual weekend hikes with the dog, trying to plan a new place to walk tomorrow.
3 benefits of migrating and consolidating your source code
Explore how migrating your source code and collaboration history to GitHub can lead to some surprising benefits. ⌘ Read more
How generative AI is changing the way developers work
Rapid advancements in generative AI coding tools like GitHub Copilot are accelerating the next wave of software development. Here’s what you need to know. ⌘ Read more
**RT by @mind_booster: All the #WordCamp Lisboa speakers are now announced.
The full schedule is out 👉 https://lisboa.wordcamp.org/2023/programa-schedule/
100 more tickets released 👉 https://lisboa.wordcamp.org/2023/tickets/
Only a few more days to guarantee the t-shirt and other event surprise swag.
#WCLisboa**
All the #WordCamp Lisboa speakers are now announced.
The full schedule is out 👉 [lisboa.wordcamp.org/2023/pro…](https://lisboa.wordcamp.org/2023/programa-sc … ⌘ Read more
I finished my first “Hell Week” and with it the first “Training Journey” in Freeletics. 48 training sessions. On to the next one! 💪 ⌘ Read more
@phoronix@feeds.twtxt.net nice! I want to upgrade on my x200 soon.
That reminds me about something, I want to test if I can compile my desktop client on my mangopi riscv board with debian. That would be cool to run on it.
The Rust Foundation goes to war against people using the word “Rust”
Seriously. The title of this article violates the new Rust Trademark Policy. It’s insane. ⌘ Read more
GitHub Accelerator: our first cohort and what’s next
Meet the individuals that make up the first GitHub Accelerator cohort and learn about how GitHub is helping bring their visions to reality. ⌘ Read more
[47°09′21″S, 126°43′56″W] Transponder still failing – switching to analog communication
R to @mind_booster: E olhem, dentro também tem coisas giras, com números e tudo…
E olhem, dentro também tem coisas giras, com números e tudo…
Diffraction Spikes
⌘ Read more
“…and we can probably plan for middle of March thi…ah, hello! Mister Yudkowsky! I hope you found—” “Rename your company to ClosedAI.” “Uh…what?” “Rename your company to ClosedAI. Stop your biggest training runs. Pivot to mechanistic interpretability. Shut it all down.” “………Selfie?”
spring has come to Frankfurt at 21.03.2023.
Introducing the newest GitHub Shop collection
From dog bowl bottles to fanny packs, explore the latest and greatest GitHub merchandise. ⌘ Read more
@movq@www.uninformativ.de I love ‘exotic’ computers, especially riscv. But one of the most prized computers I have is the Lemote Yeeloong, Loongson mipsel laptop - http://web.archive.org/web/20151220055337/http://www.lemote.com:80/en/products/Notebook/2010/0310/112.html , very cool machine, I cannot part with that one, gonna put in in my coffin when I die. Got a hold of it about 10 years ago, cost a lot, but it was worth it. I run openbsd on it, and have to compile everything on it. took over 2 weeks to compile sylpheed email client on it LOL.
https://hackaday.com/2023/04/11/a-miniature-mnt-for-every-pocket/
I would love to have one of these..
JMP: Verify Google Play App Purchase on Your Server
We are preparing for the first-ever Google Play Store launch of Cheogram Android as part of JMP coming out of beta later this year. One of the things we wanted to “just work” for Google Play users is to be able to pay for the app and get their first month of JMP “bundled” into that purchase price, to smooth the common onboarding experience. So how do the JMP servers know that the app communicating with them is running a version of the app bought from Google P … ⌘ Read more
Developer of code used by entire Internet tipped $5
“I’m just not used to that sort of generosity.” ⌘ Read more
spring has come to Minnesota. Better late than never.
making a note here to check this out.
making a note here to check this out.
@adi@twtxt.net Nothing really, I tried it in a VM a long time ago, never got to install it on HW, might give it a try again soon (I enjoy to set up my machines with various OS’es and test them etc).
@prologic@twtxt.net it’s mostly ready now I feel, got a lot done, so I’ll focus on getting it out there this week, A bit busy the next days, but I’m sure I’ll find time to get it uploaded and hosted on my VPS so that others can use it as well.
@prologic@twtxt.net Yeah, good point. I will see if I can selfhost it in a good way, I’ll think about it for the next days, I’ll also create a subdomain on my website where I can put some info and git links and what not, nice to have a info page to link back to from the application.
I played around with parsers. This time I experimented with parser combinators for twt message text tokenization. Basically, extract mentions, subjects, URLs, media and regular text. It’s kinda nice, although my solution is not completely elegant, I have to say. Especially my communication protocol between different steps for intermediate results is really ugly. Not sure about performance, I reckon a hand-written state machine parser would be quite a bit faster. I need to write a second parser and then benchmark them.
lexer.go and newparser.go resemble the parser combinators: https://git.isobeef.org/lyse/tt2/-/commit/4d481acad0213771fe5804917576388f51c340c0 It’s far from finished yet.
The first attempt in parser.go doesn’t work as my backtracking is not accounted for, I noticed only later, that I have to do that. With twt message texts there is no real error in parsing. Just regular text as a “fallback”. So it works a bit differently than parsing a real language. No error reporting required, except maybe for debugging. My goal was to port my Python code as closely as possible. But then the runes in the string gave me a bit of a headache, so I thought I just build myself a nice reader abstraction. When I noticed the missing backtracking, I then decided to give parser combinators a try instead of improving on my look ahead reader. It only later occurred to me, that I could have just used a rune slice instead of a string. With that, porting the Python code should have been straightforward.
Yeah, all this doesn’t probably make sense, unless you look at the code. And even then, you have to learn the ropes a bit. Sorry for the noise. :-)
The First Woman to Orbit the Moon! ⌘ Read more
[47°09′30″S, 126°43′36″W] Storm recedes – back to normal work
Since I found a cheap lifetime license for AdGuard Premium, I’ll try it on my phone for a while. I’ve also configured it with my strict NextDNS profile. But now my phone not only filters DNS requests to block ads, but also HTTP requests. And while uBlock Origin works pretty well in Firefox on Android, I decided to disable it while using AdGuard to see how the performance compares. ⌘ Read more
1-to-1 Scale
⌘ Read more
Happy Easter to those who celebrate it.
[47°09′00″S, 126°43′31″W] Bad satellite signal – switching to analog communication
One thing I need to also fix - is the way a reply is done, I need it to add the mentions as well, so that you can reply to a person more easily, instead of just the thread.
Added refresh of the timeline, currently a button that you press to do so, I will move it to a timed function shortly.. But nice to get something added tonight.
@prologic@twtxt.net I agree with you points, and I feel the same.
I currently run a gogs instance on my webserver, I’m putting my source there for now.
Currently registrations are disabled and such, I’m the only user, that is the main issue I think - people need to register to submit a change. and I do not want people to register on my own git instance either, so I have to think about it a bit.
Too lazy or too ambitious?
Today was the second day of my “Hell Week”. Not because my week is so bad, it is after all holidays and time off, no, because I have arrived in the last week of the “Training Journey” at Freeletics. At the end of the Journey, the “coach” requires training every day, usually a so-called “god workout” in addition to warm-up and cool-down. ⌘ Read more
Also - I would like to know where you all like to have git hosted..
Github? Some other place? Do you mind self-hosted git servers? (I currently have my own)..
What do you all prefer? Do you mind compiling software from source if instructions are clear and easy? Or do you prefer to download a released binary and run that?
I also later on (as soon as it’s in usable state) want to make flatpack, appimage as well, that is something I have not done before - but I want to set that up as well.
Moving my source to git today, I have just developed on a local copy until today.
I needed to move it before going too crazy with it. Starting the work on the timeline that I’ve mentioned.
Yesterday I ran out of time, but today I have some free time to work on things. Very pleased with the software already, I know I’ll use it all the time. So today I will work on refreshing the timeline, and then fix so that it’s a bit smarter then now, the class that holds the statuses will also contain the GUI elements for each status, that way I can more easily append new statuses into the timeline - instead of grabbing the whole timeline and rebuild all it’s gui each time it refreshes. I know what to do - so I do not expect it to take too long to fix.
Tailscale · Best VPN Service for Secure Networks - Anyone know anything about Tailscale? Used it? Recommend it? How does it stack up in terms of actual secure networking and VPN access to your infra? Can it be trusted
I notice it uses WirGuard™ and is actually written in Go 😅
On my blog: Toots 🐘 from 04/03 to 04/07 https://john.colagioia.net/blog/2023/04/07/week.html #linkdump #mastodon #socialmedia #week
Need to rework the timeline a bit, I want it to append new statuses after refresh, right now it fetches the whole timeline and just inserts it as a whole. So I’ll work on that alongside the refresh functionality.
We went on a drive today, to another city, spent time at the seaside, eating ice-cream , walked the dog together, spent time on the playgrounds, weather was fantastic too, so was a really nice day today!
What developers need to know about generative AI
Generative AI has been dominating the news lately—but what exactly is it? Here’s what you need to know, and what it means for developers. ⌘ Read more
Going out for a hike with the dog. Then I’ll code a bit later today.
Want to fix the timeline refresh, and then create one timeline for each timeline, and buttons to switch between them.
Kev built his own microblog using WordPress and iOS shortcuts to separate his long and short posts. It sounds like this is a better alternative for him than micro.blog. Maybe with SQLite as the database he can even simplify this setup. ⌘ Read more
So glad I switched to GTK4, so much easier to work with then FLTK.
Pwning Pixel 6 with a leftover patch
In this post, I’ll look at a security-related change in version r40p0 of the Arm Mali driver that was AWOL in the January update of the Pixel bulletin, where other patches from r40p0 was applied, and how these two lines of changes can be exploited to gain arbitrary kernel code execution and root from a malicious app. This highlights how treacherous it can be when backporting security changes. ⌘ Read more
[47°09′34″S, 126°43′18″W] Storm recedes – back to normal work
Reply button seems to work!
Erlang Solutions: You’ve been curious about LiveView, but you haven’t gotten into it
As a backend developer, I’ve spent most of my programming career away from frontend development. Whether it’s React/Elm for the web or Swift/Kotlin for mobile, these are fields of knowledge that fall outside of what I usually work with.
Nonetheless, I always wanted to have a tool at my disposal for building rich frontends. While the web seemed like the platform with the lowest bar … ⌘ Read more
@chunkimo@twtxt.net thank you! Very pleased with it. I finally have vacation, got up early, took our dog for a long walk this morning, so now I can code a bit. I’ll complete the status entry gui today, so that I can post statuses, after that I need to add a tomer for refreshing timeline, and then some way to store some settings.
I didn’t want to make this video ⌘ Read more
Bring your enterprise together with enterprise accounts for all
With enterprise accounts for all, your organization can take advantage of all that GitHub Enterprise has to offer, from GitHub Actions and GitHub Advanced Security, to Copilot. ⌘ Read more
Docker Desktop 4.18: Docker Scout Updates, Container File Explorer GA
Docker Desktop 4.18 brings new CLI features in Docker Scout and Docker init, a CLI Beta feature to help you quickly add Docker to any project, and more. ⌘ Read more
Building organization-wide governance and re-use for CI/CD and automation with GitHub Actions
Many of us are aware of the benefits that a strong focus on automation can bring, particularly in our development workflow and DevOps lifecycle. But silos across businesses can lead to duplication of effort, and potential to lose out on best practices. In this post, we’ll explore how CI/CD can be shared across your entire organization alongside polici … ⌘ Read more
Anyone know of any good, cheap laptops to use for just day-to-day activities (web surfing, sysadmin, web design, etc) that’s not a Chromebook? My Microsoft Surface Go I got some years ago blue screens when I plug it into my dock.
Open to refurbished as well
Hi guys! My first ever Yarn post 😺 📦
I already think I am going to like this better than mastodon. My question is, is this federated… @support@twtxt.net ?? If so I am a lifer. Haha and I’ve been here 5 minutes 💖
I like to occasionally do some graphical artwork from time to time. For the first place to get all my art and other’s too check out XMPP at this address: xmpp:artwork@chat.toofast.vip?join
Another question, is this using markdown for markup? @thecanine@twtxt.net ?? Follow me back mateo! 😎
Got the gui to scale properly with the window now, was easy to fix… Looks much better already!
The GTK gui client is coming along nicely.
Added avatar support, and reply button.
It’s pretty obvious that the GUI does not scale properly yet, but I’ll worry about that once the last feature is added. Now I’m only missing the ‘post status’ gui, I need to think a bit about how I want that implemented.
Anyways - here’s the latest screenshot..
Im going to fall a sleep standing up tonight it feels like. Holy shit I’m tired today. Just one more day then it’s much needed vacation time.
slides/go-generics.md at main - slides - Mills – I’m presenting this tomorrow at work, something I do every Wednesday to teach colleagues about Go concepts, aptly called go mills() 😅
@funbreaker@twtxt.net No worries, I’m just glad to see that someone likes what I spend my time on.
Always fun to make something that someone else finds useful. I’ll definitely get it into a usable state as soon as possible.
@funbreaker@yn.vern.cc Hi! I have attached the current screenshot, as you see it’s not done yet, I need to add some things, but a lot of work is already done.
I will fix the remaining things and try to make it usable enough this week so that I can upload the source.
Need to add the remaining reply button, image loading and width of the text etc first.
I had that in the FLTK client, so I just need to add it to this new GTK gui.
Here is what I had with FLTK
https://yarn.stigatle.no/twt/4nuoc7q
I did not have time to work on those things today, ran out of time. But I’ll resume tomorrow.
Level up monitoring and reporting for your enterprise
A high-quality audit log is an essential tool for enterprises to ensure compliance, maintain security, investigate issues, and promote accountability. ⌘ Read more
Calling all open source maintainers
We are building a private space for maintainers to connect with peers, preview features, and learn from each other! ⌘ Read more
I’ve always said if you want to get a developer to do something, just question their intelligence. This works on way too may otherwise smart people. Managers exploit loyal workers over less committed colleagues | Hacker News
Tampa Bay seems to be picking up the pace. They beat the Islanders 5-0. Go Lightning!
Got some good progress on the GTK gui today, got the timeline to work!
Took some time to figure out how the UI layout stuff works, but it looks good now.
I will add the avatars next.
The way it is right now - I got this up and running in a couple of hours, instead of ‘days’ with FLTK.
So I’m glad I made the decision to switch to GTK,
Right now I’m doing all development on Trisquel OS, windows version will come later on.
Also - since I thought about the possibility that I wanted to switch early in the process the code that does all the work is UI independent, meaning this was easy to do. +1 for planning ahead.. :)
I will post a screenshot of the new UI soon, once it’s a bit polished.
[47°09′12″S, 126°43′10″W] Storm recedes – back to normal work
Writing doesn’t just clarify your existing ideas; it generates more of them. Engineers Need to Write | Hacker News
[47°09′10″S, 126°43′21″W] Automatic systems disengaged due to heavy rain
main) actually useful? 🤔 (because I'm not and having second thoughts...)
@prologic@twtxt.net Yeah, it would be nice to actually follow the conversations that goes on, that would indeed make it feel more useful.
main) actually useful? 🤔 (because I'm not and having second thoughts...)
@prologic@twtxt.net I like it, I get to follow some people I could not follow before, which I find useful.
But if you have second thoughts about it all - then I can understand that.
If you decide to pull the plug on it - then I’ll just get some additional activitypub service installed on my server and use that for that (I was thinking about installing this: https://github.com/tsileo/microblog.pub ) if needed.
Got the cmake file updated, compiles and now it opens a GTK window, need to add the timeline and buttons that I had in FLTK, the other code related to parsing the statuses and all that is independent from the GUI so it’ll be pretty quick to switch over once I have defined the new GUI elements.
Been going back and forth on the gui, I will move away from FLTK and go for https://www.gtk.org/ instead.
I’ll spend tomorrow working on that. I need a more refreshing GUI then what I have now.
And also FLTK is a pain to get to work as I need - spend the whole afternoon trying to get it to use images (avatar etc) on my linux machine, and no matter what I’ve tried it refuses. So instead of wasting more time battling fltk I will switch to GTK.
Time to get back at it, I want to fix so that when you hit ‘reply’ it will also add any mentioned user in the reply.
@prologic@twtxt.net yeah. I truly agree. I try to limit that as best I can. 👌
The sun is out, no clouds, negative degrees, but beautiful day. Since we switched to summertime the dog sleeps an hour longer, which was great, finally got to sleep in.
Dog has been walked, kids are playing roblox together, later tonight we will have pizza and watch movie etc :) have a nice Saturday!
** week notes **
Some things of note, links mostly:
First and foremost, I found a suitable pinboard replacement in link hut! Shout outs to my buddy Bruno for the tip.
Here’s a bookmarklet I wrote to make it a bit more ergonomic for how I like to roll,
javascript
javascript:(<span class="hljs-function"><span class="hljs-keyword">function</span> (<span class="hljs-params"></span>) </span>{
<span class="hljs-keyword">const</span> tags = prompt(<span class="hljs-string">'A space separated list of tags.' ... ⌘ [Read more](https://eli.li/2023/03/31/week-notes)