Skip to main content

· 4 min read
Doko

Ngày xửa ngày xưa, sâu thẳm trong một khu rừng già. Có một con Ếch to trong một cái ao nhỏ. Ếch này là ếch cái. Mỗi ngày của nó đều là một ngày yên bình, chỉ có ăn, bơi và ngủ. Từ sáng đến tối, nó đều làm điều mà các con ếch khác đều làm, chỉ có điều là nó chơi nhiều hơn, ăn nhiều hơn, nhảy xa hơn. Nó thông minh hơn và kêu to hơn nữa.

Mọi người trong khu rừng đều có thể nghe thấy tiếng ộp oạp của nó, và điều đó khiến họ vui. Do khu rừng rất dễ đi lạc, nên nhờ tiếng của con ếch mà họ có thể tìm được đường quay lại cái ao đó khá dễ dàng. Cũng có thể điều đó sẽ không còn đúng nữa nếu con ếch tiếp tục oàm oạp vào ban đêm, nhưng nó cũng đã quá lười và mệt mỏi khi màn đêm buông xuống mất rồi.

· One min read
Doko
  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.

· 3 min read
Doko

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);
}

· 6 min read
Doko

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.

· 3 min read
Doko

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.

· 9 min read
Doko

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:

· 3 min read
Doko

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:

· 2 min read
Doko

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.

· 11 min read
Doko

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.

· 4 min read
Doko

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ụ.