Skip to main content

Thêm font cho Linux

· One min read
Doko
Writer
  1. Mở console.
  2. cd vào folder $HOME.
  3. Copy các file font vào đây.
info

Có thể dùng script sau để tách font từ mkv, cần cài đặt thêm mkvmerge:

  1. Update font cache:
fc-cache -fv
  1. Xong.

Rusty Diary (02)

· 3 min read
Doko
Writer

Sau một thời gian làm việc với Rust theo dạng qua loa chơi chơi thì mình sẽ ghi chú lại những thứ mình nhớ được. Bao gồm từ cơ bản đến khó hơn một chút.

Rusty diary, part 2

Immutable

Mặc định biến trong rust là immutable, trừ khi dùng mut, nên nếu:

fn main() {
let x = 5;
println!("The value of x is: {}", x);
x = 6;
println!("The value of x is: {}", x);
}

Utawarerumono Timeline

· 6 min read
Doko
Writer

Thuyết tiến hóa

Trong quá trình khám phá và nghiên cứu về lịch sử phát triển của loài người về mặt sinh học. Người ta cho rằng con người được tiến hóa từ loài vượn cổ cách đây nhiều triệu năm theo thuyết tiến hóa của Darwin. Tuy nhiên ngày càng có nhiều bằng chứng cho thấy con người và loài tinh tinh hiện đại đều có chung tổ tiên, tức là đã có một bước nhảy nào đó trong chuỗi tiến hóa của nhân loại, mà ngay cả các nhà khoa học vô thần cũng phải thừa nhận. Loài này chưa được tìm thấy, hay còn gọi là Missing Link trong chuỗi, nhưng dự đoán đã có sự phân hóa từ khoảng 6 đến 11 triệu năm trước.

Đó cũng chính là nguồn cảm hứng cho cả series Utawarerumono, series Visual Novel pha yếu tố nhập vai chiến thuật (Tactical RPG) từ Leaf, một nhánh con từ công ty mẹ là Aquaplus, một hãng làm VN nổi tiếng của Nhật Bản.

Tổng quan

Utawarerumono hiện bao gồm 3 game chính:

  • Utawarerumono: Prelude to the Fallen
  • Utawarerumono: Mask of Deception
  • Utawarerumono: Mask of Truth

Trong đó game đầu tiên đã phát hành trên PC từ 2002, chưa từng có bản dịch tiếng Anh chính thức nào nhưng có bản dịch do fan làm. Đến năm 2006 thì được port lên Playstation 2, có thêm lồng tiếng, đổi gameplay và bỏ các cảnh người lớn trong game, và đến năm 2006 thì được port lên PSP.

Đến năm 2015 và 2016, 2 phần tiếp theo (Mask of Deception và Mask of Truth) được phát hành tại Nhật và 1 năm sau đó nữa thì được phát hành tại thị trường phương Tây, có tiếng Anh.

Năm 2018, bản remake của game đầu tiên được phát hành và đến tháng 1 năm 2021 thì cả 3 game đã được release lên Steam, đánh dấu sự trở lại thị trường PC sau gần 20 năm.

Bối cảnh

Đây là một series VN thể loại fantasy, lấy cảm hứng từ văn hóa Nhật Bản và người Ainu. Tiếng Ainu khác với tiếng Nhật và không có bộ chữ chính thống (cũng giống như ngôn ngữ của đồng bào thiểu số Việt Nam), nên phần tên người cũng được dịch hơi khác so với cách romaji thông thường.

Đoạn sau đây trở đi là spoiler, nên dừng đọc nếu không muốn bị spoil hết nội dung.

Rusty Diary (01)

· 3 min read
Doko
Writer

Sau một thời gian làm việc với Rust theo dạng qua loa chơi chơi thì mình sẽ ghi chú lại những thứ mình nhớ được. Bao gồm từ cơ bản đến khó hơn một chút.

Sau một thời gian làm việc với Rust theo dạng qua loa chơi chơi thì mình sẽ ghi chú lại những thứ mình nhớ được. Bao gồm từ cơ bản đến khó hơn một chút.

Flutter Architecture với Provider và Provider Architecture MVVM (phần 1)

· 9 min read
Doko
Writer

flutter

Để khỏi mất thời gian giới thiệu. Chúng ta có luôn 2 từ khoá, cũng là 2 thư viện được sử dụng để thiết kế khung code cho Flutter. Do Flutter là UI framework dạng widget/component tương tự với React, ta cũng có thể dùng Redux nhưng khối lượng code sẽ dày lên không cần thiết. Và qua một thời gian nghiên cứu, thì Provider architecture có vẻ phù hợp hơn cả:

Tại thời điểm viết bài, 2 lib cần thiết có version tương ứng là:

provider: 4.0.2
provider_architecture: 1.0.5

Chúng ta sẽ xây dựng một app đơn giản: 2 màn hình:

Đổi git remote origin

· 3 min read
Doko
Writer

git

Mặc định khi clone một project từ git (github, gitlab,…), trong thư mục của project sẽ có một thư mục con tên .git. Trong đó có một số file và thư mục có dạng:

Kill the Terminal and disable its session restoration

· 2 min read
Doko
Writer

The problem

When developing apps using React Native, I realized that every time the packager opens, it will spawn a new process of Terminal (Mac OS built-in shell app). This behavior is not too complicated to deal with if you are only using in local development. Right click > Quit and everything will be done.

But with CI / CD, it's another story.

RESTful với JavaLite và MySQL / SQLite

· 11 min read
Doko
Writer

javalite

1. Giới thiệu

JavaLite là một bộ frameworks (gồm nhiều framework con) dùng để đơn giản hóa một số tác vụ, đầu việc thường làm khi phát triển ứng dụng, thường là web. Bài hướng dẫn sau đây tập trung vào việc tạo một ứng dụng Restful với MySQL / SQLite.

Thủ thuật Timing trong Aegisub

· 4 min read
Doko
Writer

Timing hiểu đơn giản là căn thời gian cho câu phù hợp với mạch nói trong phim. Và tiêu chuẩn của mình là thế này:

  • Không bao giờ được đặt 2 câu do 2 người nói trên cùng 1 frame hoặc cùng 1 style. Cái này gặp trên các file sub trên subscene rất nhiều. Nhưng mình không cho phép. Mỗi câu phải có một line riêng, không có gạch đầu dòng.

Điều quan trọng trong lúc time là câu nói phải phù hợp. Ở đây lấy cái Stand By Me hôm nọ làm ví dụ.

Disable MDM on Mac OS Big Sur

· One min read
Doko
Writer

There are several ways to disable MDM on Mac OS. If you don't know what they are, you can do a quick search on Google.

Anyway this is what needed to be done: Edit hosts file:

sudo nano /private/etc/hosts

(You might be asked for your password)

Then append these lines:

0.0.0.0 iprofiles.apple.com // [!code ++]
0.0.0.0 mdmenrollment.apple.com
0.0.0.0 deviceenrollment.apple.com
0.0.0.0 gdmf.apple.com

And DO NOT append this line:

0.0.0.0 albert.apple.com