Mobile Test Automation

Before we start, let me make some confession first. As a matter of fact, I've never been into serious testing business in my career. From the very beginning I've been working as a programmer whose job is to code, not test. But like any other coder in the world, I have to take my codes to a test ...

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

Viết integration test Nodejs with jasmine

Trong 1 lần tìm hiểu viết integration test cho ứng dụng nodejs, mình thấy có khá nhiều framework để test. Trong số đó được nhiều lập trinh viên sử dùng là mocha và jasmine. Jasmine là 1 behavior-driven development framework test cho Javascript. Nó không phụ thuộc vào việc bạn sử dụng framework ...

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

Unit tests với Mockito

Giới thiệu JUnit và Mockito JUnit là một framework dùng cho việc tạo các test case để kiểm thử các method của các đối tượng trong chương trình Java. Trong nhiều trường hợp, method được kiểm thử gọi đến những phương thức của một interface nào đó mà interface đấy chưa được implements bới bất ...

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

Module, included callback

MODULE Ruby module cho phép chúng ta gom các methods lại thành một nhóm và sau đó các methods này có thể được sử dụng bằng cách include module chứa chúng vào trong bất kỳ module/class nào khác. Vì ta không thể khởi tạo trực tiếp đối tượng của lớp Module, vì vậy muốn sử dụng được các method ...

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

Bạn đã từng bị đánh giá kỹ năng giao tiếp kém!?

Bạn đã từng bị đánh giá kỹ năng giao tiếp kém!? Mở đầu Một khi đã trở thành nhân viên công ty thì mối quan hệ xã hội cũng như số lần giao tiếp phải dùng đến kính ngữ sẽ tăng lên rất nhiều. Tuy nhiên, điều đương nhiên mà ai cũng biết đó là kính ngữ rất khó, nếu dùng sai hoặc nhầm lẫn thì có thể ...

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

Symmetric Cryptography in Swift (BlowFish)

Blowfish is a symmetric-key block cipher, designed in 1993 by Bruce Schneier and included in a large number of cipher suites and encryption products. Blowfish provides a good encryption rate in software and no effective cryptanalysis of it has been found to date. However, the Advanced Encryption ...

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

Thiết lập môi trường phát triển PHP7 (Vagrant + Centos7 + CakePHP3) trong 30 phút

1. Cài đặt Git Bash : https://git-scm.com/download/win VirtualBox : https://www.virtualbox.org/wiki/Downloads Vagrant : https://www.vagrantup.com/downloads.html 2. Tạo folder chứa project Cấu trúc project cake_vagrant/ ... Project ├── public/ ... Nơi chứa source code ...

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

Cài đặt HA Galera Cluster MariaDB sử dụng MaxScale trên CentOS 6

I. Giới thiệu 1. MariaDB MariaDB là gì ? MariaDB là một nhánh của MySQL( một trong những CSDL phổ biến trên thế giới ), là máy chủ cơ sở dữ liệu cung cấp các chức năng thay thế cho MySQL. MariaDB được xây dựng bởi một số tác giả sáng lập ra MySQL được sự hỗ trợ của đông đảo cộng đồng ...

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

Hướng dẫn cài đặt MASSCAN Web Interface

MASSCAN là một công cụ hỗ trợ đắc lực cho việc scan port. Bài viết này sẽ hướng dẫn bạn cách cài đặt và cùng vọc vạch tìm hiểu để biết MASSCAN là gì. Việc cài đặt MASSCAN cũng vô cùng đơn giản và dễ hiểu. Đầu tiên bạn cần lấy mã nguồn của MASSCAN tại trang github: https://github.com/offensive-sec ...

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

Tối ưu hiệu suất của Vector Drawables Trong Android

Trong khi một vài nền tảng mobile đã được hỗ trợ đồ hoạ vector( vector graphic) thì Android mới chỉ bắt đầu làm điều này từ API Level 21 với sự hỗ trợ của Support Library 23.2.0 cho các devices trước Lollipop. Bằng việc thay thế các source image PNG bằng VectorDrawables, kích thước các file APK của ...

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

Hiểu Người Nhật - Hiểu Khách Hàng Nhật (phần 1)

"Tôi thấy đại thể design như thế này ngon rồi, chỉ cần chỉnh sửa một chút thôi." Mấy hôm sau thấy một tá comment ném sang muốn sửa. =)) "Bạn thật là xuất sắc, tôi rất mong được như bạn." - Lời khen của CTO dành cho thằng Kĩ sư cầu nối đầu cua @@. Chả bao giờ thấy chê bai cái gì mình và team ...

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

Tránh re-submit form trong Spring bằng cách sử Flash Attribute

Kể từ phiên bản Spring MVC 3.1 đã được bổ sung 1 thuộc tính rất hữu ích đó chính là Flash attribute nhằm giải quyết các vấn đề về POST/Redirect/GET pattern. Trong một ứng dụng Web thông thường, với mỗi một form submitted POST dữ liệu lên server, Spring controller sẽ lấy dữ liệu request từ ...

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

Tìm hiểu về Request Lifecycle

Chắc hẳn các bạn đã nghe nói hoặc dùng với PHP Framework là Laravel rồi đúng không. Vậy điều gì xẽ xảy ra khi có một request đến một URL được định nghĩa trong route của ứng dụng? Cách thức hoạt động của Framework ra sao? Bài viết này sẽ giúp bạn hiểu thêm về Framework này nhé. The standard ...

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

Laravel và BDD

BDD là gì BDD (Behavior Driven Development) là một quá trình phát triển phần mềm dựa trên phương pháp Agile(phát triển phần mềm linh hoạt). BDD là sự mở rộng của TDD (Test driven development). Thay vì tập trung vào phát triển phần mềm theo hướng kiểm thử, BDD tập trung vào phát triển phần mềm ...

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

React Native - Phần 2 - Viết chương trình đầu tiên và tìm hiểu vể Props, State

React Native - Phần 2 - Viết chương trình đầu tiên và tìm hiểu vể Props, State Trong Phần 1 chúng ta đã tìm hiểu cách để cài đặt React Native và tạo chương trình mặc định. Trong phần này chúng ta sẽ bắt đầu đi sâu hơn vào các kiến thức cơ bản trong React Native. Cụ thể ở Phần 2 này chúng ta ...

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

Part 1 - Gerrit Code Review with Jenkins CI : Introduction

Nhắc đến các hosted version control sites, có lẽ những cái tên GitHub, GitLab, Bitbucket, Google source ..vv đã không còn xa lạ với giới developer. Chuỗi bài viết này mình sẽ giới thiệu với các bạn, một công cụ quản lý và review source code cực kỳ tốt, tuy không còn mới lạ nhưng cũng là cái tên ...

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

Tản mạn đôi chút về Javascript

Hello các bẹn, đầu tiện cảm ơn vì đã click đọc bài của mình nhé, hôm nay như tiêu đề thì mình sẽ tản mạn đôi chút về Javascript nhé =)) =)) Bạn là một developer, đã từng code js function run ( ) { a = 1 ; } run ( ) ; console . log ( a ) ; Ở đoạn code này nó vẫn ...

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

Xử lý Background Job trong Ruby bằng Resque

Hiện nay có nhiều công nghệ được sử dụng trong rails để giảm tải và cải thiện performace của server như: Delayed Job, Resque hay Sideiq. Về mặt cơ bản thì đó là các tiến trình chạy ngầm, tuy nhiên mỗi công nghệ đều có một cách thức hoạt động riêng. Hôm nay tôi sẽ giới thiệu về một công nghệ có ...

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

Lập kế hoạch sprint theo định hướng cam kết

Một cuộc họp lập kế hoạch sprint theo định hướng cam kết bao gồm Product Owner, Scrum master và toàn bộ thành viên của nhóm phát triển. Product Owner mang tới những backlog item có độ ưu tiên cao nhất tới buổi họp và giải thích chúng cho nhóm, thường bắt đầu với một cái nhìn tổng quan về nhóm các ...

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

Free App Chat with PubNub and AngularJS - Part 2

Phần 2: chúng ta sẽ đi tìm hiểu cách xây dụng App Chat sử dụng History API để lưu trữ tin nhắn, từ đó chúng ta có xem được lịch sử tin nhắn hay tìm lại tin nhắn bằng cách cuộn thanh cuộn. Và thêm nữa là giới thiệu về cách quản lý cấu trúc source code sao cho hợp lý sao cho khoa học. Overview: ...

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