Category Archives: Chuyện coding

Tât tần tật những thứ liên quan đến coding.

Microservice có gì hot? Chuyện về cái bồn cầu và microservice

Thời gian gần đây, đi liền với sự nổi dậy của cloud computing, microservice cũng đang dần trở thành một từ khóa hot. Bài viết này sẽ giới thiệu tổng quan về microservice một cách đơn giản, dễ hiểu cho bà con gần xa.

Micro là rất nhỏ, service là dịch vụ, vậy microservice nghĩa là… dịch vụ vô cùng nhỏ. Nói đơn giản, microservice là một kiếu kiến trúc phần mềm. Các module trong phần mềm này được chia thành các service rất nhỏ (microservice).

Có vẻ phức tạp ha? Ủa mà vậy thì liên quan gì đến cái bồn cầu nhỉ?? Đọc hết bài rồi sẽ hiểu ngay thôi!

Continue reading Microservice có gì hot? Chuyện về cái bồn cầu và microservice

Advertisements

Series Nhận diện Idol: Phần 4.2 – Sử dụng Microsoft Face API để training hệ thống

Sau phần 4.2, hẳn các bạn cũng đã hiểu cơ chế hoạt động của một hệ thống nhận diện khuôn mặt. Trong phần này, chúng ta sẽ sử dụng dữ liêu khuôn mặt đã có của 12 VAV Idol để huấn luyện cho máy (Được ngắm gái xinh chắc nó mừng lắm). Bắt đầu nào!

screen-shot-2017-01-06-at-4-45-17-pm

Continue reading Series Nhận diện Idol: Phần 4.2 – Sử dụng Microsoft Face API để training hệ thống

Series Nhận diện Idol: Phần 4.1 – Lý thuyết và cơ chế nhận diện khuôn mặt

Ở phần 3, chúng ta đã có cơ sở dữ liệu của các VAV Idol xinh đẹp. Ở phần này, ban đầu mình cũng định hướng dẫn các bạn sử dụng trực tiếp API của Microsoft luôn.

Tuy vậy, mình nhận được nhiều feedback dạng: Sau không hướng dẫn cách code từ đầu bằng thuật toán mà lại sử dụng API? Xài API có gì hay ho cao siêu đâu?

filtered

Ờ mà cũng đúng thật, dùng API có gì cao siêu đâu nhỉ? Bản thân mình cũng không muốn các bạn chỉ biết cắm đầu dùng API mà không rõ cơ chế hoạt động bên trong.

Nhận diện khuôn mặt là một trong những ứng dụng phổ biến của Machine Learning. Nguyên tắc hoạt động của chúng cũng khá thú vị nên biết thêm một chút cũng không hại gì. Thôi thì tiện tay mình thêm tí “Học thuật” vào bài viết cho nó phức tạp hơn vậy.

Các bạn chịu khó đọc kĩ nguyên lý trước khi nhảy vào code nhé.

Continue reading Series Nhận diện Idol: Phần 4.1 – Lý thuyết và cơ chế nhận diện khuôn mặt

Rảnh rỗi không biết code gì, sao không làm pet project?

Hôm trước, sau khi post bài viết “Lập trình viên lúc rãnh rỗi thì làm gì?”, mình nhận được một câu hỏi từ nhiều bạn: “Anh ơi, lúc rảnh em thích code cơ! Nhưng mà em không biết phải code gì?”.

Mình viết bài này để trả lời tường tận hơn câu hỏi của các bạn. Lời khuyên của mình là: Nếu không biết code gì, hãy tìm pet project và code. Pet project ở đây là một dự án ngắn ngắn, nho nhỏ do chúng ta tự nghĩ ra.

Vậy code pet project thì được gì? Làm sao nghĩ ra ý tưởng và giới thiệu pet project tới mọi người? Đọc bài viết để biết nhé!

Continue reading Rảnh rỗi không biết code gì, sao không làm pet project?

Series Nhận diện Idol: Phần 3 – Cùng đi đào dữ liệu VAV Idol

Sau bao ngày chờ đợi thì phần 3 của series cũng được ra mắt các bạn đọc. Lý do phần này bị mình “ngâm dấm” hơi lâu là do… JAV và 18+.

Do blog có nhiều trẻ em và cụ già đọc nên mình không thể thoải mái để link và hình ảnh 18+ trong bài viết được. Vì thế mình thay đổi hướng tiếp cận vấn đề. Thay vì nhận diện JAV Idol, chúng ta sẽ chuyển qua nhận diện… VAV Idol.

Sản phẩm cuối cùng của chúng ta sẽ có tương tự thế này, với kiến trúc đơn giản dễ hiểu hơn “Nhận diện Idol” nhiều: http://jav-idol.toidicodedao.com/vav/. Bắt đầu thôi nào!

Continue reading Series Nhận diện Idol: Phần 3 – Cùng đi đào dữ liệu VAV Idol

Nghịch ngợm RestAPI với Postman – Gọi API đâu có gì khó?

Series Nhận Diện Idol vẫn đang tiếp tục được viết. Tuy nhiên, trong quá trình code sẽ phải sử dụng khá nhiều RestAPI (Của Microsoft, Imgur,…). Để đủ kiến thức theo đuổi series, bạn cần hiểu rõ bản chất RestAPI và cách sử dụng chúng.

Nếu các bạn chưa hiểu rõ về RestAPI có thể xem lại ở đây.  Ta thường dùng code để gọi các API này, tuy nhiên việc viết code và chạy code khá lắt nhắt và tốn công. Do vậy, hôm nay mình giới thiệu thêm tool mình hay dùng khi làm việc với RestAPI mang tên Postman.

(Tool này sẽ được sử dụng khá nhiều trong series Nhận diện Idol, các bạn nhớ đọc để biết cách sử dụng nhé)

Continue reading Nghịch ngợm RestAPI với Postman – Gọi API đâu có gì khó?

Series Nhận diện Idol: Phần 2 – Kiến trúc tổng thể và các công nghệ sử dụng

Ở bài viết trước, mình đã giới thiệu về sự ra đời của Nhận Diện Idol. Ở phần này, mình sẽ tập trung về khía cạnh techincal như kiến trúc tổng thể và công nghệ sử dụng trong ứng dụng nhé.

Toàn bộ series Nhận diện Idol:

  • Phần 1 – Chuyện ngày xưa – về sự ra đời của Nhận Diện Idol
  • Phần 2 – Kiến trúc và các công nghệ sử dụng
  • Phần 3 – Nào mình cùng đi cào dữ liệu
  • Phần 4 – Nhận diện khuôn mặt với Microsoft Cognitive Service
  • Phần 5 – Testing thuật toán – Sự thật về độ chính xác 60-80%
  • Phần 6 – Từ demo tới deploy – Vô Thai Kiếm (Serverless Architecture)
screen-shot-2016-12-18-at-1-10-50-am
Các công nghệ được sử dụng

Continue reading Series Nhận diện Idol: Phần 2 – Kiến trúc tổng thể và các công nghệ sử dụng

Tôi đã viết “Nhận diện Idol” như thế nào – Phần 1 – Chuyện ngày xưa

Gần đây, mình có viết một ứng dụng mang tên “Nhận diện Idol” để nhận diện các diễn viên nổi tiếng Nhật Bản. Ứng dụng hơi bị “nổi” vượt quá mong đợi (đến mức làm mình sạch tiền, phải tạm dừng hoạt động), gây ra bao chuyện dở khóc dở cười.

Hiện tại, ứng dụng đã ngưng hoạt động (Cứ vào thử nếu hữu duyên sẽ chạy được). Nhiều bạn ngỏ ý muốn xin source code để học hỏi (Quả là bể học vô biên, thiện ***tai). Anh Thuận bên azurevn.net cũng có đề nghị mình viết vài dòng về  Microsoft Cognitive API.

Do vậy, mình viết luôn một series giới thiệu công nghệ và hướng dẫn viết một chương trình tương tự:

  • Phần 1 – Chuyện ngày xưa – về sự ra đời của Nhận Diện Idol
  • Phần 2 – Kiến trúc và các công nghệ sử dụng
  • Phần 3 – Nào mình cùng đi cào dữ liệu
  • Phần 4 – Nhận diện khuôn mặt với Microsoft Cognitive Service
  • Phần 5 – Testing thuật toán – Sự thật về độ chính xác 60-80%
  • Phần 6 – Từ demo tới deploy – Vô Thai Kiếm (Serverless Architecture)

Ngoại trừ phần 1 là kể chuyện nhẹ nhàng giải trí, các phần còn lại đều khá nặng về kĩ thuật, cần kiến thức lập trình cơ bản. Phần 3 tới 6 sẽ hướng dẫn các bạn tự viết một chương trình tương tự Nhận diện Idol.

Các bạn cùng thưởng thức câu chuyện hài hước lý thú trong phần 1 này nhé.

thisismystory_-_video

Continue reading Tôi đã viết “Nhận diện Idol” như thế nào – Phần 1 – Chuyện ngày xưa

Series Bảo Mật Nhập Môn – Quản lý người dùng – Tưởng dễ ăn mà không đơn giản

Website được tạo ra là để phục vụ người dùng. Có người sử dụng thì website và doanh nghiệp mới có thu nhập. Một trong những việc rắc rối nhất chính là quản lý và bảo mật thông tin người dùng.

Trong bài này, mình chia sẻ những điều cần lưu ý khi thực hiện tính năng này. Khá nhiều khê và phức tạp đấy, các bạn chịu khó đọc kĩ nhé!

Úi giời! Đăng kí đăng nhập có gì khó?

Không như bạn tưởng tượng, việc đăng kí/đăng nhập và quản lý người dùng thật ra không hề đơn giản. Nó có thể trở nên khá loằng ngoằng với những tính năng sau:

  • Cho phép người dùng đăng kí, đăng nhập bằng email
  • Phân quyền người dùng
  • Tích hợp với Gmail, Facebook
  • Tích hợp với hệ thống người dùng có sẵn trong doanh nghiệp
  • Reset mật khẩu khi người dùng quên
  • Block account khi người dùng nhập sai pass nhiều lần
  • Bảo mật cho API với app di động
  • Bảo mật 2 lớp (Two factor authentication) với các account quan trọng
  • Quản lý: Thêm bớt xoá sửa người dùng

screen-shot-2016-11-08-at-4-40-45-pm

Khi tính năng này hoạt động ổn định, không ai khen nó lấy một câu. Tuy nhiên, chỉ cần nó gặp phải chút vấn đề, cam đoan bạn sẽ hứng chịu vô số cơn thịnh nộ từ khách hàng.

Continue reading Series Bảo Mật Nhập Môn – Quản lý người dùng – Tưởng dễ ăn mà không đơn giản

Series Phản Phác Quy Chân – Tránh over-engineering

Over-engineering có thể tạm hiểu là “làm phức tạp hóa vấn đề”, một lỗi mà các bạn lập trình viên vừa đi làm hay gặp phải. Bài viết này sẽ làm rõ sai lầm này và đưa ra một số lời khuyên cho các bạn.

Ngày xửa ngày xưa

Xin mở đầu bài viết bằng một câu chuyện nhỏ nhỏ về bạn H. Thuở mới vào trường Đại Học, H được học Java để viết Hello World. Đây là cảnh giới đầu tiên của code học, không biết chiêu thức, chỉ chú tâm viết code cho chạy được.

1

Continue reading Series Phản Phác Quy Chân – Tránh over-engineering