Adapter Pattern

Khái niệm Trước tiên, nhắc đến Adapter Pattern chúng ta sẽ tìm hiểu một chút về khái niệm của nó. Adapter Pattern được định nghĩa là một mẫu thiết kế cho phép bạn sửa đổi một giao diện giữa đối tượng và một lớp mà không phải sửa đổi trực tiếp lên chúng. Hay nói ngắn ...

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

Tìm hiểu về Indexes trong MySQL

Như đã biết, Indexes được sử dụng nhằm tăng tốc độ truy vấn dữ liệu từ database. Xét trong một lần truy suất dữ liệu. Nếu trong một table không sử dụng Indexes, MySQL sẽ phải quét toàn bộ table nhằm tìm ra những record có liên quan (điều kiện sử dụng sau mệnh đề WHERE). Với những table có lượng ...

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

Sử dụng gem RubyXL để export file excel trong Rails

Nguồn : https://github.com/weshatheleopard/rubyXL Phiên bản mới nhất hiện tại : 3.3.10 RubyXL hỗ trợ hoạt động trên định dạng file .xlsx (mở định dạng XML) Gem này phù hợp để sử dụng trong 2 trường hợp sau #####Nạp vào một file excel có sẵn, thao tác chỉnh sửa, thay đổi trên file đó và xuất ra một ...

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

Tìm hiểu về media queries cho việc reponsive web design

Ngày nay, do sự phát triển chóng mặt của các smartphone và tablet, nên ta cần phải làm sao cho website hiển thị tốt trên mọi thiết bị có kích thước khác nhau, bên cạnh đó cũng có nhiều người dùng không bao giờ maximize trình duyệt của họ. Để đáp ứng được nhu cầu đó hiện tại theo tôi biết thì ...

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

Authenticate and get messages Office 365 with Outlook Mail Rest API

Introduce Using Outlook Mail Rest API in project For access to web APIs by native clients and websites in Azure Active Directory (Azure AD) is implemented by using the OAuth 2.0 Authorization Code Grant flow. Installing Install gem "oauth2" Create controller Auth Defining a ...

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

Cross-Domain Ajax Requests

Same-origin policy là một khái niệm quan trọng trong mô hình bảo mật thông tin web. Đây là một chính sách dành cho các browser, browser chỉ được cho phép các đoạn script ở trang web thứ nhất truy cập vào dữ liệu ở trang web thứ hai khi mà hai trang đó có cùng nguồn (same-origin). Chính sách này ...

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

Object-Relational Mapping (Ruby Active Record)

I.What is Object-relational mapping ? Object/Relational Mapping (ORM) in computer science is a programming technique for converting data between incompatible type systems in object-oriented programming languages. ORM creates a "virtual object database" that can be used from within ...

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

React Drag and Drop

Phải nói là trước đây dù cũng có tìm hiểu về Angular JS nhưng chẳng hiểu sao mình không có cảm hứng code lắm với thằng Ăng ngu lờ. Với thằng React thì ngược lại =)), đây là lần đầu tiên mà mình hứng thú code front-end sau chuỗi dài tháng ngày only back-end. Trong bài viết trước thì mình có giới ...

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

Design Patterns: The Facade Parttern

Design Patterns: The Facade Parttern## Tại sao chúng ta nên sử dụng design patterns trong lập trình ? Code của chúng ta có thể làm việc hiệu quả mà không có nó được không ? Để trả lời câu hỏi trên chúng ta đặt ra câu hỏi như sau: "Bạn muốn sống trong một ngôi nhà sang trọng hay một ngôi nhà ...

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

Abstract Factory Design Pattern

Design Pattern là gì? Design Pattern ban đầu đơn giản là một khái niệm kiến trúc do Christopher Alexander gây dựng. Lần đầu tiên được ứng dụng vào phần mềm vào năm 1987 bởi Kent Beck and Ward Cunningham. Hai ông trình bày ý tưởng của mình trong một hội nghị. Sau đó Design Pattern trở thành khái ...

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

Flashcard ứng dụng thuật toán SuperMemo (Phần 1 + 2)

1.1. Flashcard Flashcard hoặc Flash Card là loại thẻ mang thông tin (từ, số hoặc cả hai), được sử dụng cho việc học bài trên lớp hoặc trong nghiên cứu cá nhân. người dùng sẽ viết một câu hỏi ở mặt trước thẻ và một câu trả lời ở trang sau. Người ta thường dùng flashcard học từ vựng tiếng Anh rất ...

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

Upload image với gem CarrierWave

Gem CarrierWave hỗ trợ upload tập tin và hình ảnh một cách đơn giản và linh hoạt đối với các ứng dụng Ruby. Cài đặt : Cũng như các gem khác, để cài đặt chúng ta thêm gem CarrierWave vào trong Gemfile và sau đó bundle install. gem 'carrierwave' Để hiểu rõ về phương thức hoạt động ...

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

Make your own Ruby gem

1.RubyGems, So what is it? #### gem "GEM_NAME" in Gemfile <=> gem install GEM_NAME (what 's different between them) 2.Gem command basic 3.My first gem. Let's get started 1. RubyGems, So what is it? gem là một package managercủa Ruby. Quản lý các thư viện của Ruby. ...

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

[ThaoVTP] Tìm hiểu về SQL và một số câu lệnh SQL cơ bản

1.1. SQL là gì? SQL là một ngôn ngữ tiêu chuẩn để truy cập cơ sở dữ liệu (database). SQL là viết tắt của cụm từ Structured Query Language (Ngôn ngữ truy vấn cấu trúc). Cho phép bạn truy cập và thao tác với database. Ngoài ra, SQL là một tiêu chuẩn ANSI (American National Standards Institute- Viện ...

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

Những cú sốc của lập trình viên Java khi bắt đầu học Ruby

Tác giả: Nakaide Ngày post: 8/4/2015 Nguồn: https://moneyforward.com/engineers_blog/2015/04/08/to-ruby-from-java/ Người dịch: Phạm Cẩm Anh Tác giả vốn quen thuộc với các ngôn ngữ biên dịch như C/C++/Java nhưng đã bắt đầu làm Ruby (Ruby on Rails) từ khi gia nhập công ty Money Forward. Tác ...

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

Giới thiệu về Scale-Invariant Feature Transform

Scale-Invariant Feature Transform (SIFT) là giải thuật trong lĩnh vực Computer Vision, dùng để nhận dạng và miêu tả những điểm đặc trưng(local features) trong ảnh. Giải thuật lần đầu được giới thiệu bởi David Lowe năm 1999. Giải thuật này(cùng với giải thuật anh em là SURF) được ứng dụng rộng rãi ...

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

Query performance optimization - MySQL

Khi làm việc với dữ liệu lớn thì tốc độ truy vấn dữ liệu là cả vấn đề. Việc tối ưu câu lệnh query, đánh index, tối ưu schema luôn phải thực hiện xong hành với nhau. Topic này xin được trình bày một số "mẹo" tối ưu query thực hiện với MySQL. Count() là hàm đặc biệt, nó làm việc theo hai cách rất ...

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

Quan điểm test

Như các bạn đã biết, trong quá trình kiểm tra chất lượng một sản phẩm phần mềm, việc tạo danh sách các mục cần phải kiểm tra có chất lượng tốt đóng một vai trò hết sức quan trọng. Bởi vì nó liên quan trực tiếp đến 1. tìm ra đầy đủ hay không đầy đủ những điểm khiếm khuyết của phần mềm và 2. chi phí ...

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

ElasticSearch in 5 minutes

Elasticsearch, so what's it? How does it work? Installing and running ElasticSearch. Directory Layout Indexing Data. Searching. Shutdown. **Reference ** API : https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html Search API : https://www.elastic.co/guide/e ...

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

Những điều bạn nên nhớ để viết code tốt

Bạn muốn viết code tốt. Bạn muốn trở thành người lập trình giỏi. Bạn quan tâm đến chất lượng những dòng code của mình. Vậy những điều bạn nên nhớ là: Ở trong bất kỳ tình huống nào, đừng cho phép mình viết ra những dòng code chỉ để thực hiện được chức năng mình mong muốn. Bạn phải luôn cố gắng ...

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