View profile

#236 - Virtual Threads: Nền tảng mới cho các ứng dụng Java

Grokking Vietnam
Grokking Vietnam
Trong số này, chúng ta cùng tìm hiểu về:
  • Event Loop, Callbacks, Promises, Async/Await trong JavaScript
  • Cách Coupang xử lý lượng traffic khổng lồ với Cache
  • Virtual Threads trong Java 19
  • Lời giải bài Add Bold Tag in String
Ngoài ra các bạn vẫn có thể tiếp tục đặt mua ấn phẩm Dijkstra tập 2 tại đây.

News
Webinar
Trong bài talk sau, tác giả đưa ra những gợi ý về cách tối ưu hiệu năng trên PostgreSQL.
Webinar recording: Optimizing Postgres I/O Performance and Costs
Webinar recording: Optimizing Postgres I/O Performance and Costs
Những bài viết hay
Góc Lập Trình
Đề ra tuần này: Zigzag Conversion
Chuỗi “PAYPALISHIRING” được viết dưới dạng zigzag với một số lượng hàng cho trước như sau: 
Ví dụ: số hàng cho trước là 4
P I N
A L S I G
Y A H R
P I
Khi đọc cách viết trên theo hàng ngang, ta được kết quả “PINALSIGYAHRPI”.
Yêu cầu viết một hàm nhận vào một chuỗi “s” và số lượng hàng “rows” cho trước, trả về kết quả khi đọc cách viết zigzag tương ứng theo hàng ngang.
Lời giải đề bài tuần trướcAdd Bold Tag in String
(by ndaadn)
Ta có thể duyệt qua chuỗi s để tìm vị trí xuất hiện của các từ “word” trong array “dict” cho trước một cách đơn giản. Ngoài ra, đề bài yêu cầu nếu 2 substring chồng lên nhau thì ta cần phải gộp chúng lại với chỉ một cặp bold tag. 
Để giải quyết yêu cầu này, ta có thể sử dụng một mảng “mask” để đánh dấu vị trí xuất hiện của các từ word trong chuỗi s. Sau đó duyệt qua mảng mask này và thêm các cặp bold tag tương ứng.
Ví dụ:
- Với Input: s = “abcxyz123”, words = [“abc”, “123”] => mask = 111000111 => output = “<b>abc</b>xyz<b>123</b>”
- Với Input: s = “aaabbcc”, words = [“aaa”,“aab”,“bc”] => mask = 1111110 => output = “<b>aaabbc</b>c”
Độ phức tạp thuật toán là O(N*M*k) với N là độ dài chuỗi s, M là độ dài mảng dict, k là độ dài trung bình các phần tử trong mảng dict.
Code & Tools
  • Airflow 2.4.0 - Airflow 2.4.0 mới được ra mắt với những thay đổi đáng kể như giới thiệu về Data-aware scheduling, cải tiến Dynamic Task Mapping, giảm thiểu conflict với ExternalPythonOperator, …
  • Skyplane - Công cụ open-source giúp transfer data nhanh hơn trên các nền tảng Cloud
Feedback
Bạn đánh giá nội dung số newsletter này thế nào?
(1 = Rất tệ / 5 = Rất tốt)
👎 1 —— 2 —— 3 —— 4 —— 5 👍
(Việc đánh giá của các bạn là rất quan trọng, sẽ giúp chúng tôi liên tục cải thiện nội dung newsletter tốt hơn)
Grokking mang lại cho các bạn những kiến thức mới mẻ và hữu ích thông qua:
  • Tech Talk: Là một hoạt động thường xuyên của Grokking từ những ngày đầu thành lập. Tại đây các diễn giả chia sẻ kiến thức xoay quanh Computer Science và Software Engineer. Các buổi Tech Talk đều được record và upload lên kênh youtube của Grokking.
  • Grokking Knowledge Graph: Tập hợp những nguồn kiến thức phong phú với hơn 1000 bài viết chọn lọc, các đầu sách, khóa học, v.v… Các bài viết đều được gán nhãn để giúp bạn đọc dễ dàng tìm kiếm.
  • Webinar: Là chương trình kết nối các kỹ sư Việt Nam và các kỹ sư đang làm việc tại các công ty công nghệ hàng đầu thế giới.
  • Dijkstra: Một ấn phẩm được xuất bản bởi các thành viên của Grokking. Với những bài viết đào sâu vào kỹ thuật và kiến thức khoa học máy tính.
  • Kipalog: Nền tảng chia sẻ kiến thức dành cho các lập trình viên.
  • Newsletter: Những bài viết hay về công nghệ sẽ được gửi tới bạn hàng tuần qua email.
Chúc các bạn sẽ tìm được nhiều điều mới mẻ khi đến với Grokking và xin hẹn gặp lại các bạn vào tuần sau.
Quotes
“C is memory with syntactic sugar.”
— Dennis Kubes
Did you enjoy this issue? Yes No
Grokking Vietnam
Grokking Vietnam

Cảm ơn bạn đã dành thời gian đọc newsletter kỳ này và chúng tôi hi vọng rằng bạn đã khám phá ra một số điều mới mẻ từ các bài viết trên. Các bạn có thể đọc lại các số cũ tại website newsletter.grokking.org

In order to unsubscribe, click here.
If you were forwarded this newsletter and you like it, you can subscribe here.
Created with Revue by Twitter.
Viet Nam