hmn/src/templates/src/fishbowls/code-reuse/code-reuse.html

9038 lines
399 KiB
HTML

<div class="chatlog">
<!-- Emojis by Twitter's Twemoji https://twemoji.twitter.com/ -->
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002984503280685136" class="chatlog__message-container " data-message-id="1002984503280685136">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:02 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Welcome everyone to another fishbowl.
Our topic for today is responsible code reuse, specifically as it relates to library usage.
Some points we might cover today:
* When do you reach for an existing library? What do you look for in a library?
* When do libraries go sour? When does using a library become irresponsible? What are the telltale signs of issues with a library?
* How to evaluate a library before using it.
* When making a library for others, what do you do to ensure it can be used responsibly?
* The community's general stance regarding using libraries vs DIY.
* What does all of the above mean for package managers and today's culture around library usage?
Participants:
<span class="chatlog__markdown-mention" title="NeGate#2743">@NeGate</span>
<span class="chatlog__markdown-mention" title="demetrispanos#5588">@demetrispanos</span>
<span class="chatlog__markdown-mention" title="raysan5#2998">@raysan5</span>
<span class="chatlog__markdown-mention" title="ryanfleury#4528">@ryanfleury</span>
<span class="chatlog__markdown-mention" title="AsafGartner#0955">@AsafGartner</span> </span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002984505121964196" class="chatlog__message-container " data-message-id="1002984505121964196">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:02 AM">10:02</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">We'll start with a question from <span class="chatlog__markdown-mention" title="ryanfleury#4528">@ryanfleury</span>:
<div class="chatlog__markdown-quote"><div class="chatlog__markdown-quote-border"></div><div class="chatlog__markdown-quote-content">Which libraries do we use in our day-to-day projects? Why? Could we replace them easily if we needed to?</div></div></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002984889848713246" class="chatlog__message-container " data-message-id="1002984889848713246">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:03 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Hi everyone! The reason I wanted to start with the concrete is so that we can focus on real cases where the traditional form of code reuse (using libraries) worked out well, because I've seen the abstract route of the discussion be a bit more unproductive. Instead we can see what has been both responsible and useful, and build up the more abstract rules from there.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985058270982265" class="chatlog__message-container " data-message-id="1002985058270982265">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I use <a class="inserted-after" href="https://en.wikipedia.org/wiki/Raylib" target="_blank">raylib</a> with most of my projects and raylib only uses single-file header-only libraries, most of them are the <a class="inserted-after" href="https://github.com/nothings/stb" target="_blank">stb libraries</a>.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:05 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985060129046548" class="chatlog__message-container " data-message-id="1002985060129046548">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">One example I can give is pgx: <a href="https://pkg.go.dev/github.com/jackc/pgx/v4" target="_blank">https://pkg.go.dev/github.com/jackc/pgx/v4</a>
It's a postgres library for Go that we use for the Handmade Network website. The main thing that it solves for us is a knowledge-acquisition problem. It talks to postgres over its binary protocol, which to the best of my knowledge is undocumented. So doing it ourselves would require reverse engineering <a class="inserted-after" href="https://www.postgresql.org/docs/14/libpq.html" target="_blank">libpq</a> (the official C library).</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986203836055644" class="chatlog__message-container " data-message-id="1002986203836055644">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/1feeac843ae734aba8f8c1706e7319ae-01B31.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(46, 204, 113)" title="leddoo#7601" data-user-id="597867299268984865">leddoo (audience)</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:09 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">docs for postgres binary protocol: <a href="https://www.postgresql.org/docs/current/protocol.html">https://www.postgresql.org/docs/current/protocol.html</a></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985127762215023" class="chatlog__message-container " data-message-id="1002985127762215023">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">For me personally, I've had the most success with "data-in, data-out" libraries - a few examples of which are well-known in the community. <a class="inserted-after" href="https://github.com/nothings/stb/blob/master/stb_image.h" target="_blank">stb_image</a>, <a class="inserted-after" href="https://github.com/cmuratori/meow_hash" target="_blank">meow_hash</a>, <a class="inserted-after" href="https://github.com/nothings/stb/blob/master/stb_truetype.h" target="_blank">stb_truetype</a></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002985175979925635" class="chatlog__message-container " data-message-id="1002985175979925635">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:05 AM">10:05</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(They are much easier to evaluate when they are open source like this)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985390329831544" class="chatlog__message-container " data-message-id="1002985390329831544">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:05 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">for Cuik, it's mostly just stbds (im phasing it out) then TB has <a class="inserted-after" href="https://en.wikipedia.org/wiki/LuaJIT" target="_blank">luajit</a>, and tbbmalloc (which is also wanna phase out lol)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:05 AM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002985436739809390" class="chatlog__message-container " data-message-id="1002985436739809390">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:06 AM">10:06</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">for game projects it's stb_image, <a class="inserted-after" href="https://en.wikipedia.org/wiki/FreeType" target="_blank">FreeType</a>, <a class="inserted-after" href="https://github.com/floooh/sokol" target="_blank">sokol</a>, raylib, <a class="inserted-after" href="https://github.com/jkuhlmann/cgltf" target="_blank">cgltf</a> and a few others</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:06 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985602255425618" class="chatlog__message-container " data-message-id="1002985602255425618">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:06 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">for me, common ones are stb_image, <a class="inserted-after" href="https://en.wikipedia.org/wiki/Zlib" target="_blank">zlib</a>, <a class="inserted-after" href="https://en.wikipedia.org/wiki/SQLite" target="_blank">sqlite</a>, lua/luajit (though not sure if this should "count" even if embedded), and then various specialist scientific computing libraries e.g. <a class="inserted-after" href="https://en.wikipedia.org/wiki/FFTW" target="_blank">fftw</a></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985830643671121" class="chatlog__message-container " data-message-id="1002985830643671121">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002985060129046548')">
One example I can give is pgx: <a href="https://pkg.go.dev/github.com/jackc/pgx/v4" target="_blank">https://pkg.go.dev/github.com/jackc/pgx/v4</a>
It's a postgres library for Go that we use for the Handmade Network website. The main thing that it solves for us is a knowledge-acquisition problem. It talks to postgres over its binary protocol, which to the best of my knowledge is undocumented. So doing it ourselves would require reverse engineering libpq (the official C library). </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:07 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Interesting connection here, one important aspect of code is the fact that it captures <em>knowledge</em>. It's not <em>explicit, direct knowledge</em> - it's baked down quite a bit - but the <em>knowledge</em> is really the most useful part. So for <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span>, the useful part is not <em>quite</em> the API (you could imagine tweaking it), it's rather that decoding a PNG in a fairly good way is difficult <em>enough</em> that unpacking all the knowledge is fairly high-effort. Same with <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">meow_hash</span> or for that matter any other hash - producing a <em>hash</em> that has fairly good results for a given problem is a difficult process that requires expertise and care, and it's often quite orthogonal to the problem in question</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002985493203529749" class="chatlog__message-container " data-message-id="1002985493203529749">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002985127762215023')">
For me personally, I've had the most success with "data-in, data-out" libraries - a few examples of which are well-known in the community. <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span>, <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">meow_hash</span>, <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:06 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">You also refer to them as "leaf libraries", right?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002985939351650464" class="chatlog__message-container " data-message-id="1002985939351650464">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002985493203529749')">
You also refer to them as "leaf libraries", right? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:08 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah. I don't think libraries are only possibly useful as "leafs", but I think they have a higher chance of being useful when they are, if that makes sense.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002986111649452032" class="chatlog__message-container " data-message-id="1002986111649452032">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:08 AM">10:08</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Notably because as you get "closer" to the "knot" of a codebase, you have to start making more assumptions. Leaf libraries are in the privileged position of making very <em>few</em> assumptions - "here's the data transform for this problem. We studied it and know it well - pass in the source data, and we'll use our <em>knowledge</em> to compute the output data"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986131958280233" class="chatlog__message-container " data-message-id="1002986131958280233">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:08 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">is the leafs concept related to Casey's components? or how do they differ?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986194168201370" class="chatlog__message-container " data-message-id="1002986194168201370">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:09 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I'm not sure, actually. Maybe someone else here knows?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986241312169996" class="chatlog__message-container " data-message-id="1002986241312169996">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:09 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's interesting that we came up with the same terminology.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002986313689088070" class="chatlog__message-container " data-message-id="1002986313689088070">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:09 AM">10:09</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">To me leaf just means that it's replaceable in a bounded way without affecting the rest of the tree.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:09 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986424460640287" class="chatlog__message-container " data-message-id="1002986424460640287">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:09 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Right yeah. That is maybe a more succinct way of putting it :)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986471298441296" class="chatlog__message-container " data-message-id="1002986471298441296">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:10 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">a related concept I use, similar to "leaf", is whether or not using the library forces me into using their type system</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">4</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002986544753295570" class="chatlog__message-container " data-message-id="1002986544753295570">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:10 AM">10:10</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">if the library just accepts arrays of primitives (as an example) then any library could do that</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986592597721118" class="chatlog__message-container " data-message-id="1002986592597721118">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002986313689088070')">
To me leaf just means that it's replaceable in a bounded way without affecting the rest of the tree. </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:09 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:10 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">so a replacement would need to be compatible only in terms of API? it doesn't necessarily imply anything about the size correct?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986722952499300" class="chatlog__message-container " data-message-id="1002986722952499300">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002986544753295570')">
if the library just accepts arrays of primitives (as an example) then any library could do that </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:11 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">For sure. I think that this also becomes much easier as an API designer when it's a leaf-like scenario</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986799980888125" class="chatlog__message-container " data-message-id="1002986799980888125">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:11 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I wouldn't even say that it needs to be compatible. It's just that it doesn't force deep changes in the entire codebase.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002986870709428224" class="chatlog__message-container " data-message-id="1002986870709428224">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:11 AM">10:11</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(Not counting find/replace of a typename or simple things like that)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002986954079612948" class="chatlog__message-container " data-message-id="1002986954079612948">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002986471298441296')">
a related concept I use, similar to "leaf", is whether or not using the library forces me into using their type system </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:12 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is weird spot in C because the type system is limited enough that everyone and their moms must redefine a slice or other common structures</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:12 AM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002987050984820878" class="chatlog__message-container " data-message-id="1002987050984820878">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:12 AM">10:12</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">basically library design is sorta held back by the limitations of the language</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002987478262747146" class="chatlog__message-container " data-message-id="1002987478262747146">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:14 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's partly limitations of the language and it's partly the language not being opinionated about very common things. So for example, in <a class="inserted-after" href="https://dion.systems/metadesk" target="_blank">Metadesk</a> and the debug info stuff we did at work, the library defines a "string type" (just a ptr + size), and then to start parsing, you have to package up your primitives in that form. You can obviously define an API that just takes a <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">char *</span> or something of the sort, but then that function necessarily becomes non-composable with the rest of the library, which uses the length-based string type.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002987514006618223" class="chatlog__message-container " data-message-id="1002987514006618223">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002986954079612948')">
this is weird spot in C because the type system is limited enough that everyone and their moms must redefine a slice or other common structures </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:12 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:14 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">personally I rarely have a problem designing library interfaces that only rely on primitives, or on extremely shallow structs</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002987634852909207" class="chatlog__message-container " data-message-id="1002987634852909207">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:14 AM">10:14</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">if you do something <a class="inserted-after" href="https://en.wikipedia.org/wiki/Data-oriented_design" target="_blank">DOD</a>-like or <a class="inserted-after" href="https://en.wikipedia.org/wiki/Relational_model" target="_blank">relational</a>-like to model your problem, you can work very close to the primitive type level</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002987712674025513" class="chatlog__message-container " data-message-id="1002987712674025513">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:15 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">so usually i just avoid passing around slices in my libraries because it's weird, i'll just unravel it</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002987901744861244" class="chatlog__message-container " data-message-id="1002987901744861244">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:15 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">C APIs are usually clunky in this way - e.g. the user must first know to call <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">NeGate_MakeSlice(...)</span> but I think the composition effects are worth it</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002988004907946104" class="chatlog__message-container " data-message-id="1002988004907946104">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:16 AM">10:16</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Otherwise you get these weird "user-facing" APIs floating around, that you eventually want to reuse, that aren't using the composable types that the rest of the library knows to use</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002988260710154250" class="chatlog__message-container " data-message-id="1002988260710154250">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:17 AM">10:17</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(And this is tied in with another API design aspect, which Casey has spoken about before, which is that an API consists of low-level, composable, granular APIs that are precise, and higher level APIs that bundle functionality together, but <em>all</em> of those APIs are user-facing - there aren't "internal" APIs, for the most part)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002988288455479326" class="chatlog__message-container " data-message-id="1002988288455479326">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:17 AM">10:17</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Anyways I suppose this is going down an API design rabbit hole, which is maybe a bit off-topic</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:17 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002988450464682136" class="chatlog__message-container " data-message-id="1002988450464682136">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002988288455479326')">
Anyways I suppose this is going down an API design rabbit hole, which is maybe a bit off-topic </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:17 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:18 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yeah I agree we shouldn't dig too deep on library design as such, but I think it highlights some of the aspects that contribute to code reuse decisions</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002988954880049212" class="chatlog__message-container " data-message-id="1002988954880049212">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:20 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">so Ryan, wrt "Could we replace them easily if we needed to?", i think we've reached a spot where most of our foundational libraries probably can't (sometimes won't) be replaced by us but there's also a lot to be said that we don't necessarily need all of <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> to get work done</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989003777245224" class="chatlog__message-container " data-message-id="1002989003777245224">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:20 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">So I guess we could talk about when using a library goes sour, since that connects with <span class="chatlog__markdown-mention" title="demetrispanos#5588">@demetrispanos</span>' point regarding a library forcing you to buy into a type system - I have personally had issues with libraries that expose either an incomplete set of extracted information, and furthermore (sort of a subset of this problem) if they provide <em>only high level APIs</em> that let me get at certain data.
A good example is a query-style API vs. a "report an entire batch" API. <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">SearchPoint(...)</span> vs. <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">GrabArray(...)</span>. In many cases, you need the latter, but many libraries fit a high-level use case <em>too early</em> with the former, and it makes the library sometimes unusable for a given problem</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002989090532241509" class="chatlog__message-container " data-message-id="1002989090532241509">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:20 AM">10:20</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Oh, we spun up two threads</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989253388673146" class="chatlog__message-container " data-message-id="1002989253388673146">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002988954880049212')">
so Ryan, wrt "Could we replace them easily if we needed to?", i think we've reached a spot where most of our foundational libraries probably can't (sometimes won't) be replaced by us but there's also a lot to be said that we don't necessarily need all of <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> to get work done </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:21 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Hmmm so what do you mean by "foundational libraries"?</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989313925058660" class="chatlog__message-container " data-message-id="1002989313925058660">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:21 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">stuff like <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> or <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> really</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002989375287726160" class="chatlog__message-container " data-message-id="1002989375287726160">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:21 AM">10:21</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">like most people dont know or care about the details inside of <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span>, they just use it and avoid the garbage world of font rasterization</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002989395948871780" class="chatlog__message-container " data-message-id="1002989395948871780">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:21 AM">10:21</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">which is fine imo</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989396292804729" class="chatlog__message-container " data-message-id="1002989396292804729">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:21 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">With <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> it becomes inadequate pretty quickly, I think - I haven't had as many issues with <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> I suppose (although for some cases it also is inadequate)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:22 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989421337002044" class="chatlog__message-container " data-message-id="1002989421337002044">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:21 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sure</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002989507194404904" class="chatlog__message-container " data-message-id="1002989507194404904">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:22 AM">10:22</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but rarely does anyone replace <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> with something that isn't a bigger and weirder library</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989661607710800" class="chatlog__message-container " data-message-id="1002989661607710800">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002989507194404904')">
but rarely does anyone replace <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> with something that isn't a bigger and weirder library </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:22 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">like for all the text editor memeing we've had around here, it's rare for someone to make an <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> replacement, they just use FreeType or something</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989518049251368" class="chatlog__message-container " data-message-id="1002989518049251368">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:22 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve"><span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> is a low-cost, decent-gain library. Not sure about <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span>.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002989579902668890" class="chatlog__message-container " data-message-id="1002989579902668890">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:22 AM">10:22</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Loading images isn't usually a program's main thing.</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989901156986900" class="chatlog__message-container " data-message-id="1002989901156986900">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002989661607710800')">
like for all the text editor memeing we've had around here, it's rare for someone to make an <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span> replacement, they just use FreeType or something </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:23 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but FreeType2 is a very big library...</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002990018459086918" class="chatlog__message-container " data-message-id="1002990018459086918">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:24 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">exactly on both of those statements</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002989965011071017" class="chatlog__message-container " data-message-id="1002989965011071017">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:24 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Text rendering is another issue where there's a big knowledge acquisition gap.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002990214739923034" class="chatlog__message-container " data-message-id="1002990214739923034">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:25 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">One point I wanted to mention that's related is the idea that code is always written given a set of <em>assumptions</em> (or constraints). Properly analyzing a library requires understanding those assumptions. So for example, <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> <em>assumes</em> that you trust your input data. (Same with <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span>). They assume a few other things (which are related to our earlier discussion on API design), and basically libraries become more problematic when the <em>diff</em> between the library's assumptions and <em>your</em> assumptions grows large.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002990360169037865" class="chatlog__message-container " data-message-id="1002990360169037865">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:25 AM">10:25</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Furthermore I think this gets at one aspect of the modern code reuse culture - if you pull in a gigantic DAG of libraries just by trying to grab one, you've introduced a gigantic bundle of assumptions that you have not vetted, and basically <em>cannot</em> vet</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:25 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002990460169625701" class="chatlog__message-container " data-message-id="1002990460169625701">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:26 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yes. And that diff tends to grow larger as your project grows.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:26 AM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002990571754897418" class="chatlog__message-container " data-message-id="1002990571754897418">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:26 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it's ok to have assumptions, it's just that it's also ok not to pick a library because yours dont line up with theirs</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002990436626989056" class="chatlog__message-container " data-message-id="1002990436626989056">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002990214739923034')">
One point I wanted to mention that's related is the idea that code is always written given a set of <em>assumptions</em> (or constraints). Properly analyzing a library requires understanding those assumptions. So for example, <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> <em>assumes</em> that you trust your input data. (Same with <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_truetype</span>). They assume a few other things (which are related to our earlier discussion on API design), and basically libraries become more problematic when the <em>diff</em> between the library's assumptions and <em>your</em> assumptions grows large. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:25 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">well, I'm afraid that's the price you pay for the library</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:26 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002990614683590737" class="chatlog__message-container " data-message-id="1002990614683590737">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="raysan5#2998">raysan5</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002990436626989056')">
well, I'm afraid that's the price you pay for the library </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:26 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:26 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sometimes you'll either compromise or pull a handmade or something</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002990652264566804" class="chatlog__message-container " data-message-id="1002990652264566804">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:26 AM">10:26</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but yea this will always be true in a sense</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002990690499842149" class="chatlog__message-container " data-message-id="1002990690499842149">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002990571754897418')">
it's ok to have assumptions, it's just that it's also ok not to pick a library because yours dont line up with theirs </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:26 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah it's not only okay, it's <em>required</em> - you cannot write code given no constraints</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002991181321470092" class="chatlog__message-container " data-message-id="1002991181321470092">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:28 AM">10:28</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">On this subject &amp; connecting with Asaf's original prompt, I think clearly documenting the assumptions you make for a given API is probably a good place to start, w.r.t. making a library easily responsibly used. (And flipping it, when you're a user, trying to fish out the assumptions, and clearly documenting <em>your project's</em>)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:29 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002991218206187641" class="chatlog__message-container " data-message-id="1002991218206187641">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002990360169037865')">
Furthermore I think this gets at one aspect of the modern code reuse culture - if you pull in a gigantic DAG of libraries just by trying to grab one, you've introduced a gigantic bundle of assumptions that you have not vetted, and basically <em>cannot</em> vet </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:25 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:29 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yea this is a big problem when it comes to threading especially in the types of languages we work in, like in our lovely imperative languages you need to understand data flow and mutability to be able to actually schedule things to happen in parallel, but once you lug around 20 libraries it only takes one of them being nasty about data flow for you to lose a bunch of potential performance gains</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002991431297806428" class="chatlog__message-container " data-message-id="1002991431297806428">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:29 AM">10:29</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">if <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">Foo</span> can't be called while <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">Bar</span> is being used because they both initialize a table but not atomically or something... you can get fucked over that easily until you put a mutex over it and <em>cope</em></span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:30 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002991883393441803" class="chatlog__message-container " data-message-id="1002991883393441803">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002991218206187641')">
yea this is a big problem when it comes to threading especially in the types of languages we work in, like in our lovely imperative languages you need to understand data flow and mutability to be able to actually schedule things to happen in parallel, but once you lug around 20 libraries it only takes one of them being nasty about data flow for you to lose a bunch of potential performance gains </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:31 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">For sure</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002992147110297610" class="chatlog__message-container " data-message-id="1002992147110297610">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002991181321470092')">
On this subject &amp; connecting with Asaf's original prompt, I think clearly documenting the assumptions you make for a given API is probably a good place to start, w.r.t. making a library easily responsibly used. (And flipping it, when you're a user, trying to fish out the assumptions, and clearly documenting <em>your project's</em>) </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:29 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:32 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i like the idea of making certain things <em>the default</em>:
* functions are pure (given the same input, it produces the same output)
* you must pass in a non-NULL pointer
* functions which take in isolated inputs are therefore thread-safe.
these are some simple ones but you can probably imagine more, and whenever things don't match this
we must document it.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:33 AM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1002991835192512582" class="chatlog__message-container " data-message-id="1002991835192512582">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:31 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">On "assumptions" - when I was iterating on The Melodist and pulling out things I wanted to reuse in later projects (not as libraries, but as tools within my codebase), I wanted to reuse my operating system abstraction layer. The problem is that my entire operating system abstraction layer was written with the <em>assumption</em> that I always opened one window, and initialized a graphics API. But that assumption makes the layer unusable for, e.g. a simple terminal application, or a multiwindow application. So that makes that "library" unusable for those problems, and if I had somehow hacked around it instead, that would've been less responsible in my mind.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002992500845318285" class="chatlog__message-container " data-message-id="1002992500845318285">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:34 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve"><div class="chatlog__markdown-quote"><div class="chatlog__markdown-quote-border"></div><div class="chatlog__markdown-quote-content">So that makes that "library" unusable for those problems, and if I had somehow hacked around it instead, that would've been less responsible in my mind.
</div></div>I find that forcing libraries to fit your code (or vice versa) tends to happen quite a lot later in the project.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002992721587343421" class="chatlog__message-container " data-message-id="1002992721587343421">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:34 AM">10:34</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's something that people should pay attention to when vetting a library, but it's not something that's often talked about.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002992211954245732" class="chatlog__message-container " data-message-id="1002992211954245732">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:32 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Oh, this touches on yet another thing - sorry, I'm sort of throwing all of my thoughts in and hoping one will stick - "code reuse" =/= "library that you cannot edit". There is another form of code reuse that arises, which is "I wrote a renderer in my last project, but I want to have a renderer in my new project - instead of <em>trusting my old assumptions</em>, or throwing the old renderer away, I can just <em>duplicate it</em> and mutate it as needed". This can be an invaluable time-saver, without the common drawbacks of overly-assumptive libraries.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:35 AM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002992967289679922" class="chatlog__message-container " data-message-id="1002992967289679922">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002992211954245732')">
Oh, this touches on yet another thing - sorry, I'm sort of throwing all of my thoughts in and hoping one will stick - "code reuse" =/= "library that you cannot edit". There is another form of code reuse that arises, which is "I wrote a renderer in my last project, but I want to have a renderer in my new project - instead of <em>trusting my old assumptions</em>, or throwing the old renderer away, I can just <em>duplicate it</em> and mutate it as needed". This can be an invaluable time-saver, without the common drawbacks of overly-assumptive libraries. </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:35 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:35 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">the problem I see with external libraries that you need to edit for your project is maintenance</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:36 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002993125112959157" class="chatlog__message-container " data-message-id="1002993125112959157">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="raysan5#2998">raysan5</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002992967289679922')">
the problem I see with external libraries that you need to edit for your project is maintenance </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:36 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:36 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">for this I think it's worth somehow distinguishing evolving vs stable libraries</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993201411543110" class="chatlog__message-container " data-message-id="1002993201411543110">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:36 AM">10:36</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">there isn't good terminology for this, but there are libraries like stb_image where you can use a fixed version for years and it almost never matters</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993222412423199" class="chatlog__message-container " data-message-id="1002993222412423199">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:36 AM">10:36</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(rare exceptions if you're using untrusted inputs)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993355833217024" class="chatlog__message-container " data-message-id="1002993355833217024">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:37 AM">10:37</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">there are others (anything that touches the network, probably) where you want to keep tracking the latest version</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002993509483171880" class="chatlog__message-container " data-message-id="1002993509483171880">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002993125112959157')">
for this I think it's worth somehow distinguishing evolving vs stable libraries </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:38 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">libraries can always change or need to change for specific projects needs</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993589917327460" class="chatlog__message-container " data-message-id="1002993589917327460">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:38 AM">10:38</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I mean, stability of a library is very relative</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002993396199211169" class="chatlog__message-container " data-message-id="1002993396199211169">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:37 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah, one third-party library I forgot to mention that I use <em>and</em> modify is <a class="inserted-after" href="https://github.com/nothings/stb/blob/master/stb_sprintf.h" target="_blank">stb_sprintf</a> (another leaf!). I added my own format specifiers for my own string types. But that library almost never changes. If I did want to upgrade, it would indeed be slightly painful, but it wouldn't take very much actual time or resources - and it would be <em>very low</em> amortized across time (because the library changes so infrequently)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:38 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002993389551239218" class="chatlog__message-container " data-message-id="1002993389551239218">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:37 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">You can't know what will be added/fixed in the future, so you'd generally expect the library to be good enough as is, no?</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002993632187535440" class="chatlog__message-container " data-message-id="1002993632187535440">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002993389551239218')">
You can't know what will be added/fixed in the future, so you'd generally expect the library to be good enough as is, no? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:38 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is not my experience with how most people use libraries</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993689364275240" class="chatlog__message-container " data-message-id="1002993689364275240">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:38 AM">10:38</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think most people use libraries with the specific intent to benefit from rolling updates</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993776828088390" class="chatlog__message-container " data-message-id="1002993776828088390">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:39 AM">10:39</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">"it keeps getting better, and I don't have to do anything"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002993816149708880" class="chatlog__message-container " data-message-id="1002993816149708880">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:39 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And then there's no adaptability.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002993871409647676" class="chatlog__message-container " data-message-id="1002993871409647676">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:39 AM">10:39</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Or more accurately, there's explicit anti-adaptability.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002994205372719161" class="chatlog__message-container " data-message-id="1002994205372719161">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002993776828088390')">
"it keeps getting better, and I don't have to do anything" </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:40 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I imagine it depends on the type of library and the functionality provided, for example <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> functionality is very focused, chances to have problems with it are low (with trusted input data)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002994212209430669" class="chatlog__message-container " data-message-id="1002994212209430669">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:40 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think that does depend on the style of library - with certain pure-functional data transforms on rock-solid, unchanging problems - e.g. parsing a well-established data format, doing a mathematical transform, producing a hash - the upgrades will be more tangential (performance, reliability, etc.)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:41 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002994255222018088" class="chatlog__message-container " data-message-id="1002994255222018088">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="raysan5#2998">raysan5</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002993509483171880')">
libraries can always change or need to change for specific projects needs </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:41 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sometimes you end up where you make changes into the internals of a library and since it's not in the trunk then you're kinda fucked even if just small changes comes by just because modifying inside of a library doesn't have the same stability guarentees as the API, this is where i'd just say "lmao dont update your tools" or "you might wanna consider just branching off into your own thing if the library is already doing what it needs to do"</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002994625830723594" class="chatlog__message-container " data-message-id="1002994625830723594">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002994255222018088')">
sometimes you end up where you make changes into the internals of a library and since it's not in the trunk then you're kinda fucked even if just small changes comes by just because modifying inside of a library doesn't have the same stability guarentees as the API, this is where i'd just say "lmao dont update your tools" or "you might wanna consider just branching off into your own thing if the library is already doing what it needs to do" </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:42 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you dont need to completely drop the library at this point, it's sour enough for you not to continue in their updates but still keep your modifications and the library... mostly</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002994417759686786" class="chatlog__message-container " data-message-id="1002994417759686786">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002993689364275240')">
I think most people use libraries with the specific intent to benefit from rolling updates </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:41 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is true but in practice that promise isn't always kept, sometimes things get deprecated and after a while they just get removed</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1002994270115987486" class="chatlog__message-container " data-message-id="1002994270115987486">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:41 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Just for concrete reference, <span class="chatlog__markdown-mention" title="bvisness#0001">@bvisness</span> and I had to modify a markdown library because of an issue when compiling it to WASM. It was literally not workable without the change.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002994839895408680" class="chatlog__message-container " data-message-id="1002994839895408680">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:43 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I agree with <span class="chatlog__markdown-mention" title="demetrispanos#5588">@demetrispanos</span>, though, that this is how <em>most people use libraries</em>, and I think that is one place where the "Handmade narrative" explicitly disagrees with the general programming culture, at least in my mind. If code inside of your project is swept out from under your feet, and you have not tested with it, then in my mind it's quite unethical to ship that to users. Even if it's ostensibly "an improvement", that is really just a <em>prediction</em>, and that <em>prediction</em> is often <em>wrong</em>.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:43 AM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="100">
<img class="chatlog__emoji chatlog__emoji--small" alt="💯" src="files/1f4af-2188D.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002995020057550879" class="chatlog__message-container " data-message-id="1002995020057550879">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:44 AM">10:44</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">So connecting with what <span class="chatlog__markdown-mention" title="AsafGartner#0955">@AsafGartner</span> said w.r.t. "adaptability", I would posit that upgrades should always be explicit &amp; directly adapted for, in a given project</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002995075367841884" class="chatlog__message-container " data-message-id="1002995075367841884">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:44 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yeah this is my point really, obviously I'm aware of the ways it can go wrong but this is by far the dominant mode of use</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002995270893715516" class="chatlog__message-container " data-message-id="1002995270893715516">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:45 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">This is one reason why I'd suggest single-header libraries are so popular in the Handmade sphere also, because they fit this pattern of use - <em>explicit</em> upgrades</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:45 AM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002995297099731035" class="chatlog__message-container " data-message-id="1002995297099731035">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:45 AM">10:45</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(And also why things like NPM get a bad <s>wrap</s> <s>rap?</s> <s>rep?</s>, because they fit this anti-adaptability pattern)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:45 AM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002995576272592957" class="chatlog__message-container " data-message-id="1002995576272592957">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:46 AM">10:46</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I'd also suggest that explicit upgrading, and considering a library as relatively stable, does offer you some better options (e.g. modifying the library without worry)</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:46 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002995660380975114" class="chatlog__message-container " data-message-id="1002995660380975114">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:46 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">single header libraries put a special kind of limitation on you <em>usually</em>, in practice they limit just how much code a sane person is willing to pack into one header, usually that's like 10 thousand lines of code one the higher end (im going to neglect the automatic stuff and the other messy stuff) but because of this it's far easier to drop the library, it's not that big</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002995715993239732" class="chatlog__message-container " data-message-id="1002995715993239732">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:46 AM">10:46</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it also doesn't have the room to make as many overarching assumptions</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002995959669739621" class="chatlog__message-container " data-message-id="1002995959669739621">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:47 AM">10:47</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">because it's not that big it's probably something a person could in theory learn and maybe you dont need to drop it and we can approach with my based strat of <em>forking</em> stuff <img loading="lazy" class="chatlog__emoji " alt="kekw" title="kekw" src="https://cdn.discordapp.com/emojis/865446640604938260.png"></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002995997644963890" class="chatlog__message-container " data-message-id="1002995997644963890">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:48 AM">10:48</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">there's not really a binary to keeping or dropping libs</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002996021862879303" class="chatlog__message-container " data-message-id="1002996021862879303">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:48 AM">10:48</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it's just like any other piece of code</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002996140167405588" class="chatlog__message-container " data-message-id="1002996140167405588">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:48 AM">10:48</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sometimes a library isn't even fully atomic, my experience for anything big is that it's really not, people just don't know how to slice it because it's hard</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002996339757559948" class="chatlog__message-container " data-message-id="1002996339757559948">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:49 AM">10:49</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">just chopping out the details you need and copying those into your project or rewriting them to accommodate feels like a relatively handmade-y narrative</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002996621690286262" class="chatlog__message-container " data-message-id="1002996621690286262">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:50 AM">10:50</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">single header just makes the chopping process simpler... usually</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002996910501662810" class="chatlog__message-container " data-message-id="1002996910501662810">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:51 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah, I think sometimes this is necessary, especially when the "knowledge acquisition" aspect is important, but the offered API or other characteristics of a library fail to meet your constraints. I mean, obviously, always check the license on a library, but if it's <a class="inserted-after" href="https://en.wikipedia.org/wiki/MIT_License" target="_blank">MIT</a> or something like that, then a very effective strategy is reusing &amp; readapting the code that the library-author wrote for a given difficult/opaque data transform that deals with a difficult subject (reverse-engineering, undocumented formats, a subtle mathematical transform, etc.)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="100">
<img class="chatlog__emoji chatlog__emoji--small" alt="💯" src="files/1f4af-2188D.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002997553379426304" class="chatlog__message-container " data-message-id="1002997553379426304">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:54 AM">10:54</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Sometimes documentation for a data format, for example, is very abstract or removed from the concrete problem, and there are popular projects that both <em>parse</em> or <em>output</em> that format correctly, <em>and</em> simultaneously have been partly responsible for the evolution of that data format over time</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002997646681706549" class="chatlog__message-container " data-message-id="1002997646681706549">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:54 AM">10:54</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">At that point, that codebase <em>is where the knowledge lies</em>, so "code reuse" is really just studying the problem in that case</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002997736683077726" class="chatlog__message-container " data-message-id="1002997736683077726">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:54 AM">10:54</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(need a <a class="inserted-after" href="https://en.wikipedia.org/wiki/DWARF" target="_blank">DWARF</a> emoji)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002997774960300052" class="chatlog__message-container " data-message-id="1002997774960300052">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:55 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">But then you'd make your own?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002997840668270762" class="chatlog__message-container " data-message-id="1002997840668270762">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002997774960300052')">
But then you'd make your own? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:55 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">a new standard! <img loading="lazy" class="chatlog__emoji " alt="😄" title="smile" src="files/twemoji_1f604.svg"></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002997904069382264" class="chatlog__message-container " data-message-id="1002997904069382264">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:55 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I mean your own implementation for parsing DWARF for instance.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002997920565563432" class="chatlog__message-container " data-message-id="1002997920565563432">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002997736683077726')">
(need a DWARF emoji) </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:55 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yea i was thinking you were talking about <a class="inserted-after" href="https://en.wikipedia.org/wiki/LLVM" target="_blank">LLVM</a> and <a class="inserted-after" href="https://en.wikipedia.org/wiki/Program_database" target="_blank">Codeview</a> but that works too lol</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002998145896153158" class="chatlog__message-container " data-message-id="1002998145896153158">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:56 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">also all their parsers seem to have the most dogshit validation stuff</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002998193501511730" class="chatlog__message-container " data-message-id="1002998193501511730">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:56 AM">10:56</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">"error: success" is about the worst thing you wanna see on a broken file</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:56 AM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002998243308871813" class="chatlog__message-container " data-message-id="1002998243308871813">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:56 AM">10:56</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is spot where they got their stuff out of the way</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:57 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002998315316682782" class="chatlog__message-container " data-message-id="1002998315316682782">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002998243308871813')">
this is spot where they got their stuff out of the way </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:57 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:57 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but it's not a library most people might be willing to accept, i'd be willing to call it sour</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1002997981714333817" class="chatlog__message-container " data-message-id="1002997981714333817">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002997904069382264')">
I mean your own implementation for parsing DWARF for instance. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:55 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Right</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002998068100202618" class="chatlog__message-container " data-message-id="1002998068100202618">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:56 AM">10:56</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Because while the knowledge from e.g. Clang is useful, it's baked in with a bunch of other assumptions/constraints that are incorrect - e.g. assumptions that make things very slow, heavyweight, or unreliable</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:56 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002998140204499114" class="chatlog__message-container " data-message-id="1002998140204499114">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:56 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Would you rather have that knowledge in the form of code that can be run/debugged, or in the form of a spec document?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002998264473337917" class="chatlog__message-container " data-message-id="1002998264473337917">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002998140204499114')">
Would you rather have that knowledge in the form of code that can be run/debugged, or in the form of a spec document? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:57 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's hard to say. I guess it depends on what kind of code <img loading="lazy" class="chatlog__emoji " alt="🙂" title="slight_smile" src="files/twemoji_1f642.svg"></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002998443150684360" class="chatlog__message-container " data-message-id="1002998443150684360">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002998068100202618')">
Because while the knowledge from e.g. Clang is useful, it's baked in with a bunch of other assumptions/constraints that are incorrect - e.g. assumptions that make things very slow, heavyweight, or unreliable </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:56 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:57 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Clang can also be called sour but depending on how much you use it doesn't matter</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1002998361592434860" class="chatlog__message-container " data-message-id="1002998361592434860">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:57 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I'm thinking of the kind that you'd end up replacing, but that's usually all there is.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002998458959024309" class="chatlog__message-container " data-message-id="1002998458959024309">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:57 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">My question is should people push for more knowledge sharing in the form of documentation?</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002998553712525344" class="chatlog__message-container " data-message-id="1002998553712525344">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:58 AM">10:58</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Or is there value in concrete examples, even if you're just effectively reverse engineering them.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1002998560003981322" class="chatlog__message-container " data-message-id="1002998560003981322">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:58 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">internals? probably not, file formats should always be documented imo</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002998643957170196" class="chatlog__message-container " data-message-id="1002998643957170196">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:58 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">and if it's an open source project then the documentation of the file format should also be open</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002998748231770232" class="chatlog__message-container " data-message-id="1002998748231770232">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 10:58 AM">10:58</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">regardless of anything, someone's gonna need to manage it, im ok with that being internal docs like in the codebase not the API but it should still be there somewhere</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1002998589598994442" class="chatlog__message-container " data-message-id="1002998589598994442">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 10:58 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think if the code is reasonable and if it's possible to run/debug, that is indeed often preferable - documentation writing is a skill, and your documentation doesn't have a typechecker and you can't run/test it. That being said, I think the line between the two is more artificial than it could be - but that is perhaps a subject for another day</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 10:58 AM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="100">
<img class="chatlog__emoji chatlog__emoji--small" alt="💯" src="files/1f4af-2188D.svg" loading="lazy">
<span class="chatlog__reaction-count">3</span>
</div>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002999080202555422" class="chatlog__message-container " data-message-id="1002999080202555422">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002998458959024309')">
My question is should people push for more knowledge sharing in the form of documentation? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:00 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think some documentation is important and useful but it could be redundant and verbose, a simple API cheatsheet and some commented code examples could work better</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1002999616557559909" class="chatlog__message-container " data-message-id="1002999616557559909">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1002998589598994442')">
I think if the code is reasonable and if it's possible to run/debug, that is indeed often preferable - documentation writing is a skill, and your documentation doesn't have a typechecker and you can't run/test it. That being said, I think the line between the two is more artificial than it could be - but that is perhaps a subject for another day </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 10:58 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:02 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve"><s>maybe we should invest in proof assistants and formal spec langs, then the comments are actually type checked :P</s></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002999857360928798" class="chatlog__message-container " data-message-id="1002999857360928798">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:03 AM">11:03</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i got a question for you guys, how sour is too sour?</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1002999922959855758" class="chatlog__message-container " data-message-id="1002999922959855758">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:03 AM">11:03</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">most of us use subpar tools all the time, at what point should a rewrite happen?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003000051368464385" class="chatlog__message-container " data-message-id="1003000051368464385">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">like we might be inclined to say "when shit goes wrong" but like you probably dont wanna rabbithole on a year long project for a one day workaround</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003000025879675001" class="chatlog__message-container " data-message-id="1003000025879675001">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Well, there's an emotional component to it. Like, if I really hate using it.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003000075447971850" class="chatlog__message-container " data-message-id="1003000075447971850">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003000025879675001')">
Well, there's an emotional component to it. Like, if I really hate using it. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">then there's that</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003000160592343090" class="chatlog__message-container " data-message-id="1003000160592343090">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">But primarily it's a question of how many bugs or other trouble is this going to introduce to my codebase over time.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003000238937747516" class="chatlog__message-container " data-message-id="1003000238937747516">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">At what point does the subpar-ness compromise the project, or my well-being, or my time? Like it is also sort of a constraint-solving problem. If I <em>had the time</em>, I'd want to rewrite a lot more than I do - this is surely partly because I do not have any commercial/business constraints on any of my side-projects</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003000262396485682" class="chatlog__message-container " data-message-id="1003000262396485682">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:04 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i kinda have the view of "i really dont think X should be <em>THE</em> library for Y job" as in i dont like it when the space gets uncompetitive</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003000367325388922" class="chatlog__message-container " data-message-id="1003000367325388922">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003000160592343090')">
But primarily it's a question of how many bugs or other trouble is this going to introduce to my codebase over time. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:05 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Agree, I had that experience with one raylib external library, many related issues/missing features all the time</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003000560103989258" class="chatlog__message-container " data-message-id="1003000560103989258">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:06 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Unfortunately, the custom implementation cost and maintenance is superior...</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003000809866399825" class="chatlog__message-container " data-message-id="1003000809866399825">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="raysan5#2998">raysan5</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003000367325388922')">
Agree, I had that experience with one raylib external library, many related issues/missing features all the time </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:07 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">that's the brings up a <em>fun</em> one, as much as i'd hate to admit it, rewriting massive mature projects is an easy way to introduce bugs they got resolved a long time ago in the older product, also means you dont have the ecosystem to engage with testing and potentially not even be able to share some testing suites... brings up the evil side of the question "when is a rewrite too sour to be done?"</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 11:07 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003000551308525588" class="chatlog__message-container " data-message-id="1003000551308525588">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:06 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">A corollary question: How do you determine the limits of a library ahead of time?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003001059268108318" class="chatlog__message-container " data-message-id="1003001059268108318">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003000551308525588')">
A corollary question: How do you determine the limits of a library ahead of time? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:08 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you simply dont have the same resources usually which is a good type of limitation to a degree, ideally it means you focus on your use case because once you're rewriting it it doesn't need to be a library anymore, at least it doesn't if you dont want it to be one</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003001125223551076" class="chatlog__message-container " data-message-id="1003001125223551076">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003000551308525588')">
A corollary question: How do you determine the limits of a library ahead of time? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:08 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It depends, I usually check for some "elements" that I consider useful, like no-memory allocations or memory allocation replacement option, same for external file accessors, option for memory accessors...</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 11:08 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003001687600013332" class="chatlog__message-container " data-message-id="1003001687600013332">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:10 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">So how far do you go when evaluating a library?</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003001835184996422" class="chatlog__message-container " data-message-id="1003001835184996422">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:11 AM">11:11</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Looking at the docs is one thing, but do you also read much of the code?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003002127645425768" class="chatlog__message-container " data-message-id="1003002127645425768">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003001835184996422')">
Looking at the docs is one thing, but do you also read much of the code? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:12 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I check the code, the exposed API and the internal API, personally I also check the coding conventions</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003002398010253435" class="chatlog__message-container " data-message-id="1003002398010253435">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:13 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I also check the provided examples, the organization and comments, and I try to run them, I think it's a good indicator of the care put into the library</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003002058162585650" class="chatlog__message-container " data-message-id="1003002058162585650">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:12 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">physically recoiling at the idea of the code probably means you shouldn't rewrite, physically recoiling at the code is probably a reason to rewrite it, just out of being a moral person trying to make the world not suck as much <img loading="lazy" class="chatlog__emoji " alt="kekw" title="kekw" src="https://cdn.discordapp.com/emojis/865446640604938260.png"></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003002187913375754" class="chatlog__message-container " data-message-id="1003002187913375754">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:12 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">the former means it's probably not something you should <s>waste</s> invest your time into</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003002225892790496" class="chatlog__message-container " data-message-id="1003002225892790496">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003002058162585650')">
physically recoiling at the idea of the code probably means you shouldn't rewrite, physically recoiling at the code is probably a reason to rewrite it, just out of being a moral person trying to make the world not suck as much <img loading="lazy" class="chatlog__emoji " alt="kekw" title="kekw" src="https://cdn.discordapp.com/emojis/865446640604938260.png"> </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:12 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">There's also the idea of contributing to the library to make it better, but we can touch on that later.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003002360085368842" class="chatlog__message-container " data-message-id="1003002360085368842">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:13 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">that's a good point i was hoping Martins could pop by for but if not I mostly agree with him until i dont so i'll Steelman that side</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003002477190320218" class="chatlog__message-container " data-message-id="1003002477190320218">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:13 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And on the subject of vetting, what can you do to make your library more easily vettable?</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003002718887096360" class="chatlog__message-container " data-message-id="1003002718887096360">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:14 AM">11:14</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">On thing that I find is often missing from library docs is the mental model behind the library. But as <span class="chatlog__markdown-mention" title="ryanfleury#4528">@ryanfleury</span> said, documentation is a skill and writing up the mental model is probably one of the harder aspects of it.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003002724943679618" class="chatlog__message-container " data-message-id="1003002724943679618">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003002477190320218')">
And on the subject of vetting, what can you do to make your library more easily vettable? </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:14 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Well, no allocators customization or no memory data access is something I don't like</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003002842187055104" class="chatlog__message-container " data-message-id="1003002842187055104">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:15 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">when they force you to do file I/O via their stuff ::((((</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003002962072846477" class="chatlog__message-container " data-message-id="1003002962072846477">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:15 AM">11:15</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i say this like i haven't done this... im the problem sometimes <img loading="lazy" class="chatlog__emoji " alt="kekw" title="kekw" src="https://cdn.discordapp.com/emojis/865446640604938260.png"></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003010206675004" class="chatlog__message-container " data-message-id="1003003010206675004">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:15 AM">11:15</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this one and memory allocators are usually big ones</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003074610217061" class="chatlog__message-container " data-message-id="1003003074610217061">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:16 AM">11:16</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but allocation schemes can get messy so i understand why they might not in certain cases</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003141169618974" class="chatlog__message-container " data-message-id="1003003141169618974">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:16 AM">11:16</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">because not all allocators are compatible with all structures</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003208643391498" class="chatlog__message-container " data-message-id="1003003208643391498">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:16 AM">11:16</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">though there's something to be said about being flexible or just not allocating for the user in the first place</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003229321297970" class="chatlog__message-container " data-message-id="1003003229321297970">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:16 AM">11:16</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">in which case you can avoid such issues</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003003277065060382" class="chatlog__message-container " data-message-id="1003003277065060382">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003002842187055104')">
when they force you to do file I/O via their stuff ::(((( </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:16 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">that's horrible... but it depends on the type of library...</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003003332383744120" class="chatlog__message-container " data-message-id="1003003332383744120">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003002962072846477')">
i say this like i haven't done this... im the problem sometimes <img loading="lazy" class="chatlog__emoji " alt="kekw" title="kekw" src="https://cdn.discordapp.com/emojis/865446640604938260.png"> </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:17 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">me too</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003003312557273118" class="chatlog__message-container " data-message-id="1003003312557273118">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:17 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but not allocating for the user is also complex because every time you need extra memory you gotta go back and talk to them</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003003441322397797" class="chatlog__message-container " data-message-id="1003003441322397797">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003003312557273118')">
but not allocating for the user is also complex because every time you need extra memory you gotta go back and talk to them </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:17 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">either via some <a class="inserted-after" href="https://en.wikipedia.org/wiki/Callback_(computer_programming)" target="_blank">callbacks</a> or our favorite... offbrand <a class="inserted-after" href="https://en.wikipedia.org/wiki/Iterator" target="_blank">iterators</a></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003534276571186" class="chatlog__message-container " data-message-id="1003003534276571186">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:17 AM">11:17</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you keep calling a function until it says to stop and even time it returns it just asks you shit...</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003602744389684" class="chatlog__message-container " data-message-id="1003003602744389684">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:18 AM">11:18</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">well it's an <a class="inserted-after" href="https://en.wikipedia.org/wiki/Event_loop" target="_blank">event loop</a> but offbrand iterator makes it stand out more as a concept</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003877836214282" class="chatlog__message-container " data-message-id="1003003877836214282">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:19 AM">11:19</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">the important thing to note is that callbacks or event loops or whatever else are usually indicative of assumptions you might not wanna make in your code</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003923130503248" class="chatlog__message-container " data-message-id="1003003923130503248">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:19 AM">11:19</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">they tally up to "i really dont wanna deal with this bs"</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003003985826938971" class="chatlog__message-container " data-message-id="1003003985826938971">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:19 AM">11:19</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it's fine if a library isn't completely perfect, none is, it's a time saver</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003004110964019221" class="chatlog__message-container " data-message-id="1003004110964019221">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:20 AM">11:20</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you sacrifice a little bit of personal peace for the sake of getting some shit done or not needing to have the mental overhead of dealing with another person's crap</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003004142555508847" class="chatlog__message-container " data-message-id="1003004142555508847">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:20 AM">11:20</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">especially not a person or people who you can't directly contact</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003004261317218304" class="chatlog__message-container " data-message-id="1003004261317218304">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:20 AM">11:20</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is actually one of the biggest problems when it comes to libraries and part of the reason i might promote rewrites</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003004429282320457" class="chatlog__message-container " data-message-id="1003004429282320457">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:21 AM">11:21</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">the maintainers are simply not my friends, they're not my colleagues, if i need LLVM fixed i cry, if i need any huge library fixed i need to go learn their BS along with the original problem space</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003004473511247904" class="chatlog__message-container " data-message-id="1003004473511247904">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:21 AM">11:21</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">if i need a feature added, i also cry</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003004640687837274" class="chatlog__message-container " data-message-id="1003004640687837274">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:22 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah, that seems to be a problem with big libraries and especially frameworks.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003004680407887942" class="chatlog__message-container " data-message-id="1003004680407887942">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:22 AM">11:22</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">On the other hand if you can make a contribution it will have a larger impact.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003004698338541738" class="chatlog__message-container " data-message-id="1003004698338541738">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:22 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">library maintenance is a hard topic....</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003004821370060850" class="chatlog__message-container " data-message-id="1003004821370060850">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:23 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">When you buy into a big library, you sell some personal responsibility away which can be good... until things go wrong</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003005287294304326" class="chatlog__message-container " data-message-id="1003005287294304326">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:24 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think there's a point in every library where it stops making things easier and starts making things harder.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003005305992523807" class="chatlog__message-container " data-message-id="1003005305992523807">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:24 AM">11:24</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(Or several points)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003005418190151811" class="chatlog__message-container " data-message-id="1003005418190151811">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:25 AM">11:25</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And the skill to master is anticipating where those points are, and if your projects fits in before you hit those points.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003005552743432333" class="chatlog__message-container " data-message-id="1003005552743432333">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003005287294304326')">
I think there's a point in every library where it stops making things easier and starts making things harder. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:25 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">From my experience, that happens when you try to give too much control to the user</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003005885087490098" class="chatlog__message-container " data-message-id="1003005885087490098">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:27 AM">11:27</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">A small group of experienced users will love it but many other users won't... I think it's difficult to find the right balance</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003006283902881903" class="chatlog__message-container " data-message-id="1003006283902881903">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:28 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">as much as we might meme about weird dependency stacks i feel like this might be a "justified stack", the low level users have one library and the high level people can wrap over it... sometimes</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003006317390213272" class="chatlog__message-container " data-message-id="1003006317390213272">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:29 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Wouldn't different levels of granularity help with that?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003006401532133460" class="chatlog__message-container " data-message-id="1003006401532133460">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003006283902881903')">
as much as we might meme about weird dependency stacks i feel like this might be a "justified stack", the low level users have one library and the high level people can wrap over it... sometimes </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:29 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">or in the reuse case, you factor out the BS to just handle your case</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006512161112224" class="chatlog__message-container " data-message-id="1003006512161112224">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:29 AM">11:29</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">maybe the library lets you choose custom allocators but you dont care, so you have a function like <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">JustGiveMeTheShtuffs(...)</span></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006579949445311" class="chatlog__message-container " data-message-id="1003006579949445311">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:30 AM">11:30</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is neutral code reuse, it could be good, could be bad</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006677508960366" class="chatlog__message-container " data-message-id="1003006677508960366">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:30 AM">11:30</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it helps you which is the point but it also means that the library wasn't helping you</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006692977549453" class="chatlog__message-container " data-message-id="1003006692977549453">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:30 AM">11:30</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but since it's small it's fine</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006853996875787" class="chatlog__message-container " data-message-id="1003006853996875787">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:31 AM">11:31</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">because it's small it's also the type of thing that might fit into a pull request</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006917989367841" class="chatlog__message-container " data-message-id="1003006917989367841">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:31 AM">11:31</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">not all library mods have to be "selfish"</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003006965439529120" class="chatlog__message-container " data-message-id="1003006965439529120">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:31 AM">11:31</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">not all changes need to be rewrites</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003007022675021885" class="chatlog__message-container " data-message-id="1003007022675021885">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:31 AM">11:31</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sometimes we can simply increment on the project but this gets really complicated to plan out</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003007493368205332" class="chatlog__message-container " data-message-id="1003007493368205332">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:33 AM">11:33</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">when do you guys think it's a good time to really just increment vs rewrite</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003007613723758653" class="chatlog__message-container " data-message-id="1003007613723758653">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:34 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It depends on the size of the rewrite.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003007627183276193" class="chatlog__message-container " data-message-id="1003007627183276193">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:34 AM">11:34</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And on the number of unknowns.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003007693889482802" class="chatlog__message-container " data-message-id="1003007693889482802">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:34 AM">11:34</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">A lot of people are also worried about introducing bugs.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003007911540314142" class="chatlog__message-container " data-message-id="1003007911540314142">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003000809866399825')">
that's the brings up a <em>fun</em> one, as much as i'd hate to admit it, rewriting massive mature projects is an easy way to introduce bugs they got resolved a long time ago in the older product, also means you dont have the ecosystem to engage with testing and potentially not even be able to share some testing suites... brings up the evil side of the question "when is a rewrite too sour to be done?" </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 11:07 AM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:35 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i brought up the side of "oh the rewrite might introduce bugs" but now i think i'll try to bring over the "a rewrite can be a chance to fix bugs" side</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008005740187709" class="chatlog__message-container " data-message-id="1003008005740187709">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:35 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And one thing that we haven't explicitly discussed is the aspect of saving time by using libraries.</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003008010525872229" class="chatlog__message-container " data-message-id="1003008010525872229">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003007693889482802')">
A lot of people are also worried about introducing bugs. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:35 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's a legit worry, because most contributions come with no maintenance</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008217263120398" class="chatlog__message-container " data-message-id="1003008217263120398">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="raysan5#2998">raysan5</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003008010525872229')">
It's a legit worry, because most contributions come with no maintenance </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:36 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I was thinking more in terms of using "battle tested" vs writing your own from scratch.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003008174049210459" class="chatlog__message-container " data-message-id="1003008174049210459">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003008005740187709')">
And one thing that we haven't explicitly discussed is the aspect of saving time by using libraries. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:36 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you usually save time... if everything goes as expected...</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008224364081253" class="chatlog__message-container " data-message-id="1003008224364081253">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:36 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">ideally any decently sized library has a process to which you contribute with, if it doesn't... don't contribute it's probably a mess or they're not ready</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003008283231146014" class="chatlog__message-container " data-message-id="1003008283231146014">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:36 AM">11:36</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">stuff like a testing suite and docs on the contrib process</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003008345118085190" class="chatlog__message-container " data-message-id="1003008345118085190">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:37 AM">11:37</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it's usually not worth trying to increment on these projects just yet</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003008378810925086" class="chatlog__message-container " data-message-id="1003008378810925086">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:37 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">might be better off with a rewrite or a fork</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003008375874912297" class="chatlog__message-container " data-message-id="1003008375874912297">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:37 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think people have the impression that any decently-used library had it's bugs worked out.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008537653428385" class="chatlog__message-container " data-message-id="1003008537653428385">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003008375874912297')">
I think people have the impression that any decently-used library had it's bugs worked out. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:37 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is true in our perfect world but a lot of projects will grow in stars and popularity far faster than the project can actually """scale to enterprise"""</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008616384712766" class="chatlog__message-container " data-message-id="1003008616384712766">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003008375874912297')">
I think people have the impression that any decently-used library had it's bugs worked out. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:38 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it's not that they're all worked out, it's that many of them have been encountered</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008645186985994" class="chatlog__message-container " data-message-id="1003008645186985994">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:38 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">that's true too</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008656188653658" class="chatlog__message-container " data-message-id="1003008656188653658">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:38 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">whereas your rewrite has never been put under stress at all</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003008808626421822" class="chatlog__message-container " data-message-id="1003008808626421822">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:38 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">But that depends on age and the volume of contributions.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003008896941686834" class="chatlog__message-container " data-message-id="1003008896941686834">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:39 AM">11:39</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I've had "popular" libraries break just a few days after I started using them.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003009036733653053" class="chatlog__message-container " data-message-id="1003009036733653053">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003008375874912297')">
I think people have the impression that any decently-used library had it's bugs worked out. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:39 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Completely agree, far from reality</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003009223933829280" class="chatlog__message-container " data-message-id="1003009223933829280">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:40 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yea that's one of the weird spots which is that a lot of the people who might contribute to the popularity of a project aren't necessarily contributing or seriously engaging with that project</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009264937349160" class="chatlog__message-container " data-message-id="1003009264937349160">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:40 AM">11:40</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sometimes they just think it "will" become cool so they hang around and star it</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009335053520906" class="chatlog__message-container " data-message-id="1003009335053520906">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:41 AM">11:41</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">so you might see 5k stars and the project is still buggy and in prerelease</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003009459578224702" class="chatlog__message-container " data-message-id="1003009459578224702">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:41 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">many/most libraries are bad / have bugs, but that's not really the relevant comparison point</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009516104847390" class="chatlog__message-container " data-message-id="1003009516104847390">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:41 AM">11:41</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">your library will have bugs too</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003009567107600544" class="chatlog__message-container " data-message-id="1003009567107600544">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:41 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yes im aware, the point is that your bugs are bugs you can fix</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009624158519306" class="chatlog__message-container " data-message-id="1003009624158519306">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:42 AM">11:42</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you might not be willing to go dig into a million line project</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009714050830339" class="chatlog__message-container " data-message-id="1003009714050830339">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:42 AM">11:42</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but you might be willing to deal with 10k lines you factored out of said project</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003009822821720207" class="chatlog__message-container " data-message-id="1003009822821720207">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003009714050830339')">
but you might be willing to deal with 10k lines you factored out of said project </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:42 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I agree but I think this is kind of changing the goalpost ... if you can replace a 1M library with 10kloc you control, obviously that's good</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009906401607773" class="chatlog__message-container " data-message-id="1003009906401607773">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:43 AM">11:43</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">but the main effect there is you reduced the code by 99% and so all code-related problems are also reduced by 99%</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003009924709756958" class="chatlog__message-container " data-message-id="1003009924709756958">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003009822821720207')">
I agree but I think this is kind of changing the goalpost ... if you can replace a 1M library with 10kloc you control, obviously that's good </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:43 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">not quite, im not saying rewrite 1M into 1kloc, im saying take out the relevant details and just have that in your rewrite</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 11:43 AM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003009988681281666" class="chatlog__message-container " data-message-id="1003009988681281666">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:43 AM">11:43</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">simply less surface are for bugs, this is why the main reason i recommend a rewrite is just if you have a domain specific stuff</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003009725895557230" class="chatlog__message-container " data-message-id="1003009725895557230">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:42 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">So another point for library evaluation: "how debuggable does this look?"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003010229610500218" class="chatlog__message-container " data-message-id="1003010229610500218">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003009725895557230')">
So another point for library evaluation: "how debuggable does this look?" </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:44 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i'd just poke it with a debugger and if i cry then it's bad, it's really abstract for me</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003010337278271528" class="chatlog__message-container " data-message-id="1003010337278271528">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:44 AM">11:44</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">debuggers being able to let you step around code means you can build an intuition for the control flow of a program given some input</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003010378004959283" class="chatlog__message-container " data-message-id="1003010378004959283">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003009725895557230')">
So another point for library evaluation: "how debuggable does this look?" </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:45 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">That's a good reason to take a look to code formatting and conventions before using it, just in case... following some code bases could be really complex</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003011254975221790" class="chatlog__message-container " data-message-id="1003011254975221790">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:48 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I want to touch on the time saving aspect a bit more, as this is a primary reason people go for libraries in the first place.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003011442561265744" class="chatlog__message-container " data-message-id="1003011442561265744">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:49 AM">11:49</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I've had cases where libraries obviously saved a lot of time. Both in terms of knowledge acquisition, and in many cases just code writing time.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003011489013178469" class="chatlog__message-container " data-message-id="1003011489013178469">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:49 AM">11:49</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I also had cases where libraries turned out to be a time sink.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003012188543393792" class="chatlog__message-container " data-message-id="1003012188543393792">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:52 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">there's the age old metric of lines of code but it's not accurate and this stuff is particularly abstract... a lot of libraries have you learn their stuff rather than learn the problem space, this is fine, it's part of why we buy into libraries but if there's a disconnect where you needed to learn more to do their stuff than just learning the problem space, ideally as Handmade-y people we have an idea of what's behind the scenes to some degree, from there you might be willing to say "While i've learned to do things, i dont understand the problem and i haven't gotten any closer to solving my personal problems so i should probably re-evaluate my time"</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 11:52 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003012344873484308" class="chatlog__message-container " data-message-id="1003012344873484308">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:52 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think it depends on the scope of the library, for example, a file-format loading library has a narrower scope than a multiplatform window/graphics initialization library</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003012630933418046" class="chatlog__message-container " data-message-id="1003012630933418046">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003011254975221790')">
I want to touch on the time saving aspect a bit more, as this is a primary reason people go for libraries in the first place. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:54 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think it's worth making the strongest possible argument for preferring existing libraries, so we can frame our criticisms or reactions
- save time coding it yourself, possibly a huge amount of time if it's a lot of code or if you'd need to learn a lot to do it
- get something higher quality than you would make yourself, because it is used in many different situations and has been subjected to selection pressure; also, if you are not an expert in the problem domain and the library author is
- get a built-in knowledge community you can ask for help with problems, since other people are using the library
- increase transferability of skills across teams, since the same external library can be used in many teams</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">4</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003013217477476454" class="chatlog__message-container " data-message-id="1003013217477476454">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 11:56 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">The community aspect can be big for certain kinds of libraries.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003014081525076151" class="chatlog__message-container " data-message-id="1003014081525076151">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 11:59 AM">11:59</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">We're at the two hours mark, so I'd like to switch gears and talk about the community's stance on library usage.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003014294327263292" class="chatlog__message-container " data-message-id="1003014294327263292">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:00 PM">12:00</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">There's a perception that we are all about DIY-only, from scratch, etc.. but that's obviously not the case.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003014386945900574" class="chatlog__message-container " data-message-id="1003014386945900574">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:01 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">generally we view rewrites as a sort of moral good, there's always a reason that reinventing the wheel is valid considering how many mediocre wheels exist</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003014534853820468" class="chatlog__message-container " data-message-id="1003014534853820468">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:01 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">When it comes to reinventing the wheel, I'm not sure I would even call it a rewrite.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003014603942404188" class="chatlog__message-container " data-message-id="1003014603942404188">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:01 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">sure do conflate those things which is something im sorta getting to</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003014770724708353" class="chatlog__message-container " data-message-id="1003014770724708353">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:02 PM">12:02</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">we sometimes treat a rewrite as a reinvention which is generally why things like the wheel reinvention jam have to clarify that it's more than just "X but good" or why we have so many memes about about "Y but good"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003015335647117474" class="chatlog__message-container " data-message-id="1003015335647117474">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:04 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think it's probably good to clarify some common beliefs and non-beliefs</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003015409928261693" class="chatlog__message-container " data-message-id="1003015409928261693">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:05 PM">12:05</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">for example, it's easy for newcomers to get the message "never use external libraries"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003015507496140881" class="chatlog__message-container " data-message-id="1003015507496140881">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:05 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(partly because that's an easy read of some of what is said, and partly because that's what Handmade Hero did)</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003015445735022624" class="chatlog__message-container " data-message-id="1003015445735022624">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:05 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think it's not about the rewrite or reinventing the wheel, that's just a very small percentadge of the work. When you create something new it requires a lot of side work</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003015808684929105" class="chatlog__message-container " data-message-id="1003015808684929105">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:06 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think, at the very least, Handmade explicitly rejects the idea that you should rely on a library without having a fairly strong understanding of what it is doing, and being capable of at least <em>learning</em> how to replace it if necessary. Handmade promotes the idea of self-reliance and responsibility over what you ship to users, so if you use a library, you are responsible for what the library does</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="100">
<img class="chatlog__emoji chatlog__emoji--small" alt="💯" src="files/1f4af-2188D.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003016004508586085" class="chatlog__message-container " data-message-id="1003016004508586085">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:07 PM">12:07</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">So it's very much opposed to a popular school of thought, which is that you only need to understand the abstraction, and the details will be taken care of by someone else</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003016021063508059" class="chatlog__message-container " data-message-id="1003016021063508059">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003015808684929105')">
I think, at the very least, Handmade explicitly rejects the idea that you should rely on a library without having a fairly strong understanding of what it is doing, and being capable of at least <em>learning</em> how to replace it if necessary. Handmade promotes the idea of self-reliance and responsibility over what you ship to users, so if you use a library, you are responsible for what the library does </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:07 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I'd agree with this but I think it's a process not really an end-state</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003016059613364365" class="chatlog__message-container " data-message-id="1003016059613364365">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:07 PM">12:07</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">you can't just decide to be fully self-reliant</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003016126579609610" class="chatlog__message-container " data-message-id="1003016126579609610">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:07 PM">12:07</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">not instantaneously anyway</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003016194149851297" class="chatlog__message-container " data-message-id="1003016194149851297">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">and no one can be fully self-reliant across all subjects</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003016136155205703" class="chatlog__message-container " data-message-id="1003016136155205703">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah, that's fair</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003016291638063244" class="chatlog__message-container " data-message-id="1003016291638063244">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it's more about the philosophy than an exact practice</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003016326450790460" class="chatlog__message-container " data-message-id="1003016326450790460">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">it builds a stronger character to be willing to replace things</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group" style="">
<div id="chatlog__message-container-1003016352929415248" class="chatlog__message-container " data-message-id="1003016352929415248">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">rather than always spending time replacing things</span>
</div>
</div>
</div>
</div>
</div><div class="chatlog__message-group">
<div id="chatlog__message-container-1003016297866604684" class="chatlog__message-container " data-message-id="1003016297866604684">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah. That's what I was trying to get at with "being capable of <em>learning</em> how to replace it"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003016332834504744" class="chatlog__message-container " data-message-id="1003016332834504744">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:08 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's not that you have to go study the PNG spec before using <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span>. It's that, if <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> had some critical flaw <em>for your purposes</em>, you'd be capable of ditching it, when push comes to shove</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:10 PM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="boot">
<img class="chatlog__emoji chatlog__emoji--small" alt="👢" src="files/1f462-AAB3B.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003016451524939796" class="chatlog__message-container " data-message-id="1003016451524939796">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003016332834504744')">
It's not that you have to go study the PNG spec before using <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span>. It's that, if <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> had some critical flaw <em>for your purposes</em>, you'd be capable of ditching it, when push comes to shove </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 12:10 PM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:09 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">well, I created my own single-file header-only PNG loader... <img loading="lazy" class="chatlog__emoji " alt="😛" title="stuck_out_tongue" src="files/twemoji_1f61b.svg"></span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003016556067963000" class="chatlog__message-container " data-message-id="1003016556067963000">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="raysan5#2998">raysan5</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003016451524939796')">
well, I created my own single-file header-only PNG loader... <img loading="lazy" class="chatlog__emoji " alt="😛" title="stuck_out_tongue" src="files/twemoji_1f61b.svg"> </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:09 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Yeah, and that may have made sense for your purposes - and you <em>could do it</em>!</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003016844363436063" class="chatlog__message-container " data-message-id="1003016844363436063">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:10 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Main pourpose was mostly learning and understanding, curiosity about how something I've been using for years work in the inside</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003016900558737478" class="chatlog__message-container " data-message-id="1003016900558737478">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:11 PM">12:11</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Actually I'm not using it, at least just yet</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003017012391448688" class="chatlog__message-container " data-message-id="1003017012391448688">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:11 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think for example if you get off the ground with <span class="chatlog__markdown-pre chatlog__markdown-pre--inline">stb_image</span> and then someday decide you need to really be robust against possibly-hostile inputs, at that point you should be able to drop down and replace it. Or, I mean, hire someone who does, for that matter</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003017235255791636" class="chatlog__message-container " data-message-id="1003017235255791636">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:12 PM">12:12</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(So even if you aren't willing to invest the time to go figure out PNG yourself, you're familiar with the nuances of the issue and what you'd do to avoid certain flaws in a library)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">3</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003017421520642088" class="chatlog__message-container " data-message-id="1003017421520642088">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:13 PM">12:13</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Because I agree that fundamentally, you can't know everything - and certainly every time you use code you haven't fully vetted, you could be relying on someone else's bad decisions. That's sort of unavoidable. But I guess Handmade's "take" - if there is one - would be just pointing out this fact, and so minimizing the drawbacks wherever possible. Not just shipping random software that you naively trust to users.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:14 PM">(edited)</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="hmn">
<img class="chatlog__emoji chatlog__emoji--small" alt="hmn" src="files/468520574600085514-E9638.png" loading="lazy">
<span class="chatlog__reaction-count">3</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003017544380203088" class="chatlog__message-container " data-message-id="1003017544380203088">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/d14912903532d0bfd3b1ae0e7288de9e-A1757.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="raysan5#2998" data-user-id="427495923955007491">raysan5</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:13 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">agree</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003018071566462996" class="chatlog__message-container " data-message-id="1003018071566462996">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:15 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">probably a good idea to poke a bit at the <em>masters of code reuse</em></span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003018101228568596" class="chatlog__message-container " data-message-id="1003018101228568596">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:15 PM">12:15</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">aka the package managers of the world</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003018398285963296" class="chatlog__message-container " data-message-id="1003018398285963296">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:17 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">This feels like one of those definitional problems, where both extremes are clearly wrong - "no I must write my own PNG parser! But first, I must write my own GPU driver! But <em>first</em>, I must write my own compiler!", vs. "I will gladly import 1000+ dependencies into my project. They'll just get better, faster, and more secure/reliable over time, and I don't have to change anything!"</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003018475381469306" class="chatlog__message-container " data-message-id="1003018475381469306">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:17 PM">12:17</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">The problem, to me, is that such a large portion of the programming sphere is very much on the latter side. In some cases, it is explicitly practiced and taught.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:18 PM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003018583762280469" class="chatlog__message-container " data-message-id="1003018583762280469">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:17 PM">12:17</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And so even though the former is not correct, the correct <em>gradient</em> is actually in the direction of the former</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003018631938060308" class="chatlog__message-container " data-message-id="1003018631938060308">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:17 PM">12:17</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's of course easy to overcorrect, and I think everyone should be mindful of that</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003018788943433919" class="chatlog__message-container " data-message-id="1003018788943433919">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:18 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">It's not so much that there's a sweet spot between them, it's more that currently we're very much off to one side.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003018820484612127" class="chatlog__message-container " data-message-id="1003018820484612127">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:18 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Right</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003018983060025495" class="chatlog__message-container " data-message-id="1003018983060025495">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:19 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">There's a big range of reasonability between them that doesn't imply <a class="inserted-after" href="https://en.wikipedia.org/wiki/Not_invented_here" target="_blank">NIH</a> or <a class="inserted-after" href="https://en.wikipedia.org/wiki/Npm_(software)" target="_blank">NPM</a>.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003019069232005140" class="chatlog__message-container " data-message-id="1003019069232005140">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:19 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I also think, to some degree, you <em>need</em> people at various sweet spots in that range.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019142732980306" class="chatlog__message-container " data-message-id="1003019142732980306">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:19 PM">12:19</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Like, the fact that a lot of people in the community have chosen to work on programming tools, when they originally started working on games, is not obviously a net loss</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019217374826649" class="chatlog__message-container " data-message-id="1003019217374826649">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:20 PM">12:20</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Many people might go "lol wow you started by trying to ship a game but then you went and wrote a useful library for programmers? lol loser"</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019353324798033" class="chatlog__message-container " data-message-id="1003019353324798033">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:20 PM">12:20</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">But, I mean, that is just so ridiculous that it is not really worth addressing - having more people iterate on difficult, low-level parts of ecosystems and tooling is actually a net win</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019445519786034" class="chatlog__message-container " data-message-id="1003019445519786034">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:21 PM">12:21</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">At the same time, you'll have people who <em>do</em> just want to make games, and they'll be a bit closer to the "NPM" side, and that's okay too</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019533176537118" class="chatlog__message-container " data-message-id="1003019533176537118">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:21 PM">12:21</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">But I think Handmade's goal is just to act as some kind of counter-balancing force to the NPM-extreme, which seems pervasive across <em>many</em> areas. Or, at least, to provide a community for people who are not on board with that extreme.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:24 PM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003019757492109385" class="chatlog__message-container " data-message-id="1003019757492109385">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:22 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Computers should be programmable, and they should be as programmable as possible to as many people as possible.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
<div class="chatlog__reaction" title="heart">
<img class="chatlog__emoji chatlog__emoji--small" alt="❤️" src="files/2764-02CD4.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
<div class="chatlog__reaction" title="handmadeGlove">
<img class="chatlog__emoji chatlog__emoji--small" alt="handmadeGlove" src="files/567109408300073000-1114E.png" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019804338290730" class="chatlog__message-container " data-message-id="1003019804338290730">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:22 PM">12:22</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And that can mean different things depending on where you are on that range.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003019892167024661" class="chatlog__message-container " data-message-id="1003019892167024661">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955">AsafGartner</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003019757492109385')">
Computers should be programmable, and they should be as programmable as possible to as many people as possible. </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:22 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">the problem that comes up is that if you make certain things easier it doesn't mean people will do them less, it means people can do them faster and will do them more often</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019919836860506" class="chatlog__message-container " data-message-id="1003019919836860506">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:23 PM">12:23</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is the NPM problem imo</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003019948165185549" class="chatlog__message-container " data-message-id="1003019948165185549">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:23 PM">12:23</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is what we sorta fight against</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003020104734363788" class="chatlog__message-container " data-message-id="1003020104734363788">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:23 PM">12:23</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">the weird thing is im not really sure how to fight that without some meme-y level of gatekeeping or having shitty tooling for installing dependencies, it's mostly a cultural thing so maybe there's something to be said about that</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003020411740631121" class="chatlog__message-container " data-message-id="1003020411740631121">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:25 PM">12:25</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i dont think rhetorically we're ready to say "guys libraries good actually" as a general statement because the culture is still in NPM's hands</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003020519429386312" class="chatlog__message-container " data-message-id="1003020519429386312">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:25 PM">12:25</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">once we do push things back we can start to sound "normal"</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003020778515742801" class="chatlog__message-container " data-message-id="1003020778515742801">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:26 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Well I think it's not necessarily about changing everyone's minds by persuasion. Personally, I am sort of more in favor of forcing people to change their minds by competition. If Handmade ideas cannot reasonably outcompete everyone in an area, then hey, maybe people have just decided that the crappy drawbacks they're subject to are worth it, and the benefits from higher quality are not yet big enough.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:26 PM">(edited)</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003021008900464670" class="chatlog__message-container " data-message-id="1003021008900464670">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:27 PM">12:27</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">But, point is, you <em>need</em> people iterating on the quality part, because at some point, those wins <em>will</em> be big enough, and that point, everyone coasting on their crappy tech inertia will have a very difficult time competing. And so, just by market pressure &amp; people working passionately on what they want, you'll see improvement over time.</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:30 PM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003021210134773890" class="chatlog__message-container " data-message-id="1003021210134773890">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528">ryanfleury</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003020778515742801')">
Well I think it's not necessarily about changing everyone's minds by persuasion. Personally, I am sort of more in favor of forcing people to change their minds by competition. If Handmade ideas cannot reasonably outcompete everyone in an area, then hey, maybe people have just decided that the crappy drawbacks they're subject to are worth it, and the benefits from higher quality are not yet big enough. </span>
<span class="chatlog__reference-edited-timestamp" title="30-Jul-22 12:26 PM">(edited)</span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:28 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">yea this is why i really like seeing new projects pop by and why i think that we should invest some time into incremental change, there's a lot of things that exist in the culture and if you start to show people that you're right, they can actually move towards you</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003021271547772989" class="chatlog__message-container " data-message-id="1003021271547772989">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:28 PM">12:28</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">this is where we get into a problem since we've built a sort of island in a lot of ways</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003021309091000380" class="chatlog__message-container " data-message-id="1003021309091000380">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:28 PM">12:28</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">which is probably why newcomers have such ideas of us</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003021359263268886" class="chatlog__message-container " data-message-id="1003021359263268886">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:28 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Right. Persuade by doing &amp; outcompeting, not by arguing with people.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003021458496303114" class="chatlog__message-container " data-message-id="1003021458496303114">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:29 PM">12:29</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">This is, I suppose, sort of a tangent for this fishbowl, so sorry for getting off topic again :)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003021458945093722" class="chatlog__message-container " data-message-id="1003021458945093722">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:29 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">"we're some Assembly, C and C++ nerds who like rewrites :P" we don't look that good in a lot of ways but if you show someone <a class="inserted-after" href="https://remedybg.itch.io/remedybg" target="_blank">remedybg</a> you might turn some heads</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003021532764852254" class="chatlog__message-container " data-message-id="1003021532764852254">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:29 PM">12:29</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">oh rip, we're doing it</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003021759181762680" class="chatlog__message-container " data-message-id="1003021759181762680">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:30 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think this is why it's also important to advertise when doing things differently. Like how raylib mentions that it uses no external dependencies, and how it clearly improves the build process.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003022150195744890" class="chatlog__message-container " data-message-id="1003022150195744890">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(231, 76, 60)" title="NeGate#2743">NeGate</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003021458945093722')">
"we're some Assembly, C and C++ nerds who like rewrites :P" we don't look that good in a lot of ways but if you show someone remedybg you might turn some heads </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:31 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">NPM looks cool because you can do anything with it if you type the right install command, same with python and some imports... we dont have that sort of appeal of package management and we really dont need it... the solution to package management is just not to centralize it in my opinion, there doesn't need to be only one way to grab packages, another thing we run into is that we've separated stuff like cloning a repo from install a package and now it's more promoted to just use what you're being fed and not just fork and make your own changes or even really look into the codebase</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003022196802846760" class="chatlog__message-container " data-message-id="1003022196802846760">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:32 PM">12:32</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">i wonder about that stuff but i dont have any concrete views on the matter</span>
<span class="chatlog__edited-timestamp" title="30-Jul-22 12:32 PM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003022390663594084" class="chatlog__message-container " data-message-id="1003022390663594084">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:32 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Ease of distribution is always a win, and package managers win on that.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003022521249046650" class="chatlog__message-container " data-message-id="1003022521249046650">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:33 PM">12:33</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Unfortunately that can lead to excessive distribution.</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003022839357648909" class="chatlog__message-container " data-message-id="1003022839357648909">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:34 PM">12:34</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">And to bring it back to responsibility, how do you take responsibility for all that code?</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003023407069278318" class="chatlog__message-container " data-message-id="1003023407069278318">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588" data-user-id="239823533989953546">demetrispanos</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:36 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">I think expertise in using a library, or libraries, is its own skill</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003023458462089410" class="chatlog__message-container " data-message-id="1003023458462089410">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:37 PM">12:37</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">and really, that's the dominant skill the market is selecting for right now in most application domains</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003023580247883866" class="chatlog__message-container " data-message-id="1003023580247883866">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:37 PM">12:37</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">so in the same way someone might be a competent C programmer (and you expect that means something about practices for memory safety) then someone can be a competent user of various important libraries</span>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003023645276372992" class="chatlog__message-container " data-message-id="1003023645276372992">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:37 PM">12:37</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">(and that implies knowing tradeoffs, common bugs, etc.)</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003024289827651604" class="chatlog__message-container " data-message-id="1003024289827651604">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__reference-symbol"></div>
<img class="chatlog__avatar" src="files/7bc4eec5af7c91519b836698484ac0af-0395C.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__reference">
<img class="chatlog__reference-avatar" src="files/89747c254631bcfd05c5c3e7141389aa-A1FB9.png" alt="Avatar" loading="lazy">
<div class="chatlog__reference-author" style="color: rgb(233, 30, 99)" title="demetrispanos#5588">demetrispanos</div>
<div class="chatlog__reference-content">
<span class="chatlog__reference-link" onclick="scrollToMessage(event, '1003023407069278318')">
I think expertise in using a library, or libraries, is its own skill </span>
</div>
</div>
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(231, 76, 60)" title="NeGate#2743" data-user-id="366728629947727873">NeGate</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:40 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">being good at a library, especially a big and popular one is really just the first step to understanding the status quo and from the status quo is where you learn the problem and how we can move forward... it's rare that a big project has such deep complaints someone with a surface level understanding can levy</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003026204099620935" class="chatlog__message-container " data-message-id="1003026204099620935">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:48 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Well, we've gone for nearly 3 hours, so I think it's a good time to call it.</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="thumbsup">
<img class="chatlog__emoji chatlog__emoji--small" alt="👍" src="files/1f44d-B3F5F.svg" loading="lazy">
<span class="chatlog__reaction-count">2</span>
</div>
</div>
</div>
</div>
</div>
<div id="chatlog__message-container-1003026365915877557" class="chatlog__message-container " data-message-id="1003026365915877557">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<div class="chatlog__short-timestamp" title="30-Jul-22 12:48 PM">12:48</div>
</div>
<div class="chatlog__message-primary">
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Thank you all for participating.</span>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003026472623165651" class="chatlog__message-container " data-message-id="1003026472623165651">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/e666f2aa4fa50eade7484de6a45639dc-A5D0D.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(52, 152, 219)" title="ryanfleury#4528" data-user-id="137051765328576512">ryanfleury</span>
<span class="chatlog__timestamp">Jul 30, 2022 12:49 PM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Thanks for organizing <span class="chatlog__markdown-mention" title="AsafGartner#0955">@AsafGartner</span>, was a fun conversation!</span>
</div>
<div class="chatlog__reactions">
<div class="chatlog__reaction" title="point_up">
<img class="chatlog__emoji chatlog__emoji--small" alt="☝️" src="files/261d-3A498.svg" loading="lazy">
<span class="chatlog__reaction-count">1</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="chatlog__message-group">
<div id="chatlog__message-container-1003302472791642122" class="chatlog__message-container " data-message-id="1003302472791642122">
<div class="chatlog__message">
<div class="chatlog__message-aside">
<img class="chatlog__avatar" src="files/0-EB806.png" alt="Avatar" loading="lazy">
</div>
<div class="chatlog__message-primary">
<div class="chatlog__header">
<span class="chatlog__author" style="color: rgb(250, 186, 71)" title="AsafGartner#0955" data-user-id="239737951410454528">AsafGartner</span>
<span class="chatlog__timestamp">Jul 31, 2022 07:05 AM</span>
</div>
<div class="chatlog__content chatlog__markdown">
<span class="chatlog__markdown-preserve">Jump to top: <a href="https://discord.com/channels/239737791225790464/1002984121968103505/1002984505121964196" onclick="scrollToMessage(event, '1002984505121964196')">https://discord.com/channels/239737791225790464/1002984121968103505/1002984505121964196</a></span>
<span class="chatlog__edited-timestamp" title="31-Jul-22 07:06 AM">(edited)</span>
</div>
</div>
</div>
</div>
</div>
</div>