# 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 85
# self = https://watcher.sour.is?uri=https://0xff.nu/blog.txt&offset=85
\t @xxiivv Looks like you're posting from the future!
\tPC upgrades complete. Had to re-install Windows. Was sure my GPU died.
\tHow not to do diff: http://wiki.0xff.nu/diff#array-diff-implementation
\tCan someone explain Longest Common Substring to me like I'm 5?
\t @prologic http://lite.cnn.com/en is all you need. 😄
\t @xj Looks like there's an issue with your webserver.
\tThere's a certain feed I follow that takes way too long to load. Need to tweak the code and introduce a timeout to this.
\t @prologic oh my, I hate the like/echo culture. This is actually something I omitted as well from my social network project. Editing/deleting entries is also under question.
\t @jlj my wife actually gifted me one just recently for my birthday. Pretty cool so far!
\tGood progress on the social network today. Notifications are now working!
\tThe anti-spam works! A couple of anti-spam rules for the common good: http://wiki.0xff.nu/antispam
\t @jlj You can see the code here: https://git.sr.ht/~hxii/AntiSpam or GitHub: https://github.com/hxii/AntiSpam
\t#kYjMyOA @prologic @jlj Since I use regex, I can also manually add rules to exempt specific IPs or User-Agents from filling the form.
\t#kYjMyOA @prologic @jlj In a gist: I use a couple of honeypot fields (fake fields that will be filled by bots but not humans). The request goes through a redirector, and if these fields are filled, the signature of the bot is added to the banned list and they can't submit anything. If the honeypot fields have not been filled, the request will be redirected towards the FormSubmit form.
\t#kYjMyOA @prologic @jlj I use FormSubmit as base, to not disclose my email, but have noticed that I've been getting spam regardless of their anti-spam measures. I *hope* the code works (it did work in testing), and I'll upload it shortly.
\tImplemented a small side project the other day: a honeypot for the contact form on my website. Hopefully it'll reduce the amount of garbage sifting through Form submit.
\t#4NGMzOQ I do need to find time to finish my other projects though
\tI've been so preoccupied with my "social network" in the past couple of days, but I've learned a lot in the process. So it's a win!
\t@https://twtxt.net/user/prologic/twtxt.txt> I borrowed your idea of showing the commit as version :) Commit as version
\tPerhaps this is a fruitless venture, but my new project/challenge is coming along nicely :) Message replies
\t @thewismit sorry, didn't have mcafee this morning
\tPeople should really stop saying nucular.... It drives me nuts
\tJust found out about Subreply... Interesting!
\tI think picowiki looks kinda neat now :) #picowiki
\tMade good progress on the #wiki today. Nope I just need to start populating it 😀
\t @hecanjog we can form the spec and improve on it :)
\t @xuu While I generally agree, it wouldn't make much sense to escape a string that's supposed to be readable as plaintext :)
\t @prologic The markdown parser that twtxt.net is using is parsing the \\ (backslash) within the word boundary, making the shruggie lose an arm :)
\t @prologic You dropped this \\ Shruggie
\tPicowiki Tree Recursion - somewhat understood. Result - Picowiki now reads data directories recursively. #picowiki
\tI just realized I never used recursion in my code, and now I must understand how it works ¯\\_(ツ)_/¯_
\t @thewismit that would be my logo :)
\tI need to implement click to load for images in picoblogUI. Big images are annoying on mobile.
\tFinding backlinks in wiki. How do I? Should I? It does make sense.
\t @thewismit Windows Terminal :O
\tAlso, I just love Victor Mono.
\tI decided to revise my KMS project and build something closer to the spirit of the other things I create: Picowiki.
\ted4bbfe Small update to #picoblog. I also still need to publish the "API"
\tSo far I'm happy with the result. Pucoblog UI seems to be working. Still missing some basic functionality though.
\tPagination working It's werking!
\tPagination test so pagination is kinda working. Except it doesn't just yet. But hey, at least my phone doesn't try and commit suicide anymore by trying to render 4k TWTs.
\tHashlinks - working. Next up - pagination. #picoblog
\t#c92859 I was thinking maybe id:c92859 or maybe just a hashtag preceding the entry.
\tOkay so I will probably need to change the entry ID format for picoblog in order to be more compatible. I just don't know what... #c92859
\tAww man, position: sticky is not properly supported yet :( #picoblog
\tPicoUI (I need a better name) is working! #picoblog
\tDecided to change format of ID from [0-9a-fA-F]{6} to #<[0-9a-fA-F]{6}> so it can be parsed (or ignored) by PicoUI. #picoblog #project
\thttps://0xff.nu/i/firefox_hxCXE9ddUV-fs8.png First steps toward a working picoblog/twtxt client have been made! Feed download/aggregation/rendering works! So much more left to do! #picoblog #project
\tI'm going to make a picoblog/text client based on the current UI for #picoblog that I'm using :)
\t#6a3d86 managed to get the family out of the house for a bit.
\tIt was so nice driving to a nearby forest and beach today
\tI also really need a haircut.
\tI can't wait for the lockdown to be over. I need to go somewhere.
\tMaybe I should also implement image parsing? #picoblog
\tThe only issue, I guess (and I'm loosely calling this an issue) is that MD might be a bit annoying on a mobile device, e.g. links. #picoblog
\t #a8c92f Oh yeah, user parsing now works as well. So me tagging myself @hxii should work without issues :) #picoblog
\t #a8c92f The code is a mess, but it works. Going to clean it up before I update the repos. (which also means I need to clean up the API) #picoblog
\t#a8c92f Logic is also done! Posting this from my phone! ðŸ #picoblog
\tUI is done. Now I just need to secure it and implement sending logic. Should be simple. #picoblog
\tHandle parsing: @<(?<username>\\w+)\\W+(?<url>https?://[a-zA-Z0-9./]+)> #picoblog
\tSo apart from the web UI I also need to potentially figure out a way to deal with following/followers/mentions and such. #picoblog
\tWeb UI for Picoblog: I'm thinking of something similar to Saisho Edit. #picoblog
\tThe text summarizer project is done. Now I need to deal with a UI for microblogging.
\tIt's time to continue work on the personal KB. Came up with auto-tagging for the text.
\tCreated a simple editor for Saisho which should make it simpler to create and edit posts.
\tI hate the fact that I've been slacking. 2021 will be better.
\tI mean, whatever knowledge of JS I had stored was just replaced with PHP.
\tHaving had to complete a home assignment following a job interview I understood I kinda forgot JS.
\tGotta set up some sort of honeypot for the WP probing bots.
\tThe URL shortener is complete. Onwards to the next project!
\tThere are some people in this world who should'nt be in positions where they are able to make decisions for others.
\tTo create a template engine or not to create a template engine?
\tTurns out I forgot Ruby completely. Either that, or this is just much easier to do in PHP. Or both.
\tOh yeah, see /picoblog
\tPicoblog has been published. Now I just need to update Saisho :)
\tAlso, crap, I can't post a shruggie :<
\tI think I'm just going to make a simple HTML page with a form to create new microblog entries.
\tSometimes things in $dayjob make no sense and it just frustrates me.
\tSupport for #tag has been implemented. Probably not ideal yet, but it works!
\tI wonder if the microblog needs #tag support. It would kinda make sense, no?
\tI/O operations are fast, so this shouldn't prove to be a problem, but in the worst case I can just think of a way to split the file and archive the old entries.
(#238f5f\tAn interesting "problem", so to speak, in both twtxt and in my microblog is that when querying the source file all entries have to be loaded. When browsing the actual microblo>>2020-09-26T20:05:51Z)\t
\tAlso, as you can see I've made it possible to link to specific entries. :)
\tAs I've said before, entries are made via API so it's not the most comfortable thing just yet. But I guess it works? I'll make this public soon.
\tThis is my first microblog entry using the microblog drop-in that I wrote for Saisho. Woot.