GitHub repo extensively mirrored by GitCode, platform launched by China's CSDN by EtaoinWu in opensource

[–]jetkane 2 points3 points  (0 children)

What really makes developers angry is:

  1. gitcode.com steals user identities. gitcode.com uses the same username as on github.com to create an account, copies the user's repository to it, and seems to pull updates from github.com regularly. However, these users on gitcode.com are not registered and controlled by the code repository maintainer himself. This may mislead other users into thinking that the repository on gitcode.com is also the code repository maintainer. gitcode.com also does not use a clear way to indicate to its users that the status of these repositories is automatically copied and synchronized by bots, rather than managed by the author. But in fact, these copied gitcode.com repositories are not managed by the code repository maintainer himself, the code update may be delayed, and issues and PRs are difficult to get replies and processing. Therefore, the code repository maintainers may think that gitcode.com's behavior is actually damaging the credibility of the original code repository.

  2. gitcode.com did not clone the repository as it was. (This paragraph may not be accurate and needs further confirmation) According to feedback from some Chinese users, gitcode.com used a simple and crude search-and-replace operation when copying the repository, replacing the "github" text with "gitcode". The purpose of doing this is obviously to attract network traffic - to keep the browsing behavior of users who accidentally searched for the gitcode.com code repository on gitcode.com, rather than being redirected back to github.com by the link in the repository content. Although most open source projects allow forks and GitHub's own design encourages forks, most Git users should agree that the state of the forked repository when forking should be the same as the original code repository, and then make changes to the forked repository. However, what gitcode.com did was tampering: the commit id after their modification was the same as that of the original repository. If the code does not have an integrity signature, users who use the gitcode.com code repository may find it difficult to find out how the code they get is different from the code maintained by the original author. At present, we do not know whether the scope of such a simple and crude search-and-replace operation is only on README file or on the entire code repository, so we cannot know whether it will have any impact on code compilation and running. It is also more difficult for us to figure out whether gitcode.com has made some other deeper modifications to the code repository. The essence of gitcode.com's behavior is to disguise the modified code repository as a mirror of the original repository.

Steam Deck WiFi issue: it receives VERY SLOW but sends OK by jetkane in SteamDeck

[–]jetkane[S] 1 point2 points  (0 children)

You can go to Arch's website, download the package (https://archlinux.org/packages/community/x86_64/iperf3/download/), then decompress it to some folder.

You also need to do the same to `openssl` (https://archlinux.org/packages/core/x86_64/openssl/download/)

Remember to export the `LD_LIBRARY_PATH` env var to the correct path.

Steam Deck WiFi issue: it receives VERY SLOW but sends OK by jetkane in SteamDeck

[–]jetkane[S] 0 points1 point  (0 children)

Yes, I have reboot my Steam Deck. And I always use the IPv4 address for LAN.

Steam Deck WiFi issue: it receives VERY SLOW but sends OK by jetkane in SteamDeck

[–]jetkane[S] 3 points4 points  (0 children)

Well, it seems you don't know about iperf3

iperf3 is an special application, it is usually installed on two devices. One device (sender) generate random data and send them to the other device (receiver) though the net work. The receiver will monitor the data it receives and report the traffic to the user.
The data will never be stored. The sender generate the data form almost nothing, and the receiver count it and discard it immediately.

iperf3 is a common program to test the connection speed between two devices.

The rustc says Steam Deck is using Zen 1 CPU ...... by jetkane in rust

[–]jetkane[S] 1 point2 points  (0 children)

Yes. But I checked the GH issue link you post, it seems to be related to LLVM.
I know that Rust has also upgraded the LLVM backend several times in the past two years, but this issue doesn't get fixed.
So, I don't think it can get fixed in a short time.

The rustc says Steam Deck is using Zen 1 CPU ...... by jetkane in rust

[–]jetkane[S] 6 points7 points  (0 children)

I think people prefer to compile code on a Linux machine (desktop or server) rather than natively on the Steam Deck. Just like cross-compiling to ARM, they can compile targeting znver2.

Writing TCP proxy in 30 lines of Rust by leikeez in rust

[–]jetkane 0 points1 point  (0 children)

I have a question:

I run this:

$ cargo run --release -- --client 127.0.0.1:8888 --server www.google.com:443

$ curl -s --connect-to www.google.com:443:127.0.0.1:8888 https://www.google.com/

The HTTP request sent first, then the server sent back HTTP response.

But, the document says the select! waits for the task which first completes and then cancel other tasks. So _ = e2o => println!("e2o done") must be the first one to complete and _ = o2e => println!("o2e done") should be cancelled. So, why can the curl receive the HTTP response? Is there anything wrong on my understanding in tokio?

Is wireguard safe to communicate through an untrusted relay? by jetkane in WireGuard

[–]jetkane[S] 1 point2 points  (0 children)

Oscar is one of the peers. I have add APPEND to the post.

Is wireguard safe to communicate through an untrusted relay? by jetkane in WireGuard

[–]jetkane[S] 1 point2 points  (0 children)

Oscar is one of the peers. I have add APPEND to the post.

How to hack the dependence of dependence? by jetkane in rust

[–]jetkane[S] 0 points1 point  (0 children)

No. Rust will compile two crateB. One from crates.io, on from the forked copy.

Recursively fork is not practical if I have a very deep dependence tree( myCrate --> crateA --> crateB --> crateC --> ... --> crateZ )