apotheon's comments

apotheon | 5 years ago | on: Tar is an ill-specified format (2015)

Ideas, protocols, and (except perhaps in the post-Oracle-Java world) interfaces can still be copied. A lot of open source software actually does exactly that with ideas, protocols, and interfaces from closed source software.

What makes open source software "open source" is the source code, which is subject to copyright law. Ideas, protocols, and interfaces are not subject to copyright; only their expressions are subject to copyright.

The Embrace, Extend, Extinguish approach makes things incompatible with the way others do them to cement hold on a large user base that prevents those users from changing their minds later. Sometimes that takes the form of forcing people to reimplement everything in a cleanroom setting, because they can never keep up that way; that's where the GPL excels within the open source world for EEE. Other times, it's by diverging from norms in ways that others cannot follow without breaking their own ecosystems, which is where the GNU project has excelled with its plethora of subtle incompatibilities.

apotheon | 5 years ago | on: The political case for a blanket cryptocurrency ban

The real complaint from the surveillance police state is that people use encryption for privacy -- whether it's basic communications privacy (end-to-end encrypted text and voice) or basic financial privacy (cryptocurrencies that aren't being made progressively more trackable).

Part of that "used for crime" shit is about things that are against the law just because nobody reported buying a car or something like that, too.

apotheon | 5 years ago | on: Tar is an ill-specified format (2015)

That's exactly what GNU did. GNU can take changes from software produced by others under copyfree licenses and wrap it in a copyleft license, then the projects from which it borrowed can't borrow-back the GNU changes because of license incompatibility that runs only one way.

GNU licenses are very much embrace-extend-extinguish licenses.

apotheon | 5 years ago | on: Elon Musk: ‘Too many smart people go into finance and law’

That's an interesting interpretations.

I was under the impression the Kansas reference was basically an insult both to the direction of society and Kansas, but then I wasn't sure how that fit in with the claims about what sciences are useful or "real". Yours might make more sense.

Then again, I'm not sure sense is what was being made, there, anyway.

apotheon | 5 years ago | on: Elon Musk: ‘Too many smart people go into finance and law’

Finance? WTF? I'm guessing you had one of those "what's the word, uh . . . not finance, but that'll do" moments. We all have those. Just to ensure we're all clear here, though:

Finance is about navigating the particular niceties of dealing with money as a professional, and maybe a little bit of trend-misprediction for the sake of occasionally getting to be a "rainmaker" for some employer. I think you mean economics, which is about the movements of economic agents and of whole economies.

Economics is a "social" science (ignoring for the moment the fact that some economists aren't very scientific), and finance is a (highly lucrative) job field.

apotheon | 5 years ago | on: I’ve Consed Every Pair

Imagine telling Brian Kernighan about a cool language you found called C, not realizing Brian wrote a lot of C.

Imagine telling Dave Thomas about a cool language you found called Ruby, not realizing Dave has written a lot of Ruby.

Imagine telling Douglas Crockford about a cool language you found called JavaScript, not realizing Douglas has written a lot of JavaScript (much of it full of bad ideas, but that's irrelevant in this case).

Imagine telling Harold Abelson about a cool language you found called Scheme, not realizing Harold has written a lot of Scheme.

Imagine telling Randal Schwartz about a cool language you found called Perl, not realizing Randal has written a lot of Perl.

Like all of the above, for the respective language (LISP in Peter's case, C in Brian's, and so on), Peter Norvig is a well known master who has written a seminal work about the language.

q.v. Paradigms of AI Programming: Case Studies in Common Lisp

He also wrote Teach Yourself Programming In Ten Years, which many people who know basically nothing about LISPs have encountered and consider important.

If I would have any objection to the brief story's use of the term "ironic", it would be about the fact that many LISPers might not be as enthused about Clojure, so it's possible Peter hasn't really looked into it. Your question implied that Clojure is just "Lisp", though, and if we're talking about "Lisp" in a generic sense (i.e. the LISP family), I think Peter Norvig is one of those luminaries that everyone who pays attention to the social context and most important written works about LISP would know. I don't even pay that much attention to those aspects of LISP knowledge, and I know about him in the context of LISP.

That's not to say everyone who has an interest in LISP should be thought deficient for not knowing about Peter. It's fine if you haven't stumbled across him before. Sometimes, people just miss things that, in retrospect, might seem like something they should have known.

That doesn't mean you have to even have an interest in LISP.

This should, however, hopefully, give you a sense of why Peter might think it was "ironic", even if "ironic" feels a bit questionable as the appropriate choice of term there. I'm sure to him it felt a little ironic, and that makes sense to me as an emotional response, at least.

Does that help?

(Imagine telling William Shakespeare about the Renaissance era techniques of being a playwright, or telling James Cooke Brown about a conlang called Lojban. Of course, I suppose James might be dismissive of Lojban, given he tried to control Loglan by proprietary means after creating it, thus prompting others to reimplement it as Lojban, undermining his efforts at such control.)

edit: Note that I'm not saying there's anything wrong with someone not realizing one is speaking with a Big Name in LISP when meeting Peter Norvig. I'm just saying that Peter is perhaps justified in finding it a little "ironic", and jumping to conclusions about why he would feel that way (if that's what you're doing) might not be fair.

I would probably feel awkward in Peter's position. I've been in a similar position before, including once being told about a cool article that I actually wrote as if it would change my life, and I never know what to do in a case like that. How do you point it out without possibly making someone feel offended? Humans get offended at the silliest things sometimes, and I occasionally find it quite difficult to predict.

apotheon | 6 years ago | on: Exceptionally gifted children: long-term outcomes of acceleration (2006) [pdf]

> I am under instructions to talk about this stuff, openly and honestly, and to see that people aren’t as judgmental as the wounded child within believes.

In my experience, you should prepare to be disappointed. Judgementalism is how people survive in a world that rewards niarcissism; they judge others to be inferior to give themselves the strength to go on. It's an arms race.

Intellectually, I understand that people are mostly crap. Emotionally, I keep making the mistake of trusting people's supposed good intentions when I feel like I've gotten to know them, and finding out that, once again, they're judgemental assholes who will fabricate tales to tell themselves so they can absolve themselves of meaningful guilt.

There are good people, non-judgemental people, caring people, who can sympathize with you and who deserve your trust (assuming you're a well-meaning person, as I suspect from what I've read here). From your description of some aspects of your life, it seems you've found one or two, and I'm happy to hear it.

Mostly, people want to tell you fairy tales about the good in the world. Most of it is pretty mediocre; even middling is a stretch. It's not distributed evenly, though, and it's worth holding out hope. I was lucky enough to meet one of those rare lights in my early teens, and we're still in touch. I was lucky enough to meet several others along the way, and I charish their influences on my life. I'm lucky enough to live my life with one now, and for quite a few years up to this point. They make it all worthwhile.

apotheon | 6 years ago | on: Exceptionally gifted children: long-term outcomes of acceleration (2006) [pdf]

I think a lot of the arrogance that develops in some smart kids is a result of being shunned for being right. Kids often start out trying to help others by pointing out how something could be better, get socially (sometimes physically) beaten up for it, then develop into condescending assholes as a defense mechanism.

You need to give better advice than this to people when they're five, when they actually need it.

I learned early on that being right was no defense, and that no matter what happened I would always be blamed. These were the wrong lessons, but society at large was the wrong teacher, so I guess we're even.

This doesn't stop when we stop being kids. In the so-called "adult" world, people make some of the stupidest decisions imaginable on a daily basis, and refuse to acknowledge any errors in their choices no matter how they're brought up. Helping other people turns out to be an exercise not only in futility, but in masochism as well.

I've been called "justifiably arrogant" in the past. I've been condescending. I've come out the other side, and now basically think of myself as kind of mediocre. I used to look around at how people make much worse decisions than me about the important stuff and feel a little comforted by the idea that at least I'm doing better than them. Now, it just makes me sad, because I realize I kinda suck, but 98% of people make me look good by comparison.

I've learned to "go along to get along" to some extent, with people who don't matter to me. The people who do matter to me are the people with whom I can be honest, because honesty is a great way to get yourself in a lot of social trouble otherwise.

Mostly, what it comes down to, is that basically everybody sucks, smart or not, and everybody wants to believe "My shit doesn't stink." There's a grave injustice afoot when someone actually has a good idea, by way of applying some native intelligence and learned rationality to a problem, and gets punished for it, though -- and native intelligence helps people realize they're getting burned at the stake over someone else's superstitions, thus making "smart kids" bitter, dismissive, and lonely.

I'm generalizing a lot. Exceptions abound.

apotheon | 6 years ago | on: Tell HN: C Experts Panel – Ask us anything about C

It depends on whether you're talking about an actual whole new, radically different language or something that is essentially C "with improvements". My point is not that C "with improvements" is the ideal approach, only that (at this time, for almost purely social reasons) I don't think C is really subject to replacement except by something that allows you to mix standard C and the "new language" because, apart from specific improvements, they are the same language.

This might come with huge drawbacks, but it still seems like the only socially acceptable way to fully replace C at this time; make it so you can replace it one line of code at a time in existing projects.

apotheon | 6 years ago | on: Tell HN: C Experts Panel – Ask us anything about C

> What is meant by "portable code"? Should it refer only to code that should theoretically be usable on all imaginable implementations, or should it be expanded to include code which may not be accepted by all implementations, but which would have an unambiguous meaning on all implementations that accept it?

That's a good question. I'm not sure I know. I could hazard a guess at what would be "best", but I'm not particularly confident in my thoughts on the matter at this time. As long as how that is handled is thoughtful, practical, consistent, and well-established, though, I think we're much more than halfway to the right answer.

> Historically, if there was some action or construct that different implementations would process in different ways that were well suited to their target platforms and purposes, but were incompatible with each other, the Standard would simply regard such an action as invoking Undefined Behavior, so as to avoid requiring that any implementations change in a way that would break existing code.

If I understand correctly, that would actually be "implementation-defined", not "undefined".

> a directive demanding that "long" be 32 bits would provide a clear path for the implementation to meet its customers' needs

There are size-specific integer types specified in the C99 standard (e.g. `uint32_t`). I use those, except in the most trivial cases (e.g. `int main()`), and limit myself to those size-specific integer types that are "guaranteed" by the standard.

apotheon | 6 years ago | on: Google to Slow Hiring for Rest of 2020

> Just get it done. Don't ask.

Yeah, I didn't think it would go the way it did. That was the first time I noticed a problem.

What I really should have done is start searching for another job a week into this "process".

I'd rather give employers what they want, and -- if what they want is stupid or insane like that -- leave before I have to give the employer very much of what it wants, because I don't want to be a part of that.

> I heard later on that a VP refused to accept the solution because he insisted it must be wrong since it was completely inconceivable that it could be solved that quickly.

I loathe crap like that.

apotheon | 6 years ago | on: Tell HN: C Experts Panel – Ask us anything about C

I haven't looked at Zig too closely yet (only started just a few minutes ago), but it immediately appears to me that this violates one of the requirements I suggested, as demonstrated by this use-case wish from my previous comment:

> > using the new language's compiler as the project compiler front end's drop-in replacement (without having to make any changes to the code at all for this first step)

I'll look into Zig more, though. Maybe I'll like it.

---

I stand corrected, given my phrasing. I should have specified that it needs to also support incrementally adding the new language's features while most of the code is still unaltered C, rather than (for instance) having to suddenly replace all the includes and function prototypes just because you want to add (in the case of Zig) an error "catch" clause.

page 2