John | 曲

Reflection in Transition

Attraction Radar

John Qu / 2020-08-05

Here is my Attraction Radar, powered by, which use my Google Sheet file.

Screen Shot 2020-08-07 at 21.05.24

The four quarters are:

Screen Shot 2020-08-07 at 21.06.37 Screen Shot 2020-08-07 at 21.06.22 Screen Shot 2020-08-07 at 21.06.53 Screen Shot 2020-08-07 at 21.07.07

Item expanded: Screen Shot 2020-08-07 at 21.07.52



The function of Jaw System

I had seen the working process of jaws on Tetra Pak's TBA 19 and TBA 22 filling machines when I was in the dairy equipment business. I see its general purpose, but I don't know the detailed functional time sequence in two collaborating circles of left-hand and right-hand jaws. I am studying the servo motor function in the drive unit of Tetra Pak's A3/Flex filling machine. So I must clarify what task is performing in each stage as accurate as in machine degree. I noticed an acceleration chart on a report slide from Tetra Pak. It tells me some information about what it does by comparing it with video from youtube. It shows what is the relation of the left-hand jaw and right-hand jaw by comparing it with itself of moving 180 degrees aside. I have measured that chart with LibreCAD and regenerated the curve with SymPy. But I don't think I have understood enough about the functions until my cam profile runs on a real A3/Flex filing machine smoothly. I will try to find and catch opportunities in industry here and there.

SymPy for Kinematics

I deduced equations in the kinematics of mechanism in Tetra Pak's A3/Flex filling machine with SymPy. I didn't dive into SymPy, only using it as a calculator with a script. I wonder whether there is a similar symbolic calculation in Julia, and it seems the answer is ‘yes.’ I will try some switching work when I finished the first round of refactoring.

Vector Method in Kinematics

I have an analysis problem of rocker-slider four-bar mechanism in the Tetra Pak A3/Flex filling machine. I need to know the end position, velocity, and acceleration according to the driving slider and vice verse. In the hacking process of TetraCamThon, I read chapters in the Theory of Machines and Mechanisms (5th). At that time, I took notes on white paper and made notations on it. I would like to write documentation for this project, so I need to make professional drawings and notations.


Restructuring of TetraCamThon

Last year in the TetraCamThon project, I have hacked the motion math functions of the Tetra Pak A3/Flex filling machine's driving servo motor. I thrived on doing it right, and now I am trying to do it well. 1 I would like to make it

  1. alive and long-lived by obeying the open-source guides provided by Github,
  2. revealing my working knowledge about TDD, CI and Refactor by learning the best practices from those veterans’ books, and
  3. showing off the professionalism that I devote.


To restructure TetraCamThon well, I will read these books on refactoring:

  1. Martin Fowler‘s Refactor is the definite book for this topic during the last twenty years. It is a mainly a reference book of listing the method of refactor. I bought 重构(第2版)改善既有代码的设计 on, and used to borrow one from library. It is translated by Jeff Xiong, a former thoughtworker who had blogged twelve years weekly. The canonical form of this book is its web site or web edition.
  2. Michael Feathers’ Working Effectively with Legacy Code (2005, Prentice Hall Professional Technical Reference) is a tutorial for beginners who need some step by step practices. The chm and pdf files was downloaded from 修改代码的艺术 was borrowed from library.
  3. William C. Wake's Refactoring Workbook (2003, Addison-Wesley Professional) contains many exercises to practice refactoring. It will take readers through the learning process.The chm file could be downloaded from 重构手册 could be borrowed from library.

Self-testing code

To restructure TetraCamThon well, I will read these books on self-testing code:

  1. Kent Beck's Test Driven Development_ By Example (2002, Addison-Wesley Professional) is the inventor's reflection on this topic which shows the implementation of xUnit in Python in its second section. The chm, pdf, and epub files could be downloaded from 测试驱动开发——实践与模式解析 was borrowed from library.
  2. Jeff Langr, Andy Hunt, Dave Thomas’ Pragmatic Unit Testing in Java 8 with JUnit (2015, The Pragmatic Programmers) is 200 pages long, and is in the series of pragmatic starter kits. The pdf file could be download from 单元测试之道 Java 版:使用 JUnit was borrowed from library.
  3. James A. Whittaker, Jason Arbon, Jeff Carollo's How Google Tests Software (2012, Addison Wesley) tells how a relatively few testing engineers helps many develop engineers write their own testing code. The pdf and epub files could be downloaded from I bought Google软件测试之道 from, and it could be borrowed from library.
  4. David Sale's *Testing Python_ Applying Unit Testing, TDD, BDD and Acceptance Testing* (2014, Wiley).
  5. I have read the first half of Test-driven development with Python on and Harry Percival's Obey the Testing Goat: Using Django, Selenium, and JavaScript website.

Grammar for Documentation

Writing in a simple sentence with simple words is good. However, too simple is not. can tell me what is no good, but I have to write out my own ideas. I have scanned The Elements of Style, English Grammar In Use. I am learning Collins COBUILD English Grammar. I had better read Steven Pinker's The Sense of Style first.


Javascript Tutorial

I didn't learn Javascript when I studied in the course on full-stack technology with Ruby on Rails in Spring 2017. I knew it is widely used in web applications, but I don't need that. Now I am eager to read Martin Fowler‘s book Refactor, which takes Javascript code as examples. I need to know the basics in Javascript, but not need to dig into the subtleties in it, as it has so many platforms, such as jQuery, Node.js, and Vue.js. I found that Prof. Daniel Jackson at MIT gave short introduction pages on JavaScript, which is up to date, and W3C has interactive tutorials on JavaScript.

Economics in OSS

I am doing engineering work on mechanical analysis and software tools. The result is mine, but the effect is ours if it can trigger more work of others. I acknowledged ESR‘s The Cathedral & the Bazaar. I used it to argue with Brad on releasing the FFI in Chinese for public reading. I am running at making TetraCamThon truly usable on Github, so I need to consider the reactions among users. I would read the open-source guide created by Github, and participate in Xia Qingfeng's Module developer's guide to FreeCAD source code, Realthunder's FreeCAD Assembly3, and one add-on of FreeCAD.

ThoughtWorks Insight

I like the tone in the insight blogs of thoughtworkers. They have real projects from customers, and they have the mechanism and ability to write lessons from experience. The ThoughtWorkers’ Insight has catalogs and tags, so I could search by topic or author. I wish I could grow to look similar to them, such as the Insights of Jeff Xiong


Abstraction and Specification for TetraCamThon

I read Prof. Guttag‘s Introduction to Computation and Programming Using Python in 2008. I am rereading it recently in preparing to rewrite the code in TetraCamThon. I noticed that Mr. Guttag has coauthored another book called Program Development in Java - Abstraction, Specification, and Object-Oriented Design. This book is classic, and said to be “parallels the course material closely; it's a good book for background reading.” in the MIT-OCW course “Laboratory in Software Engineering” in 2005. I want to learn the best practices in software engineer, and I could learn Java along with the reading of this book. I borrowed one book on Java from the library and downloaded several books. However, no one asks for my specification now, and the data abstraction seems not so complicated in b-splines. In short, I need not care too much about the topic of specification, requirements, and abstraction, which are common in software engineering. Best practices achieve more effects in practice. I'd better leave it until I joined a team and learn from neighbor engineers. By the way, Prof. Guttag didn't mention this book in his new course, neither in thoughtworkers in their three versions (201320162019) of Reading Radar.

Julia for TetraCamThon

When I search “Numerical Methods in Engineering with Python 3” within site of, I found that MIT is teaching a Introduction to Numerical Methods course with a new language called Julia. It is faster than Python on a large scale of data. My code runs about 20 minutes in some functions. I need to take one eye on it and see if there is a chance to switch to Julia, to change TetraCamThon to TetraCamLia.

Onshape Features

Onshape is the first CAD tool initially in SAAS. I would like to work with them, but they don't have a business in China mainland. When they come, I wish I have been prepared. I will take a tour on the onshape forum and blogs weekly and see if my classmate could help me join their Education Standard Plan. Here are interesting articles: Why We Started From Scratch (Again) In The CAD Business. PTC Snatches Up Cloud CAD Pioneer Onshape. Carl Bass’ Parting Shots: Don’t Just Introduce New Tech; Work on Unsolved Problems. On Time, On Budget, Onshape. Best General-Purpose CAD Software.

Teach Tech to Adults

Although I don't have anything to teach now, I am doing something interesting to show former me. The purpose of doing these TetraCamThon project series is for teaching. Teaching technology is not an easy task that can do naturally. Greg Wilson, a coach in Rstudio, wrote a series of articles on Teaching Tech Together.

FreeCAD Development

I like the discussion in the forum of FreeCAD, and I am in the Github mail list of developers. I would like to build an add-on of cam profile design for FreeCAD later. So I need to keep up with the development of FreeCAD. I will surf through the forum weekly, and read through then translate Xia Qingfeng's Module developer's guide to FreeCAD source code.

FreeCAD Usage

I start modeling with FreeCAD when I was translating FreeCAD For Inventors. If I really commit that FreeCAD has a future in being a platform for open mechanisms, I had better put in enough effort to show its certainty. There were no good enough tutorials and books on FreeCAD now. Still, there are some videos on youtube, developed by developers.

Computation on Data

I have reviewed Prof. Guttag‘s Introduction to Computation and Programming Using Python the first half, until Chapter 12. In the second half, Prof. Guttag talked about computation on data applications. Now I have no subject on data, so I had better put this book down for a while. When I am facing mass data, I will come back. Alternatively, I would like to learn along with my wife.

Concrete Life


Being a Photographer

I like taking photos, but my picture is not touching for the general audience. I read a brochure On Being a Photographer the last winter before taking pictures of my sister-in-law's wedding party. Now I don't have a long term subject, like those I had in the past, such as running people, wedding ceremonies, and playing children.

Convict Conditioning

I couldn't left my arm to wash my face for two month in the summer of 2014 after I blowed myself on a bridge after running one night and blowed under an air conditioner the next morning. I have begun to practice convict conditioning since then. Now I can do 2 sets of 15 close pushups, 2 sets of 10 (both sides) one-leg squats, 2 sets of 5 (both sides) close pullups, 2 sets of 10 hanging straight leg raises, 2 sets of 8 full bridges, and 1 set of 5 half handstand pushups. I have the book Convict Conditioning, and I had better progress step by step.


Road Run in Summer

I recently have the proper training conditions, and I want to make this process a “strong track record of success.” I use a training diagram that I prepared for the 2018 Shanghai marathon, but I found it hard to complete because of the hot weather. I need to figure out a new diagram which is suitable for summer. I am going to read through Pete Pfitzinger's book Faster road racing.


Sense in Numbers

Dr. Wu Jun gives a Math course on, similar to Oxford's Very Short Introductions series. My elder child is approaching his six, and he is studying math apps on the iPad. I wish I could talk with him about the joy and concept in numbers, not just answering his questions. I would do DuckDuckMoose with him and read Young Math Books beforehand.



Migration in Breath

I found it hard to surf in waves of the mind, even that I cannot work and study continuously and effectively in the last winter. So I made a decision that I must learn to be able to live with that wave. I borrowed Swami Lama's Meditation and Its Practice from the library, and practice according to its guidance while residual in Wuhan in this spring 2020.


Live my Life out

I have listened to Wu Zhihong's psychology course on for two or three rounds. Maybe psychoanalysis is not a scientific approach, but it touched my soul and triggered my change. I am living out my own life with the power of action, like when I am a little drunk. Whenever I read paragraphs in his book, I can find some strength.


The Analects of Confucius

Last year I took the course Brand marketing of Mr. Hua Shan on I enjoyed it in reading his book Hua Shan Explains The Analects of Confucius Completely that I borrowed from the library. It tells some reasonings in everyday life in the Chinese culture, which I found to be my basis of feelings when contact with people. I had started to read Prof. Qian Mu's New Explanation of The Analects of Confucius in 2017. But abandoned it with a new task because it is a luxury to read this kind of book as an adult without a job. Now, I have other issues to deal with, so I will hold on to these wishes until I found a job earning money.



Attraction Radar

This is what I adopted after engagement with ThoughtWorks's Technology Radar. I think it might become a proper tool for me to manage my attention. As I will respect my attraction radar, I have read through their Technology Radar and keep an eye on it in the future.


Personal OKRs

OKRs are practical tools for active workers besides KPIs in an organization full of intelligence. I am not in a particular firm, but I want to place myself in the community of open-source CAD software. I need to navigate my story finding the HOW and WHAT from WHY, and need to separate it into objectives and define the SMART vital results. I have seen John Doerr's TED talk on OKRs in Mr. Yu's article about OKRs, and I am reading his book: Measure What Matters - How Google, Bono, and the Gates Foundation Rock the World with OKRs.

On Becoming a Programmer

No way staying at being an amateur, I want to join the roles of Onshape founders and ThoughtWorkers. I would like to read those guidelines as in these books:

  1. Jeff Xiong's Can't Stop - A Software Craftsman's 12 years is the stories behind his amazing blogs. 不敢止步 has been bought at
  2. Andy Hunt's Pragmatic Thinking and Learning_ Refactor Your Wetware (Pragmatic Programmers) (2008, Pragmatic Bookshelf). 程序员思维修炼 has been bought from
  3. Robert C. Martin's The Clean Coder - A Code of Conduct for Professional Programmers (2011, Prentice Hall). 代码整洁之道:程序员的职业素养 has been borrowed from library.
  4. Robert C. Martin's Clean Code - A Handbook of Agile Software Craftsmanship. 代码整洁之道 has been bought at
  5. Dustin Boswell, Trevor Foucher's The Art of Readable Code (2011, O'Reilly Media). 编写可读代码的艺术 is on the bookshelf of
  6. Jeff Xiong's A History of Agile in China . 敏捷中国史话 has been borrowed from library.
  7. Chinese ThoughtWorkers’ 软件开发践行录 : ThoughtWorks中国区文集 has been borrowed from library.
  8. Neal Ford's The productive programmer (2008, O'Reilly Media) is translated by Jeff Xiong, too. 卓有成效的程序员 could be bought at


Structures in Mathematics

If I want to learn the logical part, I need to spend most of my time deducing and solving problems. I have spent half of my study time reading mathematics. I recently heard from Dr. Wu Jun that there are clues in math that act as the bridge between its nature and usages, which doesn't need so much time to learn so much concrete points of knowledge. I had better understand Dr. Wu's course throughout.

Science in Learning

I am entering a new era of engineering software. I need to learn a lot of topics efficiently and effectively. Wan Weigang had gathered his articles about learning science into a book called What is Learning in the End. He has posted a series of articles reporting his new earnings in reading How We Learn: Why Brains Learn Better Than Any Machine… for now. I found some advice valuable about being a pragmatic programmer in the reading radar of thoughtworkers.


Reading Tech Documents

In Dr. Wu Jun's course, Reading and Writing, he proposed reading steps when entering a professional field: 1) Orthodox literature, 2) authoritative reviews and 3) academic monographs. I had better read and learn with such frameworks, rather than by instinct.

Open Source Releasing

I release TetraCamThon with a ReadMe, but I don't know what to include in it. I just looked at what other repositories do. Still, there should have been some code of conduct in releasing an open-source project for public users and contributors, such as Zalando's “How we release open source projects.”

HTML Slide

I like the slides in HTML, such as Xie Yihui's xaringan introduction and Prof. Daniel Jackson‘s JavaScript Overview. Xie said it is easy to construct this kind of slides from Rmarkdown. If I can figure out how to do it in half an hour, I would like to adopt it. Maybe I will try it when I make presentation the next time.

  1. I don't know whether someone else might be interested in this project. I noticed there is one star in this project, which comes from luzpaz, a veteran on the FreeCAD forum.