
Kết nối các thiết bị Android Things với smartphone bằng Nearby Connections Api
Một trong những thứ mà người sử dụng smart phone hiện nay mong muốn thực hiện được với chiếc điện thoại smart phone trên tay đó là kết nối không dây. Rất nhiều thiết bị IOT (internet of thing) không có bàn phím hay màn hình, nên cách hữu hiệu nhất để kết nối và điều khiển các thiết bị đó là kết nối ...

Kết hợp Kotlin Coroutine và Retrofit trong call api
Như đã giới thiệu ở bài trước về cách sử dụng Kotlin Coroutine trong Android thì ở bài này mình sẽ tiếp tục giới thiệu tới các bạn cách sử dụng Coroutine kết hợp Retrofit trong việc call api thay cho Rxjava. Bước 1: Thêm dependency của retrofit adapter cho Kotlin Coroutine implementation ...

Positive vs Negative vs Destructive Test Cases
Chúng tôi đã nói rất nhiều về tài liệu test. Nó là một phần không thể thiếu của kiểm thử phần mềm, và một trong những yếu tố chính đó là test case. Testcase là trình tự từng bước một người kiểm thử thực hiện để xác thực một phần mềm đang hoạt động như dự định hay không. Khi viết testcase, điều quan ...

Design Patterns - Null Object Pattern
Trong đối tượng Null Object, một đối tượng null thay thế kiểm tra đối tượng NULL. Thay vì đặt nếu kiểm tra giá trị null, Null Object phản ánh mối quan hệ không làm gì cả. Object Null này cũng có thể được sử dụng để cung cấp hành vi mặc định trong trường hợp dữ liệu không có sẵn. Trong Null Object ...

[Review sách] Lập trình cơ bản PHP và MySQL (cơ bản và nâng cao)
Kể từ khi ra đời vào năm 1995, PHP đã trở thành ngôn ngữ được giới lập trình yêu thích khi viết các ứng dụng web. Một số điều tra thực tế minh chứng rằng PHP hiện là ngôn ngữ lập trình thông dụng nhất. Chúng ta có thể thống kê có tới vài triệu website được viết bằng PHP, kể cả những site tiếng tăm ...

Xây dựng chức năng tự động suggest tag với ngôn ngữ tiếng Nhật
Mở đầu Do sắp tới dự án mình đang làm, KH mong muốn xây dựng chức năng tự động suggest keyword từ một đoạn text tiếng Nhật được nhập vào, và mình được giao cho nghiên cứu vụ này. Ban đầu mình cũng cảm thấy bế tắc vì mình không biết tiếng Nhật, cộng thêm xử lý ngôn ngữ tự nhiên cũng là một lĩnh ...

QuesXpert No.01: For Ruby Developers
Các thủ thuật tăng performance cho việc import data. Có nên import hàng loạt và bỏ qua validation không? Answer: Tính đến thời điểm hiện tại, Ruby cũng như Rails đã có nhiều gem hỗ trợ cho việc import, export data dễ dàng hơn trước. Có thể sử dụng những gem này để giúp cho việc import ...

Vim basic knowledge
1. Giới thiệu 1.1. Vim Là Gì Vim là chương trình soạn thảo văn bản (text editor) mạnh mẽ và được sử dụng phổ biến hiện nay. Vim được phát triển dành cho các bản phân phối của Linux (Linux distro) và sau đó mở rộng cho Windows. Trên hệ điều hành Ubuntu chạy trên Desktop, Vim được cài đặt mặc ...

QuesXpert No.02: For Mobile Developers
Synchronized trên Swift thì làm như thế nào? Nếu dùng synchonized với nhiều luồng trong app thì app rất dễ bị “đơ”, vậy làm thế nào để tránh được điều đó? Answer: Trong Swift đã không còn sử dụng từ khóa “Synchronized” nữa. Để thực hiện đồng bộ giữa các thread thì bạn ...

Elasticsearch Analyzers
I. Introduction Có lẽ khi làm việc với elasticsearch chúng ta đều đã ít nhiều từng nghe về analyzer, đây có thể được hiểu như là một công cụ của elasticsearch trong việc bẻ từ và cấu trúc dữ liệu giúp cho việc tìm kiếm text, khi chúng ta làm việc với text dưới các ngôn ngữ các khau. ...

Tìm hiểu về biến trong css
Những website lớn thường sẽ sử dụng rất nhiều CSS với lượng lớn giá trị bị lặp lại. Giả sử khi bạn muốn sửa màu chủ đạo của website thì rất có khả năng bạn sẽ phải sửa ở rất nhiều vị trí ví dụ như button, navbar, title,.... Điều này gây ra rất nhiều khó khăn khi code cũng như khi bảo dưỡng và duy ...

Kiến trúc web hiện đại
Trước đây một website đơn giản được tạo ra chỉ người dùng truy cập và sẽ trả về một trang html gồm text và hình ảnh cho người dùng, sau đó sẽ được hiển thị lên web browser. Những website này đơn giản chỉ cần một web application được lưu trữ trên một server, cùng với đó là một địa chỉ ip để người ...

Một vài vấn đề khi import csv phần 2
Tiếp nối phần trước (https://viblo.asia/p/import-csv-data-va-mot-vai-cau-chuyen-thuong-gap-phai-L4x5xNXYZBM), trong bài viết này, mình sẽ đề cập đến 2 vấn đề gặp phải khi thực hiện chức năng import csv. Bài toán ở đây là, với mỗi row, cần phải import vào 1 bảng chính (vd bảng User) và vài bảng ...

Putting Together a Golang App Part I
Introduction Being fast and simple gives Golang a very appealing attraction to developers. But being simple means that every decision must be made by developer; from organizing directory structure to database configuration to choosing application architecture ...etc. There are many debates as ...

Cách sử dụng Swagger để kiểm tra API (Laravel) (Phần 1)
Swagger là một framework giúp bạn có thể mô tả lại api của bạn bằng cách sử dụng chung một loại ngôn ngữ giúp cho cả developer và tester đều có thể dễ dàng đọc hiểu, thậm chí học không vững về kiến thức source code. Bạn có thể tưởng tượng nó như việc lên kế hoạch để xây một ngôi nhà. Bạn có thể ...

Understanding MySQL binary and non-binary string data types
Có hai loại dữ liệu chuỗi được MySql support và hiểu các đặc điểm của chúng một cách chính xác sẽ cho phép bạn chọn loại dữ liệu thích hợp để phù hợp với các yêu cầu của ứng dụng. Sau khi xem xét các cấu trúc bảng khác nhau được thiết kế bởi những người khác nhau, tôi đã đi đến kết luận rằng ...

Event Bus with Vue.js
Đã bao giờ bạn hay gặp phải vấn đề giao tiếp, xử lý callback giữa các component, container mà không phải là cha con, bà cháu hay chỉ là anh em cùng cha khác ông nội chưa? Event Bus hay còn là publish - subscribe pattern, mặc dù có một vài điểm chưa tốt, nhưng đây vẫn là một pattern tuyệt vời để ...

I never understood JavaScript closures - Until someone explained it to me like this …
Dịch từ bài gốc https://medium.com/dailyjs/i-never-understood-javascript-closures-9663703368e8 Như tiêu đề, JavaScrip closure luôn có chút huyền bí đối với tôi. Tôi đã đọc rất nhiều bài viết, sử dụng closure trong công việc, và đôi khi tôi còn không nhận ra là mình đang dùng nó. Gần đây tôi có ...

React Sketchapp workflow
Chúng ta đã tìm hiểu nguyên do và ý tưởng đằng sau React Sketchapp . Một package sẽ khiến người làm design cũng như một Frontend bắt đầu suy nghĩ từ gốc rễ Design System thay vì hàng tá những màn hình không có một sự liên kết với nhau ngoại trừ việc copy-paste. Kì này chúng ta sẽ bắt đầu ...

Build a Realtime Chat Server With Go and WebSockets
Các ứng dụng web hiện đại ngày càng trở nên phức tạp. Người dùng thường được chào đón bằng những trải nghiệm hấp dẫn. Cập nhật trang trong thời gian thực mà không cần người dùng phải gọi đến máy chủ hoặc làm mới trình duyệt của họ. Trong những ngày đầu, các nhà phát triển dựa vào các yêu cầu AJAX ...