PoH có phải consensus đâu má ), nó chỉ là chương trình tạo ra timestamp thôi mà ), cái đặc biệt của Solana là stateless và parallel computation of smart contracts
🤩In ấn bao bì theo yêu cầu với BAO BÌ TTC, bạn sẽ nhận được sự tư vấn tận tâm và sự hỗ trợ toàn diện từ giai đoạn thiết kế đến sản xuất. Đặc biệt Bao bì TTC https://min.cafe/pr/nKvruVcó dịch vụ thiết kế mẫu mã bao bì theo yêu cầu của khách hàng trước khi đặt cọc, vậy thì ngại ngần gì mà không ghé qua Bao bì TTC ngay! Chúng tôi cam kết mang lại cho bạn những sản phẩm chất lượng nhất! 🖨️
😘Đừng bỏ lỡ cơ hội in theo yêu cầu với BAO BÌ TTC https://min.cafe/pr/nKvruV! Chúng tôi sẽ đảm bảo rằng sản phẩm của bạn sẽ nổi bật và thu hút được sự chú ý từ khách hàng. Hãy để chúng tôi giúp bạn tạo ra sự khác biệt!
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/cVlIYo thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/cVlIYo thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳
😘Đừng bỏ lỡ cơ hội in theo yêu cầu với BAO BÌ TTC https://min.cafe/pr/cHyzdX! Chúng tôi sẽ đảm bảo rằng sản phẩm của bạn sẽ nổi bật và thu hút được sự chú ý từ khách hàng. Hãy để chúng tôi giúp bạn tạo ra sự khác biệt!
Tôi đã sử dụng dịch vụ in bao bì của Bao bì TTC và thực sự hài lòng với kết quả. Điều mình thấy đặc biệt là họ cung cấp dịch vụ thiết kế bao bì theo yêu cầu của khách hàng trước khi đặt cọc. Bạn có thể xem trang web của Bao bì TTC nếu muốn tìm một nơi in bao bì uy tín.
Hãy Từ Chối TypeScript
Cách này đang được team Deno sử dụng. Vậy team đó bad lắm hả ta?
Typescript chỉ là type-check thôi, dù nó có generic hay các feature khác thì nhìn bản chất cũng chỉ là type.
Cái chúng ta cần là code style chuẩn, Eslint + JSDocs + readme có thể làm điều đó. Câu này không đúng lắm
bác không viết hướng dẫn về gitlab với jenkins nên hơi khó khăn quá vì em chưa dùng 2 cái đó bao giờ, tự mò cũng mất 1 ngày, bạn nào muốn có thêm hướng dẫn cài gitlab với jenkins thì như ở dưới:
GitLab yêu cầu 4GB ram, Jenkins 3GB ram, bạn nên bật swap vì GitLab khá nặng
GitLab sẽ cài trên docker, Jenkins thì cài trực tiếp vì nó cần kết nối với k8s sử dụng kubectl và helm ( nếu muốn xài docker thì phải tự build image có thêm kubectl và helm )
Tạo 3 thư mục /srv/gitlab/logs/srv/gitlab/data/srv/gitlab/config xong chạy lệnh
export GITLAB_HOME=/srv/gitlab
Triển khai container gitlab
sudo docker run --detach \
--hostname gitlab.example.com \ #đổi thành hostname của bạn
--publish 443:443 --publish 80:80 --publish 22:22 \ #tốt nhất là bind port y hệt như thế này, vì thế gitlab nên cài trên 1 máy ảo riêng
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ce:latest #bạn nào muốn xài bản enterprise edition thì chuyển thành gitlab-ee, bản ce xài ít tài nguyên hơn
Xài watch -n 1 docker ps đợi đến khi nào container nó healthy là vào được
để lấy password root, lưu ý là kể từ lần đầu đăng nhập thì file này sẽ bị xoá sau 24h vì thế nên đổi mật khẩu, nếu như cần tạo lại container gitlab thì bạn cũng cần xoá luôn folder /srv/gitlab tạo lại vì nếu không thì sau 24h tạo container mới nó cũng không có file pass
Một số tweak mình đã test để giảm tài nguyên GitLab sử dụng:
Truy cập vào container bằng lệnh
docker exec -it gitlab bash
vào file /etc/gitlab/gitlab.rb để chỉnh sửa 1 số tham số sau ( sử dụng vi nhé )
puma['worker_processes'] = 0
sidekiq['max_concurrency'] = 10
prometheus_monitoring['enable'] = false
cái nào đánh # thì bỏ # đi là được
Tắt Prometheus Metrics: Chọn Search or go to., tìm Admin Area, chọn Settings > Metrics and profiling., chọn Expand Metrics - Prometheus., tắt Enable Prometheus Metrics., rồi Save . Ngoài ra còn 1 số tweak khác nữa nhưng khi mình sử dụng thì không tạo project được, sẽ bị lỗi 500, các bạn có thể tìm hiểu tại đây https://docs.gitlab.com/omnibus/settings/memory_constrained_envs.html
Kết nối tới Gitlab nên sử dụng ssh-agent nếu không nó khá lỗi, bật ssh-agent bằng
eval $(ssh-agent)
Thêm ForwardAgent yes vào file config của ssh tại ~/.ssh/config (không có thì tạo) như sau
Host gitlab.local.com #đổi bằng host gitlab của bạn
PreferredAuthentications publickey
IdentityFile ~/.ssh/gitlab_com_rsa #đây là private key nhé
ForwardAgent yes
Bạn cũng cần bật ForwardAgent trong /etc/ssh/sshd_config
AllowAgentForwarding Yes
Add public key của bạn vào ssh-agent bằng
ssh-add
xong bạn cũng add nội dung của public key đó lên Gitlab, bạn nên tạo 1 cặp ssh key mới sử dụng email và username của tài khoản gitlab ( lưu ý username của tài khoản root là Administrator, add tại Preferences -> SSH Key
Tạo 1 project blank trên Gitlab, không tích chọn tạo file readme, nó sẽ hiện các lệnh giúp bạn kết nối tới repo gitlab của mình, các tham số trên lệnh đã đúng nên không cần sửa gì, ngoại trừ cái cd thì các bạn cd vào folder mà mình sẽ up lên repo
Các bạn test thử xem push commit lên gitlab không là ok
Với Jenkins, nếu là bản mới nhất thì cần phải cài Java 17 trước
Vào file https://www.jenkins.io/doc/book/installing/linux/ và sửa biến môi trường JAVA_HOME sang đường dẫn ở trên, giờ thì có thể start jenkins rồi, nhớ cài đủ plugin như hướng dẫn của bác Việt
em chạy đến bước ./configure-vm.sh thì bị lỗi như này ạ "Nothing to do
: No such file or directory/etc/profile.d/bash_completion.sh
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]
: No such file or directoryx/config
Failed to stop firewalld\x0d.service: Unit firewalld\x0d.service not loaded.
Failed to execute operation: No such file or directory
sysctl: setting key "net.ipv4.ip_forward": Invalid argument
net.ipv4.ip_forward = 1"
Hi bạn, cách này chỉ là 1 trick mình tham khảo được và viết lại bằng java để sử dụng cho đơn giản, chủ yếu để vọc vạch hoặc làm các dự án cá nhân thôi. Còn để áp dụng vào sản phẩm thật thì hơi khó vì cookie của google mình cũng không biết được bao lâu nó sẽ không hợp lệ nữa, có khi vài ngày, vài tuần, v.v...
THẢO LUẬN
PoH có phải consensus đâu má
), nó chỉ là chương trình tạo ra timestamp thôi mà
), cái đặc biệt của Solana là stateless và parallel computation of smart contracts
🤩In ấn bao bì theo yêu cầu với BAO BÌ TTC, bạn sẽ nhận được sự tư vấn tận tâm và sự hỗ trợ toàn diện từ giai đoạn thiết kế đến sản xuất. Đặc biệt Bao bì TTC https://min.cafe/pr/nKvruVcó dịch vụ thiết kế mẫu mã bao bì theo yêu cầu của khách hàng trước khi đặt cọc, vậy thì ngại ngần gì mà không ghé qua Bao bì TTC ngay! Chúng tôi cam kết mang lại cho bạn những sản phẩm chất lượng nhất! 🖨️
😘Đừng bỏ lỡ cơ hội in theo yêu cầu với BAO BÌ TTC https://min.cafe/pr/nKvruV! Chúng tôi sẽ đảm bảo rằng sản phẩm của bạn sẽ nổi bật và thu hút được sự chú ý từ khách hàng. Hãy để chúng tôi giúp bạn tạo ra sự khác biệt!
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/cVlIYo thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳
👍🖨️ Dịch vụ in giá rẻ của BAO BÌ TTC https://min.cafe/pr/cVlIYo thực sự ấn tượng. Chất lượng sản phẩm tuyệt vời, giá cả phải chăng và đội ngũ hỗ trợ nhiệt tình. Mình không thể hài lòng hơn! 🌈🥳
😘Đừng bỏ lỡ cơ hội in theo yêu cầu với BAO BÌ TTC https://min.cafe/pr/cHyzdX! Chúng tôi sẽ đảm bảo rằng sản phẩm của bạn sẽ nổi bật và thu hút được sự chú ý từ khách hàng. Hãy để chúng tôi giúp bạn tạo ra sự khác biệt!
Tôi đã sử dụng dịch vụ in bao bì của Bao bì TTC và thực sự hài lòng với kết quả. Điều mình thấy đặc biệt là họ cung cấp dịch vụ thiết kế bao bì theo yêu cầu của khách hàng trước khi đặt cọc. Bạn có thể xem trang web của Bao bì TTC nếu muốn tìm một nơi in bao bì uy tín.
B tiếp tục series này đi ạ
Cảm ơn bài viết của ad, đúng thông tin đang cần. Nhưng đọc xong không hiểu gì
(
👍️
Bạn thử vào theo đường dẫn này: http://localhost/project-name/public/admin trong đó project-name là tên project bạn tạo bằng lệnh composer create
hay
bác không viết hướng dẫn về gitlab với jenkins nên hơi khó khăn quá vì em chưa dùng 2 cái đó bao giờ, tự mò cũng mất 1 ngày, bạn nào muốn có thêm hướng dẫn cài gitlab với jenkins thì như ở dưới:
/srv/gitlab/logs/srv/gitlab/data/srv/gitlab/configxong chạy lệnhwatch -n 1 docker psđợi đến khi nào container nó healthy là vào đượcđể lấy password root, lưu ý là kể từ lần đầu đăng nhập thì file này sẽ bị xoá sau 24h vì thế nên đổi mật khẩu, nếu như cần tạo lại container gitlab thì bạn cũng cần xoá luôn folder
/srv/gitlabtạo lại vì nếu không thì sau 24h tạo container mới nó cũng không có file passdocker exec -it gitlab bashvào file/etc/gitlab/gitlab.rbđể chỉnh sửa 1 số tham số sau ( sử dụngvinhé )cái nào đánh # thì bỏ # đi là được
Search or go to., tìmAdmin Area, chọnSettings > Metrics and profiling., chọnExpand Metrics - Prometheus., tắtEnable Prometheus Metrics., rồiSave. Ngoài ra còn 1 số tweak khác nữa nhưng khi mình sử dụng thì không tạo project được, sẽ bị lỗi 500, các bạn có thể tìm hiểu tại đây https://docs.gitlab.com/omnibus/settings/memory_constrained_envs.htmlThêm
ForwardAgent yesvào file config của ssh tại~/.ssh/config(không có thì tạo) như sauBạn cũng cần bật ForwardAgent trong
/etc/ssh/sshd_configxong bạn cũng add nội dung của public key đó lên Gitlab, bạn nên tạo 1 cặp ssh key mới sử dụng email và username của tài khoản gitlab ( lưu ý username của tài khoản
rootlàAdministrator, add tại Preferences -> SSH Keycdthì các bạncdvào folder mà mình sẽ up lên reporồi phải tìm đường dẫn của nó, của mình là
/usr/lib/jvm/jdk-17-oracle-x64/, mặc định thì nó nằm trong/usr/lib/jvm/https://www.jenkins.io/doc/book/installing/linux/và sửa biến môi trườngJAVA_HOMEsang đường dẫn ở trên, giờ thì có thể start jenkins rồi, nhớ cài đủ plugin như hướng dẫn của bác Việtem chạy đến bước ./configure-vm.sh thì bị lỗi như này ạ "Nothing to do : No such file or directory/etc/profile.d/bash_completion.sh usage: setenforce [ Enforcing | Permissive | 1 | 0 ] : No such file or directoryx/config Failed to stop firewalld\x0d.service: Unit firewalld\x0d.service not loaded. Failed to execute operation: No such file or directory sysctl: setting key "net.ipv4.ip_forward": Invalid argument net.ipv4.ip_forward = 1"
Bài viết hay và chi tiết. Em cảm ơn tác giả nhiều
Anh cho e hỏi chút là giả dụ người khác muốn tải cái của mình về thì mình phải để project là public để cho người kia dùng bình thường phải không a?
có vẻ như bạn đang hiểu nhầm việc sử dụng unitOfWork thì phải, nó không phải sử dụng để giảm số lần gọi tới cơ sở dữ liệu
)
@conghdql4 Đúng rồi mình đang nói đến các private thôi. Cảm ơn bạn.
Hi bạn, cách này chỉ là 1 trick mình tham khảo được và viết lại bằng java để sử dụng cho đơn giản, chủ yếu để vọc vạch hoặc làm các dự án cá nhân thôi. Còn để áp dụng vào sản phẩm thật thì hơi khó vì cookie của google mình cũng không biết được bao lâu nó sẽ không hợp lệ nữa, có khi vài ngày, vài tuần, v.v...