I upgraded my TS140 with new motherboard (B250), CPU (i7-7700K), power supply, and cooler. Here are some notes:

1. Standard MicroATX MB can be installed perfectly.

2. To conveniently connect SATA cables, it’s better to choose a MB with upward (instead of sideward) SATA connectors.

3. To connect the power front panel on TS140, refer to:
(1) the pins for TS140: https://forums.lenovo.com/t5/ThinkCentre-A-E-M-S-Series/ThinkCentre-front-panel-connector-power-audio-and-USB-pinouts/td-p/190651
(2) the system panel connector (F_PANEL) on your new MB.

4. If using tower cooler, be careful of the total height. I use one with 125mm height.

  1. Download intellij-java-google-style.xml from GitHub: https://raw.githubusercontent.com/google/styleguide/gh-pages/intellij-java-google-style.xml
  2. On Mac, IntelliJ Preferences -> Editor -> Code Style -> Java -> (Click “Gear” icon) -> Import Scheme -> Import IDEA code style XML

  1. Disable “duplicated code” detection
    • Settings → Editor → Inspections → General → Duplicated Code
    • (Or better) in the source code, use @SuppressWarnings(“Duplicates”)
    • Ref.: stackoverflow
  2. Show source file structure
    1. From menu: “View” -> “Tool Windows” -> “Structure”
    2. Quick key: CMD + 7
  3. Reformat all codes under a folder: in Project view, select the folder, then Code -> Reformat Code

This is reading notes on Professional C++ by Marc Gregoire.

  1. In switch statement, expression must be integer type.
    1. Why can’t be string? Because C++ does not recognize string as a type. Ref:
      1. stackoverflow.com
      2. llvm.org
      3. hbfs.wordpress.com
  2. Array initialization
    1. in C style:
      1. int myArray[3] = {0}; // all 0
      2. int myArray[3] = {1}; // first 1, other two 0
      3. int myArray[] = {0,1,2}; // an array of 3 elements, [0;1;2]
    2. in C++ style:
      1. array<int, 3> myArray = {0, 1, 2}
    3. For array of variable length, use vector
  3. Range-based for loop
    1. for (int i : myArray)
  4. __func__ is implicitly declared (i.e. can be used as function name directly inside of a function) as:
    1. static const char __func__[] = “func-name”;
  5. Alternative function syntax (with trailing return type):
    1. auto func(int i) -> int // {…}
  6. Function return type deduction (use compiler to figure out return type)
    1. auto func(int i) // {…}
    2. all returns should resolve to the same type
    3. in recursive calls, first return must be non-recursive
  7. Type inference
    1. by auto:
      1. auto result = func();
    2. by decltype:
      1. int x = 1; decltype(x) y = 2;
  8. const int i = 1 is not equal to #define i 1
  9. int *j; later *j is called “dereference”
  10. C++ coding style: https://google.github.io/styleguide/cppguide.html
  11. Better only use static_cast (according to Ira Pohl)

This is a free book by Timo Kiander. Below are the main points.


  1. Let mindset grow.
  2. Physically exercise regularly.
  3. Eat healthy foods.
  4. Sleep well:
    1. First find out how much sleep is needed by wake up without alarm


  1. Powerful start of the day
    1. Get up early (and get to bed earlier), and spend the morning time to reach goals
  2. Optimize working rhythm
    1. e.g. work 25 min & rest 5 min; or work 90 min & rest 20 min; or work 52 min & rest 17 min.
  3. Avoid distractions
    1. Set up 2~3 time windows to handle emails and other communications; go to office early (because it is quiet);
    2. Write down ideas and thoughts on a paper for later review
  4. Plan the day in advance
    1. Write down 3 important tasks (and some lower-priority tasks); do not add new tasks

Continue reading

If you don’t want fields such as “[Online]”, “Available: …” appear in IEEEtran bibliography items:

1. Go to installation folder of IEEEtan bst.
(on my Mac OS with Texlive, the folder is /usr/local/texlive/2016/texmf-dist/bibtex/bst/IEEEtran)

2. Backup and then edit IEEEtran.bst, search “FUNCTION XXX” (XXX could be “inproceedings”, “inbook”, etc.), and comment out “format.url output”

3. run “texhash”

4. recompile .bib and .tex files.