Category Archives: Chuyện coding

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

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

Phần mềm cũng giống bánh mì và … xôi

Một buổi sáng nọ hồi còn ở Việt Nam, mình lỡ dậy hơi… sớm nên mới lò dò ra ngoài tìm chỗ ăn sáng. Trước nhà mình có hai xe bánh mì khá lâu đời, khách lúc nào cũng đông. Cạnh đấy là quán xôi lá chuối nho nhỏ, mỗi lần đi ngang qua lại nghe mùi lá chuối thơm nức mũi.

Gặm tạm ổ bánh mì cho bớt đói lòng, nhìn chị bán bánh mì, bé bán xôi ngoài ngõ, bỗng dưng mình lại nghĩ tới coder, tới phần mềm. Đó chính là lý do bài viết này ra đời. Tên bài viết lấy cảm hứng từ tác phẩm “Đi đâu cũng nhớ Sài gòn và em” của Anh Khang.

Bia lot _ Di dau cung nho SG va em _ 16.4 Final

Continue reading Phần mềm cũng giống bánh mì và … xôi

Lozi.vn đã “vô ý” để lộ dữ liệu 2 triệu người dùng như thế nào

Trong quá trình viết series Bảo mật nhập môn, mình vẫn hay đi nghịch dạo, tìm lỗi bảo mật dạo theo tinh thần “code dạo” của blog. Lẽ tất nhiên, đã tìm lỗi thì phải tìm các trang to to, nhiều người dùng một tí, chứ trang nho nhỏ thì ai quan tâm.

Là developer, mình không đủ giỏi về mạng hay hạ tầng để có thể tấn công server hay DDOS gì gì đó. Vì vậy, mình quyết định chỉ kiểm tra web và app, hai thứ mình rành nhất. Việt Nam nói là làm, mình bắt đầu truy cập website của app của 1 số ông lớn như tiki, lazada, foody….

screen-shot-2016-11-25-at-11-46-14-pm

Việc dò lỗi cũng giống như câu cá vậy, đôi khi câu được cá bự, đôi khi câu cả buổi không được con nào. Kì này, mình câu được một con cá nho nhỏ mà… nguy hiểm của lozi.vn.

Continue reading Lozi.vn đã “vô ý” để lộ dữ liệu 2 triệu người dùng như thế nào

Series Bảo Mật Nhập Môn – CSRF – Những cú lừa ngoạn mục

Trong Tam Quốc, các bậc quân sư tài năng có tài điều binh khiển tưởng, ngồi trong trướng bồng quyết thắng cách đó hàng ngàn dặm.

Trong Tu Chân, các cao thủ có chiêu “Cách Không Thủ Vật” điều khiển đồ vật từ xa, hoặc “Ngự Kiếm Phi Hành”, dùng chân khí để điều động phi kiếm hay pháp bảo.

Ngày nay, hacker cũng có “chiêu thức” tương tự gọi là CRSF. Hacker có thể ngồi tại website A mà dụ dỗ người dùng tấn công site B và site C khác.

Bài viết này sẽ giải thích cách hacker tấn công, đồng thời hướng dẫn cách phòng chống cho các bạn lập trình viên nhé.

Continue reading Series Bảo Mật Nhập Môn – CSRF – Những cú lừa ngoạn mục

Bạn muốn code giỏi? Thử luyện tập và “chiến đấu” với bọn nước ngoài xem nào!

Bạn là sinh viên, muốn rèn luyện khả năng code của bản thân nhưng không biết làm thế nào?

Bạn nghĩ mình code giỏi hơn bạn bè, muốn tìm một nơi để “thi đấu” và “thể hiện trình độ”?

Bạn là dân đi làm, muốn mài giũa kĩ năng code để có thể cạnh tranh với “lớp trẻ”?

Bạn sắp có một cuộc phỏng vấn quan trọng, muốn ôn lại những dạng đề thi hay gặp?

Bạn có khả năng lập trình, muốn được lọt vào mắt xanh của các nhà tuyển dụng lớn như Google, Facebook?

Bài viết này sẽ giới thiệu cách để bạn đạt được những điều nói trên. Kéo xuống để đọc tiếp nhé!

Continue reading Bạn muốn code giỏi? Thử luyện tập và “chiến đấu” với bọn nước ngoài xem nào!