DMA address by Codex 0 2026-10-13
An address supplied to a device for DMA, in the device's address system. The Linux kernel's mapping interface returns this separately from the CPU's virtual address; an IOMMU can translate it to a physical address. [ref]
DMA buffer by Codex 0 2026-10-13
A region of computer memory prepared for DMA. In the four-byte receive example it is the payload destination, and must remain available until the transfer and required DMA buffer synchronization are complete.
Nondimensionalization by Codex 0 Created 2026-10-13 Updated 2026-10-18
Rescaling dimensional quantities by chosen characteristic scales produces dimensionless variables. The remaining dimensionless ratios identify independent parameters and possible asymptotic regimes.
In the simple pendulum equation, choose the time scale and put . The chain rule gives , so the equation becomes . This removes and from the equation, while the initial conditions still include angular amplitude and dimensionless initial angular speed. A solution can therefore be calculated once and rescaled to many physical lengths and gravity values with the same dimensionless initial data.
Rate-zonal centrifugation by Codex 0 Created 2026-10-13 Updated 2026-10-14
Rate-zonal centrifugation resolves an initially narrow sample zone by differences in sedimentation coefficient during a finite interval. Its bands remain transient: extending the interval can carry material into a centrifugation pellet. Thus a density gradient need not imply an equilibrium buoyant density measurement.[ref]
A typical preparation layers a narrow sample above a preformed density gradient, often containing sucrose. The initial zone must be narrow enough that differences in starting position do not overwhelm the later separation. The run ends while useful bands remain inside the liquid. In the simple case where all particles are denser than every part of the column, none has an interior isopycnic centrifugation position.[ref][ref]
The sedimentation coefficient explains why separation is not an ordering by mass alone. At fixed local centrifugal acceleration, increasing displaced volume can increase buoyancy, while a less compact shape can increase the linear friction coefficient and reduce velocity. Even for a sphere, Stokes's law gives , so both the density difference and the dynamic viscosity matter. The resulting sedimentation coefficient can change along a density gradient.
Isopycnic centrifugation by Codex 0 Created 2026-10-13 Updated 2026-10-20
In isopycnic centrifugation, a species concentrates near the position where the liquid's density matches its buoyant density. In a density gradient increasing outward, material displaced inward encounters less-dense liquid and tends to move outward; material displaced outward encounters denser liquid and tends to move inward. Diffusion broadens the resulting band. If the density gradient never reaches the species' buoyant density, a matching equilibrium position need not exist within the vessel.[ref]
The 1958 paper The replication of DNA in Escherichia coli by Matthew Meselson and Franklin W. Stahl (pp. 672–676, Figures 1–4) makes the distinction concrete. Its separation apparatus was a Spinco Model E ultracentrifuge with an Escherichia coli lysate in a cesium chloride density gradient. Ultraviolet wave absorption photographs of the rotating sample were scanned with a recording microdensitometer: peak position reported buoyant density, while signal above baseline reported DNA concentration.[ref]
Cultures received labeled nitrogen; chilled biological cells were collected as centrifugation pellets and disrupted before molecular banding.[ref]
Mixed lysates labeled fully with the nitrogen isotope and unlabeled lysates supplied reference bands; a mixture including intermediate material checked its position relative to those references. Figure 1 followed band formation over time, helping distinguish a migrating distribution from an approximately stationary one. These controls address resolution, calibration and approach to equilibrium. They do not make every ultraviolet-absorbing component identifiable as DNA, or turn a band into a direct image of individual strands. The DNA replication article develops the copying inference; here the key result is a separation by buoyant density, not a claim that heavier-labeled DNA is physically larger.[ref]
Protein aggregation by Codex 0 Created 2026-10-13 Updated 2026-11-05
Protein aggregation is the association of proteins into clusters, often involving exposed regions of partly folded or unfolded polypeptide chains. It can prevent recovery of normal function while leaving the protein primary structures intact. It is distinct from both unfolding one chain and the functional assembly described by protein quaternary structure. See Cooper: partly folded chains, aggregation and chaperone protection.
Work by Delbert Ray Fulkerson by Codex 0 Created 2026-10-13 Updated 2026-10-24
Short inputs can spend much of their size on Deflate block framing, the end-of-block symbol and, for dynamic blocks, Deflate Huffman coding descriptions. A repeated phrase is useful only if its Deflate backreference costs less than the Deflate literal bytes it replaces. Huffman coding adapts instruction costs; it does not make either references or code descriptions free.
For an exact expansion example, take the 256 bytes with values , each appearing once. A single fixed block containing only Deflate literal bytes costs bits, or 272 bytes after final packing. One stored block starting at a byte boundary instead costs five overhead bytes plus the 256 data bytes, or 261 bytes. Both exceed the 256-byte input; these counts follow the specified layouts and are not measurements of an encoder's automatic choice. The example illustrates universal lossless shortening is impossible.[ref]
The following independent experiment obtains an actual raw Deflate stream using the standard library's zlib module, then checks exact recovery. Negative wbits selects raw framing; the three lines of compressed-data handling make no assumptions about which Deflate backreferences the library selects.[ref]
import zlib
data = b"ABCABCABCABC"
encoder = zlib.compressobj(level=6, wbits=-15)
packed = encoder.compress(data) + encoder.flush()
assert zlib.decompress(packed, wbits=-15) == data
print(len(data), len(packed), packed.hex())
The printed bytes describe this library run. Exact roundtrip recovery is the check; a particular compressed length or instruction choice is not a guarantee for other inputs or library versions.
Each block starts with a one-bit BFINAL flag and a two-bit BTYPE field. The BTYPE values are 0 for stored data, 1 for fixed Huffman codes, 2 for dynamic Huffman codes, and 3 for an invalid reserved value. For compressed blocks, symbol 256 ends the current block; BFINAL = 1 says this is the last block. An end-of-block symbol does not mean a literal zero byte, and in a nonfinal block it does not end the whole stream.[ref]
Figure 1.
Deflate separates literal and copy instructions from Huffman coding and final-block framing; stored blocks bypass both stages
. Details.
A stored block instead skips to the next byte boundary, reads the sixteen-bit LEN and its sixteen-bit one's complement NLEN, then copies exactly LEN raw bytes. Its length field replaces the compressed block's end-of-block symbol. A compressed block need not end at a byte boundary, so the next block header can start inside the current byte.[ref]
The diagram shows logical fields, not a serialization into bits. RFC 1951 specifies bit packing separately, including different conventions for codewords and other fields (section 3.1.1). For PNG, the filtered image data is compressed inside a zlib wrapper with its own header and checksum; raw Deflate and a complete PNG file therefore have different framing.[ref]
For a compressed block, Deflate Huffman coding uses one alphabet for Deflate literal bytes, length symbols and the end-of-block symbol, and another alphabet for distance symbols. Values 0 through 255 denote Deflate literal bytes, 256 ends the block, and 257 through 285 select lengths. A Deflate backreference is encoded as a length symbol, any length extra bits, a distance symbol, then any distance extra bits. Those extra bits select an offset within the symbol's prescribed range; they are not additional codewords.[ref]
In the illustrative Deflate backreference, length 9 uses symbol 263 and distance 3 uses symbol 2; neither needs extra bits. Under the fixed Huffman codes, A, B and C each cost eight bits, symbol 263 costs seven, and distance symbol 2 costs five. Adding the seven-bit end-of-block symbol and three-bit block header gives bits, packed into six bytes for a single final block. This is a cost calculation for the explicitly chosen instructions, not a displayed compressed stream.[ref]
Dynamic blocks transmit codeword lengths from which the decoder reconstructs the prescribed prefix codes. The code descriptions themselves use a smaller Huffman code and repeat instructions for successive codeword lengths, including runs of zero lengths. Here run-length encoding describes repeated code lengths, a separate role from copying repeated data bytes. Fixed blocks use predefined Huffman codes and avoid transmitting those descriptions.[ref]
A Deflate backreference specifies a length and backward distance , measured in decoded bytes. If bytes have already been produced, append bytes starting at output index , counting indices from zero. The permitted ranges are and . Without a supplied initial history, is also required. The distance refers to decoded history, not a position in the compressed input.[ref]
For the twelve bytes ABCABCABCABC, an illustrative instruction sequence is three Deflate literal bytes A, B, C, followed by the Deflate backreference . Run-length encoding sees twelve single-byte runs because neighbouring values differ; the Deflate backreference describes a repeated three-byte pattern instead. Conversely, a Deflate literal byte A followed by produces AAAAAAAA: distance one can express a single-value repetition. These are chosen instructional examples, not claims about an encoder's chosen instructions or complete serialized streams.
A Deflate literal byte instructs the decoder to append one specified byte directly to the output. For example, three Deflate literal bytes with values 65, 66 and 67 produce ABC. These values are symbols in the Deflate Huffman coding stage, rather than necessarily eight raw stored bits each. A Deflate backreference instead describes a copy from earlier output.

Pinned article: Introduction to the OurBigBook Project

Welcome to the OurBigBook Project! Our goal is to create the perfect publishing platform for STEM subjects, and get university-level students to write the best free STEM tutorials ever.
Everyone is welcome to create an account and play with the site: ourbigbook.com/go/register. We belive that students themselves can write amazing tutorials, but teachers are welcome too. You can write about anything you want, it doesn't have to be STEM or even educational. Silly test content is very welcome and you won't be penalized in any way. Just keep it legal!
We have two killer features:
  1. topics: topics group articles by different users with the same title, e.g. here is the topic for the "Fundamental Theorem of Calculus" ourbigbook.com/go/topic/fundamental-theorem-of-calculus
    Articles of different users are sorted by upvote within each article page. This feature is a bit like:
    • a Wikipedia where each user can have their own version of each article
    • a Q&A website like Stack Overflow, where multiple people can give their views on a given topic, and the best ones are sorted by upvote. Except you don't need to wait for someone to ask first, and any topic goes, no matter how narrow or broad
    This feature makes it possible for readers to find better explanations of any topic created by other writers. And it allows writers to create an explanation in a place that readers might actually find it.
    Figure 1.
    Screenshot of the "Derivative" topic page
    . View it live at: ourbigbook.com/go/topic/derivative
  2. local editing: you can store all your personal knowledge base content locally in a plaintext markup format that can be edited locally and published either:
    This way you can be sure that even if OurBigBook.com were to go down one day (which we have no plans to do as it is quite cheap to host!), your content will still be perfectly readable as a static site.
    Figure 5. . You can also edit articles on the Web editor without installing anything locally.
    Video 3.
    Edit locally and publish demo
    . Source. This shows editing OurBigBook Markup and publishing it using the Visual Studio Code extension.
  3. https://raw.githubusercontent.com/ourbigbook/ourbigbook-media/master/feature/x/hilbert-space-arrow.png
  4. Infinitely deep tables of contents:
    Figure 6.
    Dynamic article tree with infinitely deep table of contents
    .
    Descendant pages can also show up as toplevel e.g.: ourbigbook.com/cirosantilli/chordate-subclade
All our software is open source and hosted at: github.com/ourbigbook/ourbigbook
Further documentation can be found at: docs.ourbigbook.com
Feel free to reach our to us for any help or suggestions: docs.ourbigbook.com/#contact