NTM Solutions

Thứ Ba, 7 tháng 11, 2023

Sửa bóng led 220v - Chuyển đổi bóng led 220v thành 12v

01 - Sửa bóng led 220v

Trường hợp bóng led 220v hư mạch led -> thường chỉ hư 1-2 cặp (mỗi cặp là 6v + 6v = 12v)

=> ta dùng cây hàn chì để test từng cặp led -> cặp nào hư thì hàn nối tắt (bóng vẫn sáng nhưng yếu đi 01 chút)


02 - Chuyển đổi bóng led 220v thành 12v

Nối tất cả đầu (+) của từng cặp lại vào dây DƯƠNG của dây nguồn

Nối tất cả đầu (-) của từng cặp lại vào dây ÂM của dây nguồn.


Xem video chi tiết cách làm tại đây:



Thứ Bảy, 30 tháng 9, 2023

Thứ Ba, 18 tháng 7, 2023

Lỗi Bluetooth 5.0 không tìm thấy thiết bị

Lỗi này mình gặp khi gắn USB Bluetooth 5.0 trên windows 10 và muốn kết nối với thiết bị Bluetooth đời cũ.

Cách xử lý:

Control Panel - Troubleshooting - Hardware and Sound - Chọn mục Bluetooth và làm theo hướng dẫn.


Sau khi fix xong - đóng cửa sổ Troubleshooting lại và ngắt tất cả kết nối Bluetooth hiện có trên các thiết bị gần bạn (tránh nhiều thiết bị giành quyền truy cập Bluetooth)

Chủ Nhật, 18 tháng 6, 2023

Đối thoại cùng AI - Nước bắt nguồn từ đâu

Nước bắt nguồn từ nhiều nguồn khác nhau như nước mưa, nước sông hồ, nước ngầm và nước máy ¹². Nguồn nước máy được sản xuất và cung cấp bởi các nhà máy xử lý nước thải hoặc các trạm xử lý nước ¹. Nguồn nước ngầm được khai thác từ giếng khoan hoặc đào ¹. Nguồn nước mưa được thu thập từ các hệ thống thoát nước và được sử dụng cho mục đích tưới tiêu hoặc sinh hoạt ¹. Nguồn nước sông hồ được khai thác từ các con sông và hồ chứa ¹.


Hy vọng thông tin này sẽ giúp bạn hiểu rõ hơn về nguồn nước. Nếu bạn có bất kỳ câu hỏi hoặc yêu cầu gì khác, hãy cho tôi biết nhé.


Source: Conversation with Bing, 6/18/2023

(1) 4 nguồn nước sinh hoạt chính hiện nay, đặc ... - Scimitar. https://bing.com/search?q=ngu%e1%bb%93n+n%c6%b0%e1%bb%9bc.

(2) Nguồn nước (Water Source) là gì? Qui hoạch nguồn nước. https://vietnambiz.vn/nguon-nuoc-water-source-la-gi-qui-hoach-nguon-nuoc-20200213173902209.htm.

(3) 4 nguồn nước sinh hoạt chính hiện nay, đặc ... - Scimitar. https://shop.scimitar.vn/4-nguon-nuoc-sinh-hoat-chinh-hien-nay/.

(4) Nguồn nước mặt là gì? Hiểu sâu hơn về nguồn nước mặt. https://swd.vn/blogs/news/nguon-nuoc-mat-la-gi-hieu-sau-hon-ve-nguon-nuoc-mat.

(5) Tài nguyên nước – Wikipedia tiếng Việt. https://vi.wikipedia.org/wiki/T%C3%A0i_nguy%C3%AAn_n%C6%B0%E1%BB%9Bc.

(6) Vòng đời của nước, The Water Cycle, Vietnamese Completed. https://www.usgs.gov/special-topics/water-science-school/science/vong-doi-cua-nuoc-water-cycle-vietnamese.


Thứ Sáu, 16 tháng 6, 2023

Đối thoại cùng AI - Dò mạch nước ngầm

 

Có nhiều cách để dò mạch nước ngầm nhưng phổ biến nhất là sử dụng máy dò mạch nước ngầm. Máy này sử dụng sóng điện từ để tìm kiếm mạch nước ngầm. Cách sử dụng máy rất đơn giản và ít tốn công sức ¹³.

p/s: mình hiểu nôm na thế này -  dòng nước cũng là dòng các electron nên nếu  chúng di chuyển có hướng (nước chảy) sẽ tạo ra dòng điện (từ) => dựa vào đó để tìm đường nước chảy???


Ngoài ra, bạn cũng có thể sử dụng que dò hoặc dây thép buộc để tìm kiếm mạch nước ngầm. Cách này đơn giản và chi phí thấp hơn so với việc sử dụng máy dò mạch nước ngầm ².

Thứ Năm, 15 tháng 6, 2023

Đối thoại cùng AI - Cách tạo ra nước từ không khí

Bạn có thể tạo ra nước sạch từ không khí bằng một số công nghệ mới. 

Một trong những công nghệ này là tháp nước Warka được sáng tạo bởi Arturo Vittori, một kiến trúc sư người Ý. 

Tháp này có thể giúp thu thập hơi nước ngưng tụ từ không khí và tạo ra 100 lít nước sạch mỗi ngày ¹³.


Ngoài ra, máy tạo nước khí quyển AquaBoy ® Pro II cũng có thể tạo ra tới 15 đến 20 lít nước mỗi ngày “nước có vị ngon tinh khiết” từ không khí ⁴. (công ty này ở Số 15 - 17, đường 57A, KP.9, P.Tân Tạo, Q.Bình Tân, TP.Hồ Chí Minh)

Cái máy tạo nước từ không khí đó đây các bạn:

Hy vọng thông tin này sẽ giúp bạn hiểu hơn về cách tạo ra nước từ không khí.

Thứ Bảy, 4 tháng 3, 2023

Câu hỏi thường gặp với Windows 11 pro 64bit

Phiên bản Windows 11 Pro khác gì so với Windows 11 Home?

Trả lời:

Windows 11 Pro phù hợp với mức cấu hình tối đa cao hơn, nền tảng này được thiết kế để vận hành tốt với 2 CPU, hỗ trợ CPU gồm 128 lõi, có thể phát huy sức mạnh của bộ RAM lên đến 2TB. Ngoài ra, phiên bản Pro còn sở hữu những tính năng không có trên bản Home như: Dynamic Provisioning, Kiosk hay Active Directory/Azure AD.


Quyền lợi khi kích hoạt bản quyền cho Windows 11 Pro?

Trả lời:

Sử dụng Key-online để kích hoạt bản quyền cho Windows 11 Pro, bạn sẽ có thể thoải mái cập nhật các bản cập nhật bảo mật, giúp máy tính của mình an toàn hơn, chuyên nghiệp hơn, đồng thời không bị làm phiền bởi nhắc nhở cập nhật bản quyền từ Microsoft khi sử dụng.

Thứ Tư, 22 tháng 2, 2023

NPM là gì? What is npm?

NPM (Node Package Manager?) là chương trình quản lý thư viện ngầm định (có sẵn) trong môi trường Node.js

Nó bao gồm một trình gọi dòng lệnh từ máy khách Client với tên gọi là npm, và cơ sở dữ liệu trực tuyến chứa các gói public và private còn được gọi là npm registry

Npm registry được gọi từ npm client và trên trình duyệt web.

Tóm lại, npm là 01 packages manager.

Lệnh xem phiên bản của npm (khác với node)

npm -v

Trang web official của npm là gì?

https://www.npmjs.com/

01 số thư viện npmjs hay dùng:



Thứ Ba, 21 tháng 2, 2023

Kubernetes là gì? What is Kubernetes?

Kubernetes là một nền tảng nguồn mở, có khả năng chuyển đổi và có thể mở rộng để quản lý các ứng dụng được đóng gói và các service, giúp thuận lợi trong việc cấu hình và tự động hoá việc triển khai ứng dụng.

Kubernetes là một hệ sinh thái lớn và phát triển nhanh chóng. Các dịch vụ, sự hỗ trợ và công cụ có sẵn khắp nơi.

Tên gọi Kubernetes có nguồn gốc từ tiếng Hy Lạp, có ý nghĩa là người lái tàu hoặc hoa tiêu. 

Google mở mã nguồn Kubernetes từ năm 2014. 

Kubernetes xây dựng dựa trên một thập kỷ rưỡi kinh nghiệm mà Google có được với việc vận hành một khối lượng lớn workload trong thực tế, kết hợp với các ý tưởng và thực tiễn tốt nhất từ cộng đồng.

Xem câu trả lời chính thức Kubernetes là gì từ trang official:
https://kubernetes.io/vi/docs/concepts/overview/what-is-kubernetes/

Chủ Nhật, 19 tháng 2, 2023

AppDynamics là gì? What is AppDynamics?

+ AppDynamics là phần mềm giám sát theo thời gian thực tính năng của nhiều loại ứng dụng web như Java hay .NET…

+ AppDynamics là 01 APM Tool (Application Performance Management) dùng để kiểm tra hiệu năng thời gian phản hồi (response) của web service có bị chậm không trước khi đưa vào sử dụng thực tế.

+ Hiệu suất ứng dụng được xác định tốt hay xấu dựa vào các yếu tố như: Hệ thống phản hồi, dung lượng băng thông, số lượng người dùng truy cập vào web, giao thức ứng dụng.

+ AppDynamics là 01 sản phẩm đến từ tập đoàn Cisco
https://www.appdynamics.com/

Thứ Năm, 16 tháng 2, 2023

Demo ứng dụng giỏ hàng shopping cart bằng KnockoutJS

01. index.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Includes nested dropdowns and a string formatting function</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.5.1/knockout-latest.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script type="text/javascript" src="sample.js"></script>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

Thứ Tư, 15 tháng 2, 2023

NestJS là gì? What is NestJS?

+ NestJS là một NodeJS framework dùng để phát triển ứng dụng phía server hiệu quả, đáng tin cậy và có thể mở rộng.

+ NestJS là sự kết hợp bởi OOP(Object Oriented Programming), FP(Functional Programming), FRP(Functional Reactive Programming). 

+ NestJS sử dụng TypeScript để phát triển nhưng nó cũng hỗ trợ cả Javascript.

A progressive Node.js framework for building efficient, reliable and scalable server-side applications.

Thứ Ba, 14 tháng 2, 2023

Kafka là gì? What is Kafka?

Apache Kafka là một nền tảng streaming sự kiện phân tán mã nguồn mở được hàng nghìn công ty sử dụng cho các đường dẫn dữ liệu hiệu suất cao, phân tích streaming, tích hợp dữ liệu và các ứng dụng quan trọng.

Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.

Trang web official của Kafka:

https://kafka.apache.org/

Chủ Nhật, 12 tháng 2, 2023

BackboneJS là gì? What is BackboneJS?

Backbone.js cung cấp cấu trúc cho các ứng dụng web bằng cách cung cấp các mô hình có ràng buộc khóa-giá trị và các sự kiện tùy chỉnh, các bộ sưu tập có API phong phú gồm vô số hàm, các dạng views có  khai báo xử lý sự kiện và kết nối tất cả với API hiện tại của bạn qua giao diện JSON RESTful.

Điều quan trọng nhất mà Backbone có thể giúp bạn là tách logic nghiệp vụ của bạn khỏi giao diện người dùng. Khi cả hai vướng mắc, thay đổi khá khó khăn; khi logic không phụ thuộc vào giao diện người dùng, giao diện của bạn sẽ trở nên dễ làm việc hơn.

Backbone cũng thuộc đại gia đình danh giá (đại học MIT - Huê Kỳ)

Backbone là 01 thành phần mã nguồn mở thuộc dự án DocumentCloud.

Trang web chính thức của Backbone JS : https://backbonejs.org/

Mulesoft là gì? What is Mulesoft?

MuleSoft là một “Nền tảng tích hợp dưới dạng dịch vụ (iPaaS)” với chức năng chính là Mule Enterprise Service Bus (ESB), hệ thống phần mềm trung gian kết nối, tích hợp và truyền tải dữ liệu.

Với sức mạnh của CloudHub, MuleSoft trở thành một giải pháp iPaaS, kết hợp cùng khung framework được phát triển bằng Java, nền tảng MuleSoft Anypoint (Anypoint Platform) không chỉ cực kỳ linh hoạt trong việc kết nối hệ thống, phát triển các API, truyền tải dữ liệu, mà còn có hiệu suất ưu việt, tính vận hành ổn định và khả năng mở rộng theo chiều ngang.

Chủ Nhật, 29 tháng 1, 2023

Cách hiển thị vị trí trên Google Maps dựa vào tọa độ? How to show position in Google Maps by coordinates?

Bước 01: dùng JS để lấy tọa độ hiện tại:

<body>

<div id="demo"></div>

<script>

const x = document.getElementById("demo");

getLocation();


function getLocation() {

  if (navigator.geolocation) {

    navigator.geolocation.getCurrentPosition(showPosition);

  } else {

    x.innerHTML = "Geolocation is not supported by this browser.";

  }

}

function showPosition(position) {

  x.innerHTML = "Latitude: " + position.coords.latitude +

  "<br>Longitude: " + position.coords.longitude;

}

</script>

</body>

Bước 02: gõ tọa độ vào ô Tìm Kiếm (Search) của Google Maps theo 01 trong các cú pháp sau:

  • Dạng DD Decimal Degrees => Latitude, Longitude (ví dụ: 41.40338, 2.17403)
  • Dạng DMS Degrees Minutes Seconds => 41°24'12.2"N 2°10'26.5"E
  • Dạng DMM Degreed and Decimal Minutes => 41 24.2028, 2 10.4418
Trong 03 dạng trên dạng DD hay dùng.

Chú ý: nếu tọa độ sai lệch nhiều => vào phần Settings của trình duyệt XÓA DỮ LIỆU CŨ rồi thực hiện lại bước lấy tọa độ...

  • Tọa độ latitude đứng trước tọa độ longitude.
  • Kiểm tra số đầu tiên(trước dấu chấm .) của tọa độ latitude phải nằm trong khoảng -90 và 90.
  • Kiểm tra số đầu tiên của tọa độ longitude phải nằm trong khoảng -180 và 180.

Thứ Tư, 18 tháng 1, 2023

MÃ MORSE

Những ai am hiểu công nghệ thông tin và yêu thích mật mã chắc cũng từng nghe qua mã mọt (MORSE)

là phương pháp được sử dụng trong viễn thông để mã hóa văn bản ký tự như trình tự chuẩn của 02 khoảng thời gian tín hiệu khác nhau, là dấu chấm (dot) và dấu gạch ngang (dash).

Mã Morse được đặt theo tên của Samuel Morse, nhà phát minh điện báo.

Đây là bức điện báo đầu tiên trong lịch sử nhân loại.

Bức điện báo đầu tiên trên thế giới
Nội dung thông điệp là: “What hath God wrought”

Bảng mã Morse quốc tế bao gồm 26 chữ cái tiếng Anh không phân biệt HOA-thường.

Mỗi chữ cái được hình thành bởi các dấu chấm gạch ngang.

Thời lượng dấu chấm là đơn vị đo cơ bản.

Thời lượng gạch ngang gấp 03 lần dấu chấm.

Bảng mã Morse quốc tế

Đập hộp công nghệ-review xe điện Vinfast VF e34 phiên bản 2021

"Ở nhà quê mới lên,

Tui ở nhà quê mới lên,

Nhìn ô tô nó đi,

Tui tưởng con trâu nó phi ì í ì i...

Ở nhà quơ mới lên em đâu biết gì?"


Câu chuyện dzui dzui kể trên,

trong lời 01 bài hát chế,

có thể đã xảy ra ngoài đời thực nếu không có điều này...

Câu chuyện xe ô tô được bắt đầu kể từ năm 1885,

khi ông Karl Benz (người Đức) trình làng chiếc ô tô đầu tiên trên thế giới.

Ở đây, ta lạm bàn 01 chút về 02 chữ ô tô,

có người cho rằng đó là tên động cơ Otto (Đức),

cũng có người cho rằng nó bắt nguồn từ tiếng Hy Lạp (auto-nghĩa là tự thân).

Chữ xe hơi thì có vẻ bắt nguồn từ âm Hán Việt là: khí xa.

Để tìm hiểu chi tiết lịch sử hình thành xe ô tô các bạn xem thêm ở đây.

Tóm lại, thế giới ô tô ở thế kỷ trước,

là thế giới những thiết kế cổ điển, đẹp mắt,

một thế giới xinh xinh!!!


Quay trở lại Việt Nam, hãng xe Vinfast vừa cho ra mắt dòng xe điện đầu tiên của mình: vf e34

trong series 03 mẫu xe điện của hãng: vf e31(sửa tên lại là vf e34), vf e32, vf e33


Chiếc xe theo cảm nhận chủ quan có ngoại hình xinh xắn, gọn gàng và khá dễ thương.

Với các ưu điểm sau:

  • Dễ dàng sạc tại nhà/tại hệ thống trạm sạc rộng khắp của VinFast.​
  • Khả năng sạc siêu nhanh, đi tới 180 km chỉ sau 15 phút sạc.
  • Chi phí thuê bao pin và sạc điện hàng tháng tương đương xe xăng​.
  • Chi phí bảo dưỡng rẻ chỉ tương đương 25%-30% xe xăng.
  • Không phát thải CO2​.
  • Giảm thiểu ô nhiễm tiếng ồn​.

Chúng ta hãy cùng duyệt nhanh qua các thông số kỹ thuật của VF e34:

Thứ Hai, 16 tháng 1, 2023

Tự chế bể nước nóng năng lượng mặt trời

Nguyên liệu gồm : 

𝟎𝟗𝟑𝟔𝟏𝟗𝟏𝟏𝟗𝟐

01. Bể nước gồm 06 tấm kiếng dán keo lại(04 mặt chung quanh + đáy + nắp) => theo mình ngoại trừ nắp, các mặt còn lại nên dùng gương hoặc lót giấy bạc sẽ cho phản hồi ánh sáng mặt trời tốt hơn. Bao xung quanh bể (chừa phần nắp ra) là các miếng mút xốp và  01 lớp tôn để giữ nhiệt tốt hơn. Phần nắp chèn vải chung quanh viền để hạn chế bay hơi nước.


02. 01 ống nhựa dẫn nước máy vào + phao cơ ngắt đóng/mở (canh sao cho đậy nắp hộp lại không đụng phao)


03. 01 ống nhựa dẫn nước nóng ra (đến tận vòi tắm). Ống có chiều hướng hếch lên trên (vì trong 01 bể chứa, phần nước nóng thường là nổi lên lớp trên) => nên dùng loại ống chịu được nhiệt độ cao.

Bổ sung: các bạn đục thêm 01 lỗ trên bể, nối thẳng 01 đường nước lạnh đến vòi tắm (để điều hòa nhiệt độ). Vòi tắm là loại có 2 đường nước NÓNGLẠNH riêng (Hot và Cold)

Vòi tắm nóng lạnh
Màu ĐỎ-Nóng vặn sang TRÁI ,Màu XANH-Lạnh vặn sang PHẢI

Cách chọn mua và những lỗi hư hỏng thường gặp của vợt muỗi

 #votmuoi

Muỗi bắt nguồn từ lăng quăng,

Lăng quăng bắt nguồn từ đâu...Tui cũng không biết nữa...

Chỉ biết rằng, từ khi loài người sống chung với muỗi thì đã xuất hiện nhiều cách diệt muỗi như:

đập tay không, dùng hóa chất để xịt, nhang khói, đèn bắt muỗi, vợt muỗi...

Hôm nay mình xin chia sẻ cách lựa chọn, cũng như cách khắc phục những hư hỏng thường gặp của vợt muỗi.

Đầu tiên các bạn xem qua video clip review vợt muỗi thông dụng hiện có trên thị trường:



Cách viết blog kiếm tiền 2022

Mến chào các bạn!

Chỉ cần 01 chiếc điện thoại và khả năng viết lách về chủ đề mình thích, là bạn đã có thể kiếm tiền online.

Đầu tiên, chúng ta cần 01 tài khoản Gmail (bạn nào chưa có tài khoản gmail thì vào đây)

Sau đó bạn đăng nhập vào blogger.com bằng tài khoản Gmail để tạo 01 trang blog theo chủ đề mình thích.

(Ghi chú: blogger.com thuộc hệ sinh thái của Google)

Bạn điền vào tất cả các cửa sổ hiện lên.

Ở đây mình mới tạo trang blog: SỨC KHỎE ONLINE(suckhoeonline2022.blogspot.com)

Mình sẽ giới thiệu 02 cách để kiếm tiền online từ trang blog này:

Cách kiếm tiền số 01: kích hoạt google Ads

Trong màn hình quản trị trang blog vừa tạo, ta bấm vào nút Thu Nhập ở bên trái màn hình.

15 cách “câu” LIKE cực hiệu quả trên Facebook

1. Cài chế độ Public, Every body cho Profile và bài đăng – cách tăng like Facebook bắt buộc

Để tăng like hiệu quả bằng các cách tăng like Facebook, Profile của bạn phải cho phép hiện chức năng Add friend, Follow Message đối với người xem là “khách lạ”. Thêm vào đó bạn cũng nên chỉnh chế độ bài đăng của mình thành “Công khai”.


Việc cài đặt này giúp cho mọi người có thể like, comment, share những bài mà bạn đã chia sẻ cũng như có thể Follow (theo dõi), Add friend với bạn.


2. Cập nhật Cover photo và Profile picture

Bạn nên thường xuyên cập ảnh bìa ảnh đại diện vì những loại ảnh này thường được chú ý nhất do khách viếng thăm bắt gặp trực tiếp trước mắt họ. Chúng sẽ xuất hiện trên News Feed của bạn bè.


Đoạn thông tin của bạn dù có hấp dẫn tới mấy cũng không thể thu hút được sự chú ý lập tức từ người xem. Ví dụ bạn muốn truyền tải một thông điệp và mong muốn thu hút được sự quan tâm lớn, có lẽ bạn nên sử dụng ảnh đại diện với nhiều màu sắc.


Nhiều người cũng tỏ ý rằng họ không thích những tài khoản không có ảnh đại diện, bạn nên để ý nhé !


Quản lý bán hàng online bằng Microsoft Excel - Phần 02

 Mến chào các bạn!


Trong bài viết quản lý bán hàng online bằng Microsoft Excel trước,

tập tin DonHang.xlsx sẽ phát sinh vấn đề, nếu số lượng sản phẩm phải nhập vào lên đến hàng trăm loại.

Rất khó để nhớ GiáPhần Mô Tả Sản Phẩm chính xác, lại còn lỗi đánh máy trong quá trình nhập liệu nữa...

Tất cả vấn đề đó sẽ được giải quyết khi ta tạo thêm 01 tập tin Kho.xlsx dành riêng chứa thông tin về sản phẩm.

Nội dung tập tin Kho.xlsx như sau:



Giới thiệu và cài đặt React Native 2021

 #reactnative

React Native là gì?

React Native là 01 framework do Facebook phát triển nhằm mục đích viết 01 lần có thể chạy được trên nhiều nền tảng: web, androidios.

Ứng dụng viết bằng ReactNative được gọi là Hybrid App (ứng dụng lai chạy trên nền web lẫn di động)

Trang web chính thức của React Native: https://reactnative.dev

P/s: khi lập trình bất kỳ ngôn ngữ nào, nên đăng nhập vào máy tính bằng tài khoản có quyền quản trị (administrator) để tránh những sự cố về quyền cài đặt. Thêm 01 điều nữa là máy tính phải có internet khi thực thi các lệnh cài đặt này.

LDAP là gì? What is LDAP?

LDAP là chữ viết tắt của Lightweight Directory Access Protocol

LDAP phát triển dựa trên chuẩn X500. Đây là chuẩn cho dịch vụ thư mục (Directory Service - DS) chạy trên nền tảng OSI.

LDAP được coi là lightweight vì LDAP sử dụng gói tin overhead thấp, được xác định chính xác trên lớp TCP của danh sách giao thức TCP/IP (các dịch vụ hướng kết nối) còn X500 là heavyweight vì là lớp giao thức ứng dụng, chứa nhiều header hơn (các header của các layer tầng thấp hơn)

Rabbitmq là gì?What is Rabbitmq?

RabbitMQ giúp các web server gửi các reponse cho các request rất nhanh thay vì bị ép buộc chạy một procedure ngốn tài nguyên trên một hệ thống.

Việc đưa message vào hàng đợi là một giải pháp hay khi ta muốn phân tán message cho nhiều người nhận giúp giảm tải cho các worker xử lý.

Redis là gì? What is redis?

Redis là tên viết tắt của Remote Dictionary Server (Máy chủ từ điển từ xa), đây là một kho lưu trữ dữ liệu dưới dạng key-value, trên bộ nhớ, mã nguồn mở, nhanh chóng. Dự án này đã bắt đầu khi Salvatore Sanfilippo, nhà phát triển ban đầu của Redis, muốn cải thiện khả năng mở rộng quy mô công ty khởi nghiệp của ông tại Ý. Từ đó, ông đã phát triển Redis mà hiện được sử dụng với vai trò cơ sở dữ liệu, bộ nhớ đệm, trình trung chuyển tin nhắn và hàng đợi.


Redis hiện cung cấp thời gian phản hồi chưa đến một mili giây, giúp thực hiện hàng triệu yêu cầu mỗi giây cho các ứng dụng thời gian thực trong những ngành như trò chơi, công nghệ quảng cáo, dịch vụ tài chính, chăm sóc sức khỏe và IoT.

Neo4j là gì? what is Neo4j?

Neo4j là hệ quản trị cơ sở dữ liệu đồ thị đầu tiên được giới thiệu vào năm 2007 và công bố phiên bản 1.0 vào năm 2010. Hiện nay neo4j là một trong những hệ quản trị cơ sở dữ liệu đồ thị được sử dụng nhiều nhất.

Chủ Nhật, 15 tháng 1, 2023

STOMP là gì? What is Stomp?

STOMP là viết tắt của Simple Text Oriented Messaging Protocol, nó là một text-based protocol đơn giản được thiết kế để làm việc với các message-oriented middleware (MOM). 


Mọi ứng dụng client  STOMP đều có thể giao tiếp với bất kỳ STOMP message broker nào và có thể tương tác giữa các ngôn ngữ và nền tản khác nhau.

Xem demo ứng dụng chat với công nghệ Stomp-based trong Spring Boot: https://spring.io/guides/gs/messaging-stomp-websocket/

WebSocket là gì? What is websocket?

WebSocket là một kết nối 2 chiều, song song và liên tục giữa client và server. Sau khi một kết nối WebSocket được thiết lập, nó sẽ mở cho đến khi client hoặc server quyết định đóng kết nối này.


Một trường hợp sử dụng điển hình của WebSocket là một ứng dụng có nhiều người dùng giao tiếp với nhau, chẳng hạn như ứng dụng chat.

Xem demo ứng dụng chat dùng công nghệ webSocket: https://spring.io/guides/gs/messaging-stomp-websocket/

SOAP Web Service là gì? What is SOAP?

SOAP là viết tắt của Simple Object Access Protocol. Nó là một giao thức dựa trên XML để truy cập các web services.

SOAP được khuyến cáo bởi W3C cho giao tiếp giữa hai ứng dụng.

Đó là nền tảng độc lập và ngôn ngữ độc lập. Vì dựa trên XML nên SOAP là một giao thức không phụ thuộc platform cũng như bất kì ngôn ngữ lập trình nào. Chúng ta có thể viết bằng Java, PHP, .NET, … và triển khai trên Window, Linux,…

Xem bài demo SOAP : https://spring.io/guides/gs/consuming-web-service/

Xem thêm về SOAP: https://viettuts.vn/web-service/web-service-la-gi

CORS là gì? What is CORS?

Cross-Origin Resource Sharing là một kĩ thuật được sinh ra để làm cho việc tương tác giữa client và server được dễ dàng hơn, nó cho phép JavaScript ở một trang web có thể tạo request lên một REST API được host ở một domain khác.

Đầu tiên phải nói đến same origin policy, đây là một security concept quan trọng được hiện thực trên các thể loại trình duyệt nhằm ngăn chặn JavaScript code có thể tạo ra những request đến những nguồn khác với nguồn mà nó được trả về (ví dụ đơn giản như request tới những domain khác), và cách để so sánh same origin được mô tả ở đây, tuy nhiên để nói một cách đơn giản thì domain sẽ phải giống nhau từ đầu tới cuối từ protocol đến host, port.

Tại sao việc này nguy hiểm, thì các bạn cứ nghĩ đơn giản, nếu các bạn vô Facebook, trong khi đó ở một tab khác các bạn mở một trang web chứa mã độc. Tab Facebook sử dụng JavaScript để request lên server, nếu không có same origin policy, JavaScript ở web chứa mã độc kia cũng có thể tạo request lên server của Facebook với resource của tab Facebook, vì thế trình duyệt phải có cơ chế để phân biệt JavaScript của nguồn nào thì được access vào resource của nguồn nào.

Cơ chế hoạt động của CORS như thế nào?

Trong trường hợp đơn giản nhất, phía client (tức là cái web app chạy ở browser đó) sẽ tạo request GET, POST, PUT, HEAD, etc để yêu cầu server làm một việc gì đó. Những request này sẽ được đính kèm một header tên là Origin để chỉ định origin của client code (giá trị của header này chính là domain của trang web).

Server sẽ xem xét Origin để biết được nguồn này có phải là nguồn hợp lệ hay không. Nếu hợp lệ, server sẽ trả về response kèm với header Access-Control-Allow-Origin. Header này sẽ cho biết xem client có phải là nguồn hợp lệ để browser tiếp tục thực hiện quá trình request.

Trong trường hợp thông thường, Access-Control-Allow-Origin sẽ có giá trị giống như Origin, một số trường hợp giá trị của Access-Control-Allow-Origin sẽ nhìn giống giống như Regex hay chỉ đơn giản là *, tuy nhiên thì cách dùng * thường được coi là không an toàn, ngoại trừ trường hợp API của bạn được public hoàn toàn và ai cũng có thể truy cập được.

Và như thế, nếu không có header Access-Control-Allow-Origin hoặc giá trị của nó không hợp lệ thì browser sẽ gửi thông báo lỗi.

Vẫn chưa hết đâu, các bạn phải biết về Pre-flight requests nữa!

Khi bạn thực hiện những request ảnh hưởng tới data như POST, PUT, DELETE, etc thì browser sẽ tự động thưc hiện một request gọi là preflight request trước khi thực sự thực hiện request để kiểm tra xem phía server đã thực hiện CORS hay chưa, cũng như để biết được rằng request này có hợp lệ hay không. Ngoài ra thì nếu bạn có thêm những custom header vào trong request thì việc gửi một preflight request cũng là cần thiết.

Preflight request được gửi lên server với dạng là OPTIONS (đây là lý do tại sao khi bạn debug ở client bạn thường thấy có hai request giống nhau nhưng khác request method, một cái là OPTIONS một cái là method thật sự bạn muốn gửi).

Ví dụ bạn muốn gửi request DELETE lên server. Browser sẽ tự tạo một request OPTIONS sẽ hỏi xem server có cho phép việc gửi request DELETE hay không. Nếu server cho phép, nó sẽ gửi về response đính kèm những header như Access-Control-Allow-OriginAccess-Control-Allow-MethodsAccess-Control-Max-Age, etc.

  • Access-Control-Allow-Methods: mô tả những method nào client có thể gửi đi.
  • Access-Control-Max-Age: mô tả thời gian hợp lệ của preflight request, nếu quá hạn, browser sẽ tự tạo một preflight request mới.

Sau đó browser sẽ có thể gửi request DELETE và nhận response như bình thường. Và ngược lại, browser sẽ gửi thông báo lỗi.


Xem  bài demo CORS ở đây: https://spring.io/guides/gs/rest-service-cors/

Xem thêm về CORS: https://viblo.asia/p/cors-la-gi-Qbq5Q0j3lD8

Docker là gì? What is Docker?

Docker là nền tảng phần mềm cho phép bạn dựng, kiểm thử và triển khai ứng dụng một cách nhanh chóng. Docker đóng gói phần mềm vào các đơn vị tiêu chuẩn hóa được gọi là container có mọi thứ mà phần mềm cần để chạy, trong đó có thư viện, công cụ hệ thống, mã và thời gian chạy. 

Bằng cách sử dụng Docker, bạn có thể nhanh chóng triển khai và thay đổi quy mô ứng dụng vào bất kỳ môi trường nào và biết chắc rằng mã của bạn sẽ chạy được.

Việc chạy Docker trên AWS đem đến cho các nhà phát triển và quản trị viên một phương thức dựng, vận chuyển và chạy ứng dụng phân phối ở quy mô bất kỳ có chi phí thấp và độ tin cậy cao.

Thông báo gần đây: Docker hợp tác với AWS để hỗ trợ các nhà phát triển nhanh chóng đưa ứng dụng hiện đại lên đám mây. Sự hợp tác này giúp nhà phát triển sử dụng Docker ComposeDocker Desktop để tận dụng cùng một quy trình làm việc cục bộ mà họ sử dụng ngày nay để triển khai các ứng dụng trên Amazon ECSAWS Fargate một cách liền mạch.

Xem thêm về cách thức hoạt động của Docker: https://aws.amazon.com/vi/docker/

Xem bài demo về Docker: https://spring.io/guides/gs/spring-boot-docker/

Cloud Foundry là gì? What is Cloud Foundry?

Cloud Foundry (https://cloudfoundry.org/) là một nền tảng mã nguồn mở dành cho điện toán đám mây, được khởi xướng và phát triển đầu tiên bởi một nhóm nhỏ trong công ty VMWare vào năm 2009.

Clound Foundry

Cloud Foundry cung cấp một Platform as a Service (PaaS) giúp giảm tải quá trình phát triển và triển khai các ứng dụng. 


Là một Paas, Cloud Foundry sẽ quản lý chi tiết tất tần tật về ứng dụng của chúng ta trên môi trường production. Nhiệm vụ của chúng ta là chỉ tập trung vào việc phát triển ứng dụng mà thôi.


Cloud Foundry được tối ưu để:

  • Quá trình phát triển và triển khai ứng dụng được nhanh chóng.
  • Khả năng mở rộng và khả năng hữu dụng của ứng dụng luôn luôn được cao nhất.
  • Giúp quy trình DevOps được thuận lợi và dễ dàng
  • Giảm thiểu sai sót do con người gây ra.
  • Tiết kiệm chi phí sử dụng.
Bài demo Cloud Foundry: https://spring.io/guides/gs/sts-cloud-foundry-deployment/

Xem thêm về Cloud Foundry: https://huongdanjava.com/vi/cloud-foundry-la-gi

Reactjs là gì? What is ReactJS?

ReactJS là một thư viện chứa nhiều JavaScript mã nguồn mở được Facebook xây dựng và phát triển.

A JavaScript library for building user interfaces

Ưu điểm của ReactJS?

Thư viện này được sử dụng để tạo ra các ứng dụng trang web hấp dẫn với hiệu quả cao, tốc độ load nhanh và mã tối thiểu. Mỗi website sử dụng ReactJS phải chạy nhanh, mượt và có khả năng mở rộng cao, thao tác thực hiện đơn giản.

Có thể nói, hầu hết các tính năng hay sức mạnh của ReactJS thường bắt đầu từ việc tập trung vào các phần riêng lẻ. Do đó thay vì làm việc trên toàn bộ ứng dụng của website thì ReactJS lại cho phép các Developer phá vỡ giao diện phức tạp của người dùng trở nên đơn giản hơn nhiều. Điều này có nghĩa là các Render dữ liệu không chỉ được thực hiện ở vị trí server mà còn có thể thực hiện ở vị trí Client khi sử dụng ReactJS.


Trang official của ReactJS:

 https://reactjs.org/


Bài demo ReactJS: 


TypeScript là gì? What is TypeScript?

TypeScript is a strongly typed programming language that builds on JavaScript, giving you better tooling at any scale.

TypeScript là một ngôn ngữ được biên dịch thành JavaScript, được thiết kế để xây dựng các ứng dụng lớn và phức tạp. Nó kế thừa nhiều khái niệm từ các ngôn ngữ như C# và Java, những ngôn ngữ nghiêm ngặt và có trật tự trái ngược với sự thoải mái và free-typed của JavaScriptt.

TypeScript là một dự án mã nguồn mở nhưng được phát triển và duy trì bởi Microsoft và vì vậy nó được hỗ trợ sẵn trong nền tảng Visual Studio của Microsoft.


Copy to Clipboard in JavaScript

<!-- The text field -->
<input type="text" value="Hello World" id="myInput">

<!-- The button used to copy the text -->

<button onclick="myFunction()">Copy text</button> 


function myFunction() {

  // Get the text field
  var copyText = document.getElementById("myInput");

  // Select the text field
  copyText.select();
  copyText.setSelectionRange(099999); // For mobile devices

   // Copy the text inside the text field
  navigator.clipboard.writeText(copyText.value);

  // Alert the copied text
  alert("Copied the text: " + copyText.value);
}
Facebook Youtube RSS