Hexa's Blog

CSGO, binding để nhảy ném smoke

15/09/2021 csgo

Trong trường hợp này phím nhảy ném là phím mouse-5. Mở console lên và gõ lệnh sau:

alias +jumpthrow "+jump;-attack";
alias -jumpthrow "-jump";
bind mouse5 +jumpthrow;

Cách sử dụng tương đối đơn giản, bắt đầu bằng giữ chuột trái, tiếp theo là căn góc ném, cuối cùng là ấn phím mouse-5.

Support dropdown with multiple value in Redash, plus ALL value

09/09/2021 Redash

In Redash, there is a big demand for dropdown with ALL value. However, it’s tricky to write where statement for ALL value. This post is all about work-around this issue. Thank for my colleague - Trieu. All Credit to him.

[1] Dropdown Field
[1] Dropdown Field

The dropdown configuration is in the following image.

[2] Dropdown Configuration
[2] Dropdown Configuration

In the where section, condition statement should look like this one

(column_name in (SELECT unnest(CONCAT('{', '', '}')::varchar[])) OR '' LIKE '%ALL%')

And It’s all done, you are ready to go!

Cách thiết lập GPG cho Emacs trên Window

01/09/2021 Emacs

Bài viết này hướng dẫn cách cài đặt GPG cho emacs trên window. Đầu tiên, cần vào trang web https://gnupg.org/download/index.html và tải Gpg4Win

[1] Download Gpg4Win
[1] Download Gpg4Win

Sau khi cài đặt xong Gpg4Win. Trong emacs, thiết lập các biến sau:

  • epg-gpg-home-directory
  • epg-gpg-program
  • epg-gpgconf-program

Ví dụ như sau:

(custom-set-variables
 '(epg-gpg-home-directory "C:/Users/nguye/AppData/Roaming/gnupg")
 '(epg-gpg-program "D:/Software/GnuPG/bin/gpg.exe")
 '(epg-gpgconf-program "D:/Software/GnuPG/bin/gpgconf.exe")
 )

(provide 'window-gpg)

Single Sign On sử dụng SAML - Cách hoạt động

31/07/2021 SSO

I. Mục đích

Mục đích sau cùng của tất cả những thứ này là gia tăng trải nghiệm người dùng. Một doanh nghiệp có thể đang sử dụng nhiều ứng dụng. Mỗi ứng dụng này chắn chắn sẽ chứa users. Cách làm truyền thống và dễ gặp nhất đó là mỗi ứng dụng sẽ có một danh sách users tách biệt. Tuy nhiên, cách làm này làm giảm trải nghiệm người dùng rất nhiều, họ phải đăng nhập lại cho mỗi ứng dụng họ muốn sử dụng, ghi nhớ password; là người quản trị, việc thêm users / xóa users cho hệ thống cũng sẽ mệt mỏi vì phải làm việc này cho từng ứng dụng một, thậm chí ngoài ra còn là về vấn đề bảo mật, chúng ta càng bắt users phải nhập nhiều mật khẩu bao nhiêu, chúng ta càng làm họ dễ mất mật khẩu. Tôi đã từng thấy những người họ sử dụng 1 hoặc 2 mật khẩu và áp dụng nó từ tài khoản zing, gmail cho đến flickr.

Với phía là doanh nghiệp, việc có một hệ thống quản lý danh sách users, hệ thống này là trung gian, nằm chính giữa tất cả các ứng dụng sẽ cực kỳ hữu ích.

II. Các đối tượng tham gia

  • Identity Provider: Chứa thông tin của users, bên cạnh đó cung cấp giao thức để users có thể đăng nhập vào các ứng dụng (service provider) mà không cần đăng ký lại.
  • Service Provider*: Ở trong bài viết này, nó được xem như là ứng dụng, để truy cập vào ứng dụng này, chắn chắn users cần đăng nhập. Và với sự hỗ trợ của Identity Provider, nguồn users của ứng dụng sẽ đến từ Identify Provider.
  • User-Agent: Trình duyệt web

III. Nguyên lý

Sequence Diagram dưới đây miêu tả những từng bước một bắt đầu từ việc users vào service provider, hay còn gọi cách khác là SP-Initiated. Trong bài viết này, tôi không đề cập đến sequence diagram bắt đầu từ Identity Provider (IdP-Initiated).

SP-Initiated Sequence Diagram.
SP-Initiated Sequence Diagram.

IV. Nguồn và Trích dẫn

Hướng dẫn sử dụng mũ bảo hiểm tích hợp tai nghe bluetooth

21/06/2021 Projects

[1] Cách sử dụng hệ thống bluetooth
[1] Cách sử dụng hệ thống bluetooth

Tích hợp tai nghe bluetooth vào mũ bảo hiểm

13/06/2021 Projects

I. Lý Do

Tôi hiện tại đang sở hữu một chiếc mũ bảo hiểm fullface. Về độ an toàn, mũ fullface được đánh giá là cao nhất về độ an toàn cho người sử dụng. Tuy nhiên ở vấn đề sử dụng hàng ngày, tôi không hoàn toàn hài lòng 100% khi sử dụng loại mũ này. Trong dự án tích hợp mũ bluetooth vào mũ fullface, tôi tập trung giải quyết vấn đề nghe của chiếc mũ này. Cá nhân tôi, tôi nhận thấy rằng việc nghe gọi điện thoại sử dụng mũ fullface khá là cồng kềnh vào nhiều thao tác. Tôi đã thử một vài giải pháp. Các bạn có thể tham khảo dưới đây.

  • Sử dụng tai nghe nhét tai in-ear, kết nối qua jack 3.5mm. Điểm lợi của phương án này là nghe gọi tốt, tín hiệu siêu ổn định, giá thành siêu rẻ. Điểm bất lợi là môi trường âm thanh của người lá xe bị cô lập, gây nguy hiểm, đây là điểm yêu chí tử của phương án này. Khả năng cô lập âm thanh tất nhiên phụ thuộc vào từng loại tai nghe in-ear, tuy nhiên ở góc nhìn của tôi, tôi không hài lòng cho lắm. Bên cạnh đó, vấn đề dây nhợ hơi khó chịu, trong trường hợp của tôi, tai nghe không có tính năng tăng/giảm âm lượng, chuyển nhạc tới/lui cũng là một cái khó chịu nữa.
  • Sử dụng tai nghe nhét tai in-ear bluetooth. Ngoài vấn đề cô lập môi trường âm thành chưa được giải quyết, vẫn tồn tại. Hạn chế tiếp theo của loại tai nghe này đó là việc tăng/giảm âm lượng, chuyển bài hát tới/lui. Thêm vào đó, việc nhận/từ chối cuộc gọi cũng phải thao tác trên máy điện thoại. Những vấn đề này làm ảnh hưởng đến trải nghiệm người dùng của tôi một cách tiêu cực.

Sau những lần thử như trên, tôi quyết định sử dụng phương án khác đó là lắp hẳn loa vào mũ bảo hiểm, cố tình gia tăng khoảng cách giữa tai người sử dụng và màng loa. Về mặt điều khiển, Việc tăng/giảm âm lượng, chuyển bài hát tới/lui , nghe / từ chối cuộc gọi sẽ được điểu khiển trực tiếp trên mũ bảo hiểm và không cần đến máy điện thoại. Về khía cạnh âm trường, tôi rất hài lòng về việc người lái xe không bị cô lập với môi trường xung quanh như tai nghe nhét tai, tăng tính an toàn khi lái xe. Về mặt điều khiển, phương án này hoàn toàn giải quyết vấn đề tăng / giảm âm lượng, chuyển bài hát tới/lui, nghe /từ chối cuộc gọi. Về vấn đề dây nhợ, hoàn toàn không phát sinh dây nhợ giữa mũ bảo hiểm và thiết bị phát âm thanh.

II. Kỳ Vọng

Trong quá trình thử nghiệm, tôi đã cân nhắc về việc giấu mạch và đặt pin trong mũ. Tuy nhiên sau khi xem xong video pin phát nổ, tôi hoàn toàn không muốn tiếp cận theo hướng này. Quá nguy hiểm cho người sử dụng. Sự đánh đối là không xứng đáng.

Bên cạnh đó, tôi kì vọng rằng trong tương lại tôi sẽ có thể tích hợp mạch phát của thiết bị SONY WH-1000XM4. Mạch của chiếc tai nghe này thỏa mãn kha khá các nhu câu của tôi.

Tính năng nghe mà tôi đánh giá cực kì cao đó là khả năng trộn âm thanh của thiết bị, ở khía cạnh tích hợp vào mũ bảo hiểm, điều này sẽ giúp người nghe không bị tiếng động của người bên kia đầu dây át tiếng môi trường xung quanh, hay đơn giản hơn là tiếng nhạc. Bên cạnh đó, đó là khả năng tái tạo vị trí của nguồn phát ra âm thanh, nói một cách đơn giản, khi người lái xe, nghe được tiếng động cơ, thiết bị phải có khả năng giúp bộ não định hướng được nguồn phát từ đâu.

Tính năng thứ hai mà tôi quan tâm đó là khả năng chống ồn chủ động có chọn lọc, thiết bị cần lọc bớt âm thanh ồn ào không có lợi, điều chỉnh độ to của âm thanh không có lợi xuống mức vừa đủ.

Bên cạnh đó, tôi muốn phát triển thêm bộ điều khiển độc lập trên tay lái. Người lái xe sẽ không cần phải đưa tay lên mũ để làm các thao tác ví dụ như nghe / từ chối cuộc gọi.

III. Thử Nghiệm & Hình Ảnh

[1] Chụp từ bên trái
[1] Chụp từ bên trái
[2] Chụp từ bên phải
[2] Chụp từ bên phải

Đây là phiên bản mẫu đã chạy thử nghiệm được hơn một tháng. Mẫu thử hoạt động hoàn toàn bình thường với các tính năng sau.

  • Tăng / giảm âm lượng
  • Nhận / từ chối cuộc gọi
  • Chuyển tới / lui bài hát

Khi tiến hành chạy thử nghiệm, điều tôi lo ngại nhất đó là việc chạy xe bị cô lập âm thanh. Cách tiếp cận theo hướng over-ear đã giải quyết được phần nào vấn đề này. Âm thanh người lái xe tiếp nhận hoàn toàn không bị cô lập. Trong suốt khoảng thời gian thử nghiệm sản phẩm này, tôi đã không gặp bất cứ tai nạn nào liên quan đến vấn đề bị cô lập âm trường.

Khi chạy xe qua các khu vực dân cư đông đúc, tôi phát hiện ra rằng tình trạng nhiễu sóng xảy ra khá nhiều. Loanh quanh 4-8 lần tín hiệu bị ngắt, điều này ảnh hưởng không nhỏ đến trải nghiệm nghe. Tuy nhiên, tôi tin rằng, bằng cách sử dụng mạch thu/phát bluetooth xịn xò hơn vấn đề nãy sẽ được cải thiện.

Bên cạnh đó, khi lái xe, việc phải đưa tay lên mũ ấn nút cũng hoàn toàn có thể cải thiện. Ở các phiên bản tiếp theo, tôi hi vọng mình còn tham lam để phát triển thêm bộ điểu khiển trên tay lái.

Tổng hợp giftcode Nam Đế 3

28/04/2021 Nam Đế 3

Nam Đế 3 - Chiến thuật dã sử Việt
Nam Đế 3 - Chiến thuật dã sử Việt
  • Code tân thủ: NAMDE3OB
  • Code Giải phóng miền nam 2019: 30042019
  • Code Têt 2020: TET2020
  • Code năm mới 2020: NY2020
  • Code Giải phóng miền nam 2020: 30042020
  • Code Quốc Khánh 2/9/2020: QK2920
  • Code Noel 2020: NOEL2020
  • Code năm mới 2021: NY2021
  • Code Tết 2021: TET2021
  • Code giỗ tổ Hùng Vương 2021: GTHV21
  • Code Giải phóng miền nam 2021: 30042021

Cập nhật cuối cùng 27/04/2021 21:14

How to scan IP by opened PORT?

27/04/2021 OS

Let say there is a host in the network that open a port at 80. The main question is how to determine the host. Using nmap is the best solution. After you have successfully installed the nmap, you can use the following command.

nmap -sV -p 80 192.168.2.1-255

Chia, How to plot on terminal?

26/04/2021 Mining Rig

This post is all about ploting on terminal. First of all, you need to determine the --farmer_public_key and --pool_public_key using the following command:

chia keys show;

Finally, run the following command chia plots create to plot:

chia plots create --size 32 --num 1 --num_threads 2 --buckets 128 \
     --farmer_public_key xxxxxx \                            # <--- modify here to your farmer public key
     --pool_public_key yyyyyy \                              # <--- modify here to your pool  public key
     --tmp_dir /home/nguyenvinhlinh/Temporary/Chia/tmp/ \    # <--- modify here to your temporary path
     --final_dir /home/nguyenvinhlinh/Temporary/Chia/plots/; # <--- modify here to your final path

For more details, please check command reference with command chia plots create --help;

Usage: chia plots create [OPTIONS]

Options:
  -k, --size INTEGER              Plot size  [default: 32]
  --override-k                    Force size smaller than 32  [default: False]
  -n, --num INTEGER               Number of plots or challenges  [default: 1]
  -b, --buffer INTEGER            Megabytes for sort/plot buffer  [default:
                                  3389]

  -r, --num_threads INTEGER       Number of threads to use  [default: 2]
  -u, --buckets INTEGER           Number of buckets  [default: 128]
  -a, --alt_fingerprint INTEGER   Enter the alternative fingerprint of the key
                                  you want to use

  -c, --pool_contract_address TEXT
                                  Address of where the pool reward will be
                                  sent to. Only used if alt_fingerprint and
                                  pool public key are None

  -f, --farmer_public_key TEXT    Hex farmer public key
  -p, --pool_public_key TEXT      Hex public key of pool
  -t, --tmp_dir PATH              Temporary directory for plotting files
                                  [default: .]

  -2, --tmp2_dir PATH             Second temporary directory for plotting
                                  files

  -d, --final_dir PATH            Final directory for plots (relative or
                                  absolute)  [default: .]

  -i, --plotid TEXT               PlotID in hex for reproducing plots
                                  (debugging only)

  -m, --memo TEXT                 Memo in hex for reproducing plots (debugging
                                  only)

  -e, --nobitfield                Disable bitfield
  -x, --exclude_final_dir         Skips adding [final dir] to harvester for
                                  farming

  -h, --help                      Show this message and exit.

Nam Đế 3, danh sách tướng chiêu hiền và thế lực

19/04/2021 Nam Đế 3

Danh sách và thứ tự các tướng chiêu hiền của game Nam Đế 3. Tướng chiêu hiền sẽ xuất hiện lần lượt và thay đổi sau mỗi 48 giờ.

[1]
Danh sách tướng chiêu hiền và thế lực
[1] Danh sách tướng chiêu hiền và thế lực