Distributed Computing Notes