HNHacker News
TopNewBestAskShowJobs

MoSal

43 karma · joined August 1, 2015

    https://github.com/MoSal

    https://github.com/saldl/saldl
submissionscomments
MoSal··on The Rust Libs Blitz
I wrote cargo-esr[1], an alternative tool for searching crates, with the purpose of narrowing down good choices.

Feedback welcome.

[1] https://github.com/rust-alt/cargo-esr

MoSal··on The Rust module system is too confusing
> in practice the closure syntax and logical or do not lead to confusion (imho, ymmv).

That's true. But put your self in the mind of a C developer looking at Rust code for the first time:

     if a || b {
       println!("True");
     }
Cool.

Then:

     thread::spawn(|| println!("Hello from a thread!"););
What? What is the logical or doing there?

----

IIRC, there are also cases where you have to write `& &` instead of `&&` to not confuse the compiler. That's a design/practical issue.

Both those issues would have been avoided if literal `and`/`or` were used.

I find it interesting how the only thing that momentarily confused me, as a C developer, about Rust syntax, was caused by Rust authors not wanting to syntactically deviate too much from C.

MoSal··on The Rust module system is too confusing
What's syntactically obscure about Rust?

I only knew(and liked) C reasonably well before Rust. And nothing felt obscure when I started learning it.

I can only remember not getting what `||` meant (in the context of defining a closure without args). The positional meaning of `||` and `&&` is the only thing, I can recall right now, that can be considered obscure syntactically (for C developers at least) . They should have gone with literal `and`/`or` for the operators IMHO.

MoSal··on Hellcat: netcat that takes unfair advantage of traffic shaping systems
Is this a problem where multiple connections wouldn't help?

I can add an option to saldl[1] to use a new connection with each chunk. But I'm not sure there are real world examples where this would help.

[1] https://github.com/saldl/saldl

MoSal··on A new Curl logo
Interesting.

Why is this interpreted as a relative path?

     cd /etc
     curl file://resolv.conf
MoSal··on GNU name system
Christian Grothoff is an excellent academic. In fact, he is one of the most knowledgeable in the field worldwide.

Unfortunately, that's why ,IMHO, GNUnet didn't succeed. To build a successful product/network, you need to be practical, and you need to make useful features/services available as early as possible (without compromising security of course). Designing with pluggability and forward-compatibility in mind helps in this regard.

Academic perfectionism, however, can delay your product/network launch indefinitely. And that's what seems to have happened with GNUnet.

MoSal··on Waybackpack: download the entire Wayback Machine archive for a given URL
Are there any plans to support archiving Web 2.0 pages?

More and more people are starting to rely on "archive.is" as it handles Web 2.0 content without issue. But I'm concerned about the survivability of that survice, and whether it can handle big growth.

MoSal··on WebExtensions in Firefox 48
If all you intend to provide in that regard is "Better keyboard shortcut support". Then no, Vimperator functionality will not be supported.
MoSal··on Stream PirateBay movies directly from CLI
It wasn't very useful because it didn't actually force streaming. The "rarest-first" rule was still respected.

It wasn't optimal for the swarm. Yet, the user didn't really get what he/she wanted.

MoSal··on Stream PirateBay movies directly from CLI
Suppose there is only one seeder and 2-3 leechers. All leechers managed to get 50+%. Now, if the seeder disappears, the leechers should be able to finish the download from each other. If all initial leechers are streamers, that download will never finish for them or anyone else.

Supposedly long seed intervals will not help the swarm in that case.

MoSal··on Stream PirateBay movies directly from CLI
I'm deeply concerned about popularizing torrent streaming.

A few leechers breaking "rarest-first" might not cause much harm. But if most leechers become streamers, torrents will lose their efficiency in distributing less-popular content.

Transmission implemented a "streaming" feature once, that didn't actually stream. It just stopped fetching pieces "with the same rarity" randomly. They still got too much heat for adding that not very usefull feature. And they reverted the commits soon after.

MoSal··on Curl vs. Wget
The URL does not work right now. But I tried another one from the same site.

No client can get this right, always. aria2c is not more reliable. It's just choosing to take the filename from the redirect URL. It appears to be the right thing to do in this case. But it would fail if the start URL was actually the one that had the right filename.

Hosts can use the Content-Disposition header if they want to make sure all (capable) clients get the right filename.

In saldl, I implemented `--filename-from-redirect` to handle your use-case. But It's not set by default.

MoSal··on Curl vs. Wget
Stability and security comes first. So, let's ship an X years old curl release + patches ;)
MoSal··on Curl vs. Wget
FWIW, this page is incomplete and outdated.

For example, `--mirror-url` was implemented. So, it is now possible to download from two sources concurrently.

MoSal··on Curl vs. Wget
Try saldl[1]. It depends on libcurl. So protocol support should be good and reliable.

[1] https://github.com/saldl/saldl

MoSal··on Curl vs. Wget
I should probably write a "saldl vs. others" page someday.

> Wget supports the Public Suffix List for handling cookie domains, curl does not.

This is outdated info. (lib)curl can be built with libpsl support since 7.46.0.

MoSal··on GitHub responds to Dear GitHub letter
Besides the UI, "reviewable.io" is a memory hog. It's simply unusable if you try to browse the site from a device without a lot of free memory (e.g. older tablets, ARM SoCs, etc).
MoSal··on Dear open-source maintainers, a letter from GitLab
Somebody just spammed their Issues page[1]. The one they link to in the letter.

I think the spammer is trying to make a point! For starters, there seems to be no rate limit applied.

[1] https://gitlab.com/gitlab-org/gitlab-ce/issues

MoSal··on Tmux Resurrect – Persists tmux environment across system restarts
This is the greatest thing since ... tmux.

If only @resurrect-save-zsh-history was implemented.

MoSal··on Ask HN: What's your favorite CLI or ncurses program?
nethogs: bandwidth usage by process(Does not work with UDP!)

iptraf-ng: bandwidth usage by port.

lsof: list open files(including network files).