Published on January 20, 2024
Weekly-004
#Life#Weekly Log#en-US
My Week in Life
This week, photography was my primary focus. I discovered an unfinished task from last year. I had found some old photos in my hometown, taken by my father with an old camera. My task is to repair these photos as many of them are damaged and faded.
I did some research and found some AI tools to repair these photos. Here is the list of tools:
After trying these tools, CodeFormer generated higher quality results. Even though AI has greatly helped us in restoring the original appearance of photos, it cannot 100% accurately reproduce history.
Comparing the results of CodeFormer:

CodeFormer repair comparison 01

CodeFormer repair comparison 02
My Week in Study
MyMind
This week I found an app that fits my collection requirements. It’s called MyMind, which builds an ever-growing collection of personal Bytes. It could be anything like ideas, snippets, images, links, or anything you want to remember. It uses machine learning to maintain all your information and make it searchable for you, so you don't have to worry about organizing it manually.

Mymind screenshot
Now, I can collect something and don’t worry about it being buried in bookmarks.
Prepare for IELTS again
Last year, I did not achieve the goal band that met the visa requirements, because a higher band could increase the total points for the Skilled Work Regional (Provisional) application. So, I started preparing for the IELTS again. I used an app called Quizlet to practice the speaking part. It's similar to Anki, where you can create flashcards by adding a term and a definition.

Anki card
I set the speaking questions as the terms and my answers as the definitions, then review them daily. After trying this for about a week, I feel that my English thinking speed has become faster than before.
My Week in Dev
There isn't much to discuss in development; I didn't contribute significantly to my side projects, I simply fixed some bugs.
Another thing is, when I dived into the under hood of React, I find more details related to the browser, data structure, and performance. An example is why React needs to split the render task.
As we know, Chrome is based on a multi-process architecture. It has a render process, network process, and UI process. Let's focus on the render process first.
The render process is responsible for all the content displayed in a tab. The render process has a main thread that is responsible for rendering and painting tasks, executing JavaScript code, processing HTML and CSS, and calculating the layout of the page. It's worth noting that running complex or long-running JavaScript can block the main thread, resulting in the freezing of the user interface and a poor user experience.
In React, rendering involves running JavaScript. If the application is complex and the component tree is very deep, processing updates can take a long time when they occur. This can block the main thread and freeze the user interface. To resolve this issue, React introduced fiber and a new reconciliation algorithm based on fiber.
React Fiber avoids blocking the main thread by implementing a feature called "time slicing". This means that instead of blocking the main thread for a long time while it updates the components, it breaks the rendering process into small pieces and spreads it out over multiple frames.
React Fiber does this by using a priority system to decide what needs to be rendered first. High priority updates like user input or animation, are processed first, and low priority work like rendering offscreen components can be delayed. In this system, components have a certain amount of time to render and when that time is up, the main thread can be freed to do other things like respond to user interactions. This results in an overall more responsive and smooth user experience.
All discussions about React Fiber relate to the inner workings of a browser, because it runs on the browser.
Oh, I also want to talk about the photography app that I mentioned last week. I decided to take some time to implement it. The first thing is conducting a survey and then drafting a PRD document.