Data structure and indexing for dictionary used for Autocomplete and Spell-checking

Introduction Xử lý ngôn ngữ tự nhiên là một lĩnh vực quen thuộc trong trí tuệ nhân tạo. Autocompletion và Spell-checking (hay nói chung là Autocorrection) là những vấn đề đầu tiên và xưa nhất của lĩnh vực này. Trong bài này chúng ta sẽ thử tìm hiểu một vài cấu trúc dữ liệu được sử dụng cho ...

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

Unit test iOS

Unit test là một cách rất tốt để viết code dễ hơn, tốt hơn. Việc viết unit test sẽ giúp bạn tìm ra phần lớn các bug một cách dễ dàng và xử lý nó. Nhưng điều quan trọng hơn là làm thế nào để viết code để thật dễ dàng maintain? 1. Bắt đầu Download start project tại link sau: Start Project. ...

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

30 đoạn biểu thức chính quy mà lập trình viên web nên biết

Biểu thức chính quy (hay regex) là một công cụ mạnh mẽ mà mỗi nhà phát triển nên biết. Nó có thể khớp với một chuỗi các ký tự dựa trên các thông số rất phức tạp mà có thể giúp bạn tiết kiệm rất nhiều thời gian khi xây dựng các trang web động. Dù các nhà phát triển Web phải đối mặt với nhiều nhiệm ...

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

LoadBalancing Webserver đơn giản với HAproxy trên Ubuntu server

Thuật ngữ Loadbalancing (cân bằng tải) với các anh chị em coder thì không còn xa lạ gì nữa. Với những ai chưa biết thì chúng ta có thể google hoặc vào đây để đọc nhé. Ý tưởng của kỹ thuật loadbalancing các bạn có thể hình dung như sau : Hãy tưởng tượng bạn đang ung dung phóng xe trên đường đến ga ...

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

Giới thiệu về gem Spreadsheet

I. Giới thiệu Thư viện Spreadsheet được thiết kế để đọc và ghi các tài liệu Spreadsheet. Với bản 0.6.0 thì chỉ có Microsoft Excel là phù hợp mà được hộ trợ. Spreadsheet được viết bởi Daniel J. Berger và Hannes Wyss. Nó là một trong những thư viện nổi tiếng để xuất Excel trong Rails. Hiện tại Nó ...

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

Những ứng dụng Android tốt nhất trong năm 2016

Những ứng dụng Android tốt nhất trong năm 2016 Với hàng triệu ứng dụng Android để tải về từ cửa hàng của Google Play, có thể hiểu rằng bạn có thể cảm thấy mất phương hướng. Đừng băn khoăn - chúng tôi đang ở đây để hướng dẫn bạn qua các khu rừng của Google Play Store. Đơn giản chỉ cần các ứng ...

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

IFRAME VÀ CÁCH GIAO TIẾP GIỮA IFRAME VÀ MAIN PAGE

Dự án hiện tại của mình có sự phối hợp của nhiều bên. Mỗi bên phát triển một phần khác nhau kết hợp lại thành sản phẩm hoàn chỉnh. Phương pháp được lựa chọn ở đây là dùng thẻ Iframe của HTML để ghép các phần vào nhau. Tuy vậy, sau khi thực hiện có xuất hiện một số vấn đề về domain hoặc cách thức ...

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

Làm thế nào để xây dựng một pipeline phân tích xử lý Big Data (Part 2)

Như đã giới thiệu ở bài viết trước về sự cần thiết cũng như các thành phần cơ bản cấu thành nên một hệ thống phân tích dữ liệu lớn (pipeline Big Data processing). Tiếp theo chủ đề này, bài viết dưới đây sẽ hướng dẫn cụ thể về cách thức setup các dịch vụ: Cassandra (NoSQL database, main storage) ...

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

Cải thiện Performance với các Background jobs tốt hơn

Nó không phải là một điều bất thường khi chúng ta suy nghĩ về mở rộng như một điều dễ dàng có thể đạt được. Ví dụ như dịch vụ Heroku có thể cung cấp thêm resources cho ứng dụng của chúng ta như RAM, CPU một cách dễ dàng chỉ thông qua vài bước click. Tuy nhiên, trong khi nâng cấp infrastructure là ...

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

Form Validation trong Angularjs và ng-messages

Trong bài viết lần này mình sẽ đề cập tới Form Validation trong Angularjs. Trong AngularJs cung cấp cho chúng ta các phương thức validate như : require, min, max, minlength, maxlength, pattern... Ngoài ra nó cũng cho chúng ta tạo ra các validate cho chính mình. Đầu tiên chúng ta tìm hiểu ...

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

Tạo lập mail server trên hệ thống GNU/Linux (Phần 1)

Bài này sẽ hướng dẫn các bạn cách thiết lập một mail server với không giới hạn số lượng users và domains, với truy cập IMAP, anti-spam, anti-virus, xác thực bảo mật, mã hoá, web mail interface ... trên một Ubuntu distribution platform, tuy nhiên hướng dẫn sẽ có thể dùng cho các distro khác. Các ...

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

Những kỹ năng mềm cần thiết cho Tester

Ngoài các kiến thức về chuyên môn thì kỹ năng mềm cũng là các yếu tố giúp Tester có thể làm việc dễ dàng và hiệu quả hơn. Cùng tìm hiểu các kỹ năng cần thiết là gì nhé. Ham học hỏi: Công nghệ luôn luôn thay đổi liên tục đồng nghĩa với việc một Tester phải không ngừng học hỏi và cập nhật ...

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

Cách sử dụng filter trong AngularJs

Filter là một trong các components quan trọng trong AngularJs bên cạnh directive, service. Filter chuyển đổi dữ liệu trước khi dữ liệu đó được xử lý bởi một directive và được hiển thị trong một view mà không thay đổi dữ liệu gốc trong scope, cho phép cùng một dữ liệu có thể được hiển thị theo các ...

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

The Quality of Software Design ~Kỳ 5~

Part 5. Efficiency, Entrance of the dark abyss Từ đầu đến số trước, tôi đã nói về vấn đề trừu tượng hóa design dựa trên Reusability. Lần này, tôi muốn các bạn thử suy nghĩ về Efficiency. Trước khi vào chủ đề chính tôi có vài lời trước gửi tới các bạn. Chủ đề lần này rất khó. Các bạn không cần ...

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

[AngularJS toàn tập] Phần 8 :Form trong angularJs

Khi làm việc với các dự án web bạn hầu như sẽ được làm việc với form, form để người dùng đăng kí, form để người dùng đăng nhập, form tạo ticket, form tạo sản phẩm …bla bla … Nhưng so với các form html trước đây mà bạn đã làm việc thì form với ...

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

Android location API using Google Play services

1. Giới thiệu về Android Location Một trong những tiện ích của điện thoại là tính năng vị trí. Để có thể lấy được vị trí người dùng trên Android thì có 2 cách để thực hiện: Cách thứ nhất là sử dụng Android Location API Cách thứ hai là sử dụng Google Play services API Android Location API ...

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

Tìm hiểu giao thức RIP

Giới thiệu về RIP Ngày nay, một liên mạng có thể lớn đến mức một giao thức định tuyến không thể xử lý công việc cập nhật các bảng định tuyến của tất cả các bộ định tuyến. Vì lý do này, liên mạng được chia thành nhiều hệ thống tự trị (AS-Autonomous System). Hệ thống tự trị là một nhóm các mạng và ...

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

Làm Thế Nào Tạo Text Stickers Đẹp Trên Android

Trong bài viết này, chúng ta sẽ cùng nhau học làm thế nào để vẽ text trên canvas , đặt text vào những vị trí và cập nhật nó trên thời gian thực dựa trên đầu vào người dùng cũng như di chuyển, xoay và scale nó. Tất nhiên, Việc thêm một vài một vài text vào trong một image sẽ làm cho image ...

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

Khởi đầu với kiểm thử thâm nhập ứng dụng Web (Phần 1)

Kiểm thử thâm nhập là kiểm thử phổ biến nhất sử dụng các kỹ thuật kiểm tra an ninh cho các ứng dụng web. Kiểm thử thâm nhập ứng dụng Web được thực hiện bằng cách mô phỏng các cuộc tấn công trái phép từ bên trong hay bên ngoài để có được quyền truy cập vào dữ liệu nhạy cảm. Một sự thâm nhập ...

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

Những điều cần biết về Swift trong phát triển App IOS cho người mới bắt đầu

Khó khăn khi phát triển app IOS Ngày trước tôi là một lập trình viên Server side, tuy nhiên từ tháng 6 năm nay thì đột nhiên tôi đã trở thành lập trình viên IOS, và đó là cảm tưởng của tôi khi mới bắt đầu Có nhiều bài viết giành cho những lập trình viên mới bắt đầu như: "Lập trình App IOS một ...

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