blog2019.10.31