Code Coverage cho Android với Jacoco
Trong bài viết này, chúng ta sẽ tìm hiểu cách để tạo một test coverage report trong dự án Android bao gồm cả unit tests (thường được viết bằng JUnit , Mockito và Robolectric ) và instrumented test (thường được viết bằng Espresso ). Tổng quan về coverage reports Test coverage reports là một ...
Nguyên lý Peter và lý giải những vấn đề công sở
Nguyên lý Peter là một lý thuyết trong quản trị doanh nghiệp nói chung được tạo ra bởi nhà giáo dục Laurence J. Peter và xuất bản năm 1969. Nguyên lý này cũng có một phiên bản nữa áp dụng riêng cho ngành Phát triển phần mềm, tuy nhiên hôm nay chúng ta sẽ tạm bỏ qua phiên bản này bởi theo tôi thì ...
Theo dõi lỗi hệ thống với Rollbar
Theo dõi lỗi hệ thống với rollbar Rollbar là một dịch vụ theo dõi lỗi cho Ruby và nhiều ngôn ngữ khác (https://rollbar.com/docs/). Dịch vụ Rollbar sẽ gửi thông báo cho bạn khi hệ thống của bạn gặp lỗi, thống kê lỗi phát sinh trong quá trình hoạt động của trang web ... Tôi nghĩ nó rất đơn giản và ...
Cài đặt môi trường để chạy ReactJs
Chào mọi người, hôm nay chúng ta sẽ tìm hiểu một thư viện front-end được phát triển bởi Facebook đó là ReactJs. React được sử dụng để xử lý ở tầng view cho các website và mobile app, cho phép ta tạo nên các Reusable UI components. Là 1 trong những thư viện JS phổ biến nhất hiện nay, có nền tảng ...
React lifecycle methods are changing in v17.0
Lifecycle methods có lẽ là một thứ bị nhầm lẫn khá nhiều với mọi người khi mới học React. Kể từ React v16.0, mọi thứ còn trở nên phức tạp hơn nữa với async rendering . Vậy nên từ giờ cho đến React v17.0, một vài lifecycle methods sẽ dần dần bị loại bỏ và vài method khác sẽ được thêm vào. React ...
Bắt đầu với Reactjs- Phần 5, Tìm hiểu về redux-form (3)
2.2.1 Field-Level validation: Một ví dụ cơ bản với form đăng ký gồm text field, email: Chuẩn bị file public/index.html <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="awidth=device-awidth, initial-scale=1, ...
Index và một vài vấn đề liên quan
Thử hình dung bạn sẽ được giao một nhiệm vụ phải tối ưu một vài hệ thống mà chưa biết phải bắt đầu từ đâu, thì dưới đây là một vài bước có thể giúp ích được cho bạn có thể cải thiện được tốc độ hệ thống. Một vài ý tưởng đến lúc đầu có thể là chưa sử dụng indexes không tận dụng được i/o ...
Size, Stride, Alignment trong Swift
Trong Swift, mỗi kiểu dữ liệu sẽ có 3 thuộc tính: size, stride, alignment. Giả sử, chúng ta có 2 struct đơn giản sau: struct Hooman { let age : Int } struct HoomanWithPuppy { let age : Int let puppies : Int } Nhìn qua chúng ta cũng có thể đoán ...
ShortcutBadger
ShortcutBadger i an Android library supports badge notification like iOS in Android devices. The ShortcutBadger makes your Android App show the count of unread messages as a badge on your App shortcut. It can be easily implemented in the project by following the easy steps below 1) Add ...
Annabelle Ransomware – mã độc nguy hiểm hơn cả cơn ác mộng WannaCry
Chắc hẳn, nhiều người vẫn còn nhớ đến hai lỗ hổng Spectre và Meltdown – gây ám ảnh kinh hoàng cho giới công nghệ cách đây vài tháng. Chưa dừng ở đó, gần đây tháng 03/2018, lại có thêm một mã độc mới được phát hiện. Mã độc tống tiền này có tên gọi Annabelle – được phát hiện bởi Bart – một ...
Phát triển phần mềm với Agile - Phần 2
Các bài viết cũ cùng chủ đề: Phát triển phần mềm với Agile - Phần 1 So sánh Agile và Waterfall Tình huống Agile Waterfall Quản lý dự án muốn thêm chức năng mới trong quá trình phát triển Chức năng mới được bổ sung vào ngay backlog, có thể triển khai sớm đáp ứng các yêu cầu ...
[Tryhard trong lập trình] Thử tự làm khó mình trong lập trình!. ^.^
Một ngày chán đời hoặc đẹp trời bạn bỗng nhiên muốn tự làm khó bản thân mình với việc lập trình, bằng cách tạo ra những hàm mà không cần dùng những thứ cơ bản nhất trong lập trình đó là if hay loop. Câu hỏi được đặt ra ngay lúc này là : "Chúng ta có thể làm gì khi không có if hoặc loop nhỉ ?" . ...
Hướng dẫn sử dụng SnapKit
SnapKit là tool giúp bạn có thể sử dụng autolayout bằng cách sử dung constraint 1 cách rất dễ dàng. Bằng cách sử dụng Snapkit, bạn có thể tạo, update, remove, quản lý các contraint của view đơn giản. CocoaPods: source 'https://github.com/CocoaPods/Specs.git' platform :ios, ...
Tạo mã QR với thư viện ZXing
Hi, Lần trước mình đã giới thiệu đến các bạn cách đọc mã QR sử dụng thư viện barcodescanner Hôm nay mình giới thiệu cách để tạo ra 1 ảnh png là mã QR sử dụng thư viện zxing. Bản chất nội dung encode của 1 ảnh QR là 1 chuỗi thông thường. Tùy theo chuỗi đó có cấu trúc như thế nào sẽ quy định ý ...
Một vài mẹo giúp tận dụng tối đa Sass
Đây là bài dịch, bài gốc mời các bạn xem ở đây: https://www.sitepoint.com/8-tips-help-get-best-sass/ Khi được sử dụng hiệu quả, Sass giúp chúng ta xây dựng CSS có thể mở rộng và không bị lặp. Tuy nhiên, khi được sử dụng không chính xác, Sass có thể làm tăng kích thước file, thừa code thậm chí là ...
Tạo bàn phím Android
Trong bài này, chúng ta sẽ học cách tạo bàn phím Android như hình dưới Đầu tiên ta sẽ tạo layout cho bàn phím, đặt tên file là keyboard_view.xml keyboard_view.xml <?xml version="1.0" encoding="utf-8"?> <android.inputmethodservice.KeyboardView xmlns:android="http://schemas. ...
Một số tip, trick của Chrome DevTools có thể bạn chưa biết
Bài viết đc dịch từ : https://medium.freecodecamp.org/cool-chrome-devtools-tips-and-tricks-you-wish-you-knew-already-f54f65df88d2 1. Kéo thả các element Bạn có thể kéo thả các HTML element và đổi vị trí của chúng trong trang. 2. Tham chiếu đến element được chọn trong console Chọn một ...
Một vài vấn đề về Active Record Associations (Phần 2)
Phần này mình sẽ giới thiệu chi tiết về: belongs_to association association=(associate) build_association(attributes = {}) create_association(attributes = {}) create_association!(attributes = {}) reload_association Giả sử ta có model như sau: class Book < ApplicationRecord ...
Phần 2: Admob
Đầu tiên bạn cần đăng ký tài khoản Google Admob https://www.google.com/admob/ để sử dụng. Tạo mới 1 App trên tài khoản Admob, ở app này bạn có thể lựa chọn các loại quảng cáo để dùng trong app của mình (Banner Ads, Interstitial Ads, Native Ads) Project 3: Banner Ads Add ad unit: Thêm 1 Ad ...
Mongoose cho MongoDB, Nodejs
Mongoose là một thư viện mô hình hóa đối tượng (Object Data Model - ODM) cho MongoDB và Node.js. Nó quản lý mối quan hệ giữa dữ liệu, cung cấp sự xác nhận giản đồ và được sử dụng để dịch giữa các đối tượng trong mã và biểu diễn các đối tượng trong MongoDB. MongoDB là một cơ sở dữ liệu NoSQL. ...







