Những công cụ giúp ứng dụng rails của bạn được tối ưu

Để giữ cho code của bạn được gọn gàng, có tổ chức khi phát triển một ứng dụng Rails lớn có thể khá là khó khăn, ngay thậm chí đối với những developer có kinh nghiệm. May mắn thay, các gem hiện nay đã giúp bạn làm việc đó một cách dễ dàng hơn. Đối với hầu hết mọi người, những dead code, hoặc những ...

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

Ruby hashes

Hashes là một kiểu dữ liệu lưu trữ theo dạng tập hợp giống như mảng, nhưng các phần tử không được lưu chỉ số mà lưu theo khóa, tức là các phần tử của bảng băm có 2 thành phần là khóa và giá trị. 1: Khởi tạo hashes Ví dụ 1: Để tạo một đối tượng hashes thì chúng ta có thể dùng phương thức new ...

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

Kiểm thử dựa trên yêu cầu

Để hiểu được Kiểm thử dựa trên yêu cầu, trước hết chúng ta hãy hiểu yêu cầu là gì và ai tạo ra chúng? Yêu cầu là gì? Từ điển Oxford định nghĩa yêu cầu như là một nhu cầu, mong muốn, nhu cầu, và muốn, sự cần thiết, điều kiện tiên quyết, bắt buộc và cần thiết. Đơn giản, trong phát triển sản phẩm, ...

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

Upload và download ảnh trên S3 [Scala. Play]

Đầu tiên, đăng kí một tài khoản trên S3 1.1.Tạo bucket Chọn vào phần button create bucket hiển thị ở màn hình top S3 Step 1 Tên bucket Nhập tuỳ ý tên bucket dựa theo format của DNS như sau ・ Không sử dụng dấu ngoặc trong tên Bucket ・Độ dài của kí tự là từ 3~63 ・ Không kết thúc ...

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

Android - Architecture Components ViewModel - xử lý configuration changes chưa bao giờ đơn giản đến thế.

Rất cảm ơn tất cả các bạn đã đọc và ủng hộ cho 2 bài viết trước về Architecture Components Android - Bạn biết gì về Architecture Components Giới thiệu về Room Persistence Library Tiếp tục seri về Architecture Components, lần này mình xin tiếp tục giới thiệu chi tiết về một Component nữa ...

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

Đào sâu về toán tử "===" ROR

Là dân IT chắc không ai thoát khỏi câu hỏi: " == và === khác nhau như thế nào?". Nếu ai đó đã biết về Javascript thì trong Javascript, toán tử === chỉ trả về true nếu như cả hai toán hạng đều cùng một loại và có cùng giá trị. Nếu so sánh khác loại, kết quả sẽ trả về false. Đơn giản vậy thôi... ...

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

Override rails admin gem, authenticate and authorize it with devise

Rails admin gem is a popular gem for creating admin interface on the resources. It provides a quick way of the following operations: CRUD operation Export data to CSV/EXCEL Easily query the data Automatic form validation Authentication and authorization via devise and cancancan But at ...

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

kết hợp Custom Data Attributes và hàm attr()

Hàm attr(), bên cạnh ứng dụng vào tootips, ta còn có thể xây dựng thumbnail có tittle và description để kết hợp với data attributes. Bạn chỉ cần viết đoạn code HTML theo cấu trúc sau: <a class="caption" href="#" data-title="Vulture" data-description="..."> <img src="img.jpg" ...

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

Những ứng dụng thực tế của Singleton class trong Ruby

Hầu hết các Ruby developer đều đã trải qua khái niệm metaclasses hoặc singleton. Tuy nhiên khái niệm này dường như là một điều mơ hồ và hiếm khi được sử dụng, mặc dù chúng ta đều hưởng lợi từ các singleton class mỗi ngày. Bạn có thể đã đọc các bài báo cổ điển về các loại metaclass của Ruby bởi ...

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

Đại số quan hệ và các phép toán tập hợp

Đại số quan hệ (Relational algebra) là một bộ các toán tử và quy tắc được sử dụng để thao tác trên các quan hệ và kết quả trả về là một quan hệ mới. Sau khi Edgar F. Codd đưa ra mô hình dữ liệu quan hệ vào năm 1970, đại số quan hệ được xem là nền tảng cho các ngôn ngữ truy vấn dữ liệu nói chung ...

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

Machine Learning thật thú vị (7): Tại sao Machine Learning vẫn chưa thể so sánh với bộ não con người? - mô hình DCGANs

Một trong những khả năng tuyệt vời nhất của con người chính là khả năng tưởng tượng. Có những người ta chưa gặp bao giờ, nhưng nếu ai đó đưa ta ảnh của nửa khuôn mặt người đó, ta hoàn toàn có thể dự đoán ra hình ảnh của cả khuôn mặt. Thậm chí, con người hoàn toàn có thể tưởng tượng ra toàn bộ một ...

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

Machine Learning thật thú vị (8): Đánh lừa hệ thống mạng nơron trong Machine Learning

Cứ khi nào một lập trình viên viết một chương trình phần mềm, những hackers luôn cố gắng tìm cách xuyên thủng phần mềm đó. Nhiều hackers còn lợi dụng những lỗi nhỏ nhất trong chương trình để phá hủy hệ thống, đánh cắp dữ liệu hay gây ra tàn phá nói chung. Nhưng liệu hệ thống được xây dựng bởi ...

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

Ad-hoc Testing: làm thế nào để phát hiện ra bug mà không có quy trình kiểm thử chính thức

1. Khái niệm Thuật ngữ ad-hoc ngụ ý sự thiếu vắng cấu trúc hoặc cái gì đó không có phương pháp. Khi bạn nói về thử nghiệm ad hoc , nó có nghĩa là nó là một phương thức kiểm thử hộp đen hoặc thực hiện kiểm thử mà không theo bất kỳ quy trình chính thức nào. Quy trình chính thức ở đây có nghĩa là ...

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

Giải quyết các vấn đề xung quanh Requirement.

Bài viết được đúc kết từ các dự án thực tế tôi đã làm và tham khảo những ý kiến/bài viết trên mạng khác. Nội dung có thể không đúng hoàn toàn với dự án của bạn nhưng bạn có thể ứng dụng một phần nào đó. Những phương pháp (nằm trong từng vấn đề) mà tôi đề cập dưới đây sẽ luôn có phương pháp: ...

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

ResponseUIViewController in IOS!

Bài hôm nay mình sẽ giới thiệu cho các bạn cách để Load UIViewController 1 cách dễ dàng hơn. đầu tiên các bạn tạo cho 1 protocol như này. protocol ResponseUIViewController {} extension ResponseUIViewController where Self: UIViewController { } xong rồi cho UIViewController adopt protocol ...

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

Tổng quan về Web Front-End 2017

Giới thiệu Trong những năm trở lại đây, xu hướng công nghệ trong việc phát triển Front-end đã thay đổi và phát triển mạnh. Các thư viện mới, các công cụ hỗ trợ mới,.. ngày một xuất hiện nhiều hơn làm cho hệ sinh thái của front-end ngày một lớn dần đồng thời cung cấp rất nhiều lựa chọn công cụ, ...

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

Ingestion and Processing of Data For Big Data and IoT Solutions

Overview In the era of the Internet of Things and Mobility, with a huge volume of data becoming available at a fast velocity, there must be the need for an efficient Analytics System. Also, the variety of data is coming from various sources in different formats, such as sensors, logs, ...

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

Code CSS chuyên nghiệp và đơn giản hơn với SASS - Phần 2

Ở bài viết trước, mình đã giới thiệu qua các quy tắc khi biết css bằng scss sao cho code chúng ta ngắn gọn trực quan và dễ hiểu nhất. Các bạn có thể tham khảo phần 1 tại đây. Ở bài viết này, mình xin giới thiệu các mệnh đề được sử dụng trong SASS. Mệnh đề "if" Tương tự như các ngôn ngữ lập ...

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

[RN][Redux] Redux Observable

Trong bài viết này tôi sẽ giới thiệu với bạn 1 loại redux mới Redux Observable Giới thiệu Redux Observable sử dụng RxJs và các đối tượng observable để tạo ra các tiến trình bất đồng bộ và luồng xử lý dữ liệu cho ứng dụng Redux. Ứng dụng Điều đầu tiên chúng ta cần làm để bắt đầu với redux ...

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

[P2] - Lấy dữ liệu website bằng puppeteer

Ở phần 1 mình đã nắm được những kiến thức cơ bản về thằng puppeteer này rồi Mục tiêu của mình ở phần này là sẽ quét những bài viết to ở mỗi category của trang 24h.com.vn. Sau đó vào từng bài để lấy phần header Nhắc lại chút kiến thức của phần 1 nhé. Mình sẽ dùng hàm evaluate của thằng puppeteer ...

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