Thiết bị thực và thiết bị giả lập trong kiểm thử các ứng dụng di động: Cái nào là tốt hơn?

Khi phát triển các ứng dụng được hỗ trợ trên nhiều nền tảng di động, điều quan trọng nhất đó là, làm sao để thực hiện kiểm tra được khả năng sử dụng của ứng dụng trên càng nhiều thiết bị khác nhau càng tốt. Tuy nhiên, vấn đề không có ngân sách hoặc không đủ thời gian đề thu thập tất cả các loại ...

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

Tìm hiểu về xử lý chuỗi bằng Regex (phần cuối)

Trong phần cuối tìm hiểu về Regular Expression thì hôm nay thì mình xin giới thiệu tiếp những quy tắc còn lại trong Regular Expression. Các bạn có thể quay về phần trước để tham khảo thêm một số quy tắc mà mình đã đề cập đến: https://viblo.asia/p/tim-hieu-ve-xu-ly-chuoi-bang-regex-phan-ii-YWOZrMYRK ...

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

Rake task in Rails

Khái niệm Rake là công cụ để quản lí các task trong rails, với mục đích gom nhóm các đoạn code ruby thường xuyên được sử dụng vào một task chung để sử dụng lại nhiều lần. Vd như các câu lệnh thường được chúng ta sử dụng nhiều như rake db:migrate, rake db:create, rake db:seed, rake ...

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

Làm thế nào để gọi AJAX trong Rails 5.1

Trong phiên bản Rails 5.1 Jquery đã bị loại bỏ, mà thay vào đó một thư viện của riêng Rails được thay thế và có tính năng giống như Jquery đó là rails-ujs. Một đặc trưng phổ biến nhất của Jquery trong Rails đó chính là thực hiện call Ajax. Nếu như bạn sử dụng Ajax trong Rails 5.1 lần đầu tiên, ...

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

Mixins in JavaScript

Trong JavaScript chúng ta chỉ có thể kế thừ từ 1 Object. Chỉ có thể có 1 Prototype cho 1 object và 1 class chỉ có thể kế thừ từ 1 class khác. Nhưng mà nhiều khi chúng ta tạo một class, vừa muốn vừa kế thừa từ class này lại vừa kế thừa từ 1 class khác vì class đó có 1 method bạn cần dùng đến, phải ...

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

Architecture in Rails

Một trong những đặc điểm của Rails là bạn bị buộc phải viết chương trình theo một loạt các quy tắc nhất định, tức là bạn phải theo mô hình kiến trúc mà Rails đã đề ra, tuy nhiên những quy tắc này lại khiến việc phát triển ứng dụng trở nên dễ dàng hơn rất nhiều. Mô hình MVC – Model, View, ...

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

Phát triển ứng dụng di động và danh sách kiểm thử - 17 điều cần nhớ trước khi phát triển 1 ứng dụng

Phát triển ứng dụng di động và danh sách kiểm thử nhằm đảm bảo cho cả developers và testers cover được các kịch bản kiểm thử, giúp tinh chỉnh Tài liệu để đảm bảo phạm vi công việc của từng người được xác định rõ ràng. Sau đây là những câu hỏi chính về chức năng của ứng dụng cần thiết trong quá ...

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

7 dấu hiệu nhận biết trang WordPress bị tấn công

Thiệt hại do hacker ư? Chẳng liên quan đến tôi Đây chắc chắn là cách nghĩ của nhiều khá nhiều người hiện nay. Tuy nhiên trong những năm gần đây hoạt động tội phạm liên quan đến internet ngày càng gia tăng, theo một công bố của cyber sercurity.com thì trên Thế giới cứ mỗi giây có 12 người phải ...

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

Khám phá Test-Driven-Development với Android UI Testes

Getting started Chúng ta sẽ bắt đầu bằng cách tạo ra một activity barebone. Chúng ta cần làm điều này để có thể chạy UI test - hãy nghĩ đến thiết lập này làm nền tảng cho việc thực hiện của chúng ta chứ không phải là bản thân quá trình triển khai thực hiện. Dưới đây là barbone activity: class ...

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

Một số thủ thuật thiết kế một website nhanh với "Hiệu suất trực quan"

Một website nhanh được đo đạc dựa trên rất nhiều chỉ tiêu và yếu tố. Việc tăng tốc độ cho website sẽ cải thiện được khả năng xuất hiện của website trên các công cụ search, từ đó tỉ lệ lượt truy cập vào website sẽ tăng đáng kể. Vậy nên một website nhanh hơn sẽ được đánh giá cao hơn, và tất nhiên ...

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

Tìm hiểu về Stripe: thư viện thực hiện thanh toán thẻ tín dụng (credit card) trong ứng dụng iOS

Trong thế giới phẳng ngày nay, thanh toán bằng thẻ tín dụng được rất nhiều người lựa chọn sử dụng trên thế giới (trừ Việt Nam ta ra). Vì vậy, việc tích hợp khả năng thanh toán bằng thẻ tín dụng trong ứng dụng di động là việc cần thiết đối với các ứng dụng có phát sinh giao dịch với người dùng. ...

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

Swift 4 - Sử dụng Codable để làm việc với JSON

Như các bạn đã biết thì mới đây apple đã cho ra mắt IOS 11, đi kèm với nó là Swift 4. Apple đã thêm Codable và protocol Decoder Encoder vào trong phiên bản Swift 4 này để giúp chúng ta có thể đơn giản hoá khi làm việc với dữ liệu JSON. Để sử dụng Codable thì chúng ta cần phải: Khởi tạo Model ...

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

Tăng hiệu suất làm việc với các Plugins trong Android Studio

Android Studio là một công cụ hỗ trợ cho các developer Android rất mạnh mẽ. Nó có giao diện đơn giản và linh hoạt nhất để thiết kế giao diện cho tất cả các thiết bị Android hiện nay. Các developer có thể kéo thả các view và widgets trong phần thiết kế layout và có thể tùy chỉnh giao diện ...

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

Unit Test Và Phát triển phần mềm - Ứng dụng

Unit Test là một kỹ thuật kiểm thử các hoạt động và chức năng của code , nó tách biệt với quy trình phát triển phần mềm, giúp phát hiện sai sót kịp thời trước khi đưa sản phẩm đến tay người dùng. Nó còn có thể giúp phát hiện các vấn đề tiềm ẩn và các lỗi phát sinh trước khi QA tìm ra. Unit Test ...

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

Cấu hình Redis Master-Master sử dụng Dynomite

1 . Kiến trúc mạng Hoạt động: Client sẽ kết nối vào port 8102 của Dynomite. Dynomite đứng giữa làm nhiệm vụ gửi request về 2 node redis, giữ cho redis chạy như mô hình Master-Master 2 . Cài đặt redis Đầu tiên ta sẽ đi cài đặt redis basic trên 2 server: # mkdir /opt/setup/ # cd ...

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

Operator Overloading trong Kotlin

Ở Kotlin, như trong mọi ngôn ngữ, chúng ta sử dụng +, -, *, / để thực hiện các hoạt động nhất định. Kotlin đã sửa số và các toán tử tượng trưng mà chúng ta có thể dễ dàng sử dụng trên bất kỳ lớp nào. Tạo ra một hàm với một tên dành riêng sẽ được mapped tới symbol. Overloading các toán tử này sẽ ...

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

ReCAPTCHA with Rails application

Google tung công nghệ CAPTCHA giúp chống spam hiệu quả hơn Nếu công cụ này nghi ngờ rằng người dùng tương tác với ứng dụng có thể là một bot (người ảo) thay vì của con người, nó sẽ tung ra các hình ảnh CAPTCHA buộc người này phải trả lời trước khi ứng dụng có thể tiếp tục sử dụng. Trong ...

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

Equality comparisons in Javascript

Bạn đã bao giờ băn khoăn giữa việc sử dụng == và === khi muốn thực hiện một phép so sánh bằng hay chưa? Có ý kiến cho rằng: ***" == chỉ so sánh về mặt giá trị, còn === thì so sánh về cả giá trị và kiểu dữ liệu"***. Nghe có vẻ hợp lý và dễ nhớ nhưng lại chưa chính xác. Phát biểu đúng phải là: ...

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

Tìm hiểu tính năng Rogue Policies trên thiết bị Cisco WLC

I. Giới thiệu: Hiện tại ở hầu hết các công ty đều có hệ thống mạng dây và hệ thống mạng wifi để phục vụ cho nhu cầu công việc, tuy nhiên với hệ thống mạng dây có nhiều giải pháp bảo mật hỗ trợ thì hệ thống mạng wifi lại kém bảo mật hơn. Lấy ví dụ trường hợp người dùng tự ý mang thiết bị phát wifi ...

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

Mô hình điều khiển truy nhập HRU

HRU là một mô hình điều khiển truy nhập do Harrison, Ruzzo và Ullman đề xuất năm 1976. HRU thuộc dạng phân quyền tự do DAC: Sử dụng ma trận truy nhập. Hỗ trợ chuyển giao, thay đổi quyền thông qua cơ chế lệnh HRU. Nhờ có mô hình này, các tiếp cận cụ thể về điều khiển truy nhập có thể được ...

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