Series Phản Phác Qui Chân – Tuốt tuồn tuột về Unicode và Charset

Chào mừng các bạn đã quay lại với series Phản Phác Quy Chân. Lần này series sẽ tập trung giải thích mổ xẻ tất tần tật về Unicode, encode và charset. Hầu hết các ngôn ngữ/framework đều hỗ trợ sẵn Unicode nên bạn có thể thoải mái code cả mấy năm trời mà chẳng cần quan tâm đến 2 thằng này. Tuy nhiên, không phải hù gì các bạn nhưng mà “Lỗi liên quan tới encoding là những lỗi khó chịu và khó sửa nhất”, do đó tự trang bị những kiến thức “xưa mà không cũ” về Encoding vẫn khá là cần thiết đấy nhé.

So I have an announcement to make: if you are a programmer working in 2003 and you don’t know the basics of characters, character sets, encodings, and Unicode, and I catch you, I’m going to punish you by making you peel onions for 6 months in a submarine. I swear I will.

And one more thing:

IT’S NOT THAT HARD.

Continue reading Series Phản Phác Qui Chân – Tuốt tuồn tuột về Unicode và Charset

Advertisements

Chuyện ngày xưa – tôi đã viết sách như thế nào?

Đêm nay mưa rả rích, gió xì xào, ngoài hè văng văng tiếng dế kêu da diết, làm mình bỗng nhớ nhà, nhớ trường, nhớ quê. Lục đống hình ngày xưa ra xem bỗng thấy một cuốn sách bìa xanh xanh vàng vàng. Bao nhiêu kỉ niệm xưa ùa về, đành kể lại cho mọi người nghe để trải lòng vậy.

13

Bạn nào từng đọc phần About me chắc cũng thấy mình từng đề cập đến cuốn này. Đây là một cuốn sách mình viết vào năm 2013, khoảng năm 3 Đại học. Có thể xem nó là tiền thân hoặc ông cố nội của blog toidicodedao bây giờ.

Để mình kể cho các bạn nghe, đằng sau 2 tấm bìa xanh xanh vàng vàng là 1 tháng trời công sức và mồ hôi và nước mắt của bao nhiêu thế hệ sinh viên FPT.

Continue reading Chuyện ngày xưa – tôi đã viết sách như thế nào?

Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Lý giải chút về tên series

返璞归真 – Phản phác quy chân: Nghĩa là điểm cao nhất cũng chính là điểm xuất phát, được ứng dụng trong rất nhiều lĩnh vực. Trong võ học, nó có nghĩa là đạt tới cảnh giới “Tối thượng” trong truyền thuyết, quên đi tất cả võ học trong thiên hạ, bản thân đã không còn chiêu thức cụ thể, chỉ dựa vào ý cảnh mà đơn giản xử lý.

Võ học được thành lập từ các chiêu thức cơ bản, tuyệt thế võ công cũng từ các chiêu thức cơ bản mà ra. Code học cũng tạo thành từ bit/byte cơ bản, chương trình phức tạp đến mấy cũng dịch được ra bytecode. Đôi khi, ta đã quá quen với việc dùng thư viện, dùng framework mà quên thì những thứ nằm sâu bên dưới, không nắm được bản chất. Có những vấn đề mà phải nắm rõ bản chất của nó ta mới có thể giải quyết được.

Như cái tên “Phản Phác Quy Chân”, series này không giới thiệu công nghệ hay ngôn ngữ mới, mà sẽ tập trung quay lại những cái bản chất, đơn giản, tinh túy nhất mà ít người quan tâm để ý (Bên tiếng Anh có một từ tương tự : Back to Basic, bỏ qua những cái phức tạp, quay lại những cái cơ bản để hiểu tận gốc vấn đề).

01_s_by_darkdamage-d5yo32c

Ở bài viết đầu, mình sẽ nhắc sơ lại về string, cũng như giải thích lý do vì sao việc cộng string sẽ ảnh hưởng tới bộ nhớ và performance của hệ thống (Hình minh họa và bài viết méo liên quan với nhau đâu, vì tác giả thích thế :v).

Continue reading Series Phản Phác Quy Chân – Tại sao cộng string lại chậm

Chuyện học tiếng Anh – Phần 3: Tôi đã đạt IELTS 7.5 như thế nào

Ở bài trước, mình đã chia sẻ một số kinh nghiệm học thi TOEIC. Trong bài viết này, mình sẽ chia sẻ một số kinh nghiệm học thi IELTS – một kì thi toàn diện và khó hơn TOEIC rất nhiều.

certificate

Như đã nói ở bài đầu, cách học của mình có thể sẽ phù hợp với bạn này nhưng không phù hợp với bạn khác. Các bạn nên chắt lọc, áp dụng những thứ mà bản thân dùng được chứ đừng làm theo 100% nhé.

Continue reading Chuyện học tiếng Anh – Phần 3: Tôi đã đạt IELTS 7.5 như thế nào

Series JavaScript sida – Bind, Call và Apply trong JavaScript

Để hiểu rõ về các hàm được đề cập trong bài viết này, các bạn nên ôn lại chút kiến thức về object trong javascriptđít (this) trong javascript nhé. Như đã hứa, trong bài này mình sẽ giới thiệu bộ 3 function bind, call ,apply. Đây là 3 hàm tạo nên sự mạnh mẽ và bá đạo của JavaScript.

Trói đít (this) lại bằng bind

Bind là một hàm nằm trong Function.prototype, do đó chỉ có function mới có khả năng gọi nó. Như đã nhắc tới trong bài viết về this, bind được dùng để xác định tham số this cho một function.

1

Continue reading Series JavaScript sida – Bind, Call và Apply trong JavaScript

Chuyện học tiếng Anh – Phần 2: Tôi đã đạt TOEIC 945 như thế nào

Với nhiều bạn sinh viên, TOEIC là một kì thi khá quan trọng, vì nhiều trường đại học đòi hỏi tấm bằng TOEIC trên 400-600 điểm mới cấp bằng. Nối tiếp phần trước, trong bài viết này, mình sẽ chia sẻ lại một số kinh nghiệm quá trình ôn tập, học và thi TOEIC. Bài viết này ngắn thôi:

Mình ôn tập, học mất 2 tháng, sau đó bước vào phòng thi và làm bài. Sau 2 tiếng mình ra khỏi phòng, làm bài dư 15 phút. Mình về nhà chờ 1 tháng, sau đó quay lại trung tâm nhận kết quả. Chấm hết…

certificate

Đùa các bạn tí ấy mà, các bạn kéo xuống dưới để xem tiếp bài viết nhé.

Continue reading Chuyện học tiếng Anh – Phần 2: Tôi đã đạt TOEIC 945 như thế nào

Nhập môn Design Pattern (Phong cách kiếm hiệp)

Nhập đề

Kinh thư ghi lại rằng, con đường tu chân có 3 cảnh giới: Luyện khí, Trúc cơ và Kết đan. Luyện khí là quá trình rèn thân luyện thể, cho phàm thân kiên cường dẻo dai. Trúc cơ là quá trình du nhập thiên địa linh khí vào thể nội, giúp khai thông kinh mạch. Khi thiên địa linh khí trong đan điền đạt tới một nồng độ nhất định, sẽ kết thành Kim Đan, đặt bước chân đầu tiên con đường tu chân đại đạo.

Con đường khởi đầu của code học cũng có 3 cảnh giới: Học đồ (Junior Developer), Học sĩ (Developer), Đại sư (Senior Developer). Để đạt đến cảnh giới Đại sư (senior), bất kì Học Sĩ (dev) nào cũng cần phải tường tận vài Design Pattern cơ bản để phòng thân. Bài viết này do tại hạ viết ra trong một phút cao hứng nhất thời, nhằm chia sẻ với các nhân sĩ võ lâm trên con đường truy cầu đại đạo.

911201211_9_2012_tuchan1s

Continue reading Nhập môn Design Pattern (Phong cách kiếm hiệp)