• 1 Post
  • 11 Comments
Joined 1 year ago
cake
Cake day: June 30th, 2023

help-circle
  • I don’t have experience with Twitter or Mastodon but it reminds me of time when I quit drinking.

    When I quit drinking and tried to stay around people I used to drink with, I realized really fast how pointless this “engagement” (really just two people speaking past each other, and feeling like they have deep conversation) is. It’s almost insulting what a waste of effort such an “engagement” can be.



  • Why? Why ask for this from the creator?

    If someone can create new software and offer it for free, they should not also be expected to also create a comprehensive analysis of what other people did and list of differences.

    Just take it or leave it, it’s that simple. No need to act as if you’re trying to waste some door-to-door salesman’s time.

    Edit: I expected some downvotes but not that many.

    To my defense, the question in this thread is “you could elaborate what exactly you did different than all the others”. Look, I’m not a native English speaker either but I feel we could agree that is still pretty far away from simply being curious about design choices or “what led you to create this” sort of exploratory question.

    I might have overreacted, though, so sorry for that.


  • Tip: find -type f | xargs head (but no it’s not comfy)

    but I don’t think going to “one giant metadatafile” argument helps; personally my attention starts splintering far sooner than that. Most of the time, if I’m looking at meta-data of an object, I’m not just looking at that single object, I’m reasoning about it in relation to other data points (maybe other objects in the same collection, maybe not). If at some point I want to shift my focus from created_at to updated_at or back, I need that transition to be as cheap as eye saccade. So by splitting the data to multiple files you are sort of setting “minimal tax” already pretty high.

    That said, for simple projects where you want to have as few dependencies as possible, I think it’s fine; it might or might not be better than raw-dogging your own format. I’ve actually implemented pretty much this format multiple times when I was coding predominantly in Bash. (Heck, eg. my JATS framework is pretty much using FAMF for test run state 😄 .) Just be careful: creating / removing files and directories can be a pretty risky operation – make a typo in (or fail refactoring) a shell variable and you might be just rm -rf’ing your own “$HOME”. It might be one of things you want to do less of, not more.

    BTW, I chuckled because you turn from created_at to cre_at for no apparent reason. (I mean, if you like obscure variable names, fine by me, but then why would you call it created_at in the first file?)

    BTWBTW, I love your site, I wish most of the web looked like that; the grey gives me sort of nostalgy :D Also you reminded me that I should give Kagi a try…




  • Just a follow-up with what I use now.

    As a replacement, I ended up setting up Nextcloud AIO container set and so far the experience has been pretty good. I do occasionally have to go and do the update manually but the AIO interface makes it pretty straightforward.

    The limitation is that I don’t have a very strong machine to host it. I have cheap VPS with only few gigs of RAM so I could give 2G to the nextcloud machine, which prevents me from enabling the more resource-hungry features, on the other hand the base NextCloud with caldav/carddav (which really is all I need) works fine.


  • Unfortunately later I learned that for some reason, somehow (surely my mistake), the only full copy of my dad’s contacts was at the nextcloud instance, so that collection was the “hostage”. Far more sadly, my dad deceased earlier this year, so in a weird irony when I received bill this time, the sad fact enabled me to put this all behind myself, so today I just canceled the service and goodbye.




  • Again, perhaps with more clarity:

    With imapfilter you can

    1. choose where you will host your “actual” e-mail, let’s say you choose according to best spam filter.
    2. choose where you will store your e-mail long-term.
    3. choose where you will access the e-mail for everyday use (this could be several separate accounts if you wanted to eg. use one on your phone and another one on your workstation)
    4. choose where you will run imapfilter and any script hooks
    5. start building your rules.

    1-3 could be same provider or different providers, including your custom dovecot instance, you will simply choose based on convenience and limits. If you ever need to change one of the endpoints (providers), you just need to rewrite them in your ~/.imapfilter/config.lua. (And migrate, which can be done using imapfilter or manually using any sane client, eg. Claws Mail…)


  • Whatever hosting service you’re going to use, if you’re not afraid of a little bit of Lua coding, consider using imapfilter – it’s a swiss knife for backups, pre-sorting, hooks and migration.

    imapfilter is a (criminally underrated, IMO) tool for writing e-mail rules in Lua, which allow you to do tons of things, but my favorite is migrating e-mail, regardless of account.

    See, unlike most filtering/sorting systems which are either completely proprietary or limited to single account (exportable as Sieve, if you’re lucky), imapfilter does not care where each “end” of the rule is: you can write rule that migrates from account1/folder1 to account2/folder3.

    This allows you to completely decouple any sorting, pre-processing, hook or backup system from the actual locations or providers you happen to be using, as well as it allows you to combine any number of locations in any simple or complex way you need. Whatever system you will end up creating will stay with you as long (as you can use IMAP locations), so you can really focus on making it work long-term and have it fit into the big picture.

    I’ve been using it for almost 10 years and ever since it has changed my whole world of e-mail. I have constant set of rules that take e-mails from set of inboxes (each box for different purpose, each on different provider, for reasons) and sort them to folders on my “actual” account, where I get to read them on my terms. I also have several of rules that run custom scripts exporting CSV’s, etc. (The rules are Lua programs, after all, so sky is the limit.) If I ever need to migrate my domain to another service (believe it or not, happened more than once in 10 years), all I need to do is set up the new account as base for the rules, but all of my rules are always going to be preserved.

    In my past work I actually used imapfilter to move all IMAP from company Gmail to a locally maintained (on company laptop) Dovecot instance so that I could eventually use a sane client to get my work done. (And because the instance was local, I could access my e-mail offline with best possible speed.) One could do a similar thing with personal/freelance e-mail – just run Dovecot somewhere at a trusted place (you won’t be sending/receiving e-mails here, you will be only using IMAP to IMAP commands, so none of the horrors of self-hosting e-mail apply) and use imapfilter to route all email there, then back up your dovecot folder and you’re all set.

    Except for need of coding, the disadvantage is that, I need an independent machine that runs 24/7 in order to keep sorting the e-mail (I do it cron-based but you can also do it continually) but that has not been a problem for me as I’m the self-hosting-nerd that’s going to have such machine anyway.