Been working on Yggmail, a decentralized mail server that operates over the Yggdrasil network.
The project is maintained by Neil Twigg and it actually works quite well.
Seeing as this is the first time I am helping out on a Go project I decided to start with some simple things. Add support for automatic creation of Sent mailbox and the logic to move mail that is successfully sent from Outbox to Sent.
I also wanted to add an onboarding email that appears in your inbox when you first start it up, so I added that as well.
Experimental code that gets tested every 20 minutes on the Jenkins server.
Given how much development I have done the past week on the introduction of a new dynamic component configuration management engine, life cycle management and a new readings engine for Hydra - I need to have continuous testing.
Good way to find deadlocks too, other than the two methods I do when I want to formally verify the system is good:
1. Draw an interaction graph to know who holds what locks (so far I have a roughly good idea that all locking is uni-directional)
2. There are actually tools for this (in the case you missed point 1), JConsole has deadlock detection (mutual exclusions are the ones I care to find)
https://media.licdn.com/dms/image/v2/D4D22AQEUl6dumkojiw/feedshare-shrink_1280/B4DZsTcn6RJ8As-/0/1765557830501?e=1767225600&v=beta&t=fv7UVzuhKfcWkGzFKdqtlwnRz-U9piE4TbXMB6M3JCg
I went to university but clearly remember spending nights teaching myself stuff that I enjoyed (and failing modules because of it because it took up my time).
There was maybe one course, on compilers that I really enjoyed, but everything else was maybe a little bit "eh". The networking course was underwhelming, I knew everything before taking it and it never taught anything practical IN networking either.
It's hard for me to give an unbiased view but I partially have seen "both worlds", but now I get to see how others have done without it.
View quoted note โ