Notes on distributed computing