Tag Archives: website

Series Nhận diện Idol: Phần cuối – Từ Demo tới Deploy – Hoàn chỉnh ứng dụng

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

Kết thúc phần trước, chúng ta đã Oauth WebTask để viết xong RestAPI của ứng dụng theo kiến trúc Serverless. Ở phần cuối này, chúng ta sẽ sử dụng AngularJS để tạo một ứng dụng Web đơn giản.

Nếu chưa sử dụng AngularJS bao giờ, hãy đọc bài viết này để có đủ kiến thức cơ bản AngularJS để làm theo hướng dẫn nhé: http://sangplus.com/angular-js-101-gioi-thieu-ve-angularjs.html

Viết code HTML

Mở IDE ưa thích của bạn lên để bắt đầu code nào. Ta tạo 3 file index.html, script.jsstyle.css cùng thư mục nhé.

screen-shot-2017-01-17-at-2-25-34-pm

Continue reading Series Nhận diện Idol: Phần cuối – Từ Demo tới Deploy – Hoàn chỉnh ứng dụng

Advertisements

Series Nhận diện Idol: Phần 6.2 – Từ Demo tới Deploy, viết RestAPI cho ứng dụng với WebTask

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

Sau khi đọc phần trước, bạn đã hiểu được khái niệm serverless. Ở phần này, chúng ta sẽ biến hàm recognize đã viết ở phần 5 thành một RestAPI. Với cách thông thường, ta sẽ dùng NodeJS để viết một ứng dụng rồi deploy nó lên 1 server nào đó (Xem ví dụ phần 3 bài deploy chatbot).

Tuy nhiên, lần này chúng ta sẽ dùng kiến trúc Serverless, chỉ viết code và để bên thứ 3 lo các phần server và deploy. Sau khi đã có RestAPI này, ta viết 1 ứng dụng web nho nhỏ, dùng API này để nhận diện VAV idol. Sản phẩm cuối cùng: http://jav-idol.toidicodedao.com/vav/

Continue reading Series Nhận diện Idol: Phần 6.2 – Từ Demo tới Deploy, viết RestAPI cho ứng dụng với WebTask

Series Nhận diện Idol: Phần 6.1 – Luận về Serverless – Vô Thai Kiếm

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

Như đã nói trong bài đầu của series, mình áp dụng kiến trúc serverless trong thiết kế hệ thống. Kiến trúc này giúp ứng dụng có thể đáp ứng hàng triệu người truy cập với giá thành vô cùng rẻ. Trước khi bắt tay vào code, ta hãy cùng tìm hiểu khái niệm và kiến trúc Serverless nhé.

Serverless là cái chi chi?

Serverless được dùng để chỉ 2 khái niệm khác nhau (nhưng lại khá liên quan với nhau):

  1. Một số ứng dụng chuyển phần lớn logic về front-end, không có server để làm back-end (serverless)  mà chỉ sử dụng các API của bên thứ 3 để thay thế. Ví dụ trong Nhận diện Idol, mình không viết code trên server mà dùng API của Cloudinary upload ảnh và Firebase để hiển thị realtime. Nhiều ứng dụng di động cũng dùng kiến trúc này (Backend as a Service – BaaS).
  2. Một số trường hợp khác, lập trình viên phải tự viết code để làm back-end. Với mô hình client-server thông thường, ta phải thuê server rồi deploy ứng dụng lên server. Với mô hình serverless, thay vì deploy code này lên server, ta deploy nó đưới dạng một Function (Function as a Service – FaaS). Funtion này có thể được gọi dưới dạng RestAPI hoặc chạy theo lịch đã sắp sẵn.

Continue reading Series Nhận diện Idol: Phần 6.1 – Luận về Serverless – Vô Thai Kiếm

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

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

Ở 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

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

Toàn bộ series Nhận diện 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

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:

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ự:

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

Giới thiệu tổng quát về Meteor

Hỏi thật nhé, có bao giờ bạn thấy lập trình một ứng dụng Web là chuyện khó không?

Chúng ta phải học cơ man đủ thứ: Từ front-end như HTML, CSS, JS, cho tới back-end như Java/C#/Ruby, SQL, …. Nếu muốn làm thêm ứng dụng bản trên di động, ta phải học Objective C, Java, … Sau khi code, ta còn phải tìm hiểu về hosting, về domain, về appstore để đưa web/ứng dụng của mình lên Internet, phiền phức nhiều khê quá nhỉ?

Có cách nào để học ít ngôn ngữ, nhưng lại mau chóng đưa ra thành phẩm không? Nếu chỉ là web đơn giản/e-commerce thì bạn có thể xây dựng với Joomla, Drupal, WordPress,… còn với những yêu cầu phức tạp thì không có cách nào đâu.

1434432391_web-development

À, mà thật ra là có đấy. Chỉ cần bạn chịu khó học  javascript, sau đó học Meteor là xong. Chỉ cần chút kiến thức về HTML, JS, CSS và MongoDB, bạn có thể xây dựng 1 ứng dụng web và mobile realtime trong 1 tiếng. (Nhanh gấp 5-10 lần Java, C#, PHP hay Rail để làm chuyện tương tự).

Không tin à? Hãy đọc bài viết để biết Meteor là gì, tại sao nó lại “bá đạo” như vậy nhé.

Continue reading Giới thiệu tổng quát về Meteor

Những kĩ năng cần có của một web developer

Hiện nay, một lập trình viên có thể lựa chọn cho mình nhiều hướng phát triển: Lập trình nhúng (Embeded System), lập trình web, lập trình ứng dụng di động, … Vì mình đi theo hướng lập trình web, mình sẽ chia sẻ một số kĩ năng mà các bạn cần chuẩn bị nếu muốn theo con đường web developer.

lap-trinh-web-full-stack

Continue reading Những kĩ năng cần có của một web developer

Sự khác biệt giữa Web Site và Web Application

Hiện nay một số bạn học ngành IT vẫn còn lẫn lộn giữa khái niệm website và web app, sẵn tiện có một bạn hỏi nên mình viết bài này nhân tiện giải thích luôn.

Đây là một câu hỏi “tưởng dễ mà không phải dễ”, bởi vì ranh giới giữa website và webapp khá mong manh. Mình phải tổng hợp khá nhiều câu trả lời từ stackoverflow và programmers.stackexchange mới đưa ra được một câu trả lời “gần đúng” nhất.

1. Khái niệm website

Ngày xưa ngày xưa, khi Internet còn thô sơ, web được viết bằng html đơn lẻ. Mỗi trang web đơn lẻ được viết bằng html gọi là Web Page. Tập hợp nhiều trang web đơn lẻ, thành một trang web lớn, có chung tên miền, được gọi là Website. VD đơn giản: Mỗi bài viết trên blog của mình chính là một web page, tập hợp toàn bộ các bài viết lại chính là một website, tên là toidicodedao.com.

Continue reading Sự khác biệt giữa Web Site và Web Application