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

It's interesting that people with Atom feeds still call them RSS.


How about giving me the option to use variables in media queries?


Yeah this one seems like such low hanging fruit and would be a great convenience.


If this were the case, they would be just as good before becoming leaders. Yet the 47% increase only happens when they gain a position of power.


Any chance they worked really hard for that promotion and it paid multiple dividends? Just kidding.


C++ has two ways of naming things: `std::incomprehensible_long_name` and `|`.


It's funniest when they're making keywords.

"Hmm, we need a new keyword to express this complicated idea about how geese move, in other languages they seem to use the keyword fly"

A1: Just re-use this existing four letter keyword 'swim'. Yeah, technically a goose can also swim but that's different, and the ideas aren't similar, and the implementation is entirely different, but this way we didn't need a new keyword so it's less work for a compiler right?

A2: Simple, new keyword complicated_goose_motion - why are people not happy with that?

At some point a noob will ask "Hey why can't we just name it `fly` like in Other Language?" and they will be ridiculed because of course several C++ companies have used the word fly as an identifier in software, and so reserving that word would incur a slight annoyance for them, whereas just forcing either A1 or A2 avoids a little work for those companies and is thus better...


Please, it would obviously be called co_fly.


I love C++ for the power it gives me, but boy do I hate reading C++ code. I know most of these things are for historical reasons and/or done because of parser compatibilities etc. but it's still a pain.


I used to live and breath C++ early 2000s, but haven't touched it since. I can't make sense of modern C++.


> I can't make sense of modern C++

A lot of it is about making metaprogramming a lot easier to write and to read.

No more enable_if kludges since if constexpr (and concepts for specific stuff); and using concepts allows to better communicate intent (e.g.: template<typename I> can become template<std::integral I> if you want the template to be used only with integer types, and so on)


Thankfully, you can still write C++ just fine without the "modern" stuff and have not only readable code, but also sane compile times. The notion, explicitly mentioned in the article, that all this insane verbosity also adds 5 seconds to your build for a single executor invocation is just crazy to me (it is far longer than my entire build for most projects).


I am confused. Out of curiosity WDYM by 5 seconds being far longer than your entire build for most projects? That sounds crazy low.


It's not crazy, it's just what happens if you write mostly C with some conveniences where they actually make sense instead of "modern C++". I generally write very performance sensitive code, so it's naturally fairly low on abstraction, but usually most of my projects take between one and two seconds to build (that's a complete rebuild with a unity build, I don't do incremental builds). Those that involve CUDA take a bit longer because nvcc is very slow, but I generally build kernels separately (and in parallel) with the rest of the code and just link them together at the end.


Sure, C++ is heavy for compilation, there's simply more by the compiler to do, but code repository building under 5 seconds is at the very low end of tail so making the point about someone bearing with the 5 seconds longer build time is sort of moot.

I wrote a lot of plain C and a lot of C++ (cumulatively probably close to MLoC) and I can't remember any C code that would compile in such a short time unless it was a library code or some trivial example.


You may want to watch some of Herb Sutters videos. He is one of the few sane people left in the upper echelon of C++ supporters


Only if by power you mean performance. Otherwise C++ is not a very ”powerful” language.

I’d like to see an example of a task that can be done with less verbosity in C++ than say, Python, using only the standard library


    ++foo; // Increment value of foo by one

    foo += 1 # Increment value of foo by one


Something more complicated maybe ? Like say parse arguments from a command line ?


This post is a prime example of the latter syntax which looks like a crow was jumping on a snow, and is equally readable.


I think it depends what you mean by language. There is a kind of symbolic logic that happens in the brain, and as a programmer I might liken it to a programming language, but the biological term is defined differently. Language, as far as it is unique to humans, is the serialisation of those internal logical structures in the same way text file is the serialisation of the logical objects within a programming language. What throws most people here is that the internal structures can develop in response to language and mirror it in some ways. As a concrete example, there is certainly a part of my brain that has developed to process algebraic equations. I can clearly see this as distinct from the part that would serialise them and allow me to write out the equation stored internally. In that way, the language of mathematics has precipitated the creation of an internal pattern of thought which one could easily confuse for its serialisation. It seems reasonable to assume that natural language could have similar interactions with the logical parts of the mind. Constructs such as “if/then” and “before/after” may be acquired through language, but exist separate from it.

Language is, therefore, instrumental to human thought as distinct from animal thought because it allows us to more easily acquire and develop new patterns of thinking.


Would such a license fall under the definition of free software? Difficult to say. Counter-proposition: a license which permits training if the model is fully open.


My next project will be released under a GPL-like license with exactly this condition added. If you train a model on this code, the model must be open source & open weights


In light of the fact that the courts have found training an AI model to be fair use under US copyright law, it seems unlikely this condition will have any actual relevance to anyone. You're probably going to need to not publicly distribute your software at all, and make such a condition a term of the initial sale. Even there, it's probably going to be a long haul to get that to stick.


Not sure why the FSF or any other organization hasn't released a license like this years ago already.


Because it would violate freedom zero. Adding such terms to the GNU GPL would also mean that you can remove them, they would be considered "further restrictions" and can be removed (see section 7 of the GNU GPL version 3).


Freedom 0 is not violated. GPL includes restrictions for how you can use the software, yet it's still open source.

You can do whatever you want with the software, BUT you must do a few things. For GPL it's keeping the license, distributing the source, etc. Why can't we have a different license with the same kind of restrictions, but also "Models trained on this licensed work must be open source".

Edit: Plus the license would not be "GPL+restriction" but a new license altogether, which includes the requirements for models to be open.


That is not really correct, the GNU GPL doesn't have any terms whatsoever on how you can use, or modify the program to do things. You're free to make a GNU GPL program do anything (i.e., use).

I suggest a careful reading of the GNU GPL, or the definition of Free Software, where this is carefully explained.


> You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:

"A work based on the program" can be defined to include AI models (just define it, it's your contract). "All of these conditions" can include conveying the AI model in an open source license.

I'm not restricting your ability to use the program/code to train an AI. I'm imposing conditions (the same as the GPL does for code) onto the AI model that is derivative of the licensed code.

Edit: I know it may not be the best section (the one after regarding non-source forms could be better) but in spirit, it's exactly the same imo as GPL forcing you to keep the GPL license on the work


I think maybe you're mixing up distribution and running a program, at least taking your initial comment into account, "if you train/run/use a model, it must be open source".


I should have been more precise: "If you train and distribute an AI model on this work, it must use the same license as the work".

Using AGPL as the base instead of GPL (where network access is distribution), any user of the software will have the rights to the source code of the AI model and weights.

My goal is not to impose more restrictions to the AI maker, but to guarantee rights to the user of software that was trained on my open source code.


It isn't the difficult, a license that forbids how the program is used is a non-free software license.

"The freedom to run the program as you wish, for any purpose (freedom 0)."


Yet the GPL imposes requirements for me and we consider it free software.

You are still free to train on the licensed work, BUT you must meet the requirements (just like the GPL), which would include making the model open source/weight.


Running the program and analyzing the source code are two different things...?


In the context of Free Software, yes. Freedom one is about the right to study a program.


But training an AI on a text is not running it.


And distributing an AI model trained on that text is neither distributing the work nor a modification of the work, so the GPL (or other) license terms don't apply. As it stands, the courts have found training an AI model to be a sufficiently transformative action and fair use which means the resulting output of that training is not a "copy" for the terms of copyright law.


> And distributing an AI model trained on that text is neither distributing the work nor a modification of the work, so the GPL (or other) license terms don't apply.

If I print an harry potter book in red ink then I won't have any copyright issues?

I don't think changing how the information is stored removes copyright.


If it is sufficiently transformative yes it does. That’s why “information” per se is not eligible for copyright, no matter what the NFL wants you to think. No printing the entire text of a Harry Potter book in red ink is not likely to be viewed as sufficiently transformative. But if you take the entirety of that book and publish a list of every word and the frequency, it’s extremely unlikely to be found a violation of copyright. If you publish a count of every word with the frequency weighted by what word came before it, you’re also very likely to not be found to have violated copyright. If you distribute the MD5 sum of the file that is a Harry Potter book you’re also not likely to be found to have violated copyright. All of these are “changing how the information is stored”.


Model weights, source, and output.


It does not sound as such if you read the content of the post. It's hardly a misconception to suggest that gay men do not generally fall in love with women.


> It does not sound as such if you read the content of the post. It's hardly a misconception to suggest that gay men do not generally fall in love with women.

Aside from the fact that this premise is incorrect, it's also inapplicable, because, as far as the essay mentions, the father never said he was gay.


How do you know the father never said he was gay? He may well have said that to the man he enjoyed dating as opposed to the wife whom he clearly didn't like very much.


> How do you know the father never said he was gay?

I don't, which is why I didn't say that. I said:

> as far as the essay mentions, the father never said he was gay.


The essay mentions the father being gay, reasonable to assume he said it. Unless you think he was bisexual, but I'm willing to bet you don't actually think that and this is just you being silly and you do actually think he's gay.


Gross.


Hmm, idk man, you shouldn't say such things.

The author has suffered enough and you call xir that on top ... be more considerate of xir situation.


Personally, I learned Web Assembly by reading through the spec. Can't recommend it more. It's extremely well written.


I agree, it really is quite approachable.


Whatever higher-minded cause a company might claim, the real reason is profit. A model which appears to advocate a view will not be tolerable to half the population, even if said view is objectively correct. Best to create an even-handed model which is broadly agreeable than one which critiques the user honestly.


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

Search: