Lazy giúp khởi tạo trong multithread

Ở bài viết Singleton Pattern, tôi có trình bày về một cách đơn giản để tạo Singleton Pattern trong môi trường thread-safe bằng cách sử dụng Lazy. Trong .Net, đây là một class được dùng để khởi tạo an toàn trong môi trường đa luồng. Lazy là gì? Lazy<T> là một lớp giúp bạn trì hoãn việc tạo đối tượng cho đến khi sử dụng đối tượng đó lần đầu tiên, chúng ta có thể gọi là Lazy Initialization hay là khởi tạo chậm đều được. ...

11/08/2024

Lưu trữ dữ liệu tốn ít tài nguyên hơn dựa vào bit trong CSharp

Việc sử dụng bit trong C/C++ có lẽ các bạn đã quá quen thuộc rồi. Trong C/C++ có 1 phần khá hay là bit fields, bạn có thể tạo được nhiều biến chỉ với 1 byte, đương nhiên là trong khuôn khổ số bit đó thể hiện. Nay mình lên thêm một bài dành cho C#. Nói 1 cách chính xác thì nó không giống như bit fields trong C/C++. Nó không tối ưu size của biến trong quá trình runtime, nó dùng để tối ưu khi sử dụng để lưu trữ dữ liệu. Do đó, bài viết này không mô tả khái niệm bit fields mà là thủ thuật sử dụng bit để tối ưu dữ liệu để lưu trữ. Chúng ta sẽ đi xuyên suốt bài viết này và cùng so sánh điểm khác biệt giữa C/C++ và C#. ...

06/08/2024

Firefox có gì hay?

Thế giới trình duyệt Có lẽ các bạn chưa biết thế giới trình duyệt biến đổi không ngừng. Liệu bạn có tin được không khi những năm 90, trình duyệt không hề miễn phí như bây giờ. Bạn phải trả tiền để có trình duyệt truy cập vào internet, phổ biến là Netscape. Từ khi Internet Explorer ra đời miễn phí, nó đã thay đổi hoàn toàn thế giới trình duyệt lúc bấy giờ, trình duyệt dần từ trả phí sang miễn phí. Firefox ra đời, Chrome ra đời và vô số trình duyệt khác ra đời cho đến bây giờ có thể kể đến như Edge, Brave, Vivaldi,…. ...

04/08/2024

Hiểu về từ khoá this trong Javascript

Với các bạn từng học các ngôn ngữ hướng đối tượng khác ví dụ như C#, Java,.. thì chắc hẳn bạn đã rất quen với khái niệm this . Và khi mình tìm hiểu một chút về từ khoá này thì mỗi ngôn ngữ sẽ có cách sử dụng khá khác nhau. Nhưng nhìn chung, mọi ngôn ngữ đều chung một mục đích hay sử dụng là phân biệt parameter của function và properties của class, ngoài ra còn một số cách sử dụng khác. Tuy nhiên, trong bài viết này, tôi sẽ trình bày với các bạn từ khoá this trong Javascript. ...

29/04/2024

Đổi grub boot mặc định

Nhiều bạn cài song song hai hệ điều hành cho công việc và học tập như Windows và Linux. Một số bạn thích cài đặt Linux làm hệ điều hành mặc định. Tuy nhiên, cũng có những bạn muốn hệ điều hành chính là Windows. Sau khi bạn cài song song hai OS trên máy tính, thì khi bạn bắt đầu khởi động máy, Grub sẽ xuất hiện để bạn chọn OS mà bạn muốn truy cập vào. Nếu như bạn là người sử dụng Windows làm hệ điều hành mặc định thì việc này sẽ khiến bạn khó chịu. Nhưng đừng lo, bạn vẫn có thể tùy chỉnh menu boot này theo ý thích của mình. ...

23/03/2024

Cách backup và khôi phục Ghost CMS

Ghost đã không còn support SQLite trên production nữa. Bạn cần phải sử dụng MySQL 8 để cài đặt blog của mình. Dù vậy, bài viết này vẫn có giá trị với bạn, ngoại trừ phần SQL Nhắc đến thì đây là một nỗi buồn của tôi 🥲. Vào một ngày đẹp trời, với việc nhầm lẫn không cần thiết của mình, tôi đã nhấn nút xoá đi trang blog mà tôi đã chạy bao năm. Bùm, tất cả bài viết của tôi đã không còn nữa. Một nỗi tiếc nuối không thể tả, tôi đã viết khá nhiều bài viết trong khoảng thời gian dài và không có sao lưu dữ liệu cho nên không thể khôi phục lại được nữa. Nỗi đau cùng sự tiếc nuối của mình, tôi xin hứa sẽ không để chuyện đó xảy ra nữa. Cho nên bài viết này ra đời. ...

15/11/2023

Fluid Communities - Thuật toán nhận diện cộng đồng

A. Dẫn nhập Liệu rằng các bạn đã từng sử dụng mạng xã hội bao giờ chưa? Giả sử mỗi người tham gia mạng xã hội là một node và mối liên hệ của mỗi người là một liên kết giữa các node. Thì chúng ta sẽ có hình mô tả như dưới đây Vậy các bạn có bao giờ thắc mắc, khi có một đồ thị như thế thì người ta sẽ làm gì với nó không? Ở một khía cạnh nhất định, người ta sẽ nghiên cứu cách các mối liên hệ của các cá nhân với nhau, liệu rằng có một điểm chung giữa các người này hay không? Liệu họ có thể sẽ có hành động nào tiếp theo hay không? Đó là một trong vô số vấn đề mà người ta nghiên cứu. Nhưng có phải bạn cũng cảm thấy, thường thì người chung một cộng đồng nào đó thì thường có các điểm chung giống nhau hay không? Vậy làm sao ta có thể phát hiện được cộng đồng đó để nghiên cứu tiếp theo? Đây là bài viết phục vụ cho bài toán này. ...

14/11/2022