Skip to main content

About me

I moved to write on my own hosted blog at nguyenvanhuong.vn. Visit the website for new posts.

I am a software developer living in Vietnam. I started my career at Axon Active Vietnam, where I learned the fundamentals of building web enterprise systems with Java. After nearly five years of working with the low-code platform Axon.ivy, I decided to change my path and joined ubitec. There, I began working with Python to build an AI chatbot using Rasa. However, my company then rotated me to another team to build a chat platform using the open-source project Rocket.Chat, turning me into a full-time JavaScript developer for nearly another five years.

After spending several years in software development, I had the opportunity to gain valuable experience in various aspects of the field. It became clear to me that engineering management tasks often presented challenges that needed to be overcome. With this in mind, I aspired to become an active participant and concentrate on resolving any issues within my company's software development processes, particularly those related to engineering management.

The name of my blog, "vhandit", is short for "Van Huong and IT". 

Follow me on

Comments

  1. Bạn có thể add subscribe option trong website này để mình nhận được tin nhắn, email khi bạn post bài viết mới được không.

    Cám ơn bạn nhiều.

    Tuyền

    ReplyDelete
    Replies
    1. Cảm ơn ý kiến của @Tuyen Nguyen nhé. Tôi đã thêm gadget "Follow by Email" vào site. Ngoài ra bạn cũng có thể dùng http://feedly.com/. ;)

      Delete
  2. A cài plug in hiển thị code cho dễ đọc vs a

    ReplyDelete
    Replies
    1. Thank bạn nhé! Hazz...blog đang sử dụng Syntaxhighlighter, có thể bị vấn đề ở một số browser rồi, tôi kiểm tra lại xem sao. :(

      Delete
    2. xem được rồi, mới xem profile linkedin thì ra là bằng tuổi -.-

      Delete
  3. em cũng mới tập viết blog: thachleblog.com. Nếu được a ghé đọc góp ý với :D

    ReplyDelete
  4. bạn có thể viết thêm các bài review về các framework hay công nghệ mới của java không , JSF mình thấy ít cty dùng lằm mặc dù nó là con đẻ của JAVA

    ReplyDelete

Post a Comment

Popular posts from this blog

Math fundamentals and Katex

It was really tough for me to understand many articles about data science due to the requirements of understanding mathematics (especially linear algebra). I’ve started to gain some basic knowledges about Math by reading a book first. The great tool Typora and stackedit with supporting Katex syntax simply helps me to display Math-related symbols. Let’s start! The fundamental ideas of mathematics: “doing math” with numbers and functions. Linear algebra: “doing math” with vectors and linear transformations. 1. Solving equations Solving equations means finding the value of the unknown in the equation. To find the solution, we must break the problem down into simpler steps. E.g: x 2 − 4 = 4 5 x 2 − 4 + 4 = 4 5 + 4 x 2 = 4 9 x = 4 9 ∣ x ∣ = 7 x = 7  or  x = − 7 \begin{aligned} x^2 - 4 &= 45\\ x^2 - 4 + 4 &= 45 + 4\\ x^2 &= 49\\ \sqrt{x}&=\sqrt{49}\\ |x| &= 7\\ x=7 &\text{ or } x=-7 \end{aligned} x 2 − 4 x 2 − 4 + 4 x 2 x ​ ∣ x ∣ x = 7 ​ = 4 5 = 4 ...

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...

Styling Sort Icons Using Font Awesome for Primefaces' Data Table

So far, Primefaces has used image sprites for displaying the sort icons. This leads to a problem if we want to make a different style for these icons; for example, I would make the icon "arrow up" more blurry at the first time the table loading because I want to highlight the icon "arrow down". I found a way that I can replace these icons with Font Awesome icons. We will use "CSS Pseudo-classes" to achieve it. The hardest thing here is that we should handle displaying icons in different cases. There is a case both "arrow up" and "arrow down" showing and other case is only one of these icons is shown. .ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s { background-image: none; margin-left: 5px; font-size: 1.1666em; position: relative; } .ui-sortable-column-icon.ui-icon.ui-icon-carat-2-n-s:not(.ui-icon-triangle-1-s)::before { content: "\f106"; font-family: "FontAwesome"; position: ...

Building Axon.ivy Projects on Bitbucket Pipelines

Read me  if you don't know what Axon.ivy (Ivy) is. Motivation -  Ivy projects are designed to be built on a continuous integration (CI) server like Jenkins - Today, Bitbucket supports for CI with Bitbucket Pipelines - We're using Bitbucket. Then, why not? It must be very cool and convenient for us if we can centralize our CI and VCS (version control system) tools in one place. Here is an approach We have to use a maven plugin called project-build-plugin  to build ivy projects. This plugin requires an instance of Ivy engine during building time. Bitbucket Pipelines allows us to specify our own docker image as a build environment. What we need to do  is to prepare our docker image with needed stuffs such as JDK, Maven, Ivy engine, etc. Step 1. Prepare Docker images For testing purpose, I already created two docker images: Maven and Axon.ivy engine. They are now available on Docker Hub This image for Maven using Oracle JDK 8 This image for Axon.iv...

Java Core - Top 10 Questions Every Developer Should Know

#RandomlyPickedByMe What is the difference between Javascript and Java? Difference between StringBuilder and StringBuffer? Why do I get "SomeType@a3fde" when I print my code? Why is String immutable? Why "equals" method when we have "==" operator? Is List<Dog> a subclass of List<Animal>? Why shouldn't we use raw type? Is Java “pass-by-reference” or “pass-by-value”? What's the advantage of a Java enum versus a class with public static final fields? Why "double x = 0.1 + 0.2" and result of print(x) is 0.30000000000000004? 1. What is the difference between Javascript and Java? Holy crap! (Vietnamese: Thế quái nào lại có câu hỏi ngớ ngẩn vậy chứ?) "Java and Javascript are similar like Car and Carpet are similar." - Greg Hewgill (on StackOverflow) 2. Difference between StringBuilder and StringBuffer String is immutable. StringBuilder and StringBuffer are mutable. StringBuffer is thread-safe. String...