Buckle spring keyboard sound on Fedora Wayland

Tải bucklespring tại: https://github.com/zevv/bucklespring

Cài đặt các gói phụ thuộc:

sudo dnf install gcc openal-soft-devel alure-devel libX11-devel libXtst-devel libinput-devel

Build gói với libinput:

make libinput=1

Thêm user của bạn vào nhóm input:

sudo usermod -a -G input $(whoami)

Đăng nhập lại để việc thêm nhóm có hiệu lực.

Chạy ứng dụng:

./buckle

Cấu hình Bridged Wireless Access Point cho Raspberry Pi 4

                                         +- RPi -------+
                                     +---+ 10.10.0.2   |          +- Laptop ----+
                                     |   |     WLAN AP +-)))  (((-+ WLAN Client |
                                     |   |  Bridge     |          | 10.10.0.5   |
                                     |   +-------------+          +-------------+
                 +- Router ----+     |
                 | Firewall    |     |   +- PC#2 ------+
(Internet)---WAN-+ DHCP server +-LAN-+---+ 10.10.0.3   |
                 |   10.10.0.1 |     |   +-------------+
                 +-------------+     |
                                     |   +- PC#1 ------+
                                     +---+ 10.10.0.4   |
                                         +-------------+
[Đọc tiếp]

Nâng cấp Fedora 36 lên Fedora 37

  • Cập nhật phiên bản mới nhất của Fedora 36:

    sudo dnf upgrade --refresh
    
  • Khời động lại máy.

  • Cài đặt gói dnf-plugin-system-upgrade nếu nó chưa được cài đặt:

    sudo dnf install dnf-plugin-system-upgrade
    
  • Tải các gói của Fedora 37:

    sudo dnf system-upgrade download --releasever=37
    
  • Bắt đầu nâng cấp. Máy sẽ bị khởi động lại:

    sudo dnf system-upgrade reboot
    
  • Đợi quá trình nâng cấp hoàn tất.

Tham khảo

https://docs.fedoraproject.org/en-US/quick-docs/dnf-system-upgrade/

fedora 

[Rust Book] 4.1. Tham chiếu và Vay Mượn (References and Borrowing)

References and Borrowing Vấn đề với đoạn code trong Ví dụ 4-5 là chúng ta phải trả về String cho lời gọi hàm để có thể sử dụng String sau khi gọi calculate_length, bởi vì String đã được move vào calculate_length. Dưới đây là cách để định nghĩa và sử dụng hàm calculate_length, mà có một tham chiếu tới một đối tượng như một tham số thay vì lấy mất ownership của giá trị đó: [Đọc tiếp]

[Rust Book] 4.1. Ownership là gì

Ownership là tính năng độc đáo nhất của Rust, nó cho phép Rust đảm bảo an toàn cho bộ nhớ mà không cần garbage collector. Do đó, hiểu về cách hoạt động của ownership trong Rust rất quan trọng. Trong chương này, chúng ta sẽ nói về ownership cũng như nhiều tính năng khác: borrowing, slice và cách Rust loại dữ liệu ra khỏi bộ nhớ.

Ownership là gì?

Tính năng trung tâm của Rust là ownership. Mặc dù bản thân tính năng khá đơn giản để giải thích, nhưng nó có ảnh hưởng rất sâu đến phần còn lại của ngôn ngữ.

Tất cả các chương trình phải quản lý cách chúng sử dụng bộ nhớ máy tính khi chạy. Một vài ngôn ngữ có garbage collection liên tục tìm những phần không dùng bộ nhớ nữa trong khi chương trình chạy; một vài ngôn ngữ khác thì lập trình viên phải tự chỉ ra và làm trống bộ nhớ. Rust sử dụng cách tiếp cận thứ ba: bộ nhớ được quản lý thông qua một hệ thống ownership với một bộ quy tắc cho trình biên dịch kiểm tra khi biên dịch. Không có tính năng nào ownership làm chậm chương trình của bạn khi chạy cả.

[Đọc tiếp]

[Rust Book] 3.5. Luồng điểu khiển

Luồng điểu khiển

Việc quyết định chạy code hay không hay chạy code lặp đi lặp lại dựa vào điều kiện là những block code cơ bản trong hầu hết các ngôn ngữ lập trình. Phổ biến nhất là câu điều kiện if và vòng lặp.

if Expressions

Câu điều kiện if cho phép bạn rẽ nhánh code tùy thuộc theo điều kiện. Bạn đưa ra một điều kiện và sau đó chỉ ra, “Nếu điều kiện này thỏa mãn, chạy block code này. Nếu điện kiện không thỏa mãn, đừng chạy block code này.”

Tạo một project mới tên là branches trong thư mục projects của bạn để tìm hiểu về câu điều kiện. Trong file src/main.rs, nhập như sau:

[Đọc tiếp]

[Rust Book] 3.4. Comment

Comments

Các lập trình viên cố gắng để làm cho code của họ dễ hiểu, nhưng đôi khi phải cần thêm những đoạn giải thích. Trong những trường hợp này, lập trình viên sẽ để lại comment trong source code của họ, thứ mà trình biên dịch sẽ bỏ qua nhưng người đọc source code có thể thấy hữu dụng.

Ví dụ về một comment đơn giản:

// hello, world
[Đọc tiếp]