All my side projects are shown here. Most source codes are available on GitHub.


"Castle Age Monster Code Opener" is a browser extension for both Google Chrome and Mozilla Firefox, which allows user to convert monster codes and open them easily.


  • Supports CA on both Facebook and web3(4).
  • Converts monster codes to URLs, then open them in new pages.
  • Converts monster codes to URLs, then copy them to clipboard.
  • Supports BATCH processing!

Chrome Firefox Project page »


14-Glassy is a child theme derived from the WordPress 2014 official one. Both grid and slider layouts are fine-tuned for mobile devices.

View details » Project page »

Celebrity Quotes Generator

Celebrity Quotes Generator, "CQG" allows users uploading photo and adding custom words to make their own quotes.

View details »

Docker Practice


About This Book

Docker Practice teaches readers how to create, deploy, and manage applications hosted in Docker containers. Developers will learn how to package applications in containers, including specific techniques for testing and distributing applications.

Table of Contents

  1. Foreword
  2. Introduction
  3. Basic Concept
  4. Installation
  5. Images
  6. Containers
  7. Repositories
  8. Data Management
  9. Networking
  10. Advanced Networking
  11. Examples
  12. Security
  13. Writing Dockerfiles
  14. The Underlying Technologies
  15. Appendix I: Commands
  16. Appendix II: Official Images
  17. Appendix III: Resources

HTTP API Design Guide


About This Book

This guide describes a set of HTTP + JSON API design practices. Our goals here are consistency and focusing on business logic while preventing design bikeshedding. Four parts are discussed in this book, including foundation, requests, responses and artifacts.

Table of Contents

  1. Foreword
  2. Foundations
    1. Require TLS
    2. Version with Accept Header
    3. Support Caching with ETags
    4. Trace Requests with Request IDs
    5. Paginate with Ranges
  3. Requests
    1. Return Appropriate Status Codes
    2. Provide Full Resources where Avaiable
    3. Accept Serialized JSON in Request Bodies
    4. Use Consistent Path Formats
    5. Downcase Paths and Attributes
    6. Support Non-ID Dereferencing for Convenience
    7. Minimize Path Nesting
  4. Responses
    1. Provide Resource UUIDs
    2. Provide Standard Timestamps
    3. Use UTC Times Formatted in ISO-8601
    4. Nest Foreign Key Relations
    5. Generate Structured Errors
    6. Show Rate Limit Status
    7. Keep JSON minified in All Responses
  5. Artifacts
    1. Provide Machine Readable JSON Schema
    2. Provide Human Readable Documents
    3. Provide Executable Examples
    4. Describe stability