Vuong D. Nguyen

Welcome to my profile page. Thank you for visiting. Hover the mouse cursor over to an image or a video and more information will slide up. There is one large video in the middle that will take time to load and then will auto play.

I graduated from CSULB with a BS and MS in computer engineering. Topics that are explored on this website are 1. cloud and distributed computing, 2. client-server programming, 3. embedded system & robotics, 4. tree structure computation

Table of Contents

Demo Architecture Files & Link

Distributed Computing, Cloud Computing

The Covid-19 pandemic was a sudden event that forced everyone to react by quickly pivoting their business model in order to remain in operation. How can an in-person after school program continue to provide high quality interaction between teacher and student when a distance comes in between the two groups?

The solution is to create a web-based canvas modeling tool that can be used by physically and temporally distributed entities. The web-based canvas modeling tool uses core web technologies ( HTML 5, CSS, Javascript, jQuery, JSON ) to build the website, which has a GUI for control and uses asynchronous IO to partition the GUI into sections of data.

Newer web technologies ( Web Sockets, Web RTC, Async IO, and Web Storage ) were used to give the website real time capabilities to capture and share system state with all peers who are in the same virtual room.

A central signaling server spawned and managed multi-threads and each thread has the ability to perform encrypted network IO using SSL_read() and SSL_write(). Firewall and forwarding rules and built in DDoS mitigation provided a front line barrier against bot nets and only allowed quality connections to enter.

Spiral and parallel build development process was used to build multiple sub-system and this resulted in a new feature being delivered every 2 weeks.s

Click on the red, rounded bubble for more information.
  • Signaling Server Behind Secured Network
  • Multi-Threaded + Real Time
  • State Storage
  • BSD Socket, SSL, Web Socket, JSON
  • HTML 5 Canvas
search and sort

1.Signaling server manages threads and establishes rules for communication using shared memory and synchronization using semaphore. SSL encryption, firewall rules, and Ubuntu built-in UFW prevented DDoS from bot nets.

2.Multi-threaded + Real Time using timers and events to update state of virtual entities, which results in a consistent state among all computing nodes.

3.State storage PHP and mySql saves context of threads to allow resumption of computation at a later time line.

4.BSD Socket, SSL, Web Socket, JSON serves as network interface for discovering peers and encrypted, serial communication across multiple, diverse networks.

5. HTML 5 canvas served as HMI between the signaling server and other distributed and peers.

Click on the red, rounded bubble for more information.

Description Architecture Files & Link

chevy corvette
Web Socket Server Architecture

A website is primarily used by many busineses as a tool to market and broadcast the physical tools and services that is offered by the business. The images and content displayed onto a website is static. Each request that is sent by a website is either a GET or POST request, which means that HTTP header information must be sent everytime a request is made. When combined with BSD sockets and SSL operations, the advancement of networking technology and the programming constructs of Javascript can be used to turn a website into a computing machine that can help the user complete complex tasks. A Web Socket server was built that understands the Web Socket protocol. The threads of the server are responsible for parsing and assembling control and data bits, generating a web socket client key, upgrading the protocol from HTTP(s) to Web Socket, and then keeping and maintaining the connection to handle future requests.

A Web Socket (WS) server was built that conforms to the standards set by the IETF. An SSL certificate was install onto the WS server to encrypt data and logical operators parsed the data frame into control and data sections.

Multiple threads work together to parse a received WS frame. When a WS frame arrives, a thread parses and then unmasks the payload into individual control and data sections. A state based procedure will invoke several sub-procedures that allocates the exact amount of memory space needed to store the received data.

Before sending a frame of data, multiple threads work together to assemble the control and data bits into a WS frame. Pipline control flow allowed multiple control bits to be calculated and then assembled by an assembler thread. A sender thread will send the WS frame to a web page.

The abstraction of the web socket protocol is handled by the WS server and the abstraction of network details by cloud computing will see a website being transformed from a simple tool into a tool that helps an end user complete complex task. The WS server can be a sub-system within a larger solution that supports live streaming audio and video applications, a game server, a web based HPC platform, augmented reality, and IoT.

Click on the red, rounded bubble for more information.
  • Signaling Server Behind Secured Network
  • Multi-Threaded + Real Time
  • State Storage
  • BSD Socket, SSL, Web Socket, JSON
  • HTML 5 Canvas
search and sort

1.Secured connection using SSL certificate. An upgrade handshake will allow HTTPS to be converted to the Web Socket Protocol.

2.Multi-threaded + Real Time using timers and events to update state of virtual entities, which results in a consistent state among all computing nodes.

3.State storage PHP and mySql saves context of threads to allow resumption of computation at a later time line.

4.BSD Socket, SSL, Web Socket, JSON serves as network interface for discovering peers and encrypted, serial communication across multiple, diverse networks.

5. HTML 5 canvas served as HMI between the signaling server and other distributed and peers.

Click on the red, rounded bubble for more information.

Description Architecture Files & Link

chevy corvette
Web Based CMS

At Code Ninjas Palos Verdes, we have an excess of 200+ students and 6+ full time staff members ( Code Sensei and Steam Sensei ). An Excel sheet can be used to manully store, organize, and manage the profile of each student and Code and Steam Sensei. However, an Excel sheet is a single point of failure and only has one access point. Performing complex operations on Excel can only be completed by a staff member who has studied and practiced Excel operations, which is a limiting factor of Excel when considering that students and staff members don't have the time to practice Excel operations.

A solution that is to be developed must be able to manage a large set of resources, will have multiple access points, and will abstract complex operations with use cases so that all levels of experience can use the tool to complete a task.

A web-based CMS was developed that had multiple access points and a GUI to abstract complex mySQL operations. Instead of manually storing, organizing and managing the data of each student and staff member, a mySQL database was integrated with the website to simplify and streamline the process of resource management.

The use of async IO, such as AJAX, give the website the ability to load multiple resources from dstributed servers.

The Sensei and Student CMS reduced the number of steps needed to complete complex tasks, which resulted in more work being completed per day when compared to the previous approach of using an Excel sheet.

Click on the red, rounded bubble for more information.
  • Signaling Server Behind Secured Network
  • Multi-Threaded + Real Time
  • State Storage
  • BSD Socket, SSL, Web Socket, JSON
  • HTML 5 Canvas
search and sort

1.Secured connection using SSL certificate. An upgrade handshake will allow HTTPS to be converted to the Web Socket Protocol.

2.Multi-threaded + Real Time using timers and events to update state of virtual entities, which results in a consistent state among all computing nodes.

3.State storage PHP and mySql saves context of threads to allow resumption of computation at a later time line.

4.BSD Socket, SSL, Web Socket, JSON serves as network interface for discovering peers and encrypted, serial communication across multiple, diverse networks.

5. HTML 5 canvas served as HMI between the signaling server and other distributed and peers.

Click on the red, rounded bubble for more information.

Demo Architecture Files & Link

Embedded Systems & Robotics

Field Programmable Gate Array (FPGA) is rarely associated with video games. Software video games can be made using the Unified Modeling Language (UML) and high level languages such as the Extensible Hypertext Markup Language (XHTML), Cascading Style Sheets (CSS), Javascript, and jQuery; however, FPGA video games require the building of complex hardware. The goal of this project is to create an FPGA video game by combining UML and digital design.

There are advantages to starting from the hardware level such as having more control, thus giving more freedom to create design and functional specifications. The disadvantages include creating device drivers. By using the Rational Unified Process (RUP) as the development process, a Duck Hunt FPGA Game is created that proves how software video game development is different compared to FPGA game development.

Click on the red, rounded bubble for more information.
  • Signaling Server Behind Secured Network
  • Multi-Threaded + Real Time
  • State Storage
  • BSD Socket, SSL, Web Socket, JSON
  • HTML 5 Canvas
search and sort

1.Signaling server manages threads and establishes rules for communication using shared memory and synchronization using semaphore. SSL encryption, firewall rules, and Ubuntu built-in UFW prevented DDoS from bot nets.

2.Multi-threaded + Real Time using timers and events to update state of virtual entities, which results in a consistent state among all computing nodes.

3.State storage PHP and mySql saves context of threads to allow resumption of computation at a later time line.

4.BSD Socket, SSL, Web Socket, JSON serves as network interface for discovering peers and encrypted, serial communication across multiple, diverse networks.

5. HTML 5 canvas served as HMI between the signaling server and other distributed and peers.

Click on the red, rounded bubble for more information.

Demo Architecture Files & Link

Search & Sort Audio Player

Sets, unions, and subsets are powerful tools to organize and combine data to create front-end only applications. Searching and sorting was used to bring together data sets and this group of data made it easy to analyze and interpret the data points.

A simple audio player was created and it has the the ability to filter songs by genre to create a playlist. This simple audio player highlights the power of using arrays, looping, and array manipulating to create a front end only visualization of the application of sets, unions, and subsets.

Click on the red, rounded bubble for more information.
  • Signaling Server Behind Secured Network
  • Multi-Threaded + Real Time
  • State Storage
  • BSD Socket, SSL, Web Socket, JSON
  • HTML 5 Canvas
search and sort

1.Signaling server manages threads and establishes rules for communication using shared memory and synchronization using semaphore. SSL encryption, firewall rules, and Ubuntu built-in UFW prevented DDoS from bot nets.

2.Multi-threaded + Real Time using timers and events to update state of virtual entities, which results in a consistent state among all computing nodes.

3.State storage PHP and mySql saves context of threads to allow resumption of computation at a later time line.

4.BSD Socket, SSL, Web Socket, JSON serves as network interface for discovering peers and encrypted, serial communication across multiple, diverse networks.

5. HTML 5 canvas served as HMI between the signaling server and other distributed and peers.

Click on the red, rounded bubble for more information.

Demo Architecture Files & Link

chevy corvette
Web High Performance Computing

High performance computing ( HPC ) works on a dataset that is composed of hundreds of thousands to millions or billions of data points. A server farm is needed to handle such as large data set.

A web based HPC can be use an an alternate approach to the expensive server farm. Web High Performance Computing uses crowdsourcing to allow websites to server as computing machines.

A central server is responsible for the partition and distribution of a large data set into subsets. A web browser registers itself with the central server. All accepted TCP/IP connections will then be assigned a Net IO thread. The communcation protocol is Web Sockets and the data format is JSON. The web-based high performance computing can be used to supplement the server farms that are found in HPC. The Ubuntu OS was used because it has built in DDoS protection mechanism that serve as a front line defense against bot nets.

Click on the red, rounded bubble for more information.
  • Signaling Server Behind Secured Network
  • Multi-Threaded + Real Time
  • State Storage
  • BSD Socket, SSL, Web Socket, JSON
  • HTML 5 Canvas
search and sort

1.Signaling server manages threads and establishes rules for communication using shared memory and synchronization using semaphore. SSL encryption, firewall rules, and Ubuntu built-in UFW prevented DDoS from bot nets.

2.Multi-threaded + Real Time using timers and events to update state of virtual entities, which results in a consistent state among all computing nodes.

3.State storage PHP and mySql saves context of threads to allow resumption of computation at a later time line.

4.BSD Socket, SSL, Web Socket, JSON serves as network interface for discovering peers and encrypted, serial communication across multiple, diverse networks.

5. HTML 5 canvas served as HMI between the signaling server and other distributed and peers.

Click on the red, rounded bubble for more information.