User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
So because I have gone temporarily off my rocker, I'm working on an client using 10 and WPF, with artalk-xmpp for XMPP, libsignal for , and prism for screen reader output where needed. I'm only an evening into it, and I can already tell that OMEMO is going to be the source of complicated, inexplicable, and unreproducible bug reports for decades to come. It's still not as overcomplicated as , though.
9
5
8
0

User avatar
miki @miki@dragonscave.space
2d
@fastfinge Ive been playing with The Dotnet ecosystem recently, and I have to say I'm impressed. As long as you.re willing to write a common core and per-platform UIs, it's the framework to go with. It's the only way I know of to get native UIs on every platform without cross-language pain.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@miki Yup. Though in this particular case I can't be cross platform, because I need to use windows encryption primitives to safely store OMEMO keys and usernames and passwords and things.
1
0
1
0
User avatar
miki @miki@dragonscave.space
2d
@fastfinge You could expose these behind an abstraction and use Keychain on Mac, for example.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@miki I could. But then I'm trusting myself to write a secure abstraction layer. And I do not.
1
0
1
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge @miki perhaps instead of an abstraction layer, just a side-by-side (sxs) platform-specific optimization.

I’m using Keychain, but when with using trusted primitives, it’s always possible to use an effective lock in an ineffective way.
1
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@plzupgrademe @miki Maybe someday. But there are good clients on Mac and Linux already. So Windows is my priority number 1.
2
0
1
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge @miki I appreciate it because my brother is dumping Mac for Windows, and I need him to have a beautiful client too.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@plzupgrademe @miki I'll share code when I have anything worth sharing. But I'm a screen reader user. So expect fully functional rather than beautiful.
1
0
1
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge @miki fully functional is it’s own beauty for me
0
0
1
0
User avatar
monal-im.org xmpp @Monal@fosstodon.org
1d
@fastfinge @miki @plzupgrademe short question: why not participate in gajim development and help improving it rather than reinviting the wheel once again?

That approach would help the ecosystem way more than starting yet another client and abandoning it half way through. Just my two cents.
3
0
1
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
1d
@Monal @fastfinge @miki thank you. I understand it should work that way. I’m not qualified to contribute and do not want to disturb anyone.
0
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@Monal @miki @plzupgrademe Because gtk remains an accessibility disaster. We would need to spend years on gtk just to get gajim usable on windows.
0
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@Monal @miki @plzupgrademe If you want to be both cross platform and accessible, WX is literally your only practical option. QT5 has come a long way, but there are still lots and lots of issues you’d have to work around. GTK is right out.
0
1
0
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge it was an eye opener for me to realize there is an omemo:legacy, and omemo:2 and an omemo:1. I look forward to trying your app.
2
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@plzupgrademe Why did you intentionally not do OMEMO:1 in yours? Just curious.
1
0
0
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge omemo:siacs/axolotl/legacy is widely used so it needs to be supported, omemo:2 is the latest standard and not well adopted, omemo:1 was never well adopted and is replaced by omemo:2

So it’s an ipv4, ipv6, ipv5 situation.
0
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@plzupgrademe Personally, I'm using Snikket for end to end testing. If the Snikket server doesn't support it, or the Snikket client (just rebranded Monal) can't deal with it, it's not high on my list of priorities. Yes, I know that's a terrible way to implement an open standard. But Snikket is the server I use, and Monal is the client I and everyone I know uses on IOS. So a desktop app needs to work with them to be useful to me. And features they don't support are features I'll never be able to use.
2
0
0
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge I took a similar approach of validation by interoperability testing. I used conversations/cheogram on android and Gajim on macos/linux for testing.

The XEP specs are also helpful, especially for reference for MAM and Carbons.

XMPP itself I guess is not so complicated, but OMEMO really adds complexity.
0
0
1
0
User avatar
monal-im.org xmpp @Monal@fosstodon.org
1d
@fastfinge @plzupgrademe snikket IOS isn't a rebranded Monal, but a rebranded siskin. You can tell from the notification problems as documented over here: eversten.net/en/blog/notification/
0
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
OMG what am I even doing This is a huge project it's going to need Jingle and that needs WebRTC and then file transfers and voice messages and oh also localization and sounds and hotkeys and settings and multi-account support and Oh God. even with AI this will take fifteen years why did I get out of bed today and choose this for myself
4
1
4
0
User avatar
James Scholes @jscholes@dragonscave.space
2d
@fastfinge Do you know how many posts come across my timeline to which I want to unproductively respond to with "Aye, good luck with that?" Not that this is related in any way. Don't know why I'm even bringing it up.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@jscholes The problem is that I want this to exist, and nobody else is doing it. And I'm tired of the many broken things about Miranda's XMPP support.
1
0
0
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge @jscholes same I was tired of there being no nice client on MacOS for me. Fluxx looks nice, but has no omemo.
0
0
1
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge it is. File Transfers are not so difficult on XMPP, they’re really just HTTPS.

Jingle is a big effort. Be prepared to learn about ICE, DTLS, STUN, TURN et al.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@plzupgrademe I think this library has everything I need for Jingle. The same way you did for mac, I'm doing for Windows. So that makes it simpler because I want to just be Windows native whenever possible. So no cross platform worries. github.com/sipsorcery-org/sipsorcery
1
0
1
0
User avatar
plzupgrademe @plzupgrademe@fedi.txw.ca
2d
@fastfinge sadly I wanted to make it a truly modern macOS first class citizen, so the app is using 100% Swift. So not a lot to leverage.
0
0
1
0
User avatar
MostlyBlindGamer @MostlyBlindGamer@dragonscave.space
2d
Software development, LLMs @fastfinge and this is why LLMs can’t really make software. What you’re dealing with are problems of architecture and product and project management. Coming up with and managing a feature backlog, prioritizing, planning ahead…
The issue is that you actually learn to do these things by being involved in them - with other humans - which LLMs won’t and can’t do for you.
2
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
Software development, LLMs @MostlyBlindGamer I’m comfortable with those things. It’s just that shock of going from something that connects and saves messages to something actually useful and the work involved
1
0
0
0
User avatar
Jack-Frostodon @jackf723@mastodon.social
2d
Software development, LLMs @fastfinge Looks like a Brigove SDK release recently landed, with libbrigove.batteriesincluded which ought to provide some simplification.
borogove.dev/docs/
Not sure how directly it would work with servers other than Snikket, but I imagine not too badly given it's based on the XMPP protocol as it is.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
Software development, LLMs @jackf723 Looks like this would involve writing dotnet bindings myself, though. And then publishing them to nuget etc. Not sure if this is a better approach than using a library like artalk written and intended for DotNet.
1
0
0
0
User avatar
Jack-Frostodon @jackf723@mastodon.social
2d
Software development, LLMs @fastfinge Oh, definitely not in its current form so it would seem. Not worth it over more stable libs when about the only truly Snikket-specific thing Brigove likely handles more directly is invites. Everything other than that is plainly standards-driven already.
0
0
1
0
User avatar
Andre Louis @FreakyFwoof@universeodon.com
2d
Software development, LLMs @MostlyBlindGamer @fastfinge Wait, they can't? Did I just dream the last three months of my life then? How odd.
0
0
0
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge there's always Delta Chat which solved almost all of these problems already :)
2
0
2
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld But it’s an electron app. With no open standards process to develop a third party implementation. So if deltachat decides to stop caring about accessibility some day, I’m screwed. They control the protocol from end to end. If it’s not an open standard I’m not interested. I’ve been betrayed by too many organizations at this point. Especially nonprofit open source ones.
0
1
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld I dropped Jami and signal from my life for the same reason. “Just use the official clients” is not an open protocol. Not even if the client and server are open source.
1
0
2
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge you're completely wrong we have third party clients and more coming all the time

github.com/trufae/parla

lambadalambda.github.io/estuary/

Unreleased tui client by
@jae
1
0
2
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae Nope. These are just running deltachat-core or libdeltachat, from what I can tell. If I want a library in C#, there is none. If I want to write my own library in C#, without depending on deltachat-core, I can't. There's no list of RFCs I can look at, nothing like xeps or IRCV3 caps, etc. It's just "use our library".
2
0
4
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae If I would like to propose a change to the standard, the only way I see to do it would be submitting a PR to libdeltachat. There doesn't seem to be any standards process outside of that. That is not an open, standards-based protocol. That's just "using someone's thing and building on it".
1
0
1
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae if you want a change, write an RFC. That's why Autocrypt v2 is an RFC.

Emoji reactions? Its an RFC.
0
0
0
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae there is no "library" to write. It's PGP emails and SMTP/IMAP. Go ahead and do it yourself, there's nothing proprietary being implemented. It's just emails.

Name a feature that you think is some secret proprietary thing
1
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae It's not, though. Deltachat does weird shit with email headers to anonymize everything. I couldn't just read a message from deltachat in my regular email client. And I have no idea how they're doing federation and key exchange and things. But it's all based on weird links that require deltachat's domains and servers to exist and be running. I can't just type an email in the chat client and send a deltachat message.
2
0
3
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae Or if it is, it's not developer friendly at all. For XMPP, I can look at the list of xeps to know exactly what my client needs to implement to achieve various levels of compatibility with the standard: xmpp.org/extensions/

Same for IRCV3, the list of rfcs and extensions is all right there:
ircv3.net/irc/

I have no idea where any of this info lives for deltachat. The website and github don't make it obvious. What parts of email do I need? What parts of PGP do I need? I guess I need to do autocrypt based on your message. But what is the name of the standard that deltachat is even targeting? Chatmail, I guess? What do I need to have to be a "chatmail compatible client"? Are there test suites I should pass?
1
0
3
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae the main website says "built on internet standards" and links here:

github.com/chatmail/core/blob/main/standards.md
2
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae And that document is either out of date or false. Deltachat's misuse of subject lines, date smearing, etc, are absolutely in violation of the RFCs. Notice they never claim they follow or comply with the standards. They're just "based on them". Just following those standards will not result in a client that in any way can be used seamlessly with other deltachat users, or is guaranteed to interoperate with them.
2
0
1
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae
Deltachat's misuse of subject lines, date smearing, etc, are absolutely in violation of the RFCs.
No it's not. The subject and date headers are that way because we've found mail servers that will not accept completely removing them even though that's fully supported by RFC 9788. If you have never heard of this RFC before, it's what allows you to disregard ALL plaintext headers and put them all inside the PGP encrypted part.

datatracker.ietf.org/doc/rfc9788/
0
0
0
0
@fastfinge @feld most of the docs are out of date. its something i wanted to fix but didn't work out so i stopped trying to hop the gatekeepers
0
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae And there's not even any mention of the weird peer to peer app package stuff they do. If I want to fully interoperate with deltachat, it seems like I need that for stuff like voice calls and other future Realtime things (typing indicators?).
1
0
1
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae

the peer to peer apps are WebXDC, also a standard:
webxdc.org

That's literally what the "web apps in chats" link on the main webpage goes to. It's not hidden. The p2p functionality is not special or hidden, it's just Iroh which is also documented on the webxdc site.

voice calls
it's just WebRTC, nothing special. You will need a STUN/TURN server most likely though. Chatmail relays provide one to clients with a password accessible under an IMAP METADATA command, otherwise you can point your client to any TURN server you want
1
0
1
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae I'm glad you know this stuff. Wake me up when there are multiple independent chatmail implementations that I can pick from, and what I decide to use is completely transparent to the people I'm chatting with. Until then I'm just not interested in getting my friends and lovers to switch to something that could be ripped away from me at any second, because deltachat decided it didn't want to do an RPC API anymore, and everyone should just shut up and use their client.
0
0
0
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae
key exchange
It's Autocrypt, there's an RFC for it


Mime headers being encrypted? There's an RFC for it


The subject header being changed to [...] is a client / chatmail server implementation detail unnecessary

The Date header being smeared +- a few days is a client implementation detail too

None of that is required

All you needed to do to read the message in your email client is decrypt it. There are users reading messages in Thunderbird/Mutt/Proton Mail
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae Interesting that everyone uses libdeltachat or deltaachat-core, then. There is no ecosystem of standards compliant implimentations. And seemingly no clear idea what that would even mean to deltachat.
1
0
3
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae because deltachat-core is a nice implementation of the core protocols in a simple Rust package and presents a clean JSON-RPC API for you to build anything you want on top of it. And none of that has anything to do with accessibility anyway, that's all in the UI. So as long as you have a UI you can control, you're fine
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae That's what we thought with Twitter and Reddit. Then they discontinued the API's. Those are just two recent examples of something that has happened dozens of times in the last 25 years. Slack discontinuing IRC is another. If I depend on an API that could be taken away at any moment, I have nothing. If there are no competing and interoperable implementations of the standard, you're just at the whims of the owner of the one true version.
2
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae If I don't like the c# library I'm using to build XMPP, I can rip it out and pick another one. There are like 6 to choose from. If they disable an API I needed, I can build it myself, or use a different library. Those are not options with deltachat.
2
0
0
0
User avatar
Only 3 Easy Payments of $19.95 @feld@friedcheese.us
1d
@fastfinge @jae why aren't they options? You can write your own little core in C# with pgp/imap/smtp and do it yourself and have your own API forever if you really want
2
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae Because the only way to find out all the implementation decisions deltachat has made is to examine the code. They're "based on" the standards they list, not compliant with them. If I write a core just with those standards as written, It's not going to work correctly with the deltachat app.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@feld @jae If someone cannot write a fully interoperable client, without examination of deltachat code, it's not an open standard. It's just a reference implementation.
1
0
0
0
User avatar
ArcaneChat @arcanechat@fosstodon.org
1d
@fastfinge
If I don't like the c# library I'm using to build XMPP, I can rip it out and pick another one
which already implies they each have different features or lack thereof, which is exactly the exact same situation you have in XMPP with a lot of fragmentation,

in fact, it is better if people don't create their own chatmail core implementation

if Delta Chat becomes evil, the core is open and you can just fork it and keep using it, no one can take anything away from you

@feld @jae
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@arcanechat @feld @jae If deltachat doesn’t want people indipendantly authoring libraries that use its protocol it is not an open standard. End of story.
2
0
1
0
User avatar
ArcaneChat @arcanechat@fosstodon.org
1d
@fastfinge you are comparing a web API of a central server to a local API of a library

which is completely wrong, for your information, ArcaneChat uses its own core that is a fork of the official chatmail core with some modifications and additions

you can do the same and of course you could implement a chatmail core in C# if you wanted to but it is a lot of useless uninteresting work reinventing the wheel while you didn't deliver anything useful to the users

@feld @jae
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@arcanechat @feld @jae And what happens when the local library is discontinued in order to force everyone onto the official clients? From what I can tell no other viable library exists. I never build on an app or library controlled by the same organization that controls the protocol for that reason.
1
0
0
0
User avatar
ArcaneChat @arcanechat@fosstodon.org
1d
@fastfinge for that first the whole client needs to become proprietary, and as said you can always fork it, as we are already doing, at that point then the community can keep developing the chatmail core

it will only mean a different group of people continuing the project, people don't last forever anyway so this is something that has to happen one way or another

@feld @jae
1
0
0
0
User avatar
Martin @martin@social.mdosch.de
2d
@fastfinge
Maybe checkout
(#OpenPGP for ). It's not as complicated as . it's currently supported by , and . is currently working on support.
2
0
0
0
User avatar
stefank @stefank@pleroma.debian.social
2d
@martin @fastfinge

BTW, profanity and dino are not using libsignal, for omemo. Both are using libomemo-c.

tracker.debian.org/pkg/libomemo-c
0
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@martin I had heard that this was discouraged by the XMPP foundation for...unclear reasons?
1
0
0
0
User avatar
Martin @martin@social.mdosch.de
1d
@fastfinge
What makes you think so? The xeps are experimental/deferred but it's not discouraged.
1
0
0
0
User avatar
Martin @martin@social.mdosch.de
1d
@martin
Maybe your mixing it up with legacy PGP xep-0027 which you shall really not use anymore.
@fastfinge @fastfinge
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
1d
@martin I think I am, yes. Thanks!
0
0
1
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge Oh, god! I'm trying to map all the types of notifications that a Matrix room can give you and then attempting to verbalize them or provide some type of feedback. I literally banged my head against my desk. I'm going to have to pay someone like Andre to create sounds for this thing.
0
0
1
0
User avatar
Simon Jaeger @simon@procrastodon.net
2d
@fastfinge I've been so utterly infuriated with the state of desktop messaging apps that I actually spun up my own XMPP server recently, and have been looking into clients for all operating systems. This is good timing. I think with AI both helping us create custom apps and helping mainstream developers create inaccessible web-based slop, the only way forward is for us to work together and create our own ecosystems of apps and services. I firmly believe you're not wasting your time.
0
0
1
0
User avatar
pixelschubsi @pixelschubsi@troet.cafe
2d
@fastfinge another instance of "there's no good client, let's do another one that probably will never be good either"?
Gajim and Dino can run on Windows and macOS. Sure, they don't work great and don't feel native, but fixing those issues is probably easier than starting from scratch. Just saying.
1
0
0
0
User avatar
Debacle @debacle@framapiaf.org
2d
@pixelschubsi @fastfinge

I'm not sure, how good
is with on Windows, which is most relevant here. Do you happen to know?

But, yes, a cross-platform client would be good, as new features and bug fixes from one platform make it to the other.
2
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@debacle @pixelschubsi As with all things Linux related, gtk accessibility is really bad. Completely unusable on windows last I checked.
1
0
1
0
User avatar
Debacle @debacle@framapiaf.org
2d
@fastfinge @pixelschubsi

Unfortunately, I expected that 😞
0
0
1
0
User avatar
pixelschubsi @pixelschubsi@troet.cafe
2d
@debacle @fastfinge GTK uses AccessKit, a cross-platform accessibility API. There might be issues with it, but fixing those would also bring immediately more benefit to a lot of apps, not only XMPP clients or GTK apps.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@pixelschubsi @debacle Yes, but fixing it is far beyond my skill level. I also do not run or care about Linux until it’s systemic accessibility issues get fixed. I’ll stick to developing for a platform that at least treats me like a second class citizen, rather than a problem it wishes would just go away.
0
0
1
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge Would you be interested in combining efforts to make a unified client? I'm working with Rust and wxdragon.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel Sadly, i find rust incomprehensible. And i am not willing to just push AI generated code I can’t personally understand and reason about.
2
0
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge I can understand that. I'm far more familiar and comfortable with it. I review everything that goes into my projects. Even though I'm used to Python and like it for some things, I find it unwielding.
1
1
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel Same. I went with dotnet 10 and C#. Felt like the right tool for xmpp, a protocol developed entirely around xml.
1
0
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge Those are good choices. If I didn't worry about packaging issues or trying to be cross-platform, I'd choose .net and C# too or go to C++ straight.
1
1
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel I’m hyper focused on windows. So packaging is via msix for the App Store eventually.
0
0
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge If you find yourself abandoning the project, let me know. I'll include XMPP. Otherwise, I'll look forward to seeing what you develop.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel Please include xmpp anyway. Users deserve more than one accessible option. I’m not territorial and would happily offer testing and what help I can.
1
0
1
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge I'll consider including XMPP after I've pushed v1 of Matrix. I'll make it as feature-rich as possible. I think I'll be able to convert my Windows version to the store as well.
2
1
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel Hah. I put matrix on the roadmap for v3, after xmpp in v1 and irc in v2. Then plugins are v4.
0
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel But I expect each version to be about a year of work.
1
0
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge It's hard to push these things out when you're not working on it full time—no matter whether you're using AI-assisted coding techniques.
2
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel I’m between jobs at the moment. I’m using this project to upskill and for resume juice. There are 37 xeps and 4 rfcs I need to support. Getting xmpp to done is a year of full time work for a single developer, even with AI.
1
1
1
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge I've been working on a Mail client + Matrix for about 8 months now between work with clients, major health issues, and life in general. I'm just about ready for alphas for each project in a week or two. I'm still supporting the Terminal Access for NVDA addon as well. I generally budget several hours of my time for reviewing code that AI comes up with during the day.
1
1
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel Interesting. I don’t let AI run unattended. I know exactly what I want built and how. So I have to stear every step.
1
1
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@fastfinge I used to have to do that with pre Opus 4.6. I still have to be precise with instructions. But, with skills, reinforcing red/green TDD, and code reviews, things are quite good. One of the other reasons why I use Rust is that the errors and warnings I get from the compiler are by far the best in the industry.
1
1
0
0
User avatar
James Scholes @jscholes@dragonscave.space
2d
@ppatel @fastfinge I think the effectiveness of TDD with LLMs is overstated. TDD only works if the tests are exercising the right thing. Any human or LLM can write a body of passing tests that prove the code works but not that the code is correct.
1
2
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
2d
@jscholes Of course. That goes without saying. That's one of the reasons why I use red/green testing combined with other things. Telling the system to deliberately fail at something to build a function helps a lot. Fuzz testing also helps catch quite a few bugs. Not abstracting too much code makes things easier to review. @fastfinge
1
1
0
0
User avatar
James Scholes @jscholes@dragonscave.space
2d
@ppatel @fastfinge A few weeks back I had a tiny problem with a CLI tool I'm building. There were two blank lines between some sections of help output and while it wasn't gonna keep me up at night, I wanted there to be only one.

The LLM wrote a test that failed as expected, and then cracked on with a fix. Specifically, it determined there was no straight forward way to eliminate the extra line break and instead wrapped the entire output of the tool in a buffer. When the program was done, it removed the extra whitespace from the buffer's value before dumping the entire thing to the screen.

The tests were all green! The evil blank line was gone!

Of course, so were all of the helpful indications of progress the tool printed as it was running; it now appeared to hang and do nothing for several minutes.
2
1
0
0
User avatar
Andre Louis @FreakyFwoof@universeodon.com
2d
@jscholes @ppatel @fastfinge Doug Langley told me to ask this question recently which has oddly helped a lot.
'What are you the least confident in, where this code is concerned?'
1
1
0
0
User avatar
Pratik Patel @ppatel@mstdn.social
1d
@jscholes Oh my. That failure sounds like a doozy. Mine was Terminal Access treating every window as a terminal. This came out of a test (pre-red/green). Wrong assertions are wrong assertions. @fastfinge
0
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@ppatel Hell, just getting an e2e test harness set up took me two hours this morning: automating a local ijabberd deploy with docker and wsl. There’s no simpler way to handle that.
0
0
0
0
User avatar
Debacle @debacle@framapiaf.org
2d
@fastfinge

You might take a look into
, a once promising, but later abandoned /#XMPP client by a.k.a. (not on ?):

uwpx.org

github.com/UWPX/UWPX-Client

Maybe you can even take over his work instead of starting from scratch?

IIRC, it does have
, but no A/V calls, no message reactions, maybe , not sure.
1
0
0
0
User avatar
🇨🇦Samuel Proulx🇨🇦 @fastfinge@interfree.ca
2d
@debacle Sadly the accessibility infrastructure is poor enough I’d be ripping out and rebuilding it entirely. And it’s not using an up to date library. So I’d also be rewriting the xmpp parts.
0
0
1
0