<story><title>Programming Is Forgetting: Toward a New Hacker Ethic</title><url>http://opentranscripts.org/transcript/programming-forgetting-new-hacker-ethic/</url></story><parent_chain><item><author>drewcrawford</author><text>The audio &amp;quot;loss&amp;quot; example sounds plausible in passing (and the diagram looks plausible) but is actually incorrect.  The frequency and timing dimensions of analog audio below the Nyquist frequency is preserved &lt;i&gt;perfectly&lt;/i&gt; by digital quantization, which in practice for CD&amp;#x2F;DVD usecase are the full spectrum of the human ear. This counterintuitive result is explored in some detail in [1].&lt;p&gt;It is true that the amplitude dimension (only) is quantized to (typically, 16 or 24) bits, which you could detect with a very good oscilloscope.  However 24 bits is way smaller than any human ear can discern.  Visually, it is like looking at two stacks of dollar bills that are 6,000 feet high and trying to discern which one has one extra bill.&lt;p&gt;I suppose that is technically &amp;quot;lossy&amp;quot;, but the only thing we are &amp;quot;forgetting&amp;quot; is something no human could perceive, or remember.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;people.xiph.org&amp;#x2F;~xiphmont&amp;#x2F;demo&amp;#x2F;neil-young.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;people.xiph.org&amp;#x2F;~xiphmont&amp;#x2F;demo&amp;#x2F;neil-young.html&lt;/a&gt;</text></item></parent_chain><comment><author>Espressosaurus</author><text>It&amp;#x27;s still lossy!  Maybe it isn&amp;#x27;t lossy to the human ear, but what is the data going to be used for?  There are assumptions you&amp;#x27;re building in here.  What if I&amp;#x27;m now interested in using the data for a bat ear model?  All of a sudden, that information is now of limited use.&lt;p&gt;She&amp;#x27;s saying &amp;quot;be aware of your assumptions.&amp;quot;  Her entire screed is a call to take a step back, and recognize that programming is reifying assumptions and systems of control.  Be aware of what those happen to be.  Make those choices conscious, rather than unconscious.&lt;p&gt;When I&amp;#x27;m creating a UI, am I assuming the viewer has 20&amp;#x2F;20 corrected vision on a 1920x1080 monitor with the full set of rods and cones?  Am I considering folks that are colorblind, might need to have different zoom levels, or might use screen readers?&lt;p&gt;When I&amp;#x27;m creating a tool for data analysis, am I making it for other programmers?  Or can I maybe widen its usage to the business analysis side, thereby making the tool more useful to more people.  When I change a tool, is it breaking someone else&amp;#x27;s workflow?</text></comment>
<story><title>Programming Is Forgetting: Toward a New Hacker Ethic</title><url>http://opentranscripts.org/transcript/programming-forgetting-new-hacker-ethic/</url></story><parent_chain><item><author>drewcrawford</author><text>The audio &amp;quot;loss&amp;quot; example sounds plausible in passing (and the diagram looks plausible) but is actually incorrect.  The frequency and timing dimensions of analog audio below the Nyquist frequency is preserved &lt;i&gt;perfectly&lt;/i&gt; by digital quantization, which in practice for CD&amp;#x2F;DVD usecase are the full spectrum of the human ear. This counterintuitive result is explored in some detail in [1].&lt;p&gt;It is true that the amplitude dimension (only) is quantized to (typically, 16 or 24) bits, which you could detect with a very good oscilloscope.  However 24 bits is way smaller than any human ear can discern.  Visually, it is like looking at two stacks of dollar bills that are 6,000 feet high and trying to discern which one has one extra bill.&lt;p&gt;I suppose that is technically &amp;quot;lossy&amp;quot;, but the only thing we are &amp;quot;forgetting&amp;quot; is something no human could perceive, or remember.&lt;p&gt;[1] &lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;people.xiph.org&amp;#x2F;~xiphmont&amp;#x2F;demo&amp;#x2F;neil-young.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;people.xiph.org&amp;#x2F;~xiphmont&amp;#x2F;demo&amp;#x2F;neil-young.html&lt;/a&gt;</text></item></parent_chain><comment><author>dom0</author><text>&amp;gt; and the diagram looks plausible&lt;p&gt;I&amp;#x27;ve seen this and similar diagrams used over and over again by a lot of people who should now better. This kind of diagram can be interpreted two ways&lt;p&gt;(a) the diagram maker has no idea how sampling works
(b) the diagram maker made it to illustrate a pathological case to make quantization noise obvious, that is, the diagram shows fs=infty with a four level &amp;#x2F; two bit ADC with no dithering&lt;p&gt;In any case, it has nothing to do with how digitizing audio works.&lt;p&gt;&amp;gt; It is true that the amplitude dimension (only) is quantized to (typically, 16 or 24) bits, which you could detect with a very good oscilloscope.&lt;p&gt;Nope, normal scopes work with 8 bits ADCs and manage 10 to 12 bits in ERES and similar modes (... they don&amp;#x27;t really get to 10 or 12 bit SFDR though ...). Some special scopes have 16 bit ADCs, but you&amp;#x27;d still be hard pressed to detect the difference.&lt;p&gt;Also, while again a &amp;quot;counterintuitive result&amp;quot; in a certain sense, the dynamic range of a 16 bit audio signal is greater than 96 dB, that is you can encode and actually discern noises below -96 dbFS. This is because the 96 dB figure assumes a white dithering signal, which is not used.&lt;p&gt;Of course, all that doesn&amp;#x27;t really matter with pop music. Who needs &amp;gt;100 dB SNR and DNR if the piece you are encoding only has 10 dB DNR anyway?!</text></comment>