Jiawei Wang's Journal

Jiawei Wang

Team: Coding

Write Up Book: Lean Software Development: An Agile Toolkit

About Jiawei Wang

  • LinkedIn
  • Github

  • As a CS student that will graduate from NYU and begin my career this summer, I'm having passion in all kinds of knowledge that will help me to become a qualified software engineer in the future. For example, the knowledge of the full developement cycle and cooperation, the knowledge about workflow and communication, etc.

    Week Notes

    Week 3

    This week me and Jayesh Mhatre are assigned the task "Introducing mypy to coding team", our main task is to show what is mypy and why using mypy to other python coders, and teach team to add mypy style code to their python code.

    Week 4

    This week before the class, we met professor in the morning to discuss what should we do in the mypy tasks. The professor told us that we need to create a webpage and write introductions on how to install mypy, what is mypy and why using mypy. So this week I tried to install mypy on my laptop, and successed after struggling in some problems.

    Week 5

    This week I created a webpage about mypy installation on mac, although this webpage is quite simple (which means if you follow the introduction, you can install mypy correctlly in 5 minutes), I struggled a lot when installing. For example, firstly I tried to install python 3 on my computer, and an error occured: the system told me to install a file called lzma.h first. Then I found out that I need to install brew first to install lzma.h. When I tried to install brew using code like this:

    ruby -e "$(curl -fsSL https: // raw.githubusercontent. com / Homebrew / install / master/install)" < /dev/null 2> /dev/null.

    The system told me that "curl failed to verify the legitimacy of the server and therefore could not establish a secure connection to it. To learn more about this situation and how to fix it, please visit the web page mentioned above."

    I solved this problem using curl with -k option. After that, I installed mypy using "brew install mypy" command. After did all these things, I finally found out that there is a much simpler way to install mypy, which I've showed in the webpage. Looks like I wasted a lot of time :)

    Week 6

    This week our team begin to study mypy technology.

    Week 7

    Based on what I studied last week, this week I created a webpage about what is mypy. It haven't been completed, will add more information to this page later.

    Week 8

    Spring break.

    Week 9

    Start to add type hints and type annotations to python code, finally I found out that I don't have permission to commit changes in util.

    Week 10

    After finishing adding type hints and type annotations to all python files, I did several tests to make sure the code works fine on machine that have not installed mypy (we added expection to make sure the mypy code won't influent python code). There was a time that I tried to add python 2 style mypy code to assure the code can also work on python 2 machines, but finally I gave up, because I find out that those python files imports packages that only works in python 3. We commit all changes in 2 hours. It look like we changed the whole world.

    Week 11

    Add more mypy code to make our work perfect.

    Week 12

    Change the introduction of mypy, add some basic code tutorial.

    Week 13

    Keep updating mypy code for python files while the python team are continuously upload new code.

    Week 14

    Begin to help test team to do unit tests.

    Week 15

    Begin to write review for the book I need to read.