Kinh nghiệm về thay các loại dầu cho xe Vespa Sprint

Một phần các loại thông tin này khá là bí ẩn và truyền miệng cũng như đánh vào sự không rõ ràng thông tin nên khối tiệm dễ dàng đánh lận con đen nhiều trò.

Đơn giản nhé, nhớt máy 1 lít 2 , nhớt lap – hộp số hay gearbox – 250ml

Nhớt máy đổ loại scooter 5w40 hoặc 10w40 là ổn (Không nên đổ Castrol), mua 2 chai, mỗi chai 1 lít, dùng 1 lít 2 cho nên còn dư 800ml để dành đợt sau.

Nhớt gearbox thì thường bán 1 tuýp 150ml cho nên phải mua 2 tuýp, bóp 1 tuýp, bóp nữa tuýp còn lại là tạm.

Kinh nghiệm nhé tìm 1 chai bơm nhớt có đong thể tích và chuẩn bị trước nhớt cho đúng.

Good luck !

Fun with icon awesome

Có để ý sẽ thấy ở trang bsq486.com khi refresh sẽ đổi icon tự động kèm text bên dưới, vậy lượng icon ở đâu ra ?

Do một phần tui muốn có gì đó hiển thị bấm vào chuyển trang, nhưng rất phiền khi ngồi lựa icon, cho nên tự đặt ra câu hỏi:”Hay là để nó tự random ra một icon nhỉ?”

Hệ thống icon đang dùng là của Icon Awesome > có 4 bản solid:brand là free còn 2 bản còn lại là vip tốn tiền.

Dùng rất dễ, load css về, đặt đúng class là nó sẽ hiển thị ra, add class size để đổi size. Mọi hướng dẫn đều có ở website : https://fontawesome.com/how-to-use/web-fonts-with-css tui sẽ không nói về cách dùng ở đây, mọi người nên tự tìm hiểu nó mới thú vị nhé.

Nhưng nó không cung cấp api lấy ra toàn bộ icon đang có hiện tại.
Vậy làm sao nhỉ ?

Có 2 cách :

1.Lấy trực tiếp từ trong file css ra

var list = [];
for (let index = 0; index < document.styleSheets[3].rules.length; index++) { 
    var element = document.styleSheets[3].rules[index]; 
    var element2 = element.selectorText

    if (element2 && element2.indexOf("fa-") > -1 && element2.indexOf("::before") > -1) 
    {
        list.push(element2);
        console.log(element2)
    }
}

var rnd = list[getRandomInt(0, list.length)].slice(0, -7)
console.log(rnd)

Phần styleSheets các bạn nên dò trước coi file css nạp vô là nằm ở index mấy so với document.
Đoạn script trên lấy tất cả các element có trong rules mà có selectorText có chứa ‘fa-‘ và ‘::before’
Element được lấy ra và tống vào mảng list[] sau đó đó khi lấy ra dùng, random 1 số nằm trong khoản 0 đến length của list[].
> Lấy ra được element thì slice(0, -7) ở cuối 7 ký tự chính là chữ ::before.
> Lấy ra được element là tên ngẫu nhiên trong đống icon được cung cấp từ css của Icon Awesome

> Lấy xong thì addClass vào chỗ cần hiển thị nó, nhưng : không phải cái nào nó cũng hiện, đôi khi nó vướng vô mấy icon vip, cho nên cách 1 này có vẻ chưa stablize lắm.

2.Lấy từ Cheat sheets của website https://fontawesome.com/cheatsheet
Do cũng mò trên google ra stackoverflow có một câu trả lời ở đây : https://stackoverflow.com/a/33794368/1008675 của floribon
Nôm na sẽ vào trang Cheat Sheet rồi mở Console lên để chạy một lệnh gom nhóm các tên đang ghi, được phân loại theo Solid, Brands, vip…

Sau khi lấy xong mình đưa vào mảng :

var solid = ["address-book", "address-card", "adjust"...] 
var brands = ["address-book", "address-card", "adjust"...] 

var rnd1 = solid[getRandomInt(0, solid.length)] 
var rnd2 = brands[getRandomInt(0, brands.length)] 

var classes = document.getElementsByClassName("fas") 
classes[0].classList.add("fa-" + rnd1); 
var classes = document.getElementsByClassName("fab") 
classes[0].classList.add("fa-" + rnd2);

Như đoạn trên, sau khi lấy ra, chạy random, lấy ra element thêm “fa-” vào đầu tên, xong add vào đúng vị trí.
Vị trí nào thì để ý cái <i> chứa phải có sẵn class fas dành cho solid icon và class fab dành cho icon brands.

Bonus: cung cấp thêm hàm random with range nhé !

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

Good luck!

Kinh nghiệm cài VESTACP

Thực ra không quá khó, mọi thứ nó đã tự động hoá hết nhưng mình cần vọc ở 1 máy ảo trước, có hư cũng đỡ cực hơn chơi vps thật.
Đầu tiên cài 1 hệ điều hành CENTOS7 64bit mới cáu.

yum update
yum install -y epel-release
nmtui > config ip tĩnh và dns 8.8.8.8 , 8.8.4.4 để mấy phần tải về nó nhanh chút

Xong vào https://vestacp.com/install/ kéo xuống dưới cùng chọn các tuỳ chọn theo ý muốn (dưới đây là kinh nghiệm của tui)

web > nginx+ php-fpm
ftp > proftpd
mail > no
dns > named (nếu muốn tự làm nhà cái dns)
firewall > iptables + fail2ban
softaculous > no (cài vào rồi nó cũng bắt mua, nặng nề)
Addition reposity > remi
file system quota > no (cái này cực kì lạ, không nên yes, yes xong dễ bị lỗi permission ở mọi nơi)
DB > mysql (hoặc postgresql tuỳ dự án)

Nhập vào hostname mà bạn sẽ tạo tương ứng với domain, email và password sau đó sẽ cần để vào control panel

Bấm generate install command nó sẽ tạo ra các dòng :

# Connect to your server as root via SSH
# Download installation script
curl -O http://vestacp.com/pub/vst-install.sh
# Run it
bash vst-install.sh --nginx yes --phpfpm yes --apache no --named yes --remi yes --vsftpd no --proftpd yes --iptables yes --fail2ban yes --quota no --exim no --dovecot no --spamassassin no --clamav no --softaculous yes --mysql yes --postgresql no

Trong đó dòng curl, và bash ở trên là 2 dòng cần để cài. Cứ làm theo hướng dẫn của nó, sẽ thấy kì diệu khúc cuối hiển thị ra thank you và đưa link vào cp cũng như password.

Cài xong làm gì ?

Cài nameserver ở domain chính. (chọn child-server nếu nó là domain quản lý dns mà có ns1.domain đó)
Cài mặc định nameserver ở account admin
Tạo ssl cho các host tạo ra
Redirect http thường biến thành https cho các host
Tạo ssl cho host cp (:8083)

Test lại ftp cho các trang
Test tạo database mysql > vào thử phpmyadmin

Kinh nghiệm mệt mỏi

Đã thử và thành công sau 5 lần cài lại máy ảo.
Đa số bị các vấn đề ở file system quota , như đã nói rất kì lạ.
Ftp không hoạt động tốt với vsftpd > nghiêm cấm sử dụng với mọi hình thức, rất fail!
Nếu chưa có nameserver riêng thì yêu cầu nhà cung cấp domain nó tạo cho mình về đúng với server ip của mình. (mình đang dùng Mắt Bão và Hostvn họ đều hỗ trợ làm cái này)
Trỏ về dns xong phải test lại với dnsquery.org/dnsquery và intodns.com > 2 cái này khá hay, giúp mình có được thông tin và đường đi đến dns của domain của mình, giúp mình có cái nhìn và hiểu được nó đang bị gì, chứ không mù mờ tại sao không vào được hoài.
Ngoài ra lỡ không cài named (dns) hồi lúc đầu, sau đó tự cài vô chắc chắn gãy, nó sẽ tạo zone khi bấm vào tạo dns, thế nhưng bị permission denied ở centos rất nhảm ! > Tốt nhất nếu có ý định hay không ý định sài nameserver riêng thì cứ cài vào trước về sau đỡ hối hận.

Cám ơn https://thachpham.com/ đã cất công làm video và hướng dẫn, rất là đầy đủ kỹ càng và chất lượng !

Good luck

Let’s Encrypt with VESTACP

Ngắn gọn là thế này, do sau khi cài VESTACP xong ai cũng muốn có nhu cầu cài SSL cho host được tạo ra với tên miền.
Nhưng do chi phí hạn hẹp cho nên cần có gì đó free thì Let’s Encrypt là hiệp hội cho phép làm điều đó free, nhưng phải renew 3 tháng 1 lần.
Sau khi cài xong vestacp các domain cần ssl như sau :

host:8083 > cái này là admin vestacp
https://host > cái này là host thường nhưng có domain chính là domain lúc cài đặt vestacp

Đối với host thường thì vào thẳng phần config web của host đó, enable phần ssl support và điền vào Cert, key, full

Mấy cái này lấy ở đâu ra ?

Tắt nginx và httpd trước rồi mới làm, nếu không sẽ bị lỗi không request được ipv4

service nginx stop
service httpd stop
yum install git -y
git clone https://github.com/letsencrypt/letsencrypt /opt/le
cd /opt/le
/opt/le/letsencrypt-auto certonly --standalone -d domain.com
cat /etc/letsencrypt/live/domain.com/cert.pem
cat /etc/letsencrypt/live/domain.com/privkey.pem
cat /etc/letsencrypt/live/domain.com/fullchain.pem

Nếu làm cho cái domain chính là cái domain của admin vestacp thì cần làm một số bước nữa mới vào 8083 xanh đẹp:

rm -rf /usr/local/vesta/ssl/certificate.crt
ln -s /etc/letsencrypt/live/domain.com/cert.pem /usr/local/vesta/ssl/certificate.crt
rm -rf /usr/local/vesta/ssl/certificate.key
ln -s /etc/letsencrypt/live/domain.com/privkey.pem /usr/local/vesta/ssl/certificate.key