Using Zones in Angular for better performance

Trong một số bài trước, chúng ta đã nói về cách cải thiện hiệu năng ứng dụng Angular bằng cách khám phá các API DetectionStrategy của Angular.Trong khi chúng ta đã nghiên cứu nhiều tùy chọn khác nhau để cải thiện hiệu suất, hiệu năng của ứng dụng, chúng ta chắc chắn đã không nói về tất cả các tùy ...

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

[Elasticsearch] Phân tích và tìm kiếm dữ liệu tiếng Việt

Các bài viết trước của mình có liên quan Elasticsearch: integrate with laravel docker và docker compose Ở bài viết trước mình có giới thiệu qua về Elasticsearch việc tìm kiếm cơ bản với Elasticsearch tuy nhiên dữ liệu mới chỉ dừng lại ở tiếng Anh vậy còn tiếng Việt thì sao? Mình đã thử google ...

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

Viết ứng dụng iOS an toàn hơn với SSL Pinning

SSL (Secure Socket Layer) đảm bảo truyền thông giữa client-server được mã hóa qua HTTP - HTTPS (HTTP over SSL). Mã hóa dựa trên PKI (Public Key Infrastructure) và một session key. Session key đã được giới thiệu bởi vì việc mã hóa và giải mã một public/private tốn rất nhiều tài nguyên CPU và nó sẽ ...

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

Checklist test trang web thương mại điện tử

Trước khi xây dựng một bộ test case chi tiết dành cho test hệ thống thanh toán trực tuyến mà tôi đã hứa ở bài viết trước, chúng ta hãy cùng xem xét một bộ checklist khái quát được dùng để test website thương mại điện tử tại một công ty phần mềm của Ấn Độ: Precise Testing Solution Pvt. Ltd. Nguồn ...

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

Thuật toán sắp xếp nào là nhanh nhất?

Lời nói đầu Thuở còn ngồi trên ghế trường học đại học, khi học môn "Cấu trúc Dữ liệu & Giải thuật" hay là lúc đi phỏng vấn ở 1 công ty ABC, XYZ nào đó, mà cũng có thể đến tận lúc ngồi trà đá bàn luận với anh em đồng nghiệp chuyện nghề, chuyện nghiệp ... thì chắc hẳn đã từng có lần anh em Dev ...

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

Today Extension

Trong khuôn khổ của bài viết này thì chúng ta sẽ dùng Today Extension để hiển thị thông tin thời tiết tại vị trí của người dùng tại thời điểm đó Mục tiêu cần đạt được : làm được cái app như cái hình dưới đây </p> <div class= Tác giả: Bùi Văn Nam viết 15:56 ngày 12/08/2018

Mở rộng ứng dụng Node.js với native C++ modules (Native addon)

Ngoài việc nạp các thành phần mở rộng được viết bằng js; Node.js còn có thể được mở rộng bởi các module được viết bằng c++. Mặc dù sử dụng c++ module có nhiều điểm lợi thế nhưng nó không có nghĩa rằng chúng ta nên thay thế toàn bộ các mã js của mình bằng c++ nhé. Trong bài này chúng ta sẽ cùng tìm ...

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

Phương thức xử lý số trong JavaScript

Trong lập trình web các bạn thường xuyên gặp các trường hợp xử lý dữ liệu kiểu number từ client, và phương pháp xử lý nhanh nhất là bằng JavaScript. Trong bài viết mình xin giới thiệu các phương thức xử lý số trong JavaScript. Trong JavaScript, các số nguyên thủy (ví dụ như: 5, 13, -6, 0, ....) ...

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

Xây dựng ứng dụng với TableView tự co dãn chiều cao Cell theo nội dụng hiển thị

Download project đã đc dựng sẵn để bắt đầu tại đây Run project ta sẽ được kết quả như sau ta có thể thấy nội dung của app đã ko hiển thị đúng và thiếu rất nhiều dữ liệu quan trọng, rất xấu đúng không nào. Vậy nên bây giờ chúng ta cần hiển thị đúng và đủ nội dung của từng cell tạo 1 custom cell ...

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

Một số lệnh hữu ích trên terminal

1. Xem log realtime Thông thường ta hay dùng lệnh tail -f /var/log/nginx/access.log để xem realtime log. Nhưng ta có thể không cần dùng option -f mà dùng trực tiếp lệnh tailf /var/log/nginx/access.log cũng có chức năng tương tự. Đỡ mỏi tay hơn 1 chút </p> <div class= Tác giả: Hoàng Hải Đăng viết 15:56 ngày 12/08/2018

9 Tips để tạo một Sprint Backlog tốt

The sprint backlog là một danh sách đơn giản bao gồm các task, các task này phải được thực hiện bởi team để bàn giao các chức năng trong phần tăng trưởng vào cuối sprint đó. Sprint backlogđược thực hiện trong phần thứ hai buổi họp Sprint planning với sự tham gia của tất cả các thành viên trong ...

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

Gem counter_culture trong rails giúp việc counter cache và tính tổng giữa bảng liên kết

Giới thiệu counter_culture giúp việc counter cache trong Rails app với cải tiến nhiều hơn trên counter cache chuẩn của Rails: Cập nhật counter cache khi các giá trị thay đổi không chỉ lúc tạo và xóa Hỗ trợ counter cache thông qua các mối quan hệ bảng nhiều cấp Hỗ trợ tên cột động để có thể ...

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

Tìm hiểu gem grape-swagger.

Gem grape-swagger cung cung cấp cho ta việc tự động generate document cho Grape API , khi dùng gem này kết hợp với gem Swagger UI ta có 1 giao diện quản lý API document rất đẹp, bạn có thể xem demo ở đây: the petstore demo . Cài đặt. để cài đặt gem, ta chỉ cần them vào Gemfile: gem ...

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

Cách dùng Notification trong Android

1. Định nghĩa: Notification là một thông điệp hiển thị thông tin đến cho người dùng bên ngoài ứng dụng. Nó thường xuất hiện phía trên cùng của màn hình. Để xem chi tiết thông điệp (thông báo), bạn chỉ cần kéo thanh Notification drawer xuống. Thực tế trong các dự án phát triển app thì việc sử dụng ...

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

Android Switch Icon and Double sided seekbar

This a library that simplifies switch icons and is compatible from API 15 (Android 4.0.3).. Follow this easy tutorial to implement. Add it in your root build.gradle at the end of repositories allprojects { repositories { ... maven { url "https://jitpack.io" } ...

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

How Butterknife library works?

Trước đây khi Google chưa ra đời Data Binding Library thì thư viện Butterknife được sử dụng rộng rãi để viết code gọn hơn và nhanh hơn. Với Butterknife, chúng ta không cần phải lặp lại nhiều lần findViewById() hoặc setOnClick(), setLongClick(), ... mà chỉ cần khai báo Annotation, ví dụ Cách ...

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

CS50 - Introduction to computer science: khóa học khoa học máy tính từ Yale và Harvard

Kéo thử 20-30 reviews đầu tiên về khóa học CS50 - introduction to computer science, một điều vô cùng ngạc nhiên là không chỉ các review đều cho điểm tối đa 5*, mà 100% các reviews đều có những lời bình luận tốt đẹp về khóa học dù ngắn hay dài. Tại sao một khóa học giới thiệu căn bản lại có thể thu ...

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

Tạo ChatBot cho ChatWork với API Simsimi và Java

Đầu năm 2016, microsoft đã giới thiệu về Bot framework. Một công cụ sẽ giúp các nhà phát triển những chatbot cho riêng mình. Microsoft cho biết, trong tương lai con người sẽ nói chuyện với chatbot. Vậy chatbot là gì ? tại sao chúng ta sẽ nói chuyện với chatbot ? Không dài dòng nữa, chúng ta ...

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

Giới thiệu các thư viện Javascript hay liên quan đến ảnh

Chào các bạn, hôm nay mình sẽ viết một bài tổng hợp một số thư viện Javascript cho phép chúng ta xử lý ảnh, tạo hiệu ứng cho ảnh... 1. Sticker.js Đây là một thư viện tạo hiệu ứng nhãn dán cho hình ảnh, khi hover vào ảnh ta sẽ thấy giống như bóc một nhãn dán. Đây là thư viện độc lập không phụ ...

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

Functional Programming in Swift [Part 1]

Có rất nhiều ý kiến xung quanh việc swift có phải là Functional Programming hay không và liệu swift có thể viết theo hướng function hay không. Câu trả lời là có. Swift không hẳn là thuần hướng đối tượng, bản thân nó có thể viết theo hướng functional. Trong bài này mình sẽ làm rõ về những tính chất ...

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