Sử dụng Rails Caching để giảm thiểu query trong rails api

Như mọi người đã biết, performance là vấn đề gì đó cực kỳ quan trọng và làm đau đầu không ít lập trình viên. Đối với những lập trình viên mới vào nghề và chưa có nhiều kinh nghiệm làm việc, họ sẽ ít để ý tới vấn đề này.Họ sẽ chỉ đơn giản code để có thể chạy mọi thứ, đó là điều đã quá tuyệt vời. Tuy ...

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

5 điều cần chú ý khi viết Dockerfile

Ở trong bài viết này, mình dựa trên kinh nghiệm cá nhân trong việc quản lý Docker server và thực tế ở những dự án khác trong công ty để đúc kết tóm lược lại những điều cần lưu ý khi viết Dockerfile 1. Không để các file không cần thiết ở trong thư mục của Dockerfile Khi thực hiện lệnh docker ...

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

Xây dựng ứng dụng đọc PDF cùng PDFKit

Lý thuyết PDF là gì? PDF là tài liệu sử dụng định dạng Adobe Corporation’s Portable Document , tài liệu dạng pdf có thể bao gồm text, image. Nhờ nhiều ưu điểm của mình, pdf hiện nay được sử dụng vô cùng phổ biến. PDFKit PDF kit xuất hiện từ iOS 11 , được Apple xây dựng giúp ...

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

Sự khác biệt giữa 2 mô hình Waterfall Vs. Agile

1.Thế nào là mô hình Waterfall/Thác nước Phương pháp mô hình thác mà còn được gọi là mô hình vòng tuần hoàn dạng vòng lặp. Mô hình thác nước theo thứ tự tuần tự và do đó nhóm phát triển dự án chỉ chuyển sang giai đoạn phát triển hoặc thử nghiệm tiếp theo nếu bước trước đó hoàn thành thành công. ...

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

Window function - Giới thiệu và ứng dụng

Introduction Window function là gì? Partition Enter Window frame Applications - Bài viết này giúp tôi tăng lương như thế nào? ROW_NUMBER RANK() và DENSE_RANK() LAG và LEAD Movable window frames References Window function là gì? A window function perform a calculation ...

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

Cách dùng Kotlin Coroutine trong Android

Với việc dùng thư viện kotlinx.coroutines thì các bạn có thể chạy một coroutine mới bằng cách sử dụng hàm launch hoặc async. Về mặt khái niệm thì async gần giống như launch. Nó khởi chạy một coroutine riêng biệt như là một light-weight thread mà chạy đồng thời với các coroutine khác. Điểm khác ...

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

Học Redux bằng hướng dẫn dễ dàng nhất thế giới - Phần 1

Đây là bài dịch, bài gốc mời các bạn xem ở đây : https://medium.freecodecamp.org/understanding-redux-the-worlds-easiest-guide-to-beginning-redux-c695f45546f6 Vì bài gốc khá dài nên mình sẽ chia thành nhiều phần, đây là phần đầu tiên Đây là một hướng dẫn toàn diện (nhưng đã được đơn giản ...

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

TPKeyboardAvoiding with Swift.

Node: Bài viết này mình chủ yếu là share code nhé. Mình tin rằng hầu hết các Develop ai cũng biết tới thư viện TPKeyboardAvoiding dùng để xử lý view khi keyboard ios và hiển thị. Dưới đây mình đã convert Code Objective - C sang Swift để dùng cho các dự án của mình. Source Code import ...

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

Biến Sublime Text 3 thành IDE Javascript

Sublime Text là một trong những trình soạn thảo phổ biến nhất cho phát triển web và phát triển phần mềm nói chung. Nó rất trơn tru và nhanh chóng so với các trình soạn thảo khác. Sublime cũng có rất nhiều plugin bạn có thể tìm thấy thông qua Package Control . Nhưng nó chỉ là một trình soạn thảo ...

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

Sử dụng GraphQL với Laravel và Vue

Đây là ví dụ nho nhỏ về GraphQL sử dụng trong thực tế, có khá nhiều bài viết đã sử dụng với React, bài này mình sẽ dùng với Vue làm client truy vấn GraphQL và Laravel sẽ chịu trách nhiệm làm server GraphQL trả về dữ liệu cho client. 1.1 Cài đặt Laravel và xây dựng Database + Model Trước tiên ...

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

Design pattern - Tại sao phải học Design pattern

Trong công nghệ phần mềm, một mẫu thiết kế design pattern là một giải pháp tổng thể cho các vấn đề chung trong thiết kế phần mềm. Một mẫu thiết kế không phải là một thiết kế hoàn thiện để mà có thể được chuyển đổi trực tiếp thành mã; nó chỉ là một mô tả hay là sườn (template) mô tả cách giải ...

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

Đa luồng trong Python (multithreading)

Bạn dùng máy tính hàng ngày, mở hàng chục trang web khác nhau, cùng một cơ số đếm không xuể các ứng dụng nghe nhạc, xem phim, game ở ngoài, bạn có tự hỏi vì sao máy tính có thể cân hết chừng đấy việc một lúc không? Dường như các chương trình đều phản ứng chỉ trong tích tắc, và đang chạy đồng thời ...

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

What does “return false;” do? in Jquery

Mở đầu Trong lúc mình làm Dự án thì cũng có gặp một số bug về Javascript trong lúc search thì cũng tìm được một số kiến thức khá hay mà chúng ta thường không để ý đến =)) đó là return false; vậy chắc hẳn chúng ta ở đây đều đã sử dụng đến return false trong JS cụ thể ở đây mình dùng jquery 1 thư ...

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

NonNull LiveData với Kotlin extension

Nếu hiện tại bạn đang sử dụng Google Android Architecture Components, bạn sẽ biết LiveData là gì. Nếu không, bạn có thể tìm hiểu tại link sau: https://developer.android.com/topic/libraries/architecture/index.html. Trong bài viết này, chúng ta sẽ tìm hiểu một vài cách để LiveData dễ sử dụng hơn, ...

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

[NodeJs][React] Học cách làm app bằng NodeJs với React (Phần 4)

Như phần trước ta đã làm phàn đăng nhập và lưu session, giờ phần này ta sẽ làm liên quan đến Blog, tức là các bài viết. Danh sách các bài viết Đầu tiên đường dẫn mặc định vào list các bài viết sẽ là /home và chỉ dành cho các thành viên sau khi đăng nhập. Vậy ta xử lý đoạn đó như sau ...

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

How to create Swap area

Swap là gì Swap là khái niệm bộ nhớ ảo được sử dụng trên hệ điều hành Linux. Khi VPS/Server hoạt động, nếu hết RAM hệ thống sẽ tự động sử dụng một phần ổ cứng để làm bộ nhớ cho các ứng dụng hoạt động. 1.Tạo phân vùng swap - mkswap Để tạo phân vùng swap thì chúng ta sử dụng lệnh ...

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

Login với bảng user có nhiều khóa chính (Laravel 5.6)

Có khi nào bạn phát triển cho một hệ thống mà bảng user có nhiều khóa chính chưa nhỉ? Điều này không có vẻ khá là ít gặp. Và trong dự án mới mình đã gặp cái điều ít gặp này. Hơi bị hách não, vì làm quen với laravel thì thường làm kiểu 1 user có một khóa chính. Vì thế mình đã tốn hơi nhiều công sức ...

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

[iOS]Tự tạo bàn phím support chửi bậy trong Liên Quân Mobile

TL;DR Vậy là 1 mùa phượng đỏ nữa lại đến, mang theo trong mình hơi thở nồng ấm của mùa hè. Mùa hè là mùa của sự bùng cháy, phát triển mãnh liệt. Cũng là mùa mà các em nhỏ xa thầy cô, xa bạn bè xa mái trường yêu dấu, ngày đêm quên ăn quên ngủ phá rank mùa hè. Trong bất cứ game đấu nào, bạn ...

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

HashMap trong Java hoạt động như thế nào?

Link bài viết gốc: https://gpcoder.com/2645-hashmap-trong-java-hoat-dong-nhu-the-nao/ HashMap lưu trữ dữ liệu ở dạng các cặp key-value (khóa-giá trị). Mỗi cặp key-value được lưu trữ trong một đối tượng của lớp Entry<K, V>. Lớp học bên trong này có bốn trường: key (khóa), value (giá trị), ...

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

Xây dựng RESTful Web Service trong Java với Dropwizard framework

https://www.dropwizard.io Dropwizard is a Java framework for developing ops-friendly, high-performance, RESTful web services Thân thiện, hiệu năng cao cho các ứng dụng micro services là những mô tả ngắn gọn nhất của Dropwizard. <dependency> <groupId>io.drop ...

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