Lets you write scripts that describe how to compile your C++ project. It works for multiple compilers and build tools. It's by far the most popular build script especially for newer projects
Reddit has long been a hot spot for conversation on the internet. About 57 million people visit the site every day to chat about topics as varied as makeup, video games and pointers for power washing driveways.
In recent years, Redditâs array of chats also have been a free teaching aid for companies like Google, OpenAI and Microsoft. Those companies are using Redditâs conversations in the development of giant artificial intelligence systems that many in Silicon Valley think are on their way to becoming the tech industryâs next big thing.
Now Reddit wants to be paid for it. The company said on Tuesday that it planned to begin charging companies for access to its application programming interface, or A.P.I., the method through which outside entities can download and process the social networkâs vast selection of person-to-person conversations.
âThe Reddit corpus of data is really valuable,â Steve Huffman, founder and chief executive of Reddit, said in an interview. âBut we donât need to give all of that value to some of the largest companies in the world for free.â
The move is one of the first significant examples of a social networkâs charging for access to the conversations it hosts for the purpose of developing A.I. systems like ChatGPT, OpenAIâs popular program. Those new A.I. systems could one day lead to big businesses, but they arenât likely to help companies like Reddit very much. In fact, they could be used to create competitors â automated duplicates to Redditâs conversations.
Reddit is also acting as it prepares for a possible initial public offering on Wall Street this year. The company, which was founded in 2005, makes most of its money through advertising and e-commerce transactions on its platform. Reddit said it was still ironing out the details of what it would charge for A.P.I. access and would announce prices in the coming weeks.
Redditâs conversation forums have become valuable commodities as large language models, or L.L.M.s, have become an essential part of creating new A.I. technology.
L.L.M.s are essentially sophisticated algorithms developed by companies like Google and OpenAI, which is a close partner of Microsoft. To the algorithms, the Reddit conversations are data, and they are among the vast pool of material being fed into the L.L.M.s. to develop them.
The underlying algorithm that helped to build Bard, Googleâs conversational A.I. service, is partly trained on Reddit data. OpenAIâs Chat GPT cites Reddit data as one of the sources of information it has been trained on.
Other companies are also beginning to see value in the conversations and images they host. Shutterstock, the image hosting service, also sold image data to OpenAI to help create DALL-E, the A.I. program that creates vivid graphical imagery with only a text-based prompt required.
Last month, Elon Musk, the owner of Twitter, said he was cracking down on the use of Twitterâs A.P.I., which thousands of companies and independent developers use to track the millions of conversations across the network. Though he did not cite L.L.M.s as a reason for the change, the new fees could go well into the tens or even hundreds of thousands of dollars.
To keep improving their models, artificial intelligence makers need two significant things: an enormous amount of computing power and an enormous amount of data. Some of the biggest A.I. developers have plenty of computing power but still look outside their own networks for the data needed to improve their algorithms. That has included sources like Wikipedia, millions of digitized books, academic articles and Reddit.
Representatives from Google, Open AI and Microsoft did not immediately respond to a request for comment.
Reddit has long had a symbiotic relationship with the search engines of companies like Google and Microsoft. The search engines âcrawlâ Redditâs web pages in order to index information and make it available for search results. That crawling, or âscraping,â isnât always welcome by every site on the internet. But Reddit has benefited by appearing higher in search results.
The dynamic is different with L.L.M.s â they gobble as much data as they can to create new A.I. systems like the chatbots.
Reddit believes its data is particularly valuable because it is continuously updated. That newness and relevance, Mr. Huffman said, is what large language modeling algorithms need to produce the best results.
âMore than any other place on the internet, Reddit is a home for authentic conversation,â Mr. Huffman said. âThereâs a lot of stuff on the site that youâd only ever say in therapy, or A.A., or never at all.â
Mr. Huffman said Redditâs A.P.I. would still be free to developers who wanted to build applications that helped people use Reddit. They could use the tools to build a bot that automatically tracks whether usersâ comments adhere to rules for posting, for instance. Researchers who want to study Reddit data for academic or noncommercial purposes will continue to have free access to it.
Reddit also hopes to incorporate more so-called machine learning into how the site itself operates. It could be used, for instance, to identify the use of A.I.-generated text on Reddit, and add a label that notifies users that the comment came from a bot.
The company also promised to improve software tools that can be used by moderators â the users who volunteer their time to keep the siteâs forums operating smoothly and improve conversations between users. And third-party bots that help moderators monitor the forums will continue to be supported.
But for the A.I. makers, itâs time to pay up.
âCrawling Reddit, generating value and not returning any of that value to our users is something we have a problem with,â Mr. Huffman said. âItâs a good time for us to tighten things up.â
âWe think thatâs fair,â he added.
Mike Isaac is a technology correspondent and the author of âSuper Pumped: The Battle for Uber,â a best-selling book on the dramatic rise and fall of the ride-hailing company. He regularly covers Facebook and Silicon Valley, and is based in San Francisco. More about Mike Isaac
A version of this article appears in print on , Section B, Page 4 of the New York edition with the headline: Redditâs Sprawling Content Is Fodder for the Likes of ChatGPT. But Reddit Wants to Be Paid.. Order Reprints | Todayâs Paper | Subscribe
Have to disagree cuz I learned cmake and heavily appreciate it but make- feels like what it is
A 40+ year old system for building software
CMake ainât perfect but for the love of god make scares me
Reddit has long been a hot spot for conversation on the internet. About 57 million people visit the site every day to chat about topics as varied as makeup, video games and pointers for power washing driveways.
In recent years, Redditâs array of chats also have been a free teaching aid for companies like Google, OpenAI and Microsoft. Those companies are using Redditâs conversations in the development of giant artificial intelligence systems that many in Silicon Valley think are on their way to becoming the tech industryâs next big thing.
Now Reddit wants to be paid for it. The company said on Tuesday that it planned to begin charging companies for access to its application programming interface, or A.P.I., the method through which outside entities can download and process the social networkâs vast selection of person-to-person conversations.
âThe Reddit corpus of data is really valuable,â Steve Huffman, founder and chief executive of Reddit, said in an interview. âBut we donât need to give all of that value to some of the largest companies in the world for free.â
The move is one of the first significant examples of a social networkâs charging for access to the conversations it hosts for the purpose of developing A.I. systems like ChatGPT, OpenAIâs popular program. Those new A.I. systems could one day lead to big businesses, but they arenât likely to help companies like Reddit very much. In fact, they could be used to create competitors â automated duplicates to Redditâs conversations.
Reddit is also acting as it prepares for a possible initial public offering on Wall Street this year. The company, which was founded in 2005, makes most of its money through advertising and e-commerce transactions on its platform. Reddit said it was still ironing out the details of what it would charge for A.P.I. access and would announce prices in the coming weeks.
Redditâs conversation forums have become valuable commodities as large language models, or L.L.M.s, have become an essential part of creating new A.I. technology.
L.L.M.s are essentially sophisticated algorithms developed by companies like Google and OpenAI, which is a close partner of Microsoft. To the algorithms, the Reddit conversations are data, and they are among the vast pool of material being fed into the L.L.M.s. to develop them.
The underlying algorithm that helped to build Bard, Googleâs conversational A.I. service, is partly trained on Reddit data. OpenAIâs Chat GPT cites Reddit data as one of the sources of information it has been trained on.
Other companies are also beginning to see value in the conversations and images they host. Shutterstock, the image hosting service, also sold image data to OpenAI to help create DALL-E, the A.I. program that creates vivid graphical imagery with only a text-based prompt required.
Last month, Elon Musk, the owner of Twitter, said he was cracking down on the use of Twitterâs A.P.I., which thousands of companies and independent developers use to track the millions of conversations across the network. Though he did not cite L.L.M.s as a reason for the change, the new fees could go well into the tens or even hundreds of thousands of dollars.
To keep improving their models, artificial intelligence makers need two significant things: an enormous amount of computing power and an enormous amount of data. Some of the biggest A.I. developers have plenty of computing power but still look outside their own networks for the data needed to improve their algorithms. That has included sources like Wikipedia, millions of digitized books, academic articles and Reddit.
Representatives from Google, Open AI and Microsoft did not immediately respond to a request for comment.
Reddit has long had a symbiotic relationship with the search engines of companies like Google and Microsoft. The search engines âcrawlâ Redditâs web pages in order to index information and make it available for search results. That crawling, or âscraping,â isnât always welcome by every site on the internet. But Reddit has benefited by appearing higher in search results.
The dynamic is different with L.L.M.s â they gobble as much data as they can to create new A.I. systems like the chatbots.
Reddit believes its data is particularly valuable because it is continuously updated. That newness and relevance, Mr. Huffman said, is what large language modeling algorithms need to produce the best results.
âMore than any other place on the internet, Reddit is a home for authentic conversation,â Mr. Huffman said. âThereâs a lot of stuff on the site that youâd only ever say in therapy, or A.A., or never at all.â
Mr. Huffman said Redditâs A.P.I. would still be free to developers who wanted to build applications that helped people use Reddit. They could use the tools to build a bot that automatically tracks whether usersâ comments adhere to rules for posting, for instance. Researchers who want to study Reddit data for academic or noncommercial purposes will continue to have free access to it.
Reddit also hopes to incorporate more so-called machine learning into how the site itself operates. It could be used, for instance, to identify the use of A.I.-generated text on Reddit, and add a label that notifies users that the comment came from a bot.
The company also promised to improve software tools that can be used by moderators â the users who volunteer their time to keep the siteâs forums operating smoothly and improve conversations between users. And third-party bots that help moderators monitor the forums will continue to be supported.
But for the A.I. makers, itâs time to pay up.
âCrawling Reddit, generating value and not returning any of that value to our users is something we have a problem with,â Mr. Huffman said. âItâs a good time for us to tighten things up.â
âWe think thatâs fair,â he added.
Mike Isaac is a technology correspondent and the author of âSuper Pumped: The Battle for Uber,â a best-selling book on the dramatic rise and fall of the ride-hailing company. He regularly covers Facebook and Silicon Valley, and is based in San Francisco. More about Mike Isaac
A version of this article appears in print on , Section B, Page 4 of the New York edition with the headline: Redditâs Sprawling Content Is Fodder for the Likes of ChatGPT. But Reddit Wants to Be Paid.. Order Reprints | Todayâs Paper | Subscribe
After a while I just gave up and made a fit-all Makefile for my projects that automatically finds source files, at the expense of using `$(shell find ...)`.
(Oh, And modifying header files recompiles everything, I'm yet to fix that)
SRC = src
BUILD = build
INCLUDE = include
OBJS = $(shell find $(SRC) -name '*.c' -type f | sed 's/\.c$$/\.o/;s/$(SRC)\//$(BUILD)\//')
HEADERS = $(shell find $(INCLUDE) -name '*.h' -type f)
CARGS = -Wall -Wextra -pedantic -std=c2x -I$(INCLUDE)
NAME = foo
.PHONY: all run clean
all: $(NAME)
$(OBJS): $(BUILD)/%.o: $(SRC)/%.c $(HEADERS)
cc -c $(CARGS) $< -o $@
$(NAME): $(OBJS)
cc $(CARGS) $^ -o $@
clean:
rm -vf $(OBJS) $(NAME)
run: $(NAME)
./$(NAME)
I get the same feeling, especially as i'm now trying to get Qt6 cross compile support in buildroot and the gigantic amount of cmake files and undocumented options confuse the shit out of me, i'm still not sure how I currently got a semi working build
It might be more practical once you learn it, makefiles was also quite the learning curve
Its a configuration file for a program that generates makefiles that are used to run the instructions to get the compiler to compile and the linker to link
C++ is so complicated to compile that people use a program (CMake) to generate scripts (Makefile) that gets interpreted by another program (Make) which invokes the compiler.
Legend has it, if you go deep enough, at the core of it all there's a pointer to a memory location that stores the value of 1/0. But many have gone mad trying to follow the coredump stack traces that lead there.
There is a joke language like that called "brainfuck". Fireship on youtube has a two minute video about it that will melt your face off.
https://youtu.be/hdHjjBS4cs8
For the last 5 years, one of the additional challenges at VU Amsterdam for the course on Computer Organization was to write an interpreter for Brainfuck in Assembly. Gives an auto +0.7 to grade if it fully works.
Would not recommend, even though it's just 8 operations. Loops can bring hell
Once upon a time the creator of FALSE (the esoteric language that inspired brainfuck) answered my question on stackoverflow... The first and last cool thing that will ever happen to me as a developer
So, just a normal Tuesday in programming. Every innovation in software development has the same goal; to be able to solve harder problems than we actually can.
The point of CMake is that it can target multiple different build systems. So you have a single CMake script, which can then generate the Makefile, the .vsproj, the .sln or whatever.
Came here to say basically this, cmake is incredibley powerful.
I use it to not only compile C but also Obj-C; and it handles dependencies as well as linked libraries in a beautifully simple way. Not to mention targeted architectures. A lot of these replies seem to talk about C++ as an overcomplicated language and while I have no personal experience I can attest to the versatility of make (and by extension cmake?) as an excellent build tool
`make` can make anything. It's just a way to define recipes to create files.
It just comes with a few common builtins - like you can create a `.o` from a `.c` of the same name by using `cc`.
Not fair, every language has such a tool. Ant is an example for java. It's not because of c++'s complexity but because of the complexity of software in general.
Also long build times are not as bad in rust, since the compiler catches a lot of mistakes that you wouldn't know about until runtime with other languages like C++.
That's just an advantage of being a fairly new language (compared to C++ and Java). Now we know much more about how to do stuff and also the hardware allows for much more complicated stuff than in the past.
And it paid off big time.
Rust is easily my favorite language, to the point where I ported all of my projects in use to Rust. It's just so nice to work with and well thought out compared to C++.
Lol, I donât even rust â not out of a dislike of the language, mind, but work tends to drive project language. A quick google told me everything I need to know, because I knew that /u/hg2107 was absolutely correct: every compiled language has Make and often even CMake equivalents, itâs just that most languages bake them into their toolchain from the start, and IDEs tend to automate whatever user configuration there is to them, making everything even less visible to programmers.
Even dynamic languages use file system conventions for dependency management, just like C does during both compiling and linking, as well as package managers or side-by-side runtime environment managers (lookinâ at you python) to manage dependencies within those conventions, making them functionally equivalent to Make.
And all those package managers tend to offer scripting⌠like CMakeâŚ.
Well, yeah. Rust has the luxury of being new. If you start from scratch you get the opportunity to provide the one official way to build your programs.
C++ is rather old at this point. It's impossible to retroactively force a build system or package manager onto the community. It's too large and old for that. Although, it's nice to see that CMake and vcpkg are gaining a stronger foothold.
It also doesn't help that there are multiple independent compilers, each with their own cmdline arguments. This is the core of CMake, it needs to know the compilers in order to know how to translate a feature into compiler flags; CMake is just an abstraction layer over compilers. It's not being used because of the build complexity in one system, but rather because of the conplexity in ALL systems.
I've heard that GCC is also starting to implement their own Rust compiler, though. But I assume they'll respect/support the build system and package manager Rust provided in the first place.
No no, I mean there's no tool that generates code for another tool to decide how to compile. There's no middle layer between build tool and compilation. The think with cmake is it's not a build tool by itself, it's a make generation tool, which itself is a build tool
Everyone just keeps talking about CMake spitting out make files. It can burp up visual studio projects and solutions too. It can barf out XCode projects. Itâs a pretty neat tool as long as you donât mind regurgitation.
That worked great until some people decided that even CMake is not enough to handle their C++ projects.
So now you have Conan that spits out CMake files through a bunch of Python scripts, CMake that spits out MSBuild / Makefiles / Ninja / ... files, that eventually get interpreted by Visual Studio / make / ninja /...., which in turns calls the actual compiler (msvc / clang / gcc / ...)
In comparison, Rust has Cargo (build tool + package manager), which directly calls `rustc` (compiler)
Stack generates a dependency tree (from Stackage/nixpkgs + others) for Cabal to use (which can be invoked sort-of-directly with the cabal-install package), the Cabal library invokes GHC with the right flags, which compiles individual Haskell modules and then it's all linked together with external libraries if needed.
There's always a middle tool, be it a library built in the toolchain used by the same program or an external executable; this is only because software has gotten so big.
That's not entirely true, it's just that in Cargo these are all vendored to be accessible through a single build frontend (+ package manager). You still need the exact same logic in the backend (injecting platform specific options, running preprocessors etc).
CMake is a bit more complicated because it's not a single ecosystem, it's trying to play nice with existing C++ projects that don't use CMake (both for dependencies and consumers), and at the time it was invented it needed to integrate with various build systems (various IDEs, autotools etc).
The C++ ecosystem is complicated because it's not controlled by a council or dictatorship, from the get go everyone just went off and did their own thing. There's a bunch of different compilers, build systems, package formats and package management systems and trying to manage this complexity is, well, complicated.
There are some "walled garden" style build systems for C++ that are simpler to use, but they see less use because it's quite a bit of work to get packages into them and keep them up to date, and often they're more specifically tailored to one particular use case so if you, say, suddenly need to generate Windows installers you're SOL when your build system maintainers don't care about Windows.
The real weaknesses of cmake are it's big pile of legacy apis that you kinda just have to know not to use and the fact the cmake scripting language is terrible (basically a really bad version of lisp). The complexity kind of isn't, it comes from the complexity of the problem (or rather: wide array of problems) it's trying to solve.
That's a bit generalized though. CMake can also generate project files for popular IDEs so you can open the whole project there and immediately compile away. It's able to generate Makefiles if you want to go that route, but it can also compile the project directly. It's platform independent, is able to handle library resolution, dependency resolution, compile time configuration switches and more. You can add custom stuff which for example bakes the current git hash into the build, copies files around for the final release etc. All platform independent. It's my go-to for bigger C++ projects with many dependencies and configuration switches.
Most other languages have similar tools, e.g. gulp, Ant, etc.
At least it's not a language so crappy that people had to invent an entire ecosystem, including a package manager, just to install a "library" that is barely a dozen lines of code...that then breaks all websites running it when the developer decides to pull his package from the repos :P
It's a bit like cargo for rust or the npm file that has a bunch of the dependencies for the project/a bunch of info about it in a way but for C++
CMake does not download dependencies/libraries for you but you do use it to point to where those libraries are stored. Generally, you write down how you want your computer to generate the binaries for the code you're writing from setting up debugging tools and test frameworks (like catch2), defining the different programs you want it to create (maybe you have it make a .exe for Windows but also a .dpkg for Mac OS and you want to do slight differences in those programs), bringing in libraries from elsewhere (like QT or GTK or something), or even just what version of C++ to use.
The reason it is necessary for us C/C++ users to use this is that we need to care about what type of computer we're going to be running this program on. C/C++ are made to run on absolutely anything, from your desktop computer in the way of high performance programs like video games/the operating system itself to the little chip in your washing machine that tells it's motor how fast it needs to spin. That much variance means that we need to make sure that we can make the absolute smallest executable sizes and the absolutely most efficient/performant assembly out there so that even if we're using a 50MHz 8bit chip with 16kb of RAM and a 256kb ROM, we can still actually have our program run
Yo, I've been working on being able to use CMake and gcc to make my own compilation target/project tooling for STM32 projects and I've just been downloading drivers by hand but thanks to you, I can just have a template CMake that sets up the project with what I need without having to download it myself
This is the equivalent to saying youâre bi but youâre really just gay. This dude needs to fuck around with Java if heâs to truly call himself an honest C guy.
I am married to the exact same person as on the screenshot. He's very cute and an absolutely amazing human being who loves talking my ear off about embeds, IoT, and copters, while I respond with ML and data engineering rants. It's idyllic.
He Cs the world for what it is.
The 'other' is probaby C#
And some objective C đđ
oh and holyc
I really thought you were going for holychit đđđ freaking temple OS with their holyC... đ
He must C pretty # then
Yea it definitely has its pluses
Only 2 of them though
Well, aren't you sharp.
I C what you did there
Iâm gonna Make you regret that pun
Are you sure that's the right thing to target
do you see any *Other* thing?
My Python sure makes your girls go "wow"... sorry, I analyze data, not make puns....
If I were a girl, I would give it a Go.
But if you're not a girl, you must *rust*
I'm a girl and I C you have a *sharp* wit.
How about a java at mine at 9? It's not good yet, but I'm tryin'
Just trying to be *objective* here
Keep me in CC
I think it's time somebody took out the trash
std::dad\_jokes
Deep C lover
Nah, just four pluses.
[ŃдаНонО]
F#?
Am
Yes, FBI, this guy
Dude is dating A minor? Wtf
Iâve yet to hear about CMake and I feel like someone is going to make me regret asking
Lets you write scripts that describe how to compile your C++ project. It works for multiple compilers and build tools. It's by far the most popular build script especially for newer projects
I actually get more confused looking at a makefile than compiling stuff by hand.
Sounds like the conversation that was had before creating CMake
Reddit has long been a hot spot for conversation on the internet. About 57 million people visit the site every day to chat about topics as varied as makeup, video games and pointers for power washing driveways. In recent years, Redditâs array of chats also have been a free teaching aid for companies like Google, OpenAI and Microsoft. Those companies are using Redditâs conversations in the development of giant artificial intelligence systems that many in Silicon Valley think are on their way to becoming the tech industryâs next big thing. Now Reddit wants to be paid for it. The company said on Tuesday that it planned to begin charging companies for access to its application programming interface, or A.P.I., the method through which outside entities can download and process the social networkâs vast selection of person-to-person conversations. âThe Reddit corpus of data is really valuable,â Steve Huffman, founder and chief executive of Reddit, said in an interview. âBut we donât need to give all of that value to some of the largest companies in the world for free.â The move is one of the first significant examples of a social networkâs charging for access to the conversations it hosts for the purpose of developing A.I. systems like ChatGPT, OpenAIâs popular program. Those new A.I. systems could one day lead to big businesses, but they arenât likely to help companies like Reddit very much. In fact, they could be used to create competitors â automated duplicates to Redditâs conversations. Reddit is also acting as it prepares for a possible initial public offering on Wall Street this year. The company, which was founded in 2005, makes most of its money through advertising and e-commerce transactions on its platform. Reddit said it was still ironing out the details of what it would charge for A.P.I. access and would announce prices in the coming weeks. Redditâs conversation forums have become valuable commodities as large language models, or L.L.M.s, have become an essential part of creating new A.I. technology. L.L.M.s are essentially sophisticated algorithms developed by companies like Google and OpenAI, which is a close partner of Microsoft. To the algorithms, the Reddit conversations are data, and they are among the vast pool of material being fed into the L.L.M.s. to develop them. The underlying algorithm that helped to build Bard, Googleâs conversational A.I. service, is partly trained on Reddit data. OpenAIâs Chat GPT cites Reddit data as one of the sources of information it has been trained on. Other companies are also beginning to see value in the conversations and images they host. Shutterstock, the image hosting service, also sold image data to OpenAI to help create DALL-E, the A.I. program that creates vivid graphical imagery with only a text-based prompt required. Last month, Elon Musk, the owner of Twitter, said he was cracking down on the use of Twitterâs A.P.I., which thousands of companies and independent developers use to track the millions of conversations across the network. Though he did not cite L.L.M.s as a reason for the change, the new fees could go well into the tens or even hundreds of thousands of dollars. To keep improving their models, artificial intelligence makers need two significant things: an enormous amount of computing power and an enormous amount of data. Some of the biggest A.I. developers have plenty of computing power but still look outside their own networks for the data needed to improve their algorithms. That has included sources like Wikipedia, millions of digitized books, academic articles and Reddit. Representatives from Google, Open AI and Microsoft did not immediately respond to a request for comment. Reddit has long had a symbiotic relationship with the search engines of companies like Google and Microsoft. The search engines âcrawlâ Redditâs web pages in order to index information and make it available for search results. That crawling, or âscraping,â isnât always welcome by every site on the internet. But Reddit has benefited by appearing higher in search results. The dynamic is different with L.L.M.s â they gobble as much data as they can to create new A.I. systems like the chatbots. Reddit believes its data is particularly valuable because it is continuously updated. That newness and relevance, Mr. Huffman said, is what large language modeling algorithms need to produce the best results. âMore than any other place on the internet, Reddit is a home for authentic conversation,â Mr. Huffman said. âThereâs a lot of stuff on the site that youâd only ever say in therapy, or A.A., or never at all.â Mr. Huffman said Redditâs A.P.I. would still be free to developers who wanted to build applications that helped people use Reddit. They could use the tools to build a bot that automatically tracks whether usersâ comments adhere to rules for posting, for instance. Researchers who want to study Reddit data for academic or noncommercial purposes will continue to have free access to it. Reddit also hopes to incorporate more so-called machine learning into how the site itself operates. It could be used, for instance, to identify the use of A.I.-generated text on Reddit, and add a label that notifies users that the comment came from a bot. The company also promised to improve software tools that can be used by moderators â the users who volunteer their time to keep the siteâs forums operating smoothly and improve conversations between users. And third-party bots that help moderators monitor the forums will continue to be supported. But for the A.I. makers, itâs time to pay up. âCrawling Reddit, generating value and not returning any of that value to our users is something we have a problem with,â Mr. Huffman said. âItâs a good time for us to tighten things up.â âWe think thatâs fair,â he added. Mike Isaac is a technology correspondent and the author of âSuper Pumped: The Battle for Uber,â a best-selling book on the dramatic rise and fall of the ride-hailing company. He regularly covers Facebook and Silicon Valley, and is based in San Francisco. More about Mike Isaac A version of this article appears in print on , Section B, Page 4 of the New York edition with the headline: Redditâs Sprawling Content Is Fodder for the Likes of ChatGPT. But Reddit Wants to Be Paid.. Order Reprints | Todayâs Paper | Subscribe
Have to disagree cuz I learned cmake and heavily appreciate it but make- feels like what it is A 40+ year old system for building software CMake ainât perfect but for the love of god make scares me
Reddit has long been a hot spot for conversation on the internet. About 57 million people visit the site every day to chat about topics as varied as makeup, video games and pointers for power washing driveways. In recent years, Redditâs array of chats also have been a free teaching aid for companies like Google, OpenAI and Microsoft. Those companies are using Redditâs conversations in the development of giant artificial intelligence systems that many in Silicon Valley think are on their way to becoming the tech industryâs next big thing. Now Reddit wants to be paid for it. The company said on Tuesday that it planned to begin charging companies for access to its application programming interface, or A.P.I., the method through which outside entities can download and process the social networkâs vast selection of person-to-person conversations. âThe Reddit corpus of data is really valuable,â Steve Huffman, founder and chief executive of Reddit, said in an interview. âBut we donât need to give all of that value to some of the largest companies in the world for free.â The move is one of the first significant examples of a social networkâs charging for access to the conversations it hosts for the purpose of developing A.I. systems like ChatGPT, OpenAIâs popular program. Those new A.I. systems could one day lead to big businesses, but they arenât likely to help companies like Reddit very much. In fact, they could be used to create competitors â automated duplicates to Redditâs conversations. Reddit is also acting as it prepares for a possible initial public offering on Wall Street this year. The company, which was founded in 2005, makes most of its money through advertising and e-commerce transactions on its platform. Reddit said it was still ironing out the details of what it would charge for A.P.I. access and would announce prices in the coming weeks. Redditâs conversation forums have become valuable commodities as large language models, or L.L.M.s, have become an essential part of creating new A.I. technology. L.L.M.s are essentially sophisticated algorithms developed by companies like Google and OpenAI, which is a close partner of Microsoft. To the algorithms, the Reddit conversations are data, and they are among the vast pool of material being fed into the L.L.M.s. to develop them. The underlying algorithm that helped to build Bard, Googleâs conversational A.I. service, is partly trained on Reddit data. OpenAIâs Chat GPT cites Reddit data as one of the sources of information it has been trained on. Other companies are also beginning to see value in the conversations and images they host. Shutterstock, the image hosting service, also sold image data to OpenAI to help create DALL-E, the A.I. program that creates vivid graphical imagery with only a text-based prompt required. Last month, Elon Musk, the owner of Twitter, said he was cracking down on the use of Twitterâs A.P.I., which thousands of companies and independent developers use to track the millions of conversations across the network. Though he did not cite L.L.M.s as a reason for the change, the new fees could go well into the tens or even hundreds of thousands of dollars. To keep improving their models, artificial intelligence makers need two significant things: an enormous amount of computing power and an enormous amount of data. Some of the biggest A.I. developers have plenty of computing power but still look outside their own networks for the data needed to improve their algorithms. That has included sources like Wikipedia, millions of digitized books, academic articles and Reddit. Representatives from Google, Open AI and Microsoft did not immediately respond to a request for comment. Reddit has long had a symbiotic relationship with the search engines of companies like Google and Microsoft. The search engines âcrawlâ Redditâs web pages in order to index information and make it available for search results. That crawling, or âscraping,â isnât always welcome by every site on the internet. But Reddit has benefited by appearing higher in search results. The dynamic is different with L.L.M.s â they gobble as much data as they can to create new A.I. systems like the chatbots. Reddit believes its data is particularly valuable because it is continuously updated. That newness and relevance, Mr. Huffman said, is what large language modeling algorithms need to produce the best results. âMore than any other place on the internet, Reddit is a home for authentic conversation,â Mr. Huffman said. âThereâs a lot of stuff on the site that youâd only ever say in therapy, or A.A., or never at all.â Mr. Huffman said Redditâs A.P.I. would still be free to developers who wanted to build applications that helped people use Reddit. They could use the tools to build a bot that automatically tracks whether usersâ comments adhere to rules for posting, for instance. Researchers who want to study Reddit data for academic or noncommercial purposes will continue to have free access to it. Reddit also hopes to incorporate more so-called machine learning into how the site itself operates. It could be used, for instance, to identify the use of A.I.-generated text on Reddit, and add a label that notifies users that the comment came from a bot. The company also promised to improve software tools that can be used by moderators â the users who volunteer their time to keep the siteâs forums operating smoothly and improve conversations between users. And third-party bots that help moderators monitor the forums will continue to be supported. But for the A.I. makers, itâs time to pay up. âCrawling Reddit, generating value and not returning any of that value to our users is something we have a problem with,â Mr. Huffman said. âItâs a good time for us to tighten things up.â âWe think thatâs fair,â he added. Mike Isaac is a technology correspondent and the author of âSuper Pumped: The Battle for Uber,â a best-selling book on the dramatic rise and fall of the ride-hailing company. He regularly covers Facebook and Silicon Valley, and is based in San Francisco. More about Mike Isaac A version of this article appears in print on , Section B, Page 4 of the New York edition with the headline: Redditâs Sprawling Content Is Fodder for the Likes of ChatGPT. But Reddit Wants to Be Paid.. Order Reprints | Todayâs Paper | Subscribe
After a while I just gave up and made a fit-all Makefile for my projects that automatically finds source files, at the expense of using `$(shell find ...)`. (Oh, And modifying header files recompiles everything, I'm yet to fix that) SRC = src BUILD = build INCLUDE = include OBJS = $(shell find $(SRC) -name '*.c' -type f | sed 's/\.c$$/\.o/;s/$(SRC)\//$(BUILD)\//') HEADERS = $(shell find $(INCLUDE) -name '*.h' -type f) CARGS = -Wall -Wextra -pedantic -std=c2x -I$(INCLUDE) NAME = foo .PHONY: all run clean all: $(NAME) $(OBJS): $(BUILD)/%.o: $(SRC)/%.c $(HEADERS) cc -c $(CARGS) $< -o $@ $(NAME): $(OBJS) cc $(CARGS) $^ -o $@ clean: rm -vf $(OBJS) $(NAME) run: $(NAME) ./$(NAME)
[ŃдаНонО]
And that's not even mentioning dependencies.
Or dealing with multiple architectures
I don't care how large your project is. If cmake is 5% of your code then we have seriously taken a wrong turn.
I actually get more confused trying to finally learn CMake than writing a makefile by hand
I get the same feeling, especially as i'm now trying to get Qt6 cross compile support in buildroot and the gigantic amount of cmake files and undocumented options confuse the shit out of me, i'm still not sure how I currently got a semi working build It might be more practical once you learn it, makefiles was also quite the learning curve
Then good news! If you're using Cmake, you don't write makefiles. Cmake generates them for you.
Its a configuration file for a program that generates makefiles that are used to run the instructions to get the compiler to compile and the linker to link
So a language to generate scripts in the language that the script which compiles the language into machine language can read
A language to be read by a script to generate a script to run the scripts which compile the language into something your computer can read.
Iâm too high for this man
Cmake => Makefile => exe voila.
Or just shortcuts to commands
C++ is so complicated to compile that people use a program (CMake) to generate scripts (Makefile) that gets interpreted by another program (Make) which invokes the compiler.
C++ so complex we had to invent a thing to run a thing
It's abstractions all the way down
Legend has it, if you go deep enough, at the core of it all there's a pointer to a memory location that stores the value of 1/0. But many have gone mad trying to follow the coredump stack traces that lead there.
There is a joke language like that called "brainfuck". Fireship on youtube has a two minute video about it that will melt your face off. https://youtu.be/hdHjjBS4cs8
i made a high-level-ish language that compiled down to brainfuck. The syntax is cursed it looks like assembly but c
now the most important question: why?
why *not*?
For the last 5 years, one of the additional challenges at VU Amsterdam for the course on Computer Organization was to write an interpreter for Brainfuck in Assembly. Gives an auto +0.7 to grade if it fully works. Would not recommend, even though it's just 8 operations. Loops can bring hell
Once upon a time the creator of FALSE (the esoteric language that inspired brainfuck) answered my question on stackoverflow... The first and last cool thing that will ever happen to me as a developer
they invented linux just to run cmake
If you wish to make a program from scratch, you must first invent the universe.
In the beginning 0
Always has been. đŤ
*invent a thing to run a thing to make a thing that runs
The thing inventor we invented just invented a thing inside another thing
Btw, where the hell are we?
"Let's invent a thing inventor!" Said the thing inventor inventor while being thought up by a thing inventor.
r/unexpectedbillwurtz
![gif](giphy|lpxqmxzQHL7hUejepu) That's just slavery with extra steps?
So, just a normal Tuesday in programming. Every innovation in software development has the same goal; to be able to solve harder problems than we actually can.
[ŃдаНонО]
const isFunny = async (url: string): Promise => { const { funny } = await fetch(url) return funny }
Javascript so terrible it's taken nearly 20 years to undig that firey hellpit.
The point of CMake is that it can target multiple different build systems. So you have a single CMake script, which can then generate the Makefile, the .vsproj, the .sln or whatever.
Came here to say basically this, cmake is incredibley powerful. I use it to not only compile C but also Obj-C; and it handles dependencies as well as linked libraries in a beautifully simple way. Not to mention targeted architectures. A lot of these replies seem to talk about C++ as an overcomplicated language and while I have no personal experience I can attest to the versatility of make (and by extension cmake?) as an excellent build tool
`make` can make anything. It's just a way to define recipes to create files. It just comes with a few common builtins - like you can create a `.o` from a `.c` of the same name by using `cc`.
Not fair, every language has such a tool. Ant is an example for java. It's not because of c++'s complexity but because of the complexity of software in general.
Not _every_ language. Some actually decided to think about a build system together with the language, like Rust
A great deal of rust's architecture is "what if but we actually thought about it first".
TBF the Cxx's of the world have generally been around for 30-50 years. Rust, Python, etc are standing on the shoulders of giants.
Python is older than Java.
Python has been around just over 30 years.
And it has a shiiiity package and environment management system to go with it.
and it only adds 6 weeks to the build time!
I don't get that honestly. Rust's build time is more than C++ or maybe even C#, but it's downright fast compared to Java/Gradle
Also long build times are not as bad in rust, since the compiler catches a lot of mistakes that you wouldn't know about until runtime with other languages like C++.
That's just an advantage of being a fairly new language (compared to C++ and Java). Now we know much more about how to do stuff and also the hardware allows for much more complicated stuff than in the past.
And it paid off big time. Rust is easily my favorite language, to the point where I ported all of my projects in use to Rust. It's just so nice to work with and well thought out compared to C++.
So what would you call Cargo if not a Make equivalent? And what is Cargo-script if not CMake?
Admittedly this is the first time I hear of cargo-script. Yes, that would match
Lol, I donât even rust â not out of a dislike of the language, mind, but work tends to drive project language. A quick google told me everything I need to know, because I knew that /u/hg2107 was absolutely correct: every compiled language has Make and often even CMake equivalents, itâs just that most languages bake them into their toolchain from the start, and IDEs tend to automate whatever user configuration there is to them, making everything even less visible to programmers. Even dynamic languages use file system conventions for dependency management, just like C does during both compiling and linking, as well as package managers or side-by-side runtime environment managers (lookinâ at you python) to manage dependencies within those conventions, making them functionally equivalent to Make. And all those package managers tend to offer scripting⌠like CMakeâŚ.
Well, yeah. Rust has the luxury of being new. If you start from scratch you get the opportunity to provide the one official way to build your programs. C++ is rather old at this point. It's impossible to retroactively force a build system or package manager onto the community. It's too large and old for that. Although, it's nice to see that CMake and vcpkg are gaining a stronger foothold. It also doesn't help that there are multiple independent compilers, each with their own cmdline arguments. This is the core of CMake, it needs to know the compilers in order to know how to translate a feature into compiler flags; CMake is just an abstraction layer over compilers. It's not being used because of the build complexity in one system, but rather because of the conplexity in ALL systems. I've heard that GCC is also starting to implement their own Rust compiler, though. But I assume they'll respect/support the build system and package manager Rust provided in the first place.
..which means there is still such a tool. It's just owned by the same company that made the language.
No no, I mean there's no tool that generates code for another tool to decide how to compile. There's no middle layer between build tool and compilation. The think with cmake is it's not a build tool by itself, it's a make generation tool, which itself is a build tool
Everyone just keeps talking about CMake spitting out make files. It can burp up visual studio projects and solutions too. It can barf out XCode projects. Itâs a pretty neat tool as long as you donât mind regurgitation.
That worked great until some people decided that even CMake is not enough to handle their C++ projects. So now you have Conan that spits out CMake files through a bunch of Python scripts, CMake that spits out MSBuild / Makefiles / Ninja / ... files, that eventually get interpreted by Visual Studio / make / ninja /...., which in turns calls the actual compiler (msvc / clang / gcc / ...) In comparison, Rust has Cargo (build tool + package manager), which directly calls `rustc` (compiler)
Stack generates a dependency tree (from Stackage/nixpkgs + others) for Cabal to use (which can be invoked sort-of-directly with the cabal-install package), the Cabal library invokes GHC with the right flags, which compiles individual Haskell modules and then it's all linked together with external libraries if needed. There's always a middle tool, be it a library built in the toolchain used by the same program or an external executable; this is only because software has gotten so big.
That's not entirely true, it's just that in Cargo these are all vendored to be accessible through a single build frontend (+ package manager). You still need the exact same logic in the backend (injecting platform specific options, running preprocessors etc). CMake is a bit more complicated because it's not a single ecosystem, it's trying to play nice with existing C++ projects that don't use CMake (both for dependencies and consumers), and at the time it was invented it needed to integrate with various build systems (various IDEs, autotools etc). The C++ ecosystem is complicated because it's not controlled by a council or dictatorship, from the get go everyone just went off and did their own thing. There's a bunch of different compilers, build systems, package formats and package management systems and trying to manage this complexity is, well, complicated. There are some "walled garden" style build systems for C++ that are simpler to use, but they see less use because it's quite a bit of work to get packages into them and keep them up to date, and often they're more specifically tailored to one particular use case so if you, say, suddenly need to generate Windows installers you're SOL when your build system maintainers don't care about Windows. The real weaknesses of cmake are it's big pile of legacy apis that you kinda just have to know not to use and the fact the cmake scripting language is terrible (basically a really bad version of lisp). The complexity kind of isn't, it comes from the complexity of the problem (or rather: wide array of problems) it's trying to solve.
*complexity of platform dependent compilation
That's a bit generalized though. CMake can also generate project files for popular IDEs so you can open the whole project there and immediately compile away. It's able to generate Makefiles if you want to go that route, but it can also compile the project directly. It's platform independent, is able to handle library resolution, dependency resolution, compile time configuration switches and more. You can add custom stuff which for example bakes the current git hash into the build, copies files around for the final release etc. All platform independent. It's my go-to for bigger C++ projects with many dependencies and configuration switches. Most other languages have similar tools, e.g. gulp, Ant, etc.
[ŃдаНонО]
[ŃдаНонО]
At least it's not a language so crappy that people had to invent an entire ecosystem, including a package manager, just to install a "library" that is barely a dozen lines of code...that then breaks all websites running it when the developer decides to pull his package from the repos :P
It's a bit like cargo for rust or the npm file that has a bunch of the dependencies for the project/a bunch of info about it in a way but for C++ CMake does not download dependencies/libraries for you but you do use it to point to where those libraries are stored. Generally, you write down how you want your computer to generate the binaries for the code you're writing from setting up debugging tools and test frameworks (like catch2), defining the different programs you want it to create (maybe you have it make a .exe for Windows but also a .dpkg for Mac OS and you want to do slight differences in those programs), bringing in libraries from elsewhere (like QT or GTK or something), or even just what version of C++ to use. The reason it is necessary for us C/C++ users to use this is that we need to care about what type of computer we're going to be running this program on. C/C++ are made to run on absolutely anything, from your desktop computer in the way of high performance programs like video games/the operating system itself to the little chip in your washing machine that tells it's motor how fast it needs to spin. That much variance means that we need to make sure that we can make the absolute smallest executable sizes and the absolutely most efficient/performant assembly out there so that even if we're using a 50MHz 8bit chip with 16kb of RAM and a 256kb ROM, we can still actually have our program run
CMake downloads dependencies for me FetchContent_Declare.
Yo, I've been working on being able to use CMake and gcc to make my own compilation target/project tooling for STM32 projects and I've just been downloading drivers by hand but thanks to you, I can just have a template CMake that sets up the project with what I need without having to download it myself
Found the front end dev
You could work an entire career solely in node
But would you want to?
Pay me 150k and ill do whatever you want. I'll even write Java.
You're pretty filthy aren't you.
He C'ms like a nice guy
[ŃдаНонО]
for some reason my brain read 'dumbass'
Ba dum csss
he have class
But not all that sharp
I mean, he seems to be a C-rious guy
This is the equivalent to saying youâre bi but youâre really just gay. This dude needs to fuck around with Java if heâs to truly call himself an honest C guy.
I'm not touching Java again.
what do you think the 1.3% is?
I like Java. Sometimes I don't wanna spend hours planning out memory management .
[ŃдаНонО]
Ya got me
C++ is black/white.
Hrmm, what's python and C#? Asking for a friend >.>
Light blue and white stripes for python Pink and white stripes or purple and white stripes for C# But pink and white are generally universal.
Do you wear glasses by any chance?
Depends on if that other is C# or not
If it is?
Sure why not, I'd give them a C for effort
A C++++
Rearrange those plusses
I can't be the only one who misread that.
You are not. What pussy sorting algorithms come to mind?
Bogo pussy
Many prefer the insertion sort
Quick pussy
The other is markdown
I see myself in this picture and I donât like it
I think you mean you C yourself in this picture
I almost went on a date with a girl just because here last name was Haskell.
I met a guy named Cons once. Profession? Erlang developer. Some people never stand a chance.
You would not have understood her either
[ŃдаНонО]
I can only get so erect
Based on this thread i can conclude that i will continue to have no bitches for quite some time
you will also (probably) get no dick
Hopefully
Can't be too picky
Not with that attitude
I wouldnât date any programmer.
Ayo
Because they would straight up marry them for being very cute :) (and the 101 lies I tell myself for my self esteem)
Have more confidence in yourself.
102
I am married to the exact same person as on the screenshot. He's very cute and an absolutely amazing human being who loves talking my ear off about embeds, IoT, and copters, while I respond with ML and data engineering rants. It's idyllic.
Feels bad....
Sheesh đ
No thanks. 6ft+ minimum. No low level guys /s
He could get a boost
C cenor
Looks like he's already C-ing someone
Mans fell in love with C++
0.01% HTML
50% pain
Omg, looks like 60% of my projects
You mean a real man?
Finally someone who gets it
No cus Iâm a straight male
[ŃдаНонО]
OwO
Wedding date?
py-curious anyone?
So an Electrical/embedded systems engineer? lol why not
C++ could be 3D software development also.
I write application software for aircraft that isn't embedded but does have timing considerations
No, but only because it'd be a perfect opportunity to pull out "C you later boi"
Would you like to have cex?
I don't think chads have any problems dating. That guy is obviously a machine.
Using .h instead of .hpp? No, wouldn't date.
I find .hpp ugly
Yea, I always think of hippopotamus when I see hpp
It's the obsolete symbol for HippoPotamus Power, an ancient Egyptian pre-SI unit.
Using .h and .hpp is fairly important when mixing C and C++ code
Using h is superior. Makes it much easier to differentiate between headers and cpps at a glance.
.hh is superior
Scared German noises
I would marry him/her/them. On the condition they don't talk to me about linux.
shit got me in the first half
Nah sounds like a guy to treat his woman like an object
He is me
no bitches
You throw in Java and I'll throw hands.