• 1 Post
  • 53 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle
  • Yes it is correct. TLDR; threads run one code at the time, but can access same data. processes is like running python many times, and can run code simultaneously, but sharing data is cumbersome.

    If you use multiple threads, they all run on the same python instance, and they can share memory (i.e. objects/variables can be shared). Because of GIL (explained by other comment), the threads cannot run at the same time. This is OK if you are IO bound, but not CPU bound

    If you use multiprocessing, it is like running python (from terminal) multiple times. There is no shared memory, and you have a large overhead since you have to start up python many times. But if you have large calculations you can do in parallell that takes long time, it will be much faster than threads as it can use all cpu cores.

    If these processes need to share data, it is more complicated. You need to use special functions to share data, like queues and pipes. If you need to share many MB of data, this takes a lot of time in my experience (10s of milliseconds).

    If you need to do large calculations, using numpy functions or numba may be faster than multiple processes, due to good optimizations. But if you need to crunch a lot of data, multiprocessing is usually the way to go






  • yes, regular markdown notes has been a good decision 😅

    In the beginning, the query results were stored in the markdown files, which could be useful if reading them in another app. But now I just get the query code. I think there were reasons

    I’m glad to hear things have cooled down. Does it take much effort to understand and use the templating stuff? I just remember templates got pushed to a different view, and I needed some header tags to get it working

    So you like spaces or not? I never got that far with silverbullet. And I haven’t used Trillium. I loved evernote when it came out. But it made me aware of the value of maintaining my own data.

    Now I try to have data in a directory structure and not in databases



  • I am not thinking of the most recent versions.

    The query system was updated, around version 0.6 if i remember correctly. I don’t think the updates were bad, but some things broke and I am too old for “bleeding edge”. The template system was also updated at some point

    I don’t have a great solution. I use syncthing to keep notes local on all devices and MarkText on desktop and Zettel Notes on android.

    what i really liked about silverbullet was that it had offline support. but there were made some changes there as well along the way, and for me it became less stable after it became optional. But I haven’t actively used it for some time. I still got an instance running tho








  • I use syncthing to copy important files between pc, phone and proxmox server. Syncthing can be set up with version control so it keeps old versions of files.

    Only the proxmox server is properly backed up though. to a proxmox backup server running in a VM on said proxmox server. the encryptred backup files are copied to backblaze using rclone

    Not sure if this is what you are looking for, but it works for me.

    TLDR syncthing for copies between local machines, and proxmox backup server and backblaze for proper backups





  • I use dovecot for this. And thunderbird to actually move/archive the emails. I use caddy for many of my services, so I have pointed dovecot to caddys certificates (for “my.domain”), since it manages certificates through let’s encrypt. I had a plan to install postfix for sending internal emails from my self-hosted services, but it seemed like a bit of configuration and I got busy with other stuff

    I made an excerpt from my docker-compose.yml, but you probably have to figure out some things on your own

    
    version: '3.4'
    
    services:
      dovecot:
        image: dovecot/dovecot:2.3.20
        restart: unless-stopped
        volumes:
          - ./dovecot/:/etc/dovecot
          - /mnt/storage/dovecot/mail:/srv/mail
          - ./caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.my.domain/wildcard_.my.domain.crt:/etc/ssl/cert.crt
          - ./caddy/data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.my.domain/wildcard_.my.domain.key:/etc/ssl/key.key
        ports:
          - 993:993
    

    contents of ./dovecot folder:

    dovecot.conf
    passwords
    

    contents of dovecot.conf (I think I searched online to find a good example, I don’t remember where from…)

    ## manage this file
    
    mail_home=/srv/mail/%Lu
    mail_location=sdbox:~/Mail
    mail_uid=1000
    mail_gid=1000
    
    protocols = imap pop3 submission sieve lmtp
    
    first_valid_uid = 1000
    last_valid_uid = 1000
    
    passdb {
      driver = passwd-file
      args = scheme=argon2i /etc/dovecot/passwords
    }
    
    ssl=yes
    ssl_cert=</etc/ssl/cert.crt
    ssl_key=</etc/ssl/key.key
    
    namespace {
      inbox = yes
      separator = /
    
      mailbox Drafts {
        auto = subscribe
        special_use = \Drafts
      }
      mailbox Sent {
        auto = subscribe
        special_use = \Sent
      }
      mailbox Spam {
        auto = subscribe
        special_use = \Junk
      }
      mailbox Trash {
        auto = subscribe
        special_use = \Trash
      }
      mailbox Archive {
        auto = subscribe
        special_use = \Archive
      }
    }
    
    service lmtp {
      inet_listener {
        port = 24
      }
    }
    
    listen = *
    
    log_path=/dev/stdout
    info_log_path=/dev/stdout
    debug_log_path=/dev/stdout