<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Maria Hall</title>
    <description>The latest articles on Forem by Maria Hall (@ipynbtools).</description>
    <link>https://forem.com/ipynbtools</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3929520%2F983bb110-d943-4d76-a4b7-e0cc8801cdb8.png</url>
      <title>Forem: Maria Hall</title>
      <link>https://forem.com/ipynbtools</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ipynbtools"/>
    <language>en</language>
    <item>
      <title>AVIF to PNG conversion: practical checks for web image workflows</title>
      <dc:creator>Maria Hall</dc:creator>
      <pubDate>Fri, 15 May 2026 08:03:45 +0000</pubDate>
      <link>https://forem.com/ipynbtools/avif-to-png-conversion-practical-checks-for-web-image-workflows-3hj5</link>
      <guid>https://forem.com/ipynbtools/avif-to-png-conversion-practical-checks-for-web-image-workflows-3hj5</guid>
      <description>&lt;p&gt;Modern web image workflows often involve more than one format. AVIF is excellent for compression, but the rest of the toolchain is not always ready for it. A CMS, design tool, social platform, or older browser can still expect PNG, JPG, or WebP. That means developers need a repeatable way to decide when AVIF should stay AVIF and when it should be converted.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where AVIF causes friction
&lt;/h2&gt;

&lt;p&gt;AVIF is a good delivery format because it can keep file sizes low while preserving visual quality. The friction usually appears outside the final web page:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Some image editors still have incomplete AVIF support.&lt;/li&gt;
&lt;li&gt;Screenshot review tools may not generate previews consistently.&lt;/li&gt;
&lt;li&gt;Older upload forms reject AVIF even when the final site could serve it.&lt;/li&gt;
&lt;li&gt;Documentation and design handoff workflows often need PNG because it is universally supported.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In these cases, converting the asset is not a step backward. It is a compatibility bridge.&lt;/p&gt;

&lt;h2&gt;
  
  
  A simple decision rule
&lt;/h2&gt;

&lt;p&gt;I use this rule when handling product screenshots, UI assets, and documentation images:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Keep AVIF for production delivery when the target environment supports it.&lt;/li&gt;
&lt;li&gt;Convert AVIF to PNG when the image needs to be edited, archived, reviewed, or uploaded to a system with strict format validation.&lt;/li&gt;
&lt;li&gt;Keep the original AVIF file alongside the converted PNG so the compression source is not lost.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This keeps the workflow practical. The optimized file remains available, while the PNG version can move through tools that do not understand AVIF yet.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to check before converting
&lt;/h2&gt;

&lt;p&gt;Before batch converting AVIF files, check three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Transparency: if the AVIF has alpha, make sure the PNG output keeps it.&lt;/li&gt;
&lt;li&gt;Dimensions: avoid tools that silently resize images during conversion.&lt;/li&gt;
&lt;li&gt;Color accuracy: compare the original and converted file on gradients, shadows, and UI text.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For quick browser-based conversions, I have been using &lt;a href="https://aviftopng.io/" rel="noopener noreferrer"&gt;AVIF to PNG&lt;/a&gt;. It is useful when I just need to turn a few AVIF files into PNG without installing a desktop converter or uploading assets into a heavier image suite.&lt;/p&gt;

&lt;h2&gt;
  
  
  When PNG is the right target
&lt;/h2&gt;

&lt;p&gt;PNG is not always the smallest option, but it is still a dependable interchange format. It makes sense for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;UI screenshots in docs.&lt;/li&gt;
&lt;li&gt;App store or marketplace images.&lt;/li&gt;
&lt;li&gt;Assets that need transparency.&lt;/li&gt;
&lt;li&gt;Files passed to non-technical teammates.&lt;/li&gt;
&lt;li&gt;Debugging browser or CMS image issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For final production delivery, you may still generate AVIF or WebP variants. For collaboration and compatibility, PNG is often the safer common denominator.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical takeaway
&lt;/h2&gt;

&lt;p&gt;AVIF is worth using, but it should not become a bottleneck in the rest of the workflow. Treat conversion as part of the asset pipeline: preserve the optimized source, convert only when another system needs it, and verify transparency, dimensions, and color before shipping.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>performance</category>
      <category>tooling</category>
      <category>webdev</category>
    </item>
    <item>
      <title>A Practical Checklist for Turning Jupyter Notebooks into Reviewable PDF Reports</title>
      <dc:creator>Maria Hall</dc:creator>
      <pubDate>Wed, 13 May 2026 14:28:08 +0000</pubDate>
      <link>https://forem.com/ipynbtools/a-practical-checklist-for-turning-jupyter-notebooks-into-reviewable-pdf-reports-2335</link>
      <guid>https://forem.com/ipynbtools/a-practical-checklist-for-turning-jupyter-notebooks-into-reviewable-pdf-reports-2335</guid>
      <description>&lt;p&gt;Jupyter notebooks are great while the work is still changing. They are less forgiving when the output has to become a PDF that someone else can review, archive, or attach to a report.&lt;/p&gt;

&lt;p&gt;Most export problems are not caused by one broken command. They usually come from small mismatches between notebook state, output size, browser rendering, LaTeX dependencies, image paths, and what the reviewer expects to read.&lt;/p&gt;

&lt;p&gt;This is the checklist I use before turning a notebook into a PDF report.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Restart and run the notebook before exporting
&lt;/h2&gt;

&lt;p&gt;A notebook can look correct because old cell outputs are still saved in the file. That does not mean it is reproducible.&lt;/p&gt;

&lt;p&gt;Before exporting, restart the kernel and run all cells from the top. This catches hidden dependencies such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;variables that only exist because of a previous interactive session&lt;/li&gt;
&lt;li&gt;imports that were added in the middle of the notebook&lt;/li&gt;
&lt;li&gt;files that are referenced from a local path&lt;/li&gt;
&lt;li&gt;cells that must run in a particular order but are not documented that way&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If the notebook cannot run from a clean kernel, the PDF may still export, but it is not a reliable report.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Decide whether code, output, or explanation is the primary artifact
&lt;/h2&gt;

&lt;p&gt;A notebook report usually has one of three goals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;show the code behind an analysis&lt;/li&gt;
&lt;li&gt;show the results and charts&lt;/li&gt;
&lt;li&gt;explain a workflow or decision&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The export should match that goal. If the audience mostly needs results, long setup cells and intermediate debugging output should be collapsed or removed. If the audience needs reproducibility, keep the code visible and make sure section headings explain why each block exists.&lt;/p&gt;

&lt;p&gt;This simple decision affects page length more than any PDF setting.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Check chart dimensions before exporting
&lt;/h2&gt;

&lt;p&gt;Charts that work inside Jupyter often become awkward in PDF form. Common issues include legends getting clipped, labels wrapping badly, and wide charts forcing horizontal scroll in HTML before export.&lt;/p&gt;

&lt;p&gt;Before exporting, scan the notebook for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;very wide tables&lt;/li&gt;
&lt;li&gt;charts with long category labels&lt;/li&gt;
&lt;li&gt;figures that depend on responsive notebook width&lt;/li&gt;
&lt;li&gt;dark theme charts that do not print clearly&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A good rule is to make charts readable in a normal browser viewport before trying to convert them to PDF.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Treat tables as report content, not raw output
&lt;/h2&gt;

&lt;p&gt;Large DataFrame previews are one of the easiest ways to make a PDF unreadable. A 200-row table may be useful while exploring data, but it rarely belongs in the final report.&lt;/p&gt;

&lt;p&gt;For reviewable PDFs, consider replacing huge tables with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a summary table&lt;/li&gt;
&lt;li&gt;the top or bottom rows that matter&lt;/li&gt;
&lt;li&gt;grouped metrics&lt;/li&gt;
&lt;li&gt;a link to the full CSV or source data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the notebook useful as a report instead of turning it into a dump of intermediate state.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. Know when nbconvert is the right tool
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;nbconvert&lt;/code&gt; is still the best option when you need automation, CI integration, or a reproducible local export pipeline. It is especially useful when the notebook is already part of a scripted workflow.&lt;/p&gt;

&lt;p&gt;The tradeoff is environment setup. Depending on the output format, you may need browser dependencies, a working Jupyter setup, Pandoc, or LaTeX packages. Those dependencies are reasonable for a team pipeline, but they can be heavy for a quick one-off report.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Use a browser workflow when the goal is fast review
&lt;/h2&gt;

&lt;p&gt;For quick review, a browser-based flow can be simpler: open the notebook file, inspect the rendered result, and export a PDF from the browser. This avoids turning a small reporting task into a local environment debugging session.&lt;/p&gt;

&lt;p&gt;That is the workflow behind &lt;a href="https://ipynbtools.com/" rel="noopener noreferrer"&gt;IPYNB Tools&lt;/a&gt;: it focuses on converting Jupyter Notebook files into cleaner PDF reports directly in the browser. It is useful when you need a shareable PDF quickly and do not want to fight local export dependencies first.&lt;/p&gt;

&lt;p&gt;I also keep a short project overview at the &lt;a href="https://ipynbtools.com/about" rel="noopener noreferrer"&gt;IPYNB Tools About page&lt;/a&gt; for people who want to understand the scope and official profiles around the tool.&lt;/p&gt;

&lt;h2&gt;
  
  
  7. Make the final PDF easy to review
&lt;/h2&gt;

&lt;p&gt;Before sending the PDF, open it as if you were the reviewer. Check these details:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;the first page explains what the notebook is about&lt;/li&gt;
&lt;li&gt;headings make the document skimmable&lt;/li&gt;
&lt;li&gt;charts are not clipped&lt;/li&gt;
&lt;li&gt;tables do not overflow the page&lt;/li&gt;
&lt;li&gt;outputs are current and intentional&lt;/li&gt;
&lt;li&gt;there are no accidental debug prints, secrets, or local file paths&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best notebook PDF is not just a file that exported successfully. It is a document that preserves enough context for someone else to trust the result.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thought
&lt;/h2&gt;

&lt;p&gt;Notebook export quality is mostly a preparation problem. If the notebook is clean, ordered, and sized for reading, the PDF step becomes much easier whether you use &lt;code&gt;nbconvert&lt;/code&gt;, a browser print flow, or a dedicated converter.&lt;/p&gt;

</description>
      <category>jupyter</category>
      <category>python</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
