Sử dụng counter cache để tăng performance cho rails application

Counter cache là kỹ thuật để tăng performance cho application thông qua việc tiết kiệm số lần gọi đến SQL. Cách thực thi rất đơn giản nhưng đem lại hiệu quả khá cao. Tình huống Chúng ta có bảng lessons, có quan hệ 1-n (has_many) với bảng words. Để đếm được số words có trong 1 lessons ...

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

Giới thiệu về Google Web Toolkit - GWT

Abstract : Vào khoảng tháng 5/2006, Google xuất bản Google Web Toolkit (GWT), một tập hợp những công cụ phát triển, những tiện ích lập trình và những widget giúp chúng ta tạo những ứng dụng web bằng cách mà trước đây chúng ta chưa từng làm. 1. Giới thiệu GWT là một framework mã nguồn mở ...

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

Tạo 1 cảnh động 3D đơn giản trên web với Three.js

Chúng ta chuẩn bị tạo ra một chiếc máy bay 3D đơn giản sử dụng three.js - thư viện 3D giúp việc thao tác với WebGL trở nên nhẹ nhàng hơn. WebGL còn khá lạ lẫm với nhiều người vì sự phức tạp cũng như cú pháp GLSL. Nhưng với three.js, 3D trong trình duyệt trở nên rất dễ dàng. Trong hướng dẫn ...

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

Từ IOS 10 Animation đã “ngon” hơn!!

_Ở WWDC16, những feature mới của Animation đã được giới thiệu. Như là phần dynamic animation được thêm vào, tạm dừng chuyển động... và nhiều tính năng "mềm dẻo" khác. Vì vậy bài viết này mình muốn giới thiệu với các bạn! _ Animation hiện tại Animation hiện tại có cấu trúc như sau : UIView . ...

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

Test automation trends of 2016

Năm 2016 đã đi được một nửa chặng đường, ngành công nghiệp tự động hóa đang trên đà phát triển từ năm 2015 đến năm 2016. Bạn hãy nhìn lại Trends trong năm 2015 nó đã mang lại nhiều tiến bộ khác nhau trong lĩnh vực automation testing. Chúng ta đã nghe rất nhiều công ty đi theo hướng Agile testing và ...

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

Vẽ đồ thị trong Rails với thư viện Chartkick

Mỗi ngày chúng ta đều làm việc với các ddnhj dạng dữ liệu khác nhau. Chúng ta có rất nhiều cách hiển thị dữ liệu khác nhau như: dạng bảng, đồ thị v.v.... Theo quan điểm của tôi thì biểu diễn dữ liệu dưới dạng đồ thị là một cách biểu diễn trực quan, giúp người dùng có sự tương tác và nhận thức ...

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

Ý nghĩa của optional trong swift

Tôi là một lập trình viên với 3 năm kinh nghiệm cũng đã từng là technical leader và trainner. Trong quá trình review source và training cho nhân sự mới thì một trong nhưng lỗi hay gặp nhất của một lập trình viên còn ít kinh nghiệm là : Không kiểm tra sự tồn tại giá trị của biến trước khi sử dụng. ...

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

Artificial Intelligence (AI). What the future holds for Mankind and Technology

Abstract Artificial Inteligence (AI) simply means the intelligence possesed by machines. It is just like the brain humans have which have evolved over generations but AI not only aims to replicate the human brain but also surpass it. In some area this has already been archieved, an example ...

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

Pattern - Microservices Architecture

Overview Microservices Architecture là một mô hình kiến trúc để phát triển hệ thống phần mềm. Chúng được ứng dụng để thay đổi cho mô hình cấu trúc một khối. Nhờ khả năng mở rộng rất dễ dàng của kiến trúc này mà nó được coi là kiến trúc lý tưởng để xây dựng lên nền tảng phát triển diện rộng trên ...

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

SQL dành cho tester (Phần I)

SQL là một ngôn ngữ chuẩn để truy cập các Cơ Sở Dữ Liệu (CSDL), vì thế trước khi thực hiện kiểm thử CSDL, điều kiện tiên quyết đối với các kiểm thử viên là cần có kiến thức về SQL. Hiện nay có rất nhiều tài liệu về SQL cũng như thực hành SQL trực tuyến, tuy nhiên nếu chưa có cơ hội làm việc về CSDL ...

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

Wicket hiển thị (e.g. PDF, Excel, Word) trong IFRAME

Trong bài viết này tôi sẽ trình bày cách hiển thị file pdf trên màn hình để xem trước nội dung file PDF trong Wicket. Tôi sẽ trình bày 2 vấn đề chính 1. Hiển thị file PDF lên màn hình 2. Sử dụng ajax để thay đổi file PDF Vì file pdf là dạng nội dung không thể hiển thị bằng thẻ HTML thông ...

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

Debug & tip and tricks in Google Chrome DevTools

Nếu là một lập trình viên web lâu năm, chắc hẳn bạn còn nhớ Firefox với firebug(con bọ) 'thần thánh' một thời của các web developer. Tuy nhiên, Google chrome đã nổi lên và hiện nay rất nhiều developer dùng Chrome để phát triển web. Mình xin giới thiệu một số tính năng cũng như extention hay của ...

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

Agile testing cho người mới bắt đầu.

Bài viết được dịch từ trang: http://www.guru99.com/agile-testing-a-beginner-s-guide.html Mở đầu Agile làm một phương thức phát triển phẩm mềm linh hoạt rất phổ biến hiện nay. Mô hình phát triển phần mềm Agile nhấn mạnh vào 4 giá trị cốt lõi sau: “Cá nhân và sự tương hỗ quan trọng hơn ...

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

Functional Reactive Programming với RxJs và Angular 2

Trong bài này chúng ta sẽ đi qua các khái niệm về Functional Reactive Programming ( FRP ) từ góc nhìn của một lập trình viên Angular 2 . Hãy cùng nhau tìm hiểu các chủ đề sau: Khái niệm lập trình bất đồng bộ với stream Kiểu dữ liệu mới: Observables Functional Reactive Programming và RxJs ...

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

Quản lý Issue trong dự án Test

Mở đầu cho bài viết này chúng ta hãy cùng tìm hiểu Quản lý issue là cái gì? Để trả lời cho câu hỏi này, chúng ta sẽ cùng làm một ví dụ: Có một số Issue điển hình trong dự án: 1. Chiến lược – Strategy Vượt quá ngân sách Thiếu sự hỗ trợ quản lý rõ ràng cho dự án ...

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

So sánh Native App, Web App, Hybrid App và Website

Native App, Mobile web app, Hybrid App (ứng dụng lai), là những khái niệm cơ bản của lập trình di động. Dựa trên ngôn ngữ lập trình, có thể chia mobile app làm 3 loại: bao gồm: ứng dụng gốc (Native App), ứng dụng web (Web App) và ứng dụng lai (Hybrid App). Trong đó có hơn 1 nửa mobile dev chọn làm ...

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

Tìm hiểu về Ruby Rack

Nếu đã từng lập trình web với Ruby, bạn đã làm việc với Rack. Có thể nói Rack chính là nền tảng cho các web framework của Ruby như Sinatra, Rails hay Lotus,... Rack cung cấp một minimal, modular, and adaptable interface để phát triển các ứng dụng web trong Ruby. Bằng cách gói các HTTP request và ...

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

5 skills to have a good job interview

1. Operating skill This is an indispensable skill for any job. Employers need people who have the ability to solve quickly a large volume of work and be able to work in a scientific way. Thus, how to demonstrate? Dress neatly and professionally Always be ready for the necessary ...

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

Tìm hiểu hàm protect_from_forgery trong Ruby on Rails

Xin chào tất cả các bạn!. Trong bài viết này, mình muốn chia sẻ với các bạn cách thức mà một ứng dụng Rails chống lại tấn công CSRF bằng phương thức protect_from_forgery qua bài dịch từ website: I. CSRF là gì? CSRF ( Cross Site Request Forgery) là kĩ thuật tấn công bằng cách sử dụng quyền ...

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

Một vài điểm khác biệt khi tạo Test Plan cho dự án Automation test

Chúng ta đều biết rằng các dự án Automation khác với các dự án test Manual. Mặc dù, các dự án tự động hóa không thực sự tồn tại (hoặc không tồn tại như lý tưởng), cả hai dự án automation và manual được xử lý khác nhau ngay trong bước lên plan. Một dự án mà plan không rõ ràng thì không thể thực ...

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