Skip to main content

About me

I moved to write on my own hosted blog at MindfulTec. 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

[Snippet] CSS - Child element overlap parent

I searched from somewhere and found that a lot of people says a basic concept for implementing this feature looks like below: HTML code: <div id="parent">  <div id="child">  </div> </div> And, CSS: #parent{   position: relative;   overflow:hidden; } #child{   position: absolute;   top: -1;   right: -1px; } However, I had a lot of grand-parents in my case and the above code didn't work. Therefore, I needed an alternative. I presumed that my app uses Boostrap and AngularJs, maybe some CSS from them affects mine. I didn't know exactly the problem, but I believed when all CSS is loaded into my browser, I could completely handle it. www.tom-collinson.com I tried to create an example to investigated this problem by Fiddle . Accidentally, I just changed: position: parent; to position: static; for one of parents -> the problem is solved. Look at my code: <div class="modal-body dn-placeholder-parent-position&quo

Regex - Check a text without special characters but German, French

Special characters such as square brackets ([ ]) can cause an exception " java.util.regex.PatternSyntaxException " or something like this if we don't handle them correctly. I had met this issue. In my case, my customers want our application should allow some characters in German and French even not allow some special characters. The solution is that we limit the allowed characters by showing the validation message on GUI. For an instance, the message looks like the following: "This field can't contain any special characters; only letters, numbers, underscores (_), spaces and single quotes (') are allowed." I used Regular Expression to check it. For entering Germany and French, I actually don't have this type of keyboard, so I referred these sites: * German characters: http://german.typeit.org/ * French characters: http://french.typeit.org/ Here is my code: package vn.nvanhuong.practice; import java.util.regex.Matcher; import java.util

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 5 + 4 = 4

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<

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