# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 938
# self = https://watcher.sour.is?uri=https://yarn.stigatle.no/user/stigatle/twtxt.txt&offset=438
# next = https://watcher.sour.is?uri=https://yarn.stigatle.no/user/stigatle/twtxt.txt&offset=538
# prev = https://watcher.sour.is?uri=https://yarn.stigatle.no/user/stigatle/twtxt.txt&offset=338
@prologic thank you, found that as well. Had a read, and well.. behavior like that is not easy to deal with.
Huh? Not sure what you are referring to here to be honest.
@prologic 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.
@funbreaker yeah, that can be a issue. I will check some of these things tomorrow :)
@funbreaker okay, so something goes wrong in the response you get. Hm. I see you use twtxt, ill check against there tomorrow and see if I can find the issue (midnight here now). Also ill work on better error output as well when I find the problem.
Thank you for testing!
@funbreaker cool! Can you launch through terminal and check if it outputs the problem?
@lyse 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! :)
@lyse 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.
Baking pizza tonight! Pepperoni pizza, yummy!
If anyone of you pulls the code and compiles it - then please let me know :)
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 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 hehe, yeah! That's the way to get things done - use it daily, fix everything that needs to be fixed :)
@prologic Great! Thank you!
@prologic 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 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!
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.
Good morning, wish you all a nice Friday!
@phoronix 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.
"PineTab2 and PineTab-V tablets available for pre-order for $159 and up with a choice of ARM or RISC-V chips"

https://liliputing.com/pinetab2-and-pinetab-v-tablets-available-for-pre-order-for-159-and-up-with-a-choice-of-arm-or-risc-v-chips/

@reddit_world_news yay!
@eldersnake indeed, that is how I learned about that machine :)
@movq 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..

@adi 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).
@adi Dragonfly BSD - that is one OS I have never run properly before - but I've always wanted too. Also not often at all I see that OS being mentioned 'in the wild'.
@prologic 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 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.
@prologic thank you 😀
@lyse Thank you! Yeah I fixed that now, short statuses got shifted, but that has been fixed. :)
I added all the timelines, so now you can switch between 'discover', 'timeline' and mentions from the drop down menu :)

Progress - progress, love it when things fall into place.

If you hit 'reply' on a post it fills in the mentions as well in the status entry box.

So now it looks like this:
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.
@lyse We use gitlab daily at work. but for my own projects I use gogs. I have some scripts that I used for a gnusocial client that I maintained (before leaving gnusocial). I'll see if I can adapt that and make deb files for the yarn client - I mostly use debian \ Trisquel my self, so I also like .deb as well.
@lyse We use gitlab daily at work. but for my own projects I use gogs. I have some scripts that I used for a gnusocial client that I maintained (before leaving gnusocial). I'll see if I can adapt that and make deb files for the yarn client - I mostly use debian \\ Trisquel my self, so I also like .deb as well.
@prologic 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.
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.
@prologic They mention them at 2.5 admins podcast all the time, seems pretty good. I have not used it though. But all I hear there is positive things.
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.
@lyse Sounds like a really nice day!
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!
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.
So glad I switched to GTK4, so much easier to work with then FLTK.
Time for a new screenshot :)

Reply button seems to work!
First test post from GTK UI!
@chunkimo 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.
@prologic Refurbished thinkpad from ebay is also a good option.
@chunkimo Welcome!
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.
@funbreaker 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 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.
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.
@prologic Yeah, it would be nice to actually follow the conversations that goes on, that would indeed make it feel more useful.
@prologic 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 yeah. I truly agree. I try to limit that as best I can. 👌
@prologic yeah, no Microsoft account,I avoid 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!
Good morning to you all! How are you all doing today?
It sucks a bit. I'll probably keep my account, but not post there after that.
I use my account mostly for tech stuff, and to keep up with the new things and stuff like that.
I can still do that without paying, but I do not want to pay to get more views etc.
So I'll just pin a post there - pointing to here instead after that goes active.
oofff. Ive been on twitter for 15 years. But this right here is making me consider to just not be there anymore.
Not cool that he'll do this, but not unexpected either..
The engagement I get on twitter is low enough already, but will tank after this if I do not pay for it.

@reddit_world_news yay!
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.
@prologic thank you! Openbsd is also one of my target platforms. Want to have it in the ports tree there as well, but Ill get to that a bit later.
Turns out the problem I had was also there when I build rapidjson from source, but if I moved the include to earlier (rapidjson in my project) - the problem went away, so I suspect it's the same as in this issue going on.

The cool thing is that the client now works fine on linux without changing anything else then the include order!
So now I'll do all development there - instead of on windows.
@osnews Exciting laptop! I would not mind having one of these.
Also - did a quick test on linux, it gave a lot of errors with the rapidjson library, so I have to find a way to work around that. I think I'll pull the latest, then compile it - and then point to that - instead of installing the rapidjson-dev package. Maybe that'll work.
Installed latest Trisquel on one of my laptops, runs very well. I'll try and use this for all my daily stuff for a while, and see if it covers my needs :)
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.

And threads would be nice to see as well, the list goes on and on :)
Also- refresh of the timeline needs to be fixed.
Okay, so back at it today. I want to start and fix the text where nick and url is included, strip that away from the text being shown, makes the statuses much more cleaner. Also need to get started on clickable url's somehow.
@lyse haha yeah! Got out and bought a better harness for him now, the one he had was a size too big, so got a new one now so that it wont happen again.
@prologic no, not ice, just really wet and really slick. Been raining a lot the last weeks. If it was dry it would be no problem.
@prologic it was really nice! But also one of the more stressful walks, I had to turn back, because it was so slick on the rock that it was really hard to walk, and I fell once (that rarely happens), and when the dog was going to jump over a big gap in the rock on the trail he got scared, and pulled himself out of the harness and got some minutes of freedom.
There are sheep there too , so I got lucky that he did not go straight to them. Had some snacks in my pocket and got him back with that.
Good morning!

Beautiful spring day today, sun is out, it's warm. This is going to be really nice!
Good morning to you all! Rain is still poring down, tired of getting wet each time I go outside. heh.
Going to rain all weekend it seems, but then next week it'll get better. Hoped the rain would stop this weekend, but it seems like it wont.
Good morning! Yet another rainy day in South Norway..
@shreyan first time I've seen someone mention gnu taler. Been following it since it was announced:) never used for anything other then testing though.
@prologic thank you :) he's always happy and ready to go on adventures!
How are you all doing today?
@lyse thank you! Hard to take pictures of him on walks, because he cannot stand still, haha. Had to use a treat to take this one.
Woke up early, got out and walked the dog, came home and our daughter had cleaned up her room, the kitchen and livingroom while I was out. She did that because I told her yesterday that I wanted to tidy up her room today. So she wanted to surprise me by doing all this today. That was really nice of her. :)
Time to play some PUBG! :)
Weekend is here :)
I want to create a frontpage for my website - https://stigatle.no , fix cmake script for the desktop client and compile it on debian. Other then that I'll walk the dog as usual and spend quality time with my family. Going to be a great one :)
@prologic thank you!
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.. :)