Which communities are so high volume? I sort by new and don’t have any issues reading every single post from my subscriptions
Not everything is. HTTP and unencrypted SNI are still around.
VPNs are great for avoiding the nastygrams that your ISP forwards to you from media companies. They get sent to some company that doesn’t care about US laws instead, and probably laughed at before being deleted
If a VPN is big enough, you can’t really do that sort of correlation due to the level of traffic involved. I guess that would work for visitors to https://www.woman-inflates-a-balloon-and-sits-on-it-and-pops-it.com/, but wouldn’t work at all for google.com
Everything’s visible for HTTP, and in fact some ISPs inject their own ads into HTTP content. HTTPS is harder for malicious actors, but your ISP can tell when you’re visiting pornhub.com, and will happily provide that to the government. With encrypted SNI it’s somewhat harder, but if you’re visiting an IP address of 1.2.3.4, and that IP address is solely used by pornhub.com, it’s not hard to guess what you’re up to.
They used to care quite a bit. Now they don’t. The Windows UI designers are all now using macbooks and don’t dogfood the UI they’re building, and it doesn’t really matter anyways because Windows isn’t the big untouchable moneymaker it once was.
You probably wouldn’t be committing this, unless you’re backing up a heavily WIP branch. The issue is that if you’re developing locally and need to make a temporary change, you might comment something out, which then requires commenting another now-unused variable, which then requires commenting out yet another variable, and so on. Go isn’t helping you here, it’s wasting your time for no good reason. Just emit a warning and allow CI to be configured to reject warnings.
This is the best explanation I’ve ever seen of monads: https://www.adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
For some reason, you’ll find a lot of really bad explanations of monads, like “programmable semi-colons”. Ignore those, and check out the link.
It’s not a half-arsed copy, it’s borrowing a limited subset of HKT for a language with very different goals. Haskell can afford a lot of luxuries that Rust can’t.
That’s 👏 what 👏 CI 👏 is 👏 for
Warn in dev, enforce stuff like this in CI and block PRs that don’t pass. Go is just being silly here, which is not surprising given that Rob Pike said
Syntax highlighting is juvenile. When I was a child, I was taught arithmetic using colored rods. I grew up and today I use monochromatic numerals.
The Go developers need to get over themselves.
The
collect
’s in the middle aren’t necessary, neither is splitting by": "
. Here’s a simpler versionfn main() { let text = "seeds: 79 14 55 13\nwhatever"; let seeds: Vec<_> = text .lines() .next() .unwrap() .split_whitespace() .skip(1) .map(|x| x.parse::<u32>().unwrap()) .collect(); println!("seeds: {:?}", seeds); }
It is simpler to bang out a
[int(num) for num in text.splitlines()[0].split(' ')[1:]]
in Python, but that just shows the happy path with no error handling, and does a bunch of allocations that the Rust version doesn’t. You can also get slightly fancier in the Rust version by collecting into aResult
for more succinct error handling if you’d like.EDIT: Here’s also a version using
anyhow
for error handling, and the aforementionedResult
collecting:use anyhow::{anyhow, Result}; fn main() -> Result<()> { let text = "seeds: 79 14 55 13\nwhatever"; let seeds: Vec<u32> = text .lines() .next() .ok_or(anyhow!("No first line!"))? .split_whitespace() .skip(1) .map(str::parse) .collect::<Result<_, _>>()?; println!("seeds: {:?}", seeds); Ok(()) }