Thuật toán quay lui (Backtracking)

Quay lui là một kĩ thuật thiết kế giải thuật dựa trên đệ quy. Ý tưởng của quay lui là tìm lời giải từng bước, mỗi bước chọn một trong số các lựa chọn khả dĩ và đệ quy. Người đầu tiên đề ra thuật ngữ này (backtrack) là nhà toán học người Mỹ D. H. Lehmer vào những năm 1950. Tư tưởng Dùng để giải ...

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

Laravel manage invite system with Doorman

Trong số chúng ta, đã không ít lần phát triển các hệ thống sử dụng invite code để cho phép đăng kí mới hoặc sử dụng invite code để đăng kí một số trang web nào đó. Ví dụ như các trang download torrent private đều sử dụng invite code để hạn chế số lượng thành viên. Chúng ta hoàn toàn có thể quản ...

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

Xử lý các file CSV lớn với RUBY

Khi xử lý các file với dữ liệu lớn, hoạt động của server có thể chuyển xử lý từ RAM sang Disk. Bài viết này đưa ra một số cách để xử lý các tệp tin CSV với Ruby nhằm tối ưu mức tiêu thụ bộ nhớ và tốc độ thực thi. Prepare CSV data sample Trước khi bắt đầu, mình chuẩn bị một file CSV data.csv ...

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

PHP Framework Các giải pháp điều chỉnh hiệu suất cho ứng dụng web của bạn

Hiệu suất cho ứng dụng web Có nhiều yếu tố ảnh hưởng tới hiệu suất ứng dụng Web của bạn. Một số về môi trường, một số liên quan đến mã nguồn của bạn, và cũng có liên quan tới Framework bạn đang triển khai.Trong bài viết này, mình sẽ liệt kê các yếu tố này và giải thích cách bạn có thể cải thiện ...

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

Mình đã làm bể cá thông minh như thế nào (phần 1)

Xin chào các bạn! Bây giờ đã là cuối tháng 7, đến hẹn lại lên, như thường lệ mình lại ngồi viết một bài viblo để chia sẻ kinh nghiệm cũng như các thành quả đạt được trong tháng vừa qua. Vẫn là chủ đề lập trình như trước nhưng hôm nay sẽ được thêm 1 tấm áo mới để thay đổi không khí, một chủ đề không ...

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

Translating with Globalize

Dự án mình làm về book tour du lịch, như vậy có nhiều người nước ngoài đến từ nhiều nước khác nhau sẽ sử dụng trang web. Có nhiều tour trong trang web mỗi tour có các thông tin mô tả các lịch trình của tour. và Web cung cấp xem trên nhiều ngôn ngữ khác nhau. Như vậy với mỗi tour trên các ngôn ...

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

Ruby on Rails ActiveRecord Associations - Những phần ít được biết đến

ActiveRecord associations là một phần cơ bản của Rails, nhưng không phải tất cả chúng được sử dụng rộng rãi. Dưới đây là những phần ít được biết đến của ActiveRecord association. Có lẽ bạn đã từng phát triển một trang blog cho phép comment. Một số comment có thể không phù hợp, vì vậy bạn muốn ...

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

Value Objects trong Ruby on Rails

Giới thiệu Trong bài viết này, tôi sẽ đề cập đến value objects, cách để sử dụng kỹ thuật này như thế nào và các dấu hiệu để xác định value objects trong một ứng dụng Rails. Mục tiêu khi viết code là làm đơn giản tối đa models và controllers bằng cách chia nhỏ thành các class. Và để đạt được ...

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

[Linux-tips] Sử dụng piping, redirection, filters trong command line

1. Pipe và redirection Khi làm việc trên linux command line. Chắc hẳn chúng ta đã từng sử dụng pipe và redirection. Chẳng hạn như để tìm và in dòng chứa từ "Xin chào" từ file log.txt ra file result.txt: cat log.txt | grep "Xin chào" > README.txt Tuy nhiên nhiều bạn không biết là mình đã vừa ...

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

Tìm hiểu về testNG framework (Phần 3)

Bây giờ chúng ta tiếp tục với 2 nội dung: TestNG Prioritizing & Sequencing và TestNG Prioritizing & Sequencing. 10. TestNG Prioritizing & Sequencing A. Multiple Tests Sẽ có những tình huống khi bạn muốn đặt số kiểm thử dưới một test class đơn và muốn chạy tất cả trong shot duy ...

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

7 Design Patterns to Refactor MVC Components in Rails

Làm thế nào để các thành phần MVC trở nên đơn giản Để khiến cho Models, Views, Controllers trở nên đơn giản và chuẩn hóa, chúng ta phải liên tục refactor hay tái cấu trúc trên code đã được viết. Trong quá trình tái cấu trúc sẽ không được thay đổi bất kỳ các phản hồi tương tác với bất kỳ hành động ...

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

Những điều cần biết về ES6

I. Khái niệm về ES6 ES6 - ECMAScript 6 - European Computer Manufacturer's Association Script. ES6 do hiệp hội các nhà sản xuất máy tính Châu Âu đề xuất làm tiêu chuẩn của ngôn ngữ Javascript. References: ES6 Features. Compat Tablet. ES6 Desktop. II. Những điểm mới trong ES6 1. ...

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

Cách sử dụng tính năng Memoize vào bộ nhớ của JavaScript và tăng tốc độ đoạn code của bạn

Bài dịch từ trang Medium Function là một phần của chương trình. Chúng modularity hóa và khả năng sử dụng lại cho code của chúng ta. Nó khá phổ biến để chia chương trình của chúng ta thành các khối bằng cách sử dụng các function mà chúng tôi có thể gọi sau để thực hiện một số hành động hữu ích. ...

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

ClientSideValidations

Trong bài viết này tôi sẽ giới thiệu việc sử dụng gem client_side_validations cho việc validate client-side trong Rails Cài đặt Để sử dụng client_side_validations trước tiên bạn cần thêm client_side_validations trong Gemfile và chạy bundle install gem 'client_side_validations' Tiếp theo ...

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

Image Uploads with CKEditor, CKFinder and Laravel 5x

Tiếp tục SERIES: Tìm hiểu laravel & Xây dựng website bán hàng cùng Laravel 5x. Phần 1: Blade template, Xây dựng giao diện người dùng Phần 2: User Authentication, Xây dựng trang login Phần 3: Back-end : Category management Phần 4: Back-end : Product management, Upload multiple images using ...

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

Những điểm mới trong Rails 5

Bài này chúng ta sẽ cùng điểm qua những thay đổi lớn trên bản Rails 5. Yêu cầu của Rails 5 đó là bạn phải cài đặt Ruby v 2.2.2 trở lên thì mới có thể chạy. Sau đây mình sẽ liệt ke một vài diểm mới ActionCable đây là một tính năng Rails quyết định hỗ trợ từ bản 5, nhiệm vụ của nó là bạn sẽ ...

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

Self join trong ruby

mối quan hệ SELF-JOIN (tự vấn) ONE-TO-MANY: một model có thể được tái sử dụng với chính nó, giả sử nhân viên và quản lý đều là user nên chỉ cần dùng self-join trong bảng user là đủ, cách sử dụng: trong model user tạo thêm: has_many :nhanvien, class_name: User.name, foreign_key: ...

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

Có gì mới trong Rails 5.1

Rails 5.1 đã công bố bản beta vào khoảng đầu tháng 3, trong đó giới thiệu một số tính năng bổ ích giúp mọi người dễ dàng làm việc với Java script trong ứng dụng Rails của họ.Dưới đây ta hãy cùng tìm hiểu một số tính năng mới của phiên bản này: Ruby Version Yêu cầu Ruby version tối thiểu là ...

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

Liệu chúng ta có thể xây dựng trí tuệ nhân tạo mà không mất kiểm soát đối với nó?

Hoàn cảnh Gần đây trên mạng xuất hiện một cuộc tranh cãi giữa 2 vị tỉ phú nổi tiếng thế giới là Elon Musk và Mark Zuckerburg về một vấn đề khá nóng trong các diễn đàn trên mạng hiện nay, đó là liệu trí tuệ nhân tạo (AI) có nguy hiểm hay không? Trong khi Mark Zuckerburg cho rằng việc Elon Musk ...

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

Handsome codes with Kotlin

Kotlin là một ngôn ngữ rất linh hoạt, giúp cho đoạn code bạn viết ra dễ đọc và thoáng hơn rất nhiều nhờ vào một số các tính năng mới mà ngôn ngữ Java không có. Vậy các đặc điểm nào giúp cho việc code trở nên dễ hiểu và linh hoạt, chúng ta hãy cùng tìm hiểu nhé: Extension Functions Extension ...

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