<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Case Studies on ebyte.org</title>
    <link>https://ebyte.org/tags/case-studies/</link>
    <description>Recent content in Case Studies on ebyte.org</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 20 Oct 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ebyte.org/tags/case-studies/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>EByte Case Study Flipping and Editing a Real BMP Image</title>
      <link>https://ebyte.org/ebyte-case-study-flipping-and-editing-a-real-bmp-image/</link>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://ebyte.org/ebyte-case-study-flipping-and-editing-a-real-bmp-image/</guid>
      <description>&lt;p&gt;BMP is about as plain as image formats get, which makes it a good test of whether a schema can describe a real file down to the last byte. This case study made a tiny bitmap with Python&amp;rsquo;s Pillow library, read it with the released &lt;code&gt;ebyte&lt;/code&gt; 0.1.1 binary, edited it four ways and broke it five ways. Every number below is what the tools printed.&lt;/p&gt;&#xA;&lt;p&gt;The image is 5 pixels wide and 3 tall: a red stripe on top, green in the middle, blue at the bottom. Pillow saved it as a 102-byte, 24-bit BMP. That&amp;rsquo;s a 14-byte file header, a 40-byte info header and 48 bytes of pixels. Five pixels at 3 bytes each make 15 bytes a row, and BMP pads every row to a multiple of 4, so each row carries one extra zero byte.&lt;/p&gt;</description>
    </item>
    <item>
      <title>EByte Case Study Inspecting and Editing a Real ZIP Archive</title>
      <link>https://ebyte.org/ebyte-case-study-inspecting-and-editing-a-real-zip-archive/</link>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://ebyte.org/ebyte-case-study-inspecting-and-editing-a-real-zip-archive/</guid>
      <description>&lt;p&gt;A ZIP file is a good test of whether a schema can follow a real format&amp;rsquo;s bookkeeping. Every file inside it is described twice: once in a local header just before its data, and again in a central directory near the end. A short end record then says where that directory starts. This case study built a one-file ZIP with Python&amp;rsquo;s &lt;code&gt;zipfile&lt;/code&gt; module, read it with the released &lt;code&gt;ebyte&lt;/code&gt; 0.1.1 binary, edited it and then fed it archives it wasn&amp;rsquo;t built for.&lt;/p&gt;</description>
    </item>
    <item>
      <title>EByte Case Study Reading and Editing a Real WAV File</title>
      <link>https://ebyte.org/ebyte-case-study-reading-and-editing-a-real-wav-file/</link>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://ebyte.org/ebyte-case-study-reading-and-editing-a-real-wav-file/</guid>
      <description>&lt;p&gt;The example that ships with EByte is a made-up format. This case study uses a real one: a WAV audio file, made by Python&amp;rsquo;s standard &lt;code&gt;wave&lt;/code&gt; module and read with the released &lt;code&gt;ebyte&lt;/code&gt; 0.1.0 binary, downloaded from GitHub like anyone else would get it. Everything below, every number and every error, is what that binary actually printed.&lt;/p&gt;&#xA;&lt;p&gt;The file is a tenth of a second of a 440 Hz tone, mono, 16-bit, 8,000 samples a second. That makes 1,644 bytes: a 44-byte header and 1,600 bytes of samples. The Linux archive&amp;rsquo;s checksum matched SHA256SUMS before anything ran.&lt;/p&gt;</description>
    </item>
    <item>
      <title>EByte Case Study Reading Every Chunk of a WAV File</title>
      <link>https://ebyte.org/ebyte-case-study-reading-every-chunk-of-a-wav-file/</link>
      <pubDate>Tue, 20 Oct 2026 00:00:00 +0000</pubDate>
      <guid>https://ebyte.org/ebyte-case-study-reading-every-chunk-of-a-wav-file/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://ebyte.org/ebyte-case-study-reading-and-editing-a-real-wav-file/&#34;&gt;first WAV case study&lt;/a&gt; used a schema that knew exactly three chunks in a fixed order. Real WAV files aren&amp;rsquo;t that tidy. Recorders and editors add a &lt;code&gt;LIST&lt;/code&gt; chunk with a title and the software name, and some put it before the audio, some after. EByte 0.2.0 adds a &lt;code&gt;repeat&lt;/code&gt; field for this, and this case study tries it on a WAV file with metadata, using the released &lt;code&gt;ebyte&lt;/code&gt; 0.2.0 Linux binary downloaded from GitHub. Its checksum matched SHA256SUMS before anything ran.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
