Làm sao cải thiện tốc độ JSON Generation trong Rails

Hiện nay, chúng ta biết một số cách để tạo đối tượng trong JSON Dùng to_json() RABL Active model serialisers JBuilder 1. JBuilder json.extract! message, :id, :content, :chat_id json.user do json.cache!(["user_", message.user_id]) do json.partial! 'users/user', user: ...

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

Kiến thức cơ bản về SQL dành cho comtor ( Phần 1)

SQL là gì ? SQL là một ngôn ngữ sử dụng trong cơ sở dữ liệu quan hệ, được sử dụng khi muốn trích xuất dữ liệu từ bảng bằng các theo tác như Select(選択)、Projection(射影)、Combine (結合) SQL là ngôn ngữ có thể sử dụng chung ở bất kể app hay loại nào của cơ sở dữ liệu quan hệ. Có thể mô tả bằng cấu trúc ...

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

Machine Learning thật thú vị (2): Tạo sách văn học và game Mario

Trong phần 1, chúng ta đã đề cập đến việc Học Máy đã sử dụng các thuật toán chung chung để tìm ra những điều thú vị về dữ liệu bạn có mà không cần phải viết những dòng mã cụ thể để giải quyết bài toán của bạn. Trong phần này, chúng ta sẽ dành thời gian tìm hiểu một thuật toán làm được những điều ...

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

Sử dụng proxy trong Scrapy

Giới thiệu Scrapy là một framework chuyên được sử dụng để extracting data từ web. Nó cao hơn một tầng so với một số lib python cùng chức năng như Requests, BeautifulSoup, urrlib2... Scrapy phù hợp cho những project chuyên biệt về crawl. Nó cung cấp CLI tools đầy đủ để phát triển nhanh một ...

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

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

TestNG là một framework kiểm thử tuyệt vời. Nó cung cấp rất nhiều tính năng có thể giúp chúng ta tạo ra những frameworks mạnh mẽ và dễ bảo trì. Trong chương này, chúng ta sẽ học Làm thế nào để thử lại các phép thử không thành công trong TestNG. Bạn phải thấy thất bại ngẫu nhiên trong quá trình ...

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

Android Architecture Components: ViewModel

Hôm nay tôi muốn nói đến ViewModel trong Android Architecture Components.Như bạn biết, thành phần này rất hữu ích khi bạn muốn quản lý và xử lý dữ liệu cho giao diện của bạn (Ví dụ Activity hoặc Fragment). Bây giờ thì cùng thử xem triển khai ViewModel vào trong dự án của bạn thế nào nhé. 1. ...

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

Java 8 Method Reference (Phần 2)

Ở phần 1, mình đã giới thiệu qua 2 loại method preference - Method reference một static method - Method reference một instance method của một object có kiểu đặc biệt Giờ chúng ta sẽ tìm hiểu nốt 2 loại còn lại Method reference một instance method của một object đã tồn tại. Trong trường hợp ...

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

Android: SQLite Database Với OrmLite

Xin chào các bạn ! Hôm nay, mình xin giới thiệu với các bạn 1 ORM Lib rành cho việc thao tác với Database trong android. Đó là OrmLite Vậy OrmLite là gì? Nó là viết tắt của Object Relational Mapping Lite cung cấp một số chức năng để làm việc với các đối tượng Java tới cơ sở dữ liệu SQL. Nó tránh ...

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

Rails - so sánh where vs select khi thao tác trên memory và performance.

Bài toán Tôi đã viết một file seed trong đó nó cần phải được thiết lập để cập nhật chi tiết liên quan đến service_id trong một bảng. Task hiện tại của tôi là cần tìm trên 10.000 services và sau đó cập nhật các bản ghi. Viết một cách theo như tư duy truyền thống thì tôi có thể lấy tất cả các ...

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

Ruby: Chú ý khi dùng `downcase!`

Chú ý khi dùng downcase! downcase! sẽ trả về nil nếu như xâu ký tự không có thay đổi. Ví dụ: "FiShiNg" . downcase ! # return: fishing "fishing" . downcase ! # return: nil Vì vậy, cần cẩn thận không dùng ghép downcase! với các câu lệnh khác, đề phòng trường hợp kết quả không ...

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

Làm quen với Vue.js !

Gọi tắt là Vue (phát âm là /vjuː/, giống như view trong tiếng Anh), Vue.js là một framework linh động dùng để xây dựng giao diện người dùng . Khác với các framework nguyên khối (monolithic), Vue được thiết kế từ đầu theo hướng cho phép và khuyến khích việc phát triển ứng dụng theo từng bước. ...

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

Làm thế nào để cấu trúc các components trong React?

Lập trình là một nhiệm vụ khá phức tạp. Đặc biệt tạo ra clean code là rất khó. Chúng ta cần phải quan tâm nhiều yếu tố - đặt tên các biến, phạm vi function, xử lý các lỗi, đảm bảo security, giám sát performance, ... Còn để đặt tên điều khó nhất trong lập trình, tôi sẽ bắt đầu với bài viết các ...

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

Finding the longest path on the grid pattern to lock the smartphones using the Hamiltonian path

Smartphone is the latest-generation handheld device as it contributes a lot to ease our daily activities such as communication, keeping personal data, office-tasks, and even many fun-activities! Nowadays, it's an important thing for the smartphone users to keep their smartphones secured to prevent ...

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

Bạn hiểu về hàm main trong Java đến mức nào? 12 câu hỏi đơn giản để kiểm tra kiến thức của bạn.

Hàm main trong hầu hết các ngôn ngữ lập trình có lẽ là hàm đầu tiên mà chúng ta làm quen khi học 1 ngôn ngữ mới. Nó đóng vai trò như 1 điểm bắt đầu (entry point) "nơi mà quyền điều khiển được chuyển từ hệ thống đến một chương trình máy tính, và tại đó thì CPU sẽ truy cập vào 1 chương trình hoặc một ...

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

String and Symbol in Ruby

Ruby có Symbol cũng như String. Symbol trong Ruby là một khái niệm khá thú vị và được sử dụng rất nhiều. Lập trình viên chúng ta chắc hẳn đã qúa quen với symbol hay string khi sử dụng trong các task công việc. Nhưng có khi nào, ta tự hỏi symbol và string nó khác nhau như nào? Tại sao khi thì dùng ...

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

Optimistic Locking trong Rails

Optimistic Locking là gì ? Trong quá trình vận hành hệ thống, mình đã gặp phải một tình huống khá trớ trêu là 1 bản ghi bị ghi đè nhiều lần và dữ liệu trước bị ghi đè bởi dữ liệu sau khiến dữ liệu update trước đó bị mất hoàn toàn. Sau khi điều tra thì vấn đề là do hệ thống của mình có nhiều người ...

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

3 điều cần chú ý về Mobile Navigation trong thời đại Iphone X

Thời gian gần đây dân công nghệ không ai là không biết đến sự xuất hiện "vạn người mong" của iPhone X. Apple đã mạnh dạn bỏ đi phím home kiêm cảm biến Touch ID trên thiết bị, việc này cũng giúp phần viền bezel của chiếc iPhone mới mỏng hơn. Đây chính là điểm thay đổi lớn nhất về phần thiết kế trên ...

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

Avoiding singletons in Swift

Có vẻ như có sự đồng thuận của cộng đồng lập trình IOS cho rằng singletons là không tốt, tuy nhiên cả Apple và các nhà phát triển Swift bên thứ ba tiếp tục sử dụng chúng cả trong nội bộ ứng dụng và trong các framework. Why are singletons so popular? Trước tiên, hãy bắt đầu bằng cách hỏi tại sao ...

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

5 Thủ Thuật Hữu Ích Trong Python

Giới Thiệu Python là ngôn ngữ lập trình được sử dụng rất phổ biến ngày nay để phát triển nhiều loại ứng dụng phần mềm khác nhau như các chương trình chạy trên desktop, server, lập trình các ứng dụng web... Trong bài viết này tôi sẽ giới thiệu với các bạn 5 thủ thuật hữu ích trong ngôn ngữ lập ...

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

Accessing deeply nested object property

Anything that can go wrong will go wrong So we adds checks everywhere to make sure the data comes from outside is in the correct shape. Soon, we will realize that we've created this monster. Looking for a value nested deeply inside an object is very popular in Javascript codes and you ...

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