Tag Archives: programming

Gắn râu Yua Mikami – Phần 3: Kết hợp Face Detection + Image Processing và… Toán Học

Series này gồm 3 phần:

  1. Cơ chế hoạt động của các filter Snapchat và Facebook Messenger
  2. Làm quen với các thư viện và API cần sử dụng
  3. Gắn râu bằng cách kết hợp Face Detection + Image Processing và… Toán Học

 

Sau 2 phần trước, chúng ta đã tìm hiểu về cơ chế các filter hoạt động, cũng như cách dùng thư viện để gắn râu vào ảnh.

Tuy nhiên, kết quả vẫn chưa được như mong muốn, chúng ta được tấm hình dị hợm như sau.

Để ghép râu cho khớp và đẹp, chúng ta cần phải:

  1. Xác định được độ dài hàm râu
  2. Tìm vị trí đặt râu cho phù hợp

Đây là lúc chúng ta sử dụng lại công nghệ Face Detection ở phần 1 để xác định những điều trên. Cùng bắt đầu thôi nào!

Continue reading Gắn râu Yua Mikami – Phần 3: Kết hợp Face Detection + Image Processing và… Toán Học

Gắn râu JAV Idol – Phần 2: Làm quen với các thư viện và API cần sử dụng

Series này gồm 3 phần:

  1. Cơ chế hoạt động của các filter Snapchat và Facebook Messenger
  2. Làm quen với các thư viện và API cần sử dụng
  3. Gắn râu bằng cách kết hợp Face Detection + Image Processing và… Toán Học

Ở phần trước, chúng ta đã tìm hiểu về cơ chế hoạt động của các filter trên Snapchat và Facebook. Sau đó, chúng ta đã setup code gọi API để nhận diện các đặc điểm của khuôn mặt.

Trong phần này, chúng ta sẽ đi sâu vào việc sử dụng kĩ thuật xử lý hình ảnh để… gắn râu vào khuôn mặt nhé!

Continue reading Gắn râu JAV Idol – Phần 2: Làm quen với các thư viện và API cần sử dụng

Gắn râu Sơn Tùng – Phần 1 : Bắt chước tính năng cực hay của Snapchat và Facebook

Hôm trước, mình có nhận được một câu hỏi tưởng chừng đơn giản nhưng lại rất hóc búa từ một bạn đọc:

Anh ơi, tại sao Facebook Messenger và Snapchat có thể làm các filter ngầu lòi, có thể gắn râu, gắn tai thỏ, đội mũ cho người dùng qua camera vậy.

Đằng sau một tính năng vui vui, đơn giản như vậy lại là một nền tảng các công nghệ cực kì phức tạp từ facial recognition cho đến image processing, hoàn toàn… không dễ một xíu nào.

Vì thế, trong bài này, chúng ta cùng tìm hiểu cơ chế hoạt động của chúng, sau đó làm một ứng dụng tương tự mang tên … gắn râu Sơn Tùng nhé.

Series này gồm 3 phần:

  1. Cơ chế hoạt động của các filter Snapchat và Facebook Messenger
  2. Làm quen với các thư viện và API cần sử dụng
  3. Gắn râu bằng cách kết hợp Face Detection + Image Processing và… Toán Học

 

Đây là ảnh gốc Sơn Tùng trước khi được gắn râu:

https://gph.is/2H2Gn4U

Còn đây là ảnh Sơn Tùng sau khi đã gắn râu nhờ ứng dụng:

https://gph.is/2IWr6mK

Thú vị chưa nào? Chúng ta cùng bắt đầu nhé!

Continue reading Gắn râu Sơn Tùng – Phần 1 : Bắt chước tính năng cực hay của Snapchat và Facebook

Lật mặt tốc độ tải trang “rùa bò” của Sên Đô và Tiki

Trong bài trước, mình đã chia sẻ về công nghệ “hiện đại” đằng sau tốc độ tải trang chóng mặt của web Thế Giới Di Động.

Mình cũng có chia sẻ về cách optimize front-end nhằm đạt được tốc độ trên. Việc đó hoàn toàn không quá khó, dù bạn có là junior front-end dev. Điển hình là các trang phía dưới do mình đã otpimize:

Thế nhưng, nhiều bạn hỏi mình là “Nếu dễ vậy, tại sao các trang khác không bắt chước Thế Giới Di Động? Tại sao chỉ có TGDD là load nhanh?”

Thế là, mình lại đi tìm hiểu một số đối thủ khác của TGDD như Tiki, Sên Đô. Quả thật, các trang hơi load khá “rùa bò”, không nhanh bằng Thế Giới Di Động.

Tại sao vậy nhỉ? Chúng ta cùng tìm hiểu, thử đưa ra lời khuyên để cải thiện tốc độ tải trang xem sao nhé!

Full disclosure: Mình không được đồng quảng cáo nào khi khen thegioididong và chê các trang dưới đâu nhe nhe 😉

Continue reading Lật mặt tốc độ tải trang “rùa bò” của Sên Đô và Tiki

Đừng hỏi “có nên học cái này cái kia không” nữa!!!

Hôm trước, mình đã làm một bài chửi về việc lười làm bài tập, thích ăn sẵn: Thực trạng học lập trình của sinh viên Việt Nam.

Hôm này, sau khi đi dạo vòng quanh Facebook, đọc nhiều câu hỏi khiến mình cảm thấy buồn bực, ngứa ngáy tay chân. Do vậy, mình viết bài này để chửi thêm một phát về thói lười học và… ngại học.

Bạn nào đọc mà thấy nhột nhột thì cứ nhủ: Chắc thằng Code Dạo nó chừa mình ra nhé :))

Continue reading Đừng hỏi “có nên học cái này cái kia không” nữa!!!

Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 2 : Profiler và Command Line

Nối tiếp phần 1, mình sẽ tiếp tục giới thiệu về những công cụ đơn giản, bá đạo mà truờng không hề dạy, làm đồ án cũng không bao giờ dùng. Tuy nhiên, chúng lại đuợc áp dụng trong 96.69% dự án thực tế.

Thông qua những câu chuyện ngắn gọn, mình sẽ giới thiệu và giải thích về các công cụ này nhé. Chúng lần lượt là:

  • Phần 1: Unit Test và Logging
  • Phần 2: Profiler và Command Line

Nhắc lại một tí, hai nhân vật chính trong câu chuyện này là:

  • Tùng, một sinh viên Ép Tao Dê mới ra trường, gia nhập công ty phần mềm Ép Dê Tao với vị trí junior.
  • Sơn, một anh senior dev kì cựu cao to sáu múi.

Continue reading Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 2 : Profiler và Command Line

Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 1 : Unit Test và Logging

Bạn nghĩ rằng senior hơn junior ở những cái cao siêu như thuật toán phức tạp, viết code cực nhanh, thiết kế hệ thống cực khủng sao?

Lầm rồi! Đa phần họ hơn nhau ở kinh nghiệm làm việc, ở những trải nghiệm thực tế họ gặp phải và những công cụ họ đã sử dụng.

Nhờ kinh nghiệm, Senior dev sẽ biết cách tiếp cận vấn đề, biết lựa chọn những công cụ cần thiết để làm việc hiệu quả hơn, tạo ra phần mềm chạy nhanh hơn, ít lỗi hơn.

Trong bài viết này, mình sẽ giới thiệu về những công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không hề biết.

Những thứ này truờng không hề dạy, làm đồ án cũng không bao giờ dùng. Tuy nhiên, chúng lại đuợc áp dụng trong 96.69% các dự án thực tế.

Continue reading Công cụ đơn giản, bá đạo mà 69.96% sinh viên IT không biết – Phần 1 : Unit Test và Logging

Đưa kiến thức lập trình tự tìm đến bạn thông qua email, Facebook và Youtube

Gần đây, trong 1 vlog, mình có chia sẻ về chuyện lập trình viên phải luôn luôn học tập để nâng cao vốn kiến thức, giữ cho mình không bị lạc hậu và đào thải.

Tuy vậy, kiến thức trong ngành của mình đến từ rất nhiều nguồn. Chỉ việc tìm các nguồn này không cũng đã đủ mệt rồi, chưa kể bạn phải thường xuyên ghé thăm chúng để cập nhật kiến thức mới nữa.

Vậy có cách nào không phải tự học, tự tìm hiểu mà cũng có kiến thức hay không?

Dĩ nhiên là có đấy! Hãy làm theo những cách trong bài viết này, kiến thức sẽ tự tìm đến với bạn.

Continue reading Đưa kiến thức lập trình tự tìm đến bạn thông qua email, Facebook và Youtube

Ngẫm – Không có khiếu code thì liệu có theo ngành lập trình được không?

Cuối năm rồi, nên hôm nay mình sẽ không post bài về technical làm đau não bạn đọc nữa. Thay vào đó, chúng ta hãy cùng chém gió và suy ngẫm về một vấn đề:

  • Để theo ngành lập trình này, liệu có cần năng khiếu hay không?
  • Không có khiếu code thì liệu có tiến xa trong ngành đuợc không?

Góc nhìn của mình là:

Méo cần đâu! Thật ra trong ngành lập trình, tài năng và năng khiếu cũng *éo quan trọng mấy! Đam mê và nỗ lực quan trọng hơn nhiều!

Continue reading Ngẫm – Không có khiếu code thì liệu có theo ngành lập trình được không?

Thói quen đi xin tài liệu, tải và lưu trữ tài liệu lập trình đôi khi có hại hơn bạn tưởng!

Trong bài này, mình nói về một thói quen không tốt mà nhiều bạn sinh viên và lập trình viên hay mắc phải. Thói quen này thoạt thì khá là hữu ích, nhưng thật ra lại có hại nhiều hơn bạn tưởng!

Đó chính là thói quen: Đi xin tài liệu, tải và lưu trữ quá nhiều tài liệu lập trình. Ngạc nhiên chưa?

Continue reading Thói quen đi xin tài liệu, tải và lưu trữ tài liệu lập trình đôi khi có hại hơn bạn tưởng!