Nghệ thuật của sự đéo 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 !

Series “Thức tỉnh” của Johnny Trí Nguyễn

Dành cho bạn nào xem mà thấy khó hiểu:

1. Nếu bạn không quan tâm đến những câu hỏi như là: “Tôi là ai? Mục đích cuộc sống này là gì? Mục đích vũ trụ này là gì?” thì clip này không dành cho bạn.
2. Đầu 2012 có 1 sự kiện diễn ra (JTN không tiện nói đó là sự kiện gì vì rất khó diễn tả) JTN ngộ ra rằng sự sống bên trong và sự sống ở bên ngoài anh ấy thực chất là 1.
Điều này khá giống với danh hài Mỹ Jim Carrey từng chia sẻ trong clip Awakening “tỉnh thức” của ông ấy:
“Tôi là tất cả mọi thứ, tôi là tất cả mọi người. Tôi không còn là một mảnh của vũ trụ. Tôi là cả vũ trụ”

https://youtu.be/uIaY0l5qV0c

3. JTN biết rằng đây là thời đại thức tỉnh tâm linh, có kha khá người lờ mờ nhận ra được “sự tỉnh thức” ở các cấp độ khác nhau.
4.JTN nhận ra những khổ đau đều do nghiệp lực mà ra và ta hoàn toàn có thể cho phép những nỗi đau đó tác động đến ta hay không. Cho đến hiện tại JTN luôn cảm thấy thoải mái và k còn thấy đau khổ trừ phi a ấy cho phép nó.
5. JTN đưa ra lời khuyên cho những người có sự thức tỉnh nhưng thỉnh thoảng họ vẫn thấy đau khổ là do sự tranh đấu hơn thua, phán xét đúng sai phải trái, muốn được giải thoát khỏi những muộn phiền thì phải bỏ được thói xấu đó đi.
6. JTN khuyên những người anh em thức tỉnh hãy cảnh giác nếu không sẽ mắc vào 1 cái bẫy mà anh gọi là “cái tôi tâm linh”, sẽ sa vào việc muốn đạt được thần thông hay danh tiếng nào đó (có những người lập hẳn cả phái mới để người khác ca ngợi bản thân,…)

Cách sử dụng routing trong Laravel

Routing hay route trong Laravel được hiểu là 1 thành phần để điều hướng URL đến controller, đến view cụ thể nào đó … Nghĩa là routing sẽ định nghĩa mỗi một URL cụ thể khi người dùng truy cập trên trình duyệt web thì routing sẽ dựa vào URL đó đã được định nghĩa trong file route hay chưa để gọi controller, hay gọi view tương ứng.

File routes trong Laravel nằm ở đâu?

Toàn bộ những file routes của Laravel được lưu ở thư mục routes. Những file này mặc định sẽ được tự động load khi Laravel framework chạy. File routes/web.php thì sẽ định nghĩa tất cả những routes cho website của bạn. Những routes của web.php thì nằm trong middleware tên là web, middleware này cung cấp những tính năng như là session (lưu phiên làm việc như authentication …), bảo mật CRSF (tạo ra CRSF token cho form). Ngoài ra chúng ta còn có file routes/api.php sẽ định nghĩa tất cả những routes khi chúng ta viết API cho website để giao tiếp với mobile app chẳng hạn. Và những routes của api.php thì nằm trong middleware tên là api.

Để hiểu routing thực sự hoạt động ra sao trong Laravel, chúng ta sẽ đi qua những cách khai báo routing dưới đây

Cách đơn giản nhất: khai báo hàm thực thi cho routing ngay trong file routes

Chúng ta mở file routes/web.php và thêm vào dòng dưới đây

Đoạn code trong file route phía trên nghĩa là khi người dùng truy cập vào đường dẫn URL /hello (ví dụ http://domain.com/hello) thì sẽ thực thi 1 hàm trả về 1 đoạn text “Welcome to laptrinh.info” ra màn hình. Bạn có thể truy cập vào URL phía trên để kiểm tra kết quả (domain.com là domain tương ứng của bạn)

Cách thứ 2: trả về 1 file view khi gọi 1 routing

Routing khi chúng ta gọi mà trả về 1 file view thì chúng ta gọi view routes. Cách khai báo cũng rất đơn giản như sau

Đoạn code trên nghĩa là khi người dùng truy cập vào đường dẫn URL /hello thì Laravel sẽ gọi file view resources/view/hello.blade.php rồi trả về nội dung file view đó trên trình duyệt web.

Ngoài ra chúng ta còn có thể truyền biến vào file view như sau

Đoạn code trên cũng gọi file view tương ứng như trên, nhưng mà sẽ truyền biến $name có giá trị là “laptrinh.info” vào file view. Và chúng ta có thể hiển thị biến $name đó trong file view.

Cách thứ 3: gọi controller từ 1 routing

Đây là cách mà đa phần các bạn khi lập trình web sẽ sử dụng nhiều nhất, đó là gọi 1 controller tương ứng với routing. Đối với 2 cách trên, khi chúng ta khai báo hàm trực tiếp trong file route, hoặc gọi view rồi truyền biến số như trên sẽ làm file route vô cùng dài dòng và khó đọc, khó maintain sau này. Thay vì như vậy chúng ta sẽ gọi controller và mọi logic code sẽ do controller đảm nhiệm, routing chỉ có vai trò điều hướng URL mà thôi

Ví dụ

Đoạn code trên nghĩa là khi người dùng truy cập vào /hello trên ứng dụng web, thì Laravel sẽ gọi hàm index trong file controller nằm ở app/Http/Controllers/HelloController.php

Ngoài ra còn có 1 số cách khai báo route khác như

Redirect route (hay còn gọi là route chuyển hướng)

Nếu bạn muốn user khi truy cập vào 1 URL trên web của bạn sẽ được chuyển hướng (redirect) đến 1 URL khác thì bạn có thể dùng route loại này (thường sẽ rất hữu ích khi SEO cho website). Cách khai báo như sau

Mặc định Route::redirect sẽ trả về mã HTTP code là 302. Nếu bạn muốn thay đổi mã HTTP code (ví dụ thành 301) bạn có thể khai báo như sau

Hoặc bạn có thể sử dụng Route::permanentRedirect để Laravel tự hiểu là trả về 301

Cách phương thức của route

Phương thức của route ở đây là các phương thức truyền data như là GET, POST, PUT, PATCH, DELETE. Chúng ta có thể khai báo phương thức đi kèm với route như sau

Nếu 1 route có 2 hoặc nhiều phương thức mà chúng ta không muốn viết riêng rẽ, ta có thể gộp lại bằng Route::match như sau (bên dưới là gộp 2 phương thức GET và POST)

Hoặc gộp toàn bộ các phương thức bằng Route::any

Bảo vệ CSRF cho form

CSRF là gì? CSRF là viết tắt của chữ Cross Site Request Forgery, là kỹ thuật tấn công bằng cách sử dụng quyền chứng thực của người sử dụng đối với 1 website khác. Nói nôm na CSRF là 1 lỗ hổng bảo mật web mà hacker có thể lợi dụng nó để mượn tay người dùng tấn công 1 website nào đó. Về CSRF các bạn có thể tìm hiểu thêm trên Google.

Để phòng chống việc này khi truyền data trong form, Laravel sẽ cung cấp cho bạn 1 blade directive là @csrf. Đối với các phương thức submit data như POST, PATCH, PUT, DELETE thì bạn nên sử dụng @csrf để bảo mật data. @csrf sẽ tự động sinh ra 1 CSRF token cho mỗi user truy cập vào website. Cách khai báo @csrf trong form như bên dưới

(còn tiếp …)

Cài đặt Percona toolkit – công cụ hỗ trợ đắc lực cho MySQL

Percona toolkit là tập hợp những công cụ, ứng dụng chạy trên dòng lệnh được phát triển bởi hãng Percona, giúp chúng ta có thể quản lý, phân tích, tối ưu những cơ sở dữ liệu như MySQL hoặc MongoDB một cách hiệu quả và nhanh chóng hơn.

Trước tiên chúng ta cần add GPG key và add repo vào Linux

Tiếp theo chúng ta tiến hành update để Linux có thể nhận được repo mới của Percona

Sau cùng chúng ta tiến hành cài đặt Percona toolkit

 

Phân tích những query chạy chậm trên MySQL bằng mysqldumpslow và pt-query-digest

*** Lưu ý: bài viết này dành cho MySQL version 5.5 trở lên. Đối với những version cũ hơn có thể những cú pháp, câu lệnh trong bài viết này sẽ không chính xác.

MySQL có thể lưu log những câu lệnh query chạy chậm và tốn nhiều thời gian để thực thi. Việc lưu log như vậy có thể giúp chúng ta debug được dễ dàng cũng như dễ dàng fix những lỗi trong code dẫn đến việc xảy ra những câu query của MySQL chạy chậm.

Bật tính năng slow-query-log

Mở file cấu hình của MySQL /etc/mysql/my.cnf và chỉnh với những thông số như bên dưới

Dòng cuối cùng sẽ khai báo với slow-query-log rằng chúng ta sẽ lưu log những câu query không sử dụng index

Sử dụng mysqldumpslow

Câu lệnh dưới đây sẽ hiển thị top 5 câu query trả về nhiều rows nhất, bạn có thể kiểm tra nếu quá nhiều rows trả về trong câu query, có thể bạn quên không sử dụng LIMIT của MySQL

Còn dưới đây là câu lệnh trả về top 5 câu query được chạy nhiều nhất trong slow logs. Bạn có thể kiểm tra và tối ưu chúng.

Sử dụng pt-query-digest

Công cụ này là 1 phần trong gói Percona toolkit

Chạy dòng lệnh dưới đây để phân tích slow queries

Nếu bạn đang có nhiều database, thì bạn có thể lọc theo database name bằng cách sau (db_wordpress là tên của database, bạn có thể thay tương ứng bằng tên database của bạn)

Sử dụng mysqlsla

Đây là 1 ứng dụng của bên thứ 3, bạn có thể tham khảo trên Github tại link này => https://github.com/daniel-nichter/hackmysql.com

Chạy dòng lệnh dưới đây để phân tích slow queries

Lọc theo database như sau

 

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.