Cách tạo USB Boot 2021 2GB qlam siêu nhẹ

Leave a Comment

Hướng dẫn tạo USB boot 2021 cho USB 2gb siêu nhẹ và đầy đủ phần mềm để cứu hộ máy tính


Cài USB boot qua 2 bước cực kì đơn giản.


USB Boot là gì?


USB Boot là một chiếc USB có chứa hệ điều hành nhỏ gọn để cài Windows cứu hộ máy tính. Ví dụ bạn gặp lỗi không khởi động được hay không boot vào Windows được thì USB Boot sẽ cứu máy tính bạn.


Nguồn usb boot từ NHV đã lược bỏ 1 số phần để dung lượng nhẹ (1.7GB) cho USB 2gb.


Tính năng của NHV Boot 2021 (chỉ hỗ trợ 64 bit nhé)


  • Win10PE 20H2 mới chỗ trợ cài đặt phần mềm dạng .exe và .msi Native nhận mạng LAN + Wifi.

  • Hỗ trợ khởi động theo 2 chuẩn UEFI và Legacy/CSM.

  • Hỗ trợ nhận ổ cứng laptop Gen 11 Intel.

  • Hỗ trợ nhận Touchpad trên laptop gen 11 Intel và các đời máy cũ hơn.

  • Tốc độ load WinPE rất nhanh.

  • Hỗ trợ Pstart Menu Apps đa dạng đầy đủ công cụ cứu trợ máy tính.

  • Đơn giản dễ dùng nhiều tính năng.

Hướng dẫn tạo USB Boot với NHV-BOOT-2021Hướng dẫn tạo USB boot cho usb 2gb siêu nhẹ và đầy đủ phần mềm để cứu hộ máy tính.


Xem danh sách apps. Click vào hình hoặc đây để zoom hình ảnh


Cài đặt để USB của bạn có thể BOOT vào máy tính (Cài USB boot qua 2 bước cực kì đơn giản)


  • 1 USB ít nhất dung lượng 2GB và đã Format trống nhé.

  • Tải file ở dưới về rồi giải nén và copy vào USB của bạn. Xong Rồi!!!

Link tải USB Boot 2021 1.7GB



Phần mềm cần thiết sau khi cài Windows


Cách nén file tối ưu nhất với 7 zip



Bạn có thắc mắc gì thì hãy bình luận bên dưới nhé!



Công cụ, Phần mềm, Tool
Thủ thuật
Xem Tiếp

Dùng 2 động từ (verb) đứng cạnh nhau trong tiếng Anh

Leave a Comment

Bài viết tóm tắt cách dùng 2 động từ đứng cạnh nhau trong tiếng Anh.


Trong tiếng Anh, khi chúng ta muốn sử dụng hai động từ với nhau, chúng ta thường đặt động từ thứ hai ở dạng nguyên thể. Thông thường, động từ thứ 2 sẽ có dạng hoặc là TO DO; DO; DID hoặc DOING. Với số lượng động từ đa dạng như trong tiếng Anh, việc chia động từ này nhiều khi cũng khá phức tạp.


QUI TẮC CHIA 2 ĐỘNG TỪ ĐỨNG CẠNH NHAU


tovandving
tovandving

1. To infinitive (động từ nguyên mẫu với TO)


Cụm động từ nguyên mẫu: là một nhóm từ bắt đầu bằng một động từ nguyên mẫu có To (to inf)


Examples:


infinitive


They agreed to lower the price.
He appeared to be the most experienced member of the group.


object + infinitive


I advised him to take the job.
They invited Mike to go out for drinks after work.


optional object + infinitive


I asked to take the day off.  (no object)
I asked my boss to give me the day off. (object = my boss)


 








infinitiveobject + infinitiveoptional object + infinitive
agree

appear

arrange

care

claim

decide

demand

deserve

fail

get (be allowed to)

hesitate

hope

intend

learn

manage

offer

plan*

pretend

refuse

seem

swear

wait
advise**

allow**

cause

convince

encourage**

force

get (cause to)

hire

invite

order

permit**

remind

require**

tell

warn
ask

choose

expect

need

prepare

promise

threaten

want

wish

would like

*”plan” can also be used as “plan on + gerund.”

**These verbs can also be followed by the gerund


2. Bare infinitive (động từ nguyên mẫu không TO)


Examples:


object + base infinitive (the infinitive without to)


I had my secretary call my clients for me.  
I never let my children stay up late at night. 


object + base infinitive or gerund


I heard him complain.
I heard him complaining. 


I saw Chris leave the room.
I saw Chris leaving the room.






object + base infinitiveobject + base infinitive or gerund
have

help

let

make
feel

hear

listen to

look at

notice

observe

see

smell

watch


Note that when “have” is used to communicate obligation, it is followed by the infinitive (“I have to work tomorrow,” for example).


3. Gerunds (V-ing)


Examples:


gerund


I finished making all of my sales calls at around three o’clock this afternoon.
Kevin dislikes carrying his cell phone with him everywhere he goes.


preposition + gerund


He apologized for coming late.
This time they insisted on getting a better price.






gerundpreposition + gerund
admit

advise**

allow**

appreciate

avoid

can’t help

complete

consider

defend

delay

deny

despise

discuss

dislike

don’t mind

encourage**

enjoy

finish

imagine

involve

keep

mention

mind

miss

permit**

practice

recommend

report

require**

resist

risk

suggest

tolerate

understand
accuse of

agree with

apologize for

believe in

blame for

complain about

concentrate on

congratulate someone on

cope with

decide against

depend on

dream about/of

feel like

get used to

insist on

look forward to

plan on*

prevent someone from

rely on

succeed in

specialize in

stop someone from

talk about/of

think about/of

warn someone against

worry about

*”plan on” can also be “plan + infinitive”

**These verbs can also be followed by an object and the infinitive

Note that the verbs in the second column of section 4 can be followed by an object and the gerund.


 


 4. Verbs Followed by either the Infinitive or Gerund (to V, V_ing)


Examples:


infinitive or gerund (with no real change in meaning)


I love to go to the beach.
I love going to the beach. (same meaning)


I can’t stand to work late at night.

I can’t stand working late at night. (same meaning)


infinitive or gerund (with a change in meaning)






infinitive or gerund (with no real change in meaning)infinitive or gerund (with a change in meaning)
can’t stand

cease

continue

hate

like

love

neglect

prefer

propose
begin

forget

keep

need

regret

remember

start

stop

try

 



Học hành, Tiếng Anh
English
Xem Tiếp

Tutorial MERN React Node Next.js Multi User SEO Blogging Platform

Leave a Comment

Hướng dẫn MERN React Node Next.js Multi User SEO Blogging Platform


Khóa học cho:


A Web Developer looking to Build API with Node JS and MongoDB

A Web Developer looking to Build Fast, Interactive and Scalable Web Applications using React and NextJs

A Web Developer looking to Build a FullStack SEO Multi User Blogging Application using MERN Stack

A Web Developer looking to build SSR React Apps using Next Js

A Web Developer looking to build production ready app with Role based Authentication and Authorization system

A Web Developer looking to build practical real world project for real world use with React Node and NextJs


Yêu cầu:


Basic Understanding JavaScript or any other programming language

Basic Understanding of React Js

Basic Understanding of Node Js

Welcome to learn Full Stack / MERN Stack Web Development with React Node Mongo DB and NextJs. In this course you will learn to build backend API with Node, Express and Mongo DB. You will learn to build frontend web app with React and NextJs. You will learn to build SEO web app using NextJs which is a framework for building production level React apps.

By the end of this course you will have build a production ready SEO multi user blogging platform. This course is your ultimate workshop for building full stack MERN Web Apps with detailed focus on Node React NextJs and SEO.

Link video please contact me on the Fanpage


What you’ll learn


User Signup / Signin

Forgot Password / Reset Password

Account Activation on User Signup

Social Login with Google

JWT based Authentication System

Admin / User Dashboard

Role Based Authorization System

Advance CRUD with Image Upload

Blogs Search

Load More Blogs

Categories

Tags

SEO – Search Engine Optimization

Practical Real World Project running live on the server

API Development with Node Express MongoDB

Frontend Web Development with React Hooks and NextJs

SSR with NextJs

User Public Profile Page with List of Blogs and Contact Form

Blog Author Private Contact Form

User Private Dashboard

Multiple User Authorization System

Multi User System that can be Scaled to Build Marketplace App

Standard Contact Form

DISQUS Commenting System

Related Blogs

Google Analytics Integration

Sendgrid for Sending Emails

Deploying to Digital Ocean Cloud Servers

Adding Domain

Cloudflare CDN and Free SSL

Writing Clean Code

Scalable Project Structure


MERN React Node Next.js Multi User SEO Blogging Platform



Học hành, Lập trình
Javascript, Lập trình
Xem Tiếp

Cấu hình IP tĩnh cho CentOS 7 trên VirtualBox

Leave a Comment

Configure Static IP Address in CentOS 7 Virtual Box


5 bước để cấu hình IP tĩnh cho CentOS 7 trên VirtualBox một cách đơn giản và nhanh chóng. Chúng ta cùng bắt đầu!


1. Cấu hình VirtualBox cho CentOS 7 như hình


Chuyển Network sang Bridged Adapter
cau-hinh-ip-tinh-cho-centos-7-tren-virtualbox


2. Đăng nhập vào máy ảo Centos 7 và chỉnh sửa file ifcfg-enp0s3


vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

Cấu hình ip tĩnh cho Centos 7 bằng cách chỉnh sửa phần in đậm dưới đây:


TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=6ab8c39d-6b8a-476e-85f8-6acaa996da02
DEVICE=enp0s3
ONBOOT=yes
IPADDR=192.168.100.99
NETMASK=255.255.255.0
GATEWAY=192.168.100.1
DNS=8.8.8.8

3. Chỉnh sửa file /etc/resolv.conf


vi /etc/resolv.conf


Thay đổi nội dung:


nameserver 8.8.8.8

4. Reset cấu hình mạng cho máy ảo centos 7 để update phần cấu hình trên


service network restart

5. Bạn có thể test bằng lệnh ping google:


ping google.com

Xong mình đã hướng dẫn Cấu hình IP tĩnh cho CentOS 7 trên VirtualBox. Hãy tự nhiên bình luận bên dưới nếu thắc mắc bạn nhé!


Xem thêm: Cách sửa lỗi WARNING: UNPROTECTED PRIVATE KEY FILE! trên Linux và Mac OS



Lập trình, Linux
Thủ thuật
Xem Tiếp

Cách sửa lỗi WARNING: UNPROTECTED PRIVATE KEY FILE! trên Linux và Mac OS

Leave a Comment

How to Fix “WARNING: UNPROTECTED PRIVATE KEY FILE!” on Mac and Linux


Amazon Lightsail giảm giá 50% các plan, thêm 2 gói mới » Canh Me


@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/path_to_key.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /path_to_key.pem
Permission denied (publickey).

Lỗi thường gặp khi dùng lệnh SSH connect server, chả hạn bạn dùng Amazon Lightsail.


Cách sửa lỗi qua 2 bước terminal đơn giản:


Bạn muốn kết nối tới server thông qua SSH thì bạn cần tải file .pem về máy. Sau đó dùng lệnh sau:


$ sudo chmod 600 /path_to_key.pem

Sau đó


$ sudo chmod 755 ~/.ssh

Tại sao tôi gặp lỗi WARNING: UNPROTECTED PRIVATE KEY FILE!


Lỗi xảy ra do khoá riêng tư (key.pem trong ví dụ trên) quá dễ truy cập đối với người dùng trên hệ thống. Đây là một vấn đề bảo mật vì khi đó bạn không phải là người duy nhất có thể sử dụng khóa. Khóa riêng tư chỉ được phép truy cập cho một người dùng.

Ví dụ: nếu kẻ tấn công bằng cách nào đó có được quyền truy cập vào hệ thống của bạn, thì chúng sẽ có thể truy cập vào khóa riêng tư của bạn.

 
Xong mình đã hướng dẫn bạn cách sửa lỗi WARNING: UNPROTECTED PRIVATE KEY FILE! Nếu bạn có thắc mắc gì hãy bình luận bên dưới nhé!



Học hành, Lập trình
Lập trình, Thủ thuật
Xem Tiếp

Cách Ép kiểu String, Number, Boolean trong Javascript

Leave a Comment

Cách Ép kiểu String, Number, Boolean trong Javascript – Type Conversion


Trong bài viết này mình sẽ hướng dẫn các bạn cách ép kiểu trong JavaScript. Có 3 loại ép kiểu chính mà chúng ta hay sử dụng nhất đó là: ToStringToNumber và ToBoolean. Bây giờ chúng ta sẽ đi vào chi tiết từng loại nhé.

Xem thêm: Viết code Javascript ngắn gọn với Array Distinct và Short-Circuit Evaluation


Chuyển đổi thành String


Để chuyển đổi nhanh chóng 1 số thành 1 chuỗi string, chúng ta có thể dùng concatenation operator + theo sau là ngoặc kép “” .
Ví dụ chuyển đổi number sang string 


const val = 3 + "";
console.log(val); // Result: "3"
console.log(typeof val); // Result: "string"

Chuyển đổi thành Boolean


Bên cạnh các giá trị boolean thông thường true và false trong, JavaScript cũng xử lý tất cả các value khác như là ‘truthy’ hay ‘falsy’. Nếu chúng đã được xác định thì các value trong JavaScript là ‘truthy’.
Xem thêm: giá trị falsy là gì ?

Chúng ta có thể chuyển đổi dễ dàng giữa true và false bằng cách dùng operator phủ định ! , vốn cũng sẽ chuyển đổi type thành “boolean" . Loại chuyển đổi type này có thể khá tiện dụng trong xử lý các conditional statement.
Ví dụ chuyển đổi sang boolean


const isTrue = !0;
const isFalse = !1;
const alsoFalse = !!0;
console.log(isTrue); // Result: true
console.log(typeof true); // Result: "boolean"

Chuyển đổi thành Số


Thêm addition operator + vào trước toán hạng cần chuyển thành số.

Ví dụ chuyển đổi string, boolean sang number.


let int = "10";
int = +int;
console.log(int); // Result: 10
console.log(typeof int); Result: "number"

Cái này cũng có thể được dùng để chuyển các boolean thành số, như bên dưới đây:


console.log(+true); // Return: 1
console.log(+false); // Return: 0

Trường hợp + sẽ vận hành như 1 concatenation operator hơn là addition operator có thể sẽ xảy ra. Khi đó (và bạn muốn return 1 số nguyên, không phải 1 số thực) bạn có thể sử dụng 2 dấu ngã: ~~ thay vào đó.

1 dấu ngã, được biết như là ‘bitwise NOT operator’, là 1 operator tương đương với   -n-1. Cho nên, ví dụ là ~10 sẽ bằng với -11 .

Sử dụng 2 dấu ngã liên tiếp làm điều hoà hoạt động 1 cách hiệu quả, bởi vì - (-n-1) -1 = n+1 -1 = n . Nói cách khác, ~-11 bằng 10 .


const int = ~~"10"
console.log(int); // Result: 10
console.log(typeof int); Result: "number"

Cho dù mình không nghĩ trong hầu hết trường hợp sử dụng, bitwise này cũng có thể dùng trên các boolean: ~true = -2 và ~false = -1 .


Quick Float to Integer – Chuyển nhanh số thực thành số nguyên với ‘bitwise OR operator’


Nếu bạn muốn chuyển đổi 1 số thực thành 1 số nguyên, bạn có thể dùng Math.floor() , Math.ceil() hay Math.round() . Nhưng cũng có 1 cách nhanh hơn để chuyển 1 số thực thành 1 số nguyên bằng | , nó chính là ‘bitwise OR operator’.


console.log(20.9 | 0); // Result: 20
console.log(-20.9 | 0); // Result: -20

Hành vi của | khá đa dạng dựa trên việc bạn đang làm việc với số dương hay số âm, nên chỉ sử dụng  bitwise or operator này khi bạn đã chắc chắn hiểu nó.


  • Nếu n là dương, n | 0 làm tròn xuống 1 cách hiệu quả.

  • Nếu n là âm, nó sẽ làm tròn lên hiệu quả.

Để tăng độ chính xác cho nó, operation này gỡ bỏ bất cứ gì đến sau dấu thập phân, cắt số thực thành số nguyên.

Bạn có thể lấy hiệu ứng làm tròn bằng cách dùng ~~ , như ở trên, và thực tế là bất kỳ bitwise operator nào cũng sẽ buộc 1 số thực thành 1 số nguyên.


Xóa các chữ số cuối – Remove Final Digits


‘Bitwise OR operator’ cũng có thể được dùng để xóa số cuối của một số nguyên. Điều này có nghĩa là chúng ta không cần phải dùng code như thế này để chuyển đổi giữa các type:


let str = "1553";
Number(str.substring(0, str.length - 1));
// Thay vào đó, bitwise OR operator cho phép chúng ta viết:
console.log(6553 / 10 | 0) // Result: 655
console.log(6553 / 100 | 0) // Result: 65
console.log(6553 / 1000 | 0) // Result: 6

Xem thêm: Viết code Javascript ngắn gọn với Array Distinct và Short-Circuit Evaluation



Học hành, Lập trình
Javascript, Lập trình
Xem Tiếp

Viết code Javascript ngắn gọn với Array Distinct và Short-Circuit Evaluation

Leave a Comment

Mẹo viết code Javascript ngắn gọn hơn


Dưới đây là một số cách xử lí vấn đề dùng cách viết javascript thật ngắn ngọn, súc tích. Nếu bạn đọc giả có cách viết hay hơn hãy bổ sung ở phía bình luận cuối trang nhá.


JavaScript Array Distinct


Set type object đã được ra mắt trong ES6, cùng với spread operator(), chúng ta có thể dùng nó để tạo 1 array mới chỉ gồm các giá trị duy nhất (unique values).

Ví dụ:


  • Distinct elements of an array of primitive values

  • Distinct property values of an array of objects


const array = [2, 2, 3, 5, 8, 5, 8]
const distinctArray = [...new Set(array)]; // Result: [2, 3, 5, 8]
// Distinct property values of an array of objects
const array = [
"name":"Nam", "age": 20,
"name":"Truong", "age": 10,
"name":"Linh", "age": 10,
];
const distinctAges = [...new Set(array.map(e=>e.age))]; // [20,10]


Short-Circuit Evaluation


Ternary operator là 1 cách nhanh gọn để viết các statement điều kiện đơn giản (và đôi khi phải lồng vào nhau), ví dụ như là:



Bạn thấy dòng 2 phía trên áp dụng ternary operator nhưng cũng phức tạp hơn mức cần thiết. Thay vào đó, chúng ta có thể dùng logical operators ‘and’ && và ‘or’ || để đánh giá các expression nhất định 1 cách còn ngắn gọn hơn.
Cách làm việc của nó

Giả sử ta muốn return chỉ 1 trong 2 hay nhiều option.


And &&


Sử dụng && (And chỉ đúng nếu tất cả toán hạng đều đúng, return về giá trị của toán hạng cuối cùng) bằng không sẽ return khi gặp giá trị “falsy” đầu tiên.



Or ||


Dùng || sẽ return true khi gặp giá trị “truthy” đầu tiên. Nếu mỗi toán hạng đánh giá tới false, evaluated expression cuối cùng sẽ được return.



Ví dụ 1: Chúng ta muốn return length của 1 variable, nhưng ta lại không biết variable type.

Chúng ta có thể dùng statement if/else để kiểm tra xem type của foo có được chấp nhận không, nhưng việc này có thể hơi dài dòng. Thay vào đó short circuit evaluation cho phép chúng ta có thể làm như thế này:



Nếu variable của foo là truthy, nó sẽ được return. Nếu không thì, length của array trống sẽ được return: 0 .
Ví dụ 2:

Đã bao giờ bạn gặp vấn đề truy cập 1 nested object property? Bạn sẽ không biết rằng liệu object hay 1 trong các sub-property có tồn tại, và điều này có thể gây ra các lỗi khó chịu.

Giả dụ chúng ta muốn truy cập vào 1 property có tên data bên trong this.state, nhưng data lại không được xác định cho tới khi chương trình của ta return thành công 1 fetch request.

Thông thường ta sẽ viết 1 lệnh điều kiện:



Nhưng điều đó cũng có vẻ hơi lặp đi lặp lại. ‘or’ operator có thể giải quyết nó nhanh gọn hơn:




Chuỗi tùy chọn – Optional Chaining


const name = this.state.data?.name

Cú pháp ?. đặt sau data, tức là ta đang kiểm tra xem data đó có tồn tại hay không? Hoặc trong nhiều trường hợp data có giá trị null hoặc undefined thì sao? Lúc này Optional Chaining sẽ không return về error mà nó chỉ trả về undefined. Vì thế, name sẽ có giá trị undefined. Khi javascript tìm thấy null hoặc undefined, nó sẽ short circuit và ngừng đi sâu hơn.
Optional Chaining còn áp dụng được cho cả hàm:

Nếu data tồn tại và getAge tồn tại thì gọi hàm getAge()
const age = this.state.data?.getAge?.()


Dynamic properties


Nếu data tồn tại thì lấy giá trị của data[1]
const data = this.state.data?.[1]


Default values


Cú pháp Nullish coalescing operator biểu diễn dưới dạng ?? Nó cũng khá dễ đọc. Nếu bên vế trái có giá trị undefined, khi đó data sẽ có giá trị bên phải ?? tức là ‘Default name’
const data = this.state.data?.name ?? 'Default name'



Học hành, Lập trình
Javascript, Lập trình
Xem Tiếp