8 ms·
> So Carmack ... started reading research papers. This in itself is a superpower, especially in computer science where history is considered a waste of time.
by gumby 2y ago
> So Carmack ... started reading research papers.
This in itself is a superpower, especially in computer science where history is considered a waste of time.
This is commonly even true in actual research computer science, where you'd think papers were crucial. Nowadays with the flood of "PR" preprints particularly in machine learning, it would be impossible to keep up and so nobody tries -- most of those papers write-once-read-never.
When I moved out of computing into biochemistry and medicine, and now into climate, I found people take papers seriously, which is a pleasure.
- vslira 2y agoOne of the first "hacker" breakthroughs in my first startup was due to following citations on a paper kind of related to my problem until I got to a paper from '61 implementing the exact algorithm I was needing at the time. Numerical approximations to a gnarly probabilistic problem that would make any engineer proud. Worked like a charm and, in a hardware thousands of times faster than it was designed to run, it was crazy efficient.
- richrichie 2y agoCould you please share the paper reference? Thank you.
- sitkack 2y agoOne of the nicest things about finding old papers is that often the "unworkable" technique now fits in L1 or L2 cache.
- fxtentacle 2y agoOr that RAM is practically endless now. I still remember when I was reading an old pattern recognition paper and they dismissed one simple, elegant solution as "obviously impossible" because they estimated it would need 10485760 KB of RAM. We then bought a server with 128 GB of RAM and shipped their impossible approach in production :) where it's been running nicely for 9 years now.
- stuaxo 2y agoNice, hope you let them know.
- noqc 2y agoWorse computers require better programmers.
- deleted 2y ago[deleted]
- bsder 2y ago> When I moved out of computing into biochemistry and medicine, and now into climate, I found people take papers seriously, which is a pleasure. SIGGRAPH had been around since 1974 and was well-known if you were doing anything graphics related--especially 3D. You couldn't help but trip over the algorithms you needed. The genius was putting any of these algorithms meant for super-expensive 3D graphics hardware on a wimpy-ass 1990 PC.
- h0l0cube 2y agoExactly. Research and it’s practical application is pretty common in computer graphics, and particularly cutting edge graphics engine development. There’s no need to dig around in academic papers unless you’re dealing with deep technical problems and off-the-shelf solutions are out of the question.
- JKCalhoun 2y agoYou're reminding of the "Numerical Recipes" series of books from that era. I feel like there were a series related to computer graphics as well....
- jacobolus 2y agoNumerical Recipes was just several editions of one book, each with a few variants (for different programming languages). But you might be thinking of Graphics Gems (vols 1–5). https://www.realtimerendering.com/resources/GraphicsGems/ https://www.realtimerendering.com/resources/GraphicsGems/
- AlotOfReading 2y agoAbrash's Black Book was more in the style of Numerical Recipes than graphics gems, from what I recall. I also remember Nvidia putting out something annually around the late 2000s that was pretty good, can't remember the name though.
- JKCalhoun 2y agoWow, yeah, Graphics Gems, those was amazing. Thanks for reminding me.
- api 2y agoOne of the things that drives me nuts about this industry is how ahistorical it is. The end result is that we keep reinventing the same things over and over especially around operating systems, databases, and languages.
- nomel 2y agoAt least in open source, I would claim that it's a result of volunteers doing the work for fun, which necessarily means they follow the dopamine: implementing someone else's work is not nearly as fun as figuring out a problem for yourself.
- sitkack 2y agoAnd the reading comprehension of CS people is near zero. You can give someone a paper with the solution, they will skim, not understand anything and then going back to reimplementing something poorly from first principles.
- fisf 2y ago> reimplementing something poorly from first principles Not-invented-here syndrome in practice. Which kinda works for the n-th shitty web framework. But it goes really poorly in any complex domain.
- ungamedplayer 2y agoAre there any papers at all I. Web framework design?
- karussell 2y agoThis has nothing to do with open source. For GraphHopper I researched many papers regarding fast routing algorithms or advanced data structures etc ... and I'm pretty sure that this is true for other open source projects too. It could be even the opposite: because many people can look into the code the code converges to the state of the art.
- HillRat 2y agoWhat's really remarkable is that so much of the last decade or so of research has been grounded in work done in the 1970s and 1980s, when computational boundaries were narrow enough that the work was often largely speculative or significantly restricted in application, so it's only now that we're really seeing that work bear fruit. It's a pleasure reading old comp-sci papers, and I wish more developers took the time.
- gfourfour 2y ago“Solving for colour constancy using a constrained dichromatic reflection model” is a good one to check out
- nahumfarchi 2y agoI would love to see a list of "oldies but goldies" in various fields. Wonder if you're aware of such a thing?
- hiAndrewQuinn 2y agohttps://people.math.harvard.edu/~ctm/home/text/others/shannon/entropy/entropy.pdf https://people.math.harvard.edu/~ctm/home/text/others/shanno... would be a natural starting point.
- Bluestein 2y agoThere's a nifty use for AI: Read, grok, simulate, report, repeat ...
- Bluestein 2y agoSuch a bad idea, eh?
- jayd16 2y agoSeriously. Ever try to pass an interview with "Well first I'd probably look up the optimal answer..."? It's worked for me about zero times.
- lesuorac 2y agoYeah, works about as well as "well, I'd see how the rest of your codebase does it".
- wenc 2y agoAnd this is the power of ChatGPT. Instead of reading a ton of literature, you can ask it for algorithms in literature that map to your problem. I work in a space where I simply don't have bandwidth to read every paper out there, but a few question on ChatGPT managed to narrow the field for me in 30 seconds, and I could take it from there. It could even prototype the algorithm tailored to my specs. Game changer.
- purple-leafy 2y agoAnd it will give you a crap answer 95% of the time. Good luck using chatjippity when you have any level of complexity. I’m working on a React UI based SQL query builder, where the entire data structure is recursive. ChatGPT is literally unusable for this
- wenc 2y agoThat's a very biased point of view. I use it for mathematical formulations for optimization problems and it gives me very good answers most of the time. The literature is very strong but hard to search via keywords. ChatGPT manages to digest the literature and does a good job pattern matching to the right problem. (I also use the paid version).
- xcv123 2y agoWe're talking about finding references or details of existing algorithms to solve a specific problem. What you are trying to do has nothing to do with that and it's a waste of time with an LLM.
- huygens6363 2y ago> UI based SQL query builder Well, there’s your problem.
- yakshaving_jgt 2y ago> And it will give you a crap answer 95% of the time You're underselling it. Not only will it give you a crap answer, but it'll give it to you with unerring confidence!
- JKCalhoun 2y ago> So Carmack ... started reading research papers. I feel it was more common in the earlier days of programming. With no open source "game engines" and the Githubbed, Stackoverflown internet we have now fetching about for some of the "programming secrets" whether that was in a university library or a technical computer magazine was about all you had.
- sterlind 2y agoMost of my career as an algorithm designer has been to boil problems down to their abstract essence, categorizing what kind of problem it is, reading papers to find a solution and implementing it. Unfortunately, ACM and IEEE are paywalled, as are many of the specialty journals for operations research and the like. Newer stuff is often on Arxiv, but the simple algorithms usually live in older papers that aren't.
- randomtoast 2y ago> most of those papers write-once-read-never Does someone know a good way how to put a filter on these "write-once-read-never" papers and just get the top 10 papers each month?
- fxtentacle 2y agoFully agree. There's so many people who succumb to "not invented here" and then run blindly into solved issues. I keep repeating the story, but in 2020, I surprisingly got #1 on the MPI Sintel benchmark for optical flow in the category "Clean EPE matched", by re-implementing a 15 year old paper. (And replacing their approximation of a quadratic solver with actually using a quadratic solver.) That said, I feel like it's not just machine learning which is flooded with useless preprints. It's the entire internet now. When I wanted to look up some context for quaternion math, it was surprisingly challenging to find something a bit more in-depth than motivated amateurs who try to sell their self-published ebook and/or Udemy course. No, "np.quaternion" is not a mathematical formula. In the end, it was easier to dig up my old paper book, which had a nice A4 overview page with all the relevant formulas.
- hi-v-rocknroll 2y agoThe disconnect between laypeople and research is often compounded by the stilted language, undefined terminology and related knowledge assumptions, underspecified details, and incomplete presentation of code or examples for independent reproducibility. Research papers, to be maximally reusable and future-proof, should prefer to present information in as plain English as possible and commonly-used mathematic terminology and symbols rather than obscure forms where possible. Using big words (or Latin) doesn't add profoundness, but they can add artistic flair in other contexts where elucidation isn't the goal. ;-)
- Bluestein 2y agoWould using standard Basic English (https://en.wikipedia.org/wiki/Basic_English https://en.wikipedia.org/wiki/Basic_English) help?
- wheybags 2y agoAnd source code, for the love of god, give me source code so I don't have to guess what your underspecified description in the paper actually means.
- randomcarbloke 2y ago
- hiAndrewQuinn 2y agoWriting code is more fun than reading. Trying to solve problems is more fun than researching previous problems. It takes a special kind of discipline to get to the point where your first instinct is "Let me book out a few days and survey the literature" instead of "Let me use all of my IQ points to try to implement an ad hoc, informally-specified, bug-ridden, slow implementation of half of $ANYTHING".
- cladopa 2y agoI never had this impression. For me reading papers is way more fun and easier than developing a new solution in code and painstakingly work over all the bugs until they are gone, or worse, find bugs that you don't have solutions for. Or finding that it is too slow for your target machines. Creating something new is so much work. Like skying it could be fun when you are not a professional and you do it on your terms, but once you are a professional it is something different.
- hiAndrewQuinn 2y agoIn truth, I'm much more this way myself than the median dev. Unfortunately it's not the greatest strategy for climbing the ranks and getting yourself to a top paying senior engineering gig to be a talented bug-fixer, and never a talented full program creator (or wheel-reinventor).
- parasti 2y agoNobody mentioned this but software patents are/were a pretty good reason to avoid looking at other people's algorithms.
- lostemptations5 2y agoIn...the countries where that was a problem.
- deleted 2y ago[deleted]
- CrimsonCape 2y agoMy favorite tech has a handful of patents expired in the past two years. But they are written in a way that doesn't expose the underlying algorithms, just the "steps" which seems to be a very keen well-designed patent informed by lawyers. Designed to the letter of the law. Mitsubisi Research Laboratories funded the work, it's clear they wanted to protect their investment. The text inside the patent is this absurd abstraction of the algorithm such that it could apply to anything. Software patents exist in this space where the patent holder gets the best of both worlds: they get to argue that an infringer nebulously infringes on the ambiguous "steps". Meanwhile the source code is not in the patent, therefore protected from public eyes. Patents should require exposing the source code.
- animal531 2y agoBack in the day access to knowledge was quite hard, everyone first started with random file dumps from BBS exchanges, then followed by books. After that if you were of the right age and lived in the right place you might have had access to a university library with papers. Talking of knowledge and books: It was around 1995 or so and I was in my last year of high school. We went on a small field trip to a local computer show and only about 4-5 students in the whole school were interested in going, at that time computer science was still a very new topic over here in the 3rd world. At the show I found a stall in a corner with some random hardware books and then this giant white tome about computer graphics. The size of it was intimidating and while scanning through it I saw some ridiculous mathematical formulas that I couldn't make head or tails of. But either way I had to have it and luckily I had gotten just enough money from my mom that I was able to buy it. That was how I lucked into Computer Graphics - Principles and Practice (2nd Edition) which had just come out. That book was a literal gold mine of concentrated topics for a kid, I spent more time studying that book in the next year than I had done for all my high school subjects combined. My deepest thanks to everyone who contributed to it, it's shown here on Fabien's page: https://fabiensanglard.net/Computer_Graphics_Principles_and_Practices/ https://fabiensanglard.net/Computer_Graphics_Principles_and_... Not to ramble, but a funny addition to the story. The only compilers/languages I could find locally were DOS Basic and then Pascal with Assembly which I learned most of my programming skills in. I had heard of this magical C language that was so fast and all the games were now being made in it, but for probably 3 years I couldn't find a compiler for it anywhere. Then randomly one day right around the Doom 1994 release date my uncle who had started working with hardware had been given a promotional Watcom C/C++ compiler which he gifted to me, and I could suddenly work with the same language and compiler that they had used! Of course it took me a bit of time to learn but by the time I got the CG Bible in 1995 I was set.
- cherryteastain 2y agoWasn't GCC already out in 1995? (Though needing an internet connection to download it was an issue)
- claudiulodro 2y agoI blame agile and SaaS, neither of which are super tolerant of developers taking a few days just to read up on things. When you're both an owner of the company and/or just need to ship one good version of something, you get a little more space to do it right.
- Obscurity4340 2y agoWriteOnly