Bjarni |grep -i tech · @HerraBRE
284 followers · 215 posts · Server floss.social

That's this code: github.com/mailpile/Mailpile/b

The connection broker uses with-block to selectively monkey patch the socket library, so third party code would make outgoing and/or connections according to a configurable security policy.

Pretty cool! I have yet to port this to , but I will for sure.

The security researcher just grepped and skimmed, they missed the fact that not only did I solve the problem, I knocked that one out of the park.

I politely told them so. ;-) (3/3)

#TLS #Tor #moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
282 followers · 206 posts · Server floss.social

It was very satisfying to be able to open a mailbox which hadn't been added to 's search index (yet), and see the contents threaded - including messages from other mailboxes.

In human terms, this means being able to open up an old "inbox" and see entire conversations, even if half the messages were stored in the "sent" mailbox and aren't present in the inbox at all.

I'm told some other popular mail clients struggle with that. :-D

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
282 followers · 206 posts · Server floss.social

This weekend, in "email things which seem easy but aren't", I had fun with threading messages in .

If you know about all the messages, threading is easy. Just make a tree by following the In-Reply-To headers!

But what if your data-set is incomplete? Or what if the user has requested a subset of messages, but still wants a thread view? Or what if we have threading information coming from two distinct data sources? And need to create a unified view?

E-mail is beautiful chaos.

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
280 followers · 199 posts · Server floss.social

NLnet grant progress: First RfP (Request for Payment) has been filed!

I created Github issues to track the actual progress of completing the project as defined in the grant: github.com/mailpile/moggie/iss

The first (completed) issue includes instructions on how to verify I actually did the work, using docker to increase the odds it all reproduces correctly.

I think I'm doing a good job!

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
280 followers · 199 posts · Server floss.social

making , Part 1: A Read-Only Mail Client

mailpile.is/blog/2023-07-13_A_

I did it! I finished a milestone!

Now I gotta tell to send me some money, and get started on the next one...

#moggie #NLnet

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
280 followers · 199 posts · Server floss.social

Alright!

I think I've got code which generates numeric IDs for messages within a Maildir or Mbox, where the happy path is a relatively efficient direct-ish lookup of the target message, but enough info is encoded in the ID to recover and do the right thing if the message has moved, changed slightly or been replaced by an imposter.

Along with hooks to notify the calling code that IDs have become inefficient and a re-indexing might be warranted.

I can sleep now.

#moggie #email #maildir #mbox

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
275 followers · 188 posts · Server floss.social

It is very easy to write code that *usually* works with an mbox file.

It is surprisingly tricky to write code that *reliably* works with an file.

Almost impossible, actually, since there are multiple incompatible variants of the format.

I keep coming back to this code and finding new problems with it. That is a good thing, I guess? Making progress...

#mbox #email #moggie #mailpile

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
270 followers · 184 posts · Server floss.social

Even though isn't usable as a mail client yet, I have started reaching for it when troubleshooting things.

This was one of my goals: make moggie a light-weight command-line tool which I reach for by default, instead of good old mutt.

I really think I'm nailing it this time around.

#moggie #email

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
269 followers · 182 posts · Server floss.social

I've started writing the very last section of Part 1 of the "a mail client in six steps" blog series.

(Part 0 is here: mailpile.is/blog/2023-05-01_A_ )

As I started writing it, I of course found a wart in the API which needs fixing. So I am fixing it! I may be behind schedule, but the process works.

Writing about makes the code better.

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
265 followers · 175 posts · Server floss.social

A friend: I need a tool to process 20k e-mails per day.

Me: Oh great, now I'll be obsessing over performance for days! ARGH!

...

My test moggie now has 1.4 million e-mails indexed. It *looks* like it is eating a lot of RAM, but that's because I've mmap()'ed lots of large files.

Startup and shutdown are still instantaneous, searching and viewing is still pretty snappy... It's holding up well.

So much better than Mailpile v1.

Time to generate and import more mail? 8-)

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
265 followers · 174 posts · Server floss.social

Dear Internet,

Please find attached a text-mode screenshot, for your viewing pleasure!

As of this morning, OpenPGP states appear in the app in vaguely sensible way!

This screenshot demos how the signed part is marked as verified, but the unsigned mailing-list advertisement is not - and since it's a message with signed content, the unsigned bits are de-emphasized by using a darker text color.

I think this is acceptable.

Love,
- B

#moggie #OpenPGP

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
265 followers · 174 posts · Server floss.social

@grrrr_shark LOL. It's making progress!

I've worked my way up the stack now to the point where I can finally see encrypted/signed states in the text-mode user interface.

That's always a dopamine hit for me, when I can finally *see* the results in the app...

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
264 followers · 170 posts · Server floss.social

Me: Yay! Decrypting and verifying OpenPGP mail in seems to finally work!

Also me: Oh damn, I need to parse the protected header stuff too. I helped out on the spec, it would be lame not to...

Still me: Oh damn, I need to move all my decryption logic so I can also use it during composition (decrypt before forward/reply).

Oof. Slowly, slowly...

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
259 followers · 169 posts · Server floss.social

It is now two weeks since I missed my self-imposed deadline on delivering the first e-mail client dev blog post.

I'm not quite the point where I have to multiply my time estimates by pi, but a factor of two is feeling plausible for the first milestone.

It's support that is slowing me down, which was supposed to be a stretch goal... but I really wanna to ship it!

Well, that and summer. Summer is REALLY slowing me down! :-D

#moggie #OpenPGP

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
256 followers · 168 posts · Server floss.social

Writing a really rather quite long blog post about development, I documented a tool for interactively connecting to and exchanging messages with moggie's websocket server.

Then I wrote the tool. It's a great tool!

I should have written it ages ago.

I like documentation driven development. Explaining to people how things should work... and then making it true. Feels good.

#moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
254 followers · 167 posts · Server floss.social

I pulled an all-nighter last night!

Hackedyhackhack!

Haven't done that for aaages. It was fun, and worth it: speaks now.

The 3.x has gotten better, I only had to work around one bug so far! Early days tho. :-D

#moggie #imap #Python #imaplib

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
236 followers · 163 posts · Server floss.social

I just published a new blog post on the website, discussing the grant we are getting from and what we are going to do with the money: mailpile.is/blog/2023-05-01_A_

The tl;dr is that we are bringing from "a thing Bjarni hacks on as often as he can", to "a new terminal mode e-mail client which people should be able to use."

I'm pretty excited about this!

#mailpile #NLnet #moggie

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
236 followers · 158 posts · Server floss.social

This morning I taught `moggie email` to generate e-mails with protected headers, as described in this Internet Draft (co-authored by yours truly):

ietf.org/archive/id/draft-auto

This extends PGP/MIME signatures to cover important message headers, and optionally allows header encryption, including the Subject in particular.

Progress!

#moggie #mailpile #OpenPGP #email

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
232 followers · 155 posts · Server floss.social

It's kinda fun when you need some sample data, and you know that there is an Internet Draft with your name on it, that contains exactly what you need...

ietf.org/archive/id/draft-bre-

#OpenPGP #moggie #mailpile

Last updated 1 year ago

Bjarni |grep -i tech · @HerraBRE
232 followers · 154 posts · Server floss.social

So far, my favorite back-end is the "demo" engine that doesn't really encrypt: instead it prepends the letter E to every line of the clear-text.

Because sometimes you just want to peek under the covers and see how the magic happens...

#moggie #OpenPGP

Last updated 1 year ago