Grokking Newsletter

By 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

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

By subscribing, you agree with Revue’s Terms of Service and Privacy Policy and understand that Grokking Newsletter will receive your email address.

10.2K

subscribers

246

issues

#246・

#242 - Tại sao Twitter không "down" - Từ góc nhìn của một SRE

P/S: Dạo này Newsletter chỉ có 1 vài người soạn nên nếu thấy bài viết ít mong các bạn thông cảm. Đây là 1 dự án được thực hiện cũng khá lâu, và các thành viên của team Newsletter cũng đã rất nỗ lực để duy trì trong nhiều năm. Tuy nhiên ai cũng có những công v…

 
#245・

#241 - Có nên thay thế C/C++ bằng những ngôn ngữ khác?

(by lpv)

 
#244・

#240 - Giao thức đồng thuận Kraft

(by lpv)

 
#243・

#239 - Cách Wix xử lý multi-threading trong Node.js

(by lpv)

 
#242・

#238 - Làm thế nào để contribute vào mã nguồn Redis?

(by lpv)

 
#241・

#237 - Nền tảng quản lý cơ sở hạ tầng Skynet tại Gojek

Đề ra tuần này: Remove Nth Node From End of ListCho một danh sách liên kết, hãy xóa nút thứ n tính từ phần tử cuối cùng của danh sách liên kết.Lời giải đề bài tuần trước: Zigzag Conversion(by ndaadn)Đề bài: Yêu cầu viết một hàm nhận vào một chuỗi “s” và số lư…

 
#240・

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

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.

 
#239・

#235 - Một cái nhìn sâu về Idempotence

Đề ra tuần này: Add Bold Tag in String(by phucnh)Cho một string s và một array chứa strings words. Ta cần phải viết thêm bold tag <b> và </b> cho các substrings words chứa trong s. Nếu 2 substrings chồng lên nhau thì ta cần phải bọc chúng với chỉ …

 
#238・

#234 - Kỹ thuật bypass Cloudflare

Đề ra tuần này: Last Stone Weight II(by ndaadn)Cho một mảng các số nguyên dương stones, với stones[i] là trọng lượng của viên đá thứ i.Ta chọn hai hòn đá bất kỳ, có trọng lượng lần lượt là x, y và đập hai hòn đá vào nhau. Giả sử x <= y, kết quả của việc đậ…

 
#237・

#233 - Tìm hiểu về Colossus, hệ thống lưu trữ phân tán của Google

Tiktok hacked: over 2bn user data

 
#236・

#232 - Cải thiện tốc độ tìm kiếm text trong Postgres

Đề ra tuần này: Snapshot Array(by ndaadn)Cài đặt cấu trúc dữ liệu SnapshotArray hỗ trợ những hàm sau:Hàm khởi tạo SnapshotArray(int length): khởi tạo một cấu trúc dữ liệu tương tự mảng, với độ dài là "length". Ban đầu, tất cả các giá trị đều là 0.Hàm set(inde…

 
#235・

Grokking Techtalk #46: Những bài học về xâm nhập và bảo vệ hệ thống mạng Việt Nam

Link đăng ký: https://forms.gle/bAXw6sXE3Qb4NTbq9Xâm nhật và bảo vệ hệ thống mạng là những chủ đề quan trọng, đặc biệt trong bối cảnh liên tục xảy ra nhiều vụ đánh mất thông tin tại các hệ thống.Chính vì lí do đó, ở số Techtalk #46 này, Grokking Vietnam xin g…

 
#234・

#231 - Gojek scale Geo-Search gấp 10 lần ra sao?

Đề ra tuần này: Time Based Key-Value Store(by ndaadn)Thiết kế và cài đặt một cấu trúc dữ liệu key-value theo mốc thời gian (timestamp), có thể lưu trữ nhiều giá trị cho cùng một key tại các timestamp khác nhau và truy xuất giá trị của key tại một timestamp nh…

 
#233・

#230 - Tìm hiểu về WebRTC và cơ chế peer to peer networking

Đề ra tuần này: Find Root of N-Ary Tree(by phucnh)Cho một N-ary tree được biểu diễn bởi một list của các nút, ta có giá trị của các nút là duy nhất. Hãy trả về nút gốc của N-ary tree.Lời giải đề bài tuần trước: Minimum Knight Moves(by ndaadn)Đề bài yêu cầu tì…

 
#232・

#229 - Hệ thống authorization ở Netflix

Đề ra tuần này: Minimum Knight Moves(by ndaadn)Cho một bàn cờ vua rộng vô hạn, và quân mã tại toạ độ [0, 0]. Quân mã có thể di chuyển tới một trong 8 vị trí tiếp theo trên bàn cờ. Hãy tìm số lần di chuyển nhỏ nhất để quân mã tới được toạ độ [x, y].Lời giải đề…

 
#231・

#228 - Tìm hiểu về mô hình Data Platform hiện đại

Đề ra tuần này: Possible Bipartition(by ndaadn)Cho trước một nhóm gồm n người từ 1 đến n và một mảng dislike bao gồm các cặp số [a,b] thể hiện người a ghét người b. Xác định xem có thể chia nhóm n người này thành 2 nhóm sao cho trong 2 nhóm này không có ai gh…

 
#230・

#227 - Thiết kế retry consumer cho Kafka

Đề ra tuần này: Max Consecutive Ones III(by ndaadn)Cho một chuỗi nhị phân và một số k, bạn được phép đổi nhiều nhất k số 0 thành số 1. Hãy trả lại độ dài lớn nhất của chuỗi số 1 liên tiếp mà bạn có thể tạo được.Ví dụ:Input: nums = [1,1,1,0,0,0,1,1,1,1,0], k =…

 
#229・

#226 - Giải pháp Cache Invalidation tại Facebook

Đề ra tuần này: Making File Names Unique(by ndaadn)Khi tạo một thư mục mới, nếu tên thư mục trùng với tên thư mục hiện có, hệ thống sẽ tự động đổi tên thư mục thành dạng <tên thư mục>(số thứ tự tiếp theo).Ví dụ:Thư mục hiện có: “gta”Thư mục được tạo: “g…

 
#228・

#225 - Xây dựng kiến trúc Event-Driven với Kafka, Spark, và Cassandra

Đề ra tuần này: Verify Preorder Serialization of a Binary TreeMột trong những cách để lưu cây nhị phân vào file là ta tiến hành ghi kết quả của việc duyệt cây theo thứ tự trước (preorder traversal), với những nút là null, ta ghi giá trị "#".Đề bài cho một chu…

 
#227・

#223 - Tổng hợp 1000 bài viết từ Grokking Newsletter

Đề ra tuần này: Next PermutationBài toán cho trước một mảng các số tự nhiên. Yêu cầu sinh ra một mảng số tự nhiên khác là hoán vị tiếp theo theo tứ tự từ điển của mảng ban đầu. Ví dụ 1:Input: [1,2,3]Output: [1,3,2]Ví dụ 2:Input: [1,1,5]Output: [1,5,1]Lời giải…