Posted in Cloud Technology, Home

Metaverse 2021: Chúng ta đang ở trong thời đại nào?

Hôm nay mình đọc trên medium có thấy một bài rất hay, bài viết có nêu một từ mới đối với mình, là Metaverse. Mình khá hứng thú với bài viết nên cũng đăng bài này nhằm mục đích chia sẻ quan điểm của mình.

Khi nào sẽ xuất hiện Metaverse?

Trước khi đề cập đến khái niệm này mình muốn chỉ ra là chúng ta đang nói đến một thứ thuộc về tương lai. Hiện tại trình độ khoa học công nghệ của chúng ta chưa đủ để tạo ra một metaverse hoàn chỉnh. Nhưng không có nghĩa là trong tương lại sẽ không có, bài viết này mình sẽ miêu tả về một cách sử dụng internet khác hoàn toàn cách chúng ta sử dụng hiện tại. Nhưng trước tiên, mời các bạn cùng mình điểm qua các thế hệ đang dùng internet ngày nay.

Những ai đang sử dụng Internet năm 2021?

Để bắt đầu bài viết mình xin liệt kê một số thế hệ được sinh ra vào các năm như sau:

GenerationX 1965 đến 1980
GenerationY 1981 đến 1994
GenerationZ 1997 đến năm 2012
GenerationA 2012 đến năm 2025

Có sự khác biệt về những thế hệ trên, nhưng ở đây mình chỉ xét về yếu tố công nghệ và tiếp xúc với công nghệ, internet, facebook, AI, blockchain…

Nhìn từ trên xuống thì GenX, chính là cha mẹ chúng ta, hầu như tiếp xúc với IT vào những năm cuối đời, nên đối với họ công nghệ chỉ là công cụ hỗ trợ. Nhiều người không tin công nghệ thông tin có thể làm được nhiều.

GenY, là tác giả(1991): là thế hệ tiên phong trong việc tiếp cận công nghệ, internet, cloud, iphone, ipod, AI, gần nhất là blockchain. Có thể nói chúng ta may mắn sinh ra trong một thời kì bùng nổ mạnh mẽ của internet và chúng ta nhìn thấy internet lớn lên cùng mình. Mình vẫn nhớ ngày đầu tiên dùng Internet Explorer hay Facebook, giờ nhớ lại nhìn như 1 trang web trẻ con mà bây giờ ai cũng làm được.

Chúng ta là thế hệ tiên phong, có kỷ niệm về những ngày đầu của thế giới số, thành tựu của chúng ta có thể kể tới Yahoo, Facebook, Google, Amazon, Youtube. Những cá nhân tiêu biểu như Mark Zukerberg, Jeff bezos….

GenZ(1997): Thế hệ này gần như được tiếp xúc với công nghệ thông tin từ khi họ sinh ra, đăc biệt là sau 2007, khi iphone thống trị thế giới di động. Họ hiện nay là thế hệ trẻ nhất, thành phần nòng cốt của thế giới công nghệ. Và đây cũng là thế hệ, mà theo ý kiến tác giả, là họ quen thuộc với thế giới thứ 2, thế giới ảo, bao gồm Facebook, Instagram, snapchat…

Đây là thế hệ gần với thế hệ Y, họ kế thừa và phát triển những công nghệ có sẵn. Những sản phẩm thay đổi thế giới xuất hiện trong giai đoạn này gồm có: XR(AR và VR), công nghệ thưc thế tăng cường, cho phép chúng ta nhìn thấy và làm việc với môi trường 3D. Snapchat, Tiktok, instagram. Những Influencer xuất hiện nhiều hơn nhờ tương tác tốt trên nền tảng mạng xã hội….

Gen A(???): Thế hệ này đến khi viết bài viết này thì các cháu lớn nhất là 9 tuổi, chính là thế hệ tương lai của chúng ta. Mặc dù chưa có định hình rõ về GenA nhưng chúng ta thấy những bé này sinh được tiếp xúc từ nhỏ với những gì ta thấy cao siêu, mới mẻ, những đối với chúng thì đó là chuyện bình thường. Những đứa trẻ GenA này sẽ lớn lên cùng robot, AI, dùng tiền điện tử để thanh toán. Mua bán trực tuyến…. Và, đặc biệt hơn, có thể thế hệ này của chúng ta sẽ không chỉ sống trong 1 thế giới chúng ta đang sống, mà còn sống trong 1 thế giới khác –> Metaverse?

Vậy thì quay lại với tiêu đề bài viết, Metaverse là gì? Theo định nghĩa:

Metaverse là thế giới kỹ thuật số, nơi mà bất cứ thứ gì chúng ta có thể tưởng tượng đều có thể tồn tại. Cuối cùng, chúng ta sẽ luôn được kết nối với metaverse, mở rộng các giác quan về thị giác, âm thanh và xúc giác, kết hợp các vật phẩm kỹ thuật số vào thế giới thực hoặc thả mình vào môi trường 3D hoàn toàn nhập vai bất cứ khi nào chúng ta muốn. Họ công nghệ đó được gọi chung là eXtended Reality (XR).

What's Next For the Metaverse? — Naavik
Metaverse?

Khái niệm này mới nghe qua có vẻ xa vời, nhưng thực ra nó đã có từ khá lâu. Các bạn 8x 9x chắc không xa lạ gì với các game nhập vai như diablo, MU hay kinh điển là võ lâm truyền kì:))

Đây là những game mà đề cập tới khái niệm Avatar(là nhân vật của các bạn). Nghĩa là sáng các bạn sống cuộc đời của mình, đi làm đi học, tối về các bạn sống cuộc sống của một vị đại hiệp đi trừ gian diệt bạo. Và phải bỏ tiền mua vật phẩm trong game, hoặc đi săn boss… Nhưng tất nhiên là game chỉ bó hẹp trong tiểu thuyết võ hiệp thôi, Hãy tưởng tượng 1 game tương tự như Võ Lâm, nhưng cho phép người chơi tùy sức sáng tạo ra các thế giới mới, các loại võ công mới, không những vậy nó không chỉ gói gọi trong game kiếm hiệp nữa, mà là tất cả những gì bạn có thể tưởng tượng, tổng hợp lại trong 1 thế giới duy nhất gọi là Metaverse.

Nguồn gốc & đặc điểm của Metaverse

Liệu Metaverse có phải là một thuật ngữ mới nổi lên trong thời đại công nghệ thông tin phát triển như ngày hôm nay?

Sự thật là, “Metaverse” đã được đề cập lần đầu tiên trong cuốn tiểu thuyết khoa học viễn tưởng “Snow Crash” của Neal Stephenson vào năm 1992, được mô tả là một nơi con người có thể tương tác qua lại với nhau thông qua không gian ông gọi là cyberpunk.

Như vậy, thuật ngữ “Metaverse” đã được ra đời từ cách đây khá lâu (trước cả thời đại Internet). Bản thân từ Metaverse cũng được cấu tạo từ 2 từ đó là Meta (beyond hay là vượt lên) và Verse (trong universe hay vũ trụ). Do đó concept này có hàm ý “vượt lên vũ trụ hiện hữu”.

Một số đặc điểm của Metaverse có thể kể đến đó là:

  • Sustainability: Khả năng duy trì và liên tục có những cải tiến về dịch vụ hay hệ sinh thái trong đó.
  • Immersion: Mức độ chân thực của Metaverse (đặc điểm này trả lời cho câu hỏi liệu trải nghiệm của chúng ta trong Metaverse đạt được bao nhiêu % so với thực tế).
  • Openness: Tính mở, có nghĩa là Metaverse cho phép người tham gia có thể kết nối hoặc ngắt kết nối bất kỳ lúc nào. Đồng thời đó phải là không gian mở cho phép những sáng tạo trở nên không có giới hạn.
  • Economic System: Một hệ thống kinh tế song song với thực tế. Trong đó, người tham gia có thể dịch chuyển tài sản của mình giữa thế giới thực và Metaverse một cách dễ dàng, cũng như có thể dựa trên việc có những cải tiến sáng tạo đột phá trong metaverse để tích luỹ và gia tăng tài sản cho chính bản thân.

Các ông lớn công nghệ nói gì về metaverse

Không phải ngẫu nhiên Metaverse có tiềm năng to lớn như thế. Ngoài việc giải quyết những nhu cầu trong thực tiễn đời sống thì nó còn phải thu hút được sự chú ý từ những ông lớn – những tổ chức có những nguồn lực dồi dào thì mới hiện thực hoá được tầm nhìn khổng lồ như trên.

Cái tên đầu tiên có thể kể tới đó là Mark Zuckerberg – Founder & CEO của Facebook.

Mark Zuckerberg is betting Facebook's future on the metaverse - The Verge

Chia sẻ về metaverse, Mark cho rằng:

“Internet di động ngày nay đã có thể đáp ứng nhiều nhu cầu khác nhau của mọi người từ lúc thức dậy đến khi đi ngủ. Vì vậy, tôi không nghĩ mục đích chính của Metaverse là để mọi người tham gia vào Internet nhiều hơn, mà là cho phép mọi người tham gia vào Internet một cách tự nhiên hơn”.

Đi cùng với đó là những động thái trong việc phát triển Metaverse, Facebook cũng đã đầu tư các thiết bị VR thông qua việc sở hữu Oculus để sẵn sàng hoàn thành những cơ sở hạ tầng phần cứng thiết yếu cho Metaverse vào những năm cuối của thập kỷ.

Ngoài Facebook, các gã khổng lồ công nghệ như Google, Microsoft, Sony cũng đã cùng Facebook thành lập nên XR Association – một liên minh với tham vọng tạo nên tương lai của “Experiential Reality”.

Tất nhiên, để tránh trường hợp như các phim viễn tưởng, thế giới nào cũng bị 1 tên độc tài thao túng, các tổ chức đề cao về tính phi tập trung của Metaverse, cho rằng tính decentralized phải được đề cao để người dùng thỏa sức sáng tạo và có quyền thực sự sở hữu những thứ họ có được trong metaverse.

Nếu đề cao tính phi tập trung, phải chăng Blockchain là nơi lý tưởng để phát triển Metaverse?

Trên thực tế, Metaverse có thể được thiết lập trên nền của rất nhiều lại công nghệ khác nhau. Tuy nhiên, trong một thế giới đề cao sự sáng tạo không giới hạn, tương tác, tính tự do phân quyền như Metaverse thì dường như Blockchain sẽ là một trong những công nghệ then chốt của thế giới này.

Tại sao lại như vậy?

Thứ nhất: ngành công nghiệp Metaverse đang có sự tham gia của rất nhiều công ty công nghệ, bao gồm cả phần cứng, lẫn phần mềm, blockchain, gaming, …

Một vấn đề có thể thấy rõ ràng trong các các nền tảng đã tồn tại này đó là chúng gần như không có khả năng tương tác với nhau. Anh em không thể di chuyển hoặc trao đổi một vật phẩm rất hiếm trong Fortnite để lấy một vật phẩm tương đương trong Minecraft được.

Ngoài ra, những vật phẩm trong game mà người chơi đang sở hữu cũng không thực sự thuộc về các bạn trong các tựa game này, điều này khiến cho tính cá nhân hoá & tính sở hữu không được đề cao. Và đôi khi chỉ cần một vài yếu tố ví dụ như luật pháp hoặc chính sách công ty tác động thì các vật phẩm này có thể biến mất khỏi tài khoản của bạn.

Và tất cả các bài toán kể trên có thể được giải quyết trên công nghệ Blockchain:

Nguồn: coin98:

  • Xét về khả năng mở rộng : Các Blockchain hiện tại cho khả năng mở rộng rất lớn. Đặc biệt đối với Blockchain có concept dạng Internet of Blockchain như Avalanche, Polkadot hay Cosmos.
  • Xét về khả năng tương tác : Tài sản trên các Blockchain khác nhau hoàn toàn có thể dịch chuyển qua lại thông qua công nghệ Cross-chain.
  • Xét về tính cá nhân hoá : Điều này được biểu hiện rõ nhất thông qua NFTs – các token độc nhất và không thể được thay thế.
  • Xét về tính bảo mật: Công nghệ Blockchain với tính bảo mật cao sẽ giúp tài sản trong không gian mạng của anh em tránh khỏi những đợt tấn công từ Hackers.

Dự đoán về Metaverse

Hiện tại Vẫn là một concept thuộc về tương lai

Tuy công nghệ thông tin đã và đang phát triển rất mạnh mẽ, nhưng hiện tại Metaverse vẫn chỉ là một concept thuộc về tương lai, và đây chưa phải là thời điểm để bùng nổ. Nhưng không có gì là không thể.

Bằng chứng đầu tiên nằm ở việc chúng ta có thể thấy hiện nay, các công cụ VR còn đang rất hạn chế và khá đắt đỏ trên thị trường. Đồng thời, các trải nghiệm hỗ trợ VR vẫn chưa phổ biến, cũng như các nhà phát triển cũng chưa mặn mà với việc phát triển VR do thị trường chưa thực sự lớn.

Số liệu về Market Size của công nghệ Virtual Reality Market trong năm 2021 ước tính đạt khoảng $22B (theo Grand View Research) – vẫn là một con số rất nhỏ so với tiềm năng khổng lồ mà Metaverse có thể đạt được

Cũng theo đơn vị này ước tính rằng, tốc độ tăng trưởng kép của VR Industry sẽ rơi vào khoảng 18%/năm và đạt $70B vào năm 2028.

FORTNITE-game có nhiều sự tương đồng với metaverse

VR hardware là yếu tố then chốt và là nền tảng để có được Metaverse thực sự. Tuy nhiên, không phải khi VR phát triển xong thì Content Layer mới phát triển mà nó sẽ phát triển song hành và đợi thời điểm VR Hardware đạt đến độ chín mùi để có thể bùng nổ.

Bằng chứng đó chính là sự tham gia của rất nhiều các ông lớn công nghệ với tầm nhìn xây dựng nên Metaverse trong bối cảnh dịch bệnh hiện tại:

  • Facebook công bố tham gia vào Metaverse Industry.
  • Với tầm nhìn xây dựng Metaverse, Epic games – công ty đứng sau tựa game Fortnite đã huy động $1B nâng giá trị công ty lên $30B.
  • Trong tháng 6, Matthew Ball, một nhà đầu tư mạo hiểm đã thúc đẩy thành lập một quỹ ETF bao gồm các công ty hoạt động trong lĩnh vực Metaverse (phần cứng và phần mềm) như NVIDIA hay Roblox.

Tóm lại, Metaverse là một ngành công nghiệp đầy hứa hẹn trong tương lai. Cùng với sự tham gia đầu tư mạnh tay đến từ các ông lớn công nghệ thì một thế giới ảo song song với thực tại sẽ là một tương lai không xa.

Posted in Cloud Technology

Series: AMAZON WEB SERVICES

Lần này mình sẽ tóm tắt về các video Amazon Web Services. Mình đã làm 1 kênh youtube về DevOps cũng như Amazon Web Services để tổng hợp những kiến thức cơ bản về Infrastructure as a Services.

Sau đây mình sẽ tổng hợp một số video nổi bật:

AWS series 1: Đây là phần video đầu miêu tả cơ bản về cách mà 1 web-services hoạt động, gồm front-end, back-end, cơ sở dữ liệu (database), và cách chúng giao tiếp với nhau.

AWS series 2: Tiếp theo mình sẽ đi sâu hơn về cách lữu trữ dữ liệu, cache, Bussiness Intelligent, các mô-dul của backend như là Click stream Analysis phân tích số click chuột của khách hàng.

AWS series 3: Phần này là giới thiệu khái niệm là chính, cũng chính là các micro services ở trên nhưng mình giới thiệu tên của chúng trong Amazon Web Services(AWS)

AWS series 4: Tiếp theo của phần 3, giới thiệu cho các bạn full cây về AWS micro services và cách chúng kết hợp để cấu thành, vận hành, bảo trì và quản lý một website.

AWS series 5: Tổng kết lại những gì chúng ta đã học và giới thiệu cách deploy services từ Cloud Formation template, hoặc Infrastructure as Code như terraform.

Đây là những gì mình tổng kết và thấy hay cho các bạn làm DevOps hoặc Cloud Engineer, đặc biệt là những bạn mới vào nghề hoặc đang thực hành vọc AWS, Azure, GCP. Nếu thấy hay nhớ like và Subcribe cho mình nhé.

Posted in DevOps

Kubernetes IDE

Kubernetes là 1 công cụ để quản lý container. Và hiện tại nó đang hot. Ai đi làm cũng hỏi về kubernetes.

Bài giảng về kubernetes mình đã nói trong nhiều video rồi, các bạn muốn hiểu thêm về kubernetes có thể xem trênh kênh youtube của mình nha: Link bên dưới

Trong bài hôm nay mình sẽ liệt kê một số công cụ để hiển thị kubernetes dành cho bạn nào làm devops hoặc monitoring cần quan sát và làm việc với nhiều K8s cluster cùng lúc, hoặc cần thao tác, check logs mà không cần phải gõ quá nhiều lệnh.

Như mấy bạn nào học và làm việc với Cloud infrastructure nói chung và K8s nói riêng, thì mình đồng ý với các bạn là nó khá là trừu tượng. Khi mà chúng ta nói về pod, services, HA, load balancing. Tất nhiên khi hiểu rồi thì không khó để mường tượng ra pod là gì và hoạt động ra sao. Nhưng bảo mình ngồi tưởng tượng ra nguyên cái cloud infrastructure của công ty mình hiện giờ thì mình cũng không dám bảo game là dễ:)

Đó là lý do UI ra đời, tất nhiên game này không dành cho các bạn thích thể hiện, kiểu: trời lớn rồi ai xài UI, tui gõ vài dòng kubectl là ra hết rồi còn show bao nhiêu thứ hay ho. Như là kubectl get pods nè…..

Mình đồng ý nhưng mà vì yếu tố công việc với tay mình hay mỏi nên mình xài UI cho lẹ nha..

Thôi không dài dòng vào vấn đề chính.

Top UI dành cho Kubernetes:

1/ Lens

Theo mình con này là tốt nhất hiện tại. trong môi trường tool cho K8s cũng ít, tool này mình được 1 anh bạn giới thiệu cho, từ đó đến giờ xài không than phiền 1 ngày nào.

Nói chung con này ngon từ đầu đến cuối, bạn có thể hiện thị hết K8s cluster của 1 bạn 1 cách hế sức rõ ràng như sau:

Kontena, Inc. on Twitter: "The Ultimate Dashboard for #Kubernetes - Kontena  Lens provides all necessary tools and technology to take control of your  Kubernetes clusters. https://t.co/0DIOvnmJBO… https://t.co/xTinrzWNeU"

Rồi, phân tích 1 xíu nha. Thanh ngoài cùng bên trái show cho các bạn các cluster đang hiển thị. Thường 1 dự án có 3 cluster nha, 1 dev, stag and production.

Ở giữa chính là các pod của chúng ta, nó còn cung cấp thêm thông tin có bao nhiêu container mỗi pod, pod restart ngày mấy lần(pod hay bị restart phải coi lại nha).

Cái bản to đùng đầy phân tích kỹ thuật bên phải á, chính là thông tin chi tiết của mỗi pod khi bạn click vào.

Nói kĩ về cái bảng này chút:

Ở trên là memories resource của pod. Mấy cái cột xanh lá cây là memories yêu cầu của pod đó. Còn màu xanh dương chính là memory đang sử dụng nha.

Ở phí dưới thì dễ rồi, nó ghi bên cạnh đó, bạn có thể thấy namespace pod đó thuộc về, ngày tạo ra, pod thuộc về node nào , pod ip là gì. Ngay cả pod của bạn có 1 số secrect value như Database username hoặc password thì cũng có thể đọc ở đây nha.

Khi bạn click vào pod để nó hiện ra thông tin ở cái bảng bên phải đó. Thì phần trên cùng có một tap để bạn có thể ssh vào pod đó, hình biểu tượng của bash đó, bên cạnh là đọc log. Chỉnh sửa file yaml của pod. Thậm chí xóa pod. Tất nhiên nếu đã set auto scalte thì bạn xóa pod nó cũng tự build lại từ file yaml thôi.

Ok bài viết tới đây kết thúc, lần sau mình sẽ nói về K9s. Xin chào và hẹn gặp lại!

Link Kubernetes vỡ lòng như đã nói ở phần đầu bài: 🐱☸ Căn bản về khái niệm quản lý chuỗi container (Kubernetes) 🐱☸ – YouTube

Posted in DevOps, Docker

Vagrant là gì? Làm thế nào để ứng dụng Vagrant.

Khi các bạn xài Window vài muốn chạy Linux, thường thì lựa chọn sẽ là Virtual Machine(oracle Virtual Box chẳng hạn). Khi xài virtual-box các bạn phải set memory, capacity to máy ảo bạn sử dụng, sau đó lên mạng tải ubunu images về mount vào mới chạy được, đó là 1 quá trình không quá dài nhưng cũng mệt mỏi

Trong bài này mình sẽ giới thiệu 1 cho các bạn 1 công cụ mới tên là Vagrant.

Định nghĩa: Vagrant là một công cụ đa nền tảng cho phép bạn chỉ định Máy ảo ( dưới dạng Vagrantfile ) để triển khai tới một hypervisor (như VirtualBox trên laptop của bạn).

Vargant cũng gần như docker, bạn chỉ cần tạo 1 vagrantfile, trong đó cấu hình Linux machine của bạn, ví dụ như

file sau:

Vagrant.configure("2") do |config|
  config.vm.box = "bento/ubuntu-20.04"
end

File này chỉ định bạn sẽ tạo 1 vagrant box cài ubnutu-20.04

C:\Users\Thanh\VirtualBox VMs> vagrant up
A Vagrant environment or target machine is required to run this
command. Run `vagrant init` to create a new Vagrant environment. Or,
get an ID of a target machine from `vagrant global-status` to run
this command on. A final option is to change to a directory with a
Vagrantfile and to try again.

Để bật máy lên chỉ cần dùng lệnh “vagrant up”

C:\Users\Thanh\VirtualBox VMs> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'bento/ubuntu-20.04'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'bento/ubuntu-20.04' version '202010.24.0' is up to date...
==> default: A newer version of the box 'bento/ubuntu-20.04' for provider 'virtualbox' is
==> default: available! You currently have version '202010.24.0'. The latest is version
==> default: '202012.23.0'. Run `vagrant box update` to update.
==> default: Setting the name of the VM: VirtualBoxVMs_default_1617373630300_91414
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
    default: /vagrant => C:/Users/Thanh/VirtualBox VMs

Để access vào máy để làm việc các dùng lệnh “vagrant ssh”.

C:\Users\Thanh\VirtualBox VMs> vagrant ssh
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-52-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 System information disabled due to load higher than 1.0

Vagrant làm cho việc setup máy ảo trên laptop của bạn đơn giản hơn rất nhiều. Chỉ cần 1 vài dòng lệnh là vagrant up là đã có 1 máy ảo chạy Ubuntu hoặc CenOS. Để access vào máy ảo chỉ cần vagrant ssh.

Ranh giới giữa máy ảo và container đang bị mờ. Bản cập nhật gần đây của Vagrant, đã có rất nhiều thứ được bổ sung, bao gồm cả Vagrant Cloud. Vagrant Cloud là một dịch vụ lữu trữ các boxes, tương tự như dockerhub, mà bạn có thể tải về và xài tương tự, ví dụ bạn cần 1 máy ảo có cài sẵn postgresql, chỉ cần lên Vagrant Cloud tải về vargrant file sau đó bật lên là được.

Phần sau mình sẽ làm về setup docker. Bên docker cũng tương tự khi bạn chỉ cần dockerfile sau đó dùng dockerun để chạy container.

Posted in Docker, Robotics

Cài đặt và chạy ROS2 trên docker cotainer

Trước đây mình học robotic và có cơ hội làm việc với ROS(Robot Operating System). Mình thấy ROS là một framework rất hay để các bạn làm quen với lập trình robot. Đồng thời ROS cũng cung cấp nhiều API để việc lập trình robot dễ dàng hơn.

Hiện tại công việc của mình là cloud engineer nên thay vì tiếp xúc làm việc nhiều với robot thì mình deploy các services nhiều hơn. Tuy nhiên thì sở thích là robot nên mình vẫn chạy 1 số project về Robot và xe tự lái. Đó là lý do có trang web này. Và mình thấy có thể kết hợp 2 mảng này để tạo nên 1 số dự án thú vị.

Trong bài này mình sẽ hướng dẫn các bạn cài đặt ROS2 trên docker container:

Nói sơ qua Docker là gì?

Bạn có thể coi Docker trên PC như một máy tính bên trong máy tính của bạn. Docker là một dịch vụ cung cấp các máy ảo độc lập được cài đặt sẵn những phần mền cần thiết. Những máy ảo này giúp cuộc sống của bạn dễ dàng hơn vì chúng đi kèm với các phiên bản phần mềm phù hợp cho bất kỳ ứng dụng nào bạn đang cố gắng chạy.

Lý do cài ROS nên docker container là gì, khi bạn muốn cài ros trên windows hoặc MacOS cũng được, nhưng sẽ phức tạp hơn. Do đó có thể chọn xài máy ảo(VM) chạy linux, hoặc xài docker, coi là bản mới của VM cũng được.

Ok vào bài:

Đầu tiên: Cài docker cho window trước, làm theo hướng dẫn từ Microsoft là chuẩn nhất:

Cài docker trên win cho UbuntuApp:

https://docs.docker.com/docker-for-windows/install/

Ai cài docker trên window gặp vấn đề thì mình sẽ post 1 bài riêng sau, sau khi cài docker thì tick vào ô Use WL2:

Sau khi cài docker trong window rồi thì cài Ubuntu app:

Bằng Link này: Get Ubuntu 20.04 LTS – Microsoft Store

Mở app Ubuntu, đầu tiên kiểm tra docker có chạy không:

docker

Nếu không báo lỗi tiếp tục pull và run docker container có ros2-vnc, gõ lệnh sau:

docker run -p 6080:80 --shm-size=512m tiryoh/ros2-desktop-vnc:dashing

Bước tiếp theo, vào google chrome, vào link sau:

http://127.0.0.1:6080/

Tới bước này là các bạn có 4 màn hình để làm việc, có thể chuyển qua lại ở góc dưới bên trái màn hình.

Có máy ảo docker rồi giờ mình tiếp tục cài ROS:

Cài đặt TurtleBot3

Nhấp vào biểu tượng menu ở phía dưới cùng bên trái.

Đi tới System Tools -> LXterminal.

Tải xuống TurtleBot3.

wget https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/ros2/turtlebot3.repos
mkdir -p ~/turtlebot3_ws/src
vcs import src < turtlebot3.repos

Đợi 2 phút để turtlebot 3 được tải xuống container.

Compile code bằng lệnh sau:

colcon build --symlink-install

Set the biến môi trường.

echo 'source ~/turtlebot3_ws/install/setup.bash' >> ~/.bashrc
echo 'export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:~/turtlebot3_ws/src/turtlebot3/turtlebot3_simulations/turtlebot3_gazebo/models' >> ~/.bashrc
echo 'export TURTLEBOT3_MODEL=waffle_pi' >> ~/.bashrc
source ~/.bashrc

Chạy thử Gazebo trên ROS2:

Bạn nào từng hoặc cần nghiên cứ về ROS sẽ biết các lệnh này: Launch the simulation using the ros2 launch command.

ros2 launch turtlebot3_gazebo empty_world.launch.py

Đợi 1 lúc để Gazebo được bật lên, bình thường nó đã lâu rồi, chạy giả lập trong docker container thì phải lâu hơn chút. Dưới đây là thành quả.

Thực hiện theo các bước trên các bạn có thể giả lập 1 môi trường ảo cho robot trên một máy ảo chạy trên window của bạn cùng với sự trợ giúp của Docker và Ubuntu app 2020 trên Microsoft Store. Tất cả các phần mềm trên đều miễn phí.

Làm sao tắt ROS 2 docker container:

1 là mấy bạn vào app Ubuntu cái mà đang chạy docker container và tắt nó đi, hoặc dùng lệnh sau:

docker stop ros2-desktop-vnc

Muốn bật lại thì command là:

docker restart ros2-desktop-vnc
Posted in DevOps

Devops(Series) Phần 2 : AWS EC2, nhân tố quan trọng của AWS.

Aws EC2 là gì? Khi sử dụng Virtual Machine thì các bạn có thể dùng virtualbox, Vm ware, Vagrant, VM ware. Ngoài các tool phổ biến trên còn một số tool khác mà mình không liệt kê hết ở đây.

Một vitural machine cung cấp nhiều thứ ,nhưng quan trọng nhất là: CPU, RAM, và network.

Tương tự, trên các hệ thống cho thuê server như GCP(Google Cloud Platform), Microsoft Azure hoặc AWS, những VM này có các tên khác nhau, như trên Azure và Google Cloud là Compute, và trên Amazon Web Services là EC2(Elastic Compute Cloud).

Mặc dù tên gọi khác nhau nhưng về cơ bản EC2 cung cấp cho bạn 1 máy chủ với CPU, RAM, Network để bạn có thể làm việc, bạn biến nó thành 1 server hay chạy web services gì đó tùy theo bạn muốn, và EC2 nằm bên trong 1 VPC, với Gateway để kết nối internet, và ở gateway bạn có thể đặt cá rules để bảo vệ cho Instance của bạn.

Ngoài ra đối với những hệ thống thực tế, khi chạy webservices trên EC2 bạn có thể tùy chỉnh thêm autoscaling, tự động tăng giảm số lượng máy ảo khi server quá tải, hoặc tự điều chỉnh cắt giảm số lượng máy ảo trong thời gian vắng khách.

Posted in Life in Europe

7 Steps update your LinkedIn profile to get dream job in 2020.

2020 is a very special year, in this year we learn some new words, bad words: Lockdown, Covid-19, World-pademic, stay at home … It can be said that this is a sad year. But it is also an opportunity for us to give love to other people around us, while looking at ourselves and preparing for the good of 2021.

Branding is time and resource consuming , big companies are trained on it – and they’re good at it. But how do we often use those skills to build our own personal brands? For many of us, we don’t usually get involved in personal branding . And in this post I want to share the 7 steps I take to build personal branding on Linkedin, with hundreds of thousands of others, not just for a good job, but also for personal branding. mine.

We don’t because we are busy and because it can sometimes feel selfish or egotistical to invest time in marketing ourselves. But by ignoring personal brands, we don’t just sell ourselves – we miss a huge opportunity from a marketing perspective. The impact of those who share content is enormous. And the most effective employees sharing are the ones who have built their personal branding on LinkedIn.

Here are 7 profile features you should check out and update for 2020.

1. Choose the right profile picture for LinkedIn

Your profile photo is your business card on LinkedIn – that’s how people are presented to you and (visual creatures are us), it dominates their impression in the first place. There are some great posts explaining how to choose the right profile picture on LinkedIn – but here are some quick tips to get started: make sure that photo is recent and like you, makeup on your face about 60% (long – picture taken horizontally does not stand out), wear what you want to wear to work and smile with your eyes n.

2. Add a background image

Your background image is the second image element at the top of your profile page. It obtained the attention of everyone, put context and show a little more about what’s important to you. More than anything, the right background images help your site stand out, collect the attention and always memorable.

3. Set your title is not just a job title

There’s no rule saying that the description at the top of your resume page is just a job title. Use the title field to say a little more about how you see your role, why you do what you do, and what makes you tick. If you have sales reps at your company who are engaged in social selling, then take a quick look at their profile page titles for inspiration. They will almost certainly have more of their job titles in it.

4. Turn your summary into your story

The first thing to say about your LinkedIn summary is – make sure you have one . Your summary is your chance to tell your own story – so don’t just use it to list your skills or job titles you already have. Try to make it descriptive about why those skills are important – and the difference they can make for the people you work with. Don’t be afraid to invest time, try a few drafts and run your summary in front of people you know. This is your most personal piece of content marketing , so speak your own language .

5 . Grow your network

Take advantage of the LinkedIn feature that suggests people you can connect with. It’s amazing how effective this can be at finding relevant people to reach you on , no connection requests being sent without your permission, because So you can check all potential connections. Also, get into the habit of chatting with the LinkedIn connection requirements – it’s a great way to keep your network up and running.

6. Share content related to your work

Your LinkedIn Have a network of connections on LinkedIn, and you have an active role in that network, appearing in the LinkedIn feed of your connections in a way that adds value to them. Sharing relevant content with your network is one of the most accessible ways to do this. You can start by tracking information on linkedin of themselves and share content that you find really interesting position , or related to your industry .

7. Publish long-form content – and use it to initiate a conversation

The more you share and comment on content, the more you will establish your expertise and thought leadership information on LinkedIn. Publish post long form is the next step according to the natural need to take. A great starting point is to track the response you get to your comments and shares. Are there specific topics and perspectives that seem relevant to your network? Is there a comment you shared that you feel would be expandable in a post? Developing your thought leadership in this way keeps it realistic – and keeps you on the lookout for the issues your relationships are talking about. Get ready for your long posts to start new chats. Keep track of comments and be ready to respond.

Make your LinkedIn profile more active so that you don’t have to waste time organizing your resume for a job, getting the recruiter to find you . Try working through these ideas, building from idea to idea – and you’ll find that you can make rapid progress, even if you can only spend a few minutes in lunch break or in the evening. After taking full advantage of your LinkedIn profile, you’ll be amazed at the difference it can make for both you and your business . 

Let 2021 be a new start for you!

Photo by Nicole Michalou on Pexels.com
Posted in Home, Life in Europe

5 điều cần biết trước khi viết blog hoặc website! (SEO)

Nói nôm na đây là bài viết về các mẹo làm sao để bài viết của bạn được lên top tìm kiếm của Google. Mặc dù có rất nhiều cách nhưng thứ giữ lại khán giả vẫn là nội dung các bạn nhé, nào bắt đầu vào đề thôi (-_-) .

1 – Hiểu biết về SEO: (Tối ưu hóa Công cụ Tìm kiếm) là một trong những yếu tố quan trọng mà mọi blogger nên cân nhắc trước khi pos bài. Bạn muốn bài viết của bạn có nhiều người xem thì phải làm sao nó xuất hiện nhiều trên Google. Nhiều website không quan tâm đến SEO; họ chỉ cần chọn một themes thân thiện google và bắt đầu post bài. Đây cũng chính là lý do họ bị phụ thuộc vào các thuật toán của Goolge như Google Panda và Penguin.

Photo by Tobias Dziuba on Pexels.com

Xếp hạng công cụ tìm kiếm cao hơn không chỉ phụ thuộc vào chủ đề bài viết của bạn, mà còn ở tiêu đề của các bài đăng trên blog của bạn. Nếu bạn có một blog hơn 100+ bài viết, một số bài viết trong blog của bạn có thể phổ biến và một số trong số đó có thể không phải là một bài viết phổ biến. Bạn đã bao giờ nghĩ tại sao chỉ có một vài bài viết được xem nhiều trong blog của bạn? Bởi vì dù có cố ý hay không, vô tình bài viết nhiều view của bạn có tiêu đề phù hợp với công cụ tìm kiếm như là google, hoặc bạn cung cấp nội dung ít người tìm kiếm.

2- Một nguyên tắc chung là: Từ khoá của bạn phải nằm trong tiêu đề bài đăng và hầu hết người viết mắc lỗi khi chỉ thêm Từ khoá và không quan tâm đến việc tối ưu hoá nó để có CTR(tỷ lệ nhấp chuột) tốt hơn. Có Từ khóa trong tiêu đề bài đăng của bạn sẽ giúp ích rất nhiều, nhưng khi nói đến việc tăng CTR, cách bạn đặt các tiêu đề bài đăng của bạn tạo ra sự khác biệt rất lớn.

Ví dụ hãy xem 2 cách đặt tiêu đề sau:

Làm sao đưa bài này lên top (Tiêu đề trung bình)

Điều duy nhất bạn cần làm để đưa bài này lên top (Tiêu đề sẽ giúp bạn nhận được nhiều CTR hơn)

Như mình đã nói, tiêu đề thân thiện với SEO rất quan trọng để xếp hạng công cụ tìm kiếm tốt hơn, tất nhiền là bài viết của bạn cũng phải hấp dẫn, nếu không …… thì sẽ không giữ được người đọc.

Trong bài viết này, mình sẽ chia sẻ cho bạn “Cách viết tiêu đề có thể chơi với công cụ tìm kiếm không chỉ mang lại cho bạn nhiều truy cập miễn phí mà còn cải thiện tỉ lệ nhấp chuột lên trang web của bạn“. Tiêu đề ví dụ mà mình đã chia sẻ ở đây là “Làm thế nào để có thêm lưu lượng truy cập blog”. Tiếp tới đây, mình sẽ đặt tiêu đề này làm tiêu đề thân thiện với công cụ Tìm kiếm.

Các bước để viết tiêu đề chơi được với SEO:

Nếu bạn chưa quen với SEO, mình xin nhắc lại một lần nữa là từ khóa của bạn phải là một phần của tiêu đề bài post của bạn. Bạn có thể tham khảo hướng dẫn Harsh về cách viết tiêu đề bài đăng khác nhau cho người đọc và Công cụ tìm kiếm. Một mẹo mà tôi muốn đưa ra ở đây, hãy luôn chọn tiêu đề bài đăng của bạn sau khi hoàn thành bài viết, và hãy suy nghĩ kỹ cho chủ đề bài viết.

3- Phân tích từ khóa của bài viết Phân tích từ khóa là bước đầu tiên để làm cho tiêu đề bài đăng của bạn thân thiện với SEO. Có nhiều công cụ phân tích từ khoá có sẵn trực tuyến, chẳng hạn như công cụ phân tích từ khoá của Google. Hãy mình phân tích các tìm kiếm từ khóa trong bài viết của mình trên Google nhé. Đầu tiên mình sẽ viết một bài báo, cụ thể là “Làm thế nào để có thêm lưu lượng truy cập blog”. Đầu tiên tôi Mở công cụ Từ khoá của Google Adwords(như là Semrush) và kiểm tra các trang khác, Số lượng tìm kiếm… Vv… của từ khoá chính trong bài viết của mình. Sau khi Phân tích, mình nhận thấy rằng danh sách tìm kiếm từ khóa “Cách tạo lưu lượng truy cập blog” nhiều hơn và có mức độ cạnh tranh thấp. Bây giờ mình đã tìm thấy từ khóa chính để chèn vào tiêu đề của mình. Nếu bạn là một trong những người thích Từ khóa đuôi dài, tôi khuyên bạn nên thử SEMRUSH hoặc Ahrefs vì công cụ này giúp bạn tìm Từ khóa đuôi dài dựa trên từ gốc của bạn.

4- Sử dụng các từ khóa mục tiêu chính cho tiêu đề của bạn: Bây giờ mình đã tìm thấy từ khóa mà tôi nên chèn nó vào tiêu đề bài đăng của mình. Đầu tiên, mình đã nói điều đó, tôi sẽ giữ tiêu đề của mình là “Cách để có thêm lưu lượng truy cập blog”, sau khi tôi chèn từ khóa chính vào tiêu đề của Bài đăng và sau khi thực hiện một số thay đổi trong tiêu đề, tôi đã thực hiện nó như “Mẹo tạo lưu lượng truy cập để tăng lưu lượng truy cập vào blog của bạn”. Tiêu đề mà tôi đã tạo cũng thân thiện với công cụ tìm kiếm và hấp dẫn, loại tiêu đề hấp dẫn này khiến mọi người háo hức mở bài viết của bạn và đọc nó. 80% của phần đã kết thúc. Sau đó, những gì về 20% còn lại? , bạn có thể tìm thấy nó ở bước 3!

5- Bước thêm số: Rất quan trọng! 80% phần làm cho tiêu đề bài viết thân thiện với SEO đã kết thúc! Bây giờ là lúc để thêm phần hoàn thiện vào tiêu đề của bài viết! 20% tiếp theo là thêm một số hoặc tiền tố-hậu tố, vào tiêu đề của bạn để cải thiện CTR hơn nữa. Ví dụ trong bài này mình trình bày 5 cách để nhận được nhiều view cho blog hơn. Và vì thế nên có số “5” trên tiêu đề của bài post. Và tiêu đề là: “5 điều cần biết trước khi viết blog hoặc website!”

Bây giờ mình đã tạo một tiêu đề thân thiện với công cụ tìm kiếm cho bài đăng trên blog của mình và điều đó sẽ thu được nhiều người xem hơn mình thường, không biết có bài này có giúp mình giàu lên không:))!

Bài viết đến đây kết thúc:). Hy vọng các bạn có thể áp dụng điều này vào blog của mình nhé.

Chào Thân ái!

Posted in Home

Devops chuyện chưa kể(Series) phần 1 : Truyền thuyết Amazon Web Servies (AWS ).

Truyền thuyết kể rằng:

Năm thứ nhất sau Covid-19, anh Tèo, CTO của lele.com, 1 trang web chuyên về gà, đang gặp rắc rối nghiêm trọng về tương lai công ty…

Công ty anh điều hành 1 website gọi gà ở chợ đầu mối, như những web gọi gà khác, trang web của anh có cấu trúc như sau:

Khách hàng sẽ vào trang web của tèo tìm gà, ưng ý bấm chọn, thì browser sẽ gửi request tới server để lấy thông tin của gà được chọn thông qua domain name server( từ đây mình sẽ viết tắt là DNS), DNS này dùng để phiên dịch tên miền lele.com thành IP cho máy dễ hiểu thôi. Sau khi gửi request syn ack các kiểu, giao thức TCP-IP được thành lập thì server sẽ gửi hình của gà cho các bạn xem, và nếu ok sẽ tiến hành bước tiếp theo là đá gà.

Ok mọi chyện sẽ khá bình thường cho đến 1 ngày trang web trở nên nổi tiếng vì dàn gà mới đi thi đoạt giải, dẫn tới số lượng user tăng lên vùn vụt, mỗi ngày có thêm 10 ngàn user, khách nhiều thì tốt nhưng nhiều quá cũng không tốt đẹp gì…Và trang của anh gặp phải vài vấn đề đau đầu:

  1. Khi quá nhiều lượt truy cập vào 1 server, băng thông sẽ bị nghẽn và làm chậm tốc độ load web.
  2. Số lượng gà mới có profile khủng hơn, cty anh tèo phải cung cấp thêm nhiều thông tin vì khác hàng yêu cầu, dẫn tới sever quá tải. Đầu tư thêm server thì mất công setup network này nọ. Mà upgrade thì web vẫn phải chạy để níu chân khách.
  3. Mặc dù khách đông nhưng thường chỉ hoạt động về đêm làm lag server, có những thời điểm web không có khách. Nên đầu tư thêm để ban đêm phí quá.

Nhiều vấn đề không được giải quyết, Tèo quyết định thuê chuyên viên về thay đổi cấu trúc cty. Cuối cùng họ quyết định: Đưa tất cả lên Cloud!

Nhưng có nhiều dịch vụ cung cấp cloud thì chọn cái nào? Xem lại trang web cạnh tranh của Tèo là xemheo.com họ cũng đã chuyển hết Server, cơ sở dữ liệu của họ cho Microsoft Azure. Tèo quyết định không chơi đụng hàng, sau 1 một hồi phân vân và anh chọn AWS vì AWS có giao diện dễ sử dụng hơn:

Amazon Web Services: cung cấp một loạt các sản phẩm dựa trên đám mây trên toàn cầu bao gồm máy tính, lưu trữ, cơ sở dữ liệu, phân tích, mạng, thiết bị di động, công cụ dành cho nhà phát triển, công cụ quản lý, IoT, bảo mật và các ứng dụng doanh nghiệp: theo yêu cầu, khả dụng trong vài giây, trả phí -giá cả tùy ý. Từ kho dữ liệu đến các công cụ triển khai, thư mục đến phân phối nội dung, hơn 175 dịch vụ AWS có sẵn.

Anh Tèo quyết định trở thành khách của AWS. Anh đăng kí mua gói cơ bản, giờ anh có 1 server chạy trên AWS, services thì chạy trên EC2, các backend method đã có Lambda, dữ liệu thì lưu trữ trên S3 bucket, anh còn đang nghiên cứu chuyển qua dùng Kafka cho giống Linkedin vì kafka dữ liệu cập nhật và lưu trữ thông minh hơn. Service của anh giờ còn có chatbot để chat cùng khách hàng và anh được theo dõi toàn bộ server của mình thông qua Amazon Cloud Watch.

Với AWS, Tèo đã phát triển web bán gà của anh thành một thương hiệu International, với quy mô đàn gà 1000 con và nhiều gà ngoại.

Tèo đã xem video sau và thành công, còn bạn thì sao?:

Author:

NGUYEN TRUONG THANH / Software Engineer in Atomotive, Germany

_________________________________________

E-mail: thanhnguyen1181991@gmail.com  

Phone: 004917657997009

GLS it Services, Eschborn, Frankfurt am Main, Germany 

Website: thanhnguyensite.net

Posted in Home

Using AI for object classification.

In this post I will show you the easiest way to combine AI, convolution neural network(CNN) and docker container to classified object in real time. So all thing you need to know is basic knowledge about docker and neural network. If you are very new to programming, don’t worry, just follow the step below, and you will have a program classified object in real time.

in the video above I’m driving a car go around with a camera on top, to tracking other car and person inside it. I use CUDA Yolo + Nvidia GPU. You can also do the same, all you need to do is download my Docker file and run it.

For who need to understand the theories behind, I will summaries like this. The docker file will create a Ubuntu Linux environment and install Nvidia GPU+OpenCV+darknet in to it. Darknet is a wonderful neural network, it was train by around 10 millions picture and can real-time recognize about 70 categories (car, dog, cat, ship, plane….). If you want to learn more about darknet, you can read my article : https://thanhnguyensite.net/2020/11/05/neural-network/

OK! now let’s go the AI world:

Darknet Nvidia-Docker Ubuntu 16.04

Prerequisites

  1. Make sure you have the NVidia driver for your machine

Find out your the Graphics Card model

lspci | grep VGA

https://www.nvidia.com/Download/index.aspx?lang=en-us

How to install NVidia Drivers on Linux https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07#install-nvidia-graphics-driver-via-runfile

  1. Install Docker and NVidia Docker https://github.com/NVIDIA/nvidia-docker

Steps to run

  1. Clone this repo:
git clone https://gitlab.com/thanhnguyen1181991/darknet-docker.git
  1. Build the machine (this step might take a while, go make some coffee)
docker build -t darknet .
  1. On start.sh make sure you have the correct address of your webcam, in file start.sh line 8, if you use laptop onboard webcam, then choose: device=/dev/bus/usb/003/004:/dev/video0, if use external webcam, then: device=/dev/bus/usb/003/004:/dev/video0

Find your webcam bus

lsusb -t

Change the following line with the correct webcam bus

--device=/dev/bus/usb/003/002:/dev/video0
  1. Map a local folder to the Docker Container

Format:

/local/folder:/docker/folder

on start.sh change the following line

-v /home/projects:/dev/projects \
  1. Run the machine with Webcam
sh start.sh

Darknet

Make sure you have the weights for what you want to run

More information at https://pjreddie.com/darknet/