CS50 - Introduction to computer science: khóa học khoa học máy tính từ Yale và Harvard

Kéo thử 20-30 reviews đầu tiên về khóa học CS50 - introduction to computer science, một điều vô cùng ngạc nhiên là không chỉ các review đều cho điểm tối đa 5*, mà 100% các reviews đều có những lời bình luận tốt đẹp về khóa học dù ngắn hay dài. Tại sao một khóa học giới thiệu căn bản lại có thể thu ...

Tác giả: Hoàng Hải Đăng viết 15:56 ngày 12/08/2018

Tạo ChatBot cho ChatWork với API Simsimi và Java

Đầu năm 2016, microsoft đã giới thiệu về Bot framework. Một công cụ sẽ giúp các nhà phát triển những chatbot cho riêng mình. Microsoft cho biết, trong tương lai con người sẽ nói chuyện với chatbot. Vậy chatbot là gì ? tại sao chúng ta sẽ nói chuyện với chatbot ? Không dài dòng nữa, chúng ta ...

Tác giả: Tạ Quốc Bảo viết 15:56 ngày 12/08/2018

Giới thiệu các thư viện Javascript hay liên quan đến ảnh

Chào các bạn, hôm nay mình sẽ viết một bài tổng hợp một số thư viện Javascript cho phép chúng ta xử lý ảnh, tạo hiệu ứng cho ảnh... 1. Sticker.js Đây là một thư viện tạo hiệu ứng nhãn dán cho hình ảnh, khi hover vào ảnh ta sẽ thấy giống như bóc một nhãn dán. Đây là thư viện độc lập không phụ ...

Tác giả: Tạ Quốc Bảo viết 15:56 ngày 12/08/2018

Functional Programming in Swift [Part 1]

Có rất nhiều ý kiến xung quanh việc swift có phải là Functional Programming hay không và liệu swift có thể viết theo hướng function hay không. Câu trả lời là có. Swift không hẳn là thuần hướng đối tượng, bản thân nó có thể viết theo hướng functional. Trong bài này mình sẽ làm rõ về những tính chất ...

Tác giả: Hoàng Hải Đăng viết 15:56 ngày 12/08/2018

PhpUnit Testing in Laravel 5.4 (P1)

Introduction Laravel được xây dựng với sự kiểm tra. Trên thực tế, hỗ trợ thử nghiệm với PHPUnit được đưa ra ngoài và tệp phpunit.xml đã được thiết lập cho ứng dụng của bạn. Khung này cũng được vận chuyển với các phương pháp trợ giúp thuận tiện cho phép bạn kiểm tra ứng dụng của mình. Một tệp ...

Tác giả: Tạ Quốc Bảo viết 15:56 ngày 12/08/2018

Let''s Learn Numpy

Numpy là gì? Numpy là một package chủ yếu cho việc tính toán khoa học trên Python. Vì Numpy hỗ trợ mạnh mẽ việc tính toán với matrix, vector và các các hàm đại số tuyến tính cơ bản nên nó được sử dụng nhiều trong việc implement các thuật toán Machine Learning. Khởi tạo vector và matrix Row ...

Tác giả: Trịnh Tiến Mạnh viết 15:56 ngày 12/08/2018

Tạo tree node model với ancestry - Rails

Giới thiệu Hôm nay tôi sẽ giới thiệu đến các bạn một công cụ trong Rails - giúp chúng ta dễ dàng hơn trong việc phân cấp có tính kế thừa( hoặc là cấu trúc tree) cho một single model - Ancestry. Việc phân cấp này cần thiết khi chúng ta có nhiều records cùng được định nghĩa bởi một model, mà ta ...

Tác giả: Trịnh Tiến Mạnh viết 15:56 ngày 12/08/2018

Laravel: Tìm hiểu về HTTP Requests (Phần 2)

Phần 1: https://viblo.asia/p/laravel-tim-hieu-ve-http-requests-phan-1-XL6lAwzDKek Tài liệu: https://laravel.com/docs/5.4/requests Chúng ta sẽ cùng tiếp tục đến với phần 2: Retrieving Input **Retrieving All Input Data** Bạn có thể lấy tất cả dữ liệu input như một ```array``` bằng cách sử dụng ...

Tác giả: Trịnh Tiến Mạnh viết 15:56 ngày 12/08/2018

Khiếm khuyết và thất bại trong kiểm thử phần mềm phát sinh từ đâu và khi nào?

1. Lỗi trong đặc tả, thiết kế và thực hiện của phần mềm và hệ thống Lỗi khi sử dụng hệ thống Điều kiện môi trường Hư hỏng cố ý Hậu quả tiềm ẩn của các lỗi trước đó a. Lỗi trong đặc tả và thiết kế của phần mềm: Đặc điểm kỹ thuật cơ bản là một tài liệu bằng văn bản mô tả các khía cạnh ...

Tác giả: Hoàng Hải Đăng viết 15:56 ngày 12/08/2018

Tìm hiểu SmartPointer trong C++ - Phần 1

Một điều mà nó có thể nhanh chóng làm cho source code C++ của bạn trở lên phức tạp rối rắm đó chính là vấn đề về quản lý bộ nhớ. Trong quá trình lập trình, các lập trình viên sẽ mong muốn giảm thiểu tối đa các ảnh hưởng của việc quản lý bộ nhớ lên quá trình lập trình. Smart Pointers được tạo ra ...

Tác giả: Bùi Văn Nam viết 15:56 ngày 12/08/2018

Làm thế nào để làm website chạy được khi không có mạng??

Các website có nhiều nội dung tĩnh như trang blog, tin tức, tutorials, ... Các website ứng dụng không cần tương tác với remote database trên server (sử dụng database tại trình duyệt để thay thế). Hoặc chỉ đồng bộ local - remote khi có kết nối mạng Để website của chúng ta có thể chạy được ...

Tác giả: Tạ Quốc Bảo viết 15:56 ngày 12/08/2018

Computer vision - Image processing - Walk around part

I. Visual perception The human visual system (HVS) HVS bao gồm 2 thành phần chính: Mắt (có nhiệm vụ nhận ra cảm biến) Não (bộ xử lý) Cả 2 bộ phận trên đều được kêt nối bởi dây thần kinh thị giác. Hình ảnh được người xem biến thành thông tin như thế nào? ...

Tác giả: Tạ Quốc Bảo viết 15:55 ngày 12/08/2018

Mật khẩu người dùng được Devise lưu và bảo mật như thế nào.

I.Devise gem và và bcrypt Hiện nay với các ứng dụng sử dụng Framework Rails, chúng ta thường sử dụng gem devise cho module đăng kí, đăng nhập ( Devise hiện tại đang là gem được sử dụng nhiều nhất cho tính năng đăng nhập, theo thống kê năm 2016). Với module mã hóa mật khẩu người dùng và kiểm tra ...

Tác giả: Bùi Văn Nam viết 15:55 ngày 12/08/2018

Doorkeeper is an OAuth 2 provider for Rails

I. Cài đặt Doorkeeper là một gem làm cho bạn dễ dàng tương tác chức năng của nhà cung cấp OAuth 2 đối với ứng dụng Rails hoặc Grape của bạn. Thêm vào Gemfile gem 'doorkeeper' Chạy lệnh để khởi tạo: rails generate doorkeeper:install Thao tác này sẽ cài đặt trình khởi tạo ...

Tác giả: Tạ Quốc Bảo viết 15:55 ngày 12/08/2018

Hiệu suất của việc đóng gói nội dung trong RecyclerView

Note : Khi mà RecyclerView đang đóng gói thông tin của nó, nó sẽ không tái chế nữa. Mọi bản ghi trong bộ dữ liệu đều có một mục View được lưu trong bộ nhớ miễn là RecyclerView nằm trong bố cục layout. ***Giải thích : *** Ý tưởng căn bản của một RecycleView rất đơn giản. Bạn có một ...

Tác giả: Trịnh Tiến Mạnh viết 15:55 ngày 12/08/2018

Xây dựng ứng dụng NodeJs cơ bản(Part 0)

Installing Node and Sublime text Trước khi xây dựng ứng dụng bạn cần phải cài đặt môi trường và IDE (ở đây mình khuyến khích dùng sublime text để code). Để cài đặt môi trường, bạn hãy truy cập vào các trang sau để download nodejs và sublime text vềm sau đó cài . https://nodejs.org/en/ ...

Tác giả: Trịnh Tiến Mạnh viết 15:55 ngày 12/08/2018

Tải Video với Rails và Ziggeo (phần 1)

Tôi nhớ có đợt hầu như không có ai thực sự xem video trên Internet vì tốc độ kết nối quá chậm. Sau đó, tốc độ bắt đầu tăng dần và tôi có thể tải xuống các bản nhạc, mất khoảng 4-5 phút để tải xuống một bài hát duy nhất trong khi nghe một bài khác. Trong năm 2005 YouTube nổi lên và nội dung video ...

Tác giả: Tạ Quốc Bảo viết 15:55 ngày 12/08/2018

Làm việc với kiểu dữ liệu JSON trong MySQL

Cơ sở dữ liệu SQL có xu hướng cứng nhắc. Nếu bạn đã làm việc với họ, bạn sẽ đồng ý rằng thiết kế cơ sở dữ liệu mặc dù nó có vẻ dễ dàng hơn, là thực tế phức tạp hơn nhiều. Cơ sở dữ liệu SQL tin vào cấu trúc, đó là lý do tại sao nó được gọi là ngôn ngữ truy vấn có cấu trúc. Ở phía bên kia đường ...

Tác giả: Tạ Quốc Bảo viết 15:55 ngày 12/08/2018

Xây dựng chatbot Facebook, Skype với api.ai (part 2)

Nếu như ai đã có đọc bài viết trước của mình thì chắc hẳn cũng đã tạo được một con chatbot đơn giản. Để tiếp nối bài viết hôm trước, hôm nay mình xin trình bày cách tích hợp chatbot của bạn vào facebook messager và skype. Các bạn có thể tạo con bot này ra nghịch, tư vấn bán hàng, tán gái, blo bla ...

Tác giả: Bùi Văn Nam viết 15:55 ngày 12/08/2018

Tìm hiểu về http caching

. Mở đầu Trong các ứng dụng web, caching là một vấn đề cực kỳ quan trọng để tối ưu hóa performance. Có rất nhiều cách để caching -Page Caching -Action Caching -Fragment Caching -Russian Doll Caching -Managing dependencies -Low-Level Caching -SQL Caching Nhưng hôm nay mình xin giới thiệu về ...

Tác giả: Trịnh Tiến Mạnh viết 15:55 ngày 12/08/2018