liuduan's blog