I mean, this: https://darch.dk/timeline/replies?url=http://darch.dk/twtxt.txt
Bonus: On his Pod/Profile it shows as if his last twt is from 4 Months ago.
Something odd just happened to my twtxt timeline… A bunch of twts dissapered, others were marked to be deleted in mutt. so I nuked my whole twtxt Maildir and deleted my ~/.cache/jenny in order to start with a fresh Pull. I pulled feed as usual. Now like HALF the twts aren’t there 😂 even my my last replay. WTF IS GOING ON? 🤣🤣🤣
Thank you @aelaraji@aelaraji.com, I’m glad you like it. I use PHP because it’s everywhere on cheap hosting and no need for the user to log into a terminal to setup it up. Timeline is not mean to be use locally. For that I think something like twtxt2html is a better fit. (and happy to see you using simple.css on you new log page;)
@sorenpeter@darch.dk !! I freaking love your Timeline … I kind of have an justified PHP phobia 😅 but, I’m definitely thinking about giving it a try!
/ME wondering if it’s possible to use it locally just to read and manage my feed at first and then maybe make it publicly accessible later.
So this is a great thread. I have been thinking about this too.. and what if we are coming at it from the wrong direction? Identity being tied to a given URL has always been a pain point. If i get a new URL its almost as if i have a new identity because not only am I serving at a new location but all my previous communications are broken because the hashes are all wrong.
What if instead we used this idea of signatures to thread the URLs together into one identity? We keep the URL to Hash in place. Changing that now is basically a no go. But we can create a signature chain that can link identities together. So if i move to a new URL i update the chain hosted by my primary identity to include the new URL. If i have an archived feed that the old URL is now dead, we can point to where it is now hosted and use the current convention of hashing based on the first url:
The signature chain can also be used to rotate to new keys over time. Just sign in a new key or revoke an old one. The prior signatures remain valid within the scope of time the signatures were made and the keys were active.
The signature file can be hosted anywhere as long as it can be fetched by a reasonable protocol. So say we could use a webfinger that directs to the signature file? you have an identity like frank@beans.co that will discover a feed at some URL and a signature chain at another URL. Maybe even include the most recent signing key?
From there the client can auto discover old feeds to link them together into one complete timeline. And the signatures can validate that its all correct.
I like the idea of maybe putting the chain in the feed preamble and keeping the single self contained file.. but wonder if that would cause lots of clutter? The signature chain would be something like a log with what is changing (new key, revoke, add url) and a signature of the change + the previous signature.
# chain: ADDKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: ADDURL https://txt.sour.is/user/xuu
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: REVKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: ...
So this is a great thread. I have been thinking about this too.. and what if we are coming at it from the wrong direction? Identity being tied to a given URL has always been a pain point. If i get a new URL its almost as if i have a new identity because not only am I serving at a new location but all my previous communications are broken because the hashes are all wrong.
What if instead we used this idea of signatures to thread the URLs together into one identity? We keep the URL to Hash in place. Changing that now is basically a no go. But we can create a signature chain that can link identities together. So if i move to a new URL i update the chain hosted by my primary identity to include the new URL. If i have an archived feed that the old URL is now dead, we can point to where it is now hosted and use the current convention of hashing based on the first url:
The signature chain can also be used to rotate to new keys over time. Just sign in a new key or revoke an old one. The prior signatures remain valid within the scope of time the signatures were made and the keys were active.
The signature file can be hosted anywhere as long as it can be fetched by a reasonable protocol. So say we could use a webfinger that directs to the signature file? you have an identity like frank@beans.co that will discover a feed at some URL and a signature chain at another URL. Maybe even include the most recent signing key?
From there the client can auto discover old feeds to link them together into one complete timeline. And the signatures can validate that its all correct.
I like the idea of maybe putting the chain in the feed preamble and keeping the single self contained file.. but wonder if that would cause lots of clutter? The signature chain would be something like a log with what is changing (new key, revoke, add url) and a signature of the change + the previous signature.
# chain: ADDKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: ADDURL https://txt.sour.is/user/xuu
# sig: BEGIN SALTPACK SIGNED MESSAGE. ...
# chain: REVKEY kex14zwrx68cfkg28kjdstvcw4pslazwtgyeueqlg6z7y3f85h29crjsgfmu0w
# sig: ...
@bender@twtxt.net On twtxt, I follow all feeds that I can find (there are some exceptions, of course). There’s so little going on in general, it hardly matters. 😅
And I just realized: Mutt’s layout helps a lot. Skimming over new twts is really easy and it’s not a big loss if there are a couple of shitposts™ in my “timeline”. This is very different from Mastodon (both the default web UI and all clients I’ve tried), where the timeline is always huge. Posts take up a lot of space on screen. Makes me think twice if I want to follow someone or not. 😅
(I mostly only follow Hashtags on Mastodon anyway. It’s more interesting that way.)
Kinda cool tool for bringing together all your timeline based data across socials.
Kinda cool tool for bringing together all your timeline based data across socials.
Media upload works, light\dark theme enabled. Tested it on debian\windows - works out of the box, statusbar moved to bottom for cleaner UI. Next is working more on ui when it refreshes the timelines. .
Got all 3 timelines in, so you can switch between them.
Need to add some kind of refresh feature as well, then I’ll get it cleaned up and put the source out, and continue from there - also the UI is not final, now I’m just focusing on features. The UI will be cleaned up as well.
Pretty cool. Got the timeline working, statuses separated, avatars loading, linked images in statuses works, can also post statuses from it.
Heh. will work on the remaining things the next days.
This will replace the current gtk4 client I wrote, I like this much better.
Will also make it into a appimage, and look into flatpak as well.
well, we have the timeline :)
Next up - make it look a bit better
Today I’m looking into flutter again, I’ve been wanting to test that out for a while.
I started adding functionality from the ‘yarn desktop client’ ( https://github.com/stig-atle/YarnDesktopClient ) I’ve been working on - and now I see if I can get the same functionality up and running with flutter.
Currently I’m able to log in and fetch the logged in user’s username at least (the text :username: is fetched after logging in), so it’s a good start.
That means I have the things I need to fetch the timeline and present that next.
@prologic@twtxt.net on the the timeline with mentions filter I missing the latest mention that comes up in the mentions page.
Oh.. And you are mentioning my dev instance here 😄
@prologic@twtxt.net on the the timeline with mentions filter I missing the latest mention that comes up in the mentions page.
Oh.. And you are mentioning my dev instance here 😄
It looks okay on my timeline: http://darch.dk/timeline/conv/omu7e4q
@Prologic@twtxt.net can you pleas fix this line in your twtxt.txt:
# follow = dbucklin@www.davebucklin.com https://www.davebucklin.com/twtxt.txt?nick=dbucklin
It is cause this weird effect on my timeline, where you are now called dbucklin
http://darch.dk/timeline/?profile=https://twtxt.net/user/prologic/twtxt.txt
@prologic@twtxt.net and @bender@twtxt.net for a start a single user twtxt/yarn pod could look like this 😉
ProcessOne: ejabberd Docs now using MkDocs
The ejabberd Docs website did just get a major rework: new content management system, reorganized navigation, improved markdown, and several improvements!
Brief documentation timelineejabberd started in November 2002 (see a timeline in the ejabberd turns 20 bl … ⌘ Read more
ProcessOne: ejabberd Docs now using MkDocs
The ejabberd Docs website did just get a major rework: new content management system, reorganized navigation, improved markdown, and several improvements!
ejabberd started in November 2002 (see a timeline in the ejabberd turns 20 blog post). And the first documentation was published in January 2003, using LaTeX, see [Ejabberd Installation and Op … ⌘ Read more
The wording can be more subtle like “This feed have not seen much activity within the last year” and maybe adding a UI like I did in timeline showing time ago for all feeds
I agree that it good to clean up the Mastodon re-feeds, but it should also be okay for anyone to spin up a twtxt.txt just for syndicating they stuff from blog or what ever.
The “not receiving replies” could partly be fixed by implementing a working webmentions for twtxt.txt
Just fleshed out the README for timeline at https://github.com/sorenpeter/timeline - Comments/corrections and PRs are welcome:)
@bender@twtxt.net you can over at http://darch.dk/timeline/conv/ba3xbfa or by looking at the raw txt https://lyse.isobeef.org/twtxt.txt
I can’t help it that twtxt.net only have temporary caching ¯_(ツ)_/¯
Thanks for your feedback @lyse@lyse.isobeef.org. For some reason i missed it until now. For now I have implemented endpoint discovery for #webmentions as a metadata field in the twtxt.txt like this:
# webmention = http://darch.dk/timeline/webmention
Added support for #tag clouds and #search to timeline. Based on code from @dfaria.eu@dfaria.eu🙏
Live at: http://darch.dk/timeline/?profile=https://darch.dk/twtxt.txt
I’m closing down neotxt.dk as a yarn pod. It will instead offer hosting of timeline or what ever other php stuff you want to run. To get started send me a poem to poem@neotxt.dk
It not that easy @xuu@txt.sour.is since I implemented webmentions in a different way that how it have been done in yarnd to work with txt-files. You can find the code in webmention_endpoint.php and new_twt.php at main · sorenpeter/timeline
@eapl.me@eapl.me Take a look at http://darch.dk/timeline/conv/i4nt3ma
Just hacked together this small webfinger endpoint to be used as a companion with timeline: .well-known/webfinger/index.php at main · sorenpeter/timeline
@shreyan@twtxt.net What do you mean when you say federation protocol?
Either use webfinger for identity like mastodon etc. or use ATproto from Bluesky (or both?)
We can use webmentions or create our own twt-mentions for notifying someones feed (WIP code at: https://github.com/sorenpeter/timeline/tree/webmention/views)
I’m not sure we need much else. I would not even bother with encryption since other platforms does that better, and for me twtxt/yarn/timeline is for making things public
‘CAN’T BELIEVE IT’: Couple’s family speak out on alleged double murder
A family member of an alleged double homicide victim has broken his silence as police continue to search for their bodies. ⌘ Read more
I noticed that some of my software projects have a rather long lifetime, so I made a little graph:
Didn’t know of bytesypider and bytedance, I assume those are bots, although I no idea why they are pointing to that address to your site
https://wordpress.org/support/topic/psa-bytedance-and-bytespider-bots-recommend-blocking/
You gave me a good idea to block bytespider. Its just weird what it pulls in.twtxt-php isn’t sending User-Agent headers as it’s in the original spec:
https://twtxt.readthedocs.io/en/latest/user/discoverability.html
sending user agent would be a nice thing to have so that people using regular twtxt clients can find you and anyone else hosting twtxt-php or timeline
HTTP logs are annoying but webmention has an issue that it needs a server to check for webmentions. The server can be an external one or hosted on the same server as far as I can find.
But also HTTP logs need a server that one can view the logs.
@eaplme@eapl.me
Yarn could the twtxt I want more then regular twtxt. Though I do like not having to host a yarn pod.
That client looks really cool. A web client that connects to a regular twtxt without the need to host a full yarn pod for just one user and feed.
What is the difference between twtxt-php and timeline from sorenpeter? Does it have a way to follow feeds from the web ui?
I was looking at it and what prevents someone from downloading the .config file and getting the password? Also how would I generate a totp password to use?
I should try to host that it might be the right not a full on yarn pod but also can post from my phone.
The weird thing is in my server logs it shows that your site pulled in the useragent as https://eapl.me/twtxt/?url=https%3A//neotxt.dk/user/darch/twtxt.txt with bytesypider from bytedance? That sounds weird. Plus I can’t grep just twtxt in my logs and find your feed.
Happy Twixmas everyone (new word I just learned 2 min ago)
I have finally gotten around to implementing a gallery feature to timeline.
http://darch.dk/timeline/gallery?profile=https://yarn.stigatle.no/user/stigatle/twtxt.txt
There is still some hiccups, like the limited caching is making it difficult to make links back to older posts not working. Maybe @eapl.me@eapl.me you can help me with that?
Started on a activitypub client, gtk4, c, made on OpenBSD, been quite nice learning experience so far, a bit adjustment from the usual way I do things. I have not done a project in pure c before.
Got token stuff sorted, and posting, next is getting the timeline (and gui for that etc).
@lyse@lyse.isobeef.org I’m also on the e-mail wagon here. On http://darch.dk/timeline/conv/oe3howa I have added a “Comment via email” botten if uses are not logged in. This feature could be extend to other places in the various UIs. Like we already got the “Does not follow your” / “Follow you” on the profile page in yarnd, so this detection could be used to sugget the user to email that person, when mentioning them.
Gracias. Also the git repo now contain code that should actually work
Testing posting for my new http://darch.dk/timeline/
Twitter timelines are not refreshing properly since last night’s events started. they must have some crazy traffic going on.
hrxi: Windows support for Dino
Hello, I’m back!
It’s been four years since I participated in my first Google Summer of\
Code. I’m hrxi, a mathematics student from Germany. I got accepted
into this year’s Google Summer of Code program with the XMPP software\
foundation as the mentoring
organisation. I chose the extended\
timeline, so I am
going to work on [ … ⌘ Read more
I wonder when they will show a UAP\UFO in physical form to everyone.
So much talk about it - but no physical evidence is shown.
I have no doubt that tech like that exists somewhere in the universe - it’s not unlikely at all.
Just think about the tech advancement the last 200 years, and then what if there exists others that are 1 million years beyond our timeline.
Time to dive into threading and c++. I will start with making the file/image downloader threaded, then I’ll make the timeline fetching and all that threaded as well.
I need to add multithreading to the desktop client, I have not done that before in c++ - so that’ll be fun to figure out. I need it for the fetching of the timeline so that it happens in a separate thread. That way the GUI does not freeze while fetching the timeline. Also need to add a status bar that can show what the application is working on.
Scrollwheel on bluetooth mouse on ipad does not work in goryon. Other then that it works great!
But you can use mouseclick and move the timeline as you do with touch, so its not a big deal.
@funbreaker@twtxt.net seems to be related to the way the timeline array is done. I will rewrite that part. I’ll start tomorrow.
I added all the timelines, so now you can switch between ‘discover’, ‘timeline’ and mentions from the drop down menu :)
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.
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.
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.
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.
@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.
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.
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.
Got the timeline to refresh, now I need to add a timer for that, but for now I’ll just make a refresh button.
It’s not smart - so it grabs and adds the whole timeline again at this moment (but clears it first). Later I’ll make it so that it only appends new statuses that are not already in the list. But feels good to have this sorted, makes it much more usable.
Timeline is cleaned up, so now I think I have that part sorted.
Next is to refactor a bit and then fix so that the timeline refreshes properly.
Once that is done I think I’ll clean it up and upload the source somewhere and create tickets for outstanding known issues. Most likely upload it to github and continue the work there.
Also- refresh of the timeline needs to be fixed.
I have cleaned up the timeline a bit, I like this much more.
I use the markdown text now, instead of the ‘text’ field in the json file, looks much cleaner.
I can work with this. One thing that I want to sort out next is the way the nicknames and url is shown.
Also links in posts should be clickable - not sure if the current labels support that, but I’ll try and figure it out somehow. Anyways - latest screenshot is attached here.. :)
Working on things again today, made the timeline layout a bit better, now I’ll work on the reply button, makes it more useful to use :)
Got some time for coding today, dog is resting a bit, and kids are busy.
Today I’m resuming on the timeline, I’ll see if I can fetch and show the avatars next to the statuses.
And I’ll see if I can get a reply button to work, also need to clean up stuff that I’ve done so far.
A bit of duplicate stuff that can be simplified etc.
Soooo… Fltk uses @ symbol in strings to apply effects to text, now wonder I’ve been having issues with the timeline.. https://www.fltk.org/doc-2.0/html/group__symbols.html
@ is used for mentions and all that stuff, so well - it just breaks the strings in the labels.
A lot of more work needs to be done, but at least now I got the basic timeline stuff done, took a good while to figure out how to solve it, but now I know. The reason why the statuses are cut short on some is because of html tags and stuff like that - c++ is a bit picky with strings and stuff like that. but I’ll get that sorted as well.
At least I can show the first screenshot. Keep in mind the GUI is not at all finished, I’m working on the basics first, implement all the features, then I work on finishing touches.
Working some more on timeline, trying to create a group widget and add label child widgets, those labels should then show the text for each status.
Did some more work on the timeline stuff today, now I have added parsing of each status, so that I can get the data I need from each status (user, image url, text, links - all that stuff I need).
Created the function that grabs the timeline.
Now I have to plan a bit to make the actual gui for it, I think I might try and create my own custom fltk widget that I can feed with the json reply, and then it will set itself up based on that.
Or maybe something simple at first - not sure yet.
Next up is grabbing and showing the timeline, then all the other stuff needed. :)
Was fast to get this up and running, and nice to end the weekend with this working.
So, progress is going smooth!
No I have compiled libcurl with openssl, and I fetch token already.
so next is creating three functions - one for posting, one for the login and fetching token (now I have just testing login when application starts), and the fetch the timeline. Then I need the gui.
Progressed faster in 2 hours in c++ then days with rust…
Found what I needed finally.. I now created a struct with this crate:
https://crates.io/crates/arraystring
That works for what I need, damn this has been annoying to find a solution too.
I can now store the strings I need in the struct, and use that in all the functions.
Also works with the GUI callback stuff, so it solves the Issue I’ve been having.
I have now added gui elements for server url, username, password.
And functions for fetching the timeline with the supplied info.
So now I can finally start working on the timeline GUI.
It’s been in a way easier then expected, but also somethings are a bit tricky.
I could easily have done the same in c++ much faster, but the whole point here was to learn more rust.
And for that it’s been going well.
Got the timeline, that was very easy to do, but now the harder part starts - wrap the timeline into a nice gui.
This is where I need to put in some work now. Started on this today.
Yudkowsky moved AI alignment research forward by 4 years, but he also sped up timelines by 2.5 years, so it all cancels out
The Timeline of the Universe | Neil deGrasse Tyson Explains… ⌘ Read more
Right now I have to setup jenny for my timeline. Just added myself to the Registry so that part is done.
Added some of my latest photos to my timeline :)
i think in practice people were most convinced by timelines, if not arguments, then observations abt progress.
timeline of audio formats [[https://en.wikipedia.org/wiki/Timeline_of_audio_formats]] #links
@prologic@twtxt.net Is there a desire to, in the future, add some opt-in AJAX to refresh the Timeline?
@prologic@twtxt.net Why not @timeline
@darch@twtxt.net
Getting this when trying to use it:
error executing template timeline: template: timeline:131:43: executing "twt" at <formatForDateTime>: wrong number of args for formatForDateTime: want 2 got 1
@prologic@twtxt.net You will have to agree that always using reply (like I am doing on this one) loses everything on translation after the third or fourth replies. It simply doesn’t promote engagement. On top of that, all replies show on the timeline as well, without much—to none—context.
Improving Git protocol security on GitHub
We’re changing which keys are supported in SSH and removing unencrypted Git protocol. Only users connecting via SSH or git:// will be affected. If your Git remotes start with https://, nothing in this post will affect you. If you’re an SSH user, read on for the details and timeline. ⌘ Read more
I want read-only iOS client that just does the simplest model: pull a list of feeds, make a timeline.
@lucidiot@tilde.town “nuclear realtor” I like this twtxt. [meta: I guess I’ll often just reply with “I like this” or , although perhaps liking could be a primitive. I’ll do it rarely enough to not clutter my timeline tho]
Seems like twtxt-el does not retrieve a timeline. #emacs
Seems like twtxt-el does not retrieve a timeline. #emacs
@prologic@twtxt.net to answer some of your previous questions, i’m using txtnish for my timeline and user controls, and plain twtxt for posting. the alternative to that would be setting up a bunch of shell aliases or small scripts. or making my own client in Go. There’s a thought… ;)
Fixed txtnish timeline formatting of hashtags on BSD by installing coreutils and replacing fmt with gfmt in the configuration file #twtxt #txtnish #gnu #bsd
Fixed txtnish timeline formatting of hashtags on BSD by installing coreutils and replacing fmt with gfmt in the configuration file #twtxt #txtnish #gnu #bsd
@kas@enotty.dk My twtxt bot can filter the timeline for hashtags so sometimes I look what others are writing about a certain topic but usually I only find my own tweets. 😁
@freemor@freemor.homelinux.net Oh well, I played with txtnish commands and now you’re back in my timeline x)
Why is the timeline in reverse order? Meaning, I’d expect to see the most recent twtxts in the end of the output
Do you miss your Twitter timeline blowing up whenever a WWDC keynote happens? DON’T WORRY I GOTCHU FAM
@freemor@freemor.homelinux.net Nope, nothing changed :/ I even deleted you and followed you again. You just don’t appear in my timeline. It’s weird
GitHub - mholt/timeliner: All your digital life on a single timeline, stored locally https://github.com/mholt/timeliner
@kas@enotty.dk What ? No I don’t, I just use twtxt normally and use the timeline command :/
@freemor@freemor.homelinux.net : Ah, I still don’t see your posts in my timeline even though the file is good on my browser :/
Strongly recommend ‘Horror Noire’ for folks who are interested in the history of horror on film. It filled in some big gaps in the timeline for me. It’s available on Shudder, which is also streaming some flicks covered.
Discovered how to set use_abs_time to show absolute times in a timeline.
@mdom@domgoergen.com my own custom client I wrote, I use cron to run the update my timeline every 20 mins. My update process also processes 10 curl calls at time. I did that to save time when I poll everyone.