HN user

mrout

39 karma
Posts0
Comments40
View on HN
No posts found.

Grocery stores are directly selling things to you, and they cost different amounts based on their costs to the grocery stores, handling requirements, etc.

ISPs are like mail services: a letter is a letter is a letter. A package is a package is a package. And a packet is a packet is a packet.

-pedantic-errors -Wall -Werror isn't used in the wild because it breaks whenever a new compiler comes out. New compilers often come out with new warnings, new cases for old warnings, etc. It's not forwards-compatible to make warnings errors.

You should release your code with no warnings on the current compiler, but new warnings shouldn't break everything.

I think the key thing for people to realise is that none of what you just said has anything to do with women.

Meet your direct manager. Make sure you get along with them. Make sure people give off 'good vibes' i.e. you get along with them. Talk to people, get to know them.

This is just basic people skills. The interview is about you evaluating them as much as it is about them evaluating you.

If you run them as a different user from yourself, maybe, but who does that?

The idea that software is secure if it only runs on your own user account is stupid IMO. I'd rather that software had access to everything on my computer EXCEPT my personal files.

Sorry for the harsh language, but that's fucking ridiculous in this context.

Free speech? Free speech doesn't exist so that people can make ridiculous comments like 'taking comments from the public into account when making policy is mob rule'. Free speech exists so that people can make those comments on policy and have them heard.

Good example of something (although it's perhaps a bit trivial) that is a puzzle that seems to make even non-mathematicians curious is the 'justification' for greco-latin squares.

The idea is that you have 6 files of 6 men. Each is of a different regiment, each is of a different rank. Is it possible to arrange them so that no row and no file have two men of the same rank or from the same regiment?

You can mention this in your first lecture on algebraic geometry (or, for that matter, combinatorial geometry i.e. matroid theory) and then come back to it when you talk about projective geometries.

Ostensibly, making everyone interact on the internet under their real name will "prevent harassment and bullying". But I have no idea how anyone with even passing familiarity with internet communities could believe that

The idea is that anonymous people 'harass' the over-privileged so-called celebrities on Twitter.

Of course if everyone was anonymous then there would be nobody to harass, and if everyone was pseudonymous then at least anyone would be a name-change away from harassment.

Personally I think that one interesting thought experiment would be that everyone sees everyone else as a different name. So we all see totally randomly generated strings as each others' names. If you block someone then they can't just make a new account and go to your profile, because the new account can't see BlisteringOakPlatypus (assuming some sort of gfycat-like scheme), as that name is only my randomly generated identity from the perspective of their old account.

You also can't bandwagon on people: "hey, go harass DribblingPharmacologicalHippopotamus" wouldn't have any effect.

How would you connect with people you know? You could generate a one-use code they could put into their account to find your profile and communicate with you. Or you could generate a code that lets them just view your profile, without communicating with you. Or for either of these, a many-use code. This lets you be a 'broadcaster' like a celebrity on Twitter, but just because you broadcast doesn't mean you have to receive messages back.

How would you find new people? Well on a Facebook-like platform, through friends-of-friends. What happens if you block someone and they reconnect to one of your friends and can then see you again? The same way you deal with encountering people you don't like IRL through friends of friends. You just have to deal with it like a human.

On a Twitter-like platform, you just follow particular tags or whatever, hashtags, etc.

On a bulletin board, you add people that you see make points you like/appreciate/find to be helpful.

Exceptions are 2-3 orders of magnitude slower if exceptions are thrown

And free if they aren't thrown. It doesn't really matter if it's slow in the error path, as the error path is.. well.. the error path. You aren't doing useful work on the error path anyway.

Exceptions are not part of the type-system

False. 'noexcept' is absolutely part of the type system.

auto unsafe = [] { // a function that throws, sometimes we can't avoid it...

Please don't write code like this, this is unidiomatic C++.

Either<std::exception, int> e = Try<std::exception>(unsafe); // let's lift the exception into the typesystem

This is really bad style in Haskell, where you got this idea from, let alone in C++. Either is a symmetric type, it's like std::pair<a, b> (in fact it's the dual of std::pair). std::either should be to std::variant as std::pair is to std::tuple.

(Minor note: Idiomatic C++ is for types to be lowercase, see the std::exception and int.)

e.left() .map([](auto const& e) {

These 'functional maps' are unidiomatic in C++, especially for things that aren't ranges or containers.

return std::cerr << e.what() << std::endl;

I don't really understand why you would want to return std::cerr. Why map?

int result = e .leftMap([](auto) { return 42; }) // do nothing with exception and map to 42 .rightMap([](auto x) { return x * 2; }) // do further computation if value available .join() // join both sides of either

A different sense of join compared to Haskell as well? Wow that's designed to confuse.

Instead of doing this, you could just have a couple of `if` statements. There's nothing wrong with using `if` statements in C++, honestly. C++ isn't Haskell.

There's not really a lot you can do about this though, is there?

It's not that hard to test that things work, or to see the failures. Comments I've seen like 'there should be a server that installs every package on its own and makes sure its tests pass' have a bit of an issue: we already know the issues exist. Having a big list of them in one place doesn't really give us a lot more information.

What's the solution? If you need to compile native dependencies, how do you take PyPI and Python packaging in general and make those native dependencies able to be portably compiled, reliably, on any platform?

Things that are straight up unworkable:

* Bundling native dependencies as binaries * Specifying a single version of your native dependencies (the 'shrinkwrap' approach) and every library having its own

Git 2.13 9 years ago

To me the most useful parts of fugitive, the only things that actually feel more useful than the command line equivalents, are fugitive-:Gdiff and fugitive-:Gblame.

:Gblame is particularly useful.

You aren't learning Korean. You are learning Hangul. You don't just need to learn 'the Korean words'. You need to learn Korean lexicon, Korean syntax, Korean morphology, Korean idiom, Korean pronunciation, etc. etc. Those are the actually difficult parts of language.

Learning the Latin alphabet doesn't mean you have learnt to read English.

And sure of course you can learn the Arabic alphabet quickly. It's a lot simpler than it looks.

I think that if you treat strings as just lists[0] of UTF-8 code units, and code points, grapheme clusters, etc. are just views/adapters of those bytes, you're probably going to benefit the most.

[0]: When I say 'lists', I mean whatever the standard idea of a sequence of things is in the language. For C that's the array, or maybe the pointer+length pair. For Go it's a slice. For Rust, an iterator perhaps? For Python, it's a list.

one could become quite proficient at reading (without any comprehension of what they are reading)

If you can't comprehend what you're reading, you're not reading. Learning the Korean alphabet is not learning Korean.