Một số kinh nghiệm xử lý text bằng Linux command

1/ Merge all to single file

2/Trích keyword chứa từ cụ thể Ex: “car”

3/ Lấy keyword có chứa từ “car” dài 4 kí tự trở lên

Cài đặt LAMP trên Ubuntu 16.04

LAMP là 1 web stack thông dụng bao gồm 4 thành phần Linux, Apache, MySQL & PHP để host các trang web. Trong bài viết này các bạn sẽ làm quen với việc cài đặt LAMP trên server Ubuntu 16.04

1/ Trước khi bắt đầu

Cập nhật lại Ubuntu server của bạn

2/ APACHE

a) Cài đặt và cấu hình Apache

Trước tiên bạn cần cài đặt Apache 2.4 từ Ubuntu repository

Sau đó bạn chỉnh file cấu hình của Apache /etc/apache2/apache2.conf, sửa cấu hình KeepAlive thành Off

Tiếp theo chỉnh lại cấu hình của module MPM của Apache tại /etc/apache2/mods-available/mpm_prefork.conf cho phù hợp với cấu hình server của bạn, tùy chỉnh bên dưới áp dụng cho server 2GB RAM (bước này bạn có thể bỏ qua cũng được)

Tắt module mpm_event sau đó bật module mpm_prefork

Sau đó bạn restart lại Apache để thay đổi có hiệu lực

b) Cấu hình Virtual Hosts

Bạn có thể cấu hình virtual hosts (trỏ domain) cho Apache bằng nhiều cách, tuy nhiên dưới đây là cách khuyên dùng. Những cấu hình dưới đây bạn hãy thay example.com thành domain của bạn.

Đầu tiên bạn hãy copy file cấu hình mặc định của Apache thành 1 file khác có tên dựa trên domain của bạn để dễ quản lý

Chỉnh sửa file example.com.conf vừa mới copy như nội dung bên dưới

Tạo 2 folders tương ứng cho site example.com

Tiếp theo bạn cần enable file virtual host mới vừa tạo để Apache có thể nhận được

*** Nếu muốn disable virtual host của 1 site, bạn có thể dùng lệnh sudo a2dissite example.com.conf

Bạn tắt luôn virtual host mặc định của Apache để bảo mật hơn

Sau cùng bạn reload lại Apache để mọi thay đổi ở trên có hiệu lực

3/ MYSQL

Cài đặt MySQL

Sau khi cài đặt bạn có thể login vào MySQL với quyền root

Sau khi login vào MySQL, nếu bạn muốn đổi mật khẩu của root bạn có thể làm theo cách sau (thay “password” bằng mật khẩu của bạn)

Để bảo mật hơn, bạn nên tạo 1 MySQL database mới và 1 MySQL user mới có quyền truy cập vào database đó. Ví dụ bên dưới là tạo database webdata, sau đó tạo 1 user webuser với mật khẩu là password có toàn quyền đối với database webdata (bạn có thể thay các giá trị như tên database, tên user và mật khẩu theo ý thích của bạn)

Sau khi mọi thứ đã xong, hãy thoát khỏi MySQL

4/ PHP 7.0

Cài đặt PHP 7 cùng các extension cần thiết để PHP tương tác được với Apache và MySQL

Một số extension của PHP bạn có thể cài đặt thêm nếu cần thiết (như cURL, JSON, CGI …)

Sau khi cài đặt PHP 7.0 bạn cần tùy chỉnh file /etc/php/7.0/apache2/php.ini để có hiệu suất tốt hơn cũng như dễ quản lý error log của PHP.

Tại log folder cho PHP và set quyền cho phép Apache được truy cập vào

Sau cùng bạn cần restart lại Apache để thay đổi có hiệu lực

5/ Test xem LAMP có hoạt động chưa

Đến bước này thì bạn đã cài đặt thành công LAMP trên Ubuntu 16.04, xin chúc mừng!

Tuy nhiên nếu bạn muốn kiểm tra mọi thứ xem có hoạt động đúng chưa, bạn có thể tiến hành bước test bằng cách tạo file /var/www/html/example.com/public_html/phptest.php

Dùng trình duyệt trên máy của bạn truy cập vào example.com/phptest.php, nếu hiện ra dòng ‘Connected successfully’ => điều này có nghĩa là việc cấu hình LAMP của bạn đã OK, không có gì sai sót.

 

5 nguồn học miễn phí VueJS

VueJS là 1 Javascript framework được phát triển nhằm mục đích xây dựng giao diện người dùng. Thư viện lõi của VueJS chỉ tập trung vào lớp view (lớp hiển thị), và có thể dễ dàng tích hợp chung với các thư viện JS khác hoặc có thể được áp dụng ngay vào dự án hiện tại. Ngoài ra, VueJS còn được sử dụng để xây dựng các ứng dụng Single Page (Single-Page application).

VueJS được hậu thuẫn mạnh mẽ bởi cộng đồng Laravel nên không khó để tìm hiểu VueJS thông qua các tutorial trên Internet. Dưới đây là tổng hợp 5 nguồn để học VueJS miễn phí và chất lượng.

1/ Learn Vue 2: Step By Step tại Laracasts

Video tutorial này do Jeffrey Way giảng dạy – tác giả của khóa học jQuery in 30 days. Khóa học này của ông được public miễn phí tại trang web Laracasts (trang web nổi tiếng dạy Laravel) và có thể được xem là “serie học VueJS chuyên sâu nhất” từ trước đến nay. Sau khi hoàn tất khóa học này, bạn sẽ nắm vững VueJS từ căn bản cho đến nâng cao.

2/ Vue.js Fundamentals tại Youtube

Khóa học là 1 playlist trên Youtube bao gồm 10 video của Devmarketer để bạn có thể bắt đầu từ những thứ căn bản nhất của VueJS 2 và chuyển sang những tutorial nâng cao hơn như xử lý API requests với Axios. Serie video này khá tuyệt dành cho những người mới làm quen với VueJS.

* vue-resource không còn nằm trong phần core (lõi) của VueJS và Axios là thư viện được khuyên dùng cho AJAX HTTP request.

3/ VueJS User Guide tại VueJS.org

Đừng ngạc nhiên bởi vì tutorial tại trang chủ của VueJS là một trong những tài liệu hàng đầu và rất đáng để đọc trước tiên. Có thể bạn sẽ bị cám dỗ bởi những video tutorial trên Internet nhưng thật sự là tài liệu tại trang chủ của VueJS rất hữu ích cho những người mới bắt đầu. Tài liệu API của VueJS cũng có sẵn tuy nhiên tôi nghĩ sẽ rất ít người có thể đọc (vì ngán và hơi khô khan)

4/ Develop Web Apps with Vue.js tại Egghead.io

Đây là 1 khóa học nhanh khoảng 10 video (tổng cộng khoảng 16 phút), không phải là khóa học tốt nhất để dành cho những người mới làm quen với VueJS hoặc với mô hình ViewModel. Tuy nhiên khóa học này cũng có tổng hợp những kịch bản VueJS thường gặp để bạn có thể tham khảo. Khuyến cáo bạn nên nắm vững căn bản trước khi học khóa này

5/ Getting Up and Running with the Vue.js 2.0 Framework tại Sitepoint

Cuối cùng là 1 tutorial nâng cao của VueJS, bao gồm quy trình tạo ra các components và đóng gói chúng với webpackvue-loader. Khóa học này giúp bạn tiến gần hơn đến việc tạo 1 ứng dựng VueJS mang tính chất thực tiễn có thể áp dụng vào project của bạn. Tuy nhiên bạn cần có nền tảng về ECMAScript 2015 (ES6) để có thể theo được khóa này (đặc biệt là modules và arrow functions). Nhưng không sao, bạn có thể tìm thấy những khóa học miễn phí về ES6 tại Laracasts hay Egghead dễ dàng. Quá tuyệt vời phải không?! 😀

Gửi email bằng Gmail và SendGrid trên Laravel 5

Laravel cung cấp cho chúng ta nhiều phương thức để gửi email. Bạn có thể sử dụng mail server trên host/vps/server của bạn để gửi mail, hoặc sử dụng các dịch vụ gửi mail bên ngoài như Mailgun, Sendgrid, Mandrill, Amazon SES, v.v…

Để gửi email trên Laravel, trước tiên hãy tùy chỉnh file config/mail.php

1/ Gửi email bằng Gmail

Đầu tiên bạn truy cập vào https://myaccount.google.com/security#connectedapps sau đó thiết lập tùy chỉnh tại Sign-in & security -> Connected apps & sites -> Allow less secure apps. Bạn chỉnh Allow less secure apps thành ON => điều này sẽ cho phép bạn sử dụng ứng dụng không phải của Google đăng nhập vào Gmail của bạn để gửi email.

Tiếp đến bạn cần chỉnh các thông số gửi mail tại file .env

Trong đó yourEmail là Gmail của bạn, và yourPassword là mật khẩu Gmail của bạn.

*** Nếu bạn gặp phải lỗi sau khi gửi mail “Failed to authenticate on SMTP server with username “youremail@gmail.com” using 3 possible authenticators” thì bạn hãy thử 1 trong các cách sau:

– Truy cập vào https://accounts.google.com/UnlockCaptcha và click vào continue and unlock your account for access through other media/sites
– Sử dụng mật khẩu với 2 dấu nháy kép “your password”
– Sử dụng Gmail username không có đuôi @gmail.com

2/ Gửi email bằng SendGrid

Đầu tiên bạn cần đăng ký 1 tài khoản tại https://sendgrid.com

Sau khi lấy được thông tin SMTP từ SendGrid, bạn tiến hành chỉnh sửa file .env

3/ Viết code để kiểm tra việc gửi email

Cuối cùng, bạn cần viết code gửi email để kiểm tra xem code của bạn đã hoạt động chính xác chưa. Để làm việc này, bạn thêm vào file routes.php đoạn sau

Như bạn thấy, chúng ta sử dụng method send của Mail facade với 3 tham số

– Tên của view mà chúng ta sẽ sử dụng để gửi mail
– Mảng $data để truyền biến vào view
– Closure function (hàm closure) để bạn tùy chỉnh các thông số như tiêu đề email, email gửi, email nhận …

Bạn cần tạo file views/emails/welcome.blade.php để Laravel sử dụng file này như nội dung của email

Sau cùng, bạn thử truy cập vào http://domain/sendemail để kiểm tra (trong đó domain là tên miền của bạn), nếu bạn thấy kết quả trả về trên trình duyệt là đoạn text “Gửi email thành công!!!” => điều đó nghĩa là bạn đã cấu hình email thành công, hoặc bạn có thể kiểm tra email được gửi đến để chắc chắn hơn.

Thư viện tách từ tiếng Việt bằng Python 2

Mới tìm được một thư viện tách từ tiếng Việt cực ngon viết bằng python2 với độ chính xác kinh khủng, dành cho anh em nào đang nhập môn xử lý ngôn ngữ tự nhiên. Có cả tài liệu + thuật toán đầy đủ để anh em nghiên cứu. Ngoài ra còn kèm theo bộ data từ điển tiếng Việt cùng toàn bộ tên người và tỉnh thành tại Việt Nam

* Cho anh em nào chưa biết: tách câu là một vấn đề bắt buộc và cơ bản nhất để có thể xử lý tiếng Việt, trong tiếng anh nó phân cách từ bằng dấu cách nhưng tiếng Việt dấu cách nó lại để tách các âm tiết, ví dụ từ đất + nước đứng riêng sẽ là 2 tư khác nhau nhưng ghép chung lại thì nó lại mang nghĩa khác, thư viện này sẽ tự tìm các từ ghép để chúng ta xử lý câu văn dễ hơn

Link: https://github.com/roy-a/Roy_VnTokenizer