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 ...

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

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ác giả: Hoàng Hải Đăng viết 14:41 ngày 12/08/2018

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 ...

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

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 ...

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

[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. ...

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

[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 ; ...

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

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 ...

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

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 ...

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

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 ...

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

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 ...

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

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, ...

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

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 ...

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

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à ...

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

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 ...

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

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 ...

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

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 ...

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

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 ...

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

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 ... ...

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

Ả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 ...

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

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. ...

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