Skip to main content

Looking back on my 2021


As of this writing, the COVID-19 pandemic still persists. In Vietnam, people have just passed a horrible time of lockdown, we needed to stay at home for nearly 4 months. I have even got covid infected and spent a quarantine time for more than three weeks.

My balcony garden

More books read

This year, I read 22 books of various kinds. Reading books becomes my habit.

English books

  1. Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People
  2. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win
  3. Leaders Eat Last: Why Some Teams Pull Together and Others Don't
  4. The Tao of Microservices
  5. Software Architecture for Developers: Volume 2

Vietnamese books

  1. Nhân tố Enzyme 
  2. Nếu biết trăm năm là hữu hạn
  3. Đạo giáo
  4. Tâm Thành và Lộc Đời
  5. Lịch sử tư tưởng Nhật Bản
  6. Totto-chan bên cửa sổ
  7. Thiền sư và em bé 5 tuổi
  8. Swiss Made
  9. Suối Nguồn
  10. Hạnh Phúc và May Mắn
  11. Một đời quản trị
  12. Con chó nhỏ mang giỏi hoa hồng
  13. Cách nuôi dạy những đứa trẻ dễ cáu giận, khó bảo
  14. Muôn kiếp nhân sinh
  15. Fear: Trump Ở Nhà Trắng
  16. Dấu chân trên cát
  17. Biết chính mình

Tech Lead at UMB Solution (ubitec)

Tech Lead was my official job title at ubitec. I have worked closely with two teams (7 developers in total) for developing two products ubichat and ubibot. My responsibilities were divided into three following roles:

- Software engineer: joined teams to implement/solve several challenging problems

- Technical consultant: for developers, Product Owners, Product Managers, and customers.

- Mentor: grew the teams in both technical skills and soft skills

Mental care

In my spare time, I enjoyed reading books and watching videos. I have been doing "meditation" in ... every moment in my life (no kidding 😊)

The following was my favorite 2021 Youtube channels:

- The Quoc Khanh Show Premium (TQKS Premium)

- Bar stories - Dustin On The Go

- Johnny Trí Nguyễn

Making life easier

This was a tough year due to COVID, however fortunately I could get my car driving license and buy a new house.

---

Happy new year, 2022!

Comments

Popular posts from this blog

Sharing a virtualenv across several Python projects using Pipenv

There is a standard library for all projects in Python. However, several projects don’t always have the same dependencies all the time. That is where virtual environments come to play. You can follow this official document to use two separated tools  virtualenv and pip to  fulfill that need. My preferred alternative is to use pipenv . Pipenv is easy to use and convenient. The following are my steps to make a shared virtualenv for my all projects which requires the same dependencies. Step 1. Create an isolated virtualenv. python -m venv my-shared-env Step 2. Create a symbolic link to the created virtualenv. cd project_1 ln -s ~/.local/share/virtualenvs/my-shared-env .venv I have encountered the following issue at step 1. FileNotFoundError: [Errno 2] No such file or directory: '{my_project_path}/.venv/bin/pip': '{my_project_path}/.venv/bin/pip' The root cause was I tried to create virtualenv by running pipenv install and renaming the generated virtualenv to ...

Managing JAR files with Apache Maven

Apache Maven (Maven) is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. Why Maven? Let’s learn about the Maven’s history here https://maven.apache.org/background/history-of-maven.html to understand why Maven is created. There are a lot of useful things that we should use Maven. In my opinion, the most important thing is that Maven solves the problems with managing jar files. It centralizes these files in one place and it is easy to use by declaring dependencies in a xml file (pom.xml).  Using Maven to manage JAR files Firstly, I would like to give you an example about using some JAR files without Maven.  In my project, I need some JAR files such as SNMP4J.jar, jta26.jar, jgraphx.jar, etc… so I had to search them on the Internet with visiting a lot of websites, download and add these files into my proje...

Strategy Design Pattern

For example, I have a program with an Animal abstract class and two sub-classes Dog and Bird. I want to add new behavior for the class Animal, this is "fly".  Now, I face two approaches to solve this issue: 1. Adding an abstract method "fly" into the class Animal. Then, I force the sub-classes should be implemented this method, something like: public abstract class Animal{ //bla bla public abstract void fly(); } public class Bird extends Animal{ //bla bla public void fly(){ System.out.println("Fly high"); } } public class Dog extends Animal{ //bla bla public void fly(){ System.out.println("Cant fly"); } } 2. Creating an interface with method "fly" inside. The same issue to an abstract class, I force the classes these implement this interface should have a method "fly" inside: public interface Flyable{ public void fly(); } public class Bird implements Flyable{ //bla bla public void fly(){ System.out.pr...

Junit - Test fails on French or German string assertion

In my previous post about building a regex to check a text without special characters but allow German and French . I met a problem that the unit test works fine on my machine using Eclipse, but it was fail when running on Jenkins' build job. Here is my test: @Test public void shouldAllowFrenchAndGermanCharacters(){ String source = "ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ"; assertFalse(SpecialCharactersUtils.isExistSpecialCharater(source)); } Production code: public static boolean isExistNotAllowedCharacters(String source){ Pattern regex = Pattern.compile("^[a-zA-Z_0-9_ÄäÖöÜüß áÁàÀâÂéÉèÈêÊîÎçÇ]*$"); Matcher matcher = regex.matcher(source); return !matcher.matches(); } The result likes the following: Failed tests: SpecialCharactersUtilsTest.shouldAllowFrenchAndGermanCharacters:32 null A guy from stackoverflow.com says: "This is probably due to the default encoding used for your Java source files. The ö in the string literal in the J...

The HelloWorld example of JSF 2.2 with Myfaces

I just did by myself create a very simple app "HelloWorld" of JSF 2.2 with a concrete implementation Myfaces that we can use it later on for our further JSF trying out. I attached the source code link at the end part. Just follow these steps below: 1. Create a Maven project in Eclipse (Kepler) with a simple Java web application archetype "maven-archetype-webapp". Maven should be the best choice for managing the dependencies , so far. JSF is a web framework that is the reason why I chose the mentioned archetype for my example. 2. Import dependencies for JSF implementation - Myfaces (v2.2.10) into file pom.xml . The following code that is easy to find from  http://mvnrepository.com/  with key words "myfaces". <dependency> <groupId>org.apache.myfaces.core</groupId> <artifactId>myfaces-api</artifactId> <version>2.2.10</version> </dependency> <dependency> <groupId>org.apache.myfaces.core<...