4 ms·
Have you considered learning by reading documentation and tutorials, instead of asking the lie generator? I mean, how do you think people learned things before
by lasagnagram 2y ago
Have you considered learning by reading documentation and tutorials, instead of asking the lie generator? I mean, how do you think people learned things before 2023?
- williamcotton 2y agoWhat about a library that doesn’t have any documentation or tutorials, like the Soundfont lib for JUCE where the LLM was essentially I had to get a working product?
- goatlover 2y agoWhere did the LLM get information for the Soundfront lib if there is no documentation, tutorials, answered questions or source code online?
- daveguy 2y agoSame place every LLM gets "information" -- plucking random bits from the latent space that are most likely to follow the input context.
- swatcoder 2y agoLet's dig into this for a second. Which "Soundfont lib for JUCE" are you talking about? How did you find it in the first place? Why did you decide to use it if there was no documentation? How did you know it was appropriate or capable for your use case? How did you know it was mature, stable, or safe? Did you read the headers for the library? Did they have comments? Did you read the technical specification for the Soundfont format to understand how it modeled sample libraries? I work in this stuff all the time, and I'm so very puzzled by what you're even suggesting here.
- williamcotton 2y agoI Googled and got: https://www.mucoder.net/blog/2016/03/24/sfzero.html https://www.mucoder.net/blog/2016/03/24/sfzero.html There was boilerplate that wasn’t explained and only existed in a demo for an audio plugin. I prompted the LLM with the header files and sections of the demo app and after a few back and forth learning sessions I was getting piano samples playing back: https://github.com/williamcotton/midiplayer https://github.com/williamcotton/midiplayer It works, it doesn’t have any memory issues (after I fixed an issue in the module), and is performant. This is also my first C++ project!
- swatcoder 2y agoThanks for answering! Assuming your original question was not rhetorical and was asked in good faith, other people who've used SFZero before the advent of LLM's made sure they understood juce::Synthesizer (despite its many warts, juce's public interfaces are well documented and represent a strong point) as this just defines a specific implementation, and either referenced the provided example or read the headers, which are pretty straightforward. It's great that the LLM was able to get you to where you wanted to be, and congratulations on getting your project to that milestone. Especially for not having worked in C++ before! But to the point of the person you were responding to, the LLM was not fulfilling a generally unmet need. Everything a professional or practiced amateur needs was there already.
- williamcotton 2y ago> > learning by reading documentation and tutorials > But to the point of the person you were responding to, the LLM was not fulfilling a generally unmet need. Everything a professional or practiced amateur needs was there already. But isn't this stretching the definitions of documentation and tutorials a little bit here? A demo app and a bunch of undocumented header files became documentation and tutorials with the assistance of an LLM.
- swatcoder 2y agoPerhaps. As an experienced audio developer, it's a distinction without a difference. We get used to reading code and deciphering how to use or improve it (wait until you start working with other's DSP code!), and some features and conventions of C/C++, like the segregation of declarations from definitions, make it especially self-documenting for those that are fluent in it. Having integrated SFZero myself (albeit to a deadend; it's very middling-to-poor), I was surprised to discover that there was not more explicit documentation when you announced it as the library you were referring to, specifically because I remember the work of integrating it was relatively trivial (maybe half a day or so). For a complete outsider to audio development, JUCE, C++, of course the LLM helped you get done what you needed to get done, far faster than you could have hoped otherwise. And that's great if you're just toying around. On the other hand, you absolutely would have sharpened your skills with all three of those things more had you the luxury to muddle through and force yourself to make sense of it all yourself. Assuming skills development is your goal (otherwise, you should be using different tools here! C++ and JUCE are not where to start if your personal goal is music making, synthesis, or MIDI), there's a balancing act between making sure you don't get discouraged and committing to the hard work of learning things in-depth. The LLM gave you a way to avoid feeling stuck and discouraged, and perhaps represents the difference between you sticking with the project or just throwing your hands up. But keep in mind the tradeoff that it implies for skill development and consider only turning to it when the frustration starts to get too high to bear.
- godelski 2y ago> What about a library that doesn’t have any documentation or tutorials This always sucks, but since it is something you have to deal with, the answer is "read the code." Hopefully the code has some test cases somewhere, and that is the best place to start. But if not, you unfortunately got to profile and trace the code yourself. It takes awhile, but you usually come out with a pretty good understanding (after A LOT of confusion) and can usually find some good things to fix. How do you profile and trace it? A debugger is actually one of your best friends here. But this is also what things like cscope and tags (ctags) are for. I suggest becoming familiar with grep, find, sed, and awk as these will also greatly help. I strongly suggest also grabbing a pen and paper. You'll want to draw diagrams. It sucks, but it gets easier over time. I'll also say that having to do this shitty task drills into you the importance of writing documentation, comments, and writing concise functions in your code. Only a psychopath could go through this trouble and think "fuck it, the next guy can do it too." Unfortunately there's lots of psychopaths lol. Remember, usually "the next guy" is you. You when you forget everything 6 months and 3 projects later. So document and comment while you trace. If your boss tells you not to worry, he's a psychopath too. Just wasting company money making it harder to onboard new employees. And in the worst/best case? Your documentation/commenting just makes the LLM better and more accurate. So there's really no good reason to not doc/comment other than excuses about moving fast. But remember, even though there's never time to do it right, there's always time to do it twice (when you fix what's wrong). And all this work reduces the tech debt and time everyone spends debugging. You have to invest in your work.
- williamcotton 2y agoYeah dude, I’ve got a wife, two young children and a full-time job in legal services. These are the side projects that LLMs give me the time and cognitive energies to work on. Congratulations on having so much free time! I do lot of data analysis so I am pretty familiar with awk, et. al. But you know, thanks for the condescending lecture, I guess?
- godelski 2y agoI didn't realize it was a rhetorical question. It was not intended to be condescending. There's a lot of people who do not have that skill
- femiagbabiaka 2y agoYeah.. it's one thing to say "it would be nice if I could query a LLM about this topic" and another to say "I refuse to study this topic unless I can query a LLM." To be frank, the latter does not sound like the mindset of an effective engineer -- in my experience effective engineers are curious, voracious in pursuit of knowledge.
- cpursley 2y agoHave you considered just walking backwards uphill in the snow to your local library and checking out an (out of date) dead tree book, like - you know like us "real" programmers used to do it? The gatekeeping around using llms for coding is so goofy (and expected)...
- PKop 2y agoHe's giving advice of how to overcome what has been described as a limitation, literally not gatekeeping but opening the gate for the OP. Instead of imbuing into it some grievance narrative, why shouldn't people take the advice, if LLM's do suffer from an anti-recency bias, to find another way to learn new information that LLM's don't have in their models? If some source of information you were looking for online wasn't available but it did exist at your local library in a book, why wouldn't you go check out the book?
- cpursley 2y agoThey don't suffer from recency bias when you dump the docs right into their context.
- john_moscow 2y agoThe lie generator can very efficiently pull the relevant parts of the documentation and tutorials, and it's not that hard to programmatically ask it for a quote and compare it against the actual tutorial.