Các thủ thuật để giấu secret key/password khỏi source control và ứng dụng với CI trong lập trình Android

Xin chào các bạn. Chắc hẳn mỗi chúng ta đều đã từng phát triển app sử dụng API của bên thứ 3, và chắc mọi người đều biết là hầu hết các API service đều yêu cầu chúng ta phải có 1 API key (secret token) để verify nguồn gốc của các request. Vậy thì tại sao chúng ta lại phải "giấu" API key này khỏi ...

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

Lịch sử phát triển của điện thoại di động

Ngày nay, thuật ngữ “điện thoại di động” đã trở nên quá quen thuộc với tất cả mọi người. Từ người già đến trẻ con ai cũng sở hữu cho mình ít nhất là một cái, có thể là xịn với mức giá đắt đỏ hoặc “rởm hơn” với mức giá bình dân, có thể là smart phone với các tính năng đa dạng ...

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

Những vấn đề thường gặp của team kiểm thử lớn và cách giải quyết

Bài viết này được phát triển theo tư tưởng của bài viết trong link sau: http://www.softwaretestinghelp.com/problems-with-large-qa-testing-teams-and-remedies/ Khi làm việc trong một team kiểm thử lớn, bạn cần phải đảm bảo chất lượng cho một sản phẩm lớn. Và dù ít hay nhiều thì bạn cũng sẽ phải ...

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

Import CSV file dùng cho nested attributes trong rails sử dụng CSV framework

Mình xin giới thiệu cách để import csv file dùng cho nested attributes sử dụng csv framework. Mục đích của việc import là có thể thuận tiên hơn cho việc chuẩn bị data đầu vào trong các hệ thống hoặc nhập báo cáo thông kê tài chính hàng tháng chẳng hạn... Nó sẽ nhanh và thuận tiện hơn rất nhiều so ...

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

Domain Driven Design

What is DDD? Domain-driven design consists of a set of patterns for building enterprise applications from the domain model out. Its about mapping business domain concepts into software artifacts. According to wikipedia, Domain-driven design (DDD) is an approach to software development for ...

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

Vài mẹo nhỏ giúp bạn code JQuery một cách bá đạo hơn

Hello tất cả thế giới, ngày hôm nay mình sẽ chia sẻ với mọi người một vài thủ thuật trong JQuery mà mình tự tổng hợp được qua quá trình nghịch ngợm khá nhiều với nó. Hi vọng nó sẽ là một tài liệu tham khảo hữu ích cho những bà con nào muốn sử dụng JQuery một cách hiệu quả hơn. OK chúng ta bắt đầu ...

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

Mockups, Wireframes ,Prototype khi nào và tại sao nên sử dụng?

Xu hướng chung trong quá trình thiết kế UI/UX cho một sản phẩm là thực hiện ba giai đoạn: wireframe, mockup và prototype. Mục tiêu của mỗi bước là để cho phép bạn sửa chữa các vấn đề về khả năng sử dụng của sản phẩm trong khi chi phí sửa chữa vẫn còn nhỏ. Trước tiên tôi sẽ giúp bạn làm rõ các ...

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

Tạo API đơn giản trong Rails 5

Nếu như trước đây chúng ta sẽ phải tích hợp thêm gem cho ứng dụng của mình để làm API với Ruby (thường thì mình dùng grape), điều này cũng khá là tuyệt vời rồi. Tuy nhiên với ứng dụng chỉ cần tạo JSON API thì có vẻ là có nhiều chức năng sẽ là không cần thiết Rất may là khi Rails 5 ra mắt, người ...

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

Galaxy Note 7: Khi Samsung "thất thủ"

_Samsung Galaxy Note 7 chính là cái tên thuộc hàng top được nhắc tới trong suốt vài tháng qua trên thị trường công nghệ. Ngay từ khi ra mắt, Note 7 đã ồn ào theo cách mà Samsung vẫn luôn làm tốt cho các sản phẩm của mình - truyền thông tới công chúng, ngay cả cho tới khi bị khai tử, siêu phẩm này ...

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

Xamarin-LoadMore Trong Xamarin Part 3

Chào mọi người! Hôm nay tiếp tục với xamarin Form, mình sẽ làm một ví dụ về LoadMore cho list. Về loadmore là gì thì bạn cứ hiểu đơn giản nếu bạn có 1 list danh sách lớn, khi chúng ra không thể get tất cả data này một lần và đổ nó vào list view được. Ở đây việc "Không được" là do nếu làm như vậy ...

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

Interface trong Java 8, giới thiệu Default Method và Static Method

Một trong những thay đổi lớn nhất trong Java 8 là khái niệm về interface. Như chúng ta đã biết ở những phiên bản Java trước, interface chỉ cho phép chúng ta khai báo các phương thức bên trong nó. Nhưng trong Java 8 chúng ta sẽ có thêm 2 khái niệm mới đối với interface là phương thức default ...

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

5 thủ thuật hữu ích khi làm Responsive Website

1. Responsive Video Trang web tjkdesign đã có một bài viết chi tiết về thủ thuật này, bạn có thể xem ở đây. Thủ thuật này làm cho các video nhúng trong trang web có chiều rộng mở rộng ra 2 bên đến sát hai đường biên. .video { position : relative ; padding-bottom : 56.25% ; ...

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

Mẹo thao tác các thay đổi với git add

Bạn có một branch với rất nhiều file được thêm hay thay đổi và bạn muốn git add chúng và nhóm chúng theo từng commit riêng biệt, vậy cách nào hiệu quả nhất? Tùy thuộc mỗi người, có người thì dùng các GUI client như GitUp, GitX, Tower để xem các thay đổi rồi nhóm và move chúng vào staging, còn một ...

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

[AngularJS toàn tập] Phần 6 : Table

Khi làm việc với các trang web chắc hẳn bạn sẽ gặp rất nhiều trường hợp hiển thị data theo kiểu bảng, các dữ liệu có yếu tố lặp đi lặp lại thường hay được sử dụng với bảng. Các dữ liệu bảng thường được lặp lại theo thứ tự tự nhiên. Vậy làm sao để ...

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

Báo cáo tài chính hợp nhất

1. Khái niệm: Theo chuẩn mực kế toán số 25 Báo cáo tài chính hợp nhất: "Là báo cáo tài chính của một tập đoàn được trình bày như báo cáo tài chính của một doanh nghiệp. Báo cáo này được lập trên cơ sở hợp nhất báo cáo của công ty mẹ và các công ty con theo quy định của chuẩn mực ...

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

Kỹ thuật phân vùng tương đương

Định nghĩa Phân vùng tương đương là phương pháp kiểm thử hộp đen chia miền đầu vào của một chương trình thành các lớp dữ liệu, từ đó suy dẫn ra các ca kiểm thử. Thiết kế ca kiểm thử cho phân vùng tương đương dựa trên sự đánh giá về các vùng tương đương với một điều kiện vào. Vùng tương đương ...

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

Pivot tables and many-to-many relationships trong Laravel

Hôm nay chúng ta cùng tìm hiểu về Eloquent trong Laravel với mối quan hệ nhiều - nhiều (many to many relationship). Thoạt đầu, có thể sẽ hơi lạ và khó định nghĩa cụm từ pivot tables nhưng tính năng này rất hữu dụng trong việc build many-to-many relationship với Laravel framework. Pivot tables về cơ ...

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

Tạo Bottom Bar giống Google+

Bạn có thể xem bài viết gốc tại: http://onlyu.ga/home/android/tao-bottom-bar-giong-google.html Ngày trước muốn làm 1 cái Bottom Navigation Bar giống Google+ thì bạn cần phải dùng thư viện ngoài hoặc bạn phải tự thiết kế riêng. Nhưng từ bây giờ bạn có thể sài Bottom Navigation Bar chính chủ mà ...

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

Mutable và Immutable Objects là gì?

Có thể khi đọc tiêu đề bài viết này, nhiều bạn bỡ ngỡ, giật mình vì đây là lần đầu tiên bạn gặp những từ ngữ và những khái niệm như này. Mutable và Immutable Objects không phải là 1 khái niệm mới hay 1 kỹ thuật lập trình OOP gì đó cao siêu cả. Nó hoàn toàn cơ bản, và mọi người gọi chúng là ...

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

[AngularJS toàn tập] Phần 7 : Phần tử HTML DOM

Là một lập trình viên chắc hẳn bạn không còn xa lạ gì với HTML DOM . Trong angular js thì những directive dưới đây có thể được sử dụng để bind dữ liệu trong ứng dụng tới các thuộc tính trong phần tử HTML DOM. ng-disabled : vô hiệu hóa một control đã cung cấp ng-show : Hiển thị ...

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