Master Many-to-Many Associations with ActiveRecord
Mô hình hóa những mối quan hệ many-to-many giữa các thực thể dữ liệu trong ActiveRecord không phải lúc nào cũng là một nhiệm vụ dễ dàng. Thậm chí, kể cả khi chúng ta đã thiết kế sẵn một ER diagram(mô hình thực thể liên kết) để làm việc, nó không phải lúc nào cũng rõ ràng với những quan hệ sử dụng ...
Những rủi ro và nhược điểm của việc sử dụng Testing tool
Mặc dù có rất nhiều lợi ích có thể đạt được bằng cách sử dụng các tool để hỗ trợ các hoạt động test, nhưng cũng có nhiều rủi ro liên quan với nó khi tool hỗ trợ cho các hoạt động test được giới thiệu và sử dụng. Bao gồm những rủi ro sau: **1. Những kỳ vọng không thực tế từ các tool hỗ trợ: ** ...
Tạo LiveWallpaper
Hôm nay mình xin trình bày cách tạo LiveWallpaper với hiệu ứng Matrix Rain. Để tạo được LiveWallpaper ta cần set up như sau: Tạo class extends WallpaperService (service thực hiện vẽ wallpaper) khi ở màn hình preview wallpaper để vào màn hình settings ta đã custom ta cần file wallpaper.xml ...
Push notification in android
Một thông báo (notification) là một tin nhắn, thông điệp được hiển thị trong một thời gian ngắn trên thanh trạng thái của thiết bị nhằm gây sự chú ý của người dùng Khi xây dựng ứng dụng di động, việc push notification là một chức năng hẳn không thể bỏ qua, nó sẽ là cho ứng dụng của bạn trở nên ...
[Robot FW - Python ] - Phần 1 - Viết Test case đầu tiên
Yêu cầu: Đã cài đặt thành công các công cụ sau: Pycharm Robot FW Python Selenium Library Firefox (FirePath and FireBug add on) Đã có kiến thức về: Automation Selenium Lập trình căn bản Nếu bạn chưa làm được những điều trên thì search google hoặc trong Viblo nhé. Thanks. ...
[Algorithms] Tìm số nhỏ nhất trong 3 số không dùng phép so sánh
Đề bài: Viết chương trình (C) để tìm số nhỏ nhất trong 3 số. 1. Đơn giản nhất, dùng phép so sánh. # include <stdio.h> int smallest ( int x , int y , int z ) { if ( x > y ) { return y > z ? z : y ; } else { return x > z ? z : x ; ...
Kĩ thuật estimate trong kiểm thử phầm mềm
Estimate là một hoạt động trong việc quản lý dự án nhằm ước lượng bao lâu thì công việc có thể thoàn thành. Estimate effort là một trong những nhiệm vụ quan trọng nhất trong công tác quản lý dự án kiểm thử. Dưới đây là hai câu hỏi mà bạn có thể nhận được từ khách hàng khi thảo luận về kế hoạch ...
Giới thiệu về LINQ
1. LINQ là gì Language-Integrated Query, hoặc LINQ là một cách để truy vấn một tập hợp các dữ liệu bằng cách sử dụng các phuơng thức mở rộng (extension methods). những extension methods chỉ có thể truy cập bằng cách thêm using System.Linq;. Trong các ví dụ dưới đây, Bạn sẽ được thấy cách ...
Design Better Forms
Chúng ta đều biết tầm quan trọng của form trong 1 trang web. Tuy nhiên, việc thiết kế form thế nào cho hiệu quả nhất, giúp người dùng không khó khăn trong quá trình input vẫn là 1 vấn đề mà nhiều người mắc phải. Bài viết này tập trung vào những điều nên và không nên làm khi design form để tối ưu ...
Cacoo là gì & Hướng dẫn sử dụng
Cacoo(カクー) là một công cụ vẽ trực tuyến giúp bạn dễ dàng vẽ ra các biểu đồ đa dạng như: sơ đồ trang web, Flowchart, bản phác thảo(Fire Frame), UML, sơ đồ network, hay sơ đồ hệ thống, vv... Hiện tại Cacoo là công cụ hoàn toàn miễn phí. Bạn có thể dễ dàng tự đăng ký tài khoản miễn phí trước khi tìm ...
How To Deploy a Cassandra Cluster in AWS Part 1
In this post, I’ll write about creating a Cassandra cluster in Amazon’s Web Services. The first thing you’ll need to do is sign in to your Amazon Console. If you don’t have one, create an account. Once you’re logged in, from the dashboard, click on the EC2 logo, ...
Swipe to right trên tableviewcell để show delete mà không sử dụng scrollview
Apple đã giới thiệu UITableViewRowAction cho phép chúng ta thêm nhiều action trên tableviewcell. Giống như Mail App, bạn chỉ việc swipe to left để show nhiều actions. Nhưng các view action này đều nằm bên phải của cell, vì vậy khi UI/UX đòi hỏi chúng ta phải custom action nằm bên trái của ...
Cách sử dụng Android Keystore để lưu trữ mật khẩu và các thông tin nhạy cảm trong một ứng dụng Android
Trong quá trình phát triển ứng dụng Android, việc lưu trữ hoặc cache dữ liệu là việc phải làm như cơm bữa đối với một lập trình viên. Trong những dữ liệu cần lưu trữ đó một số thông tin cần thiết phải được mã hóa để tránh bị hacker chiếm được. Ví dụ đơn giản như việc lưu username, password hay là ...
Lập trình AngularJS phía server với Node.js
1. Node.js là gì? Node.js là 1 nền tảng (platform) chạy trên môi trường V8 Javascript runtime. Node.js cho phép lập trình viên xây dựng các ứng dụng có tính mở rộng cao sử dụng Javascript trên server. Và vì được porting từ C nên về mặt tốc độ xử lý thì khá nhanh. 2. Node.js có thể làm được ...
Dynamic Language & The Art of Duck Typing
A Word About Dynamic In dynamically typed languages types are checked during runtime, which means that the language does no checking to ensure that the objects being passed around have any particular class ancestry. The only thing that matters is that an object actually respond to the message ...
Giới thiệu về Xpath (XML Path Language)
Như các bạn đã biết XML là một ngôn ngữ tuyệt vời để mô tả và lưu trữ dữ liệu. Tuy nhiên với tốc độ phát triển của công nghệ thông tin, nhu cầu của các ứng dụng không chỉ dừng lại ở mức lưu trữ, các hệ thống cần trao đổi thông tin với nhau. Để trao đổi thông tin trong các tài liệu XML, người ta cần ...
Một số tính năng hữu ích trong ruby
Có thể nhiều người biết đến Enumerator.new nhưng số người thực sự dùng nó là không nhiều Dưới đây là những lí do nên dùng nó Đưa vào scope mới Producer-Consumer pattern. Làm rõ ràng 2 phase khởi tạo giá trị và sử dụng các giá trị đó Việc đưa toàn bộ giá trị vào 1 mảng tốn memory. Việc dùng ...
Functional inheritance - JavaScript
Inheritance - is the creation of new "classes" on the basis of existing ones. In JavaScript can be realized in several ways, one of which - using an overlay designers. Why inheritance? Imagine several implementations of coffee machine. Will we only coffee machine for easy life? Hardly ... ...
Ảo tưởng Multitasking
Bài viết dưới đây sẽ giải thích tại sao càng ít priorities (việc ưu tiên) thì công việc càng tốt. Thực chất, từ priority đã từng không mang ý nghĩa như hiện tại chúng ta đang sử dụng. Trong cuốn sách Essentialism (audiobook), Greg McKeown có giải thích về lịch sử của từ này và việc nó đã biến ...
Effective Test Case Writting
There are lots of different ways to write test cases. This article will give you examples of common structures which you can use and adapt to suit your need. What is Test Case? A Test Case is a set of actions executed to verify a particular feature or functionality of your software application. ...