DeepFaking the News with NLP and Transformer Models

Original source: https://colab.research.google.com/drive/1VI3oBIOQYsym2x5oOux7DTNhpdR0r4uw#scrollTo=uvGg4QZB-ZxX

Ref: https://github.com/openai/gpt-2
https://openai.com/blog/better-language-models/
https://gist.github.com/ageitgey/d7eae5eab1be8eaad48ac387faf49831
https://github.com/rowanz/grover

Step 1: Configuration

Step 2: Download Grover code and install requirements

Step 3: Download Grover Pre-Trained ‘Mega’ Model

Step 4: Generate Fake Blog Entries and Post to WordPress

 

General Settings – Thiết lập những cài đặt chung cho WordPress

Trong bài viết này, chúng ta sẽ làm quen với General Settings – nơi quản lý những thông tin cơ bản của 1 website được làm bằng WordPress. Đây cũng là trang mặc định khi bạn truy cập vào phần Settings trong WordPress admin.

Dưới đây là những bước thao tác cụ thể với General Settings

Bước 1: Truy cập vào Settings > General trong trang quản lý WordPress

Bước 2: Màn hình General Settings sẽ hiện ra như hình bên dưới

Sau đây là những field được quản lý trong màn hình General Settings

Site Title: Tiêu đề hay tên website của bạn
Tagline: Mô tả đơn giản về website hay có thể là 1 câu slogan nói về website của bạn.
WordPress address (URL): đường dẫn URL tương ứng với thư mục trên hosting/server chứa những core files của WordPress
Site Address (URL): đường dẫn URL mà bạn muốn hiển thị website WordPress ra bên ngoài trình duyệt của người dùng
Administration Email Address: email của administrator (người quản trị có quyền cao nhất trong WordPress) để có thể nhận được những thông báo khi có thay đổi gì trên website
Membership: ở đây bạn có thể check hoặc uncheck vào mục “Anyone can register”, nếu bạn check vào thì web users khi truy cập vào website của bạn có thể đăng ký thành viên, ngược lại thì không.
New User Default Role: đây là nơi thiết lập quyền mặc định của 1 user khi họ đăng ký thành viên trên website. Mặc định là quyền “Subscriber”
Site Language: ngôn ngữ mặc định/ngôn ngũ chính trên website của bạn
Timezone: múi giờ mà bạn muốn đặt cho website của bạn
Date Format: định dạng của ngày mà bạn muốn để hiển thị trên website WordPress (mặc định là “F j, Y”, ví dụ “November 18, 2019”)
Time Format: định dạng của giờ phút giây mà bạn muốn để hiển thị trên website WordPress (mặc định là “g:i a”, ví dụ “3:52 am”)
Week Starts On: lựa ngày mà 1 tuần mới bắt đầu, bạn có thể chọn từ thứ 2, thứ 3 … cho đến chủ nhật, giá trị mặc định là “Monday” (thứ 2)

Bước 3: Sau khi đã chỉnh sửa những field trong phần General Settings, bạn bấm “Save Changes” để WordPress lưu lại toàn bộ những thiết lập mà bạn đã thay đổi.

Đ*’* QUAN TÂM!

Hôm nay tôi sẽ bật mí một công thức khoa học logic bá đạo trên từng hạt gạo, vận dụng triệt để 100% vào thực tế. Nó sẽ là kim chỉ nam giúp bạn tháo gỡ các rắc rối trong cuộc sống. Chỉ cần nắm một nguyên lý vi diệu mà đơn giản này thôi, bạn sẽ trở thành vô đối trên đường đời muôn lối.

Sau bài viết về “đường cong chuông”, có người chất vấn tôi rằng: quyển sách anh đề cập sao lại có tựa đề mất thẩm mỹ vậy. “The subtle art of not giving a fuck”. Nghệ thuật “đ’** quan tâm”!. “Rằng: đây hẳn là loại sách rẻ tiền. Rằng: là con người sống phải biết quan tâm mọi thứ xung quanh mình. Rằng: cuộc đời đó có bao lâu mà hững hờ.

Vâng! Đã khi nào ta tự hỏi điều gì trên đời đáng để quan tâm và điều gì không đáng quan tâm? Bạn thường sẽ trả lời theo cảm tính và thiên lệch: “Điều gì thích thì tôi quan tâm, không thích thì ko quan tâm. Làm gì tùy ý tôi”. Nghe rất giang hồ hiệp khách, như Tiêu Phong hay Lệnh Hồ Xung trong tiểu thuyết Kim Dung. Ôi, thực tế là trên đời này có vô vàn những thứ bạn không thích nhưng lại đáng được quan tâm, và rất nhiều những thứ bạn thích nhưng lại là vớ vẩn vô nghĩa.

Có người sẽ trả lời khá hơn một chút: “Điều gì cảm thấy có ích thì tôi quan tâm, không có ích thì không quan tâm.” Xin chúc mừng, trật lất luôn rồi! Quá cảm tính!

Chỉ có ai nắm rõ công thức tôi sắp trình bày mới phân biệt được đâu là thứ mà ta đ*’* cần quan tâm. Từ đó tâm trí và cuộc đời ta tốt đẹp hơn rất nhiều. Vì khi giải quyết một rắc rối nào đó, nếu bạn không nhận ra được đâu là điểm ta cần quan tâm thì bạn sẽ bị một mớ bòng bong các điều vô nghĩa làm cho chết ngộp, lú lẫn ko tìm được lối thoát.
Khi quan tâm đến một điều gì đó, nghĩa là ta đang hao tổn tâm trí và hoang phí thời gian cho nó. Và hãy tưởng tượng có muôn vàn điều vô nghĩa ta đang quan tâm, nghĩa là ta đang nhét vào đầu mình đầy những cục shit. Rồi có những cục shit bốc mùi nồng nặc khiến ta bị stress, trầm cảm, tâm thần…

Tôi tóm tắt những tinh túy trong quyển sách bestseller ấy để đem đến một công thức không hề thiên lệch hay cảm tính.
Để rồi cảm ơn đời mỗi sớm mai thức dậy, khi một vấn đề gì đó đập vào mặt, bạn cũng có thể đủ tỉnh táo để hiểu mình phải làm gì. Bạn sẵn sàng để trở nên bá đạo chưa, bắt đầu thôi!

Đầu tiên cần hiểu một từ, đó là từ “giá trị”. Giá trị nghĩa là những thứ VÔ HÌNH mà chúng ta cảm nhận được, tồn tại xung quanh vật chất hay sự việc.
Sự nổi tiếng, sự giàu có, sự thành công, sự hiểu biết .v.v… là các giá trị trong cuộc sống.
“Quan tâm đến một vật hay việc” là cách nói chưa chính xác, mà phải là: “quan tâm đến các giá trị xung quanh vật hay việc.”
Ví dụ ở một chiếc xe, thì một vài “giá trị của xe” mà bạn có thể quan tâm: sự trầm trồ của thiên hạ khi bạn lái chiếc xe đó, sự sướng của bạn khi lái xe, sự tiết kiệm xăng, sự bền .v.v…

Giá trị có 2 loại: Giá trị ĐÁNG quan tâm và giá trị KHÔNG ĐÁNG quan tâm.

Với giá trị đáng quan tâm, bạn có quyền chọn lựa thích hay không thích, chứ bạn ko thể quan tâm hết được vì nó nhiều vô số. Ví dụ: sự hiểu biết về cơ khí là giá trị đáng quan tâm, nhưng nếu bạn không thích thì bạn có quyền không quan tâm.

Còn với giá trị không đáng quan tâm, hãy vứt tất cả vào sọt rác.

Câu hỏi then chốt là làm sao phân biệt được chúng đây? Công thức rất đơn giản: “Giá trị đáng quan tâm là giá trị mà bạn có thể điều khiển, quyết định được nó. Giá trị không đáng quan tâm là giá trị bạn không thể điều khiển được.”

Sự nổi tiếng, sự giàu có, sự thành công, sự suy nghĩ của mọi người về bạn… là các giá trị không đáng quan tâm. (Trái ngược với cảm tính của bạn chưa?) Vì bạn không thể tự quyết định được những giá trị này. Bạn không thể điều khiển tất cả mọi người phải biết bạn, phải suy nghĩ tốt về bạn. Bạn không thể quyết định được khi nào mình thành công vì còn phải trải qua nhiều thất bại lắm. Thay vào đó, “sự hết mình làm việc vì mục tiêu đặt ra” mới là một giá trị đáng quan tâm, vì bạn điều khiển được giá trị này. Khi bạn quan tâm đến giá trị này, thì sự thành công sẽ đến như một hệ quả.

Trở lại với ví dụ chiếc xe. Giá trị “sự trầm trồ của thiên hạ” là giá trị vớ vẩn, vì sẽ có người chửi bạn ngu không biết mua xe, có người sẽ thấy nó hợm hĩnh, có đại gia đi xe xịn sẽ thấy xe bạn như cục shit…, bạn ko thể điều khiển được giá trị này.
Nhưng “sự tiết kiệm xăng” là giá trị đáng quan tâm, vì bạn có thể quyết định được, bằng kinh nghiệm chọn mua xe của bạn.

Bạn tức điên vì một thằng phục vụ xấc xược. Đâu cần thiết! “Sự tôn trọng của nó dành cho bạn” là giá trị không đáng quan tâm. Thay vào đó, “sự phản ánh điều này lên sếp của nó” mới là điều đáng quan tâm vì bạn quyết định được việc đó.

Sự hiểu biết là một giá trị đáng quan tâm vì bạn quyết định được giá trị này nhiều hay ít thông qua trau dồi kiến thức.
“Suy nghĩ của người khác về bạn” là giá trị không đáng quan tâm nhưng “chăm sóc ngoại hình bản thân” lại là giá trị đáng quan tâm.

Trở lại với việc anh chàng bị hỏi mua mèo hay một ca sĩ nào có phát ngôn gây sốc. Nếu giá trị bạn chọn là “sự hiểu biết về các trào lưu xã hội” thì bạn có quyền quan tâm. Nhưng nếu bạn phẫn nộ rồi lên Facebook chia sẻ tùm lum, nhảy vào Fb của họ để comment chửi bới…, thì bạn đang quan tâm đến giá trị “sự trừng phạt của bạn dành cho hắn”. Và như bạn thấy đấy, đó là giá trị không đáng quan tâm, bạn có trừng phạt được hắn cái khỉ gì đâu. Hắn vẫn khỏe phây phây ngồi đó cười nhạo vào cái mặt của bạn 😂, vì bạn làm hắn được nổi tiếng hơn.

Bạn tương tư một ai đó đến mất ăn mất ngủ. “Sự nghi ngờ liệu người đó có nghĩ về mình không” là một điều không đáng quan tâm vì bạn không điều khiển được người ta. Nhưng “sự quyết tâm theo đuổi” là giá trị đáng quan tâm. Nhấc điện thoại lên nhắn tin cho người ấy thôi.

Áp dụng công thức này vào tình yêu xem sao. “Sự hòa hợp” là giá trị không đáng quan tâm, vì sẽ cãi nhau nhiều, bạn ko thể kiểm soát được giá trị đó. Khi tình cảm lục đục, “cố gắng làm đối phương thay đổi” là giá trị không đáng quan tâm. Một trong hai giá trị sau: “chấp nhận cái xấu của đối phương” hoặc “thay đổi bản thân vì đối phương” mới là các giá trị đáng quan tâm.

Mẹ của tôi bị stress nặng đến nỗi bị mất ngủ kinh niên. Bà lo lắng quá nhiều những giá trị mà bà không thể điều khiển được chúng: công việc của em gái tôi ra sao, tôi có biết giữ gìn sức khỏe hay ko, bố của tôi nên về nhà lúc mấy giờ .v.v… Trong khi lẽ ra những giá trị đáng quan tâm phải là : tập yoga, hai vợ chồng đi du lịch, đi xem phim với nhau, đi cà phê hội họp bạn bè, tận hưởng các hoạt động thư giãn giải trí…

Bạn sẽ hỏi, nếu vậy những giá trị xấu xa như: sự trộm cắp, sự tham lam, sự ích kỷ, sự trụy lạc… cũng là những giá trị đáng quan tâm sao? Chính xác! Chúng là những giá trị đáng quan tâm. Vì chúng ta biết những giá trị xấu đó luôn tồn tại bên trong chúng ta ở một mức độ nào đó, nên chúng ta phải quan tâm để loại bỏ những điều đó khỏi tâm hồn ta.

Vậy là, hạnh phúc đâu ở nơi xa xôi, hạnh phúc đến từ những rắc rối được tháo gỡ, đến từ bên trong tâm trí đã được thanh lọc của bạn đấy. Chúc mừng bạn thân yêu, bạn đã trở thành bậc thầy của nghệ thuật “đ’** quan tâm” rồi !

(Nguồn: FB thằng bạn)

Thảo luận và chia sẻ cách tạo Cache, NGINX Caching, Reverse Proxy with Caching

Xin chào anh em!
Lời đầu tiên xin được gửi tới anh em lời chúc sức khỏe và thành công trong cuộc sống!

Hôm nay xin được phép thảo luận và chia sẻ cùng anh em cách tạo cache cho website. Anh em nào biết rồi thì hãy cứ đọc nhé, mình tin nó không thừa đâu hoặc có thể giúp ích thêm cho anh em.

Trước hết, câu hỏi đặt ra là việc tạo cache cho website để làm gì?
Xin được trả lời đơn giản nhất như sau:

Hầu hết các web server có thể xử lý các lượng truy cập bình thường và đa phần các trang web không có quá nhiều truy cập. Vì vậy, có thể bạn tự hỏi: Tại sao bạn nên cache trang web của bạn được hỗ trợ PHP? Các máy chủ web có thể phục vụ nhiều yêu cầu (request), nhiều file cùng một lúc, nhưng tất cả các file này nên là file tĩnh. Một tập lệnh PHP được thực thi bởi máy chủ web và tiếp theo nó sẽ tạo ra dữ liệu HTML được gửi đến người dùng (trình duyệt web). Cho nên khi thực hiện điều này, máy chủ cần sử dụng nhiều bộ nhớ hơn cách gửi một file tới người dùng. Ta cần cache lại thì tốt và nhanh hơn.

Đối với các website sử dụng mã nguồn wordpress bạn có thể sử dụng cách plugin tạo cache như:
– WP Super Cache
– WP rocket

Còn nếu không dùng mã nguồn wordpress thì việc tạo cache cũng tương đối đơn giản phải không nào. (Anh em cần hỏi chỗ này thì để lại bình luận nhé)

Nhưng trong bài này, mình xin chia sẻ một số phương pháp tăng tốc web trên NGINX, mình đã làm với VPS (máy chủ) của mình, để xem tại sao thiên hạ lại gọi nginx là Caching King.

Để giải thích chi tiết thì tương đối dài, và sẽ khá rối rắm.
Mình sẽ giải thích nhanh bằng hình ảnh mô hình đơn giản như sau.

Với 3 mô hình trên, mình đánh số thứ tự khoanh tròn màu đỏ. Chỉ cần cấu hình file nginx của domain là xong thôi, rất đơn giản mà không phải thay đổi gì liên quan đến source code web của bạn.

Sau đây là các bước triển khai:

Mô hình 1:

Cấu hình trên mình dùng cho wordpress luôn, các mã nguồn khác tương tự vậy.
Các hướng dẫn cấu hình nginx với chức năng Web Proxy – FastCGI Cache – Browser Cache – Cách bật nén Gzip trên server sao cho đạt hiệu suất cao nhất.

Giải thích:
Đây là dòng quan trọng khai báo cấu hình FastCGI Cache.
– fastcgi_cache_path /home/domain.com/cache levels=1:2 (thư mục tạo cache của bạn và giá trị này là quy tắc đặt tên và phân cấp thư mục cache)
– keys_zone=domaincache_cache:2000m : đặt tên cho cache zone là domaincache_cache có dung lượng là 2000m, bạn chú ý một chút về đơn vị dung lượng k/K là Kilobytes, m/M là Megabytes
– max_size=1000m inactive=2d; (kích thước tối đa của toàn bộ cache và nếu một response không được sử dụng trong thời gian 2 ngày thì nó sẽ bị xóa khỏi thư mục chứa cache.

Sau khi khởi động lại nginx.
Ta bắt đầu kiểm tra xem đã cache chưa.

curl -I https://domain.com/abc/

Lần đầu tiên truy cập sẽ cho ta thông báo cache là Miss, hãy thử lại lần nữa, nếu báo Hit là thành công.

Như vậy là chúng ta đã tạo cache xong, nhưng chúng ta cần lưu thư mục cache vào Ram thì tốc độ sẽ tốt hơn.
Vì tốc độ đọc trên Ram luôn cao hơn trên ổ cứng.
Trên SSH:
# nano /etc/fstab
tmpfs /home/domain.com/cache tmpfs defaults,size=1000M 0 0
# mount -a
Để kiểm tra lại kết quả bạn gõ lệnh:
df -ah | grep tmpfs
Thấy thư mục /home/domain.com/cache là ok

Mô hình 2:

Việc thực hiện cache ngay trên con reproxy sẽ giảm thiểu kết nối đến vps (máy chủ chính), tốc độ gần như tức thời.
Trên con reproxy sửa cấu hình nginx như sau:

Muốn cache vào ram thì làm tương tự bên trên.

Mô hình 3:

Nó là tổng hợp của hai mô hình 1 và 2, nhưng mình thấy nó không cần thiết.

Như vậy là mình đã trình bày xong phương pháp tăng tốc web trên NGINX. Mình đã cố trình bày rõ, nhưng sẽ khó có thể thoát hết các nội dung.

Hy vọng anh em cùng thảo luận để bài viết của em lên top google search. Hihi.
Cảm ơn anh em đã đọc topic của mình.

ps: Hy vọng bài viết của em vào nhóm bài viết chất lượng. Ai đọc mà ko like, e cắt trym. Hehe

Update: Nên kết hợp đồng thời với việc tạo cache thông thường trên ổ cứng để cho hiệu suất tốt nhất.

Cách sử dụng Inventory Adjustment trong Netsuite để tăng giảm số lượng item

Vào Transactions > Inventory > Adjust Inventory

Tại màn hình Inventory Adjustment, chọn Adjustment Account trong danh sách có sẵn

Hoặc nếu chưa có Adjustment Account, bạn có thể bấm New để tạo mới

Tại tab Adjustments dưới cùng, chọn Item trong danh sách trong select box (chỉ những Item thuộc loại Inventory Item sẽ xuất hiện ở đây)

Kế tiếp chọn Location của Item (được hiểu như là kho hàng của Item đó)

Phần Adjust Qty. By, nhập vào số lượng muốn thay đổi của Item tương ứng, có thể là nhập kho (số dương), hoặc xuất kho (số âm)
Netsuite sẽ hiển thị cho chúng ta số lượng hiện tại của Item đó tại Location đã chọn là bao nhiêu tại phần Qty. On Hand (trong ví dụ này là 136), và số lượng mới sau khi chúng ta thay đổi số lượng tại phần New Quantity (trong ví dụ này là 141)

Sau cùng bấm Save để hoàn tất việc tạo Inventory Adjustment.

Cách import file CSV trong Netsuite sử dụng Import Assistant

Vào Setup > Import/Export > Import CSV Records, màn hình sẽ hiện ra như bên dưới

Tại step 1 (Scan & Upload CSV File), phần Import Type chúng ta sẽ chọn loại dữ liệu trong Netsuite mà chúng ta muốn thêm/cập nhật dữ liệu (ở đây tôi chọn Items). Phần Record Type tôi sẽ chọn Inventory Item. Phần Character Encoding bạn chọn kiểu encoding của file CSV, ở đây tôi chọn Unicode (UTF-8). Phần Csv Column Delimiter, bạn chọn ký tự phân cách giữa các column của file CSV (thông thường là Comma – dấu phẩy). Cuối cùng ở phần CSV file(s), nếu bạn chỉ import 1 file thì chọn One File To Upload, nếu import nhiều file thì chọn Multiple Files To Upload. Sau cùng bạn chọn file CSV cần import và bấm Next để qua step 2.

Tại step 2 (Import Options), phần Data Handling chọn ADD nếu chỉ muốn thêm mới dữ liệu, chọn UPDATE nếu chỉ muốn cập nhật dữ liệu, hoặc chọn ADD OR UPDATE nếu muốn thực hiện cả việc thêm mới và cập nhật dữ liệu. Bạn có thể chọn thêm những option khác trong phần Advanced Options. Bấm Next để qua step 3&4

Tại step 4 (Field Mapping), phần Your Fields sẽ hiển thị tên file CSV của bạn đã upload lên và tên những column trong file CSV đó. Bên phải ngoài cùng là phần Netsuite Fields sẽ hiển thị toàn bộ những field (bao gồm cả những custom fields) của Record Type mà bạn đã chọn ở những step phía trên. Nếu column CSV bạn đặt tên giống với field trong Netsuite thì Netsuite sẽ tự liên kết column CSV với field tương ứng trong Netsuite. Tiếp theo bấm Next qua step 5.

Tại step 5 (Save mapping & Start Import), bạn có thể lưu lại quá trình import CSV file để sử dụng lại sau này. Điền những thông số tương ứng vào Import Map Name, Description và ID. Cuối cùng bạn bấm Save & Run. Nếu thành công màn hình bên dưới sẽ hiện ra.

Để kiểm tra quá trình import CSV file đã hoàn tất chưa bạn có thể bấm vào Import Job Status để kiểm tra. Nếu việc import diễn ra không thành công, bạn có thể bấm vào CSV Response để kiểm tra lỗi.

Cách sử dụng Matrix Items trong Netsuite để tạo item có nhiều variant

Vào List > Accounting > Items > New, màn hình sẽ hiện ra như sau. Sau đó bấm vào Matrix Item Assistant của Inventory Item

Tại Step 1, chúng ta nhập vào tên item tại phần Item Name/Number, chọn CODS Account và Asset Account (Nếu chưa có 2 account này bấm New để tạo mới). Sau đó bấm Next.

Tại Step 2, chúng ta sẽ tạo Item Property List (hay còn gọi là Variant), chúng ta có thể sử dụng list cũ bằng cách chọn Use An Existing List hay tạo mới bằng Create A New List. Ở đây tôi sẽ tạo mới.

Nhâp vào List Name và List Display Name (ví dụ “Size”), tiếp theo phần Property Value, chúng ta nhập những giá trị cho list đó, ở đây tôi nhập S, M, L, XL

Có thể bấm Save & Create Another để tạo list mới, hoặc có thể bấm Next để qua Step 3

Tại Step 3, phần Property Combinations, chúng ta sẽ kết hợp các Property khác nhau để có thể tạo ra tên mỗi Item ứng với mỗi Variant

Phần Insert Item Attribute chọn “Item Name/Number”. Phần Insert Matrix Option chọn “Size”

Tại phần value của các options, chọn những option nào muốn xuất hiện, ở đây tôi chọn S, M, L, XL. Sau đó bấm Next.

Tại Step 4, xuất hiện danh sách các items sau khi được tạo sau khi kết hợp tên item + tên variant. Đánh dấu check để chọn những item muốn được tạo. Sau cùng bấm Finish.

Đây là kết quả sau khi truy cập vào List > Accounting > Items. Mỗi item là 1 sản phẩm riêng biệt với ID khác nhau.

Phương pháp đơn giản giao dịch Bitcoin và vàng với 3 đường MA7, MA25, MA99 với khung thời gian dài

Sau một thời gian giao dịch crypto và học phân tích kỹ thuật, xem chart các kiểu thì tôi đã rút ra 1 phương pháp có thể xem là khá ổn dành cho những ai kiên trì và trade theo phương pháp ít rủi ro. Đối với Bitcoin thì tôi khuyên nên dùng chart khung thời gian 1w (1 tuần), và đối với vàng thì tôi khuyên nên dùng chart khung thời gian 1m (1 tháng)

Lý do tại sao tôi dùng khung thời gian lớn như vậy bởi vì, khung thời gian lớn bao giờ cũng cho xu hướng dài hạn chính xác hơn các khung thời gian nhỏ, khả năng bị nhiễu khá thấp. Còn tại sao lại chọn Bitcoin khung thời gian 1w mà lại chọn vàng khung thời gian 1m? Bởi vì vàng ổn định hơn Bitcoin nên cần xem khung thời gian lớn hơn sẽ dễ nhìn thấy xu hướng dài hạn hơn.

Dưới đây là chart 1w của Bitcoin và chart 1m của vàng

Phương pháp giao dịch của chúng ta ở đây là:

– Bật 3 đường MA7, MA25, MA99 lên chart.
– Khi đường MA7 cắt đường MA25 từ dưới lên thì nó báo hiệu giá sẽ tăng trong thời gian tới. Ngược lại khi đường MA7 cắt đường MA25 từ trên xuống thì nó báo hiệu giá sẽ giảm trong thời gian tới. Có thể mở lệnh buy/sell tại giao điểm của 2 đường này hoặc có thể buy/sell ở những vùng được đề cập dưới đây.
– Buy (long) ở những vùng nằm dưới cả 3 đường MA nói trên, đây là những vùng buy an toàn, khả năng thua lỗ sẽ rất thấp. Và ngược lại tại những vùng này là những vùng sell (short) rất rủi ro, sell ở đây khả năng thua lỗ sẽ rất cao.
– Sell (short) ở những vùng nằm trên cả 3 đường MA nói trên, đây là những vùng sell an toàn, khả năng thua lỗ sẽ rất thấp. Và ngược lại tại những vùng này là những vùng buy (long) rất rủi ro, buy ở đây khả năng thua lỗ sẽ rất cao.
– Nếu giá nằm lưng chừng ở giữa, tuyệt đối không giao dịch gì cả.
– Tiếp theo để đạt tối đa lợi nhuận gần phải để đòn bẩy margin ở mức an toàn và gồng lời càng lâu càng tốt.

Những điều cần thiết khi dùng phương pháp này:

– Cần phải rất kiên nhẫn, phải gọi là vô cùng kiên nhẫn để chờ đợi giá về đúng vùng vào lệnh. Bởi vì thời gian 1w và 1m thời gian chờ đợi sẽ rất lâu, đối với 1w bạn sẽ chờ theo tháng và đối với 1m bạn sẽ chờ theo năm.
– Nên sử dụng 1 tool nào đó để thông báo cho bạn biết khi đường MA7 cắt đường MA25, việc còn lại cũng bạn là đừng quá quan tâm tới chart và tin tức cho đến khi tool thông báo cho bạn biết.
– Và điều cuối cùng là như điều 1, phải VÔ CÙNG KIÊN NHẪN.

Giới thiệu về HTML

1/ HTML là gì? 

Để hiểu về thế giới lập trình web thì điều căn bản bạn cần phải học chính là HTML. Vậy là HTML là cái gì? Nó có ăn được không? (joke) 😀

HTML là ngôn ngữ đánh dấu (markup language) chứ không phải là ngôn ngữ lập trình (nhiều người hay bị nhầm cái này) dùng để tạo ra những trang web

– HTML được viết tắt từ chữ Hyper Text Markup Language (dịch ra tiếng Việt là ngôn ngữ đánh dấu siêu văn bản)
– HTML có thể mô tả cấu trúc của 1 trang web thông qua việc đánh dấu (markup) bằng thẻ (tag)
– HTML có nhiều phần tử (elements) là những block trên trang web
– HTML được trình bày bởi những thẻ (tag)
– Các trình duyệt web (Chrome, Firefox, Safari …v.v…) không hiển thị cho chúng ta thấy những thẻ (tag) HTML 1 cách mặc định mà sử dụng chúng để tạo ra nội dung cho trang web

2/ Ví dụ HTML document đơn giản

Chúng ta sẽ xem 1 đoạn HTML đơn giản dưới đây

Tôi sẽ giải thích sơ qua 1 số thẻ (tag) sử dụng trong đoạn HTML bên trên

<!DOCTYPE html> : thẻ này sẽ định nghĩa HTML document này đang sử dụng kiểu HTML5
<html> : thẻ này là thẻ gốc ban đầu mà mọi HTML document đều phải có, được hiểu như là 1 thẻ bắt đầu và kết thúc 1 HTML document và nó bao trùm những thẻ con bên trong
<head> : như đúng cái tên của nó, thẻ này đại diện cho phần đầu của 1 HTML document (những phần mà thẻ head chứa đa phần sẽ không thấy được khi lướt web bằng trình duyệt, ngoại trừ title)
<title> : cũng như cái tên của nó, thẻ này sẽ chưa tiêu đề cho HTML document
<body> : thẻ này sẽ chứa phần thân của HTML document (những phần chứa trong thẻ body đa phần sẽ thấy được khi chúng ta duyệt web bằng trình duyệt)
<h1> : thẻ này chứa tiêu đề với kích thước khá to khi hiển thị lên trên website, khác với thẻ <title> là tiêu đề cho toàn bộ trang web thì thẻ <h1> có thể là tiêu đề cho nhiều đoạn văn bản trong HTML document và có thể sử dụng được nhiều lần, còn thẻ <title> chỉ được sử dụng 1 lần cho 1 HTML document
<p> : thẻ này sẽ chứa 1 đoạn văn bản (paragraph) bên trong nó

3/ Thẻ HTML

Thẻ HTML thường sẽ có cấu trúc như sau

<tenthe>Noi dung ben trong the …</tenthe>

Trong đó <tenthe> là tên thẻ HTML, ví dụ như <p>, <a>, <html> …. Còn nội dung ở giữa <tenthe> và </tenthe> có thể là text, hay là những thẻ HTML con bên trong.

– Các thẻ HTML thông thường bao giờ cũng có thẻ mở (hay còn gọi là thẻ bắt đầu) và thẻ đóng (hay còn gọi là thẻ kết thúc). Ví dụ như <p> và </p>, <html> và </html> ….v.v… Và lưu ý rằng không nhất thiết phải có đầy đủ cả thẻ mở và thẻ đóng nhé, bởi vì có 1 số thẻ đóng vai trò luôn cả thẻ mở và thẻ đóng như sau <hr/> <br/> ….

4/ Trình duyệt web 

Trình duyệt web (web browser) là phần mềm trên máy tính mà các bạn đang sử dụng để xem những trang web hàng ngày, có thể kể đến ở đây như Chrome (trình duyệt web đang được nhiều người xài nhất trên Windows), Firefox, Safari (trình duyệt web trên Iphone, Ipad và MacOS), Opera … Trình duyệt web có nhiệm vụ đọc các đoạn mã HTML và hiển thị ra cho chúng ta xem trên màn hình. Dưới đây là kết quả khi tôi xem đoạn HTML mà tôi đã viết ở bên trên bằng trình duyệt web Chrome

5/ Cấu trúc của 1 trang HTML

Để các bạn mới làm quen HTML dễ hiểu, dưới đây là cấu trúc của 1 trang HTML được cụ thể hóa bằng hình ảnh.

Cài đặt Ruby on Rails trên Ubuntu

Trong bài viết này, tôi sẽ hướng dẫn các bạn cách cài đặt và setup môi trường cho Ruby on Rails trên Ubuntu (trong bài viết này tôi sử dụng Ubuntu 18.10 Cosmic Canimal). Nếu bạn nào chưa có Ubuntu có thể tham khảo tại trang này => http://releases.ubuntu.com/18.10/

1/ Cài đặt Ruby

Đầu tiên bạn cần cài đặt các gói package cần thiết trước khi cài đặt Ruby

Kế đến chúng ta sẽ cài Ruby thông qua rbenv, và tôi chọn cài phiên bản Ruby 2.6.1, các bạn có thể sử dụng phiên bản khác tùy thích bởi vì rbenv có thể hỗ trợ bạn cài nhiều version khác nhau của Ruby

Cuối cùng bạn cần cài đặt Bundler

2/ Cấu hình Git (có thể bỏ qua nếu bạn không cần sử dụng Git)

Bước đầu tiên để cấu hình Git, bạn cần nhập 1 số thông tin cần thiết cho tài khoản Git của mình, vào tạo ra 1 SSH key trên máy của bạn để có thể add vào Github

Bạn copy nội dung của file bên dưới để add key vào tài khoản Github

Sau khi hoàn tất bạn hãy kiểm tra xem việc kết nối tới Github đã hoạt động chưa bằng lệnh sau

Nếu thành công màn hình sẽ xuất hiện thông báo như bên dưới

3/ Cài đặt Rails

Trước khi cài đặt Rails chúng ta cần cài đặt NodeJS (hỗ trợ Coffeescript và minify những file Javascript => vui lòng đọc mục Asset Pipeline trong document của Rails để hiểu rõ hơn)

Kế đến ta sẽ cài đặt Rails, ở đây tôi chọn phiên bản 5.2.2

Nếu bạn đang sử dụng rbenv bạn cần chạy tiếp lệnh sau

Sau cùng bạn có thể kiểm tra mình đã cài đặt thành công Rails chưa bằng cách gõ lệnh sau

4/ Cài đặt MySQL

Nếu bạn sử dụng database MySQL thì bạn có thể tham khảo cách cài đặt MySQL ở bước này bằng cách gõ lệnh sau

Sau khi cài đặt xong và setup mật khẩu cho user root của MySQL bạn có thể cấu hình thông số đó trong file database.yml của Rails

5/ Cài đặt PostgreSQL

Một lựa chọn nữa khi bạn sử dụng database đó là PostgreSQL, nếu bạn đang sử dụng PostgreSQL thì cài đặt nó theo hướng dẫn sau

PostgreSQL không tạo sẵn user cho bạn như MySQL, vậy nên sau khi cài đặt bạn cần setup luôn user cho nó như sau (ở đây user của tôi là chris, bạn sẽ thay bằng user mà bạn chọn)

6/ Tạo 1 project Rails và chạy thử

Sau các bước cài đặt loằng ngoằng phía trên thì bước cuối cùng là tạo project cho Rails và chạy thử

Bạn mở trình duyệt và chạy thử http://localhost:3000 . Nếu màn hình hiện lên màn hình welcome mặc định của Rails nghĩa là bạn đã cài đặt Ruby on Rails thành công!