Có gì hot? Tuần 15 - 2023

Viết bởi @kcjpop

Đăng ngày

Dài 933 từ. Đọc trong 5 phút.

"Bản tin Ehkoo tuần 15 năm 2023"

Chrome hỗ trợ WebGPU bắt đầu từ phiên bản 113

Google vừa thông báo giới thiệu WebGPU cho trình duyệt Chrome từ phiên bản 113. Được phát triển từ năm 2017 với sự hợp tác của các nhân viên đến từ Mozilla, Apple, Intel, và Microsoft, WebGPU là tập hợp những API mới tận dụng sức mạnh của các phần cứng hiện đại, cho phép ứng dụng web thực hiện render và tính toán tương tự như Direct3D 12, Metal, hay Vulkan.

So với WebGL, WebGPU ưu tiên hỗ trợ tính toán bằng GPU ngay từ đầu, giúp việc xây dựng các ứng dụng machine learning hay AI dễ dàng hơn. Không giống như WebGL là một wrapper của OpenGL, WebGPU tự thiết kế các lớp trừu tượng riêng, thân thiện với môi trường web, hỗ trợ Promises, đồng thời cung cấp thông báo lỗi rõ ràng, cụ thể.

Một vài ví dụ để dùng WebGPU như là:

  • Nâng cấp hiệu năng của các thư viện như Babylon.js hay Three.js, đem đến những kỹ thuật render mới, đồng thời chuyển các tính toán nặng nề từ CPU sang GPU.

  • Chuyển các game engine sang nền web, đồng thời cho phép chúng thực hiện những kỹ thuật render cao cấp hơn. Ví dụ cụ thể là khi xuất bản game làm bằng Unity lên WebGL, các thông số kỹ thuật thường được đặt ở mức thấp. Với WebGPU chúng ta có thể nâng lên những thiết lập cao hơn.

  • Những ứng dụng nặng về tính toán như machine learning hay VR/AR có thể chuyển sang dùng GPU thay vì CPU như trước.

  • Cải thiện các ứng dụng gọi điện từ xa. Chẳng hạn như Google Meet dùng ML để tách hình người dùng ra khỏi phông nền. Bằng cách sử dụng WebGPU, tính năng này có thể chạy nhanh và ít tốn năng lượng hơn, cho phép Google Meet (1) có thể chạy trên những thiết bị phổ thông (2) sử dụng những model phức tạp và đáng tin cậy.

Để tìm hiểu thêm về WebGPU, đừng quên xem qua tài liệu trên MDN hoặc WebGPU Explainer. Hiện tại bạn có thể dùng WebGPU trong Chrome 113 chạy trên các hệ điều hành ChromeOS, macOS, và Windows. Các nền tảng khác như Linux và Android sẽ được hỗ trợ cuối năm nay. Firefox và Safari cũng đang thực hiện cài đặt WebGPU cho trình duyệt của mình.

#TIL: Thuộc tính valueAsNumbervalueAsDate của thẻ <input>

Trước giờ cứ nghĩ đây là hai tính năng riêng của react-hook-form nhưng hóa ra hai thuộc tính này được trình duyệt hỗ trợ sẵn luôn.

Đại loại là valueAsNumber giống như vầy:

<input id="js-input" type="number" value="4" />

const input = document.getElementById('js-input')
console.log(input.value) // (string) '4'
console.log(input.valueAsNumber) // (number) 4

Theo đặc tả HTML thì input[type=number | range] sẽ trả về giá trị số, với input[type=datetime | date | month | week | time | datetime-local] thì giá trị sẽ được chuyển qua Date rồi đổi thành Unix timestamps ở milliseconds, còn với các input khác sẽ luôn trả về NaN.

valueAsDate cũng tương tự, nhưng kết quả sẽ là một đối tượng Date.

<input id="js-input" type="date" value="2022-02-01" />

const input = document.getElementById('js-input')
console.log(input.value) // (string) "2022-02-01"
console.log(input.valueAsNumber) // (number) 1643673600000
console.log(input.valueAsDate) // [object Date] Tue Feb 01 2022 02:00:00 GMT+0200 (Eastern European Standard Time)

Nói chung cũng tiện 😃

Tin vắn

  • Directus vừa thông báo sẽ không tiếp tục cung cấp gói Community Cloud, a.k.a “đồ chùa”, nữa. Lý do thì không gì khác hơn ngoài chuyện tiền nong. Nếu bạn chưa biết, Directus hay được xài như headless CMS, gắn lên trên một cơ sở dữ liệu nào đó như PostgreSQL hay MySQL, và bùm, bạn có ngay REST/ GraphQL API để tha hồ chơi đùa.

Mới thấy trên quầy

Một vài thư viện/ công cụ hữu ích mà bọn mình mới phát hiện 😛

  • system-fonts/modern-font-stacks: Bạn đã biết sử dụng font hệ thống app nhanh hơn? Repo này sử dụng những font có sẵn trong hệ điều hành để tạo thành từng stack theo phong cách khác nhau, giúp bạn dễ chọn font hơn nữa.

  • nanostores/nanostores: nanostores cũng lâu rồi nhưng bữa nay mình giới thiệu lại 😝 Đây là một thư viện quản lý trạng trái không phụ thuộc vào framework, nhỏ gọn, lại hỗ trợ TypeScript.

  • studio-freight/lenis: Smooth scrolling siêu nhẹ luôn, chỉ có 3.4KB gzipped.

  • ellegantcss/ellegant: Một framework CSS cung cấp các components như Toggler, Switcher, Menu, Modal, v.v. chỉ bằng CSS thuần mà không dùng JavaScript.

Đọc/ xem gì cuối tuần

Kết

Hẹn gặp lại các bạn trong tuần tiếp theo 👋

Bản tin Ehkoo hàng tuần 💌

Đăng ký ngay để nhận những tin và bài viết mới nhất về lập trình frontend, cũng như các thủ thuật hay thư viện mới…

Powered by Buttondown

Gửi tặng cà phê ☕️

Nếu thấy bài viết này hữu ích, bạn có thể gửi tặng Ehkoo một ly cà phê theo link bên dưới 👇

Cám ơn bạn rất nhiều 🤗