Hacker Newsnew | past | comments | ask | show | jobs | submit | vocx2tx's commentslogin

The reason is simple: they'd like to reap all the benefits of a permissive licence (many people and companies won't or can't touch GPL code), without any of the downsides; but these downsides are the very reason behind the rules in more 'restrictive' licenses like the GPL.

This usually doesn't work, and in the end all they can do is complain about behaviours that their license choice explicitly allowed.


Go did exactly that, where Maven's 'Project group identifier' is an URL you control, e.g. github.com/<your-account> but also <your-website>/go-pkg or whatever you want. Other languages did this too. Flat namespaces are more of a Rust issue (among newer languages).


The real issue here is Rust's flat namespace. In Go, for example, there's no ffmpeg crate, there's github.com/someone/ffmpeg and gitlab.com/someone-else/ffmpeg, and so on. There's no blessed, unique 'ffmpeg' package, you can't squat names, and if the first package gets abandoned, you can fork it under a new path while keeping the 'ffmpeg' name. Only the import path changes.


How does having more namespaces address the other half of the issue, of having multiple incomplete ffmpeg crates and having to decide which one to use and to support?


In a hierarchical namespace, two different flavors of ffmpeg would fall into the same branch of the hierarchy.

It would be confusing and counterproductive to introduce, say multimedia_libs/ffmpeg because codec_libs/ffmpeg was discontinued.

A level of hierarchy does when projects in genuinely unrelated categories share a package name.


Not entirely true. Rust (cargo) supports git-based crates and more crate sources than just crates.io (registry = "crates-io"), however crates on crates.io doesn't currently support dependencies with crates in other registries.

    somecrate = { git = "https://...." }
    other-crate = { version = "1.0", registry = "my-registry" } 
It also supports source replacement downstream:

https://doc.rust-lang.org/cargo/reference/source-replacement...

crates.io could be updated to support alternative registries.


Now instead of having the 2nd and 3rd packages have ugly names all of them have ugly names!

There are advantages to systems like this such as trust (I can tell that you.example/pkg1 and you.example/pkg2 are owned by the same person) and decentralization. But I don't think it helps with the later packages having ugly names.


Looking at the issue their builders seem to be Opterons G3 (K10?)[0]

[0] https://en.wikipedia.org/wiki/AMD_10h


at this point they're guzzling so much power the electricity is more expensive than replacement platform


I can imagine this has to be like that as they usually get $1500 per month in donations.

You could buy a newer one but I guess they have other stuff they have to pay for.


This is a bit of vicious circle. How much of that money goes even into keeping those servers running? The electricity bill alone, geez. They could do a dedicated fundraiser to get themselves two boxes that are a decade old and still have spare parts available, coming from Broadwell era, they will have enough instruction set support to cover the baseline towards which multiple distros are converging (Haswell and up).


Given their target audience, they could probably just request a hardware donation. Some sysadmin out there is probably getting rid of exactly what they need.


if it's colocated (surely the case) they aren't paying per kWh


For $500 you can get a decent refurbished server on ebay that supports those “new” extensions


$1500 / month is probably swallowed by how much of powerpigs those Opertons are, like they are bad, real bad.


I am 100% sure that if they put out a call for action and asked for hardware donations they would be able to get newer stuff. Ryzen 7 1700 goes for as cheap as 50$, DDR4 ram at supported speeds (2133 MHz) is also dirt cheap.


>$1500/month

Wow, i just got into newpipe/fdroid. Its neat to think even a donation the size of mine can be almost individually meaningful :)


I have a home server with a 9th gen i7 that's doing jack sh!t most of the time, is there a way to donate some compute time to build F-Droid packages?


64 bit mod is much slower than 32 bit mod. Your C program uses int32_t everywhere, while your Go program uses int (which is probably 64 bit on you machine); so this is not a fair comparison. Changing the Go program to use int32 everywhere makes it 35% faster on my machine.


Agree. And of course it's always something "surface level and uncontroversial", anything else gets you downvoted. Most subreddits (with a few exceptions) are huge echo-chambers.


It uses yt-dlp as the download backend, so it works with anything that yt-dlp handles.


I have found this not to be as straightforward as this. In particular:

1. Although `yt-dlp` consistently is able to download videos at link speed (even when the said link is in multi-gig range!), streaming the video through `mpv` will not work as well and some videos would buffer every couple chunks. But that was in the past…

2. With recent changes to how videos are served and "protected", I'm still able to download them with recent versions of `yt-dlp`, but streaming a `yt-dlp` generated playlist will reliably fail to work (this is true for the newpipe android app too.)

3. Even back when streaming youtube worked, closed captions and other such features would not work by default.

I download videos first, nowadays. And then play them with mpv anyway.


For 1, there might be settings that can help.

I used to use mplayer(of which mpv is a fork) to watch pirate streams of premier league games several years ago, via acestream. Since this was live, lag was a real issue; you can't buffer ahead when there's nothing to buffer yet. Eventually I figured out that mplayer had settings to do things like buffer for 2 minutes at the beginning of the stream before playing. You could also configure it by megabytes pre-buffered. This solved my lag issues very neatly. I can't remember what the settings were, it's been a long time and I don't have those config files anymore. But it should all be in the docs somewhere.


Try setting `ytdl-format=ytdl` in `mpv.conf`, that fixed it for me.


> 1. Although `yt-dlp` consistently is able to download videos at link speed (even when the said link is in multi-gig range!), streaming the video through `mpv` will not work as well and some videos would buffer every couple chunks. But that was in the past…

I still get this with YouTube from time to time. Works with some videos, others are unwatchable. Seeking also generally seems broke and is often slower than downloading even the whole video.


I think the issue with buffering on some videos is because of bad DASH support https://github.com/mpv-player/mpv/issues/7033


> The worst GUI (none) out of the box.

That's funny, for me that's exactly the best GUI out of the box. I actually did some tinkering to reduce the GUI parts even more, and added more keyboard shortcuts.


Of course everything in the "Generic Programming" section is now outdated.


> and who was “she”?

The structure, probably. In gendered languages objects have a grammatical gender, and "structure" is feminine in at least French, Italian, and Spanish (they all derived from Latin "structura", which is feminine). Non-native English speakers will sometime carry over a noun's gender when writing in English.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: