# 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 60309
# self = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=59691
# next = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=59791
# prev = https://watcher.sour.is?uri=https://twtxt.net/user/prologic/twtxt.txt&offset=59591
@thecanine This looks sick as your new Avatar ๐Ÿ™Œ
@thecanine This looks sick as your new Avatar ๐Ÿ™Œ
@movq Thanks this is good to digest ๐Ÿ‘Œ
@movq Thanks this is good to digest ๐Ÿ‘Œ
PS: Please forgive me. I'm just being a really grumpy bastarda the last couple of days. I'm really not having a lot of fun this past week ๐Ÿ˜ข
PS: Please forgive me. I'm just being a really grumpy bastarda the last couple of days. I'm really not having a lot of fun this past week ๐Ÿ˜ข
@xuu And you're right, it only really saves a single line. I think I've even commented on a similar discussion a few years ago as well where I showed concretely the abrustdity of the community wanting to change this. If I recall, the whole pattern of:


if err != nil {
    ...
}


basically accounts for <1-3% of your codebase in the first place.

The entire thing (_fuss_) is really just pathetic IMO.
@xuu And you're right, it only really saves a single line. I think I've even commented on a similar discussion a few years ago as well where I showed concretely the abrustdity of the community wanting to change this. If I recall, the whole pattern of:


if err != nil {
    ...
}


basically accounts for <1-3% of your codebase in the first place.

The entire thing (_fuss_) is really just pathetic IMO.
@xuu I'm not necessarily saying it is to be bluntly honest. But it's far better than this ? garbage. I don't want to be rude, but honestly wtf is wrong with people and making languages harder to read?! ๐Ÿคฆโ€โ™‚๏ธ
@xuu I'm not necessarily saying it is to be bluntly honest. But it's far better than this ? garbage. I don't want to be rude, but honestly wtf is wrong with people and making languages harder to read?! ๐Ÿคฆโ€โ™‚๏ธ
I want to propose my own counter-proposal to the discussion that's ongoing with Go and error handling.

Here it is: https://docs.mills.io/ix4qDHMnQUSPxZ5tXz12Vg?view

It's very rough and needs much more work, but essentially I want to propose the following change to the language's grammar:


f := os.Open("foo.txt") or (e error) {
    log.Fatal("error opening file; %s", e)
}
I want to propose my own counter-proposal to the discussion that's ongoing with Go and error handling.

Here it is: https://docs.mills.io/ix4qDHMnQUSPxZ5tXz12Vg?view

It's very rough and needs much more work, but essentially I want to propose the following change to the language's grammar:


f := os.Open("foo.txt") or (e error) {
    log.Fatal("error opening file; %s", e)
}
@skinshafi Haha ๐Ÿ˜†
@skinshafi Haha ๐Ÿ˜†
> The purpose of this paper is to characterize simple sabotage, to outline its possible effects, and to present suggestions for inciting and executing it.
>
> Sabotage varies from highly technical coup de main acts that require detailed planning and the use of specially-trained operatives, to innumerable simple acts which the ordinary individual citizen-saboteur can perform. This paper is primarily concerned with the latter type. Simple sabotage does not require specially prepared tools or equipment; it is executed by an ordinary citizen who may or may not act individually and without the necessity for active connection with an organized group; and it is carried out in such a way as to involve a minimum danger of injury, detection, and reprisal.
> The purpose of this paper is to characterize simple sabotage, to outline its possible effects, and to present suggestions for inciting and executing it.
>
> Sabotage varies from highly technical coup de main acts that require detailed planning and the use of specially-trained operatives, to innumerable simple acts which the ordinary individual citizen-saboteur can perform. This paper is primarily concerned with the latter type. Simple sabotage does not require specially prepared tools or equipment; it is executed by an ordinary citizen who may or may not act individually and without the necessity for active connection with an organized group; and it is carried out in such a way as to involve a minimum danger of injury, detection, and reprisal.
You scared me! ๐Ÿคฃ
You scared me! ๐Ÿคฃ
@skinshafi Argggg! ๐Ÿ˜ฑ
@skinshafi Argggg! ๐Ÿ˜ฑ
@movq Interesting... ๐Ÿง Can you elaborate on why and your workflows? ๐Ÿ™

> Iโ€™m not a fan of IMAP (I donโ€™t want my server to create/keep data)
@movq Interesting... ๐Ÿง Can you elaborate on why and your workflows? ๐Ÿ™

> Iโ€™m not a fan of IMAP (I donโ€™t want my server to create/keep data)
@lyse Ita a terrible operator that makes code hard
Yo read as @kat difhtidu points out ๐Ÿ˜†
@lyse Ita a terrible operator that makes code hard
Yo read as @kat difhtidu points out ๐Ÿ˜†
So glad I decided to move my project's off GitHub ๐Ÿคฃ
So glad I decided to move my project's off GitHub ๐Ÿคฃ
@lukas No worries ๐Ÿ˜Œ
@lukas No worries ๐Ÿ˜Œ
@lukasthiel.de Welcome to Twtxt / Yarn.social ๐Ÿ˜…
@lukasthiel.de Welcome to Twtxt / Yarn.social ๐Ÿ˜…
My take on the discussion to introduce an `?` operator in Go ๐Ÿ‘ˆ No. For so many reasons.
My take on the discussion to introduce an `?` operator in Go ๐Ÿ‘ˆ No. For so many reasons.
Speaking of "yapping".... Seriously, do companies like microsoft.com and bird.com think they're above the law or something? Do they really think they can get away with not actioning abuse reports from pip squeaks like me? ๐Ÿ˜… Just watch me... ๐Ÿคฃ
Speaking of "yapping".... Seriously, do companies like microsoft.com and bird.com think they're above the law or something? Do they really think they can get away with not actioning abuse reports from pip squeaks like me? ๐Ÿ˜… Just watch me... ๐Ÿคฃ
@aelaraji Ahhh! That one doesn't even render any useful logo on mobile anyway ๐Ÿคฆโ€โ™‚๏ธ
@aelaraji Ahhh! That one doesn't even render any useful logo on mobile anyway ๐Ÿคฆโ€โ™‚๏ธ
@aelaraji that's why I just speak my mind on Twtxt ๐Ÿคฃ
@aelaraji that's why I just speak my mind on Twtxt ๐Ÿคฃ
@kat Glad you're having fun in the real world ๐Ÿ™Œ
@kat Glad you're having fun in the real world ๐Ÿ™Œ
*phew* ๐Ÿ˜ฎโ€๐Ÿ’จ


File system:  EXTFS
Device size:   29.8 GB = 7287552 Blocks
Space in use:   7.3 GB = 1789413 Blocks
Free Space:    22.5 GB = 5498139 Blocks
Block size:   4096 Byte
Elapsed: 13:01:07, Remaining: 00:00:00, Completed: 100.00%, Rate:   9.38MB/min,
Current block:    6823440, Total block:    7287552, Complete: 100.00%
Total Time: 13:01:07, Ave. Rate:   9.38MB/min, 100.00% completed!
Syncing... OK!
Partclone successfully cloned the device (/dev/sda1) to the image (/dev/sdb1)
Cloned successfully.
[root@sysrescue ~]#
*phew* ๐Ÿ˜ฎโ€๐Ÿ’จ


File system:  EXTFS
Device size:   29.8 GB = 7287552 Blocks
Space in use:   7.3 GB = 1789413 Blocks
Free Space:    22.5 GB = 5498139 Blocks
Block size:   4096 Byte
Elapsed: 13:01:07, Remaining: 00:00:00, Completed: 100.00%, Rate:   9.38MB/min,
Current block:    6823440, Total block:    7287552, Complete: 100.00%
Total Time: 13:01:07, Ave. Rate:   9.38MB/min, 100.00% completed!
Syncing... OK!
Partclone successfully cloned the device (/dev/sda1) to the image (/dev/sdb1)
Cloned successfully.
[root@sysrescue ~]#
@andros Oh this is Lisp right? ๐Ÿค” Well done! ๐Ÿ‘
@andros Oh this is Lisp right? ๐Ÿค” Well done! ๐Ÿ‘
Just run FrakenPHP or Road Runner ๐Ÿ˜€
Just run FrakenPHP or Road Runner ๐Ÿ˜€

[root@sysrescue ~]# partclone.ext4 -c -s /dev/sda1 -o /dev/sdb1
...
Elapsed: 00:05:32, Remaining: 23:46:57, Completed:   0.39%,   5.12MB/min,
Current block:       6912, Total block:    7287552, Complete:   0.09%


Bloody hell ๐Ÿ˜†

[root@sysrescue ~]# partclone.ext4 -c -s /dev/sda1 -o /dev/sdb1
...
Elapsed: 00:05:32, Remaining: 23:46:57, Completed:   0.39%,   5.12MB/min,
Current block:       6912, Total block:    7287552, Complete:   0.09%


Bloody hell ๐Ÿ˜†
@xuu I _think_ it's about time we start blocking invalid SPF and DMARC ๐Ÿคฃ
@xuu I _think_ it's about time we start blocking invalid SPF and DMARC ๐Ÿคฃ
Check this out ๐Ÿ˜…๐Ÿ˜…


Authentication-Results: mail.mills.io;
	spf=temperror (mail.mills.io: error in processing during lookup of msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com: responses is not iterable) smtp.mailfrom="msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com" smtp.helo=us.proxy.mills.io;
	dkim=neutral (invalid public key) header.i=@irp.stuartkenzie.com header.s=scph1124 header.a=rsa-sha256 header.b=BOHvtOsv;
	dmarc=none header.from=stuartkenzie.com
Received-SPF: temperror (mail.mills.io: error in processing during lookup of msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com: responses is not
 iterable) client-ip=172.30.0.5;
Received: from us.proxy.mills.io ([172.30.0.5])
	by mail.mills.io (Haraka) with ESMTP id 3CD19639-8117-48DB-8137-5B29E3732B5E.1
	envelope-from <msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com>;
	Sun, 26 Jan 2025 22:23:33 +0000
Received: from mta-174-87-76.smtp-out.sparkpostmail.com
 (mta-174-87-76.smtp-out.sparkpostmail.com [192.174.87.76]) by
 us.proxy.mills.io (envelope-sender
 <msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com>) with ESMTPS id
 74a301f9; Sun, 26 Jan 2025 22:23:33 +0000
Check this out ๐Ÿ˜…๐Ÿ˜…


Authentication-Results: mail.mills.io;
	spf=temperror (mail.mills.io: error in processing during lookup of msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com: responses is not iterable) smtp.mailfrom="msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com" smtp.helo=us.proxy.mills.io;
	dkim=neutral (invalid public key) header.i=@irp.stuartkenzie.com header.s=scph1124 header.a=rsa-sha256 header.b=BOHvtOsv;
	dmarc=none header.from=stuartkenzie.com
Received-SPF: temperror (mail.mills.io: error in processing during lookup of msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com: responses is not
 iterable) client-ip=172.30.0.5;
Received: from us.proxy.mills.io ([172.30.0.5])
	by mail.mills.io (Haraka) with ESMTP id 3CD19639-8117-48DB-8137-5B29E3732B5E.1
	envelope-from <msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com>;
	Sun, 26 Jan 2025 22:23:33 +0000
Received: from mta-174-87-76.smtp-out.sparkpostmail.com
 (mta-174-87-76.smtp-out.sparkpostmail.com [192.174.87.76]) by
 us.proxy.mills.io (envelope-sender
 <msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com>) with ESMTPS id
 74a301f9; Sun, 26 Jan 2025 22:23:33 +0000
Check this out ๐Ÿ˜…๐Ÿ˜…


Authentication-Results: mail.mills.io;
\tspf=temperror (mail.mills.io: error in processing during lookup of msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com: responses is not iterable) smtp.mailfrom="msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com" smtp.helo=us.proxy.mills.io;
\tdkim=neutral (invalid public key) header.i=@irp.stuartkenzie.com header.s=scph1124 header.a=rsa-sha256 header.b=BOHvtOsv;
\tdmarc=none header.from=stuartkenzie.com
Received-SPF: temperror (mail.mills.io: error in processing during lookup of msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com: responses is not
 iterable) client-ip=172.30.0.5;
Received: from us.proxy.mills.io ([172.30.0.5])
\tby mail.mills.io (Haraka) with ESMTP id 3CD19639-8117-48DB-8137-5B29E3732B5E.1
\tenvelope-from <msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com>;
\tSun, 26 Jan 2025 22:23:33 +0000
Received: from mta-174-87-76.smtp-out.sparkpostmail.com
 (mta-174-87-76.smtp-out.sparkpostmail.com [192.174.87.76]) by
 us.proxy.mills.io (envelope-sender
 <msprvs1=20121HZ44a1Eg=bounces-367050@irp.stuartkenzie.com>) with ESMTPS id
 74a301f9; Sun, 26 Jan 2025 22:23:33 +0000
How fucking dumb as these spammer little assholes?! ๐Ÿคฆโ€โ™‚๏ธ Not only does the domain in the Fron: have a bad TLS certificate, the domain in the Reply-To is a blank page. Wut dua fuw?! ๐Ÿคฃ And seriously, how du fuq did this even get through my Mail proxies? ๐Ÿค” @xuu ๐Ÿ˜…
How fucking dumb as these spammer little assholes?! ๐Ÿคฆโ€โ™‚๏ธ Not only does the domain in the Fron: have a bad TLS certificate, the domain in the Reply-To is a blank page. Wut dua fuw?! ๐Ÿคฃ And seriously, how du fuq did this even get through my Mail proxies? ๐Ÿค” @xuu ๐Ÿ˜…
@doesnm Threema is also known to be crippled to state actors and the five eyes. It has known crypto protocol weaknesses that can leak metadata.
@doesnm Threema is also known to be crippled to state actors and the five eyes. It has known crypto protocol weaknesses that can leak metadata.
@johanbove Why not Signal? ๐Ÿค”
@johanbove Why not Signal? ๐Ÿค”
@johanbove It's a good movie! ๐Ÿ‘Œ
@johanbove It's a good movie! ๐Ÿ‘Œ
@lyse Soonโ„ข soonโ„ข my friend ๐Ÿคฃ
@lyse Soonโ„ข soonโ„ข my friend ๐Ÿคฃ
At a gold club today for a friend's birthday ๐Ÿฅณ
At a gold club today for a friend's birthday ๐Ÿฅณ
Why are we touting such garbage anyway?! ๐Ÿค” Why is Apple even entertaining this nonsense?! ๐Ÿคฆโ€โ™‚๏ธ
Why are we touting such garbage anyway?! ๐Ÿค” Why is Apple even entertaining this nonsense?! ๐Ÿคฆโ€โ™‚๏ธ
Apple's so-called "Apple Intelligence" is also pretty shitโ„ข
Apple's so-called "Apple Intelligence" is also pretty shitโ„ข
Honestly Apple's Image Playground is pretty shitโ„ข
Honestly Apple's Image Playground is pretty shitโ„ข
@arne I do ๐Ÿ˜… Despite some opinions, I _actually_ love HTMX and use it in many of my projects, including yarnd to give it that nice SPA-like UX feel without all this Javascript React nonsense ๐Ÿ˜…
@arne I do ๐Ÿ˜… Despite some opinions, I _actually_ love HTMX and use it in many of my projects, including yarnd to give it that nice SPA-like UX feel without all this Javascript React nonsense ๐Ÿ˜…
Online meetup Yarn.social call is on! Come join us!

=> https://meet.mills.io/call/Yarn.social=
Online meetup Yarn.social call is on! Come join us!

=> https://meet.mills.io/call/Yarn.social=
@arne Nice! ๐Ÿ‘Œ
@arne Nice! ๐Ÿ‘Œ
@doesnm @xuu will nuke it with prejudice I'm sure ๐Ÿ‘
@doesnm @xuu will nuke it with prejudice I'm sure ๐Ÿ‘
@doesnm Oh yeah @xuu found his "Open Registrations" got reverted _somehow_ ๐Ÿค”
@doesnm Oh yeah @xuu found his "Open Registrations" got reverted _somehow_ ๐Ÿค”
@andros that's the one used on https://twtxt.dev ๐Ÿคฃ
@andros that's the one used on https://twtxt.dev ๐Ÿคฃ
@doesnm What do you mean? Hmm? ๐Ÿค”
@doesnm What do you mean? Hmm? ๐Ÿค”
See here
See here
Anyone coming to the call today? 12:00 UTC (+/- 2hrs)
Anyone coming to the call today? 12:00 UTC (+/- 2hrs)
@andros Sounds a bit like what you would do when writing normal Go code to me ๐Ÿ˜…
@andros Sounds a bit like what you would do when writing normal Go code to me ๐Ÿ˜…
@andros Just to be clear, you're only talking about the logo for twtxt.dev? ๐Ÿค”
@andros Just to be clear, you're only talking about the logo for twtxt.dev? ๐Ÿค”
@terron Cute ๐Ÿฅฐ
@terron Cute ๐Ÿฅฐ
The other alternative is to just integrate with Salty.im itself ๐Ÿ˜…
The other alternative is to just integrate with Salty.im itself ๐Ÿ˜…
@movq It's all good ๐Ÿ‘ Just discussing two things really a) Publishing private/encrypted messages to target recipients on a Twtxt feed (Direct Messages) and b) A new/alternative logo for https://twtxt.dev ๐Ÿ˜…
@movq It's all good ๐Ÿ‘ Just discussing two things really a) Publishing private/encrypted messages to target recipients on a Twtxt feed (Direct Messages) and b) A new/alternative logo for https://twtxt.dev ๐Ÿ˜…
@movq Haha ๐Ÿคฃ