Xây dựng package Counter Cache cho Laravel 5

Trong quá trình làm dự án mình có gặp bài toán như sau : Ta có hai bảng products và comments, với quan hệ 1 - n. Mỗi product có nhiều comments. Trong mỗi comment chứa 1 rating_value và nội dung comment. Bài toán đặt ra là với mỗi product ta cần tình được tổng số comments và giá trị rating trung ...

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

Quản lý log ứng dụng với ELK Stack (Elasticsearch, Logstash và Kibana)

Như phần trước mình đã giới thiệu về GrayLog 2 - quản lý log của ứng dụng . Hôm nay mình tiếp tục giới thiệu một bộ quản lý log ứng dụng đến từ Elastic là ELK Stack ( E lasticsearch, L ogstash và K ibana) để các bạn có thêm lựa chọn khi muốn triển khai một ứng dụng quản lý log nhé. Bài viết giới ...

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

Cơ bản về docker

Khái niệm Docker - đây là một công cụ tạo môi trường được packaging (Container) trên máy tính độc lập mà không làm tác động tới môi máy, môi trường trong Docker sẽ chạy độc lập. Mỗi containers chứa ứng dụng gồm chứa các thư viện riêng, nhưng kernel được chia sẻ với các containers khác. Mỗi kernel ...

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

Phân biệt Web server với App server trong Rails

Bài viết này được dịch từ nguồn gốc A Web Server vs. an App Server Khi chúng ta nghiên cứu cách deploy rails app chúng ta sẽ gặp rất nhiều tên như Apache, Unicorn, Puma, Phusion Passenger, Nginx, Rainbows và nhiều nhơn nữa. Tất cả có vẻ phù hợp với thể loại phân mềm deploying Rails nhưng có ...

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

Counter Cache trong rails

I. Giới thiệu Bạn đã bao giờ đếm số lượng từ một ActiveRecordRelation ở trong rails và nhìn vào console log, bạn thấy vấn đề n+1 queries đập vào mắt. Bạn đã khác phục nó như thế nào, bạn có thể viết 1 scope loằng ngoằng cho cái việc đó hoặc sử dụng EagerLoading, nhưng nếu bạn đoán được nó sẽ ...

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

Computer Vision - Image Processes - Area Processes - Convolution

I. Introduction Bài trước chúng ta đã tìm hiểu về phương pháp xử lý ảnh point processes (xử lý theo điểm), hôm nay chúng ta sẽ đi tìm hiểu "convolution" hay còn gọi là tích chập, một bước rất quan trọng và cực kỳ hữu dụng trong phương pháp area processes (tức xử lý theo vùng), có ứng dụng rất ...

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

React controlled component và uncontrolled component

Trong hầu hết các trường hợp chúng ta thường cài đặt các component trong react dưới dạng controlled components. Có thể hiểu controlled components là các dữ liệu trong form đều được React quản lí thường dưới dạng state hoặc store. Còn uncontrolled components thì khác, dữ liệu được lấy trực tiếp từ ...

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

LÀM THẾ NÀO ĐỂ LỰA CHỌN KỸ THUẬT KIỂM THỬ TỐT NHẤT?

Nhắc tới kỹ thuật kiểm tra phần mềm chính là đề cập đến phương pháp hoặc cách thức để kiểm tra một phần mềm hoặc một phần của phần mềm. Mỗi kỹ thuật kiểm tra đều có những lợi ích riêng. Các kỹ thuật khác nhau nhắm tới các loại khiếm khuyết khác nhau. Vì vậy, sẽ không đúng khi gọi một kỹ thuật tốt ...

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

Thiết kế API bằng LoopBack (NodeJS) ~ P2

Ở phần trước tôi đã hướng dẫn tạo API bằng LoopBack, trong phần này tôi sẽ hướng dẫn bạn connect api với data source Tạo data source lb datasource Generator sẽ hỏi bạn những thông tin như tên datasource, connector driver, connection string url hoặc config từng thành phần riêng biệt. ? ...

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

Custom Validation Rules In Laravel 5.5

Như các bạn đã biết, Laravel 5.5 đã chính thức "ra mắt" được một thời gian. Ngoài việc, phiên bản này là phiên bản LTS (Long Team Support) thì so với các phiên bản trước đó, những tính tăng mới không còn có điểm gì quá nổi bật. Theo cá nhân tôi, đây cũng là điều dễ hiểu vì Laravel đã đạt đến độ "ổn ...

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

[Android] Xử lí checkbox state trong recycler view

Trong phát triển Android, chúng ta thường phải xử lí các case về “check-select” trong một list items. Đối với list nhiều items thì RecyclerView là một lựa chọn tốt để giữ các view item này và có thể sử dụng lại các view item từ đó tăng thêm performance. Tuy nhiên khi recycler view thực ...

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

Nên thiết kế website chuyên nghiệp ở đâu?

Hiện nay, các cá nhân, công ty, doanh nghiệp thiết kế website mọc lên như nấm. Chỉ cần lên Google và search từ khóa công ty thiết kế website là bạn sẽ thu lại được hàng ngàn kết quả khác nhau. Tuy nhiên, điều mà người tiêu dùng quan tâm đó là nơi nào mới đảm bảo cung cấp dịch vụ chất lượng, chuyên ...

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

Ruby on Rails: Upload file một cách an toàn với Shrine.rb và Dropzone.js

Lời mở đầu Một form cho cho việc upload file có thể là một kẽ hở bảo mật để tấn công. Nhận ra điều đó, Janko Marohnić đã viết ra thư viện Shrine nhằm cải thiện tình trạng hiện thời của upload file trong Rails. Bạn có thể xem thêm trong blog của anh ấy hoặc trong documentation của Shrine để hiểu ...

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

Simple iOS application HTTP communication using DelegatingHandler Improvement of surrounding environment

In today's native client application, I think that it is not an overstatement to say that there is no one that does not perform HTTP communication, I think that is the basis of application development basics. I'm pretty sure that we will feel that we want to intersperse various processing before ...

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

KIỂM THỬ CƠ SỞ DỮ LIỆU

Đối với một ứng dụng thì giao diện (Graphic User Interface) là phần giao tiếp trực tiếp với người dùng nên luôn được đội phát triển và đội kiểm thử chú trọng. Nhưng phần quan trọng nhất của ứng dụng chính là thông tin, nó được coi như là trái tim của ...

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

Load class at runtime

Giả sử có một class ở đâu đó mà hiện tại trong project chưa sử dụng được, hoặc bạn muốn có 1 class không nằm trong project, và khi bạn muốn sử dụng nó, bạn sẽ cần load class at runtime. Trong ví dụ này sẽ sử dụng 2 class là Test và Main như sau: Test.java: public class Test { public ...

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

Wemos authenticate qua laravel (phần 4.1 - tạo server)

Xin chào các bạn! Đã lâu lắm rồi mình mới có thể quay trở lại viết bài về series làm bể cá thông minh. Dạo này mình cũng hơi bận chút nên không thể viết những bài viết thường xuyên được. </p> <div class= Tác giả: Bùi Văn Nam viết 16:20 ngày 12/08/2018

Lập trình C cho hệ thống nhúng (P7- Standby Function- Halt mode trong V850E)

1. Khái niệm Khi lập trình cho hệ thống nhúng , ngoài việc đáp ứng đầy đủ các yêu cầu đề mà hệ thống đề ra ,chúng ta cũng còn phải quan tâm đến vấn đề năng lượng tiêu thụ của con vi điều khiển mà chúng ta đang sử dụng. Hôm nay mình sẽ giới thiệu cho các bạn cách sử dụng standby function của ...

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

Hướng dẫn lập trình macOS (phần 3 tiếp)

Ở phần trước chúng ta đã viết xong tất cả các hàm cho những button ở trên màn hình, cơ bản app của chúng ta đã chạy thành công nhưng vẫn chưa đủ. Những button ở trên thanh menu vẫn chưa được viết các hàm để hoạt động. Ở phần này chúng ta sẽ tiếp tục làm nốt các button ở trên thanh menu để hoàn ...

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

#color, #image Are The New Literals In The Cocoa Town

#imageLiterals, #colorLiterals Nhờ Erica Sadun, chúng tôi có một cách làm việc với UIColors & UIImages.Với việc phát hành Swift 3, người ta chỉ đơn giản có thể sử dụng literals cho màu sắc và hình ảnh, thay vì instantiating chúng với initializers thường xuyên. Trong khoa học máy tính, literal ...

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