Đôi điều về CAPTCHA

Khi bạn đăng ký một email mới hoặc tham gia các trang web bình chọn trực tuyến một điều gì đó bạn sẽ được yêu cầu nhìn vào một hình nhỏ bao gồm các chữ cái và con số (thường thì chúng đều méo mó hoặc xếp chèn lên nhau nhằm khiến cho bạn khó nhận dạng chúng hơn), và sau đó bạn cần phải đánh lại các ...

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

Module trong Ruby

1. Giới thiệu Một trong những công cụ mạnh nhất của Ruby on Rails là Module. Vậy module là gì? Module là một tập các phương thức, lớp, hằng số, do đó module cũng gần giống như class, chỉ khác là module không thể tạo các đối tượng và không thể thừa kế. Thường thì chúng ta sẽ gộp các lớp, ...

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

Bắt đầu phát triển iOS Apps với Swift part 1: Xây dựng Basic UI

Có nhiều cách để học một công nghệ mới. Đa phần trước đây mình sẽ lên mạng, kiếm một tutorial nào đấy và làm theo. Cách này có ưu điểm là nhanh, giúp mình có thể tạo ra sản phẩm tương ứng của bản thân trong một thời gian ngắn. Tuy nhiên nhược điểm của nó là mình cũng quên nhanh như khi bắt đầu, ...

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

Các phương pháp đánh giá phần mềm

I. Tổng quan các phương pháp đánh giá phần mềm Đánh giá phần mềm có thể được tạo ra trong một số kiểu khác nhau. Theo thứ tự tăng của tính chính xác, có 6 phương pháp đánh giá phần mềm dưới đây được sử dụng bởi các tập đoàn và tổ chức phần mềm được chia làm 2 nhóm chính: Phương pháp đánh ...

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

Giới thiệu về các mô hình Concurrency trong Ruby

Bài viết mô tả sự khác nhau giữa Processes, Threads, GIL là gì, EventMachine và Fibres trong Ruby. Khi nào thì sử dụng mỗi mô hình, các dự án mã nguồn mở nào sử dụng chúng, và ưu khuyết điểm của chúng là gì. Processes Chạy nhiều tiến trình không phải là cơ chế concurrency (Ứng dụng thực hiện ...

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

Những điểm mới trong Swift 4

Swift 4 là bản release mới nhất của Apple, dự định sẽ được đưa ra vào mùa thu năm 2017. Swift 4 tập trung cung cấp sự tương thích với Swift 3, trong bài này tôi sẽ giới thiệu các phần thay đổi của Swift mà ảnh hưởng tới code cũ nhiều nhất. Let's get started! Swift 4 được đi kèm trong Xcode 9, ...

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

Tìm hiểu PHP CLI (P1)

Nếu các bạn là người làm việc trong lĩnh vực công nghệ thông tin, dù không chuyên code php nhưng chắc hẳn các bạn đã ít nhiều biết đến hoặc có cơ hội làm việc với nó. Nó là một ngôn ngữ lập trình đã và đang khá phổ biến trên Thế Giới hiện nay. PHP giúp những nhà phát triển web chỉ trong một thời ...

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

Tìm hiểu về cổng thanh toán GMO

Giới thiệu GMO là một cổng dịch vụ thanh toán số 1 của Nhật, Nó hỗ trợ nhiều hình thức thanh toán (credit card, multipayment như pay-easy convenience-store ...). Nó cung cấp đầy đủ các phương thức thanh toán chính của Nhật (theo như trên doc của nó </p> <div class= Tác giả: Bùi Văn Nam viết 15:54 ngày 12/08/2018

ReactJs với Ruby on Rails 5 (Phần 2)

Bây giờ mình tạo 1 model event # db/migrate/20170825065530_create_events.rb class CreateEvents < ActiveRecord::Migration[5.0] def change create_table :events do |t| t.string :name t.date :event_date t.text :description t.string :place t.timestamps end ...

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

Net::HTTP

Một HTTP client API của Ruby Net::HTTP cung cấp một thư viện rất mạnh, nó có thể sử dụng để xây dựng các HTTP user-agent. Để biết thêm về HTTP bạn hãy xem RFC2616. Net::HTTP được thiết kế để làm việc được với URI. URI::HTTP#host, URI::HTTP#port và URI::HTTP#request_uri được thiết kế để làm việc ...

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

Giới thiệu về Selenium Web Driver

Những bài viết trước mình đã tìm hiểu về Selenium IDE - 1 phần trong bộ kiểm thử tự động miễn phí Selenium. Để tiếp nối quá trình tìm hiểu và học tập, mình sẽ viết các bài viết Selenium Web driver. Trước hết, mình sẽ nhắc lại sơ qua về SELENIUM. A. SELENIUM 1. Selenium là gì? Selenium là bộ ...

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

How to avoid memory leaks in Java

Tự quản lý bộ nhớ trong máy ảo Java (JVM) được xem là tính năng mạnh nhất của Java, và là một trong những lý do khiến các lập trình viên chọn Java thay vì chọn các nền tảng và ngôn ngữ lập trình khác. Theo lý thuyết mà các Java-er thường quảng cáo là "bạn chỉ cần viết code tạo các đối tượng - ...

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

Thêm thuộc tính động vào Model ActiveRecord Rails

Trong quá trình làm việc thì chắc hẳn ai trong chúng ta cũng đã gặp trường hợp không thể nắm bắt hết tất cả các thuộc tính của 1 model hoặc thuộc tính sẽ phát sinh trong quá trình xây dựng ứng dụng. Một ví dụ điển hình là hệ thống theo dõi các địa chỉ liên lạc có một model Contact bao gồm name, ...

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

Bootstrap Tags Input

Chào các bạn, hôm nay mình xin phép giới thiệu một jquery plugins cung cấp giao diện người dùng cho Twitter Bootstrap để quản lý các tags đó là Bootstrap Tags Input. Bài viết của mình chủ yếu là dịch từ trang chủ http://bootstrap-tagsinput.github.io/bootstrap-tagsinput/examples/, mình sẽ không ...

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

Game với HTML canvas

Trong bài viết này tôi sẽ hướng dẫn tạo một game đơn giản mô phỏng chuyển động với canvas và javascript Đầu tiên ta sẽ tạo file html và một vẽ ra một khung mô phỏng game bằng canvas với kích thước là 600 * 400 Tham khảo github <!DOCTYPE html> <html> <head> <meta ...

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

Inject mọi thứ - ViewHolder và Dagger 2 (với Multibinding và AutoFactory)

Mục đích chính của Depedency Injection pattern được implement bởi Dagger 2 là tách riêng việc khởi tạo khỏi hành vi của đối tượng. Trong thực tế, điều này có nghĩa là tất cả các lời gọi toán tử new, newInstance sẽ không được gọi ở bất kỳ nơi nào khác ngoài Modules của Dagger. Cái giá của Dagger - ...

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

Laravel Deep Dive

Laravel là một trong những framework php nổi tiếng nhất hiện nay. Nó hỗ trợ cho lập trình viên rất nhiều trong việc tổ chức cấu trúc cho project, xử lý truy vấn dữ liệu, xử lý các tác vụ liên quan đến queue, job,, load các package cần thiết cho project... Tuy nhiên nó cũng làm cho lập trình viên ...

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

Mobile App Performance Testing: Strategy, CheckList, Tools

Đối với bất kỳ ứng dụng dành cho thiết bị di động nào, hiệu suất là rất quan trọng. Nếu ứng dụng dành cho thiết bị di động của bạn không hoạt động tốt, người dùng sẽ gỡ bỏ ứng dụng của bạn để tìm ứng dụng khác hoạt động tốt hơn. Ứng dụng di động của bạn cần phải được kiểm tra kỹ lưỡng trước khi ...

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

Quy hoạch động - một thuật toán thần thánh

Trong bài viết này, tôi sẽ giới thiệu với các bạn một thuật toán thần thánh: quy hoạch động. Nếu bạn tham gia các cuộc thi code, bạn nhất định phải biết thuật toán này. Gần một nửa các bài thi trong các cuộc thi code cần đến quy hoạch động. Tất nhiên, có những cách khác để giải bài toán đó. ...

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

Zero downtime deployment for Rails with Capistrano and Unicorn

Trên Viblo cũng có khá nhiều bài viết về việc auto deploy một ứng dụng Ruby on Rails với Capistrano. Nhưng mình cũng vẫn chia sẻ bài viết này với mục đích hướng dẫn mọi người chi tiết hơn trong việc cài đặt một server từ chưa có gì cho tới khi ứng dụng của chúng ta được chạy và có khả năng deploy ...

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