Tối ưu tải trang với HTTP/2 Server Push và Node.js

Từ phiên bản Node.js 8.4.0, Node.js đã đưa vào thử nghiệm HTTP/2. Tại phiên bản này chúng ta có thể bật HTTP/2 bằng cách sử dụng cờ --expose-http2 khi khởi động ứng dụng. Đến thời điểm hiện tại thì Node.js 10 đã ra đời và HTTP/2 là module mặc định, chúng ta không phải thêm cờ khi khởi động nữa. ...

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

Gọi columns, rows từ một mảng 2 chiều một các đơn giản trong Ruby với Array#transpose method

Giả sử bạn có một mảng 2 chiều với 3x3 phần tử. Thông thường khi tạo mảng 2 chiều như vậy chúng ta sẽ tạo thành 1 array với 3 phần tử, mỗi phần tử lại là 1 array với 3 phần tử. [1] pry(main)> grid = [ [1] pry(main)* [1,2,3], [1] pry(main)* [4,5,6], [1] pry(main)* [7,8,9] [1] ...

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

Testing preloading/eager-loading của ActiveRecord associations trong Rails

Là một developer quan tâm đến hiệu suất của hệ thống thì một trong những điều bạn cần lưu ý đó là loại bỏ N+1 query bằng cách sử dụng các method #includes, #preload hoặc #eager_load. Nhưng có bao giờ bạn nghĩ là làm thế nào để bạn biết bạn đã thực hiện thành công điều đó hay chưa? Có cách nào để ...

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

Kỹ thuật chuyển đổi IPv4 sang IPv6 sử dụng Công nghệ đường hầm (Tunnel)

Ở phần trước, chúng ta đã cùng nhau tìm hiểu về cấu trúc và các loại địa chỉ IPv6. Trong phần này, chúng ta sẽ cùng nhau tìm hiểu về kỹ thuật chuyển đổi IPv4 sang IPv6. Thủ tục IPv6 phát triển khi IPv4 đã được sử dụng rộng rãi, mạng lưới IPv4 Internet hoàn thiện, hoạt động dựa trên thủ tục này. ...

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

Tìm hiểu về gem Devise

Giới thiệu Devise và các Mô-đun Devise là một giải pháp xác thực cho Rails được tích hợp với Warden và được cung cấp bởi những người tuyệt vời tại Plataformatec. Devise cung cấp các mô-đun khác nhau: Xác thực Cơ sở dữ liệu: Điều này mã hóa và lưu trữ một mật khẩu vào cơ sở dữ liệu để xác nhận ...

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

Những lưu ý giúp làm việc tốt hơn với khách hàng trong một project

Cùng đồng hành trong công việc với khách hàng để hoàn thành tốt một project là việc mà dự án nào cũng có dù ít dù nhiều. Để làm tốt điều này, ngoài kiến thức chuyên môn thì các kỹ năng mềm như giao tiếp, thương lượng, đàm phán, quy trình, lãnh đạo...) đóng vai trò quan trọng không kém. Trên thực ...

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

Một vài gợi ý hữu ích để đọc code dự án trên Android Studio

Có lẽ tất cả các bạn developer ít nhất đều đã từng trải qua cảm giác này khi bắt đầu một dự án hoàn toàn mới đối với mình cùng với một bản base đã được xây dựng khá đầy đủ và hoàn chỉnh. Đó là cảm giác vô cùng bối rối (okay), đặc biệt là đối với những bạn fresher, vì vậy mục đích của bài viết này ...

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

Fabrication hay FactoryGirl nhanh hơn khi viết Rspec

Lời nói đầu Uni-test là 1 phần hết sức quen thuộc trong các dự ánh Ruby on Rails. Có khá nhiều testing framework dành cho Ruby on Rails, nhưng quen thuộc và có cú pháp đơn giản nhất phải kể đến là Rspec. Vậy Rspec là gì? ... Thì ở phạm vi bài viết này mình sẽ không đề cập đến, để tìm hiểu thêm ...

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

Hướng dẫn tạo nhắc nhở đều đặn trên chatwork.

Chào các bạn! Hôm nay mình sẽ hướng dẫn các bạn làm một công cụ tự động nhắc nhở mỗi giờ, mỗi ngày, hoặc mỗi tháng, giúp chúng ta không bị bỏ quên những việc cần làm. Như các bạn cũng biết, việc sử dụng những phần mềm nhắc việc hiện nay rất nhiều, nhưng chúng đều chỉ có thể sử dụng riêng ...

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

Laravel: Tìm hiểu về homestead (Phần 2)

Accessing Homestead Globally Đôi khi bạn muốn chạy vagrant up để khởi động máy ảo Homestead tại bất cứ đâu trong hệ thống. Bạn có thể làm điều đó trên Mac / Linux bằng cách thêm hàm Bash đơn giản vào Bash profile. Trên Windows, bạn có thể thực hiện việc này bằng cách thêm file "batch" vào PATH ...

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

Top 10 lỗi trong các website sử dụng RoR (P1)

Hôm nay mình xin giới thiệu tới các bạn bài viết khá hay đăng trên website rollbar.com (https://rollbar.com/blog/top-10-ruby-on-rails-errors/). Bài viết có thống kê 10 lỗi thường gặp nhất trên các website sử dụng Ruby on Rails và các cách khắc phục, mình lược dịch và có chỉnh sửa lại nội dung cho ...

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

MySQL Master-Slave Replication on the Same Machine

Gần đây mình có nhớ lại một vài kiến thức học từ thời đại học mà mình khá ấn tượng trong đó có công nghệ Replication của MySQL, Replication là gì thì bạn có thể tham khảo thêm ở bài viết sau cũng trên viblo Replication in MySQL.Ngày đó hồi còn đi học mình thực hành trong trường hợp Master và Slave ...

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

Tìm hiểu về Amazon Web Service (Phần 1)

I. AWS là gì Trước đó ta nên tìm hiểu về điện toán đám mây. Điện toán đám mây (Cloud computing) là mô hình điện toán sử dụng các công nghệ máy tính và phát triển dựa vào mạng Internet. Theo tổ chức IEEE "Nó là hình mẫu trong đó thông tin được lưu trữ thường trực tại các máy chủ trên Internet và ...

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

Phương pháp hiển thị Route định tuyến đường đi sử dụng DirectionsService của Google Maps

Trong bài viết lần này mình sẽ chia sẻ một phương pháp hiển thị route định tuyến tự động sử dụng dịch vụ DirectionsService của Google Maps mà mình tìm hiểu được. DirectionsService là gì ? Áp dụng Tổng kết DirectionsService là một chức năng của Google Maps cho phép tính toán các tuyến ...

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

Các thiết bị IOT kết nối internet như thế nào?

Xin chào các bạn! Hôm nay mình cùng các bạn sẽ đi tìm hiểu một chủ đề khá thú vị. Không phải là các công nghệ cao siêu dùng trong IOT. Không phải là các giao thức truyền tải, giao tiếp mạng. Và cũng chẳng phải là chuyện bao lâu thì chúng ta sẽ bị gắn chíp sinh học biến thành siêu nhân tường tận mọi ...

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

Giới thiệu Laravel Valet

Giới thiệu Valet là một môi trường ảo để phát triển Laravel giống như Homestead, docker. Không cần cài đặt Apache/Nginx, không cần cấu hình /etc/hosts file luôn. Laravel Valet cấu hình máy Mac để luôn luôn chạy Caddy ở background khi máy khởi động. Sau đó sử dụng DnsMasq để proxy các requests ...

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

Factory Method Pattern in C#

Trong bài trước thì mình đã giới thiệu về "Builder Pattern in C#" , hôm nay thì mình xin tiếp tục giới thiệu về 1 pattern trong "Creational Patterns" , đó chính là Factory Method . Factory Method được sử dụng để định nghĩa interface tạo ra một object, nhưng chỉ để subclass quyết định class ...

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

Khôi phục trạng thái ứng dụng sau khi kill app.

Từ WWDC 2012 apple đã giới thiệu một tính năng khá đặc biệt mà thường chúng ta hay bỏ qua. Đó là việc phép người dùng quay lại ứng dụng của họ ở trạng thái chính xác mà họ đã rời khỏi ứng dụng. Đây là một tính năng mà mình thấy tương đối là hay. Như ta đã biết khi ứng dụng của bạn chuyển về trạng ...

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

Delegate trong Java

Delegate là gì? Delegate là một khái niệm quen thuộc trong C#, .NET, nó tương tự như con trỏ hàm trong C++. Delegate được dùng để tạo một bao đóng (encapsulation) cho bất kì phương thức nào, phù hợp (kiểu trả về, tham số) do delegate định nghĩa ra. Delegate có thể triệu gọi phương thức bất kì nơi ...

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

Có gì mới ở Constraint Layout

Chắc hẳn bạn đã từng sử dụng hoặc ít nhất cũng nghe thấy ConstraintLayout rồi chứ. Constraint layout là dạng layout tốt nhất để dựng UI, nó có thể đáp ứng được khả năng tự điều chỉnh kích thước theo kích thước màn hình. Mặc dù constraint layout có khả năng thực hiện công việc đó kể từ phiên bản ...

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