NTM Solutions

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);
}

Vaadin là gì? What is Vaadin?

 Vaadin is a web app development platform for Java. It helps you build reliable web apps with great UX faster than before.


Vaadin framework là một framework dùng để phát triển một ứng dụng Java web, nó được thiết kế để lập trình viên có thể tạo ra và bảo trì các trang web với giao diện đẹp một cách dễ dàng, với một tập đa dạng các đối tượng được hỗ trợ cho việc thiết kế giao diện như Buttons, Tables, Trees và Layouts. 

Vaadin được phát triển dưới dạng phần mềm mã nguồn mở theo thỏa thuận Apache Software License 2.0 (http://vaadin.com/license), do đó có thể sử dụng nó cho các dự án miễn phí hoặc thương mại.

  • Kiến trúc của Vaadin :

architecture-vaadin.png

Vaadin hỗ trợ lập trình bằng ngôn ngữ Java cả ở Server side và Client side

  • Client side được phát triển dựa trên nền tảng Google Web Toolkit (GWT), điều này có nghĩa là phần tương tác ở trình duyệt có thể được viết bằng ngôn ngữ Java và có thể không cần quan tâm đến HTML, Javascript, CSS
  • Server side một ứng dụng Vaadin sẽ được thực thi như một servlet trong Java web server : nhận request từ phía client, xử lý yêu cầu sau đó trả lại response để client thay đổi dữ liệu hiển thị.

Xem bài demo Vaadin : https://spring.io/guides/gs/crud-with-vaadin/


Xem thêm cách cài đặt Vaadin: https://viblo.asia/p/xay-dung-web-application-su-dung-vaadin-framework-BAQ3vVEWGbOr


Tải Vaadin tại đây: https://vaadin.com/

Thứ Năm, 12 tháng 1, 2023

Microservices là gì? What is Microservices?

Microservice là một kiếu kiến trúc phần mềm.

Các module trong phần mềm này được chia thành các service rất nhỏ (microservice).

Mỗi service này đều có một logic riêng, một trách nhiệm riêng và có thể được deploy riêng biệt.

Khái niệm mircoservice đồng thời đề cập đến xu hướng tách biệt architecture ra thành các loose coupling service, tức là các service này sẽ có một mối liên hệ "lỏng lẻo" với nhau và mối service sẽ được nằm trong 1 context nhất định.

Cách kiểm tra version của ReactJS? How to check version of ReactJS?

 Có 03 cách:

  1. Xem file package.json
  2. Dùng command line: npm view react version
  3. Dùng thuộc tính version của dòng lệnh mặc định import from React
    • import React from 'react';
    • let a = React.version
      hoặc:
    • import React from 'react';
    •   
    • const App = () => {
    •   return <h1>
    •     Phiên bản react hiện tại: {React.version}
    •   </h1>;
    • }
    •   
    • export default App;

OpenAPI là gì? What is OpenAPI?

OpenAPI  Specification (trước đây là Swagger Specification) là 01 tài liệu mô tả định dạng API dạng Rest API. 01 tập tin OpenAPI cho phép bạn mô tả toàn bộ API bao gồm:

  • Các điểm truy cập( ví dụ /users) và các phương thức trên từng điểm truy cập (GET /usersPOST /users)
  • Tham số từng phương thức Input và Output.
  • Các phương thức xác thực.
  • Thông tin liên hệ, bản quyền, cách sử dụng và các thông tin khác.
Đặc tả API có thể được viết dạng file YAML hoặc JSON. Định dạng dễ đọc, dễ học với cả người hay máy tính. Toàn bộ đặc tả OpenAPI có thể dễ dàng tìm thấy tại: OpenAPI 3.0 Specification 

Swagger là gì? What is Swagger?

Swagger cho phép bạn tạo phần mô tả cấu trúc API 01 cách chi tiết và đẹp mắt.

-> bên nào xài API của chúng ta sẽ có document đọc dễ hiểu và trực quan hơn.


+Xem demo Swagger : https://petstore.swagger.io/

+Tài liệu mô tả Swagger: https://swagger.io/docs/specification/2-0/what-is-swagger/

+Xem thêm về Swagger: https://viblo.asia/p/co-ban-ve-swagger-oOVlYjOV58W

+Cách tích hợp Swagger vào Spring Boot: thêm dependencies...

What Is Swagger?

Swagger allows you to describe the structure of your APIs so that machines can read them. The ability of APIs to describe their own structure is the root of all awesomeness in Swagger. Why is it so great? Well, by reading your API’s structure, we can automatically build beautiful and interactive API documentation. We can also automatically generate client libraries for your API in many languages and explore other possibilities like automated testing. Swagger does this by asking your API to return a YAML or JSON that contains a detailed description of your entire API. This file is essentially a resource listing of your API which adheres to OpenAPI Specification. The specification asks you to include information like:

  • What are all the operations that your API supports?
  • What are your API’s parameters and what does it return?
  • Does your API need some authorization?
  • And even fun things like terms, contact information and license to use the API.

You can write a Swagger spec for your API manually, or have it generated automatically from annotations in your source code. Check swagger.io/open-source-integrations for a list of tools that let you generate Swagger from code.

Elasticsearch là gì? What is Elasticesearch?

Elasticsearch là một dạng Search Engine (Công cụ tìm kiếm) phát triển dựa trên nền tảng Apache Lucene. Elasticsearch được ra mắt năm 2010 bởi Shay Banon, được xây dựng bằng ngôn ngữ Java, với giao diện web HTTP có hỗ trợ JSON. Nó cho phép ta chuyển dữ liệu vào và tìm kiếm trực tiếp, thay vì tìm kiếm trong một hệ quản lý cơ sở dữ liệu thông thường như Oracle, MySQL,…

Elasticsearch cung cấp cho người dùng một hệ thống tìm kiếm dạng phân tán, phù hợp với tệp dữ liệu lớn. Elasticsearch thường được sử dụng trong việc tìm kiếm đơn giản trên trang web, chỉ mục và thu thập dữ liệu, cho đến phân tích và trực quan hóa dữ liệu kinh doanh.

Elasticsearch thường hoạt động với các thành phần khác trong ELK StackLogstash và Kibana, trong đó đóng vai trò lập chỉ mục dữ liệu. 

Ngay từ khi ra mắt, Elasticsearch đã gây ấn tượng với giới developer và nhanh chóng trở thành một trong những công cụ tìm kiếm phổ biến nhất. 

+ Ai cần dùng Elasticsearch?

  • Tìm kiếm thông tin dạng text thông thường.
  • Tìm kiếm thông tin dạng text và dữ liệu có cấu trúc.
  • Tổng hợp và phân tích dữ liệu kinh doanh yêu cầu bảo mật.
  • Xử lý và lưu trữ dữ liệu số lượng lớn.
  • Ghi nhật ký và phân tích nhật ký.
  • Kiểm tra hiệu năng hoạt động của ứng dụng.
  • Tìm kiếm dữ liệu theo tọa độ, tổng quan hóa dữ liệu trên không gian địa lý.

Elasticsearch hiện được sử dụng phổ biến bởi các doanh nghiệp lớn như Facebook, Adobe Systems, Wikipedia, StackOverflow, Netflix, GitHub,…

+ Xem thêm về Elasticsearch : 

https://viblo.asia/p/elasticsearch-la-gi-1Je5E8RmlnL

https://vietnix.vn/elasticsearch-la-gi/?gclid=CjwKCAiAleOeBhBdEiwAfgmXf-W94lHclzcf2T9G1GqiiUFGIu-wiNgRBbNj7WFDeDWVkGb2YS-hkBoC2-MQAvD_BwE

+ Trang web offical của ElasticSearch : https://www.elastic.co/

Facebook Youtube RSS