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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
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 ...
[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ì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 ...
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 ...
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. ...
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. ...
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 ...
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 ...
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ẽ ...
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: ...
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à ...
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 ...
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 ...