# 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 235183
# self = https://watcher.sour.is?offset=231993
# next = https://watcher.sour.is?offset=232093
# prev = https://watcher.sour.is?offset=231893
If you're "late to the game" regarding the #OSAID #OpenSource #AI definition from @osi@osi and what is the criticism to it all about, this blog post from @sj@sj, while specifically directed to @mozillaofficial@mozillaofficial, has a good enough amount of linkdump to be clarifying:

https://samjohnston.org/2024/12/18/a-forgotten-manifesto-mozilla-betrays-its-own-values-on-open-source-ai/
If you're "late to the game" regarding the #OSAID #OpenSource #AI definition from @osi@osi and what is the criticism to it all about, this blog post from @sj@sj, while specifically directed to @mozillaofficial@mozillaofficial, has a good enough amount of linkdump to be clarifying:

https://samjohnston.org/2024/12/18/a-forgotten-manifesto-mozilla-betrays-its-own-values-on-open-source-ai/
Edit #issuecomment-18968
@eapl.me @andros here's another variant as per eapl's suggestion (#issuecomment-18968)\n
@eapl.me @andros here's another variant as per eapl's suggestion (#issuecomment-18968)[https://git.mills.io/yarnsocial/twtxt.dev/issues/9#issuecomment-18968]
@twtxt.net the Mills.io?
🧮 USERS:1 FEEDS:2 TWTS:1254 ARCHIVED:84848 CACHE:2758 FOLLOWERS:18 FOLLOWING:14
On my blog: Real Life in Star Trek, Face of the Enemy https://john.colagioia.net/blog/2025/02/20/face-enemy.html #scifi #startrek #closereading
Running - 4 miles: 4.00 miles, 00:09:31 average pace, 00:38:05 duration
so boring
#running #treadmill
Running - 4 miles: 4.00 miles, 00:09:31 average pace, 00:38:05 duration
so boring
#running #treadmill
Running - 4 miles: 4.00 miles, 00:09:31 average pace, 00:38:05 duration
so boring
#running #treadmill
@lyse it depends if you already have the needed libraries, and auxiliary packages installed. If you do, then a few hundred MiB, for sure.
@movq not at all. Almost everyone I know uses an iPhone, so Messages is the standard. Many others simply use Facebook Messenger.
I'm happy to note that tomorrow is already Friday. However, looking back on the week, I can't think of anything terribly useful I've accomplished. Hard to distinguish it from a plain zero. Again. Hmm. Anyway, looking forward to the weekend.
@bender Hmmm, does that mean it’s not that popular in the US? 🤔
@bender Hmmm, does that mean it’s not that popular in the US? 🤔
@bender Hmmm, does that mean it’s not that popular in the US? 🤔
I hope not, @bender! I haven't checked, but I'd reckon it to be at most a single digit MiB number. How wrong am I?
@lyse and by „install\n the package "imagemagick"“ you mean installing a multi-GiB set of tools and libraries. :-D
@lyse and by „install[ing] the package "imagemagick"“ you mean installing a multi-GiB set of tools and libraries. :-D
@movq I cannot start to tell you how much I despise WhatsApp, but if I want to keep in touch with family and friends in Europe, I am forced to use it. WhatsApp use is pervasive in Europe.
The Americans are spreading links to sites with European alternatives for popular services, yet here I am, scheduling appointments with the construction workers over WhatsApp.
The Americans are spreading links to sites with European alternatives for popular services, yet here I am, scheduling appointments with the construction workers over WhatsApp.
The Americans are spreading links to sites with European alternatives for popular services, yet here I am, scheduling appointments with the construction workers over WhatsApp.
@nff Nice! Yeah, it's all about having fun. :-) The simplicity got me hooked. Happy hacking!
@off_grid_living No right click thing, but in the terminal:

convert -strip -quality 70 -resize 300x original.jpg resized.jpg

"original.jpg" being the filename of the input file and "resized.jpg" the filename of the output. You can play around with the width, "300x" means 300 pixels wide and the height is determined automatically to still remain in the same ratio. The quality is how much to compress it. The closer to 0 the value gets, the worse the result, but also smaller in file size. More towards 100 and the quality improves together with a larger file size.

You have to install the package "imagemagick" for this to work, I believe.
@off_grid_living Oh, I'm ready for my retirement, too. :-D Still have some decades to go, unfortunately.
I always wanted to go and live in the country side, it seems I can't manage to for financial reasons
@off_grid_living You could try starting it in the terminal in order to spot errors. Just open the GNOME Terminal or something like that and then type in "kolourpaint" and hit Enter.
@eapl.me Nope, I switched to the openssl library in PHP. But our rubberducking 🦆 seems to be working. Your find https://crypto.stackexchange.com/a/79855 for the IV generation may be the breakthrough ...
@bender Lol! :-D
[47°09′10″S, 126°43′54″W] Automatic systems disengaged due to blizzard
here is my progress so far: https://github.com/eapl-gemugami/twtxt-direct-message-php
The encryption part seems to work, if I decrypt it the message with OpenSSL.
I think it can help you for some key parts not well explained in OpenSSL documentation.

@andros reading your spec I wrote a few notes here: https://github.com/eapl-gemugami/twtxt-direct-message-php/blob/main/direct_message_spec.md

@arne I haven't check your repo yet, although you are using sodium, right?
@alice U2FsdGVkX187WpPAJXCusqEoTb3/tD62xN+TxudcTsPI+LqOJLPkl9aNE9MLg8lYRLfd9mSE33N6JeA0okLJ6Q==
@arne Here are the results of the german jury:

Known salt (B64): Tb9oj07UhwU= (8)
Known key (B64): MII0yj+MC0mHNx254Voar80bi9P7jmocs0+x+inaxBE=
Known iv (B64): l/PvkDjOKMFZe73KptrvWw== (16)
Shared Key (B64): ql8zvN03p6kroSwNrcKbxk4zSBQFkgQZEumvqVIDMAE=
** DECRYPT **
Encrypted Message: ...
Decoded Salt (B64): Tb9oj07UhwU= (8)
PBKDF2 KEY (B64): MII0yj+MC0mHNx254Voar80bi9P7jmocs0+x+inaxBE=
iv (B64): JanbU1jI30lb6yfjq/adjA== (16)
Decrypted Message: 

😭
@eapl.me Here is what I've got so far: https://github.com/upputter/testing-twtxt-dm

There is a "00_well_known_message.enc" file, which I have the encryption paremters for (https://github.com/upputter/testing-twtxt-dm/blob/9fdf3be6aa8fe810a4cb275375dbb3d4a2a958ee/wellknown_test.php#L28).

According to my finding, I assume, that the saltsize in openssl is "8" and the PBKDF2 algo is "sha256".
Open Web Conversations ?~L~X https://notiz.blog/b/DUX
Open Web Conversations ?~L~X https://notiz.blog/b/DUX
Open Web Conversations ⌘ https://notiz.blog/b/DUX
Open Web Conversations ⌘ https://notiz.blog/b/DUX
I thought hCaptcha was getting off the rails. Try making an X account using a VPN service!
Those are some impressive wigs: https://imgur.com/gallery/life-imitates-video-game-5KlJBhj I wonder how it feels to wear such a thing for a day – especially in summer. 😅🥵
Those are some impressive wigs: https://imgur.com/gallery/life-imitates-video-game-5KlJBhj I wonder how it feels to wear such a thing for a day – especially in summer. 😅🥵
Those are some impressive wigs: https://imgur.com/gallery/life-imitates-video-game-5KlJBhj I wonder how it feels to wear such a thing for a day – especially in summer. 😅🥵
[47°09′29″S, 126°43′41″W] Wind speed: 91kph -- batteries low
@andros Could you share (perhaps in the extension document) the private key for alice?

I want to compare that I can read the encrypted message both from OpenSSL CLI and from the PHP OpenSSL library, following the spec.
@alice JmgrTxTqbGBtzGFh30wL0cozfVOZiFSTuZ5c+k+5t9TtGkw4foOA80V2che2f3pXPVzBEZsuXg7y+7G5fD/5Qw==
trying to implement it quickly, I get the same questions than you

# https://www.php.net/manual/en/function.openssl-pbkdf2.php
    $password = $sharedKey;
    $salt = openssl_random_pseudo_bytes(16);  # What's the salt length ?
    $keyLength = 20;  # What's the key length here ?
    $iterations = 100000;
    $generatedKey = openssl_pbkdf2($password, $salt, $keyLength, $iterations, 'sha256');
    echo bin2hex($generatedKey)."\n";
    echo base64_encode($generatedKey)."\n";

    $iv = openssl_random_pseudo_bytes(16); // AES-256-CBC requires 16-byte IV
    $cipherText = openssl_encrypt($message, 'aes-256-cbc', $generatedKey, OPENSSL_RAW_DATA, $iv);
    return base64_encode($iv . $cipherText);
I haven't taken a look into that extension, although I think you could use the OpenSSL library: https://www.php.net/manual/en/function.openssl-encrypt.php
@arne With the OpenSSL option -p one can get an output of salt, key and iv. My stupid PHP-code can get everything right from the encrypted data (from OpenSSL) - except the iv! Damn "evpKDF" 😔
@prologic I've been there yesterday w/o success.
@arne I _think_ you want to use the sodium_crypto functions/modules for PHP 🤔🤔
@arne Hi! I love that you're implementing it! Maybe, when we're both done, we could test the clients by communicating both.
I don't think I'm going to be able to help you much, my knowledge of OpenSSL and PHP is not as high as I'd like it to be.
Maybe the OpenSSL version uses SHA-1 by default in PHP. Or that the IV is derived together with the key (not generated separately). But I'm not able to answer your questions, sorry.
I'm invoking the commands directly, without any libraries in between. Maybe that would help you?
@arne Hi! I love that you're implementing it! Maybe, when we're both done, we could test the clients by communicating both.
I don't think I'm going to be able to help you much, my knowledge of OpenSSL and PHP is not as high as I'd like it to be.
Maybe the OpenSSL version uses SHA-1 by default in PHP. Or that the IV is derived together with the key (not generated separately). But I'm not able to answer your questions, sorry.
I'm invoking the commands directly, without any libraries in between. Maybe that would help you?
Had some fun with my old Mandelbrot renderer: https://movq.de/v/83110057f5/
Had some fun with my old Mandelbrot renderer: https://movq.de/v/83110057f5/
Had some fun with my old Mandelbrot renderer: https://movq.de/v/83110057f5/
#musiquinta sobre "cachorro", a música que tinha em mente acho que já aqui a divulguei numa outra musiquinta, e em vez disso deixo-vos aqui uma música para chorar:

Ashram - Lucky's Song (My Dog)
https://youtu.be/oJ37mmym_LA
#musiquinta sobre "cachorro", a música que tinha em mente acho que já aqui a divulguei numa outra musiquinta, e em vez disso deixo-vos aqui uma música para chorar:

Ashram - Lucky's Song (My Dog)
https://youtu.be/oJ37mmym_LA
hello @c8e00 ! All the best to you too, despite a very disrupted world... I live in France, lost in the countryside.
@off_grid_living The smaller the file size the smaller the image's resolution and the less detail you can see. It's a tradeoff between space, bandwidth and pixel density and detail.
@arne Well, just for my understanding. The command:
echo "Lorem ipsum" | openssl enc -aes-256-cbc -pbkdf2 -iter 100000 -out message.enc -pass file:shared_key.bin
will take the input string from echo to openssl. It then will

1. use the content of shared_key.bin as password
2. use PBKDF2 with an iteration of 100000 to generate a encryption key from the given password (shared_key.bin)
3. use the PBKDF2 generated key for an aes-256-cbc encryption

The final result is encrypted data with the prepended salt (which was generated by runtime), e.g.: Salted__q�;��-�T���"h%��5�� ....

With a dummy script I now can generate a valide shared key within PHP 'openssl_pkey_derive()' - identical to OpenSSL.
I also can en-/decrypt salted data within my script, but not with OpenSSL. There are several parameters of PBKDF2 unknown to me.

Question:
1. Is the salt, used by aes-256-cbc and PBKDF2 the same, prepended in the encrypted data?
2. Witch algorithm/cipher is used within PBKDF2: sha1, sha256, ...?
3. What is the desired key length of PBKDF2 (https://www.php.net/manual/en/function.openssl-pbkdf2.php)?

To be continued ...
A dreadful infrastructure side of LLMs: sysadmins taking the burden https://www.emacswiki.org/emacs/2025-02-19
@movq that used to be me until I lobbied to have fiber optic to the premise
https://www.project-syndicate.org/commentary/serbia-protests-new-strategy-of-challenging-a-corrupt-authoritarian-state-by-slavoj-zizek-2025-02
[47°09′34″S, 126°43′04″W] Wind speed: N/A -- Cannot comunicate
In der neuen Folge von Server Side Stories sprechen wir über unser Kirby-Dev-Setup, welche Tools wir nutzen, worauf wir achten und wie wir am Ende Plugins und Webseiten veröffentlichen:https://konzentrik.de/en/server-side-stories/se01/unser-kirby-dev-setup#getkirby #plugin #webdev #serverSideStories
oh cool @lyse !! and thanks, got rid of that empty line. ATM I'm using twtxt very much in an experimental way, only manual editing or writing my tools. curious to see how it will evolve. #meta #twtxt
Man yalls worms go hard
[47°09′14″S, 126°43′07″W] Wind speed: 62kph -- batteries low
Noo, please mercy him
[47°09′55″S, 126°43′40″W] Weather forecast alert -- storm from SE
Does anybody know a right mouse click save and reduce a screen saver image to a smaller file, say 50KB?
My usual method is slow, place in image program and re-save it smaller.

I used to have a Window's way to reduce file images from 1MB to 50 KB with right mouse click.
These pictures are expensive, 130 KB as a png file. how come? Can they get smaller to under 50Kb?


Some chooks not up this morning ?


my faviourite tree under wire netting, an apple, got fruit fly this year. bother
might need netting over it


Especially love my new pre loved roller doors !!


Love my new shed, getting ready to retire


A view of the deck, overlooking the new gardens.
Like the writing it does.
I finally got "Drawing" as an APP to work. Happy with it so far.
🧮 USERS:1 FEEDS:2 TWTS:1253 ARCHIVED:84833 CACHE:2744 FOLLOWERS:18 FOLLOWING:14
@lyse call to @yarn_police, call the @yarn_police! 😂
@lyse call the @yarn_police, call the @yarn_police! 😂
Like like Kolourpaint for its simplicity why has it stopped working?
Running - 7 miles: 7.00 miles, 00:09:33 average pace, 01:06:49 duration

#running #treadmill
Running - 7 miles: 7.00 miles, 00:09:33 average pace, 01:06:49 duration

#running #treadmill
Running - 7 miles: 7.00 miles, 00:09:33 average pace, 01:06:49 duration

#running #treadmill
Seems I am not the only one to find the APP stops working?
I finally got Ubuntu Software to find Kolourpaint and it installed, now when I run the APP nothing happens.
Dead, zip narda.

Stupid program , what is wrong?
Shutdown OK this time

In Unbunti software, explore KolourPaint is says the "No application found"

Why can't the APP find the software on the WWW?
Unbuntu in a bad mood. KolourPaint will not run, unstalled and reinstalled in, shut down the machine and fired it up again, installed just keeps the wheel icon wheeling????

I get nothing. The stupid Kolour Paint will not run.
The wheeling wheel keeps on wheeling, yet everything else is fine.

Why can't you get you computer back when you shutdown Ubuntu?
@nff I do! :-) Btw. line 65 in your feed is broken.
Siesta felina
#catsoftwtxt
Siesta felina
#catsoftwtxt
Junta de vecinos: organizando los turnos para maullar por la noche.
#catsoftwtxt
Junta de vecinos: organizando los turnos para maullar por la noche.
#catsoftwtxt
We are all we have.