Bảng Quyết Đinh_Tester
Hi bạn. Sao mình đọc thấy TH3 vẫn chỉ có 2 điều kiện thôi mà. w>=3 thì length bao nhiêu cũng là đơn lớn. w<3 thì bắt buộc length>5 mới là đơn lớn, các trường hợp khác đều là đơn lớn.
- T: w>=3kg OR (w<3kg AND l>5)
- F: w<3kg AND l<5
Cách Merge và Push code từ brand lên main hiệu quả mà không bị mất code
Luôn pull trước khi push: Trước khi đẩy code của mình lên, nhớ cập nhật những thay đổi mới nhất từ main về branch của bạn. Như vậy bạn sẽ chắc chắn rằng mình đang làm việc với phiên bản mới nhất và tránh gặp xung đột khi merge.
Luôn cập nhật branch khi bắt đầu làm việc: Trước khi bắt tay vào code, điều đầu tiên mình hay làm là kéo những thay đổi mới nhất từ main về branch của mình. Điều này giúp tránh việc phải sửa lỗi xung đột không cần thiết và đảm bảo code của mình tương thích với những thay đổi của các bạn trong team.
Đừng merge trực tiếp vào main, hãy tạo pull request: Khi cần merge code, đừng vội vàng đẩy thẳng lên main. Thay vào đó, tạo một pull request để các bạn khác trong nhóm có thể xem qua và cho ý kiến. Việc này không chỉ giúp bạn phát hiện lỗi mà còn giúp mọi người trong team hiểu rõ hơn về công việc của nhau.
Commit thường xuyên: Đừng đợi đến khi hoàn thành cả một phần lớn rồi mới commit. Hãy chia nhỏ các task và commit thường xuyên, vừa dễ kiểm soát thay đổi, vừa tránh rủi ro xung đột về sau.
SQL, Join chỉ lấy một dòng dữ liệu
bạn thử nha
SELECT
tb_1.*,
tb_2.*
FROM tb_1
LEFT JOIN (
SELECT pnlbarcode, MAX(scan_dt) AS max_scan_dt
FROM tb_2
GROUP BY pnlbarcode
) AS latest_tb_2
ON tb_1.pnlbarcode = latest_tb_2.pnlbarcode
LEFT JOIN tb_2 ON tb_2.pnlbarcode = latest_tb_2.pnlbarcode
AND tb_2.scan_dt = latest_tb_2.max_scan_dt
Oke thì cho mình xin 1 upvote 1 bookmark ở bài viết mới nhất nha. Thanks.
vấn đề về SQL Server license
Dùng vô tư nhưng rủi ro cũng cao nha, không khuyến khích nha bác.
How to scan words from image ?
1 vote cho VietOCR, xưa làm đồ án về NLP toàn dùng mô hình này:>
Linear Regression
Để thực hiện việc huấn luyện thì cái tiên quyết là data phải chuyển về dạng số, bạn có thể tham khảo thư viện Label Encoder hoặc tự replace giá trị để hiểu trước cũng được.
Tham khảo ở đây nhé: https://www.geeksforgeeks.org/ml-label-encoding-of-datasets-in-python/
Xin được chỉ giáo về việc dùng AI nhận diện các loài động vật trong rừng bảo tồn
Bên mình có tuyển Freelancer để hỗ trợ project không a?
Deploy rails app
Huynh đài gặp lỗi "Permission denied" khi truy cập Passengerfile.json, phải không?
Cách giải quyết:
Thay đổi quyền truy cập file:
sudo chmod a+r Passengerfile.json
Cấu hình Nginx sử dụng user khác:
Sửa file /etc/nginx/nginx.conf:
passenger_user deploy;
passenger_group deploy;
Thay đổi deploy thành tên user bạn muốn.
Tạo file Passengerfile.json (nếu file không tồn tại):
{
"default_ruby": "ruby-2.x.0"
}
Chúc huynh đài thành công!
hỏi domain free
Miễn phí thì có nhưng nó có 2 hạn chế là:
- Gói hosting miễn phí với dung lượng 50MB.
- Tên miền .biz.ly là một tên miền quốc tế. Nên không được ưu tiên trong kết quả tìm kiếm của Google tại Việt Nam.
micro service
Để kiểm tra token hợp lệ, hết hạn, App B cần thực hiện các bước sau:
- Lấy thông tin token từ người dùng. Thông tin token bao gồm:
- Mã token
- Tên người dùng
- Thời hạn token
-
Sử dụng mã token để xác thực với App A. App B có thể sử dụng API của App A để xác thực.
-
Nếu xác thực thành công, App B sẽ lấy được thông tin thời hạn token.
-
So sánh thời hạn token với thời gian hiện tại. Nếu thời gian hiện tại lớn hơn thời hạn token, thì token đã hết hạn.
Ví dụ, App A sử dụng Passport để tạo token. Token được tạo bởi hàm passport.authenticate(). Hàm này sẽ trả về một đối tượng token. Đối tượng này chứa các thông tin sau:
{
"id": "1234567890",
"token": "1234567890abcdefghijklmnopqrstuvwxzy",
"expires_in": 3600,
"user": {
"id": "1234567890",
"username": "user1",
"email": "user1@example.com"
}
}
Để xác thực token, App B có thể sử dụng hàm passport.authenticate(). Hàm này sẽ trả về một đối tượng user. Đối tượng này chứa thông tin người dùng.
{
"id": "1234567890",
"username": "user1",
"email": "user1@example.com"
}
Sau khi xác thực thành công, App B có thể lấy được thông tin thời hạn token từ đối tượng user.
const user = await passport.authenticate('jwt', {
token: token
});
const expiresIn = user.expires_in;
Nếu thời gian hiện tại lớn hơn thời hạn token, thì token đã hết hạn.
const now = new Date();
if (now > new Date(now.getTime() + expiresIn * 1000)) {
// Token đã hết hạn
}
Ngoài ra, App B cũng có thể sử dụng các thư viện của bên thứ ba để kiểm tra token hợp lệ, hết hạn. Ví dụ, thư viện jsonwebtoken cung cấp các hàm để kiểm tra token.
import jwt from 'jsonwebtoken';
const token = '1234567890abcdefghijklmnopqrstuvwxzy';
const decodedToken = jwt.decode(token);
const expiresIn = decodedToken.expires_in;
const now = new Date();
if (now > new Date(now.getTime() + expiresIn * 1000)) {
// Token đã hết hạn
}
GO GO GO!!!
kết nối đến máy chủ
Để kết nối đến máy chủ với thông tin Host, User, Key, bạn có thể sử dụng các công cụ sau:
- PuTTY (cho Windows)
- SecureCRT (cho Windows, macOS, Linux)
- Terminal (cho macOS, Linux)
api - laravel
Có, bạn có thể sử dụng access_token login của thằng A để truy cập api của thằng B. Để làm được điều này, bạn cần thêm một middleware vào api của thằng B để kiểm tra access_token. Middleware này sẽ kiểm tra xem access_token có hợp lệ hay không, nếu hợp lệ thì sẽ cho phép người dùng truy cập api.
Hỏi về luật chống cuộc gọi rác
Theo quy định của Nghị định 91/2020/NĐ-CP về chống tin nhắn rác, thư điện tử rác, cuộc gọi rác, thì tất cả các doanh nghiệp, tổ chức, cá nhân có nhu cầu sử dụng tên định danh để thực hiện các hoạt động quảng cáo qua tin nhắn, cuộc gọi đều phải đăng ký và nộp lệ phí cho Bộ Thông tin và Truyền thông. Mức lệ phí duy trì tên định danh là 135.000 đồng/tháng.
Do đó, nếu mẹ bạn muốn tiếp tục sử dụng số điện thoại để gọi điện cho khách hàng thì bắt buộc phải đăng ký mã định danh. Tuy nhiên, bạn có thể tham khảo một số phương án sau để giảm thiểu chi phí:
Đăng ký mã định danh cho nhiều số điện thoại cùng lúc. Mức lệ phí duy trì tên định danh là cố định, không phụ thuộc vào số lượng số điện thoại đăng ký. Do đó, nếu mẹ bạn có thể đăng ký mã định danh cho nhiều số điện thoại cùng lúc thì sẽ giảm được chi phí. Liên hệ với nhà mạng để được hỗ trợ. Một số nhà mạng có thể hỗ trợ giảm phí duy trì tên định danh cho các doanh nghiệp, tổ chức, cá nhân có nhu cầu sử dụng số điện thoại để thực hiện các hoạt động kinh doanh, dịch vụ. Bạn có thể liên hệ với nhà mạng mà mẹ bạn đang sử dụng để được tư vấn và hỗ trợ. Ngoài ra, bạn cũng có thể cân nhắc sử dụng các giải pháp thay thế khác để liên lạc với khách hàng, chẳng hạn như:
Sử dụng ứng dụng gọi điện VoIP, chẳng hạn như Zalo, Viber, Skype,... Các ứng dụng này thường có chi phí thấp hơn so với gọi điện thoại thông thường. Sử dụng email, chat,... Các phương thức này có thể giúp tiết kiệm chi phí hơn so với gọi điện thoại. Tuy nhiên, bạn cần lưu ý rằng việc sử dụng các phương thức thay thế này có thể không phù hợp với tất cả các trường hợp. Ví dụ, nếu mẹ bạn cần gọi điện thoại cho khách hàng để giải quyết vấn đề khẩn cấp thì các phương thức thay thế này có thể không đáp ứng được nhu cầu.
Hy vọng những thông tin trên sẽ giúp bạn tìm được phương án phù hợp cho mẹ bạn.
Extension Get Tất Cả Profile Của Các Members Trong Một Group Facebook Ra File Excel
Xin tài liệu về bài toán dự đoán giá nhà
Bạn cần hỗ trợ thì inbox mình: https://www.facebook.com/leadline123/?locale=vi_VN
Import, Export, Require, Exports.
- Import VS require():
- Export VS Exports:
Export là một từ khóa được sử dụng để khai báo các biến, hàm, hoặc đối tượng mà bạn muốn export.
Exports là một biến global được sử dụng để truy cập các biến, hàm, hoặc đối tượng đã được export.
Cấu hình pipeline trong jenkin để pull code php về?
Để cấu hình pipeline trong Jenkins để nhấn build thì pull code từ server C (gitlab) về server B (deploy code), bạn cần thực hiện các bước sau:
Tạo một pipeline mới trong Jenkins. Trong pipeline, thêm bước Git để lấy code từ GitLab. Trong bước Git, chỉ định URL của repository GitLab và tên của branch mà bạn muốn lấy. Thêm bước Deploy để triển khai code trên server B. Trong bước Deploy, chỉ định lệnh mà bạn muốn chạy để triển khai code. Ví dụ, pipeline sau sẽ lấy code từ repository GitLab có tên my-project trên branch master và triển khai code trên server B bằng lệnh git pull origin master && make deploy:
pipeline {
agent any stages {
stage('Git') {
steps {
git(url: 'https://gitlab.com/my-user/my-project.git', branch: 'master')
}
}
stage('Deploy') {
steps {
sh 'git pull origin master && make deploy'
}
}
} }
Để chạy pipeline, bạn có thể nhấn nút Build Now trên trang pipeline.
Chi tiết về cách cấu hình từng bước trong pipeline như sau:
Bước 1: Tạo một pipeline mới trong Jenkins
Để tạo một pipeline mới, bạn có thể nhấp vào nút New Item trên trang Jenkins và chọn Pipeline.
Bước 2: Trong pipeline, thêm bước Git để lấy code từ GitLab
Để thêm bước Git, bạn có thể nhấp vào nút Add Stage và chọn Git.
Trong bước Git, bạn cần chỉ định URL của repository GitLab và tên của branch mà bạn muốn lấy.
Bước 3: Trong bước Git, chỉ định URL của repository GitLab và tên của branch mà bạn muốn lấy
Để chỉ định URL của repository GitLab, bạn có thể sử dụng biến GIT_URL.
Để chỉ định tên của branch, bạn có thể sử dụng biến GIT_BRANCH.
Ví dụ:
git(url: "env.GITURL",branch:"{env.GIT_BRANCH}")
Bước 4: Thêm bước Deploy để triển khai code trên server B
Để thêm bước Deploy, bạn có thể nhấp vào nút Add Stage và chọn Deploy.
Trong bước Deploy, bạn cần chỉ định lệnh mà bạn muốn chạy để triển khai code.
Ví dụ:
sh 'git pull origin master && make deploy'
Bước 5: Chỉ định lệnh mà bạn muốn chạy để triển khai code
Lệnh mà bạn chạy trong bước Deploy sẽ phụ thuộc vào cách bạn triển khai code của mình.
Ví dụ, nếu bạn triển khai code bằng Docker, bạn có thể sử dụng lệnh sau:
docker build -t my-app .
docker run -d -p 8080:8080 my-app
Hy vọng hướng dẫn này sẽ giúp bạn cấu hình pipeline trong Jenkins để nhấn build thì pull code từ server C (gitlab) về server B (deploy code).
Lỗi output size không giống với input size trong hàm training trong bài toán semantic segmentation
Lỗi "output size không giống với input size" thường xảy ra khi kích thước đầu ra của một lớp hoặc mạng khác với kích thước đầu vào. Điều này có thể xảy ra do một số nguyên nhân, chẳng hạn như:
Chèn hoặc cắt xén không chính xác: Đảm bảo rằng các thao tác chèn hoặc cắt xén được áp dụng chính xác và không thay đổi kích thước đầu ra mong đợi. Chưa có hoặc upsampling không chính xác: Nếu bạn đang sử dụng các lớp upsampling để tăng độ phân giải không gian của đầu ra, hãy đảm bảo các hệ số upsampling và phương pháp nội suy phù hợp. Các hàm kích hoạt không tương thích: Nếu bạn đang sử dụng các hàm kích hoạt làm thay đổi kích thước đầu ra, chẳng hạn như Sigmoid hoặc Tanh, hãy đảm bảo chúng được áp dụng chính xác và không thay đổi kích thước đầu ra mong đợi. Hướng dẫn cụ thể cho mã của bạn
Trong mã của bạn, lỗi có thể xảy ra do thao tác squeeze() sau y_hat = model(x). Thao tác squeeze() loại bỏ các chiều đơn lẻ khỏi tensor, điều này có thể thay đổi kích thước đầu ra mong đợi.
Để khắc phục vấn đề này, bạn có thể thử một trong các phương pháp sau:
Xóa thao tác squeeze(): Thao tác này sẽ giữ nguyên kích thước đầu ra của y_hat. Thay thế thao tác squeeze() bằng view(): Thao tác view() cho phép bạn sửa đổi hình dạng của tensor. Bạn có thể sử dụng view() để giữ nguyên kích thước đầu ra của y_hat. Sử dụng các kỹ thuật giảm chiều: Các kỹ thuật giảm chiều như AdaptiveMaxPool2d hoặc AdaptiveAvgPool2d có thể điều chỉnh kích thước đầu ra của y_hat để khớp với hình dạng đầu vào. Ví dụ
Giả sử kích thước đầu vào của x là (1, 3, 224, 224) và kích thước đầu ra mong đợi của y_hat là (1, 2, 224, 224).
Nếu bạn xóa thao tác squeeze(), kích thước đầu ra của y_hat sẽ vẫn là (1, 3, 224, 224).
Nếu bạn thay thế thao tác squeeze() bằng view(), bạn có thể sử dụng mã sau để giữ nguyên kích thước đầu ra:
y_hat = y_hat.view(1, 2, 224, 224) Nếu bạn sử dụng các kỹ thuật giảm chiều, bạn có thể sử dụng mã sau để điều chỉnh kích thước đầu ra:
y_hat = AdaptiveMaxPool2d((2, 2))(y_hat) Mã này sẽ sử dụng lớp AdaptiveMaxPool2d với kích thước pooling là (2, 2) để giảm kích thước đầu ra của y_hat xuống (1, 2, 224, 224).
reg proxy
Để reg proxy v6 từ vps, bạn cần thực hiện các bước sau:
- Cài đặt phần mềm Squid
Squid là một phần mềm proxy server mã nguồn mở, miễn phí dùng để tạo Proxy server phổ biến nhất hiện nay. Nó có bộ nhớ đệm từ người dùng Web (kể cả người dùng truy cập qua HTTP và FTP). Chúng đẩy nhanh thời gian phản hồi và hạn chế nghẽn băng thông.
Để cài đặt Squid, bạn có thể sử dụng các lệnh sau:
yum install -y squid
hoặc
apt install squid
- Cấu hình Squid cho proxy v6
Để cấu hình Squid cho proxy v6, bạn cần mở file cấu hình của Squid, thường là /etc/squid/squid.conf. Sau đó, thêm các dòng sau vào file cấu hình:
http_access allow all
http_port 80
- Tiếp theo, thêm các dòng sau để bật hỗ trợ proxy v6:
proxy-protocol on
proxy-v6 on
- Cuối cùng, lưu file cấu hình và khởi động lại Squid:
service squid restart
- Tạo proxy v6
Để tạo proxy v6, bạn có thể sử dụng lệnh sau:
squid -c /etc/squid/squid.conf
Lệnh này sẽ bắt đầu Squid và tạo proxy v6 trên cổng 80.
- Kiểm tra proxy v6
Để kiểm tra proxy v6, bạn có thể sử dụng lệnh sau:
curl -v [địa chỉ IP v6 của proxy]
Nếu proxy v6 hoạt động bình thường, bạn sẽ thấy kết quả như sau:
< HTTP/1.1 200 OK|
< Content-Type: text/html
< Content-Length: 61
< Connection: close
<
Hello, world!
Các kĩ năng
Tổ chức
Chưa có tổ chức nào.